1 #ifndef LZOE_H_ 2 #define LZOE_H_ 3 4 #ifdef NO_LZO 5 # define LZFILE FILE 6 # define has_lzoe_prefix(x) (0) 7 # define lzoe_fopen fopen 8 # define lzoe_fgets fgets 9 # define lzoe_fread fread 10 # define lzoe_fseek fseek 11 # define lzoe_ftell ftell 12 # define lzoe_rewind rewind 13 # define lzoe_fclose fclose 14 # define lzoe_exists file_exists 15 # define lzoe_register(x,y) ((void)(x), (void)(y)) 16 # define lzoe_filep(f) (f) 17 # define lzoe_fgetc fgetc 18 # define lzoe_feof feof 19 #else 20 21 typedef struct lzoe_info 22 { 23 const char *fname; 24 long orig_len, comp_len; 25 const uint8_t *cdata; 26 } lzoe_info; 27 28 typedef struct lzoe_file 29 { 30 const lzoe_info *info; 31 uint8_t *ddata; 32 long offset; 33 } lzoe_file; 34 35 typedef struct LZFILE 36 { 37 FILE *f; 38 lzoe_file *l; 39 } LZFILE; 40 41 typedef struct lzoe_directory 42 { 43 const lzoe_info *table; 44 const char *prefix; 45 int pfx_len; 46 } lzoe_directory; 47 48 #define MAX_LZOE_OPEN (32) 49 #define LZOE_PREFIX "$LZOE$" 50 51 extern int has_lzoe_prefix( const char *fname ); 52 extern LZFILE *lzoe_fopen ( const char *fname, const char *mode ); 53 extern char *lzoe_fgets ( char *s, int size, LZFILE *f ); 54 extern size_t lzoe_fread ( void *buf, size_t size, size_t nmemb, LZFILE *f ); 55 extern int lzoe_fseek ( LZFILE *f, long offset, int whence ); 56 extern long lzoe_ftell ( LZFILE *f ); 57 extern int lzoe_fclose( LZFILE *f ); 58 extern int lzoe_exists( const char *fname ); 59 extern LZFILE *lzoe_filep ( FILE *f ); 60 extern int lzoe_fgetc ( LZFILE *f ); 61 extern int lzoe_feof ( LZFILE *f ); 62 63 64 #define lzoe_rewind(f) ((void) lzoe_fseek( f, 0L, SEEK_SET )) 65 66 extern void lzoe_register( const char *prefix, const lzoe_info *table ); 67 68 #endif 69 70 #endif 71