X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/tweak/blobdiff_plain/a63728c704b14d40a3229f66dbf0088fbe5d95af..0c7480ac584e9fc9908cba63c38d2c9868e56168:/tweak.h diff --git a/tweak.h b/tweak.h index f9ea9eb..dd8a1bf 100644 --- a/tweak.h +++ b/tweak.h @@ -1,6 +1,17 @@ #ifndef TWEAK_TWEAK_H #define TWEAK_TWEAK_H +#ifndef NO_LARGE_FILES + +#ifndef _LARGEFILE_SOURCE +#define _LARGEFILE_SOURCE +#endif +#ifndef _FILE_OFFSET_BITS +#define _FILE_OFFSET_BITS 64 +#endif + +#endif + #ifndef FALSE #define FALSE 0 #endif @@ -16,7 +27,9 @@ #define ABORT 7 /* character code for ^G */ #endif -#define VER "3.00" /* version */ +#ifndef VER +#define VER "" +#endif #define SEARCH_BLK 65536 /* so can this */ #define SAVE_BLKSIZ 32768 /* and this too */ @@ -33,6 +46,22 @@ #define NULL64 NULL16,NULL16,NULL16,NULL16 #define NULL256 NULL64,NULL64,NULL64,NULL64 +#include + +#ifdef NO_LARGE_FILES +typedef int fileoffset_t; /* used for all file offsets */ +#define OFF +#define ATOOFF atoi +#define STRTOOFF strtol +#define fseeko fseek +#define ftello ftell +#else +typedef long long fileoffset_t; /* used for all file offsets */ +#define OFF "ll" +#define ATOOFF atoll +#define STRTOOFF strtoll +#endif + typedef int (*DFA)[256]; typedef struct { int len; @@ -43,14 +72,15 @@ typedef void (*keyact) (void); typedef struct buffer buffer; -extern char toprint[256], hex[256][3], message[80]; +extern char toprint[256], hex[256][3], message[512]; extern char decstatus[], hexstatus[], *statfmt; extern char last_char, *pname, *filename; extern buffer *filedata, *cutbuffer; extern int fix_mode, look_mode, insert_mode, edit_type, finished, marking; -extern long file_size, top_pos, cur_pos, mark_point; +extern fileoffset_t file_size, top_pos, cur_pos, mark_point; extern int scrlines, modified, new_file; -extern int width, offset, realoffset, ascii_enabled; +extern fileoffset_t width, offset, realoffset; +extern int ascii_enabled; #ifdef unix extern volatile int safe_update, update_required; @@ -58,7 +88,7 @@ extern void update (void); #endif extern void fix_offset(void); -extern long parse_num (char *buffer, int *error); +extern fileoffset_t parse_num (char *buffer, int *error); extern void draw_scr (void); extern int backup_file (void); @@ -84,14 +114,16 @@ extern buffer *buf_new_empty(void); extern buffer *buf_new_from_file(FILE *fp); extern void buf_free(buffer *buf); -extern void buf_insert_data(buffer *buf, void *data, int len, int pos); -extern void buf_fetch_data(buffer *buf, void *data, int len, int pos); -extern void buf_overwrite_data(buffer *buf, void *data, int len, int pos); -extern void buf_delete(buffer *buf, int len, int pos); -extern buffer *buf_cut(buffer *buf, int len, int pos); -extern buffer *buf_copy(buffer *buf, int len, int pos); -extern void buf_paste(buffer *buf, buffer *cutbuffer, int pos); -extern int buf_length(buffer *buf); +extern void buf_insert_data(buffer *buf, void *data, int len, + fileoffset_t pos); +extern void buf_fetch_data(buffer *buf, void *data, int len, fileoffset_t pos); +extern void buf_overwrite_data(buffer *buf, void *data, int len, + fileoffset_t pos); +extern void buf_delete(buffer *buf, fileoffset_t len, fileoffset_t pos); +extern buffer *buf_cut(buffer *buf, fileoffset_t len, fileoffset_t pos); +extern buffer *buf_copy(buffer *buf, fileoffset_t len, fileoffset_t pos); +extern void buf_paste(buffer *buf, buffer *cutbuffer, fileoffset_t pos); +extern fileoffset_t buf_length(buffer *buf); extern void display_setup(void); extern void display_cleanup(void); @@ -101,7 +133,7 @@ extern void display_moveto(int y, int x); extern void display_refresh(void); extern void display_write_str(char *str); extern void display_write_chars(char *str, int len); -extern void display_define_colour(int colour, int fg, int bg); +extern void display_define_colour(int colour, int fg, int bg, int reverse); extern void display_set_colour(int colour); extern void display_clear_to_eol(void); extern int display_getkey(void);