X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fcommon.h;h=360fb861ed7ebfa97e027d7d6689d0ec12372a87;hb=cac45fffc58cc10056c528582ee4b78b8ee175e0;hp=c2a92d228dd497a2089353ca9919d1f920307b01;hpb=4dfcd6c054a5e9e1a371c822a3be90564dd9b690;p=chaz%2Ftar diff --git a/src/common.h b/src/common.h index c2a92d2..360fb86 100644 --- a/src/common.h +++ b/src/common.h @@ -61,6 +61,7 @@ #define obstack_chunk_free free #include #include +#include #include @@ -452,7 +453,7 @@ void finish_header (struct tar_stat_info *st, union block *header, 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); +union block *start_private_header (const char *name, size_t size, time_t t); void write_eot (void); void check_links (void); void exclusion_tag_warning (const char *dirname, const char *tagname, @@ -595,6 +596,11 @@ char *normalize_filename (const char *name); void replace_prefix (char **pname, const char *samp, size_t slen, const char *repl, size_t rlen); +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 code_ns_fraction (int ns, char *p); char const *code_timespec (struct timespec ts, char *sbuf); enum { BILLION = 1000000000, LOG10_BILLION = 9 }; @@ -665,6 +671,7 @@ const char *name_next (int change_dirs); void name_gather (void); struct name *addname (char const *string, int change_dir, bool cmdline, struct name *parent); +void remname (struct name *name); bool name_match (const char *name); void names_notfound (void); void collect_and_sort_names (void); @@ -717,7 +724,7 @@ void xheader_decode_global (struct xheader *xhdr); void xheader_store (char const *keyword, struct tar_stat_info *st, void const *data); void xheader_read (struct xheader *xhdr, union block *header, size_t size); -void xheader_write (char type, char *name, struct xheader *xhdr); +void xheader_write (char type, char *name, time_t t, struct xheader *xhdr); void xheader_write_global (struct xheader *xhdr); void xheader_finish (struct xheader *hdr); void xheader_destroy (struct xheader *hdr);