X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fcommon.h;h=2d48dbbe0040d62ae7102efe78a893ec709e8d0b;hb=c7ab8eaba40ef39f7b50cce4cb9228bf4ca09d2a;hp=c1effd4d69f04ee225d31c5cb6dc98d7b986f4c0;hpb=57c2124d68aa65843548feef9d226fb025503258;p=chaz%2Ftar diff --git a/src/common.h b/src/common.h index c1effd4..2d48dbb 100644 --- a/src/common.h +++ b/src/common.h @@ -114,7 +114,13 @@ GLOBAL bool utc_option; than newer_mtime_option. */ GLOBAL int after_date_option; -GLOBAL bool atime_preserve_option; +enum atime_preserve +{ + no_atime_preserve, + replace_atime_preserve, + system_atime_preserve +}; +GLOBAL enum atime_preserve atime_preserve_option; GLOBAL bool backup_option; @@ -317,7 +323,8 @@ 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 */ + list member names as stored in the + archive */ /* Declarations for each module. */ @@ -336,10 +343,11 @@ 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); @@ -361,6 +369,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 @@ -378,6 +392,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 (bool global, 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); @@ -601,6 +617,8 @@ 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); +const char *archive_format_string (enum archive_format fmt); +const char *subcommand_string (enum subcommand c); /* Module update.c. */ @@ -627,6 +645,8 @@ 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); +char *xheader_format_name (struct tar_stat_info *st, const char *fmt, + size_t n); /* Module system.c */ @@ -646,6 +666,7 @@ size_t sys_write_archive_buffer (void); bool sys_get_archive_stat (void); int sys_exec_command (char *file_name, int typechar, struct tar_stat_info *st); void sys_wait_command (void); +int sys_exec_info_script (const char *archive_name, int volume_number); /* Module compare.c */ void report_difference (struct tar_stat_info *st, const char *message, ...);