summaryrefslogtreecommitdiffstats
path: root/src/range.h
blob: 0e7d9dc64c6a63ff6566f8b6808de41692ef0d6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "sc.h"

struct srange {
    int tlrow;     // top left row
    int tlcol;     // top left col
    int brrow;     // bottom right row
    int brcol;     // bottom right col
    int orig_row;  // row of selected cell before creating range
    int orig_col;  // col of selected cell before creating range
    char marks[2]; // marks used for creating the range
    int selected;
    struct srange * pnext;
};
typedef struct srange srange;

extern srange * ranges;

srange * create_range(char c, char d, struct ent * tl, struct ent * br);
int find_range(char * name, int len, struct ent * lmatch, struct ent * rmatch, struct range ** rng);

void unselect_ranges();
void free_ranges ();
void del_ranges_by_mark (char c);
srange * get_range_by_pos(int pos);
srange * get_range_by_marks (char c, char d);
int is_range_selected();
srange * get_selected_range();

srange * create_custom_range(int tlrow, int tlcol, int brrow, int brcol);
void free_custom_range(srange * sr);
void clean_range();

void add_range(char * name, struct ent_ptr left, struct ent_ptr right, int is_range);
void del_range(struct ent * left, struct ent * right);