m4-patches
[Top][All Lists]
Advanced

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

Re: fix several regressions


From: Eric Blake
Subject: Re: fix several regressions
Date: Tue, 21 Jul 2009 22:03:54 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.22) Gecko/20090605 Thunderbird/2.0.0.22 Mnenhy/0.7.6.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Eric Blake on 7/20/2009 7:11 AM:
> Over the weekend, I identified several regressions introduced into m4
> 1.4.13 due to increased use of gnulib.  Many of these are corner cases
> (and one appears to affect only cygwin 1.7), but they are all worth fixing
> (and most of the fixes were made to gnulib over the weekend); I will
> probably spin m4 1.4.14 in mid-August (I will be going on vacation next
> week, and don't think I'll have time for the release this week).  All
> three branches will need these fixes.

And testing on other platforms (in this case, Solaris) shows that there
were still issues:

Checking ../../checks/005.command_li
@ ../doc/m4.texinfo:966: Origin of test
../../checks/005.command_li: stderr mismatch
- --- m4-tmp.23252/m4-xerr        2009-07-21 22:02:34.222251040 -0600
+++ m4-tmp.23252/m4-err 2009-07-21 22:02:34.103613400 -0600
@@ -1,2 +1,2 @@
- -m4: write error: Bad file descriptor
+m4: write error: Bad file number
 hi
Checking ../../checks/192.sysval
@ ../doc/m4.texinfo:6617: Origin of test
../../checks/192.sysval: stderr mismatch
- --- m4-tmp.23252/m4-xerr        2009-07-21 22:02:34.451926640 -0600
+++ m4-tmp.23252/m4-err 2009-07-21 22:02:34.358491080 -0600
@@ -0,0 +1 @@
+m4:stdin:10: cannot run command `echo dnl && exit 127': Illegal seek
Checking ../../checks/193.sysval


Fixed as follows:

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkpmj6oACgkQ84KuGfSFAYDolgCeNYTfrol87I2ntVAQ4wkrz0yP
GpYAoIK16Q0clFn/paPQXvaz9Cq6JXNs
=0Nl9
-----END PGP SIGNATURE-----
>From 3d14a9bdc82534da8e2bed18125a612344a6a9c9 Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Tue, 21 Jul 2009 21:38:41 -0600
Subject: [PATCH] Fix testsuite on Solaris.

* doc/m4.texinfo (Command line files): Tolerate different spelling
of EBADF.
* src/builtin.c (m4_esyscmd): Clear errno before reaping.

Signed-off-by: Eric Blake <address@hidden>
---
 ChangeLog      |    7 +++++++
 doc/m4.texinfo |   11 ++++++++++-
 src/builtin.c  |    1 +
 3 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a2d5c51..ceca154 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-07-22  Eric Blake  <address@hidden>
+
+       Fix testsuite on Solaris.
+       * doc/m4.texinfo (Command line files): Tolerate different spelling
+       of EBADF.
+       * src/builtin.c (m4_esyscmd): Clear errno before reaping.
+
 2009-07-21  Eric Blake  <address@hidden>

        Fix testsuite on mingw.
diff --git a/doc/m4.texinfo b/doc/m4.texinfo
index 9195e06..b95d109 100644
--- a/doc/m4.texinfo
+++ b/doc/m4.texinfo
@@ -961,8 +961,10 @@ Command line files
 @error{}m4: cannot open `Makefile/': Not a directory
 @end example

address@hidden Test that closed stderr does not cause a crash.
address@hidden Test that closed stderr does not cause a crash.  Not all
address@hidden systems have the same message for EBADF.

address@hidden xerr: ignore
 @example
 ifdef(`__unix__', ,
       `errprint(` skipping: syscmd does not have unix semantics
@@ -972,6 +974,13 @@ Command line files
 @error{}m4: write error: Bad file descriptor
 sysval
 @result{}1
address@hidden example
+
address@hidden
+ifdef(`__unix__', ,
+      `errprint(` skipping: syscmd does not have unix semantics
+')m4exit(`77')')dnl
+changequote(`[', `]')dnl
 syscmd([echo 'esyscmd(echo hi >&2)dnl' > tmp.m4 \
   && ']__program__[' tmp.m4 <&- >&- \
   && rm tmp.m4])sysval
diff --git a/src/builtin.c b/src/builtin.c
index d416a00..5a097f3 100644
--- a/src/builtin.c
+++ b/src/builtin.c
@@ -1042,6 +1042,7 @@ m4_esyscmd (struct obstack *obs, int argc, token_data 
**argv)
     }
   if (ferror (pin) || fclose (pin))
     M4ERROR ((EXIT_FAILURE, errno, "cannot read pipe"));
+  errno = 0;
   status = wait_subprocess (child, ARG (0), false, true, true, false,
                            &sig_status);
   if (sig_status)
-- 
1.6.3.3.334.g916e1


reply via email to

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