autoconf-commit
[Top][All Lists]
Advanced

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

[SCM] GNU Autoconf source repository branch, master, updated. v2.63b-65-


From: Ralf Wildenhues
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.63b-65-g06aeca6
Date: Tue, 30 Jun 2009 21:05:41 +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 Autoconf source repository".

http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=06aeca6abe91d156762701badf1efe857b0472b5

The branch, master has been updated
       via  06aeca6abe91d156762701badf1efe857b0472b5 (commit)
      from  6c358e8f6ac5f30238657df471e446d82f076745 (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 06aeca6abe91d156762701badf1efe857b0472b5
Author: Jan Madzik <address@hidden>
Date:   Tue Jun 30 08:06:24 2009 +0200

    Avoid AIX 6.1 ksh88 ECHO_C command substitution bug.
    
    * lib/m4sugar/m4sh.m4 (_AS_ECHO_N_PREPARE): Ensure more than
    one character is output with `\c'; reset echo output state
    if buggy ksh was detected, and set ECHO_T instead of ECHO_C.
    * doc/autoconf.texi (Limitations of Builtins): Document it.
    * tests/m4sh.at (ECHO_C): New test.
    * THANKS: Update.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

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

Summary of changes:
 ChangeLog           |   11 +++++++++++
 THANKS              |    1 +
 doc/autoconf.texi   |    5 ++++-
 lib/m4sugar/m4sh.m4 |   13 +++++++++----
 tests/m4sh.at       |   20 ++++++++++++++++++++
 5 files changed, 45 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5f89c1b..8f0b5ae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2009-06-30  Jan Madzik  <address@hidden>  (tiny change)
+           Ralf Wildenhues  <address@hidden>
+
+       Avoid AIX 6.1 ksh88 ECHO_C command substitution bug.
+       * lib/m4sugar/m4sh.m4 (_AS_ECHO_N_PREPARE): Ensure more than
+       one character is output with `\c'; reset echo output state
+       if buggy ksh was detected, and set ECHO_T instead of ECHO_C.
+       * doc/autoconf.texi (Limitations of Builtins): Document it.
+       * tests/m4sh.at (ECHO_C): New test.
+       * THANKS: Update.
+
 2009-06-27  William Pursell  <address@hidden>  (tiny change)
 
        Fix grammaro in documenation.
diff --git a/THANKS b/THANKS
index eab63f2..30f1b2d 100644
--- a/THANKS
+++ b/THANKS
@@ -160,6 +160,7 @@ Iohannes m zmoelnig         address@hidden
 J C Fitzgerald              address@hidden
 Jaap Haitsma                address@hidden
 James A. Lupo               address@hidden
+Jan Madzik                  address@hidden
 Jason Molenda               address@hidden
 Jeff Garzik                 address@hidden
 Jeff Painter                ?
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 455d1c4..5908bbb 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -15733,7 +15733,10 @@ their handling.  For @samp{echo '\n' | wc -l}, the 
@command{sh} of
 Solaris outputs 2, but Bash and Zsh (in @command{sh} emulation mode) output 1.
 The problem is truly @command{echo}: all the shells
 understand @samp{'\n'} as the string composed of a backslash and an
address@hidden
address@hidden  Within a command substitution, @samp{echo 'string\c'} will
+mess up the internal state of ksh88 on AIX 6.1 so that it will print
+the first character @samp{s} only, followed by a newline, and then
+entirely drop the output of the next echo in a command substitution.
 
 Because of these problems, do not pass a string containing arbitrary
 characters to @command{echo}.  For example, @samp{echo "$foo"} is safe
diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4
index c7b0bff..b2cabd7 100644
--- a/lib/m4sugar/m4sh.m4
+++ b/lib/m4sugar/m4sh.m4
@@ -780,14 +780,19 @@ m4_defun_init([_AS_ECHO_LOG],
 # display the checking message.  In addition, caching something used once
 # has little interest.
 # Idea borrowed from dist 3.0.  Use `*c*,', not `*c,' because if `\c'
-# failed there is also a newline to match.
+# failed there is also a newline to match.  Use `xy' because `\c' echoed
+# in a command substitution prints only the first character of the output
+# with ksh version M-11/16/88f on AIX 6.1; it needs to be reset by another
+# backquoted echo.
 m4_defun([_AS_ECHO_N_PREPARE],
 [ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in @%:@((((
+case `echo -n x` in @%:@(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
   esac;;
 *)
   ECHO_N='-n';;
diff --git a/tests/m4sh.at b/tests/m4sh.at
index 065a9dd..f936a7c 100644
--- a/tests/m4sh.at
+++ b/tests/m4sh.at
@@ -1412,3 +1412,23 @@ AT_CHECK_M4SH
 AT_CHECK([./script])
 
 AT_CLEANUP
+
+
+## -------- ##
+## ECHO_C.  ##
+## -------- ##
+
+AT_SETUP([ECHO_C])
+
+AT_DATA_M4SH([script.as], [[dnl
+AS_INIT
+_AS_PREPARE
+foo=`echo foobar`
+echo "$foo"
+]])
+
+AT_CHECK_M4SH
+AT_CHECK([./script], [], [foobar
+])
+
+AT_CLEANUP


hooks/post-receive
-- 
GNU Autoconf source repository




reply via email to

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