X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fexclude.c;h=35f9f0d194d80797db08d904ea47c913b027f6cf;hb=774a9d80728c1f9bb87f44a1296552fd899031d4;hp=7df879dd17dfaa3f605a0b2249b09ce8dc0ab520;hpb=02e3bf2a532498c860f248a9bd81869dbf514404;p=gnulib.git diff --git a/lib/exclude.c b/lib/exclude.c index 7df879dd1..35f9f0d19 100644 --- a/lib/exclude.c +++ b/lib/exclude.c @@ -57,6 +57,7 @@ extern int errno; #include "exclude.h" #include "fnmatch.h" +#include "unlocked-io.h" #include "xalloc.h" #ifndef SIZE_MAX @@ -118,20 +119,20 @@ free_exclude (struct exclude *ex) static int fnmatch_no_wildcards (char const *pattern, char const *f, int options) { - if (! (options & FNM_CASEFOLD)) - return ((options & FNM_LEADING_DIR) + if (! (options & FNM_LEADING_DIR)) + return ((options & FNM_CASEFOLD) ? strcasecmp (pattern, f) : strcmp (pattern, f)); else { size_t patlen = strlen (pattern); - int r = ((options & FNM_LEADING_DIR) + int r = ((options & FNM_CASEFOLD) ? strncasecmp (pattern, f, patlen) : strncmp (pattern, f, patlen)); if (! r) { r = f[patlen]; - if (r == '/' && (options & FNM_LEADING_DIR)) + if (r == '/') r = 0; } return r; @@ -147,7 +148,7 @@ excluded_filename (struct exclude const *ex, char const *f) /* If no options are given, the default is to include. */ if (exclude_count == 0) - return 0; + return false; else { struct patopts const *exclude = ex->exclude;