[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Exclusions not working
From: |
Paul Eggert |
Subject: |
Re: Exclusions not working |
Date: |
Fri, 3 Nov 2000 09:39:38 -0800 (PST) |
I can't reproduce the problem on Solaris with GNU tar 1.13.18 using
the following scenario. Is this scenario the right one?
$ mkdir -p spool/postfix/private
$ touch spool/postfix/private/file
$ echo './spool/postfix/private/*' >x
$ gtar -cf /tmp/tar --exclude-from=x .
$ gtar -tvf /tmp/tar
drwxrwxr-x eggert/eggert 0 2000-11-03 09:29:33 ./
drwxrwxr-x eggert/eggert 0 2000-11-03 09:27:41 ./spool/
drwxrwxr-x eggert/eggert 0 2000-11-03 09:27:41 ./spool/postfix/
drwxrwxr-x eggert/eggert 0 2000-11-03 09:27:49 ./spool/postfix/private/
-rw-rw-r-- eggert/eggert 26 2000-11-03 09:28:01 ./x
Possibly that is a bug in your GNU C library. Please try using GNU
tar 1.13.18 <ftp://alpha.gnu.org/gnu/tar/> with the following patch;
it works around the glibc bug. If that doesn't work, please send a
standalone test case.
2000-11-02 Paul Eggert <address@hidden>
* lib/fnmatch.c: Do not comment out all the code if we are
using the GNU C library, because in some cases we are
replacing buggy code in the GNU C library itself.
2000-10-30 Paul Eggert <address@hidden>
* lib/fnmatch.c (FOLD): Do not assume that characters are unsigned.
===================================================================
RCS file: lib/fnmatch.c,v
retrieving revision 1.2
retrieving revision 1.4
diff -pu -r1.2 -r1.4
--- lib/fnmatch.c 2000/10/24 06:18:37 1.2
+++ lib/fnmatch.c 2000/11/03 00:23:21 1.4
@@ -27,22 +27,10 @@
#include <fnmatch.h>
#include <ctype.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
- actually compiling the library itself. This code is part of the GNU C
- Library, but also included in many other GNU distributions. Compiling
- and linking in this code is a waste when using the GNU C library
- (especially if it is a shared library). Rather than having every GNU
- 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 defined STDC_HEADERS || !defined isascii
# define IN_CTYPE_DOMAIN(c) 1
# else
-# define IN_CTYPE_DOMAIN(c) isascii(c)
+# define IN_CTYPE_DOMAIN(c) isascii (c)
# endif
# define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c))
@@ -61,7 +49,9 @@ fnmatch (const char *pattern, const char
register char c;
/* Note that this evaluates C many times. */
-# define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER (c) ? tolower (c) : (c))
+# define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER ((unsigned char) (c)) \
+ ? tolower ((unsigned char) (c)) \
+ : (c))
while ((c = *p++) != '\0')
{
@@ -238,5 +228,3 @@ fnmatch (const char *pattern, const char
# undef FOLD
}
-
-#endif /* _LIBC or not __GNU_LIBRARY__. */