From c36cd3171366e13b6b5d50e2c3a2c7269cd8e89c Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 25 Jan 2000 14:17:21 +0000 Subject: [PATCH] the convoluted nest of #ifdefs that is fnmatch.c caught us again. On my system the LIBC tests meant it never compiled and we used the broken system one. hacked it so it does compile --- exclude.c | 6 ++++-- lib/fnmatch.c | 4 +--- lib/fnmatch.h | 6 +++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/exclude.c b/exclude.c index fefe2993..1b5373d3 100644 --- a/exclude.c +++ b/exclude.c @@ -94,15 +94,17 @@ static int check_one_exclude(char *name,struct exclude_struct *ex, } if (ex->regular_exp) { - if (fnmatch(pattern, name, ex->fnmatch_flags) == 0) + if (fnmatch(pattern, name, ex->fnmatch_flags) == 0) { return 1; + } } else { int l1 = strlen(name); int l2 = strlen(pattern); if (l2 <= l1 && strcmp(name+(l1-l2),pattern) == 0 && - (l1==l2 || (!match_start && name[l1-(l2+1)] == '/'))) + (l1==l2 || (!match_start && name[l1-(l2+1)] == '/'))) { return 1; + } } return 0; diff --git a/lib/fnmatch.c b/lib/fnmatch.c index dd6297c6..2feeac51 100644 --- a/lib/fnmatch.c +++ b/lib/fnmatch.c @@ -48,7 +48,6 @@ #endif #endif /* 0 */ - /* For platform which support the ISO C amendement 1 functionality we support user defined character classes. */ #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) @@ -65,8 +64,7 @@ program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ -#if defined _LIBC || !defined __GNU_LIBRARY__ - +#if 1 # if defined STDC_HEADERS || !defined isascii # define ISASCII(c) 1 diff --git a/lib/fnmatch.h b/lib/fnmatch.h index eeaee7fb..cc75ffdc 100644 --- a/lib/fnmatch.h +++ b/lib/fnmatch.h @@ -55,9 +55,13 @@ extern "C" { #define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ #define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ -#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE +#ifndef FNM_FILE_NAME # define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ +#endif +#ifndef FNM_LEADING_DIR # define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ +#endif +#ifndef FNM_CASEFOLD # define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ #endif -- 2.34.1