X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fcommon.h;h=3b91f464c5a62d0f39779e327d3b76e8c36a3d5d;hb=c79f0d06bc0ff617f4785874e366240f441eeb92;hp=2af403c102535725e4279b2526242071edd5b3b1;hpb=166b7c7d028c3dbcfded5c834b9bf752d2fb41f0;p=chaz%2Ftar diff --git a/src/common.h b/src/common.h index 2af403c..3b91f46 100644 --- a/src/common.h +++ b/src/common.h @@ -85,7 +85,8 @@ enum subcommand DIFF_SUBCOMMAND, /* -d */ EXTRACT_SUBCOMMAND, /* -x */ LIST_SUBCOMMAND, /* -t */ - UPDATE_SUBCOMMAND /* -u */ + UPDATE_SUBCOMMAND, /* -u */ + TEST_LABEL_SUBCOMMAND, /* --test-label */ }; GLOBAL enum subcommand subcommand_option; @@ -104,6 +105,8 @@ GLOBAL bool absolute_names_option; /* Display file times in UTC */ GLOBAL bool utc_option; +/* Output file timestamps to the full resolution */ +GLOBAL bool full_time_option; /* This variable tells how to interpret newer_mtime_option, below. If zero, files get archived if their mtime is not less than newer_mtime_option. @@ -362,8 +365,6 @@ GLOBAL dev_t root_device; /* Unquote filenames */ GLOBAL bool unquote_option; -GLOBAL bool test_label_option; /* Test archive volume label and exit */ - /* Show file or archive names after transformation. In particular, when creating archive in verbose mode, list member names as stored in the archive */ @@ -403,6 +404,8 @@ extern uintmax_t continued_file_size; extern uintmax_t continued_file_offset; extern off_t records_written; +char *drop_volume_label_suffix (const char *label); + size_t available_space_after (union block *pointer); off_t current_block_ordinal (void); void close_archive (void); @@ -547,6 +550,17 @@ enum read_header HEADER_FAILURE /* ill-formed header, or bad checksum */ }; +/* Operation mode for read_header: */ + +enum read_header_mode +{ + read_header_auto, /* process extended headers automatically */ + read_header_x_raw, /* return raw extended headers (return + HEADER_SUCCESS_EXTENDED) */ + read_header_x_global /* when POSIX global extended header is read, + decode it and return + HEADER_SUCCESS_EXTENDED */ +}; extern union block *current_header; extern enum archive_format current_format; extern size_t recent_long_name_blocks; @@ -578,13 +592,14 @@ uid_t uid_from_header (const char *buf, size_t size); uintmax_t uintmax_from_header (const char *buf, size_t size); void list_archive (void); +void test_archive_label (void); void print_for_mkdir (char *dirname, int length, mode_t mode); void print_header (struct tar_stat_info *st, union block *blk, off_t block_ordinal); void read_and (void (*do_something) (void)); enum read_header read_header (union block **return_block, struct tar_stat_info *info, - bool raw_extended_headers); + enum read_header_mode m); enum read_header tar_checksum (union block *header, bool silent); void skip_file (off_t size); void skip_member (void);