gbranden pushed a commit to branch master in repository groff. commit f3619aa295ef686ea5e852302d3bc5f5907338d1 Author: G. Branden Robinson <g.branden.robin...@gmail.com> AuthorDate: Fri Nov 12 22:18:09 2021 +1100
[m4]: Clean up test(1) usage. Get rid of string (non-)nullity tests and comparisons involving concatenation with garbage (usually "x"). Even the GNU Autoconf manual's shell portability material doesn't recommend this. It must be either a bodge cooked up by shell programmers who couldn't remember to quote variable expansions, or a workaround for shells of such poor quality that they defied the odds and decayed out of usage or got fixed. Instead, use double quotes (only where necessary). Test for non-empty strings with "test -n" and empty strings with "test -z". Stop quoting literal comparands that obviously have no shell metacharacters in them. * m4/groff.m4 (GROFF_PRINT, GROFF_PROG_YACC, GROFF_PERL, GROFF_DOC_CHECK, GROFF_MAKEINFO, GROFF_TEXI2DVI, GROFF_HTML_PROGRAMS, GROFF_PDFDOC_PROGRAMS, GROFF_PAGE, GROFF_TMAC, GROFF_WITH_COMPATIBILITY_WRAPPERS, GROFF_X11, GROFF_APPRESDIR_DEFAULT, GROFF_APPRESDIR_CHECK, GROFF_HAVE_TEST_EF_OPTION, GROFF_BASH, GROFF_UCHARDET, GROFF_UCHARDET_CHECK, GROFF_PDFTOOLS, GROFF_USE_GROFF_ALLOCATOR): Do it. --- ChangeLog | 26 +++++++++++++++++++ m4/groff.m4 | 86 ++++++++++++++++++++++++++++++------------------------------- 2 files changed, 69 insertions(+), 43 deletions(-) diff --git a/ChangeLog b/ChangeLog index c9948a1..88a0c86 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,29 @@ +2021-11-13 G. Branden Robinson <g.branden.robin...@gmail.com> + + [m4]: Clean up test(1) usage. + + Get rid of string (non-)nullity tests and comparisons involving + concatenation with garbage (usually "x"). Even the GNU Autoconf + manual's shell portability material doesn't recommend this. It + must be either a bodge cooked up by shell programmers who + couldn't remember to quote variable expansions, or a workaround + for shells of such poor quality that they defied the odds and + decayed out of usage or got fixed. + + Instead, use double quotes (only where necessary). Test for + non-empty strings with "test -n" and empty strings with "test + -z". Stop quoting literal comparands that obviously have no + shell metacharacters in them. + + * m4/groff.m4 (GROFF_PRINT, GROFF_PROG_YACC, GROFF_PERL, + GROFF_DOC_CHECK, GROFF_MAKEINFO, GROFF_TEXI2DVI, + GROFF_HTML_PROGRAMS, GROFF_PDFDOC_PROGRAMS, GROFF_PAGE, + GROFF_TMAC, GROFF_WITH_COMPATIBILITY_WRAPPERS, GROFF_X11, + GROFF_APPRESDIR_DEFAULT, GROFF_APPRESDIR_CHECK, + GROFF_HAVE_TEST_EF_OPTION, GROFF_BASH, GROFF_UCHARDET, + GROFF_UCHARDET_CHECK, GROFF_PDFTOOLS, + GROFF_USE_GROFF_ALLOCATOR): Do it. + 2021-11-12 G. Branden Robinson <g.branden.robin...@gmail.com> * m4/groff.m4 (GROFF_TEXI2DVI): Add dependency on diff --git a/m4/groff.m4 b/m4/groff.m4 index 35e42ce..dd7324e 100644 --- a/m4/groff.m4 +++ b/m4/groff.m4 @@ -40,7 +40,7 @@ AC_DEFUN([GROFF_PRINT], # Figure out DVIPRINT from PSPRINT. AC_MSG_CHECKING([for command to use for printing dvi files]) if test -n "$PSPRINT" && test -z "$DVIPRINT"; then - if test "x$PSPRINT" = "xlpr"; then + if test "$PSPRINT" = lpr; then DVIPRINT="lpr -d" else DVIPRINT="$PSPRINT" @@ -57,7 +57,7 @@ AC_DEFUN([GROFF_PRINT], AC_DEFUN([GROFF_PROG_YACC], [AC_CHECK_PROGS([YACC], [byacc 'bison -y' yacc], [missing]) - if test "x$YACC" = "xmissing" -a -d ${srcdir}/.git; then + if test "$YACC" = missing -a -d ${srcdir}/.git; then AC_MSG_ERROR([Could not find 'yacc' or 'bison'], 1) fi ]) @@ -68,7 +68,7 @@ AC_DEFUN([GROFF_PROG_YACC], AC_DEFUN([GROFF_PERL], [PERLVERSION=v5.6.1 AC_PATH_PROG([PERL], [perl], [no]) - if test "x$PERL" = "xno"; then + if test "$PERL" = no; then AC_MSG_ERROR([perl binary not found], 1) fi AX_PROG_PERL_VERSION([$PERLVERSION], true, \ @@ -86,8 +86,8 @@ AC_DEFUN([GROFF_DOC_CHECK], 'examples', to restrict what is produced])], [doc="$withval"], [doc=yes]) - test "x$doc" = xno && doc='' - if test "x$doc" = xyes; then + test "$doc" = no && doc='' + if test "$doc" = yes; then doc_dist_target_ok=yes docadd_html=yes docadd_info=yes @@ -108,11 +108,11 @@ AC_DEFUN([GROFF_DOC_CHECK], IFS=$OFS for i do - test "x$i" = xhtml && { docadd_html=yes; continue; } - test "x$i" = xinfo && { docadd_info=yes; continue; } - test "x$i" = xother && { docadd_other=yes; continue; } - test "x$i" = xpdf && { docadd_pdf=yes; continue; } - test "x$i" = xexamples && { docadd_examples=yes; continue; } + test "$i" = html && { docadd_html=yes; continue; } + test "$i" = info && { docadd_info=yes; continue; } + test "$i" = other && { docadd_other=yes; continue; } + test "$i" = pdf && { docadd_pdf=yes; continue; } + test "$i" = examples && { docadd_examples=yes; continue; } AC_MSG_WARN([Invalid '--with-doc' argument:] $i) done fi @@ -132,7 +132,7 @@ AC_DEFUN([GROFF_DOC_CHECK], make_install_otherdoc= make_uninstall_otherdoc= fi - if test $docadd_examples = yes; then + if test "$docadd_examples" = yes; then make_examples=examples make_install_examples=install_examples make_uninstall_examples=uninstall_examples @@ -160,7 +160,7 @@ AC_DEFUN([GROFF_MAKEINFO], # src dir>/build-aux/missing makeinfo. As we need a more precise # check of makeinfo version, we don't use it. [MAKEINFO= - if test $docadd_info = yes; then + if test "$docadd_info" = yes; then missing= AC_CHECK_PROG([MAKEINFO], [makeinfo], [makeinfo]) if test -z "$MAKEINFO"; then @@ -186,7 +186,7 @@ AC_DEFUN([GROFF_MAKEINFO], infofile=doc/groff.info test -f ${infofile} || infofile=${srcdir}/${infofile} if test ! -f ${infofile} \ - || test ${srcdir}/doc/groff.texi -nt ${infofile}; then + || test "${srcdir}"/doc/groff.texi -nt ${infofile}; then AC_MSG_ERROR($missing [Get the 'texinfo' package version 5.0 or newer.]) fi @@ -211,7 +211,7 @@ AC_DEFUN([GROFF_TEXI2DVI], [AC_REQUIRE([GROFF_MAKEINFO]) AC_CHECK_PROG([PROG_TEXI2DVI], [texi2dvi], [found], [missing]) groff_have_texi2dvi=no - if test "x$PROG_TEXI2DVI" = "xfound" && test "x$MAKEINFO" != "x" + if test "$PROG_TEXI2DVI" = found && test -n "$MAKEINFO" then groff_have_texi2dvi=yes fi]) @@ -242,7 +242,7 @@ AC_DEFUN([GROFF_HTML_PROGRAMS], make_htmldoc=htmldoc make_install_htmldoc=install_htmldoc make_uninstall_htmldoc=uninstall_htmldoc - if test $docadd_examples = yes; then + if test "$docadd_examples" = yes; then make_htmlexamples=html_examples make_install_htmlexamples=install_htmlexamples make_uninstall_htmlexamples=uninstall_htmlexamples @@ -304,7 +304,7 @@ AC_DEFUN([GROFF_PDFDOC_PROGRAMS], make_pdfdoc=pdfdoc make_install_pdfdoc=install_pdfdoc make_uninstall_pdfdoc=uninstall_pdfdoc - if test $docadd_examples = yes; then + if test "$docadd_examples" = yes; then make_pdfexamples=pdfexamples make_install_pdfexamples=install_pdfexamples make_uninstall_pdfexamples=uninstall_pdfexamples @@ -312,7 +312,7 @@ AC_DEFUN([GROFF_PDFDOC_PROGRAMS], fi else plural=`set $missing; test $[#] -eq 2 && echo s` - test x$plural = xs \ + test "$plural" = s \ && missing=`set $missing; echo "$[1] and $[2]"` \ || missing=`echo $missing` @@ -879,7 +879,7 @@ AC_DEFUN([GROFF_BROKEN_SPOOLER_FLAGS], AC_DEFUN([GROFF_PAGE], [AC_MSG_CHECKING([default paper size]) groff_prefix=$prefix - test "x$prefix" = "xNONE" && groff_prefix=$ac_default_prefix + test "$prefix" = NONE && groff_prefix=$ac_default_prefix if test -z "$PAGE" && test -r /etc/papersize; then PAGE=`cat /etc/papersize | sed -e 's/^[ ]*#.*//g' | tr -d "\n" | awk '{ print $1 }'` fi @@ -928,7 +928,7 @@ AC_DEFUN([GROFF_PAGE], fi test -n "$PAGE" || PAGE=letter - if test "x$PAGE" = "xA4"; then + if test "$PAGE" = A4; then AC_DEFINE([PAGEA4], [1], [Define if the printer's page size is A4.]) fi @@ -1026,14 +1026,14 @@ AC_DEFUN([GROFF_TMAC], done done sys_tmac_prefix_result=none - test "x$sys_tmac_prefix" = "x" \ + test -z "$sys_tmac_prefix" \ || sys_tmac_prefix_result="$sys_tmac_prefix" AC_MSG_RESULT([$sys_tmac_prefix_result]) AC_SUBST([sys_tmac_prefix]) AC_MSG_CHECKING([which system macro packages should be made available]) tmac_wrap= - if test "x$sys_tmac_file_prefix" = "xtmac."; then + if test "$sys_tmac_file_prefix" = tmac.; then for f in $sys_tmac_prefix*; do suff=`echo $f | sed -e "s;$sys_tmac_prefix;;"` case "$suff" in @@ -1074,7 +1074,7 @@ AC_DEFUN([GROFF_TMAC], rm -f conftest.sol fi tmac_wrap_result="none found" - test "x$tmac_wrap" = "x" || tmac_wrap_result="$tmac_wrap" + test -z "$tmac_wrap" || tmac_wrap_result="$tmac_wrap" AC_MSG_RESULT([$tmac_wrap_result]) AC_SUBST([tmac_wrap])]) @@ -1083,7 +1083,7 @@ AC_DEFUN([GROFF_TMAC], # \n[.g] is always 1 in GNU Troff. AC_DEFUN([GROFF_G], [AC_MSG_CHECKING([for existing troff installation]) - if test "x`(echo .tm '|n(.g' | tr '|' '\\\\' | troff -z -i 2>&1) 2>/dev/null`" = x0; then + if test "`(echo .tm '|n(.g' | tr '|' '\\\\' | troff -z -i 2>&1) 2>/dev/null`" = 0; then AC_MSG_RESULT([yes]) g=g else @@ -1208,28 +1208,28 @@ AC_DEFUN([GROFF_WITH_COMPATIBILITY_WRAPPERS], [compatibility_wrappers="$withval"], [compatibility_wrappers="check"]) - if test "x$compatibility_wrappers" != "xcheck" -a \ - "x$compatibility_wrappers" != "xyes" -a \ - "x$compatibility_wrappers" != "xno" -a \ - "x$compatibility_wrappers" != "xmanual" + if test "$compatibility_wrappers" != check -a \ + "$compatibility_wrappers" != yes -a \ + "$compatibility_wrappers" != no -a \ + "$compatibility_wrappers" != manual then AC_MSG_WARN([Invalid '--with-compatibility-wrappers' argument: '$compatibility_wrappers' - assuming 'check' requested.]) compatibility_wrappers="check" fi - if test "x$tmac_wrap" = "x" + if test -z "$tmac_wrap" then # No Operating System Macro Sets Present - if test "x$compatibility_wrappers" = "xcheck" + if test "$compatibility_wrappers" = check then compatibility_wrappers="no" - elif test "x$compatibility_wrappers" = "xyes" + elif test "$compatibility_wrappers" = yes then AC_MSG_ERROR([No non-GNU macro sets found - cannot create and install compatibility wrappers]) - elif test "x$compatibility_wrappers" = "xno" + elif test "$compatibility_wrappers" = no then : # No action required - elif test "x$compatibility_wrappers" = "xmanual" + elif test "$compatibility_wrappers" = manual then # 'manual' allows quiet conversion to 'no' to support # cross-platform build instructions @@ -1237,7 +1237,7 @@ AC_DEFUN([GROFF_WITH_COMPATIBILITY_WRAPPERS], fi else # One or more Operating System Macro Sets Present - if test "x$compatibility_wrappers" = "xcheck" + if test "$compatibility_wrappers" = check then compatibility_wrappers="yes" fi @@ -1563,7 +1563,7 @@ AC_DEFUN([GROFF_X11], LIBS=$OLDLIBS fi - if test "x$groff_no_x" = "xyes"; then + if test "$groff_no_x" = yes; then AC_MSG_NOTICE([gxditview and xtotroff won't be built]) else XDEVDIRS="font/devX75 font/devX75-12 font/devX100 font/devX100-12" @@ -1597,8 +1597,8 @@ AC_DEFUN([GROFF_APPRESDIR_OPTION], AC_DEFUN([GROFF_APPRESDIR_DEFAULT], [if test -z "$groff_no_x"; then - if test "x$with_appresdir" = "x"; then - if test "x$prefix" = "xNONE"; then + if test -z "$with_appresdir"; then + if test "$prefix" = NONE; then appresdir=$ac_default_prefix/lib/X11/app-defaults else appresdir=$prefix/lib/X11/app-defaults @@ -1613,7 +1613,7 @@ AC_DEFUN([GROFF_APPRESDIR_DEFAULT], AC_DEFUN([GROFF_APPRESDIR_CHECK], [if test -z "$groff_no_x"; then - if test "x$with_appresdir" = "x"; then + if test -z "$with_appresdir"; then AC_MSG_NOTICE([ The application resource files for gxditview (GXditview and GXditview-color) will be installed in: @@ -1713,7 +1713,7 @@ AC_DEFUN([GROFF_HAVE_TEST_EF_OPTION], # is not available it will use /bin/sh. AC_DEFUN([GROFF_BASH], [AC_PATH_PROGS([BASH_PROG], [bash], [no]) - if test x$BASH_PROG = xno; then + if test "$BASH_PROG" = no; then BASH_PROG=/bin/sh fi AC_SUBST([BASH_PROG])]) @@ -1724,14 +1724,14 @@ AC_DEFUN([GROFF_UCHARDET], AS_HELP_STRING([--with-uchardet], [Build 'preconv' with uchardet library for file \ encoding automatic detection [=auto|no|yes]])) - AS_IF([test "x$with_uchardet" != "xno"], + AS_IF([test "$with_uchardet" != no], [PKG_CHECK_MODULES([UCHARDET], [uchardet >= 0.0.1], [AC_DEFINE([HAVE_UCHARDET], [1], [uchardet library availability]) groff_have_uchardet=yes], - [if test "x$with_uchardet" = "xyes"; then + [if test "$with_uchardet" = yes; then AC_MSG_FAILURE([Could not found uchardet library]) else AC_MSG_WARN([uchardet library not found, preconv \ @@ -1743,7 +1743,7 @@ might not work properly]) # Warning if uchardet library was not found AC_DEFUN([GROFF_UCHARDET_CHECK], - [if test "x$groff_have_uchardet" = "xno" -a "x$with_uchardet" != "xno"; then + [if test "$groff_have_uchardet" = no -a "$with_uchardet" != no; then AC_MSG_WARN([ uchardet library was not found; preprocessor 'preconv' will skip this method of attempting to determine the input encoding. (To @@ -1758,7 +1758,7 @@ AC_DEFUN([GROFF_PDFTOOLS], [AC_CHECK_PROG([PDFINFO], [pdfinfo], [found], [missing]) AC_CHECK_PROG([PDFFONTS], [pdffonts], [found], [missing]) AC_CHECK_PROG([PDFIMAGES], [pdfimages], [found], [missing]) - if test "x$PDFINFO" = "xfound" -a "x$PDFFONTS" = "xfound" -a "x$PDFIMAGES" = "xfound"; then + if test "$PDFINFO" = found -a "$PDFFONTS" = found -a "$PDFIMAGES" = found; then groff_have_pdftools=yes; else groff_have_pdftools=no; @@ -1769,6 +1769,6 @@ AC_DEFUN([GROFF_USE_GROFF_ALLOCATOR], [AC_ARG_ENABLE([groff-allocator], [AS_HELP_STRING([--enable-groff-allocator], [enable groff's own \ allocator for C++ new/delete])], - [test "x$enableval" = "xyes" && use_groff_allocator=yes], + [test "$enableval" = yes && use_groff_allocator=yes], [use_groff_allocator=] )]) _______________________________________________ Groff-commit mailing list Groff-commit@gnu.org https://lists.gnu.org/mailman/listinfo/groff-commit