GLOBAL enum subcommand subcommand_option;
-#define READ_LIKE_SUBCOMMAND \
- (subcommand_option == EXTRACT_SUBCOMMAND \
- || subcommand_option == DIFF_SUBCOMMAND \
- || subcommand_option == LIST_SUBCOMMAND)
-
/* Selected format for output archive. */
GLOBAL enum archive_format archive_format;
};
GLOBAL enum old_files old_files_option;
+GLOBAL bool keep_directory_symlink_option;
+
/* Specified file name for incremental list. */
GLOBAL const char *listed_incremental_option;
/* Incremental dump level */
off_t current_block_ordinal (void);
void close_archive (void);
void closeout_volume_number (void);
-void compute_duration (void);
+double compute_duration (void);
union block *find_next_block (void);
void flush_read (void);
void flush_write (void);
off_t seek_archive (off_t size);
void set_start_time (void);
+#define TF_READ 0
+#define TF_WRITE 1
+#define TF_DELETED 2
+int format_total_stats (FILE *fp, char **formats, int eor, int eol);
+void print_total_stats (void);
+
void mv_begin_write (const char *file_name, off_t totsize, off_t sizeleft);
void mv_begin_read (struct tar_stat_info *st);
const char *repl, size_t rlen);
void append_incremental_renames (struct directory *dir);
+void show_snapshot_field_ranges (void);
void read_directory_file (void);
void write_directory_file (void);
void purge_directory (char const *directory_name);
void assign_string (char **dest, const char *src);
int unquote_string (char *str);
char *zap_slashes (char *name);
-char *normalize_filename (const char *name);
+char *normalize_filename (int cdidx, const char *name);
+void normalize_filename_x (char *name);
void replace_prefix (char **pname, const char *samp, size_t slen,
const char *repl, size_t rlen);
+char *tar_savedir (const char *name, int must_exist);
typedef struct namebuf *namebuf_t;
namebuf_t namebuf_create (const char *dir);
void namebuf_free (namebuf_t buf);
char *namebuf_name (namebuf_t buf, const char *name);
+void namebuf_add_dir (namebuf_t buf, const char *name);
+char *namebuf_finish (namebuf_t buf);
+
+const char *tar_dirname (void);
/* Represent N using a signed integer I such that (uintmax_t) I == N.
With a good optimizing compiler, this is equivalent to (intmax_t) i
void name_init (void);
void name_add_name (const char *name, int matching_flags);
void name_add_dir (const char *name);
+void name_add_file (const char *name, int term);
void name_term (void);
const char *name_next (int change_dirs);
void name_gather (void);
const char *subcommand_string (enum subcommand c);
void set_exit_status (int val);
+void request_stdin (const char *option);
+void more_options (int argc, char **argv);
+
/* Module update.c. */
extern char *output_start;
#define WARN_DECOMPRESS_PROGRAM 0x00080000
#define WARN_EXISTING_FILE 0x00100000
#define WARN_XATTR_WRITE 0x00200000
+#define WARN_RECORD_SIZE 0x00400000
-/* The warnings composing WARN_VERBOSE_WARNINGS are enabled by default
- in verbose mode */
+/* These warnings are enabled by default in verbose mode: */
#define WARN_VERBOSE_WARNINGS (WARN_RENAME_DIRECTORY|WARN_NEW_DIRECTORY|\
- WARN_DECOMPRESS_PROGRAM|WARN_EXISTING_FILE)
+ WARN_DECOMPRESS_PROGRAM|WARN_EXISTING_FILE|\
+ WARN_RECORD_SIZE)
#define WARN_ALL (~WARN_VERBOSE_WARNINGS)
void set_warning_option (const char *arg);