* doc/autoconf.texi (Shell Substitutions) <${var:=value}>:
Document problem of "" within here-docs.
Reported by Ralf Wildenhues.

Signed-off-by: Eric Blake <[email protected]>
---

Thanks again to Ralf for reporting this.

 ChangeLog         |    5 +++++
 doc/autoconf.texi |   26 ++++++++++++++++++++++++--
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5d3ac87..7068a19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2010-08-30  Eric Blake  <[email protected]>

+       docs: mention Solaris here-docs vs. ${a-"b c"}
+       * doc/autoconf.texi (Shell Substitutions) <${var:=value}>:
+       Document problem of "" within here-docs.
+       Reported by Ralf Wildenhues.
+
        fortran: always avoid AC_LANG_CONFTEST warning
        * lib/autoconf/lang.m4 (AC_LANG_CONFTEST()): Make the default
        match the fact that the default AC_LANG_SOURCE does not inline
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 840b4fe..b5b9ef3 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -15466,7 +15466,8 @@ Shell Substitutions
 @cindex $...@{@var{va...@var{value}@}
 When using @sam...@{@var{va...@var{value}@}} or
 @sam...@{@var{va...@var{value}@}} for providing alternate substitutions,
-...@var{value} must either be a single shell word or be quoted.  Solaris
+...@var{value} must either be a single shell word, quoted, or in the
+context of an unquoted here-document.  Solaris
 @command{/bin/sh} complains otherwise.

 @example
@@ -15476,12 +15477,17 @@ Shell Substitutions
 b c
 $ @kbd{/bin/sh -c 'echo "$...@{a-b c...@}"'}
 b c
+$ @kbd{/bin/sh -c 'cat <<EOF
+...@{a-b c...@}
+EOF}
+b c
 @end example

 According to Posix, if an expansion occurs inside double quotes, then
 the use of unquoted double quotes within @var{value} is unspecified, and
 any single quotes become literal characters; in that case, escaping must
-be done with backslash.
+be done with backslash.  Likewise, the use of unquoted here-documents is
+a case where double quotes have unspecified results:

 @example
 $ @kbd{/bin/sh -c 'echo "$...@{a-"b  c"@}"'}
@@ -15498,6 +15504,22 @@ Shell Substitutions
 "b  c"
 $ @kbd{/bin/sh -c 'a=; echo "$...@{a+b  c...@}"'}
 b  c
+$ @kbd{/bin/sh -c 'cat <<EOF
+...@{a-"b  c"@}
+EOF'}
+"b  c"
+$ @kbd{/bin/sh -c 'cat <<EOF
+...@{a-'b  c'@}
+EOF'}
+'b  c'
+$ @kbd{bash -c 'cat <<EOF
+...@{a-"b  c"@}
+EOF'}
+b  c
+$ @kbd{bash -c 'cat <<EOF
+...@{a-'b  c'@}
+EOF'}
+'b  c'
 @end example

 Perhaps the easiest way to work around quoting issues in a manner
-- 
1.7.2.2


Reply via email to