]> Dogcows Code - chaz/tar/commitdiff
(exclusion_tag_warning, check_exclusion_tags): Remove static qualifier.
authorSergey Poznyakoff <gray@gnu.org.ua>
Wed, 26 Sep 2007 22:07:44 +0000 (22:07 +0000)
committerSergey Poznyakoff <gray@gnu.org.ua>
Wed, 26 Sep 2007 22:07:44 +0000 (22:07 +0000)
(check_exclusion_tags): account for dirname without terminating
slash.
(dump_dir0): exclusion_tag_all is handled elsewhere.

src/create.c

index 35022364ae436eae4cee5af94ba0ef21eadb885b..f54e346f777c4828002ac6e24a103d50415312b1 100644 (file)
@@ -58,7 +58,7 @@ add_exclusion_tag (const char *name, enum exclusion_tag_type type,
   exclusion_tags = tag;
 }
 
-static void
+void
 exclusion_tag_warning (const char *dirname, const char *tagname,
                       const char *message)
 {
@@ -70,18 +70,19 @@ exclusion_tag_warning (const char *dirname, const char *tagname,
           message));
 }
 
-static enum exclusion_tag_type 
+enum exclusion_tag_type 
 check_exclusion_tags (char *dirname, const char **tag_file_name)
 {
   static char *tagname;
   static size_t tagsize;
   struct exclusion_tag *tag;
   size_t dlen = strlen (dirname);
+  int addslash = dirname[dlen-1] != '/';
   char *nptr = NULL;
   
   for (tag = exclusion_tags; tag; tag = tag->next)
     {
-      size_t size = dlen + tag->length + 1;
+      size_t size = dlen + addslash + tag->length + 1;
       if (size > tagsize)
        {
          tagsize = size;
@@ -92,6 +93,8 @@ check_exclusion_tags (char *dirname, const char **tag_file_name)
        {
          strcpy (tagname, dirname);
          nptr = tagname + dlen;
+         if (addslash)
+           *nptr++ = '/';
        }
       strcpy (nptr, tag->name);
       if (access (tagname, F_OK) == 0
@@ -1182,8 +1185,11 @@ dump_dir0 (char *directory,
       
       switch (check_exclusion_tags (st->orig_file_name, &tag_file_name))
        {
-       case exclusion_tag_none:
        case exclusion_tag_all:
+         /* Handled in dump_file0 */
+         break;
+         
+       case exclusion_tag_none:
          {
            char const *entry;
            size_t entry_len;
This page took 0.026645 seconds and 4 git commands to generate.