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