Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 2 Jul 1999 11:50:55 +0000 (11:50 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 2 Jul 1999 11:50:55 +0000 (11:50 +0000)
1999-07-02  Tim Waugh  <tim@cyberelk.demon.co.uk>

* posix/wordexp-test.c: Revert bogus 'unset IFS' change.  It
doesn't belong in the tests, but in the wordexp implementation.

* posix/wordexp.c (exec_comm): Unset IFS so that subshells don't
split fields.

ChangeLog
manual/socket.texi
posix/wordexp-test.c
posix/wordexp.c

index 09ef1bc75c6fbccf2507bc71f69e7b955f2fa28d..5950790ad14204faed5b1a90c6c72d4108c9ebfc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,20 @@
+1999-07-02  Tim Waugh  <tim@cyberelk.demon.co.uk>
+
+       * posix/wordexp-test.c: Revert bogus 'unset IFS' change.  It
+       doesn't belong in the tests, but in the wordexp implementation.
+
+       * posix/wordexp.c (exec_comm): Unset IFS so that subshells don't
+       split fields.
+
 1999-07-01  Cristian Gafton  <gafton@redhat.com>
+
        * time/strptime.c (strptime): Initialize the tm struct first to avoid
        returning bogus results on incomplete data.
        (strptime_internal): day_of_the_week() requres bith tm_mon and
        tm_mday to be initializaed.
        Computer them first if they are not given.
        (strptime_internal): (have_mon, have_mday): New variables.
+
 1999-07-01  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
 
        * inet/rcmd.c (__icheckhost): Fix typo in last patch.
index d77e556214e5333a042b027777e8dab8d87b2e2c..b89a63f5ce3902bbc85ea29bed2633495b7cb4d3 100644 (file)
@@ -1285,7 +1285,7 @@ parameters.
 
 A pointer to the buffer, in which the result is stored, is available in
 @code{*@var{result}} after the function call successfully returned.  If
-an error occurs or if no entry is found, the pointer @code{*var{result}
+an error occurs or if no entry is found, the pointer @code{*@var{result}}
 is a null pointer.  Success is signalled by a zero return value.  If the
 function failed the return value is an error number.  In addition to the
 errors defined for @code{gethostbyname} it can also be @code{ERANGE}.
index 8720389d4b1167f9a417aa85955f7bcc120bcd14..03a5d3a9b1f94610c8504e584d560a862899958c 100644 (file)
@@ -56,25 +56,25 @@ struct test_case_struct
      * but does NOT start a new field. */
     { 0, ":abc:", "$var", 0, 2, { "", "abc", }, ":" },
 
-    { 0, NULL, "$(unset IFS;echo :abc:)", 0, 2, { "", "abc", }, ":" },
-    { 0, NULL, "$(unset IFS;echo :abc:\\ )", 0, 2, { "", "abc", }, ": " },
-    { 0, NULL, "$(unset IFS;echo :abc\\ )", 0, 2, { "", "abc", }, ": " },
-    { 0, ":abc:", "$(unset IFS;echo $var)", 0, 2, { "", "abc", }, ":" },
+    { 0, NULL, "$(echo :abc:)", 0, 2, { "", "abc", }, ":" },
+    { 0, NULL, "$(echo :abc:\\ )", 0, 2, { "", "abc", }, ": " },
+    { 0, NULL, "$(echo :abc\\ )", 0, 2, { "", "abc", }, ": " },
+    { 0, ":abc:", "$(echo $var)", 0, 2, { "", "abc", }, ":" },
     { 0, NULL, ":abc:", 0, 1, { ":abc:", }, ":" },
-    { 0, NULL, "$(unset IFS;echo :abc:)def", 0, 3, { "", "abc", "def", },
+    { 0, NULL, "$(echo :abc:)def", 0, 3, { "", "abc", "def", },
       ":" },
-    { 0, NULL, "$(unset IFS;echo abc:de)f", 0, 2, { "abc", "def", }, ":" },
-    { 0, NULL, "$(unset IFS;echo abc:de)f:ghi", 0, 2, { "abc", "def:ghi", },
+    { 0, NULL, "$(echo abc:de)f", 0, 2, { "abc", "def", }, ":" },
+    { 0, NULL, "$(echo abc:de)f:ghi", 0, 2, { "abc", "def:ghi", },
       ":" },
-    { 0, NULL, "abc:d$(unset IFS;echo ef:ghi)", 0, 2, { "abc:def", "ghi", },
+    { 0, NULL, "abc:d$(echo ef:ghi)", 0, 2, { "abc:def", "ghi", },
       ":" },
-    { 0, "abc:", "$var$(unset IFS;echo def:ghi)", 0, 3, { "abc", "def",
+    { 0, "abc:", "$var$(echo def:ghi)", 0, 3, { "abc", "def",
                                                          "ghi", }, ":" },
-    { 0, "abc:d", "$var$(unset IFS;echo ef:ghi)", 0, 3, { "abc", "def",
+    { 0, "abc:d", "$var$(echo ef:ghi)", 0, 3, { "abc", "def",
                                                          "ghi", }, ":" },
-    { 0, "def:ghi", "$(unset IFS;echo abc:)$var", 0, 3, { "abc", "def",
+    { 0, "def:ghi", "$(echo abc:)$var", 0, 3, { "abc", "def",
                                                          "ghi", }, ":" },
-    { 0, "ef:ghi", "$(unset IFS;echo abc:d)$var", 0, 3, { "abc", "def",
+    { 0, "ef:ghi", "$(echo abc:d)$var", 0, 3, { "abc", "def",
                                                          "ghi", }, ":" },
 
     /* Simple parameter expansion */
index b6cf85af322e5bebcb5d12e263c9c71bcde839ca..dde9183db5f04e2f19176201e1d9647fa81e99e4 100644 (file)
@@ -859,6 +859,9 @@ exec_comm (char *comm, char **word, size_t *word_length, size_t *max_length,
            }
        }
 
+      /* Make sure the subshell doesn't field-split on our behalf. */
+      unsetenv ("IFS");
+
       __close (fildes[0]);
       __execve (_PATH_BSHELL, (char *const *) args, __environ);