From a9c27b3ee95cbd5a3c81d9999a97e6de7b770b5d Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 5 Nov 1999 22:33:33 +0000 Subject: Update. 1999-11-05 Ulrich Drepper * 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 * posix/wordexp-test.c: More tests. * posix/wordexp.c (wordexp): Explicit null words should be kept. 1999-11-04 Shinya Hanataka * 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. --- posix/wordexp-test.c | 15 +++++++++++++++ posix/wordexp.c | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) (limited to 'posix') diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c index 03a5d3a..56bac3f 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 dde9183..302cf08 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 '~': -- cgit v1.1