[bug#67268] [PATCH] texinfo: add pointer about combining tests
I guess I don't see any harm in keeping the link to POSIX. Perhaps it should be in the Autoconf manual, but either way seems ok to me. Since the OP went to the trouble of looking it up. --best, karl.
[bug#67268] [PATCH] texinfo: add pointer about combining tests
On 02 Dec 2023 15:09, Karl Berry wrote: > very extensive "Portable Shell Programming" chapter: > > https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Portable-Shell.html > > I know. The Autoconf manual already describes this issue in detail. > The point of the brief mention in the Automake manual is because it is > precisely the place and the problem that are rather likely to come up > in practice. > > I see I failed to link to the Autoconf node, though. I'll add that. -k breadcrumbs in the automake manual is ok before tossing them to autoconf, but i would make it more brief than we have now. like drop references to the POSIX state and just leave it as discouraged in favor of the macros for portability. -mike signature.asc Description: PGP signature
[bug#67268] [PATCH] texinfo: add pointer about combining tests
very extensive "Portable Shell Programming" chapter: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Portable-Shell.html I know. The Autoconf manual already describes this issue in detail. The point of the brief mention in the Automake manual is because it is precisely the place and the problem that are rather likely to come up in practice. I see I failed to link to the Autoconf node, though. I'll add that. -k
[bug#67268] [PATCH] texinfo: add pointer about combining tests
On 18 Nov 2023 19:27, Karl Berry wrote: > Hi Michael, > > > Date: Sun, 16 Oct 2016 18:35:53 +0200 > From: Michael Stapelberg > To: automake-patches@gnu.org > Subject: [PATCH] texinfo: add pointer about combining tests > > https://lists.gnu.org/archive/html/automake-patches/2016-10/msg2.html > > Seven years late(r), but I did finally merge (a version of) your > suggestion of a portability note in the Automake manual about && > vs. test -a, as below. Thanks! --karl > > > doc: mention shell operators preferred over `test` options. is the automake manual the best place for this ? the autoconf manual has a very extensive "Portable Shell Programming" chapter: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Portable-Shell.html seems like it'd be better to extend that section and link it from here. -mike signature.asc Description: PGP signature
[bug#67268] [PATCH] texinfo: add pointer about combining tests
Hi Michael, Date: Sun, 16 Oct 2016 18:35:53 +0200 From: Michael Stapelberg To: automake-patches@gnu.org Subject: [PATCH] texinfo: add pointer about combining tests https://lists.gnu.org/archive/html/automake-patches/2016-10/msg2.html Seven years late(r), but I did finally merge (a version of) your suggestion of a portability note in the Automake manual about && vs. test -a, as below. Thanks! --karl doc: mention shell operators preferred over `test` options. * doc/automake.texi (Usage of Conditionals): mention that shell operators (&&, ||, ()) are preferred over `test` options (-a, -o, \(\)). Idea and POSIX url reference from Michael Stapelberg, https://lists.gnu.org/archive/html/automake-patches/2016-10/msg2.html diff --git a/doc/automake.texi b/doc/automake.texi index 51a3c3dbe..635bdd28c 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -8,6 +8,14 @@ must arrange for @emph{every} @code{AM_CONDITIONAL} to be invoked every time @command{configure} is run. If @code{AM_CONDITIONAL} is run conditionally (e.g., in a shell @code{if} statement), then the result will confuse @command{automake}. + +For portability, it is best to use shell operators @code{&&} and +@code{||} and parentheses, when constructing a compound +@var{condition} using the @command{test} command, and not the +@code{-a} and @code{-o} options and parentheses as options to +@command{test}, all of which have been marked obsolescent by POSIX +(@url{https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_161}). +The name @code{test} is also more portable than @code{[}. @end defmac @cindex @option{--enable-debug}, example compile finished at Sat Nov 18 18:25:16 2023