about summary refs log tree commit diff
path: root/posix
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-11-05 22:33:33 +0000
committerUlrich Drepper <drepper@redhat.com>1999-11-05 22:33:33 +0000
commita9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d (patch)
tree035ac3d3ad9bf7326cc1798ddc0b0960d498bc16 /posix
parent9532eb67a4a92baab960d8d37bfa28048285dabb (diff)
downloadglibc-a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d.tar.gz
glibc-a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d.tar.xz
glibc-a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d.zip
Update.
1999-11-05  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Adjust
	for kernel changes.
	* sysdeps/unix/sysv/linux/bits/types.h (__rlim_t, __rlim64_t): Make
	unsigned.

1999-10-04  Tim Waugh <twaugh@redhat.com>

	* posix/wordexp-test.c: More tests.

	* posix/wordexp.c (wordexp): Explicit null words should be kept.

1999-11-04  Shinya Hanataka  <hanataka@abyss.rim.or.jp>

	* locale/programs/linereader.c (get_string): Correct type of buf2
	variable.
	* locale/programs/ld-ctype.c (ctype_output): Store index correctly
	for _NL_CTYPE_INDIGITS_MB_LEN, _NL_CTYPE_INDIGITS_WC_LEN,
	_NL_CTYPE_INDIGITS*_MB, _NL_CTYPE_OUTDIGIT*_MB, and
	_NL_CTYPE_OUTDIGIT*_WC.
	(allocate_arrays): Completely initialize mapping tables.
	* locale/programs/ld-time.c (time_startup): We need the wide car
	string.
	(time_finish): Correct handling of era.
	(time_output): Fix a few array indeces.
	(time_read): Pass the repertoire map to lr_token.
Diffstat (limited to 'posix')
-rw-r--r--posix/wordexp-test.c15
-rw-r--r--posix/wordexp.c16
2 files changed, 31 insertions, 0 deletions
diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
index 03a5d3a9b1..56bac3f3ea 100644
--- a/posix/wordexp-test.c
+++ b/posix/wordexp-test.c
@@ -89,6 +89,9 @@ struct test_case_struct
     { 0, "foo", "\"$var\"\"$var\"", 0, 1, { "foofoo", }, IFS },
     { 0, NULL, "'singly-quoted'", 0, 1, { "singly-quoted", }, IFS },
     { 0, NULL, "contin\\\nuation", 0, 1, { "continuation", }, IFS },
+    { 0, NULL, "explicit ''", 0, 2, { "explicit", "", }, IFS },
+    { 0, NULL, "explicit \"\"", 0, 2, { "explicit", "", }, IFS },
+    { 0, NULL, "explicit ``", 0, 1, { "explicit", }, IFS },
 
     /* Simple command substitution */
     { 0, NULL, "$(echo hello)", 0, 1, { "hello", }, IFS },
@@ -244,6 +247,7 @@ main (int argc, char *argv[])
     if (testit (&test_case[test]))
       ++fail;
 
+  /* Tilde-expansion tests. */
   pw = getpwnam ("root");
   if (pw != NULL)
     {
@@ -259,6 +263,17 @@ main (int argc, char *argv[])
 
       if (testit (&ts))
 	++fail;
+
+      ts.retval = 0;
+      ts.env = pw->pw_dir;
+      ts.words = "${var#~root}x";
+      ts.flags = 0;
+      ts.wordc = 1;
+      ts.wordv[0] = "x";
+      ts.ifs = IFS;
+
+      if (testit (&ts))
+	++fail;
     }
 
   puts ("tests completed, now cleaning up");
diff --git a/posix/wordexp.c b/posix/wordexp.c
index dde9183db5..302cf0884f 100644
--- a/posix/wordexp.c
+++ b/posix/wordexp.c
@@ -2236,6 +2236,14 @@ wordexp (const char *words, wordexp_t *pwordexp, int flags)
 	if (error)
 	  goto do_error;
 
+	if (!word_length)
+	  {
+	    error = w_addword (pwordexp, NULL);
+
+	    if (error)
+	      return error;
+	  }
+
 	break;
 
       case '\'':
@@ -2246,6 +2254,14 @@ wordexp (const char *words, wordexp_t *pwordexp, int flags)
 	if (error)
 	  goto do_error;
 
+	if (!word_length)
+	  {
+	    error = w_addword (pwordexp, NULL);
+
+	    if (error)
+	      return error;
+	  }
+
 	break;
 
       case '~':