]> Dogcows Code - chaz/tar/blobdiff - src/common.h
New actions: bell and ttyout
[chaz/tar] / src / common.h
index 4f1ac6ac0b4055ab715a44bfc9eb246dfa822822..e2fdf0d13dfa612d101ca74f0cc4e9124ddbf9ce 100644 (file)
@@ -1,11 +1,11 @@
 /* Common declarations for the tar program.
 
    Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
 /* Common declarations for the tar program.
 
    Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
-   2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 
    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
@@ -130,19 +130,13 @@ GLOBAL enum backup_type backup_type;
 GLOBAL bool block_number_option;
 
 GLOBAL unsigned checkpoint_option;
 GLOBAL bool block_number_option;
 
 GLOBAL unsigned checkpoint_option;
-
-enum checkpoint_style
-  {
-    checkpoint_text,
-    checkpoint_dot
-  };
-
-GLOBAL enum checkpoint_style checkpoint_style;
+#define DEFAULT_CHECKPOINT 10
 
 /* Specified name of compression program, or "gzip" as implied by -z.  */
 GLOBAL const char *use_compress_program_option;
 
 GLOBAL bool dereference_option;
 
 /* Specified name of compression program, or "gzip" as implied by -z.  */
 GLOBAL const char *use_compress_program_option;
 
 GLOBAL bool dereference_option;
+GLOBAL bool hard_dereference_option;
 
 /* Print a message if not all links are dumped */
 GLOBAL int check_links_option;
 
 /* Print a message if not all links are dumped */
 GLOBAL int check_links_option;
@@ -150,8 +144,18 @@ GLOBAL int check_links_option;
 /* Patterns that match file names to be excluded.  */
 GLOBAL struct exclude *excluded;
 
 /* Patterns that match file names to be excluded.  */
 GLOBAL struct exclude *excluded;
 
-/* Exclude directories containing a cache directory tag. */
-GLOBAL bool exclude_caches_option;
+enum exclusion_tag_type
+  {
+    exclusion_tag_none,
+     /* Exclude the directory contents, but preserve the directory
+       itself and the exclusion tag file */
+    exclusion_tag_contents,
+    /* Exclude everything below the directory, preserving the directory
+       itself */
+    exclusion_tag_under,
+    /* Exclude entire directory  */
+    exclusion_tag_all,
+  };
 
 /* Specified value to be put into tar file in place of stat () results, or
    just -1 if such an override should not take place.  */
 
 /* Specified value to be put into tar file in place of stat () results, or
    just -1 if such an override should not take place.  */
@@ -254,7 +258,7 @@ GLOBAL bool show_omitted_dirs_option;
 GLOBAL bool sparse_option;
 GLOBAL unsigned tar_sparse_major;
 GLOBAL unsigned tar_sparse_minor;
 GLOBAL bool sparse_option;
 GLOBAL unsigned tar_sparse_major;
 GLOBAL unsigned tar_sparse_minor;
-  
+
 GLOBAL bool starting_file_option;
 
 /* Specified maximum byte length of each tape volume (multiple of 1024).  */
 GLOBAL bool starting_file_option;
 
 /* Specified maximum byte length of each tape volume (multiple of 1024).  */
@@ -296,7 +300,7 @@ GLOBAL int archive;
 /* Nonzero when outputting to /dev/null.  */
 GLOBAL bool dev_null_output;
 
 /* Nonzero when outputting to /dev/null.  */
 GLOBAL bool dev_null_output;
 
-/* Timestamps: */ 
+/* Timestamps: */
 GLOBAL struct timespec start_time;        /* when we started execution */
 GLOBAL struct timespec volume_start_time; /* when the current volume was
                                             opened*/
 GLOBAL struct timespec start_time;        /* when we started execution */
 GLOBAL struct timespec volume_start_time; /* when the current volume was
                                             opened*/
@@ -406,6 +410,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.  */
 
@@ -417,6 +422,10 @@ enum dump_status
     dump_status_not_implemented
   };
 
     dump_status_not_implemented
   };
 
+void add_exclusion_tag (const char *name, enum exclusion_tag_type type,
+                       bool (*)(const char*));
+bool cachedir_file_p (const char *name);
+
 bool file_dumpable_p (struct tar_stat_info *st);
 void create_archive (void);
 void pad_archive (off_t size_left);
 bool file_dumpable_p (struct tar_stat_info *st);
 void create_archive (void);
 void pad_archive (off_t size_left);
@@ -430,7 +439,11 @@ union block * write_extended (bool global, struct tar_stat_info *st,
 union block *start_private_header (const char *name, size_t size);
 void write_eot (void);
 void check_links (void);
 union block *start_private_header (const char *name, size_t size);
 void write_eot (void);
 void check_links (void);
-
+void exclusion_tag_warning (const char *dirname, const char *tagname,
+                           const char *message);
+enum exclusion_tag_type check_exclusion_tags (char *dirname,
+                                             const char **tag_file_name);
+     
 #define GID_TO_CHARS(val, where) gid_to_chars (val, where, sizeof (where))
 #define MAJOR_TO_CHARS(val, where) major_to_chars (val, where, sizeof (where))
 #define MINOR_TO_CHARS(val, where) minor_to_chars (val, where, sizeof (where))
 #define GID_TO_CHARS(val, where) gid_to_chars (val, where, sizeof (where))
 #define MAJOR_TO_CHARS(val, where) major_to_chars (val, where, sizeof (where))
 #define MINOR_TO_CHARS(val, where) minor_to_chars (val, where, sizeof (where))
@@ -498,14 +511,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;
@@ -546,10 +551,6 @@ enum read_header tar_checksum (union block *header, bool silent);
 void skip_file (off_t size);
 void skip_member (void);
 
 void skip_file (off_t size);
 void skip_member (void);
 
-/* Module mangle.c.  */
-
-void extract_mangle (void);
-
 /* Module misc.c.  */
 
 void assign_string (char **dest, const char *src);
 /* Module misc.c.  */
 
 void assign_string (char **dest, const char *src);
@@ -665,23 +666,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);
@@ -705,12 +705,14 @@ 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);
 int sys_exec_info_script (const char **archive_name, int volume_number);
 int sys_exec_command (char *file_name, int typechar, struct tar_stat_info *st);
 void sys_wait_command (void);
 int sys_exec_info_script (const char **archive_name, int volume_number);
+void sys_exec_checkpoint_script (const char *script_name,
+                                const char *archive_name,
+                                int checkpoint_number);
 
 /* Module compare.c */
 void report_difference (struct tar_stat_info *st, const char *message, ...);
 
 /* Module sparse.c */
 
 /* Module compare.c */
 void report_difference (struct tar_stat_info *st, const char *message, ...);
 
 /* Module sparse.c */
-bool sparse_file_p (struct tar_stat_info *st);
 bool sparse_member_p (struct tar_stat_info *st);
 bool sparse_fixup_header (struct tar_stat_info *st);
 enum dump_status sparse_dump_file (int, struct tar_stat_info *st);
 bool sparse_member_p (struct tar_stat_info *st);
 bool sparse_fixup_header (struct tar_stat_info *st);
 enum dump_status sparse_dump_file (int, struct tar_stat_info *st);
@@ -724,8 +726,22 @@ 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_name_fp (char **pinput, char *(*fun)(char *));
-     
-     
+bool transform_member_name (char **pinput, xform_type type);
+bool transform_name_fp (char **pinput, char *(*fun)(char *, void *), void *);
+
+/* Module suffix.c */
+void set_comression_program_by_suffix (const char *name, const char *defprog);
+
+/* Module checkpoint.c */
+void checkpoint_compile_action (const char *str);
+void checkpoint_finish_compile (void);
+void checkpoint_run (bool do_write);
This page took 0.027539 seconds and 4 git commands to generate.