summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-01-13 00:46:48 +0000
committerRoland McGrath <roland@gnu.org>1996-01-13 00:46:48 +0000
commit02ac66c50d2faf11677911fd99579869f24795ef (patch)
treebafee0af52b84a7fe2f40725fa158ab6e7d1d6e1
parentd94d8f2a5960683c324e184f1240b0c26fd3bc09 (diff)
Fri Jan 12 13:40:01 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>cvs/libc-960113
* 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.
-rw-r--r--ChangeLog12
-rw-r--r--gnu/types.h1
-rw-r--r--posix/glob.c4
-rw-r--r--stdio-common/vfscanf.c7
-rw-r--r--string/string.h12
-rw-r--r--sysdeps/generic/gnu/types.h (renamed from posix/gnu/types.h)0
6 files changed, 31 insertions, 5 deletions
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 <roland@churchy.gnu.ai.mit.edu>
+
+ * 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 <roland@churchy.gnu.ai.mit.edu>
* 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 <posix/gnu/types.h>
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
index 2a40702c51..2a40702c51 100644
--- a/posix/gnu/types.h
+++ b/sysdeps/generic/gnu/types.h