of rolling our own unset.
(_AS_PREPARE): $as_unset CDPATH instead of AS_UNSETting it, since
in practice we needn't worry about CDPATH if unset doesn't work.
Use PATH="/nonexistent;.", not PATH=".;.", as FreeBSD ksh2002
apparently treats PATH="nonexistent" as if it contained ".".
Bug reported by Stefan `Sec' Zehl.
workaround for ${1+"$@"}.
* doc/autoconf.texi (Shell Substitutions): Explain it.
From Oliver Kiddle and Peter Stephenson.
Have M4sh perform minimal shell sanitizing.
* lib/m4sugar/m4sh.at (AS_SHELL_SANITIZE): Split the `_AS_PREPARE_*'
part into...
(_AS_PREPARE): this new macro.
(AS_PREPARE): New.
(AS_INIT): Invoke AS_SHELL_SANITIZE.
* tests/m4sh.at (AT_DATA_LINENO): Use _AS_PREPARE.
Adjust Autoconf and Autotest.
* lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Don't invoke
AS_SHELL_SANITIZE, AS_INIT did it, but invoke AS_PREPARE.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS):
Invoke _AS_PREPARE (not AS_PREPARE) in addition to
AS_SHELL_SANITIZE.
Use this M4sh to generate Autoconf's shell scripts.
* tests/wrapsh.as: New, precursor of wrapsh.in.
* tests/Makefile.am: Include lib/freeze.mk to get the dependencies
on Autotest and M4sh.
($(TESTSUITE)): Use $(autotest_m4f_dependencies).
(wrapsh.in): New target.
* bin/autoconf.as: New, precursor of autoconf.in.
(autoconf.in): New target.
(AS_MKDIR_P): Require it. Use mkdir -p if available, falling
back on AS_DIRNAME to compute prefixes otherwise; this is
roughly what mkinstalldirs does. That way, we need not have
our own filename disassembler. The old disassembler did not
work with Solaris 8 dtksh, which is ksh Version M-12/28/93d.
* lib/m4sugar/m4sugar.m4 (m4_lquote): Remove, it is totally
useless.
(_m4_foreach): Define the variant with immediate evaluation so
that it contains exactly the items, not an expression which
evaluation is the current item.
(m4_re_string, m4_re_word): Don't over quote them.
`foreach' loops immediately evaluate them.
* lib/m4sugar/m4sugar.m4 (m4_quote, m4_dquote): Use $@ rather than
$*. This is the n-th time I change my mind, but hopefully this is
the last...
(m4_lquote): New.
(m4_text_wrap): Use m4_foreach, which is finally correct _and_
efficient.
(m4_foreach_quoted, m4_car_quoted, _m4_foreach_quoted): Remove, as
it was only a hack for m4_text_wrap.
(m4_car2): Remove, replaced by...
(m4_cdr): New.
(_m4_foreach): Adjust.
* lib/autoconf/general.m4 (_AC_INIT_PREPARE): Adjust, and use
m4_bpatsubst for clarification.
work even if there are multiple instances of $LINENO on the same line.
Do not substitute for other variables like $LINENOT. Do not check
file dates; such a check is unreliable on sufficiently fast machines,
and removing the check makes the code simpler and more reliable.
Check for output and chmod failures.
(AS_BASENAME_EXPR): New macro.
(AS_BASENAME_SED): Do not assume GNU sed semantics.
(AS_BASENAME): Use 'basename' if that works; then try 'expr';
and fall back on 'sed' only if the other two fail. This makes
AS_BASENAME act more like AS_DIRNAME.
(m4_list_cmp): Use $0 to reinvoke yourself.
(m4_patsubsts): New.
(m4_strip, m4_version_unletter): Use it.
* tests/atspecific.m4 (AT_DATA_M4SUGAR, AT_DATA_M4SH): Likewise.
* lib/m4sugar/m4sh.m4: here.
(AS_INIT): Push the BODY diversion, set the #! /bin/sh line.
* lib/autoconf/general.m4 (AC_PLAIN_SCRIPT) : Remove.
(AT_INIT): Replace AC_PLAIN_SCRIPT with AS_INIT invocation,
include handle the m4_pattern_*, no longer push the
BODY diversion nor set the /bin/sh line, AS_INIT does it.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* tests/base.at: Adjust the tests to use AS_INIT.
* tests/tools.at (AT_DATA_FORBIDDEN): New.
(autoconf: forbidden tokens): Adjust to work on M4sh instead of
Autoconf.