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