/* Return true if the extracted files are not being written to disk */
#define EXTRACT_OVER_PIPE (to_stdout_option || to_command_option)
/* Return true if the extracted files are not being written to disk */
#define EXTRACT_OVER_PIPE (to_stdout_option || to_command_option)
void close_archive (void);
void closeout_volume_number (void);
union block *find_next_block (void);
void close_archive (void);
void closeout_volume_number (void);
union block *find_next_block (void);
void flush_archive (void);
void init_volume_number (void);
void open_archive (enum access_mode);
void flush_archive (void);
void init_volume_number (void);
void open_archive (enum access_mode);
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 *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 *old_header);
union block *start_private_header (const char *name, size_t size);
void write_eot (void);
union block *old_header);
union block *start_private_header (const char *name, size_t size);
void write_eot (void);
#define UNAME_TO_CHARS(name,buf) string_to_chars (name, buf, sizeof(buf))
#define GNAME_TO_CHARS(name,buf) string_to_chars (name, buf, sizeof(buf))
#define UNAME_TO_CHARS(name,buf) string_to_chars (name, buf, sizeof(buf))
#define GNAME_TO_CHARS(name,buf) string_to_chars (name, buf, sizeof(buf))
-void gid_to_chars (gid_t, char *, size_t);
-void major_to_chars (major_t, char *, size_t);
-void minor_to_chars (minor_t, char *, size_t);
-void mode_to_chars (mode_t, char *, size_t);
-void off_to_chars (off_t, char *, size_t);
-void size_to_chars (size_t, char *, size_t);
-void time_to_chars (time_t, char *, size_t);
-void uid_to_chars (uid_t, char *, size_t);
-void uintmax_to_chars (uintmax_t, char *, size_t);
+bool gid_to_chars (gid_t, char *, size_t);
+bool major_to_chars (major_t, char *, size_t);
+bool minor_to_chars (minor_t, char *, size_t);
+bool mode_to_chars (mode_t, char *, size_t);
+bool off_to_chars (off_t, char *, size_t);
+bool size_to_chars (size_t, char *, size_t);
+bool time_to_chars (time_t, char *, size_t);
+bool uid_to_chars (uid_t, char *, size_t);
+bool uintmax_to_chars (uintmax_t, char *, size_t);
void tar_stat_destroy (struct tar_stat_info *st);
void usage (int) __attribute__ ((noreturn));
int tar_timespec_cmp (struct timespec a, struct timespec b);
void tar_stat_destroy (struct tar_stat_info *st);
void usage (int) __attribute__ ((noreturn));
int tar_timespec_cmp (struct timespec a, struct timespec b);
void xheader_string_add (char const *s);
void xheader_string_end (char const *keyword);
bool xheader_keyword_deleted_p (const char *kw);
void xheader_string_add (char const *s);
void xheader_string_end (char const *keyword);
bool xheader_keyword_deleted_p (const char *kw);
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);
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);