X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fcommon.h;h=cbcd2c735d5f9995325b01d5fd1b4c48e9d9ddfb;hb=f3a24a7a51d10c301441690c9302300e5410c260;hp=a4352c3914a1d833782ed0c4298bd2ad6603cb06;hpb=3209329337c87a102fa12d7eb60a3df323ba56c1;p=chaz%2Ftar diff --git a/src/common.h b/src/common.h index a4352c3..cbcd2c7 100644 --- a/src/common.h +++ b/src/common.h @@ -313,6 +313,13 @@ GLOBAL dev_t root_device; /* Unquote filenames */ GLOBAL bool unquote_option; + +GLOBAL bool test_label_option; /* Test archive volume label and exit */ + +GLOBAL bool show_stored_names_option; /* When creating archive in verbose mode, + list member names as stored in the + archive */ + /* Declarations for each module. */ @@ -330,18 +337,19 @@ extern enum access_mode access_mode; /* Module buffer.c. */ extern FILE *stdlis; -extern char *save_name; -extern off_t save_sizeleft; -extern off_t save_totsize; extern bool write_archive_to_stdout; +extern char *volume_label; +extern char *continued_file_name; +extern uintmax_t continued_file_size; +extern uintmax_t continued_file_offset; size_t available_space_after (union block *); off_t current_block_ordinal (void); void close_archive (void); void closeout_volume_number (void); union block *find_next_block (void); -void flush_read (void); -void flush_write (void); +void (*flush_read) (void); +void (*flush_write) (void); void flush_archive (void); void init_volume_number (void); void open_archive (enum access_mode); @@ -355,6 +363,12 @@ void archive_read_error (void); off_t seek_archive (off_t size); void set_start_time (void); +void mv_begin (struct tar_stat_info *st); +void mv_end (void); +void mv_total_size (off_t size); +void mv_size_left (off_t size); + + /* Module create.c. */ enum dump_status @@ -372,6 +386,8 @@ void dump_file (char *, int, dev_t); union block *start_header (struct tar_stat_info *st); void finish_header (struct tar_stat_info *, union block *, off_t); void simple_finish_header (union block *header); +union block * write_extended (char type, struct tar_stat_info *st, + union block *old_header); union block *start_private_header (const char *name, size_t size); void write_eot (void); void check_links (void); @@ -424,6 +440,10 @@ void read_directory_file (void); void write_directory_file (void); void purge_directory (char const *); void list_dumpdir (char *buffer, size_t size); +void update_parent_directory (const char *name); + +size_t dumpdir_size (const char *p); +void get_gnu_dumpdir (void); /* Module list.c. */ @@ -590,6 +610,7 @@ void request_stdin (const char *); void tar_stat_init (struct tar_stat_info *st); void tar_stat_destroy (struct tar_stat_info *st); void usage (int) __attribute__ ((noreturn)); +int tar_timespec_cmp (struct timespec a, struct timespec b); /* Module update.c. */ @@ -601,7 +622,7 @@ void update_archive (void); void xheader_decode (struct tar_stat_info *); void xheader_decode_global (void); -void xheader_store (char const *, struct tar_stat_info const *, void *); +void xheader_store (char const *, struct tar_stat_info const *, void const *); void xheader_read (union block *, size_t); void xheader_write (char type, char *name, struct xheader *xhdr); void xheader_write_global (void); @@ -612,6 +633,10 @@ char *xheader_ghdr_name (void); void xheader_write (char, char *, struct xheader *); void xheader_write_global (void); void xheader_set_option (char *string); +void xheader_string_begin (void); +void xheader_string_add (char const *s); +void xheader_string_end (char const *keyword); +bool xheader_keyword_deleted_p (const char *kw); /* Module system.c */