1 #if !defined(HIKARI_MARK_H)
2 #define HIKARI_MARK_H
3 
4 #include <stdbool.h>
5 
6 struct hikari_view;
7 
8 struct hikari_mark {
9   char *name;
10   int nr;
11   struct hikari_view *view;
12 };
13 
14 #define HIKARI_NR_OF_MARKS 26
15 
16 extern struct hikari_mark hikari_marks[HIKARI_NR_OF_MARKS];
17 
18 extern struct hikari_mark *HIKARI_MARK_a;
19 extern struct hikari_mark *HIKARI_MARK_b;
20 extern struct hikari_mark *HIKARI_MARK_c;
21 extern struct hikari_mark *HIKARI_MARK_d;
22 extern struct hikari_mark *HIKARI_MARK_e;
23 extern struct hikari_mark *HIKARI_MARK_f;
24 extern struct hikari_mark *HIKARI_MARK_g;
25 extern struct hikari_mark *HIKARI_MARK_h;
26 extern struct hikari_mark *HIKARI_MARK_i;
27 extern struct hikari_mark *HIKARI_MARK_j;
28 extern struct hikari_mark *HIKARI_MARK_k;
29 extern struct hikari_mark *HIKARI_MARK_l;
30 extern struct hikari_mark *HIKARI_MARK_m;
31 extern struct hikari_mark *HIKARI_MARK_n;
32 extern struct hikari_mark *HIKARI_MARK_o;
33 extern struct hikari_mark *HIKARI_MARK_p;
34 extern struct hikari_mark *HIKARI_MARK_q;
35 extern struct hikari_mark *HIKARI_MARK_r;
36 extern struct hikari_mark *HIKARI_MARK_s;
37 extern struct hikari_mark *HIKARI_MARK_t;
38 extern struct hikari_mark *HIKARI_MARK_u;
39 extern struct hikari_mark *HIKARI_MARK_v;
40 extern struct hikari_mark *HIKARI_MARK_w;
41 extern struct hikari_mark *HIKARI_MARK_x;
42 extern struct hikari_mark *HIKARI_MARK_y;
43 extern struct hikari_mark *HIKARI_MARK_z;
44 
45 void
46 hikari_marks_init(void);
47 
48 void
49 hikari_marks_fini(void);
50 
51 void
52 hikari_mark_clear(struct hikari_mark *mark);
53 
54 void
55 hikari_mark_set(struct hikari_mark *mark, struct hikari_view *view);
56 
57 bool
58 hikari_mark_get(char reg, struct hikari_mark **mark);
59 
60 #endif
61