1 #ifndef TWEAK_TWEAK_H
2 #define TWEAK_TWEAK_H
3 
4 #if defined(__APPLE__) && !defined(unix)
5 #define unix 1
6 #endif
7 
8 #ifndef NO_LARGE_FILES
9 
10 #ifndef _LARGEFILE_SOURCE
11 #define _LARGEFILE_SOURCE
12 #endif
13 #ifndef _FILE_OFFSET_BITS
14 #define _FILE_OFFSET_BITS 64
15 #endif
16 
17 #endif
18 
19 #ifndef FALSE
20 #define FALSE 0
21 #endif
22 #ifndef TRUE
23 #define TRUE 1
24 #endif
25 
26 #define EVER ;;
27 
28 #ifdef MSDOS
29 #define ABORT 34		       /* scan code for ^G */
30 #else
31 #define ABORT 7			       /* character code for ^G */
32 #endif
33 
34 #ifndef VER
35 #define VER "3.02"
36 #endif
37 
38 #define SEARCH_BLK 65536	       /* so can this */
39 #define SAVE_BLKSIZ 32768	       /* and this too */
40 
41 #define COL_BUFFER 0		       /* normal buffer colour */
42 #define COL_SELECT 1		       /* selected-area colour */
43 #define COL_STATUS 2		       /* status-line colour */
44 #define COL_ESCAPE 3		       /* escape sequences in minibuffer */
45 #define COL_INVALID 4		       /* invalid escape sequence in m/b */
46 #define COL_MINIBUF COL_BUFFER	       /* these should be the same */
47 
48 #define NULL4   NULL,  NULL,  NULL,  NULL
49 #define NULL16  NULL4, NULL4, NULL4, NULL4
50 #define NULL64  NULL16,NULL16,NULL16,NULL16
51 #define NULL256 NULL64,NULL64,NULL64,NULL64
52 
53 #include <stdio.h>
54 
55 #ifdef NO_LARGE_FILES
56 typedef int fileoffset_t;              /* used for all file offsets */
57 #define OFF
58 #define ATOOFF atoi
59 #define STRTOOFF strtol
60 #define fseeko fseek
61 #define ftello ftell
62 #else
63 typedef long long fileoffset_t;	       /* used for all file offsets */
64 #define OFF "ll"
65 #define ATOOFF atoll
66 #define STRTOOFF strtoll
67 #endif
68 
69 typedef int (*DFA)[256];
70 typedef struct {
71     int len;
72     DFA forward, reverse;
73 } Search;
74 
75 typedef void (*keyact) (void);
76 
77 typedef struct buffer buffer;
78 
79 extern char toprint[256], hex[256][3], message[512];
80 extern char decstatus[], hexstatus[], *statfmt;
81 extern char last_char, *pname, *filename;
82 extern buffer *filedata, *cutbuffer;
83 extern int fix_mode, look_mode, insert_mode, edit_type, finished, marking;
84 extern fileoffset_t file_size, top_pos, cur_pos, mark_point;
85 extern int scrlines, modified, new_file;
86 extern fileoffset_t width, offset, realoffset;
87 extern int ascii_enabled;
88 
89 #ifdef unix
90 extern volatile int safe_update, update_required;
91 extern void update (void);
92 #endif
93 
94 extern void fix_offset(void);
95 extern fileoffset_t parse_num (char *buffer, int *error);
96 
97 extern void draw_scr (void);
98 extern int backup_file (void);
99 extern int save_file (void);
100 
101 extern void act_self_ins (void);
102 extern keyact parse_action (char *);
103 
104 extern void proc_key (void);
105 extern void bind_key (char *, int, keyact);
106 
107 extern Search *build_search (char *, int);
108 void free_search(Search *s);
109 
110 extern int get_str (char *, char *, int);
111 extern int parse_quoted (char *);
112 extern void suspend (void);
113 
114 extern void read_rc (void);
115 extern void write_default_rc (void);
116 
117 extern buffer *buf_new_empty(void);
118 extern buffer *buf_new_from_file(FILE *fp);
119 extern void buf_free(buffer *buf);
120 
121 extern void buf_insert_data(buffer *buf, void *data, int len,
122                             fileoffset_t pos);
123 extern void buf_fetch_data(buffer *buf, void *data, int len, fileoffset_t pos);
124 extern void buf_overwrite_data(buffer *buf, void *data, int len,
125                                fileoffset_t pos);
126 extern void buf_delete(buffer *buf, fileoffset_t len, fileoffset_t pos);
127 extern buffer *buf_cut(buffer *buf, fileoffset_t len, fileoffset_t pos);
128 extern buffer *buf_copy(buffer *buf, fileoffset_t len, fileoffset_t pos);
129 extern void buf_paste(buffer *buf, buffer *cutbuffer, fileoffset_t pos);
130 extern fileoffset_t buf_length(buffer *buf);
131 
132 extern void display_setup(void);
133 extern void display_cleanup(void);
134 extern void display_beep(void);
135 extern int display_rows, display_cols;
136 extern void display_moveto(int y, int x);
137 extern void display_refresh(void);
138 extern void display_write_str(char *str);
139 extern void display_write_chars(char *str, int len);
140 extern void display_define_colour(int colour, int fg, int bg, int reverse);
141 extern void display_set_colour(int colour);
142 extern void display_clear_to_eol(void);
143 extern int display_getkey(void);
144 extern int display_input_to_flush(void);
145 extern void display_post_error(void);
146 extern void display_recheck_size(void);
147 
148 #endif /* TWEAK_TWEAK_H */
149