From 02ac66c50d2faf11677911fd99579869f24795ef Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 13 Jan 1996 00:46:48 +0000 Subject: [PATCH] Fri Jan 12 13:40:01 1996 Roland McGrath * posix/gnu/types.h: Moved to sysdeps/generic/gnu/types.h. * posix/glob.c (glob): Add parens in glob call flags arg for GLOB_BRACE case. * string/string.h (strdupa): New macro. * stdio-common/vfscanf.c (%[): Grok ] as first char in set, not terminator on empty set. From drepper. --- ChangeLog | 12 ++++++++++++ gnu/types.h | 1 - posix/glob.c | 4 ++-- stdio-common/vfscanf.c | 7 ++++++- string/string.h | 12 +++++++++++- {posix => sysdeps/generic}/gnu/types.h | 0 6 files changed, 31 insertions(+), 5 deletions(-) delete mode 100644 gnu/types.h rename {posix => sysdeps/generic}/gnu/types.h (100%) diff --git a/ChangeLog b/ChangeLog index ab1bec38e0..63d6e18973 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +Fri Jan 12 13:40:01 1996 Roland McGrath + + * posix/gnu/types.h: Moved to sysdeps/generic/gnu/types.h. + + * posix/glob.c (glob): Add parens in glob call flags arg for + GLOB_BRACE case. + + * string/string.h (strdupa): New macro. + + * stdio-common/vfscanf.c (%[): Grok ] as first char in set, not + terminator on empty set. From drepper. + Thu Jan 11 13:09:20 1996 Roland McGrath * elf/do-rel.h (elf_dynamic_do_rel): Use referring symbol as diff --git a/gnu/types.h b/gnu/types.h deleted file mode 100644 index 0d1fb31d06..0000000000 --- a/gnu/types.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/posix/glob.c b/posix/glob.c index 954960cb18..259ac020d2 100644 --- a/posix/glob.c +++ b/posix/glob.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as @@ -290,7 +290,7 @@ glob (pattern, flags, errfunc, pglob) memcpy (buf, pattern, begin - pattern); memcpy (buf + (begin - pattern), p, comma - p); memcpy (buf + (begin - pattern) + (comma - p), end, restlen); - result = glob (buf, (flags & ~(GLOB_NOCHECK|GLOB_NOMAGIC) | + result = glob (buf, ((flags & ~(GLOB_NOCHECK|GLOB_NOMAGIC)) | GLOB_APPEND), errfunc, pglob); if (result && result != GLOB_NOMATCH) return result; diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c index 14aa7d9748..c13627aac2 100644 --- a/stdio-common/vfscanf.c +++ b/stdio-common/vfscanf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -703,6 +703,11 @@ __vfscanf (FILE *s, const char *format, va_list argptr) else not_in = 0; + if (*f == ']') + /* If ] appears before any char in the set, it is not + the terminator, but the first char in the set. */ + ADDW (*f++); + while ((fc = *f++) != '\0' && fc != ']') { if (fc == '-' && *f != '\0' && *f != ']' && diff --git a/string/string.h b/string/string.h index 0f995319bb..95dcba0041 100644 --- a/string/string.h +++ b/string/string.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1993, 1995 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 95, 96 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -91,6 +91,16 @@ extern size_t strxfrm __P ((char *__dest, __const char *__src, size_t __n)); extern char *strdup __P ((__const char *__s)); #endif +#if defined (__USE_GNU) && defined (__GNUC__) +/* Duplicate S, returning an identical alloca'd string. */ +#define strdupa(s) \ +({ \ + const char *__old = (s); \ + size_t __len = strlen (__old) + 1; \ + memcpy (__builtin_alloca (__len), __old, __len); \ +}) +#endif + /* Find the first occurrence of C in S. */ extern char *strchr __P ((__const char *__s, int __c)); /* Find the last occurrence of C in S. */ diff --git a/posix/gnu/types.h b/sysdeps/generic/gnu/types.h similarity index 100% rename from posix/gnu/types.h rename to sysdeps/generic/gnu/types.h