WANT_DIRECTORY_REMOVE_OPTION
};
int remove_any_file (const char *, enum remove_option);
-int maybe_backup_file (const char *, int);
+bool maybe_backup_file (const char *, int);
void undo_last_backup (void);
int deref_stat (bool, char const *, struct stat *);
/* Module xheader.c. */
void xheader_decode (struct tar_stat_info *);
-void xheader_store (char const *, struct tar_stat_info const *);
+void xheader_store (char const *, struct tar_stat_info const *, void *);
void xheader_read (union block *, size_t);
void xheader_finish (struct xheader *);
void xheader_destroy (struct xheader *);
/* Module system.c */
+void sys_stat_nanoseconds (struct tar_stat_info *stat);
void sys_detect_dev_null_output (void);
void sys_save_archive_dev_ino (void);
void sys_drain_input_pipe (void);
void sys_wait_for_child (pid_t);
void sys_spawn_shell (void);
-void sys_compare_uid_gid (struct stat *a, struct stat *b);
+bool sys_compare_uid (struct stat *a, struct stat *b);
+bool sys_compare_gid (struct stat *a, struct stat *b);
bool sys_file_is_archive (struct tar_stat_info *p);
-void sys_compare_links (struct stat *link_data, struct stat *stat_data);
+bool sys_compare_links (struct stat *link_data, struct stat *stat_data);
int sys_truncate (int fd);
void sys_reset_uid_gid (void);
pid_t sys_child_open_for_compress (void);
bool sys_get_archive_stat (void);
/* Module compare.c */
-void report_difference (const char *message, ...);
+void report_difference (struct tar_stat_info *st, const char *message, ...);
/* Module sparse.c */
bool sparse_file_p (struct tar_stat_info *stat);
enum dump_status sparse_dump_file (int fd, struct tar_stat_info *stat);
enum dump_status sparse_extract_file (int fd, struct tar_stat_info *stat, off_t *size);
+bool sparse_diff_file (int fd, struct tar_stat_info *stat);