m4-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU M4 source repository branch, master, updated. cvs-readonly-231


From: Eric Blake
Subject: [SCM] GNU M4 source repository branch, master, updated. cvs-readonly-231-gf6e75bf
Date: Tue, 25 Aug 2009 04:00:58 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU M4 source repository".

http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=f6e75bf0240fbf2b4e7f5dfc7d70de546241bbdd

The branch, master has been updated
       via  f6e75bf0240fbf2b4e7f5dfc7d70de546241bbdd (commit)
       via  db2b33bf92064729e8efde7f3342c3ee8014032d (commit)
      from  724c9cba4f9e8f7925d93f5aaa9899de8fa37f30 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit f6e75bf0240fbf2b4e7f5dfc7d70de546241bbdd
Author: Eric Blake <address@hidden>
Date:   Mon Aug 17 12:09:04 2009 -0600

    Pick up gnulib fixes for sub-process execution.
    
    * gnulib: Update.
    * tests/others.at (stdin and stdout closed): New test, to avoid
    regression introduced on 1.4 branch on 2008-07-17.
    * NEWS: Document the change.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit d3237b2af19c80fc80218fd33eb64266be510be8)

commit db2b33bf92064729e8efde7f3342c3ee8014032d
Author: Eric Blake <address@hidden>
Date:   Mon Aug 17 11:58:32 2009 -0600

    A status of 127 does not always imply esyscmd failure.
    
    * modules/gnu.c (esyscmd): Silence gnulib message; regression
    introduced 2009-03-13.
    * doc/m4.texinfo (Sysval): Test this.
    * NEWS: Document the change.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 5fa9c079fbe226113280ac86401b432d9c0e7981)

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog       |   14 ++++++++++++++
 NEWS            |   12 ++++++++++++
 doc/m4.texinfo  |    6 +++---
 gnulib          |    2 +-
 modules/gnu.c   |    3 ++-
 tests/others.at |   16 ++++++++++++++++
 6 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 70f7bcc..21b662c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2009-08-24  Eric Blake  <address@hidden>
+
+       Pick up gnulib fixes for sub-process execution.
+       * gnulib: Update.
+       * tests/others.at (stdin and stdout closed): New test, to avoid
+       regression introduced on 1.4 branch on 2008-07-17.
+       * NEWS: Document the change.
+
+       A status of 127 does not always imply esyscmd failure.
+       * modules/gnu.c (esyscmd): Silence gnulib message; regression
+       introduced 2009-03-13.
+       * doc/m4.texinfo (Sysval): Test this.
+       * NEWS: Document the change.
+
 2009-06-26  Eric Blake  <address@hidden>
 
        Use bitrotate for hashing.
diff --git a/NEWS b/NEWS
index c14107f..819dfee 100644
--- a/NEWS
+++ b/NEWS
@@ -335,6 +335,18 @@ contains the following beta features that were deemed 
worth deferring until
 
 ** A number of portability improvements inherited from gnulib.
 
+* Noteworthy changes in Version 1.4.14 (2009-??-??) [stable]
+  Released by Eric Blake, based on git version 1.4.13.*
+
+** Fix regression introduced in 1.4.12 where executing with stdout closed
+   could crash m4 on exit on some platforms.
+
+** Fix regressions introduced in 1.4.13 in the `esyscmd' builtin, where
+   closed file descriptors could interfere with child execution, and where
+   a child status of 127 made m4 print a spurious message to stderr.
+
+** A number of portability improvements inherited from gnulib.
+
 * Noteworthy changes in Version 1.4.13 (2009-04-01) [stable]
   Released by Eric Blake, based on git version 1.4.12.*
 
diff --git a/doc/m4.texinfo b/doc/m4.texinfo
index 2a31238..71c8421 100644
--- a/doc/m4.texinfo
+++ b/doc/m4.texinfo
@@ -8210,10 +8210,10 @@ esyscmd(`false')
 @result{}
 ifelse(sysval, `0', `zero', `non-zero')
 @result{}non-zero
-esyscmd(`exit 2')
+esyscmd(`echo dnl && exit 127')
 @result{}
 sysval
address@hidden
address@hidden
 esyscmd(`true')
 @result{}
 sysval
@@ -8224,7 +8224,7 @@ sysval
 command, for example, if the system-imposed argument length is exceeded,
 or if there were not enough resources to fork.  It is not possible to
 distinguish between failed execution and successful execution that had
-an exit status of 127.
+an exit status of 127, unless there was output from the child process.
 
 On UNIX platforms, where it is possible to detect when command execution
 is terminated by a signal, rather than a normal exit, the result is the
diff --git a/gnulib b/gnulib
index 836f397..2d8b95d 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 836f3974faad2f3de7bafd46719b77d6632a4c96
+Subproject commit 2d8b95d62cc4d6524fa6c4dbc3138d88a5839159
diff --git a/modules/gnu.c b/modules/gnu.c
index 5650c72..665b57c 100644
--- a/modules/gnu.c
+++ b/modules/gnu.c
@@ -731,7 +731,8 @@ M4BUILTIN_HANDLER (esyscmd)
        m4_error (context, EXIT_FAILURE, errno, me,
                  _("cannot read pipe to command %s"),
                  quotearg_style (locale_quoting_style, cmd));
-      status = wait_subprocess (child, caller, false, false, true, false,
+      errno = 0;
+      status = wait_subprocess (child, caller, false, true, true, false,
                                &sig_status);
       if (sig_status)
        {
diff --git a/tests/others.at b/tests/others.at
index f95d80f..5ff1bb0 100644
--- a/tests/others.at
+++ b/tests/others.at
@@ -737,6 +737,22 @@ m4 FOO
 
 AT_CLEANUP
 
+## ----------------------- ##
+## stdin and stdout closed ##
+## ----------------------- ##
+
+AT_SETUP([stdin and stdout closed])
+
+dnl no error when only stderr is used
+AT_DATA([in.m4], [[esyscmd(echo hi >&2 && echo err"print(bye
+)d"nl)dnl
+]])
+AT_CHECK_M4([in.m4 >&-], [0], [], [[hi
+bye
+]], [-])
+
+AT_CLEANUP
+
 ## ------------- ##
 ## stdout closed ##
 ## ------------- ##


hooks/post-receive
-- 
GNU M4 source repository




reply via email to

[Prev in Thread] Current Thread [Next in Thread]