]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
docs: mention Solaris here-docs vs. ${a-"b c"}
authorEric Blake <eblake@redhat.com>
Mon, 30 Aug 2010 17:11:32 +0000 (11:11 -0600)
committerEric Blake <eblake@redhat.com>
Mon, 30 Aug 2010 17:16:17 +0000 (11:16 -0600)
* doc/autoconf.texi (Shell Substitutions) <${var:=value}>:
Document problem of "" within here-docs.
Reported by Ralf Wildenhues.

Signed-off-by: Eric Blake <eblake@redhat.com>
ChangeLog
doc/autoconf.texi

index 5d3ac87c51dad52caf543c4e3d2464d7093dbf15..7068a193054d3e2da1728dad18a233547eff8077 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2010-08-30  Eric Blake  <eblake@redhat.com>
 
+       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
index 840b4fe53a4102587662346e0ccbf37306815c26..923fff608b1c1fd5dc468b278fd3e77a8dd48fe5 100644 (file)
@@ -15466,7 +15466,8 @@ use null variable substitution patterns in configure scripts.
 @cindex $@{@var{var}+@var{value}@}
 When using @samp{$@{@var{var}-@var{value}@}} or
 @samp{$@{@var{var}-@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 @@ $ @kbd{/bin/sh -c 'echo $@{a-'\''b c'\''@}'}
 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 @@ $ @kbd{/bin/sh -c 'a=; echo "$@{a+\"b  c\"@}"'}
 "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