f9ea9eb9b19a3105112814b0e030879bc8fee642
[sgt/tweak] / tweak.h
1 #ifndef TWEAK_TWEAK_H
2 #define TWEAK_TWEAK_H
3
4 #ifndef FALSE
5 #define FALSE 0
6 #endif
7 #ifndef TRUE
8 #define TRUE 1
9 #endif
10
11 #define EVER ;;
12
13 #ifdef MSDOS
14 #define ABORT 34 /* scan code for ^G */
15 #else
16 #define ABORT 7 /* character code for ^G */
17 #endif
18
19 #define VER "3.00" /* version */
20
21 #define SEARCH_BLK 65536 /* so can this */
22 #define SAVE_BLKSIZ 32768 /* and this too */
23
24 #define COL_BUFFER 0 /* normal buffer colour */
25 #define COL_SELECT 1 /* selected-area colour */
26 #define COL_STATUS 2 /* status-line colour */
27 #define COL_ESCAPE 3 /* escape sequences in minibuffer */
28 #define COL_INVALID 4 /* invalid escape sequence in m/b */
29 #define COL_MINIBUF COL_BUFFER /* these should be the same */
30
31 #define NULL4 NULL, NULL, NULL, NULL
32 #define NULL16 NULL4, NULL4, NULL4, NULL4
33 #define NULL64 NULL16,NULL16,NULL16,NULL16
34 #define NULL256 NULL64,NULL64,NULL64,NULL64
35
36 typedef int (*DFA)[256];
37 typedef struct {
38 int len;
39 DFA forward, reverse;
40 } Search;
41
42 typedef void (*keyact) (void);
43
44 typedef struct buffer buffer;
45
46 extern char toprint[256], hex[256][3], message[80];
47 extern char decstatus[], hexstatus[], *statfmt;
48 extern char last_char, *pname, *filename;
49 extern buffer *filedata, *cutbuffer;
50 extern int fix_mode, look_mode, insert_mode, edit_type, finished, marking;
51 extern long file_size, top_pos, cur_pos, mark_point;
52 extern int scrlines, modified, new_file;
53 extern int width, offset, realoffset, ascii_enabled;
54
55 #ifdef unix
56 extern volatile int safe_update, update_required;
57 extern void update (void);
58 #endif
59
60 extern void fix_offset(void);
61 extern long parse_num (char *buffer, int *error);
62
63 extern void draw_scr (void);
64 extern int backup_file (void);
65 extern int save_file (void);
66
67 extern void act_self_ins (void);
68 extern keyact parse_action (char *);
69
70 extern void proc_key (void);
71 extern void bind_key (char *, int, keyact);
72
73 extern Search *build_search (char *, int);
74 void free_search(Search *s);
75
76 extern int get_str (char *, char *, int);
77 extern int parse_quoted (char *);
78 extern void suspend (void);
79
80 extern void read_rc (void);
81 extern void write_default_rc (void);
82
83 extern buffer *buf_new_empty(void);
84 extern buffer *buf_new_from_file(FILE *fp);
85 extern void buf_free(buffer *buf);
86
87 extern void buf_insert_data(buffer *buf, void *data, int len, int pos);
88 extern void buf_fetch_data(buffer *buf, void *data, int len, int pos);
89 extern void buf_overwrite_data(buffer *buf, void *data, int len, int pos);
90 extern void buf_delete(buffer *buf, int len, int pos);
91 extern buffer *buf_cut(buffer *buf, int len, int pos);
92 extern buffer *buf_copy(buffer *buf, int len, int pos);
93 extern void buf_paste(buffer *buf, buffer *cutbuffer, int pos);
94 extern int buf_length(buffer *buf);
95
96 extern void display_setup(void);
97 extern void display_cleanup(void);
98 extern void display_beep(void);
99 extern int display_rows, display_cols;
100 extern void display_moveto(int y, int x);
101 extern void display_refresh(void);
102 extern void display_write_str(char *str);
103 extern void display_write_chars(char *str, int len);
104 extern void display_define_colour(int colour, int fg, int bg);
105 extern void display_set_colour(int colour);
106 extern void display_clear_to_eol(void);
107 extern int display_getkey(void);
108 extern int display_input_to_flush(void);
109 extern void display_post_error(void);
110 extern void display_recheck_size(void);
111
112 #endif /* TWEAK_TWEAK_H */