]> Dogcows Code - chaz/tar/blobdiff - src/common.h
(volume_start_time,last_stat_time): New globals
[chaz/tar] / src / common.h
index 5cb2efb82216cc22fceded2f862def2f1074b82d..28a222302e6a553348561d3f22c863bd07c02d7d 100644 (file)
@@ -1,7 +1,7 @@
 /* Common declarations for the tar program.
 
    Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001,
-   2003, 2004, 2005 Free Software Foundation, Inc.
+   2003, 2004, 2005, 2006 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
@@ -129,7 +129,15 @@ GLOBAL enum backup_type backup_type;
 
 GLOBAL bool block_number_option;
 
-GLOBAL bool checkpoint_option;
+GLOBAL unsigned checkpoint_option;
+
+enum checkpoint_style
+  {
+    checkpoint_text,
+    checkpoint_dot
+  };
+
+GLOBAL enum checkpoint_style checkpoint_style;
 
 /* Specified name of compression program, or "gzip" as implied by -z.  */
 GLOBAL const char *use_compress_program_option;
@@ -281,16 +289,20 @@ GLOBAL int archive;
 /* Nonzero when outputting to /dev/null.  */
 GLOBAL bool dev_null_output;
 
-/* Timestamp for when we started execution.  */
-GLOBAL struct timespec start_time;
+/* 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 last_stat_time;    /* when the statistics was last
+                                            computed */
 
 GLOBAL struct tar_stat_info current_stat_info;
 
 /* List of tape drive names, number of such tape drives, allocated number,
    and current cursor in list.  */
 GLOBAL const char **archive_name_array;
-GLOBAL int archive_names;
-GLOBAL int allocated_archive_names;
+GLOBAL size_t archive_names;
+GLOBAL size_t allocated_archive_names;
 GLOBAL const char **archive_name_cursor;
 
 /* Output index file name.  */
@@ -299,16 +311,17 @@ GLOBAL char const *index_file_name;
 /* Structure for keeping track of filenames and lists thereof.  */
 struct name
   {
-    struct name *next;
-    size_t length;             /* cached strlen(name) */
+    struct name *next;          /* Link to the next element */
+    int change_dir;            /* Number of the directory to change to.
+                                  Set with the -C option. */
     uintmax_t found_count;     /* number of times a matching file has
                                   been found */
-    int explicit;               /* was explicitely given in the command line */
-    char firstch;              /* first char is literally matched */
-    char regexp;               /* this name is a regexp, not literal */
-    int change_dir;            /* set with the -C option */
+    int explicit;               /* this name was explicitely given in the
+                                  command line */
+    int matching_flags;                /* this name is a regexp, not literal */
     char const *dir_contents;  /* for incremental_option */
-    char fake;                 /* dummy entry */
+
+    size_t length;             /* cached strlen(name) */
     char name[1];
   };
 
@@ -325,16 +338,20 @@ GLOBAL bool unquote_option;
 
 GLOBAL bool test_label_option; /* Test archive volume label and exit */
 
-/* When creating archive in verbose mode, list member names as stored in the
-   archive */
-GLOBAL bool show_stored_names_option; 
+/* Show file or archive names after transformation.
+   In particular, when creating archive in verbose mode, list member names
+   as stored in the archive */
+GLOBAL bool show_transformed_names_option;
 
 /* Delay setting modification times and permissions of extracted directories
    until the end of extraction. This variable helps correctly restore directory
    timestamps from archives with an unusual member order. It is automatically
    set for incremental archives. */
-GLOBAL bool delay_directory_restore_option; 
+GLOBAL bool delay_directory_restore_option;
 
+/* Warn about implicit use of the wildcards in command line arguments.
+   (Default for tar prior to 1.15.91, but changed afterwards */
+GLOBAL bool warn_regex_usage;
 \f
 /* Declarations for each module.  */
 
@@ -368,7 +385,7 @@ void flush_write (void);
 void flush_archive (void);
 void init_volume_number (void);
 void open_archive (enum access_mode);
-void print_total_written (void);
+void print_total_stats (void);
 void reset_eof (void);
 void set_next_block_after (union block *);
 void clear_read_error_count (void);
@@ -397,7 +414,7 @@ enum dump_status
 bool file_dumpable_p (struct tar_stat_info *);
 void create_archive (void);
 void pad_archive (off_t size_left);
-void dump_file (char *, int, dev_t);
+void dump_file (const char *, int, dev_t);
 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);
@@ -443,6 +460,7 @@ void verify_volume (void);
 void extr_init (void);
 void extract_archive (void);
 void extract_finish (void);
+bool rename_directory (char *src, char *dst);
 
 /* Module delete.c.  */
 
@@ -451,6 +469,7 @@ void delete_archive_members (void);
 /* Module incremen.c.  */
 
 char *get_directory_contents (char *, dev_t);
+const char *append_incremental_renames (const char *dump);
 void read_directory_file (void);
 void write_directory_file (void);
 void purge_directory (char const *);
@@ -458,7 +477,7 @@ void list_dumpdir (char *buffer, size_t size);
 void update_parent_directory (const char *name);
 
 size_t dumpdir_size (const char *p);
-void get_gnu_dumpdir (void);
+bool is_dumpdir (struct tar_stat_info *stat_info);
 
 /* Module list.c.  */
 
@@ -513,6 +532,8 @@ void list_archive (void);
 void print_for_mkdir (char *, int, mode_t);
 void print_header (struct tar_stat_info *, off_t);
 void read_and (void (*) (void));
+enum read_header read_header_primitive (bool raw_extended_headers,
+                                       struct tar_stat_info *info);
 enum read_header read_header (bool);
 enum read_header tar_checksum (union block *header, bool silent);
 void skip_file (off_t);
@@ -577,7 +598,7 @@ void xpipe (int[2]);
 void *page_aligned_alloc (void **, size_t);
 int set_file_atime (int fd, char const *file,
                    struct timespec const timespec[2]);
-     
+
 /* Module names.c.  */
 
 extern struct name *gnu_list_name;
@@ -588,10 +609,10 @@ void uid_to_uname (uid_t, char **uname);
 int uname_to_uid (char const *, uid_t *);
 
 void init_names (void);
-void name_add (const char *);
-void name_init (void);
+void name_add_name (const char *, int);
+void name_add_dir (const char *name);
 void name_term (void);
-char *name_next (int);
+const char *name_next (int);
 void name_gather (void);
 struct name *addname (char const *, int);
 int name_match (const char *);
@@ -658,7 +679,7 @@ void xheader_string_end (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);
-     
+
 /* Module system.c */
 
 void sys_detect_dev_null_output (void);
@@ -694,3 +715,10 @@ bool sparse_diff_file (int, struct tar_stat_info *);
 /* Module utf8.c */
 bool string_ascii_p (const char *str);
 bool utf8_convert (bool to_utf, char const *input, char **output);
+
+/* Module transform.c */
+void set_transform_expr (const char *expr);
+bool transform_name (char **pinput);
+bool transform_name_fp (char **pinput, char *(*fun)(char *));
+     
+     
This page took 0.025383 seconds and 4 git commands to generate.