1 #ifndef _ZZIP_WRITE_H 2 #define _ZZIP_WRITE_H 3 /* 4 * Example code. write support is not yet implemented. 5 * 6 * Copyright (c) Guido Draheim, use under copyleft (LGPL,MPL) 7 */ 8 9 #include <zzip/lib.h> 10 11 #define ZZIP_NO_CREAT 1 12 13 ZZIP_DIR* zzip_dir_creat_ext_io(zzip_char_t* name, int o_mode, 14 zzip_strings_t* ext, zzip_plugin_io_t io); 15 ZZIP_DIR* zzip_dir_creat(zzip_char_t* name, int o_mode); 16 int zzip_file_mkdir(ZZIP_DIR* dir, zzip_char_t* name, int o_mode); 17 ZZIP_FILE* zzip_file_creat(ZZIP_DIR* dir, zzip_char_t* name, int o_mode); 18 zzip_ssize_t zzip_file_write(ZZIP_FILE* file, 19 const void* ptr, zzip_size_t len); 20 21 ZZIP_DIR* zzip_createdir(zzip_char_t* name, int o_mode); 22 zzip_ssize_t zzip_write(ZZIP_FILE* file, const void* ptr, zzip_size_t len); 23 zzip_size_t zzip_fwrite(const void* ptr, zzip_size_t len, 24 zzip_size_t multiply, ZZIP_FILE* file); 25 #ifndef zzip_savefile 26 #define zzip_savefile 0 27 #define zzip_savefile_is_null 28 #endif 29 30 #ifdef _ZZIP_NO_INLINE 31 #define zzip_mkdir(_name_,_mode_) \ 32 zzip_file_mkdir((zzip_savefile),(_name_),(_mode_)) 33 #define zzip_creat(_name_,_mode_) \ 34 zzip_file_creat((zzip_savefile),(_name_),(_mode_)) 35 #define zzip_sync() \ 36 { zzip_closedir((zzip_savefile)); (zzip_savefile) = 0; } 37 #define zzip_start(_name_,_mode_,_ext_) \ 38 { if ((zzip_savefile)) zzip_closedir((zzip_savefile)); 39 zzip_savefile = zzip_dir_creat(_name_, _mode_,_ext_); } 40 41 #else 42 43 _zzip_inline static int zzip_mkdir(zzip_char_t* name, int o_mode) 44 { return zzip_file_mkdir(zzip_savefile, name, o_mode); } 45 _zzip_inline static ZZIP_FILE* zzip_creat(zzip_char_t* name, int o_mode) 46 { return zzip_file_creat(zzip_savefile, name, o_mode); } 47 48 #ifndef zzip_savefile_is_null 49 _zzip_inline static void zzip_sync(void) 50 { zzip_closedir(zzip_savefile); zzip_savefile = 0; } 51 _zzip_inline static void zzip_mkfifo(zzip_char_t* name, int o_mode) 52 { if ((zzip_savefile)) zzip_closedir (zzip_savefile); 53 zzip_savefile = zzip_createdir(_name_,_mode_); } 54 #else 55 _zzip_inline static void zzip_sync(void) {} 56 _zzip_inline static void zzip_mkfifo(zzip_char_t* name, int o_mode) {} 57 #endif 58 #endif /* _ZZIP_NO_INLINE */ 59 #endif /* _ZZIP_WRITE_H */ 60