From: Paul Eggert Date: Thu, 8 Jul 1999 03:45:21 +0000 (+0000) Subject: (exclude_pool, exclude_pool_size, allocated_exclude_pool_size, X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Ftar;a=commitdiff_plain;h=8e8acfbc97574b9313dea279ce53e5c9fa93cb1f (exclude_pool, exclude_pool_size, allocated_exclude_pool_size, simple_exclude_array, simple_excludes, allocated_simple_excludes, pattern_exclude_array, pattern_excludes, allocated_pattern_excludes, add_exclude, add_exclude_file, check_exclude): Remove; now done in ../lib/exclude.c. --- diff --git a/src/names.c b/src/names.c index e37c8af..14c9c06 100644 --- a/src/names.c +++ b/src/names.c @@ -379,13 +379,10 @@ name_next (int change_dirs) else if (change_dirs && strcmp (name_buffer, "-C") == 0) chdir_flag = 1; else -#if 0 - if (!exclude_option || !check_exclude (name_buffer)) -#endif - { - unquote_string (name_buffer); - return name_buffer; - } + { + unquote_string (name_buffer); + return name_buffer; + } } /* No more names in file. */ @@ -808,137 +805,3 @@ new_name (const char *path, const char *name) sprintf (buffer, "%s/%s", path, name); return buffer; } - -/* Excludes names. */ - -static char *exclude_pool = NULL; -static size_t exclude_pool_size = 0; -static size_t allocated_exclude_pool_size = 0; - -static char **simple_exclude_array = NULL; -static int simple_excludes = 0; -static int allocated_simple_excludes = 0; - -static char **pattern_exclude_array = NULL; -static int pattern_excludes = 0; -static int allocated_pattern_excludes = 0; - -/*---. -| ? | -`---*/ - -void -add_exclude (char *name) -{ - size_t name_size; - - unquote_string (name); /* FIXME: unquote in all cases? If ever? */ - name_size = strlen (name) + 1; - - if (exclude_pool_size + name_size > allocated_exclude_pool_size) - { - char *previous_exclude_pool = exclude_pool; - char **cursor; - - allocated_exclude_pool_size = exclude_pool_size + name_size + 1024; - exclude_pool = (char *) - xrealloc (exclude_pool, allocated_exclude_pool_size); - - for (cursor = simple_exclude_array; - cursor < simple_exclude_array + simple_excludes; - cursor++) - *cursor = exclude_pool + (*cursor - previous_exclude_pool); - for (cursor = pattern_exclude_array; - cursor < pattern_exclude_array + pattern_excludes; - cursor++) - *cursor = exclude_pool + (*cursor - previous_exclude_pool); - } - - if (is_pattern (name)) - { - if (pattern_excludes == allocated_pattern_excludes) - { - allocated_pattern_excludes += 32; - pattern_exclude_array = (char **) - xrealloc (pattern_exclude_array, - allocated_pattern_excludes * sizeof (char *)); - } - pattern_exclude_array[pattern_excludes++] - = exclude_pool + exclude_pool_size; - } - else - { - if (simple_excludes == allocated_simple_excludes) - { - allocated_simple_excludes += 32; - simple_exclude_array = (char **) - xrealloc (simple_exclude_array, - allocated_simple_excludes * sizeof (char *)); - } - simple_exclude_array[simple_excludes++] - = exclude_pool + exclude_pool_size; - } - - strcpy (exclude_pool + exclude_pool_size, name); - exclude_pool_size += name_size; -} - -/*---. -| ? | -`---*/ - -void -add_exclude_file (const char *name) -{ - FILE *file; - char buffer[1024]; - - if (strcmp (name, "-")) - file = fopen (name, "r"); - else - { - request_stdin ("-X"); - file = stdin; - } - if (!file) - FATAL_ERROR ((0, errno, _("Cannot open %s"), name)); - - while (fgets (buffer, 1024, file)) - { - char *end_of_line = strrchr (buffer, '\n'); - - if (end_of_line) - *end_of_line = '\0'; - add_exclude (buffer); - } - if (fclose (file) == EOF) - ERROR ((0, errno, "%s", name)); -} - -/*------------------------------------------------------------------. -| Returns true if the file NAME should not be added nor extracted. | -`------------------------------------------------------------------*/ - -int -check_exclude (const char *name) -{ - int counter; - - for (counter = 0; counter < pattern_excludes; counter++) - if (fnmatch (pattern_exclude_array[counter], name, FNM_LEADING_DIR) == 0) - return 1; - - for (counter = 0; counter < simple_excludes; counter++) - { - /* Accept the output from strstr only if it is the last part of the - string. FIXME: Find a faster way to do this. */ - - char *string = strstr (name, simple_exclude_array[counter]); - - if (string - && (string == name || string[-1] == '/') - && string[strlen (simple_exclude_array[counter])] == '\0') - return 1; - } - return 0; -}