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