From 3116126871400c8737a9df0145f66534f097c06c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 18 Mar 1998 14:42:25 +0000 Subject: Update. 1998-03-18 14:25 Ulrich Drepper * string/bits/string2.h: Add optimization for strdup. Always define __strsep and __strtok_r and make real names available when feature select macros are defined. 1998-03-18 Andreas Jaeger * manual/install.texi (Installation): Use i486-linux as example instead of the unsupported sunos4. (Reporting Bugs): Mention glibcbug script. (Tools for Installation): gcc 2.8.1/egcs 1.0.2 is required. 1998-03-16 Andreas Schwab * posix/wordexp-tst.sh: Make portable. Add more tests. * posix/Makefile (do-globtest do-wordexp-test): New targets. 1998-03-18 13:38 Ulrich Drepper * sysdeps/unix/sysv/linux/libc-start.c: Moved to ... * sysdeps/generic/libc-start.c: ...here, replacing former content. * sysdeps/unix/sysv/linux/Dist: Add netash/ash.h and netpacket/packet.h. * sysdeps/unix/sysv/linux/bits/socket.h: Pretty print. 1998-03-17 Andreas Schwab * sysdeps/unix/sysv/linux/bits/resource.h: Remove trailing comma in enumerator for strict standard compliance. * sysdeps/generic/bits/resource.h: Likewise. 1998-03-18 10:04 Philip Blundell * sysdeps/arm/sysdep.h (__ARM_USES_FP): Deleted. (PLTJMP): New macro. * sysdeps/arm/fpu/__longjmp.S: New file, implementation of longjmp() when floating point enabled. * sysdeps/arm/fpu/setjmp.S: Likewise for setjmp(). * sysdeps/arm/__longjmp.S: Remove floating point code. * sysdeps/arm/setjmp.S: Likewise. * sysdeps/arm/bsd-setjmp.S: Call __sigsetjmp by correct name. * sysdeps/arm/bsd-_setjmp.S: Likewise. * sysdeps/arm/memset.S: New file; optimised ARM implementation of memset(). * sysdeps/generic/setsockopt.c (setsockopt): Keep in step with prototype. 1998-03-17 16:16 Philip Blundell Based on patches from Pat Beirne and Scott Bambrough: * sysdeps/arm/__longjmp.S: Use ip, not r2, as temporary. * sysdeps/arm/bits/fenv.h: New file. * sysdeps/arm/dl-machine.h: New file. Add ELF support. * sysdeps/arm/elf/setjmp.S: Likewise. * sysdeps/arm/elf/start.S: Likewise. * sysdeps/arm/init-first.c: Likewise. * sysdeps/arm/setjmp.S: Call __sigjmp_save through PLT * sysdeps/arm/sysdep.h: Change format of .type directive. Correct comment about floating point to reflect current reality. * sysdeps/unix/arm/brk.S: Support PIC. * sysdeps/unix/arm/sysdep.S (syscall_error): Support PIC and re-entrant code. * sysdeps/unix/sysv/linux/arm/socket.S: Check correctly for error return; call syscall_error through PLT. * sysdeps/unix/sysv/linux/arm/sysdep.h (ENTRY): Correct error jump. 1998-03-04 12:01 Philip Blundell * sysdeps/unix/sysv/linux/netpacket/packet.h: New file. * sysdeps/unix/sysv/linux/netash/ash.h: Likewise. * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Install them. --- posix/Makefile | 11 ++++++++--- posix/wordexp-test.c | 2 +- posix/wordexp-tst.sh | 24 +++++++++++++++++++++++- posix/wordexp.c | 6 +++--- 4 files changed, 35 insertions(+), 8 deletions(-) (limited to 'posix') diff --git a/posix/Makefile b/posix/Makefile index 0fc1787968..7b00d48435 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -64,9 +64,14 @@ before-compile := testcases.h include ../Rules ifeq (no,$(cross-compiling)) -tests: $(objpfx)globtest $(objpfx)wordexp-test - $(SHELL) -e globtest.sh $(common-objpfx) $(elf-objpfx) $(rtld-installed-name) - $(SHELL) -e wordexp-tst.sh $(common-objpfx) $(elf-objpfx) $(rtld-installed-name) +.PHONY: do-globtest do-wordexp-tst +tests: do-globtest do-wordexp-test +do-globtest: $(objpfx)globtest + $(SHELL) -e globtest.sh $(common-objpfx) $(elf-objpfx) \ + $(rtld-installed-name) +do-wordexp-test: $(objpfx)wordexp-test + $(SHELL) -e wordexp-tst.sh $(common-objpfx) $(elf-objpfx) \ + $(rtld-installed-name) endif CFLAGS-regex.c = -Wno-unused -Wno-strict-prototypes diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c index 2fc5f0ffac..1797a7a42e 100644 --- a/posix/wordexp-test.c +++ b/posix/wordexp-test.c @@ -164,7 +164,7 @@ main (int argc, char *argv[]) const char *globfile[] = { "one", "two", "three", NULL }; char tmpdir[32]; struct passwd *pw; - char *cwd; + const char *cwd; int test; int fail = 0; int i; diff --git a/posix/wordexp-tst.sh b/posix/wordexp-tst.sh index e1f0b78830..57ef01383b 100755 --- a/posix/wordexp-tst.sh +++ b/posix/wordexp-tst.sh @@ -12,7 +12,13 @@ rtld_installed_name=$1; shift testout=$TMPDIR/wordexp-test-result failed=0 -export IFS=$(echo -e " \t\n") +# This is written in this funny way so that there is no trailing whitespace. +# The first line contains a space followed by a tab. +IFS=" \ + +" +export IFS + ${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} \ ${common_objpfx}posix/wordexp-test '$*' > ${testout}1 @@ -70,4 +76,20 @@ we_wordv[2] = "4" we_wordv[3] = "th" EOF +${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} \ +${common_objpfx}posix/wordexp-test '${11}' 2 3 4 5 6 7 8 9 10 11 > ${testout}8 +cat <<"EOF" | cmp - ${testout}8 || failed=1 +wordexp returned 0 +we_wordv[0] = "11" +EOF + +${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} \ +${common_objpfx}posix/wordexp-test '"a $@ b"' c d > ${testout}9 +cat <<"EOF" | cmp - ${testout}9 || failed=1 +wordexp returned 0 +we_wordv[0] = "a "a $@ b"" +we_wordv[1] = "c" +we_wordv[2] = "d b" +EOF + exit $failed diff --git a/posix/wordexp.c b/posix/wordexp.c index 1c69af8a1c..268a0e8c86 100644 --- a/posix/wordexp.c +++ b/posix/wordexp.c @@ -1548,7 +1548,7 @@ envsubst: pattern = qtd_pattern; } - if (pattern == NULL && (pattern = __strdup("")) == NULL) + if (pattern == NULL && (pattern = __strdup ("")) == NULL) goto no_space; error = wordexp (pattern, &we, flags); @@ -1563,8 +1563,8 @@ envsubst: assert (!quoted || we.we_wordc == 1); /* Substitute */ - for (i = 0; i < we.we_wordc; i++) - if (w_addword (pwordexp, __strdup(we.we_wordv[i])) + for (i = 0; i < we.we_wordc; ++i) + if (w_addword (pwordexp, __strdup (we.we_wordv[i])) == WRDE_NOSPACE) break; -- cgit 1.4.1