]> Dogcows Code - chaz/tar/blobdiff - src/common.h
(diff_dumpdir): Rename stat->stat_data to avoid shadowing the syscall.
[chaz/tar] / src / common.h
index 2ee8c2b00343a2df0c42c29faa22fc8121c98083..9933aa6250753fb5fee0de151968efbeb5bfc9a5 100644 (file)
@@ -5,7 +5,7 @@
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any later
+   Free Software Foundation; either version 3, or (at your option) any later
    version.
 
    This program is distributed in the hope that it will be useful, but
    version.
 
    This program is distributed in the hope that it will be useful, but
@@ -416,6 +416,7 @@ void mv_end (void);
 void mv_total_size (off_t size);
 void mv_size_left (off_t size);
 
 void mv_total_size (off_t size);
 void mv_size_left (off_t size);
 
+void buffer_write_global_xheader (void);
 
 /* Module create.c.  */
 
 
 /* Module create.c.  */
 
@@ -512,14 +513,6 @@ enum read_header
   HEADER_FAILURE               /* ill-formed header, or bad checksum */
 };
 
   HEADER_FAILURE               /* ill-formed header, or bad checksum */
 };
 
-struct xheader
-{
-  struct obstack *stk;
-  size_t size;
-  char *buffer;
-};
-
-GLOBAL struct xheader extended_header;
 extern union block *current_header;
 extern enum archive_format current_format;
 extern size_t recent_long_name_blocks;
 extern union block *current_header;
 extern enum archive_format current_format;
 extern size_t recent_long_name_blocks;
@@ -675,23 +668,22 @@ void update_archive (void);
 
 /* Module xheader.c.  */
 
 
 /* Module xheader.c.  */
 
+void xheader_init (struct xheader *xhdr);
 void xheader_decode (struct tar_stat_info *stat);
 void xheader_decode (struct tar_stat_info *stat);
-void xheader_decode_global (void);
-void xheader_store (char const *keyword, struct tar_stat_info const *st,
+void xheader_decode_global (struct xheader *xhdr);
+void xheader_store (char const *keyword, struct tar_stat_info *st,
                    void const *data);
                    void const *data);
-void xheader_read (union block *header, size_t size);
+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, struct xheader *xhdr);
-void xheader_write_global (void);
+void xheader_write_global (struct xheader *xhdr);
 void xheader_finish (struct xheader *hdr);
 void xheader_destroy (struct xheader *hdr);
 char *xheader_xhdr_name (struct tar_stat_info *st);
 char *xheader_ghdr_name (void);
 void xheader_finish (struct xheader *hdr);
 void xheader_destroy (struct xheader *hdr);
 char *xheader_xhdr_name (struct tar_stat_info *st);
 char *xheader_ghdr_name (void);
-void xheader_write (char type, char *name, struct xheader *xhdr);
-void xheader_write_global (void);
 void xheader_set_option (char *string);
 void xheader_set_option (char *string);
-void xheader_string_begin (void);
-void xheader_string_add (char const *s);
-bool xheader_string_end (char const *keyword);
+void xheader_string_begin (struct xheader *xhdr);
+void xheader_string_add (struct xheader *xhdr, char const *s);
+bool xheader_string_end (struct xheader *xhdr, char const *keyword);
 bool xheader_keyword_deleted_p (const char *kw);
 char *xheader_format_name (struct tar_stat_info *st, const char *fmt,
                           size_t n);
 bool xheader_keyword_deleted_p (const char *kw);
 char *xheader_format_name (struct tar_stat_info *st, const char *fmt,
                           size_t n);
@@ -733,7 +725,14 @@ bool string_ascii_p (const char *str);
 bool utf8_convert (bool to_utf, char const *input, char **output);
 
 /* Module transform.c */
 bool utf8_convert (bool to_utf, char const *input, char **output);
 
 /* Module transform.c */
+typedef enum
+  {
+    xform_regfile,
+    xform_link,
+    xform_symlink
+  } xform_type;
+
 void set_transform_expr (const char *expr);
 bool transform_name (char **pinput);
 void set_transform_expr (const char *expr);
 bool transform_name (char **pinput);
-bool transform_member_name (char **pinput, bool lnk);
+bool transform_member_name (char **pinput, xform_type type);
 bool transform_name_fp (char **pinput, char *(*fun)(char *, void *), void *);
 bool transform_name_fp (char **pinput, char *(*fun)(char *, void *), void *);
This page took 0.023043 seconds and 4 git commands to generate.