]> Dogcows Code - chaz/tar/commitdiff
(struct name): Refactured
authorSergey Poznyakoff <gray@gnu.org.ua>
Thu, 25 May 2006 07:03:57 +0000 (07:03 +0000)
committerSergey Poznyakoff <gray@gnu.org.ua>
Thu, 25 May 2006 07:03:57 +0000 (07:03 +0000)
(warn_regex_usage): New variable.
(dump_file): First argument is const char*.
(name_init,name_add): Removed
(name_add_name,name_add_dir): New functions
(name_next): Return const char*.

src/common.h

index 4bbab6d37ba37b4eaaf66d068dc6e0be47b65ed5..3b32f93618b54e2acfb14fc7e9c6e37e5b871296 100644 (file)
@@ -289,8 +289,8 @@ 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 +299,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];
   };
 
@@ -335,6 +336,9 @@ GLOBAL bool show_stored_names_option;
    set for incremental archives. */
 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.  */
 
@@ -397,7 +401,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);
@@ -592,10 +596,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 *);
This page took 0.026367 seconds and 4 git commands to generate.