gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, gawk-4.2-stable, updated. gawk-4.1.0-296


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, gawk-4.2-stable, updated. gawk-4.1.0-2966-g525c2d5
Date: Sun, 13 May 2018 11:30:50 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, gawk-4.2-stable has been updated
       via  525c2d59a50d5814f42a9335a0c64376afa71409 (commit)
      from  85c609c42657b36dbfbde7528d9d6fd998da0fe4 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=525c2d59a50d5814f42a9335a0c64376afa71409

commit 525c2d59a50d5814f42a9335a0c64376afa71409
Author: Arnold D. Robbins <address@hidden>
Date:   Sun May 13 11:30:28 2018 -0400

    Major improvements to test infrastructure.

diff --git a/ChangeLog b/ChangeLog
index ad5591b..ff1d20c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-05-03         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.am (pc/Makefile.tst): New target.
+       (dist-hook): Now depends upon pc/Makefile.tst.
+
 2018-04-30         Arnold D. Robbins     <address@hidden>
 
        * gawkapi.h [dl_load_func]: Minor improvement in version mismatch
diff --git a/Makefile.am b/Makefile.am
index 0089b86..b936294 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -169,7 +169,7 @@ check-local: gawk$(EXEEXT)
 
 # A little extra clean up when making distributions.
 # And additional set up for the pc directory.
-dist-hook:
+dist-hook: pc/Makefile.tst
        cd "$(distdir)"/extension ; rm -f *.o *.so
        cd "$(srcdir)"/pc ; \
        chmod u+w config.h ; \
@@ -191,6 +191,9 @@ command.c: command.y
        $(YACC) -o $@ -p zz $<
        sed 's/parse error/syntax error/g' < $@ > address@hidden && mv 
address@hidden $@
 
+pc/Makefile.tst: test/Makefile.in
+       cd pc && awk -f GenMakefileTst.awk ../test/Makefile.in > Makefile.tst
+
 # This is for my development & testing.
 efence: gawk
        $(CC) $(LDFLAGS) -o gawk $$(ls *.o | grep -v '_p.o$$') $(LDADD) $(LIBS) 
-lefence
diff --git a/Makefile.in b/Makefile.in
index ade9835..67c6af0 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1179,7 +1179,7 @@ check-local: gawk$(EXEEXT)
 
 # A little extra clean up when making distributions.
 # And additional set up for the pc directory.
-dist-hook:
+dist-hook: pc/Makefile.tst
        cd "$(distdir)"/extension ; rm -f *.o *.so
        cd "$(srcdir)"/pc ; \
        chmod u+w config.h ; \
@@ -1201,6 +1201,9 @@ command.c: command.y
        $(YACC) -o $@ -p zz $<
        sed 's/parse error/syntax error/g' < $@ > address@hidden && mv 
address@hidden $@
 
+pc/Makefile.tst: test/Makefile.in
+       cd pc && awk -f GenMakefileTst.awk ../test/Makefile.in > Makefile.tst
+
 # This is for my development & testing.
 efence: gawk
        $(CC) $(LDFLAGS) -o gawk $$(ls *.o | grep -v '_p.o$$') $(LDADD) $(LIBS) 
-lefence
diff --git a/NEWS b/NEWS
index 71d9608..a0a4ceb 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,10 @@ Changes from 4.2.1 to 4.2.2
 
 1. Support for the POSIX standard %a and %A formats has been added.
 
+2. The test infrastructure has been greatly improved, simplifying the
+   contents of Makefile.am and making it possible to generate
+   pc/Makefile.tst from test/Makefile.in.
+
 Changes from 4.2.0 to 4.2.1
 ---------------------------
 
diff --git a/README_d/ChangeLog b/README_d/ChangeLog
index 13e5898..5d24f6d 100644
--- a/README_d/ChangeLog
+++ b/README_d/ChangeLog
@@ -1,3 +1,8 @@
+2018-05-12  Eli Zaretskii  <address@hidden>
+
+       * README.pc: Update with information regarding testing on Windows
+       and in particular the number of tests expected to fail.
+
 2018-02-25         Arnold D. Robbins     <address@hidden>
 
        * 4.2.1: Release tar ball made.
diff --git a/README_d/README.pc b/README_d/README.pc
index 76299d0..eb9e8fe 100644
--- a/README_d/README.pc
+++ b/README_d/README.pc
@@ -61,13 +61,20 @@ There are two methods for the install: Method 1 uses a 
typical Unix-like
 approach and requires cat, cp, mkdir, sed, and sh; method 2 uses gawk 
 and batch files. See the configuration section of the makefile.
 
-The file test/Makefile will need some editing (especially for DOS). A
+The file test/Makefile may need some editing (especially for DOS). A
 sample makefile with comments appears in pc/Makefile.tst, and can be
 used to modify test/Makefile for your platform.  For starters, just
 copy pc/Makefile.tst to test/Makefile, then walk through the variables
 defined at the beginning and change them as appropriate for your
 setup.  In addition, some files in the test directory may need to have
 their end-of-line markers converted, as described in Makefile.tst.
+One change you will have to make for testing the MinGW port using the
+MSYS Bash is to set SLASH to //.
+
+On MinGW, testing Gawk built with MPFR support should report 26 tests
+failed, and if your ls.exe doesn't produce inode numbers consistent
+with the readdir extension, you should see 29 failures.  If you see
+more failures, you should investigate the reasons.
 
 As with building gawk, the OS, shell, and long filename issues come into
 play when testing, too.  If you are testing gawk on a LFN aware system with
diff --git a/pc/ChangeLog b/pc/ChangeLog
index cdecbc4..e62150a 100644
--- a/pc/ChangeLog
+++ b/pc/ChangeLog
@@ -1,8 +1,59 @@
+2018-05-12  Eli Zaretskii  <address@hidden>
+
+       * Makefile.tst (readfile): Fix a typo.
+
+2018-05-05  Eli Zaretskii  <address@hidden>
+
+       * GenMakefileTst.awk (substitutions): Replace the literal slash in
+       -F/ with $(SLASH).
+
+2018-05-03         Arnold D. Robbins     <address@hidden>
+
+       * GenMakefileTst.awk: Use only fully portable constructs so that
+       it can be run by any awk.
+       * Makefile.tst.original: Renamed from Makefile.tst. To be kept
+       around until merge with master.
+       * Makefile.tst: Now autogenerated.
+
+2018-04-27  Eli Zaretskii  <address@hidden>
+
+       * Makefile.tst.prologue (PGAWK, GAWK2): Delete unused variables.
+
+2018-04-19         Arnold D. Robbins     <address@hidden>
+
+       * GenMakefileTst.awk: Improve the 'Expect ...' messages.
+       Make the regexps for target names consistent. Remove
+       an extraneous semi-colon.
+
 2018-04-18         Arnold D. Robbins     <address@hidden>
 
        * config.sed: Add HAVE_STDBOOL_H for MinGW.
        * config.h: Ditto.
 
+       Unrelated:
+
+       * Makefile.tst.prologue (SORT): New macro.
+       * GenMakefileTst.awk: Add processing of TESOUTCMP for recipes
+       that need it.
+
+2018-04-17         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.tst.prologue, Makefile.tst: Update copyright years.
+
+2018-04-15         Arnold D. Robbins     <address@hidden>
+
+       * GenMakefileTst.awk: Further improve processing of input file.
+
+2018-04-15         Arnold D. Robbins     <address@hidden>
+
+       * GenMakefileTst.awk: Improve processing of input file.
+
+2018-04-12         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.tst.prologue: Initial version for autogeneration
+       of Makefile.tst.
+       * GenMakefileTst.awk: New file.
+
 2018-03-22         Arnold D. Robbins     <address@hidden>
 
        * config.h: Add support for printf %a format.
diff --git a/pc/GenMakefileTst.awk b/pc/GenMakefileTst.awk
new file mode 100644
index 0000000..0761a3b
--- /dev/null
+++ b/pc/GenMakefileTst.awk
@@ -0,0 +1,162 @@
+#!/usr/bin/gawk -f
+
+# This program generates pc/Makefile.tst
+
+BEGIN {
+       # Print the prologue
+       system("cat Makefile.tst.prologue")
+}
+
+# Skip the first part of Makefile.in
+/Get rid of core files/ { process = 1 }
+
+! process      { next }
+
+# Skip stuff that PC doesn't need
+/^CMP =/, /^\.PRECIOUS/        { next }
+
+# Process the bits in Makefile.in we need to generate the tests properly
+
+# Tests that fail on DJGPP
+/^EXPECTED_FAIL_DJGPP *=/,/[^\\]$/ {
+       print
+       gsub(/(^EXPECTED_FAIL_DJGPP *=|\\$)/,"")
+       for (i = 1; i <= NF; i++)
+               djgpp[$i]
+
+       next
+}
+
+# Tests that fail on MinGW
+/^EXPECTED_FAIL_MINGW *=/,/[^\\]$/ {
+       print
+       gsub(/(^EXPECTED_FAIL_MINGW *=|\\$)/,"")
+       for (i = 1; i <= NF; i++)
+               mingw[$i]
+
+       next
+}
+
+# Tests that need a different cmp program
+/^NEED_TESTOUTCMP *=/,/[^\\]$/ {
+       print
+       gsub(/(^NEED_TESTOUTCMP *=|\\$)/,"")
+       for (i = 1; i <= NF; i++)
+               testoutcmp[$i]
+
+       next
+}
+
+# Start of a target
+! in_recipe && /^[[:alpha:]_][-[:alnum:]_]*:/ {
+       in_recipe = 1
+       start_new_recipe()
+       next
+}
+
+# Empty targets, one after the other
+in_recipe && /^[[:alpha:]_][-[:alnum:]_]*:/ {
+       print_recipe()
+       start_new_recipe()
+       next
+}
+
+# Collect recipe lines
+in_recipe && /^\t/ {
+       recipe_lines[++line] = substitutions(name, $0)
+       next
+}
+
+# End of collected recipe, print it out
+in_recipe && /(^[^\t])|(^$)/ {
+       in_recipe = 0
+       print_recipe()
+
+       print
+       next
+}
+
+# Default is to print input lines
+process                { print }
+
+# substitutions --- replace *nix values with what's needed on Windows
+
+function substitutions(test, string)
+{
+       # locales
+       gsub(/en_US.UTF-8/, "ENU_USA.1252", string)
+       gsub(/fr_FR.UTF-8/, "FRA_FRA.1252", string)
+       gsub(/ja_JP.UTF-8/, "JPN_JPN.932", string)
+       gsub(/el_GR.iso88597/, "ell_GRC.1253", string)
+       gsub(/ru_RU.UTF-8/, "RUS_RUS.1251", string)
+
+       # command for `ls'
+       gsub(/@ls/, "@$(LS)", string)
+
+       # MSYS needs "/" to be doubled
+       gsub(/-F\//, "-F$(SLASH)", string)
+
+       if (string ~ /\$\(CMP\)/ && test in testoutcmp) {
+               gsub(/\$\(CMP\)/, "$(TESTOUTCMP)", string)
+               delete testoutcmp[test]
+       }
+
+       return string
+}
+
+# print_recipe --- print out the recipe
+
+function print_recipe(         i, start)
+{
+       print recipe_lines[1]   # target:
+       if (line == 1)
+               return
+
+       # First line if it's @echo $@
+       if (recipe_lines[2] == "address@hidden $@") {
+               start = 3
+               print recipe_lines[2]
+       } else
+               start = 2
+
+       # print the right warning
+       if (name in djgpp && name in mingw) {
+               print "address@hidden Expect $@ to fail with DJGPP and MinGW."
+       } else if (name in djgpp) {
+               print "address@hidden Expect $@ to fail with DJGPP."
+       } else if (name in mingw) {
+               print "address@hidden Expect $@ to fail with MinGW."
+       }
+
+       # find first line from the end that starts with @
+       # make sure it starts with @-
+       for (i = line; i >= start; i--) {
+               if (recipe_lines[i] !~ /^\t@/)
+                       continue
+
+               if (recipe_lines[i] ~ /address@hidden/)
+                       break
+               else if (recipe_lines[i] ~ /^\t@/) {
+                       recipe_lines[i] = "address@hidden" 
substr(recipe_lines[i], 3)
+                       break
+               }
+       }
+
+       # Print all the lines but the last
+       for (i = start; i <= line; i++)
+               print recipe_lines[i]
+}
+
+# start_new_recipe --- start collecting data from scratch
+
+function start_new_recipe()
+{
+       # get the name of the target
+       # use match(), not gensub(), so that this script is fully portable
+       match($0, /^[[:alpha:]_][-[:alnum:]_]*:/)
+       name = substr($0, RSTART, RLENGTH - 1)  # leave out the colon
+
+       delete recipe_lines
+       line = 0
+       recipe_lines[++line] = $0
+}
diff --git a/pc/Makefile.tst b/pc/Makefile.tst
index 675d004..5725faa 100644
--- a/pc/Makefile.tst
+++ b/pc/Makefile.tst
@@ -1,6 +1,6 @@
 # Makefile for GNU Awk test suite.
 #
-# Copyright (C) 1988-2016 the Free Software Foundation, Inc.
+# Copyright (C) 1988-2018 the Free Software Foundation, Inc.
 # 
 # This file is part of GAWK, the GNU implementation of the
 # AWK Programming Language.
@@ -61,9 +61,6 @@ SHELL = /bin/sh
 
 # Point to gawk
 AWK = AWKLIBPATH=../extension $(AWKPROG)
-# Also point to gawk but for DOS commands needing backslashes.  We need
-# the forward slash version too or 'arrayparam' fails.
-AWK2 = '..\gawk.exe'
 AWKPROG = ../gawk.exe
 # Point $(LS) to a version of ls.exe that reports true Windows file
 # index numbers, because this is what the readdir test expects.
@@ -71,9 +68,6 @@ AWKPROG = ../gawk.exe
 # report full index values.)
 LS = ls.exe
 
-# Define PGAWK
-PGAWK = ../gawk.exe -p
-
 # Set your cmp command here (you can use most versions of diff instead of cmp
 # if you don't want to convert the .ok files to the DOS CR/LF format).
 # This is also an issue for the "mmap8k" test.  If it fails, make sure that
@@ -117,6 +111,9 @@ MKDIR = mkdir
 #DATE = date
 DATE = gdate
 
+# Set sort command
+SORT = sort
+
 # MS-DOS and OS/2 use ; as a PATH delimiter
 PATH_SEPARATOR = ;
 
@@ -162,7 +159,7 @@ BASIC_TESTS = \
        hex hex2 hsprint \
        inpref inputred intest intprec iobug1 \
        leaddig leadnl litoct longsub longwrds \
-       manglprm math membug1 memleak messages minusstr mmap8k mtchi18n \
+       manglprm math membug1 memleak messages minusstr mmap8k \
        nasty nasty2 negexp negrange nested nfldstr nfloop nfneg nfset nlfldsep 
\
        nlinstr nlstrina noeffect nofile nofmtch noloop1 noloop2 nonl noparms \
        nors nulinsrc nulrsend numindex numstr1 numsubstr \
@@ -179,7 +176,7 @@ BASIC_TESTS = \
        sigpipe1 sortempty sortglos splitargv splitarr \
        splitdef splitvar splitwht status-close strcat1 strnum1 strnum2 strtod \
        subamp subback subi18n subsepnm subslash substr swaplns synerr1 synerr2 
\
-       tradanch tweakfld \
+       tailrecurse tradanch tweakfld \
        uninit2 uninit3 uninit4 uninit5 uninitialized unterm uparrfs uplus \
        wideidx wideidx2 widesub widesub2 widesub3 widesub4 wjposer1 \
        zero2 zeroe0 zeroflag
@@ -222,14 +219,11 @@ ARRAYDEBUG_TESTS = arrdbg
 EXTRA_TESTS = inftest regtest ignrcas3 
 INET_TESTS = inetdayu inetdayt inetechu inetecht
 MACHINE_TESTS = double1 double2 fmtspcl intformat
-MPFR_TESTS = mpfrbigint mpfrexprange mpfrieee mpfrmemok1 mpfrnegzero \
-       mpfrnr mpfrrem mpfrrnd mpfrrndeval mpfrsort mpfrsqrt \
-       mpfrstrtonum mpgforcenum mpfruplus
 LOCALE_CHARSET_TESTS = \
        asort asorti backbigs1 backsmalls1 backsmalls2 \
        fmttest fnarydel fnparydl jarebug lc_num1 mbfw1 \
        mbprintf1 mbprintf2 mbprintf3 mbprintf4 mbprintf5 \
-       nlstringtest rebt8b2 rtlenmb sort1 sprintfc
+       mtchi18n nlstringtest rebt8b2 rtlenmb sort1 sprintfc
 
 SHLIB_TESTS = \
        apiterm \
@@ -237,20 +231,47 @@ SHLIB_TESTS = \
        getfile \
        inplace1 inplace2 inplace3 \
        ordchr ordchr2 \
-       readdir readdir_test readfile readfile2 revout \
+       readdir readdir_test readdir_retest readfile readfile2 revout \
        revtwoway rwarray \
        testext time
 
 
+# List of the tests which should be run with --debug option:
+NEED_DEBUG = dbugtypedre1 dbugtypedre2 dbugeval2 symtab10
+
 # List of the tests which should be run with --lint option:
 NEED_LINT = \
        defref fmtspcl lintexp lintindex lintint lintlength lintwarn \
-       noeffect nofmtch shadow uninit2 uninit3 uninit4 uninit5 uninitialized
+       noeffect nofmtch nonl shadow uninit2 uninit3 uninit4 uninit5 
uninitialized
 
 
 # List of the tests which should be run with --lint-old option:
 NEED_LINT_OLD = lintold
 
+# List of tests that must be run with -M
+NEED_MPFR = mpfrbigint mpfrexprange mpfrfield mpfrieee mpfrmemok1 \
+       mpfrnegzero mpfrnr mpfrrem mpfrrnd mpfrrndeval mpfrsort mpfrsqrt \
+       mpfrstrtonum mpgforcenum mpfruplus
+
+
+# List of tests that need --non-decimal-data
+NEED_NONDEC = nondec2 intarray forcenum
+
+# List of tests that need --posix
+NEED_POSIX = printf0 posix2008sub paramasfunc1 paramasfunc2 muldimposix
+
+# List of tests that need --pretty-print
+NEED_PRETTY = profile4 profile5 profile8 profile9 profile10
+
+# List of tests that need --re-interval
+NEED_RE_INTERVAL = gsubtst3 reint reint2
+
+# List of tests that need --traditional
+NEED_TRADITIONAL = litoct tradanch rscompat
+
+# Lists of tests that run a shell script
+RUN_SHELL = exit fflush localenl next randtest rtlen rtlen01
+
 # List of the tests which fail with EXIT CODE 1
 FAIL_CODE1 = \
        badassign1 badbuild callparam delfunc fcall_exit fcall_exit2 \
@@ -264,10 +285,53 @@ CHECK_MPFR = \
        rand fnarydel fnparydl
 
 
+# Lists of tests that need particular locales
+NEED_LOCALE_C = \
+       clos1way gsubtst6
+
+NEED_LOCALE_EN = \
+       backbigs1 backsmalls1 backsmalls2 concat4 dfamb1 ignrcas2 lc_num1 \
+       mbfw1 mbprintf1 mbprintf3 mbprintf4 mbstr1 mbstr2 printhuge reint2 \
+       rri1 subamp subi18n wideidx wideidx2 widesub widesub2 widesub3 widesub4
+
+
+# Unused at the moment, since nlstringtest has additional stufff it does
+# NEED_LOCALE_FR =
+# Same for ignrcas3
+# NEED_LOCALE_GR =
+NEED_LOCALE_JP = mbprintf2
+NEED_LOCALE_RU = mtchi18n
+
+# List of tests that fail on DJGPP
+EXPECTED_FAIL_DJGPP = \
+       backbigs1 backsmalls1 backw beginfile1 clos1way clos1way2 \
+       clos1way3 clos1way4 clos1way5 clos1way6 errno getlndir \
+       getlnhd gnuops3 gnureops id ignrcas3 inetdayt inetdayu \
+       inetecht inetechu inftest jarebug mbfw1 mbprintf1 mbprintf4 \
+       mbstr1 mbstr2 mpfrsqrt nonfatal1 nonfatal2 nonfatal3 pid pty1 pty2 \
+       regx8bit strtod sigpipe1 timeout
+
+
+# List of tests that fail on MinGW
+EXPECTED_FAIL_MINGW = \
+       backbigs1 backsmalls1 clos1way6 devfd devfd1 devfd2 \
+       errno exitval2 fork fork2 fts getfile getlnhd ignrcas3 inetdayt \
+       inetecht mbfw1 mbprintf1 mbprintf4 mbstr1 mbstr2 pid pipeio2 \
+       pty1 pty2 readdir readdir_test readdir_retest rstest4 rstest5 \
+       status-close timeout
+
+
 # List of the files that appear in manual tests or are for reserve testing:
-GENTESTS_UNUSED = Makefile.in dtdgport.awk gtlnbufv.awk hello.awk \
-       inchello.awk inclib.awk inplace.1.in inplace.2.in inplace.in \
-       longdbl.awk longdbl.in printfloat.awk readdir0.awk xref.awk
+GENTESTS_UNUSED = Makefile.in checknegtime.awk dtdgport.awk gtlnbufv.awk \
+       hello.awk inchello.awk inclib.awk inplace.1.in inplace.2.in \
+       inplace.in printfloat.awk readdir0.awk valgrind.awk xref.awk
+
+
+# List of tests on MinGW or DJGPP that need a different cmp program
+NEED_TESTOUTCMP = \
+       beginfile2 double2 exit fmttest hsprint posix profile5 space
+
+
 
 # Message stuff is to make it a little easier to follow.
 # Make the pass-fail last and dependent on others to avoid
@@ -280,8 +344,8 @@ check:      msg \
        machine-msg-start machine-tests machine-msg-end \
        charset-tests-all \
        shlib-msg-start  shlib-tests     shlib-msg-end \
-       mpfr-msg-start   mpfr-tests      mpfr-msg-end \
-       pass-fail
+       mpfr-msg-start   mpfr-tests      mpfr-msg-end
+       @-$(MAKE) pass-fail || { $(MAKE) diffout; exit 1; }
 
 basic: $(BASIC_TESTS)
 
@@ -290,7 +354,21 @@ unix-tests: $(UNIX_TESTS)
 gawk-extensions: $(GAWK_EXT_TESTS)
 
 charset-tests-all:
-       $(MAKE) charset-msg-start charset-tests charset-msg-end
+       @-case `uname` in \
+       *MINGW* | *MS-DOS*) \
+               $(MAKE) charset-msg-start charset-tests charset-msg-end ;; \
+       *) \
+               if locale -a | grep -i 'en_US.UTF.*8' > /dev/null && \
+                  locale -a | grep -i 'fr_FR.UTF.*8' > /dev/null && \
+                  locale -a | grep -i 'ru_RU.UTF.*8' > /dev/null && \
+                  locale -a | grep -i 'ja_JP.UTF.*8' > /dev/null  ; \
+               then \
+                       $(MAKE) charset-msg-start charset-tests 
charset-msg-end; \
+               else \
+                       echo %%%%%%%%%% Inadequate locale support: skipping 
charset tests. ; \
+                       echo %%%%%%%%%% At least ENU_USA.1252, FRA_FRA.1252, 
RUS_RUS.1251 and JPN_JPN.932 are needed. ; \
+               fi ;; \
+       esac
 
 charset-tests: $(LOCALE_CHARSET_TESTS)
 
@@ -305,16 +383,19 @@ machine-tests: $(MACHINE_TESTS)
 # to Windows format, butchering it in the process.  Likewise for /API/
 # in the next shlib-tests.
 mpfr-tests:
-       @if $(AWK) --version | $(AWK) ' /MPFR/ { exit 1 }' ; then \
+       @-if $(AWK) --version | $(AWK) ' /MPFR/ { exit 1 }' ; then \
        echo MPFR tests not supported on this system ; \
-       else $(MAKE) $(MPFR_TESTS) ; \
+       else $(MAKE) $(NEED_MPFR) ; \
        fi
 
 arraydebug-tests:
-       @echo gawk is not compiled to support the array debug tests
+       @-if echo $(CFLAGS) | grep ARRAYDEBUG > /dev/null ; then \
+       $(MAKE) $(ARRAYDEBUG_TESTS) ; \
+       else echo gawk is not compiled to support the array debug tests ; \
+       fi
 
 shlib-tests:
-       @if $(AWK) --version | $(AWK) ' /API/ { exit 1 }' ; then \
+       @-if $(AWK) --version | $(AWK) ' /API/ { exit 1 }' ; then \
        echo shlib tests not supported on this system ; \
        else $(MAKE) shlib-real-tests ; \
        fi
@@ -322,66 +403,63 @@ shlib-tests:
 shlib-real-tests: $(SHLIB_TESTS)
 
 msg::
-       @echo ""
-       @echo "Any output from $(CMP) is bad news, although some differences"
-       @echo "in floating point values are probably benign -- in particular,"
-       @echo "some systems may omit a leading zero and the floating point"
-       @echo "precision may lead to slightly different output in a few cases."
+       @echo ''
+       @echo 'Any output from "$(CMP)" is bad news, although some differences'
+       @echo 'in floating point values are probably benign -- in particular,'
+       @echo 'some systems may omit a leading zero and the floating point'
+       @-echo 'precision may lead to slightly different output in a few cases.'
 
 printlang::
-       @$(AWK) -f "$(srcdir)"/printlang.awk
+       @-$(AWK) -f "$(srcdir)"/printlang.awk
 
 basic-msg-start:
-       @echo "======== Starting basic tests ========"
+       @-echo "======== Starting basic tests ========"
 
 basic-msg-end:
-       @echo "======== Done with basic tests ========"
+       @-echo "======== Done with basic tests ========"
 
 unix-msg-start:
-       @echo "======== Starting Unix tests ========"
+       @-echo "======== Starting Unix tests ========"
 
 unix-msg-end:
-       @echo "======== Done with Unix tests ========"
+       @-echo "======== Done with Unix tests ========"
 
 extend-msg-start:
-       @echo "======== Starting gawk extension tests ========"
+       @-echo "======== Starting gawk extension tests ========"
 
 extend-msg-end:
-       @echo "======== Done with gawk extension tests ========"
+       @-echo "======== Done with gawk extension tests ========"
 
 machine-msg-start:
-       @echo "======== Starting machine-specific tests ========"
+       @-echo "======== Starting machine-specific tests ========"
 
 machine-msg-end:
-       @echo "======== Done with machine-specific tests ========"
+       @-echo "======== Done with machine-specific tests ========"
 
 charset-msg-start:
        @echo "======== Starting tests that can vary based on character set or 
locale support ========"
        @echo 
"**************************************************************************"
        @echo "* Some or all of these tests may fail if you have inadequate or 
missing  *"
-       @echo "* locale support...                                              
        *"
-       @echo 
"**************************************************************************"
+       @echo "* locale support. At least ENU_USA.1252, FRA_FRA.1252, 
RUS_RUS.1251 and     *"
+       @echo "* JPN_JPN.932 are needed. The ell_GRC.1253 is optional but 
helpful.    *"
+       @echo "* However, if you see this message, the Makefile thinks you have 
what    *"
+       @echo "* you need ...                                                   
        *"
+       @-echo 
"**************************************************************************"
 
 charset-msg-end:
-       @echo "======== Done with tests that can vary based on character set or 
locale support ========"
+       @-echo "======== Done with tests that can vary based on character set 
or locale support ========"
 
 shlib-msg-start:
-       @echo "======== Starting shared library tests ========"
+       @-echo "======== Starting shared library tests ========"
 
 shlib-msg-end:
-       @echo "======== Done with shared library tests ========"
+       @-echo "======== Done with shared library tests ========"
 
 mpfr-msg-start:
-       @echo "======== Starting MPFR tests ========"
+       @-echo "======== Starting MPFR tests ========"
 
 mpfr-msg-end:
-       @echo "======== Done with MPFR tests ========"
-
-lc_num1:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+       @-echo "======== Done with MPFR tests ========"
 
 # This test is a PITA because increasingly, /tmp is getting
 # mounted noexec.  So, we'll test it locally.  Sigh.
@@ -403,122 +481,97 @@ poundbang::
 
 messages::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/messages.awk >_out2 2>_out3
+       @$(AWK) -f "$(srcdir)"/messages.awk >_out2 2>_out3 || echo EXIT CODE: 
$$? >> _$@
        @-$(CMP) "$(srcdir)"/out1.ok _out1 && $(CMP) "$(srcdir)"/out2.ok _out2 
&& $(CMP) "$(srcdir)"/out3.ok _out3 && rm -f _out1 _out2 _out3
 
 argarray::
        @echo $@
        @cp "$(srcdir)"/argarray.in ./argarray.input
-       @TEST=test echo just a test | $(AWK) -f "$(srcdir)"/argarray.awk 
./argarray.input - >_$@
+       @TEST=test echo just a test | $(AWK) -f "$(srcdir)"/argarray.awk 
./argarray.input - >_$@ || echo EXIT CODE: $$? >> _$@
        @rm -f ./argarray.input
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 regtest::
+       @echo $@
        @echo 'Some of the output from regtest is very system specific, do not'
        @echo 'be distressed if your output differs from that distributed.'
        @echo 'Manual inspection is called for.'
-       AWK=$(AWKPROG) "$(srcdir)"/regtest.sh
+       @-AWK=$(AWKPROG) "$(srcdir)"/regtest.sh
 
 manyfiles::
-       @echo manyfiles
+       @echo $@
        @rm -rf junk
        @mkdir junk
        @$(AWK) 'BEGIN { for (i = 1; i <= 1030; i++) print i, i}' >_$@
-       @$(AWK) -f "$(srcdir)"/manyfiles.awk _$@ _$@
+       @$(AWK) -f "$(srcdir)"/manyfiles.awk _$@ _$@ || echo EXIT CODE: $$? >> 
_$@
        @wc -l junk/* | $(AWK) '$$1 != 2' | wc -l | sed "s/  *//g" > _$@
        @rm -rf junk
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 compare::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/compare.awk 0 1 "$(srcdir)"/compare.in >_$@
+       @$(AWK) -f "$(srcdir)"/compare.awk 0 1 "$(srcdir)"/compare.in >_$@ || 
echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 inftest::
        @echo $@
+       @echo Expect $@ to fail with DJGPP.
        @echo This test is very machine specific...
-       @echo Expect inftest to fail with DJGPP.
-       @$(AWK) -f "$(srcdir)"/inftest.awk | sed "s/inf/Inf/g" >_$@
+       @$(AWK) -f "$(srcdir)"/inftest.awk | sed "s/inf/Inf/g" >_$@ || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 getline2::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/getline2.awk "$(srcdir)"/getline2.awk 
"$(srcdir)"/getline2.awk >_$@
+       @$(AWK) -f "$(srcdir)"/getline2.awk "$(srcdir)"/getline2.awk 
"$(srcdir)"/getline2.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 awkpath::
        @echo $@
-       @AWKPATH="$(srcdir)$(PATH_SEPARATOR)$(srcdir)/lib" $(AWK) -f 
awkpath.awk >_$@
+       @AWKPATH="$(srcdir)$(PATH_SEPARATOR)$(srcdir)/lib" $(AWK) -f 
awkpath.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 argtest::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/argtest.awk -x -y abc >_$@
+       @$(AWK) -f "$(srcdir)"/argtest.awk -x -y abc >_$@ || echo EXIT CODE: 
$$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 badargs::
        @echo $@
-       @-$(AWK) -f 2>&1 | grep -v patchlevel >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-nonl::
-       @echo $@
-       @-AWKPATH="$(srcdir)" $(AWK) --lint -f nonl.awk /dev/null >_$@ 2>&1
+       @-$(AWK) -f 2>&1 | grep -v patchlevel >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 strftime::
        @echo $@
-#      @GAWKLOCALE=C; export GAWKLOCALE; \
-#      TZ=GMT0; export TZ; \
-#      $(AWK) -v OUTPUT=_$@ -f "$(srcdir)"/strftime.awk
-       @GAWKLOCALE=C; export GAWKLOCALE; \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C ; export GAWKLOCALE; \
        TZ=GMT0; export TZ; \
-       $(AWK) -v OUTPUT=_$@ -v DATECMD="$(DATE)" -f "$(srcdir)"/strftime.awk
+       $(AWK) -v OUTPUT=_$@ -v DATECMD="$(DATE)" -f "$(srcdir)"/strftime.awk 
|| echo EXIT CODE: $$? >> _$@
        @-$(CMP) strftime.ok _$@ && rm -f _$@ strftime.ok || exit 0
 
-litoct::
-       @echo $@
-       @echo ab | $(AWK) --traditional -f "$(srcdir)"/litoct.awk >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 devfd::
        @echo $@
-       @echo Expect devfd to fail in MinGW
-       @$(AWK) 1 /dev/fd/4 /dev/fd/5 4<"$(srcdir)"/devfd.in4 
5<"$(srcdir)"/devfd.in5 >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@
+       @echo Expect $@ to fail with MinGW.
+       @$(AWK) 1 /dev/fd/4 /dev/fd/5 4<"$(srcdir)"/devfd.in4 
5<"$(srcdir)"/devfd.in5 >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ || echo EXIT 
CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+# This cannot be autogenerated; we want it to read the input name
+# on the command line.
 errno:
        @echo $@
-       @echo Expect errno to fail with DJGPP and MinGW due to error message 
differences
+       @echo Expect $@ to fail with DJGPP and MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-fflush::
-       @echo $@
-       @"$(srcdir)"/fflush.sh >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 tweakfld::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/tweakfld.awk "$(srcdir)"/tweakfld.in >_$@
+       @$(AWK) -f "$(srcdir)"/tweakfld.awk "$(srcdir)"/tweakfld.in >_$@ || 
echo EXIT CODE: $$? >> _$@
        @rm -f errors.cleanup
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-mmap8k::
-       @echo $@
-       @$(AWK) '{ print }' "$(srcdir)"/mmap8k.in >_$@
-       @-$(CMP) "$(srcdir)"/mmap8k.in _$@ && rm -f _$@ || cp 
"$(srcdir)"/address@hidden address@hidden
-
-tradanch::
-       @echo $@
-       @$(AWK) --traditional -f "$(srcdir)"/tradanch.awk 
"$(srcdir)"/tradanch.in >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 # AIX /bin/sh exec's the last command in a list, therefore issue a ":"
 # command so that pid.sh is fork'ed as a child before being exec'ed.
 pid::
-       @echo pid
-       @echo Expect pid to fail with DJGPP and MinGW.
+       @echo $@
+       @echo Expect $@ to fail with DJGPP and MinGW.
        @AWKPATH="$(srcdir)" AWK=$(AWKPROG) $(SHELL) "$(srcdir)"/pid.sh $$$$ > 
_`basename address@hidden ; :
        @-$(CMP) "$(srcdir)"/pid.ok _`basename address@hidden && rm -f 
_`basename address@hidden
 
@@ -532,15 +585,14 @@ strftlng::
 
 nors::
        @echo $@
-       @echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - 
"$(srcdir)"/nors.in > _$@
+       @echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - 
"$(srcdir)"/nors.in > _$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-fmtspcl.ok: fmtspcl.tok
+fmtspcl.ok: fmtspcl.tok Makefile
        @$(AWK) -v "sd=$(srcdir)" 'BEGIN {pnan = sprintf("%g",sqrt(-1)); nnan = 
sprintf("%g",-sqrt(-1)); pinf = sprintf("%g",-log(0)); ninf = 
sprintf("%g",log(0))} {sub(/positive_nan/,pnan); sub(/negative_nan/,nnan); 
sub(/positive_infinity/,pinf); sub(/negative_infinity/,ninf); 
sub(/fmtspcl/,(sd"/fmtspcl")); print}' < "$(srcdir)"/fmtspcl.tok > $@ 
2>/dev/null
 
 fmtspcl: fmtspcl.ok
        @echo $@
-       @echo Expect $@ to fail on MinGW if not built with MPFR
        @$(AWK) $(AWKFLAGS) -f "$(srcdir)"/fmtspcl.awk  --lint >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-if test -z "$$AWKFLAGS" ; then $(CMP) address@hidden _$@ && rm -f _$@ 
; else \
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
@@ -556,107 +608,75 @@ rsglstdin::
        @cat  "$(srcdir)"/rsgetline.in | AWKPATH="$(srcdir)" $(AWK) -f 
rsgetline.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-reint::
-       @echo $@
-       @$(AWK) --re-interval -f "$(srcdir)"/reint.awk "$(srcdir)"/reint.in >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 pipeio1::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/pipeio1.awk >_$@
+       @$(AWK) -f "$(srcdir)"/pipeio1.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @rm -f test1 test2
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 pipeio2::
        @echo $@
-       @echo Expect pipeio2 to fail with MinGW
-       @$(AWK) -v SRCDIR="$(srcdir)" -f "$(srcdir)"/pipeio2.awk >_$@
+       @echo Expect $@ to fail with MinGW.
+       @$(AWK) -v SRCDIR="$(srcdir)" -f "$(srcdir)"/pipeio2.awk >_$@ || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 clobber::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/clobber.awk >_$@
+       @$(AWK) -f "$(srcdir)"/clobber.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/clobber.ok seq && $(CMP) "$(srcdir)"/clobber.ok 
_$@ && rm -f _$@
-       @rm -f seq
+       @-rm -f seq
 
 arynocls::
        @echo $@
-       @-AWKPATH="$(srcdir)" $(AWK) -v INPUT="$(srcdir)"/arynocls.in -f 
arynocls.awk >_$@
+       @-AWKPATH="$(srcdir)" $(AWK) -v INPUT="$(srcdir)"/arynocls.in -f 
arynocls.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 getlnbuf::
        @echo $@
-       @-AWKPATH="$(srcdir)" $(AWK) -f getlnbuf.awk "$(srcdir)"/getlnbuf.in > 
_$@
-       @-AWKPATH="$(srcdir)" $(AWK) -f gtlnbufv.awk "$(srcdir)"/getlnbuf.in > 
_2$@
+       @-AWKPATH="$(srcdir)" $(AWK) -f getlnbuf.awk "$(srcdir)"/getlnbuf.in > 
_$@ || echo EXIT CODE: $$? >> _$@
+       @-AWKPATH="$(srcdir)" $(AWK) -f gtlnbufv.awk "$(srcdir)"/getlnbuf.in > 
_2$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/getlnbuf.ok _$@ && $(CMP) "$(srcdir)"/getlnbuf.ok 
_2$@ && rm -f _$@ _2$@
 
 inetmesg::
        @echo These tests only work if your system supports the services
        @echo "'discard'" at port 9 and "'daytimed'" at port 13. Check your
-       @echo file /etc/services and do "'netstat -a'".
+       @-echo file /etc/services and do "'netstat -a'".
 
 inetechu::
-       @echo Expect inetechu to fail with DJGPP.
+       @echo Expect $@ to fail with DJGPP.
        @echo This test is for establishing UDP connections
-#      @$(AWK) 'BEGIN {print "" |& "/inet/udp/0/127.0.0.1/9"}'
        @-$(AWK) 'BEGIN {print "" |& "/inet/udp/0/127.0.0.1/9"}'
 
 inetecht::
-       @echo Expect inetecht to fail with DJGPP.
-       @echo Expect inetecht to time out with MinGW after 20 sec.
+       @echo Expect $@ to fail with DJGPP and MinGW.
        @echo This test is for establishing TCP connections
-#      @$(AWK) 'BEGIN {print "" |& "/inet/tcp/0/127.0.0.1/9"}'
        @-$(AWK) 'BEGIN {print "" |& "/inet/tcp/0/127.0.0.1/9"}'
 
 inetdayu::
-       @echo Expect inetdayu to fail with DJGPP.
+       @echo Expect $@ to fail with DJGPP.
        @echo This test is for bidirectional UDP transmission
-#      @$(AWK) 'BEGIN { print "" |& "/inet/udp/0/127.0.0.1/13"; \
-#      "/inet/udp/0/127.0.0.1/13" |& getline; print $0}'
        @-$(AWK) 'BEGIN { print "" |& "/inet/udp/0/127.0.0.1/13"; \
        "/inet/udp/0/127.0.0.1/13" |& getline; print $0}'
 
 inetdayt::
-       @echo Expect inetdayt to fail with DJGPP.
-       @echo Expect inetdayt to time out with MinGW after 41 sec.
+       @echo Expect $@ to fail with DJGPP and MinGW.
        @echo This test is for bidirectional TCP transmission
-#      @$(AWK) 'BEGIN { print "" |& "/inet/tcp/0/127.0.0.1/13"; \
-#      "/inet/tcp/0/127.0.0.1/13" |& getline; print $0}'
        @-$(AWK) 'BEGIN { print "" |& "/inet/tcp/0/127.0.0.1/13"; \
        "/inet/tcp/0/127.0.0.1/13" |& getline; print $0}'
 
 redfilnm::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/redfilnm.awk srcdir="$(srcdir)" 
"$(srcdir)"/redfilnm.in >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-leaddig::
-       @echo $@
-       @$(AWK) -v x=2E  -f "$(srcdir)"/leaddig.awk >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-gsubtst3::
-       @echo $@
-       @$(AWK) --re-interval -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden >_$@
+       @$(AWK) -f "$(srcdir)"/redfilnm.awk srcdir="$(srcdir)" 
"$(srcdir)"/redfilnm.in >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 space::
        @echo $@
-       @$(AWK) -f ' ' "$(srcdir)"/space.awk >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
-#      @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+       @$(AWK) -f ' ' "$(srcdir)"/space.awk >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@ || echo EXIT CODE: $$? >> _$@
        @-$(TESTOUTCMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-printf0::
-       @echo $@
-       @$(AWK) --posix -f "$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 rsnulbig::
        @echo $@
        @ : Suppose that block size for pipe is at most 128kB:
-#      @$(AWK) 'BEGIN { for (i = 1; i <= 128*64+1; i++) print 
"abcdefgh123456\n" }' 2>&1 | \
-#      $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" }; { print }' 2>&1 | \
-#      $(AWK) '/^[^a]/; END{ print NR }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @$(AWK) 'BEGIN { for (i = 1; i <= 128*64+1; i++) print 
"abcdefgh123456\n" }' 2>&1 | \
        $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" }; { print }' 2>&1 | \
        $(AWK) ' /^[^a]/; END{ print NR }' >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
@@ -664,64 +684,12 @@ rsnulbig::
 
 rsnulbig2::
        @echo $@
-#      @$(AWK) 'BEGIN { ORS = ""; n = "\n"; for (i = 1; i <= 10; i++) n = (n 
n); \
-#              for (i = 1; i <= 128; i++) print n; print "abc\n" }' 2>&1 | \
-#              $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" };{ print }' 2>&1 | \
-#              $(AWK) '/^[^a]/; END { print NR }' >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @$(AWK) 'BEGIN { ORS = ""; n = "\n"; for (i = 1; i <= 10; i++) n = (n 
n); \
                for (i = 1; i <= 128; i++) print n; print "abc\n" }' 2>&1 | \
                $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" };{ print }' 2>&1 | \
                $(AWK) ' /^[^a]/; END { print NR }' >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-wideidx::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-wideidx2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub3::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub4::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-ignrcas2::
-       @echo $@
-       @GAWKLOCALE=ENU_USA.1252 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? 
>> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-subamp::
-       @echo $@
-       @GAWKLOCALE=ENU_USA.1252 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 # This test makes sure gawk exits with a zero code.
 # Thus, unconditionally generate the exit code.
 exitval1::
@@ -731,88 +699,42 @@ exitval1::
 
 fsspcoln::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/address@hidden 'FS=[ :]+' 
"$(srcdir)"/address@hidden >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rsstart1::
-       @echo $@
-       @$(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/rsstart1.in >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rsstart2::
-       @echo $@
-       @$(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/rsstart1.in >_$@
+       @$(AWK) -f "$(srcdir)"/address@hidden 'FS=[ :]+' 
"$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 rsstart3::
        @echo $@
-       @head "$(srcdir)"/rsstart1.in | $(AWK) -f "$(srcdir)"/rsstart2.awk >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rtlen::
-       @echo $@
-       @"$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rtlen01::
-       @echo $@
-       @"$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >>_$@
+       @head "$(srcdir)"/rsstart1.in | $(AWK) -f "$(srcdir)"/rsstart2.awk >_$@ 
|| echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+# FIXME: Gentests can't really deal with something that is both a shell script
+# and requires a locale. We might can fix that ...
 rtlenmb::
        @echo $@
-       @GAWKLOCALE=ENU_USA.1252 ; export GAWKLOCALE ; \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE ; \
        "$(srcdir)"/rtlen.sh >_$@ || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-nondec2::
-       @echo $@
-       @$(AWK) --non-decimal-data -v a=0x1 -f "$(srcdir)"/address@hidden >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-intarray::
-       @echo $@
-       @$(AWK) --non-decimal-data -f "$(srcdir)"/address@hidden >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-forcenum::
-       @echo $@
-       @$(AWK) --non-decimal-data -f "$(srcdir)"/address@hidden >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 nofile::
        @echo $@
        @$(AWK) '{}' no/such/file >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @sed "s/ (ENOENT)//" _$@ > address@hidden
-       @rm -f _$@
-#      @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-       @-$(CMP) "$(srcdir)"/address@hidden address@hidden && rm -f 
address@hidden
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 binmode1::
        @echo $@
        @$(AWK) -v BINMODE=3 'BEGIN { print BINMODE }' >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-subi18n::
-       @echo $@
-       @GAWKLOCALE=ENU_USA.1252 ; $(AWK) -f "$(srcdir)"/address@hidden > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-concat4::
-       @echo $@
-       @GAWKLOCALE=ENU_USA.1252 ; $(AWK) -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 devfd1::
        @echo $@
-       @echo Expect devfd1 to fail in MinGW
+       @echo Expect $@ to fail with MinGW.
        @$(AWK) -f "$(srcdir)"/address@hidden 4< "$(srcdir)"/devfd.in1 5< 
"$(srcdir)"/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 # The program text is the '1' which will print each record. How compact can 
you get?
 devfd2::
        @echo $@
-       @echo Expect devfd2 to fail in MinGW
+       @echo Expect $@ to fail with MinGW.
        @$(AWK) 1 /dev/fd/4 /dev/fd/5 4< "$(srcdir)"/devfd.in1 5< 
"$(srcdir)"/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -821,85 +743,16 @@ mixed1::
        @$(AWK) -f /dev/null --source 'BEGIN {return junk}' >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-mtchi18n::
-       @echo $@
-       @GAWKLOCALE=RUS_RUS.1251 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-reint2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) --re-interval -f address@hidden 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-localenl::
-       @echo $@
-       @"$(srcdir)"/address@hidden >_$@ 2>/dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf1::
-       @echo $@
-       @echo Expect mbprintf1 to fail with DJGPP and MinGW.
-       @GAWKLOCALE=ENU_USA.1252 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf2::
-       @echo $@
-       @GAWKLOCALE=JPN_JPN.932 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? 
>> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf3::
-       @echo $@
-       @GAWKLOCALE=ENU_USA.1252 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf4::
-       @echo $@
-       @echo Expect mbprintf4 to fail with MinGW and DJGPP
-       @GAWKLOCALE=ENU_USA.1252 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 mbprintf5::
        @echo $@
-       @case `uname` in \
+       @-case `uname` in \
        CYGWIN* | MINGW32* | *MS-DOS*) echo this test fails on this system --- 
skipping $@ ;; \
        *) \
-       GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
+       [ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE ; \
        $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@ ; \
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        esac
 
-mbfw1::
-       @echo $@
-       @echo Expect mbfw1 to fail with DJGPP and MinGW.
-       @GAWKLOCALE=ENU_USA.1252 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-gsubtst6::
-       @echo $@
-       @GAWKLOCALE=C ; $(AWK) -f "$(srcdir)"/address@hidden > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbstr1::
-       @echo $@
-       @echo Expect mbstr1 to fail with DJGPP and MinGW.
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbstr2::
-       @echo $@
-       @echo Expect mbstr2 to fail with DJGPP and MinGW.
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 printfbad2: printfbad2.ok
        @echo $@
        @$(AWK) --lint -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden 
2>&1 | sed 's;$(srcdir)/;;g' >_$@ || echo EXIT CODE: $$?  >>_$@
@@ -907,19 +760,18 @@ printfbad2: printfbad2.ok
 
 beginfile1::
        @echo $@
-       @echo Expect beginfile1 to fail with DJGPP due to error message 
differences.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden 
"$(srcdir)"/address@hidden . ./no/such/file Makefile  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 beginfile2:
        @echo $@
-       @-( cd "$(srcdir)" && LC_ALL=C AWK="$(abs_builddir)/$(AWKPROG)" 
$(abs_srcdir)/address@hidden $(abs_srcdir)/address@hidden ) > _$@ 2>&1
-#      @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+       @-( cd "$(srcdir)" && LC_ALL=C AWK="$(abs_builddir)/$(AWKPROG)" 
$(abs_srcdir)/address@hidden $(abs_srcdir)/address@hidden ) > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(TESTOUTCMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 dumpvars::
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) --dump-variables 1 < 
"$(srcdir)"/address@hidden >/dev/null 2>&1 || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) --dump-variables 1 < 
"$(srcdir)"/address@hidden >/dev/null 2>&1 || echo EXIT CODE: $$? >>_$@ || echo 
EXIT CODE: $$? >> _$@
        @grep -v ENVIRON < awkvars.out | grep -v PROCINFO > _$@; rm awkvars.out
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -934,12 +786,12 @@ profile1:
        @$(AWK) -f "$(srcdir)"/xref.awk "$(srcdir)"/dtdgport.awk > 
address@hidden
        @$(AWK) address@hidden -f "$(srcdir)"/xref.awk
        @$(AWK) -f ./address@hidden "$(srcdir)"/dtdgport.awk > address@hidden ; 
rm address@hidden
-       @$(CMP) address@hidden address@hidden && rm address@hidden || { echo 
EXIT CODE: $$? >>_$@ ; \
+       @-$(CMP) address@hidden address@hidden && rm address@hidden || { echo 
EXIT CODE: $$? >>_$@ ; \
        cp "$(srcdir)"/dtdgport.awk address@hidden ; }
 
 profile2:
        @echo $@
-       @$(AWK) address@hidden -v sortcmd=sort -f "$(srcdir)"/xref.awk 
"$(srcdir)"/dtdgport.awk > /dev/null
+       @$(AWK) address@hidden -v sortcmd=$(SORT) -f "$(srcdir)"/xref.awk 
"$(srcdir)"/dtdgport.awk > /dev/null
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -949,17 +801,6 @@ profile3:
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-profile4:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-profile5:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-#      @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-       @-$(TESTOUTCMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 profile6:
        @echo $@
        @$(AWK) address@hidden -f "$(srcdir)"/address@hidden > /dev/null
@@ -972,116 +813,40 @@ profile7:
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-profile8:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-profile9:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-profile10:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-posix2008sub:
-       @echo $@
-       @$(AWK) --posix -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-next:
-       @echo $@
-       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-LC_ALL=C $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-exit:
-       @echo $@
-       @-AWK="$(AWKPROG)" "$(srcdir)"/address@hidden > _$@ 2>&1
-#      @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-       @-$(TESTOUTCMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rri1::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 mpfrieee:
        @echo $@
-       @$(AWK) -M -vPREC=double -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -vPREC=double -f "$(srcdir)"/address@hidden > _$@ 2>&1 || 
echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrexprange:
        @echo $@
-       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrrnd:
        @echo $@
-       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrrndeval:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-mpfrnegzero:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrnr:
-       @echo $@
-       @$(AWK) -M -vPREC=113 -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden > _$@
+       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrsort:
        @echo $@
-       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrbigint:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrsqrt:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrstrtonum:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfruplus:
        @echo $@
-       @$(AWK) -M -f "$(srcdir)"/uplus.awk > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpgforcenum:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrrem:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -f "$(srcdir)"/uplus.awk > _$@ 2>&1 || echo EXIT CODE: $$? 
>> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrmemok1:
        @echo $@
-       @$(AWK) -p- -M -f "$(srcdir)"/address@hidden 2>&1 | sed 1d > _$@
+       @$(AWK) -p- -M -f "$(srcdir)"/address@hidden 2>&1 | sed 1d > _$@ || 
echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 jarebug::
        @echo $@
-       @echo Expect jarebug to fail with DJGPP.
-       @"$(srcdir)"/address@hidden "$(AWKPROG)" "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden "_$@"
+       @echo Expect $@ to fail with DJGPP.
+       @"$(srcdir)"/address@hidden "$(AWKPROG)" "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden "_$@" || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 ordchr2::
@@ -1092,8 +857,8 @@ ordchr2::
 # N.B. If the test fails, create readfile.ok so that "make diffout" will work
 readfile::
        @echo $@
-       @$(AWK) -l readfile 'BEGIN {printf "%s", readfile("Makefile")}' >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) Makefile _$@ && rm -f _$@ || cp -p Makefile address@hidden
+       @$(AWK) -l readfile 'BEGIN {printf "%s", 
readfile("$(srcdir)/Makefile.am")}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)/Makefile.am" _$@ && rm -f _$@ || cp -p 
"$(srcdir)/Makefile.am" address@hidden
 
 readfile2::
        @echo $@
@@ -1174,28 +939,25 @@ inplace3::
 
 testext::
        @echo $@
-#      @$(AWK) '/^(@load|BEGIN)/,/^}/' "$(top_srcdir)"/extension/testext.c > 
testext.awk
        @$(AWK) ' /^(@load|BEGIN)/,/^}/' "$(top_srcdir)"/extension/testext.c > 
testext.awk
        @$(AWK) -f ./testext.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ testext.awk 
testexttmp.txt
 
 getfile:
        @echo $@
-       @echo Expect getfile to fail with MinGW.
+       @echo Expect $@ to fail with MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -v TESTEXT_QUIET=1 -ltestext -f 
address@hidden < $(srcdir)/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 readdir:
+       @echo $@
+       @echo Expect $@ to fail with MinGW.
        @if [ "`uname`" = Linux ] && [ "`stat -f . 2>/dev/null | awk 'NR == 2 { 
print $$NF }'`" = nfs ];  then \
        echo This test may fail on GNU/Linux systems when run on NFS or JFS 
filesystems.; \
        echo If it does, try rerunning on an ext'[234]' filesystem. ; \
        fi
-       @echo $@
-       @echo This test may fail on MinGW if $(LS) does not report full Windows 
file index as the inode
-       @$(AWK) -f "$(srcdir)"/readdir.awk "$(top_srcdir)" > _$@
-#      @ls -afi "$(top_srcdir)" > _dirlist
+       @$(AWK) -f "$(srcdir)"/readdir.awk "$(top_srcdir)" > _$@ || echo EXIT 
CODE: $$? >> _$@
        @$(LS) -afi "$(top_srcdir)" > _dirlist
-#      @ls -lna "$(top_srcdir)" | sed 1d > _longlist
        @$(LS) -lna "$(top_srcdir)" | sed 1d > _longlist
        @$(AWK) -f "$(srcdir)"/readdir0.awk -v extout=_$@  \
                -v dirlist=_dirlist -v longlist=_longlist > address@hidden
@@ -1203,12 +965,21 @@ readdir:
 
 readdir_test:
        @echo $@
-       @echo This test may fail on MinGW if $(LS) does not report full Windows 
file index as the inode
+       @echo Expect $@ to fail with MinGW.
        @$(AWK) -lreaddir -F$(SLASH) '{printf "[%s] [%s] [%s] [%s]\n", $$1, 
$$2, $$3, $$4}' "$(top_srcdir)" > address@hidden
        @$(AWK) -lreaddir_test '{printf "[%s] [%s] [%s] [%s]\n", $$1, $$2, $$3, 
$$4}' "$(top_srcdir)" > _$@
        @-$(CMP) address@hidden _$@ && rm -f address@hidden _$@
 
+readdir_retest:
+       @echo $@
+       @echo Expect $@ to fail with MinGW.
+       @$(AWK) -lreaddir -F$(SLASH) -f "$(srcdir)"/address@hidden 
"$(top_srcdir)" > address@hidden
+       @$(AWK) -lreaddir_test -F$(SLASH) -f "$(srcdir)"/address@hidden 
"$(top_srcdir)" > _$@
+       @-$(CMP) address@hidden _$@ && rm -f address@hidden _$@
+
 fts:
+       @echo $@
+       @echo Expect $@ to fail with MinGW.
        @case `uname` in \
        IRIX) \
        echo This test may fail on IRIX systems when run on an NFS filesystem.; 
\
@@ -1217,18 +988,13 @@ fts:
        echo This test may fail on CYGWIN systems when run on an NFS 
filesystem.; \
        echo If it does, try rerunning on an ntfs filesystem. ;; \
        esac
-       @echo $@
-       @echo Expect $@ to fail with MinGW because function 'fts' is not 
defined.
-#      @$(AWK) -f "$(srcdir)"/fts.awk
-       @$(AWK) -f "$(srcdir)"/fts.awk || echo EXIT CODE: $$? >>_$@
+       @$(AWK) -f "$(srcdir)"/fts.awk || echo EXIT CODE: $$? >> _$@
        @-$(CMP) address@hidden _$@ && rm -f address@hidden _$@
 
+# BINMODE=2 is needed for PC tests.
 charasbytes:
        @echo $@
-#      @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-#      AWKPATH="$(srcdir)" $(AWK) -b -f address@hidden 
"$(srcdir)"/address@hidden | \
-#      od -c -t x1 | tr '      ' ' ' | sed -e 's/  */ /g' -e 's/ *$$//' >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -b -v BINMODE=2 -f address@hidden 
"$(srcdir)"/address@hidden | \
        od -c -t x1 | tr '      ' ' ' | sed -e 's/  */ /g' -e 's/ *$$//' >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
@@ -1247,72 +1013,29 @@ symtab8:
 
 symtab9:
        @echo $@
-       @$(AWK) -f "$(srcdir)"/address@hidden >_$@
+       @$(AWK) -f "$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >> _$@
        @rm -f testit.txt
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 reginttrad:
        @echo $@
-       @$(AWK) --traditional -r -f "$(srcdir)"/address@hidden > _$@
+       @$(AWK) --traditional -r -f "$(srcdir)"/address@hidden > _$@ || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 colonwarn:
        @echo $@
        @for i in 1 2 3 ; \
        do $(AWK) -f "$(srcdir)"/address@hidden $$i < 
"$(srcdir)"/address@hidden ; \
-       done > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-clos1way:
-       @echo $@
-       @echo Expect clos1way to fail with DJGPP.
-       @AWKPATH="$(srcdir)" LC_ALL=C $(AWK) -f address@hidden  >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-dfamb1:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-randtest::
-       @echo $@
-       @GAWK="$(AWKPROG)" "$(srcdir)"/randtest.sh >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-backbigs1:
-       @echo $@
-       @echo Expect backbigs1 to fail with MinGW and DJGPP
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-backsmalls1:
-       @echo $@
-       @echo Expect backsmalls1 to fail with MinGW and DJGPP
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-backsmalls2:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       done > _$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 dbugeval::
        @echo $@
-       @if [ -t 0 ]; then \
+       @-if [ -t 0 ]; then \
        $(AWK) --debug -f /dev/null < "$(srcdir)"/address@hidden > _$@  2>&1 || 
echo EXIT CODE: $$? >>_$@ ; \
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
-printhuge::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 filefuncs:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden -v 
builddir="$(abs_top_builddir)"  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -1323,40 +1046,10 @@ genpot:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --gen-pot >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-paramasfunc1::
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --posix >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-paramasfunc2::
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --posix >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 negtime::
        @echo $@
        @TZ=GMT AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
-       @AWKPATH="$(srcdir)" $(AWK) -f checknegtime.awk 
"$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-dbugtypedre1:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-dbugtypedre2:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-dbugeval2:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-muldimposix::
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --posix >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+       @-AWKPATH="$(srcdir)" $(AWK) -f checknegtime.awk 
"$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 watchpoint1:
        @echo $@
@@ -1380,45 +1073,49 @@ pty2:
        *) AWKPATH="$(srcdir)" $(AWK) -f address@hidden | od -c | $(AWK) '{ $$1 
= $$1 ; print }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ; \
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ;; \
        esac
-rscompat:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) --traditional -f address@hidden 
"$(srcdir)/address@hidden" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-symtab10:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)/address@hidden" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 ignrcas3::
        @echo $@
-       @echo Expect ignrcas3 to fail with MinGW and DJGPP
-#      @if locale -a | grep el_GR.iso88597 > /dev/null ; then \
-#      GAWKLOCALE=el_GR.iso88597 \
-#      AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@ ; \
-#      $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
-#      fi
-       @if locale -a | grep ell_GRC.1253 > /dev/null ; then \
-       @GAWKLOCALE=ell_GRC.1253 \
+       @echo Expect $@ to fail with DJGPP and MinGW.
+       @-if locale -a | grep ell_GRC.1253 > /dev/null ; then \
+       [ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ell_GRC.1253 ; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@ ; \
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
+       $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
 arrdbg:
        @echo $@
-       @$(AWK) -v "okfile=./address@hidden" -f "$(srcdir)"/address@hidden | 
grep array_f >_$@
+       @$(AWK) -v "okfile=./address@hidden" -f "$(srcdir)"/address@hidden | 
grep array_f >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) ./address@hidden _$@ && rm -f _$@ ./address@hidden
 
-fwtest3:
+sourcesplit:
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < "$(srcdir)"/fwtest2.in 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) --source='BEGIN { a = 5;' --source='print a 
}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-sourcesplit:
+# Use [:] in the regexp to keep MSYS from converting the /'s to \'s.
+nonfatal1:
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) --source='BEGIN { a = 5;' --source='print a 
}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @echo Expect $@ to fail with DJGPP.
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden 2>&1 | $(AWK) '{print 
gensub(/invalid[:].*$$/, "invalid", 1, $$0)}' >_$@ || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+# 4/2018: On first call to $(CMP), send to /dev/null even with -s for MinGW.
+nlstringtest::
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=FRA_FRA.1252 ; export GAWKLOCALE ; 
\
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)" >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-if $(CMP) -s "$(srcdir)"/nlstringtest-nogettext.ok _$@ > /dev/null ; \
+       then \
+               rm -f _$@ ; \
+       else \
+               $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
+       fi
+
+longwrds:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden -v SORT="$(SORT)" < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 Gt-dummy:
 # file Maketests, generated from Makefile.am by the Gentests program
 addcomma:
@@ -1621,6 +1318,12 @@ concat3:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+concat4:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 concat5:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1661,6 +1364,12 @@ delfunc:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+dfamb1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 dfastress:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1683,7 +1392,7 @@ exit2:
 
 exitval2:
        @echo $@
-       @echo Expect exitval2 to fail with MinGW
+       @echo Expect $@ to fail with MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -1842,6 +1551,11 @@ gsubtst2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+gsubtst3:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --re-interval < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 gsubtst4:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1852,6 +1566,12 @@ gsubtst5:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+gsubtst6:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 gsubtst7:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -1875,7 +1595,6 @@ hex2:
 hsprint:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-#      @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
        @-$(TESTOUTCMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 inpref:
@@ -1903,20 +1622,24 @@ iobug1:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+leaddig:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 leadnl:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-longsub:
+litoct:
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --traditional < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-longwrds:
+longsub:
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden SORT=sort < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-#      @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 manglprm:
@@ -1944,6 +1667,11 @@ minusstr:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+mmap8k:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 nasty:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2004,14 +1732,6 @@ nlstrina:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-nlstringtest::
-       @echo $@
-       @echo Expect nlstringtest to fail with DJGPP and MinGW when not built 
with gettext.
-#      @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=fr_FR.UTF-8 LANGUAGE=
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=FRA_FRA.1252 LANGUAGE= ; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)" >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 noeffect:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --lint >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
@@ -2032,6 +1752,11 @@ noloop2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+nonl:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --lint < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 noparms:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2117,6 +1842,16 @@ opasnslf:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+paramasfunc1:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+paramasfunc2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 paramdup:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2154,7 +1889,12 @@ parseme:
 
 pcntplus:
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+posix2008sub:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 prdupval:
@@ -2167,6 +1907,11 @@ prec:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+printf0:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 printf1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2204,6 +1949,11 @@ rand:
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
+randtest:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 range1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2269,11 +2019,22 @@ resplit:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+rri1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rs:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+rscompat:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --traditional < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rsnul1nl:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2296,13 +2057,13 @@ rstest3:
 
 rstest4:
        @echo $@
-       @echo Expect rstest4 to fail with MinGW
+       @echo Expect $@ to fail with MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 rstest5:
        @echo $@
-       @echo Expect rstest5 to fail with MinGW
+       @echo Expect $@ to fail with MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2338,13 +2099,9 @@ setrec1:
 
 sigpipe1:
        @echo $@
-       @-case `uname` in \
-       *MS-DOS*) echo This test fails on DJGPP --- skipping $@ ;; \
-       *) \
-       AWKPATH="$(srcdir)" ; export AWKPATH; \
-       $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ; \
-       $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
-       esac
+       @echo Expect $@ to fail with DJGPP.
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 sortempty:
        @echo $@
@@ -2383,7 +2140,7 @@ splitwht:
 
 status-close:
        @echo $@
-       @echo Expect status-close to fail with MinGW
+       @echo Expect $@ to fail with MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2404,15 +2161,27 @@ strnum2:
 
 strtod:
        @echo $@
-       @echo Expect strtod to fail with DJGPP.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+subamp:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 subback:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+subi18n:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 subsepnm:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2443,6 +2212,16 @@ synerr2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+tailrecurse:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+tradanch:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --traditional < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 uninit2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --lint >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
@@ -2483,6 +2262,42 @@ uplus:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+wideidx:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+wideidx2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub3:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub4:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 wjposer1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2503,12 +2318,32 @@ zeroflag:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+fflush:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 getlnhd:
        @echo $@
-       @echo Expect getlnhd to fail if pipe does not use a Unixy shell
+       @echo Expect $@ to fail with DJGPP and MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+localenl:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+rtlen:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+rtlen01:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 aadelete1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2541,37 +2376,44 @@ arraysort:
 
 backw:
        @echo $@
-       @echo Expect backw to fail with DJGPP.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+clos1way:
+       @echo $@
+       @echo Expect $@ to fail with DJGPP.
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 clos1way2:
        @echo $@
-       @echo Expect clos1way2 to fail with DJGPP.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 clos1way3:
        @echo $@
-       @echo Expect clos1way3 to fail with DJGPP.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 clos1way4:
        @echo $@
-       @echo Expect clos1way4 to fail with DJGPP.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 clos1way5:
        @echo $@
-       @echo Expect clos1way5 to fail with DJGPP.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 clos1way6:
        @echo $@
-       @echo Expect clos1way6 to fail with DJGPP and MinGW
+       @echo Expect $@ to fail with DJGPP and MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2580,16 +2422,41 @@ crlf:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+dbugeval2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+dbugtypedre1:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+dbugtypedre2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 delsub:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+exit:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(TESTOUTCMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 fieldwdth:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+forcenum:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --non-decimal-data >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 fpat1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2660,6 +2527,11 @@ fwtest2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+fwtest3:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 fwtest4:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2702,7 +2574,7 @@ gensub3:
 
 getlndir:
        @echo $@
-       @echo Expect getlndir to fail with DJGPP due to error message 
differences.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2713,11 +2585,13 @@ gnuops2:
 
 gnuops3:
        @echo $@
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 gnureops:
        @echo $@
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2738,7 +2612,7 @@ icasers:
 
 id:
        @echo $@
-       @echo Expect id to fail with DJGPP.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2752,6 +2626,12 @@ igncfs:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+ignrcas2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 ignrcas4:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2782,6 +2662,11 @@ indirectcall2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+intarray:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --non-decimal-data >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 isarrayunset:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2847,31 +2732,54 @@ match3:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+mbstr1:
+       @echo $@
+       @echo Expect $@ to fail with DJGPP and MinGW.
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbstr2:
+       @echo $@
+       @echo Expect $@ to fail with DJGPP and MinGW.
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+muldimposix:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 nastyparm:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+next:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 nondec:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-nonfatal1:
+nondec2:
        @echo $@
-       @echo Expect nonfatal1 to fail with DJGPP.
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden 2>&1 | $(AWK) '{print 
gensub(/invalid.*$$/, "invalid", 1, $$0)}' >_$@ || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --non-decimal-data >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 nonfatal2:
        @echo $@
-       @echo Expect nonfatal2 to fail with DJGPP due to error message 
differences.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 nonfatal3:
        @echo $@
-       @echo Expect nonfatal3 to fail with DJGPP.
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2883,7 +2791,6 @@ patsplit:
 posix:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-#      @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
        @-$(TESTOUTCMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 printfbad1:
@@ -2901,11 +2808,42 @@ printfbad4:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+printhuge:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 procinfs:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+profile4:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile5:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(TESTOUTCMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile8:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile9:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile10:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 regnul1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2918,14 +2856,36 @@ regnul2:
 
 regx8bit:
        @echo $@
+       @echo Expect $@ to fail with DJGPP.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+reint:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --re-interval < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+reint2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --re-interval < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rsgetline:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+rsstart1:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+rsstart2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rstest6:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -3016,6 +2976,11 @@ symtab7:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+symtab10:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 typedregex1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -3058,7 +3023,7 @@ typeof5:
 
 timeout:
        @echo $@
-       @echo Expect timeout to fail with DJGPP and MinGW
+       @echo Expect $@ to fail with DJGPP and MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -3070,7 +3035,6 @@ double1:
 double2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-#      @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
        @-$(TESTOUTCMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 intformat:
@@ -3088,10 +3052,29 @@ asorti:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+backbigs1:
+       @echo $@
+       @echo Expect $@ to fail with DJGPP and MinGW.
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+backsmalls1:
+       @echo $@
+       @echo Expect $@ to fail with DJGPP and MinGW.
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+backsmalls2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 fmttest:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-#      @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
        @-$(TESTOUTCMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 fnarydel:
@@ -3108,6 +3091,51 @@ fnparydl:
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
+lc_num1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbfw1:
+       @echo $@
+       @echo Expect $@ to fail with DJGPP and MinGW.
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf1:
+       @echo $@
+       @echo Expect $@ to fail with DJGPP and MinGW.
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf3:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf4:
+       @echo $@
+       @echo Expect $@ to fail with DJGPP and MinGW.
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mtchi18n:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=RUS_RUS.1251; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rebt8b2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -3135,13 +3163,13 @@ fnmatch:
 
 fork:
        @echo $@
-       @echo Expect $@ to fail with MinGW because fork.dll is not available
+       @echo Expect $@ to fail with MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 fork2:
        @echo $@
-       @echo Expect $@ to fail with MinGW because fork.dll is not available
+       @echo Expect $@ to fail with MinGW.
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -3175,22 +3203,69 @@ time:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+mpfrbigint:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrfield:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrnegzero:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrnr:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrrem:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrrndeval:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrsqrt:
+       @echo $@
+       @echo Expect $@ to fail with DJGPP.
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrstrtonum:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpgforcenum:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 # end of file Maketests
 
 # Targets generated for other tests:
 
 Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests
-       files=`cd "$(srcdir)" && echo *.awk *.in`; \
+       files=`cd "$(srcdir)" && echo *.awk *.in *.sh`; \
        $(AWK) -f "$(srcdir)"/Gentests "$(srcdir)"/Makefile.am $$files > $@
 
 clean-local:
        rm -fr _* core core.* fmtspcl.ok junk strftime.ok test1 test2 \
        seq *~ readfile.ok fork.tmp.* testext.awk fts.ok readdir.ok \
-       mmap8k.ok profile1.ok readdir_test.ok
+       readdir_test.ok readdir_retest.ok \
+       profile1.ok
 
 # An attempt to print something that can be grepped for in build logs
 pass-fail:
-       @COUNT=`ls _* 2>/dev/null | wc -l` ; \
+       @-COUNT=`ls _* 2>/dev/null | wc -l` ; \
        if test $$COUNT = 0 ; \
        then    echo ALL TESTS PASSED ; \
        else    echo $$COUNT TESTS FAILED ; exit 1; \
@@ -3215,7 +3290,7 @@ diffout:
 # convenient way to scan valgrind results for errors
 valgrind-scan:
        @echo "Scanning valgrind log files for problems:"
-       @$(AWK) -f "$(srcdir)"/valgrind.awk log.[0-9]*
+       @-$(AWK) -f "$(srcdir)"/valgrind.awk log.[0-9]*
 
 # This target is for testing with electric fence.
 efence:
diff --git a/pc/Makefile.tst.prologue b/pc/Makefile.tst.prologue
new file mode 100644
index 0000000..57e55d7
--- /dev/null
+++ b/pc/Makefile.tst.prologue
@@ -0,0 +1,138 @@
+# Makefile for GNU Awk test suite.
+#
+# Copyright (C) 1988-2018 the Free Software Foundation, Inc.
+# 
+# This file is part of GAWK, the GNU implementation of the
+# AWK Programming Language.
+# 
+# GAWK is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+# 
+# GAWK is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA
+
+# ============================================================================
+# MS-DOS & OS/2 Notes: READ THEM!
+# ============================================================================
+
+# As of version 2.91, efforts to make this makefile run in MS-DOS and OS/2
+# have started in earnest.  The following steps need to be followed in order 
+# to run this makefile:
+#
+# 1. The first thing that you will need to do is to convert all of the 
+#    files ending in ".ok" in the test directory, all of the files ending 
+#    in ".good" (or ".goo") in the test/reg directory, and mmap8k.in from
+#    having a linefeed to having carriage return/linefeed at the end of each
+#    line. There are various public domain UNIX to DOS converters and any 
+#    should work.  Alternatively, you can use diff instead of cmp--most 
+#    versions of diff don't care about how the lines end.
+#
+# 2. You will need an sh-compatible shell.  Please refer to the "README.pc"
+#    file in the README_d directory for information about obtaining a copy.
+#    You will also need various UNIX utilities.  At a minimum, you will 
+#    need: rm, tr, cmp (or diff, see above), cat, wc, and sh.  
+#    You should also have a UNIX-compatible date program.
+#
+# The makefile has only been tested with dmake 3.8 and DJGPP Make 3.74 or
+# later.  After making all of these changes, typing "dmake check extra"
+# or "make check extra" (with DJGPP Make) should run successfully.
+
+# The Bash shell (compiled with djgpp) works very well with the
+# djgpp-compiled gawk.  It is currently the recommended shell to use
+# for testing, along with DJGPP make.  See README.pc for 
+# more information on OS/2 and DOS shells.
+
+# You will almost certainly need to change some of the values (MACROS) 
+# defined on the next few lines.  
+
+# This won't work unless you have "sh" and set SHELL equal to it (Make 3.74
+# or later which comes with DJGPP will work with SHELL=/bin/sh if you have
+# sh.exe anywhere on your PATH).
+#SHELL = e:\bin\sh.exe
+SHELL = /bin/sh
+
+# Point to gawk
+AWK = AWKLIBPATH=../extension $(AWKPROG)
+AWKPROG = ../gawk.exe
+# Point $(LS) to a version of ls.exe that reports true Windows file
+# index numbers, because this is what the readdir test expects.
+# Otherwise, the readdir test will fail.  (The MSYS ls.exe doesn't
+# report full index values.)
+LS = ls.exe
+
+# Set your cmp command here (you can use most versions of diff instead of cmp
+# if you don't want to convert the .ok files to the DOS CR/LF format).
+# This is also an issue for the "mmap8k" test.  If it fails, make sure that
+# mmap8k.in has CR/LFs or that you've used diff.
+#
+# The following comment is for users of OSs which support long file names
+# (such as Windows 95) for all versions of gawk (both 16 & 32-bit).
+# If you use a shell which doesn't support long filenames, temporary files
+# created by this makefile will be truncated by your shell.  "_argarra" is an
+# example of this.  If $(CMP) is a DJGPP-compiled program, then it will fail
+# because it looks for the long filename (eg. _argarray).  To fix this, you
+# need to set LFN=n in your shell's environment.
+# NOTE: Setting LFN in the makefile most probably won't help you because LFN
+# needs to be an environment variable.
+#CMP = cmp
+# See the comment above for why you might want to set CMP to "env LFN=n diff"
+#CMP = env LFN=n diff
+#CMP = diff
+CMP = diff -u
+#CMP = gcmp
+
+# cmp replacement program for PC where the error messages aren't
+# exactly the same.  Should run even on old awk.
+TESTOUTCMP = $(AWK) -f ../testoutcmp.awk
+
+# Set your "cp," "mv," and "mkdir" commands here.  Note: DOS's copy must take
+# forward slashes.
+CP = cp
+#CP = : && command -c copy
+#CP  = command.com /c copy
+
+#MV = cmd.exe /c ren
+MV = mv
+
+MKDIR = mkdir
+#MKDIR = gmkdir
+#MKDIR = : && command -c mkdir
+#MKDIR  = command.com /c mkdir
+
+# Set your unix-style date function here
+#DATE = date
+DATE = gdate
+
+# Set sort command
+SORT = sort
+
+# MS-DOS and OS/2 use ; as a PATH delimiter
+PATH_SEPARATOR = ;
+
+# Argument to -F to produce -F/, should be // for MinGW, / otherwise,
+# because MSYS Bash converts a single slash to the equivalent Windows
+# directory.
+SLASH = /
+#SLASH = //
+
+# Non-default GREP_OPTIONS might fail the badargs test
+export GREP_OPTIONS=
+
+# ============================================================================
+# You shouldn't need to modify anything below this line.
+# ============================================================================
+
+srcdir = .
+abs_srcdir = .
+abs_builddir = .
+top_srcdir = "$(srcdir)"/..
+abs_top_builddir = "$(top_srcdir)"
+
diff --git a/test/ChangeLog b/test/ChangeLog
index ad18eb6..9c55a48 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,9 +1,53 @@
+2018-05-12  Eli Zaretskii  <address@hidden>
+
+       * Makefile.am (readfile): Fix a typo.
+
+2018-05-10         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.am (readfile): Use $(srcdir)/Makefile.am as the
+       target to read and compare against. We hope this avoids
+       issues with CR/LF on Windows...
+
+2018-05-06         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.am (SORT): New variable, to improve consistency with
+       PC test suite.
+       (profile2): Use $(SORT) instead of literal "sort".
+       (msg): Use $(CMP) in message instead of literal "cmp".
+       Thanks to Eli Z. for the suggested changes.
+
+2018-05-03         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.am (EXPECTED_FAIL_MINGW): Per Eli Z., remove clos1way5.
+
 2018-04-30         Arnold D. Robbins     <address@hidden>
 
        * readdir0.awk: Handle symbolic links in the top level
        source directory. (Useful if testing for PC where the PC
        test makefile wants a gawk.exe to exist.)
 
+2018-04-24         Scott Deifik          <address@hidden>
+
+       * Makefile.am (EXPECTED_FAIL_MINGW): Add clos1way5.
+
+2018-04-24         Juan Manuel Guerrero  <address@hidden>
+
+       * Makefile.am (EXPECTED_FAIL_DJGPP): Add mpfrsqrt.
+
+2018-04-23         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.am (EXPECTED_FAIL_MINGW): Remove fmtspcl and
+       and add readdir_retest.
+       (mbprintf5): Add checks for MinGW and DJGPP along with Cygwin.
+       Thanks to Scott Deifik for the report.
+       (nlstringtest): Redirect $(CMP) output to /dev/null. Not sure
+       why this is necessary but it seems to be.
+
+2018-04-22         Juan Manuel Guerrero  <address@hidden>
+
+       * Makefile.am (EXPECTED_FAIL_DJGPP): Add gnuops3, gnureops,
+       regx8bit and sigpipe1 to the list.
+
 2018-04-20         Arnold D. Robbins     <address@hidden>
 
        * Makefile.am (readdir_retest): Use $(srcdir) to reference source
@@ -12,9 +56,25 @@
 
 2018-04-19         Arnold D. Robbins     <address@hidden>
 
+       * Makefile.am (EXPECTED_FAIL_MINGW): Add clos1way6.
+       (readdir, fts): Move the 'echo $@' to be the first line.
+       (nonfatal1): Adapt inline awk script to work with MSYS too.
+       (charset-tests-all): Check for MinGW or DJGPP and just run
+       the tests if so, otherwise check for needed locales as
+       previously.
+
+2018-04-19         Arnold D. Robbins     <address@hidden>
+
        * nonfatal1.awk, nonfatal1.ok: Change to use 1.2.3.4.5
        as the host. Thanks again to Mike Burkett <address@hidden>.
 
+2018-04-18         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.am (NEED_TESTOUTCMP): New list of tests that need
+       a different cmp program.
+       (charasbytes): Add -v BINMODE=2.
+       (longwrds): Need an explicit recipe to have sort command.
+
 2018-04-17         Arnold D. Robbins     <address@hidden>
 
        * nonfatal1.awk, nonfatal1.ok: Add a bunch of bad characters
@@ -22,11 +82,88 @@
        cause the test to time out instead of failing. Thanks to
        Mike Burkett <address@hidden> for the report.
 
+       Unrelated:
+
+       * Makefile.am (NEED_RE_INTERVAL): Spell the macro correctly.
+       (strftime): Pass -v DATECMD="$(DATE)" to match pc usage.
+
 2018-04-14         Manuel Collado       <address@hidden>
 
        * Makefile.am (readdir_retest): Add new test.
        * readdir_retest.awk: New file.
 
+2018-04-16         Arnold D. Robbins     <address@hidden>
+
+       * Gentests: Remove VMS stuff. It hasn't been used in years.
+       * Gentests.vms: Removed.
+       * Makefile.am (EXTRA_DIST): Remove Gentests.vms.
+       (regtest): Add an echo $@ and make last line start with @,
+       for consistency with other tests.
+
+2018-04-12         Arnold D. Robbins     <address@hidden>
+
+       * Gentests: Add support tests that need --re-interval.
+       * Makefile.am (NEED_RE_INTERVAL): New list of tests.
+       (NEED_LOCALE_EN): Add reint2 to the list.
+       * gsubtst3.awk, leaddig.awk: Modified to support automating.
+
+       Unrelated: Start on being able to generate pc/Makefile.tst.
+       
+       * Makfile.am (EXPECTED_FAIL_DJGPP, EXPECTED_FAIL_MINGW):
+       New lists of test expected to fail on the given platforms.
+
+2018-04-11         Arnold D. Robbins     <address@hidden>
+
+       * Gentests: Add support for tests that need a specific locale.
+       * Makefile.am (NEED_LOCALE_C, NEED_LOCALE_EN, NEED_LOCALE_JP,
+       NEED_LOCALE_RU): New lists of such tests.
+
+       Unrelated:
+
+       * Makefile.am: Add printing exit status to results for many
+       tests that lacked it. This makes the tests more consistent
+       with each other and with the auto-generated tests.
+
+2018-04-09         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.am (RUN_SHELL): List of tests that run a .sh file.
+       * Gentests: Add support for such tests.
+       * randtest.sh: Use $AWK, not $GAWK so it can be generated.
+
+       Unrelated:
+
+       * Makefile.am (clos1way): Use standard locale verbiage in
+       preparation for later automation of specialized locale tests.
+
+2018-04-08         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.am (manyfiles, pid): Use echo $@ to echo test name.
+       (EXTRA_DIST): Remove longdbl.* files.
+       (TESTS_WE_ARE_NOT_DOING_YET_FIXME_ONE_DAY): Removed.
+       * longdbl.awk, longdbl.in, longdbl.ok: Removed.
+
+2018-04-05         Arnold D. Robbins     <address@hidden>
+
+       * Gentests: Add support for tests needing --debug and
+       --non-decimal-data.
+       * Makefile.am (NEED_DEBUG, NEED_NONDEC):  New macros.
+
+2018-04-04         Arnold D. Robbins     <address@hidden>
+
+       * Gentests: Add support for tests needing --pretty-print.
+       Improve checking in the END rule.
+       * Makefile.am (NEED_PRETTY):  New macro.
+
+2018-04-03         Arnold D. Robbins     <address@hidden>
+
+       * Gentests: Add special support for MPFR tests, tests needing
+       --posix and --traditional.
+       * Makefile.am (NEED_MPFR): Renamed from MPFR_TESTS.
+       (NEED_POSIX, NEED_TRADITIONAL): New groupings.  Removed related
+       individual recipes.
+       (GENTESTS_UNUSED): Updated.
+       * litoct.in, nonl.in: New files.
+
 2018-04-01         Arnold D. Robbins     <address@hidden>
 
        * Makefile.am (EXTRA_DIST): Add files for mpfrfield.
diff --git a/test/Gentests b/test/Gentests
index 5a7aaa0..d7feaef 100755
--- a/test/Gentests
+++ b/test/Gentests
@@ -3,8 +3,6 @@
 # This program should generate Maketests
 
 BEGIN {
-       if (VMSTESTS) vmsargvfixup()
-
        # read the list of files
        for (i = 2; i < ARGC; i++)
                files[ARGV[i]]
@@ -13,6 +11,13 @@ BEGIN {
        ARGC = 2
 
        ntests = 0
+
+       Locale["C"] = "C"
+       Locale["EN"] = "en_US.UTF-8"
+       Locale["FR"] = "fr_FR.UTF-8"
+       Locale["GR"] = "el_GR.iso88597"
+       Locale["JA"] = "ja_JP.UTF-8"
+       Locale["RU"] = "ru_RU.UTF-8"
 }
 
 # process the file Makefile.am:
@@ -24,6 +29,13 @@ BEGIN {
        next
 }
 
+/^NEED_DEBUG *=/,/[^\\]$/ {
+       gsub(/(^NEED_DEBUG *=|\\$)/,"")
+       for (i = 1; i <= NF; i++)
+               debug[$i]
+       next
+}
+
 /^NEED_LINT *=/,/[^\\]$/ {
        gsub(/(^NEED_LINT *=|\\$)/,"")
        for (i = 1; i <= NF; i++)
@@ -38,6 +50,50 @@ BEGIN {
        next
 }
 
+/^NEED_MPFR *=/,/[^\\]$/ {
+       gsub(/(^NEED_MPFR *=|\\$)/,"")
+       for (i = 1; i <= NF; i++) {
+               simple_mpfr[$i]
+               tests[++ntests] = $i
+       }
+       next
+}
+
+/^NEED_NONDEC *=/,/[^\\]$/ {
+       gsub(/(^NEED_NONDEC *=|\\$)/,"")
+       for (i = 1; i <= NF; i++)
+               nondec[$i]
+       next
+}
+
+/^NEED_PRETTY *=/,/[^\\]$/ {
+       gsub(/(^NEED_PRETTY *=|\\$)/,"")
+       for (i = 1; i <= NF; i++)
+               pretty[$i]
+       next
+}
+
+/^NEED_POSIX *=/,/[^\\]$/ {
+       gsub(/(^NEED_POSIX *=|\\$)/,"")
+       for (i = 1; i <= NF; i++)
+               posix[$i]
+       next
+}
+
+/^NEED_RE_INTERVAL *=/,/[^\\]$/ {
+       gsub(/(^NEED_RE_INTERVAL *=|\\$)/,"")
+       for (i = 1; i <= NF; i++)
+               re_interval[$i]
+       next
+}
+
+/^NEED_TRADITIONAL *=/,/[^\\]$/ {
+       gsub(/(^NEED_TRADITIONAL *=|\\$)/,"")
+       for (i = 1; i <= NF; i++)
+               traditional[$i]
+       next
+}
+
 /^GENTESTS_UNUSED *=/,/[^\\]$/ {
        gsub(/(^GENTESTS_UNUSED *=|\\$)/,"")
        for (i = 1; i <= NF; i++)
@@ -54,6 +110,18 @@ BEGIN {
        next
 }
 
+# Tests needing a particular locale
+/^NEED_LOCALE_.* *=/,/[^\\]$/ {
+       if (/^NEED/)
+               cur_locale = gensub(/^NEED_LOCALE_([[:alnum:]]+).*/, "\\1", 1, 
$1)
+
+       gsub(/^NEED_LOCALE_.* *=|\\$/, "")
+       for (i = 1; i <= NF; i++) {
+               locale_tests[cur_locale][$i]
+               all_locale_tests[$i]
+       }
+}
+
 /^[[:alpha:]_][[:alnum:]_]*:/ {
        # remember all targets from Makefile.am
        sub(/:.*/,"")
@@ -75,15 +143,34 @@ END {
        print "# end of file Maketests"
 }
 
-function generate(x,   s)
+function generate_shell(x,     s)
 {
+       delete files[x".sh"]
+
+       s = ""
+       if (x".in" in files) {
+               s = "\"$(srcdir)\"/address@hidden"
+               delete files[x".in"]
+       }
+
+       print x ":"
+       printf "address@hidden address@hidden"
+
+       printf "address@hidden(LOCALES) AWK=\"$(AWKPROG)\" 
\"$(srcdir)\"/address@hidden %s > _$@ 2>&1 || echo EXIT CODE: $$? 
>>address@hidden", s
+       printf "address@hidden(CMP) \"$(srcdir)\"/address@hidden _$@ && rm -f 
address@hidden"
+       
+}
+
+function generate(x,   s, i, locale_string)
+{
+       if (x".sh" in files)
+               return generate_shell(x)
+
        if (!(x".awk" in files))
                printf "WARNING: file `%s.awk' not found.\n", x > "/dev/stderr"
        else
                delete files[x".awk"]
 
-       if (VMSTESTS) return vmsgenerate(x)
-
        print x ":"
 
        s = ""
@@ -95,6 +182,34 @@ function generate(x,        s)
                s = s " --lint-old"
                delete lint_old[x]
        }
+       if (x in simple_mpfr) {
+               s = s " -M"
+               delete simple_mpfr[x]
+       }
+       if (x in posix) {
+               s = s " --posix"
+               delete posix[x]
+       }
+       if (x in traditional) {
+               s = s " --traditional"
+               delete traditional[x]
+       }
+       if (x in pretty) {
+               s = s " --pretty-print=_$@"
+               delete pretty[x]
+       }
+       if (x in debug) {
+               s = s " --debug"
+               delete debug[x]
+       }
+       if (x in nondec) {
+               s = s " --non-decimal-data"
+               delete nondec[x]
+       }
+       if (x in re_interval) {
+               s = s " --re-interval"
+               delete re_interval[x]
+       }
        if (x".in" in files) {
                s = s " < \"$(srcdir)\"/address@hidden"
                delete files[x".in"]
@@ -102,14 +217,29 @@ function generate(x,      s)
 
        printf "address@hidden address@hidden"
 
+       # default is the leading tab and @
+       locale_string = "\t@"
+       if (x in all_locale_tests) {
+               delete all_locale_tests[x]
+               for (i in locale_tests) {
+                       if (x in locale_tests[i]) {
+                               locale_string = sprintf("address@hidden -z 
\"$$GAWKLOCALE\" ] && GAWKLOCALE=%s; export GAWKLOCALE; \\\n\t", Locale[i])
+                               delete locale_tests[i][x]
+                               break
+                       }
+               }
+       }
+
        if (x in mpfr) {
                delete mpfr[x]
-               printf "address@hidden"$(srcdir)\" $(AWK) $(AWKFLAGS) -f 
address@hidden %s >_$@ 2>&1 || echo EXIT CODE: $$? >>address@hidden", s
+               printf "%s", locale_string
+               printf "AWKPATH=\"$(srcdir)\" $(AWK) $(AWKFLAGS) -f 
address@hidden %s >_$@ 2>&1 || echo EXIT CODE: $$? >>address@hidden", s
                printf "address@hidden test -z \"$$AWKFLAGS\" ; then $(CMP) 
\"$(srcdir)\"/address@hidden _$@ && rm -f _$@ ; else \\\n"
                printf "\t$(CMP) \"$(srcdir)\"/address@hidden _$@ && rm -f _$@ 
; \\\n"
                printf "\tfi\n\n"
        } else {
-               printf "address@hidden"$(srcdir)\" $(AWK) -f address@hidden %s 
>_$@ 2>&1 || echo EXIT CODE: $$? >>address@hidden", s
+               printf "%s", locale_string
+               printf "AWKPATH=\"$(srcdir)\" $(AWK) -f address@hidden %s >_$@ 
2>&1 || echo EXIT CODE: $$? >>address@hidden", s
                printf "address@hidden(CMP) \"$(srcdir)\"/address@hidden _$@ && 
rm -f address@hidden"
        }
 }
@@ -121,11 +251,35 @@ END {
        for (x in lint_old)
                if (!(x in targets))
                        printf "WARNING: --lint-old target `%s' is missing.\n", 
x > "/dev/stderr"
+       for (x in simple_mpfr)
+               if (!(x in targets))
+                       printf "WARNING: -M target `%s' is missing.\n", x > 
"/dev/stderr"
+       for (x in posix)
+               if (!(x in targets))
+                       printf "WARNING: --posix target `%s' is missing.\n", x 
> "/dev/stderr"
+       for (x in traditional)
+               if (!(x in targets))
+                       printf "WARNING: --traditional target `%s' is 
missing.\n", x > "/dev/stderr"
+       for (x in pretty)
+               if (!(x in targets))
+                       printf "WARNING: --pretty-print target `%s' is 
missing.\n", x > "/dev/stderr"
+       for (x in debug)
+               if (!(x in targets))
+                       printf "WARNING: --debug target `%s' is missing.\n", x 
> "/dev/stderr"
+       for (x in nondec)
+               if (!(x in targets))
+                       printf "WARNING: --non-decimal-data target `%s' is 
missing.\n", x > "/dev/stderr"
+
+       for (x in re_interval)
+               if (!(x in targets))
+                       printf "WARNING: --re-interval target `%s' is 
missing.\n", x > "/dev/stderr"
+       for (x in locale_tests)
+               for (y in locale_tests[x])
+                       if (!(y in targets))
+                               printf("WARNING: Locale `%s' target `%s' is 
missing.\n", x, y) > "/dev/stderr"
+
        for (x in files)
                if (!(x in unused) && \
-                   !(gensub(/\.(awk|in)$/,"",1,x) in targets))
+                   !(gensub(/\.(awk|in|sh)$/,"",1,x) in targets))
                        printf "WARNING: unused file `%s'.\n", x > "/dev/stderr"
 }
-
-# VMSTESTS: generate test template in vms format
-# gawk -v "VMSTESTS=1" -f Gentests -f Gentests.vms Makefile.am *.awk *.in 
>Maketests.vms
diff --git a/test/Gentests.vms b/test/Gentests.vms
deleted file mode 100644
index cac7abd..0000000
--- a/test/Gentests.vms
+++ /dev/null
@@ -1,102 +0,0 @@
-# Gentests.vms - supplements Gentests to generate tests in vms format
-# gawk -v "VMSTESTS=1" -f Gentests -f Gentests.vms Makefile.am *.awk *.in 
>Maketests.vms
-
-/^FAIL_CODE1 *=/,/[^\\]$/ {
-       gsub(/(^FAIL_CODE1 *=|\\$)/,"")
-       for (i = 1; i <= NF; i++)
-               fail_code1[$i]
-       next
-}
-
-END {
-       if (VMSTESTS) vmsepilog()
-}
-
-#      wildcard expansion done by gawk's vms_arg_fixup() to simulate shell
-#      globbing produces full filenames:  device:[directory]name.type;#
-#      and by default also forces the value into upper case
-function vmsargvfixup(         i, f)
-{
-       # we're forcing lowercase below; need to override for some files
-       vmscasefixup["makefile.in"] = "Makefile.in"
-
-       for (i = 2; i < ARGC; i++) {
-               f = ARGV[i]
-               sub(/^.+[]>]/, "", f)           # strip dev+dir prefix
-               sub(/\;[0-9]+$/, "", f)         # strip version suffix
-               f = tolower(f)
-               if (f in vmscasefixup) f = vmscasefixup[f]
-               ARGV[i] = f
-       }
-
-       vmsprolog()             # insert some stuff into the output file
-}
-
-#      output sufficient for the simplest tests in vms/vmstest.com
-function vmsgenerate(x,                s, o)
-{
-       # generate a gosub-style subroutine; start with its label
-       printf "$" x ":"
-
-       s = ""
-       if (x in lint) {
-               s = s " --lint"
-               delete lint[x]
-       }
-       if (x in lint_old) {
-               s = s " --lint-old"
-               delete lint_old[x]
-       }
-       if (x".in" in files) {
-               s = s " <" x ".in"
-               delete files[x".in"]
-       }
-
-       o = "_" x ".tmp"
-       print "\techo \"" x "\""
-       print "$\tAWKPATH_srcdir"
-       print "$\tgawk -f " x ".awk" s " >" o " 2>&1"
-       print "$\tif .not.$status then  call exit_code \"" o "\" " \
-               ((x in fail_code1) ? "1" : "2")
-       print "$\tcmp " x ".ok " o
-       print "$\tif $status"
-       print "$\tthen\trm " o ";"
-       print "$\telse\techo \"test \"\"" x "\"\" failed\""
-       print "$\tendif"
-       print "$\treturn"
-
-       return
-}
-
-#      prolog for Maketests.vms
-function vmsprolog()
-{
-       print "$"
-       print "$\techo\t= \"write sys$output\""
-       print "$\tcmp\t= \"diff/Output=_NL:/Maximum=1\""
-       print "$\trm\t= \"delete/noConfirm/noLog\""
-       print "$\tgawk\t= \"$sys$disk:[-]gawk.exe\""
-       print "$\tAWKPATH_srcdir = \"define/User AWKPATH sys$disk:[]\""
-       print "$"
-
-       print "$\tset noOn"
-       print "$ gosub 'p1'"
-       print "$\tset On"
-       print "$ exit"
-       print "$"
-}
-
-#      epilog for Maketests.vms
-function vmsepilog()
-{
-       print "$"
-       print "$! add a fake \"EXIT CODE\" record to the end of temporary 
output file"
-       print "$! to simulate the ``|| echo EXIT CODE $$? >>_$@'' shell script 
usage"
-       print "$exit_code: subroutine"
-       print "$\tif f$trnlnm(\"FTMP\").nes.\"\" then  close/noLog ftmp"
-       print "$\topen/Append ftmp 'p1'"
-       print "$\twrite ftmp \"EXIT CODE: \",p2"
-       print "$\tclose ftmp"
-       print "$ endsubroutine !exit_code"
-       print "$"
-}
diff --git a/test/Makefile.am b/test/Makefile.am
index c5b60b8..61b98c2 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -28,7 +28,6 @@ EXTRA_DIST = \
        lib \
        ChangeLog.0 \
        Gentests \
-       Gentests.vms \
        Maketests \
        README \
        aadelete1.awk \
@@ -589,12 +588,10 @@ EXTRA_DIST = \
        lintwarn.awk \
        lintwarn.ok \
        litoct.awk \
+       litoct.in \
        litoct.ok \
        localenl.ok \
        localenl.sh \
-       longdbl.awk \
-       longdbl.in \
-       longdbl.ok \
        longsub.awk \
        longsub.in \
        longsub.ok \
@@ -750,6 +747,7 @@ EXTRA_DIST = \
        nonfatal3.awk \
        nonfatal3.ok \
        nonl.awk \
+       nonl.in \
        nonl.ok \
        noparms.awk \
        noparms.ok \
@@ -1222,8 +1220,6 @@ EXTRA_DIST = \
        zeroflag.ok
 
 
-TESTS_WE_ARE_NOT_DOING_YET_FIXME_ONE_DAY = longdbl
-
 # Get rid of core files when cleaning and generated .ok file
 CLEANFILES = core core.* fmtspcl.ok
 
@@ -1311,10 +1307,6 @@ INET_TESTS = inetdayu inetdayt inetechu inetecht
 
 MACHINE_TESTS = double1 double2 fmtspcl intformat
 
-MPFR_TESTS = mpfrbigint mpfrexprange mpfrfield mpfrieee mpfrmemok1 \
-       mpfrnegzero mpfrnr mpfrrem mpfrrnd mpfrrndeval mpfrsort mpfrsqrt \
-       mpfrstrtonum mpgforcenum mpfruplus
-
 LOCALE_CHARSET_TESTS = \
        asort asorti backbigs1 backsmalls1 backsmalls2 \
        fmttest fnarydel fnparydl jarebug lc_num1 mbfw1 \
@@ -1331,14 +1323,40 @@ SHLIB_TESTS = \
        revtwoway rwarray \
        testext time
 
+# List of the tests which should be run with --debug option:
+NEED_DEBUG = dbugtypedre1 dbugtypedre2 dbugeval2 symtab10
+
 # List of the tests which should be run with --lint option:
 NEED_LINT = \
        defref fmtspcl lintexp lintindex lintint lintlength lintwarn \
-       noeffect nofmtch shadow uninit2 uninit3 uninit4 uninit5 uninitialized
+       noeffect nofmtch nonl shadow uninit2 uninit3 uninit4 uninit5 
uninitialized
 
 # List of the tests which should be run with --lint-old option:
 NEED_LINT_OLD = lintold
 
+# List of tests that must be run with -M
+NEED_MPFR = mpfrbigint mpfrexprange mpfrfield mpfrieee mpfrmemok1 \
+       mpfrnegzero mpfrnr mpfrrem mpfrrnd mpfrrndeval mpfrsort mpfrsqrt \
+       mpfrstrtonum mpgforcenum mpfruplus
+
+# List of tests that need --non-decimal-data
+NEED_NONDEC = nondec2 intarray forcenum
+
+# List of tests that need --posix
+NEED_POSIX = printf0 posix2008sub paramasfunc1 paramasfunc2 muldimposix
+
+# List of tests that need --pretty-print
+NEED_PRETTY = profile4 profile5 profile8 profile9 profile10
+
+# List of tests that need --re-interval
+NEED_RE_INTERVAL = gsubtst3 reint reint2
+
+# List of tests that need --traditional
+NEED_TRADITIONAL = litoct tradanch rscompat
+
+# Lists of tests that run a shell script
+RUN_SHELL = exit fflush localenl next randtest rtlen rtlen01
+
 # List of the tests which fail with EXIT CODE 1
 FAIL_CODE1 = \
        badassign1 badbuild callparam delfunc fcall_exit fcall_exit2 \
@@ -1350,13 +1368,53 @@ FAIL_CODE1 = \
 CHECK_MPFR = \
        rand fnarydel fnparydl
 
+# Lists of tests that need particular locales
+NEED_LOCALE_C = \
+       clos1way gsubtst6
+
+NEED_LOCALE_EN = \
+       backbigs1 backsmalls1 backsmalls2 concat4 dfamb1 ignrcas2 lc_num1 \
+       mbfw1 mbprintf1 mbprintf3 mbprintf4 mbstr1 mbstr2 printhuge reint2 \
+       rri1 subamp subi18n wideidx wideidx2 widesub widesub2 widesub3 widesub4
+
+# Unused at the moment, since nlstringtest has additional stufff it does
+# NEED_LOCALE_FR =
+# Same for ignrcas3
+# NEED_LOCALE_GR =
+
+NEED_LOCALE_JP = mbprintf2
+
+NEED_LOCALE_RU = mtchi18n
+
+# List of tests that fail on DJGPP
+EXPECTED_FAIL_DJGPP = \
+       backbigs1 backsmalls1 backw beginfile1 clos1way clos1way2 \
+       clos1way3 clos1way4 clos1way5 clos1way6 errno getlndir \
+       getlnhd gnuops3 gnureops id ignrcas3 inetdayt inetdayu \
+       inetecht inetechu inftest jarebug mbfw1 mbprintf1 mbprintf4 \
+       mbstr1 mbstr2 mpfrsqrt nonfatal1 nonfatal2 nonfatal3 pid pty1 pty2 \
+       regx8bit strtod sigpipe1 timeout
+
+# List of tests that fail on MinGW
+EXPECTED_FAIL_MINGW = \
+       backbigs1 backsmalls1 clos1way6 devfd devfd1 devfd2 \
+       errno exitval2 fork fork2 fts getfile getlnhd ignrcas3 inetdayt \
+       inetecht mbfw1 mbprintf1 mbprintf4 mbstr1 mbstr2 pid pipeio2 \
+       pty1 pty2 readdir readdir_test readdir_retest rstest4 rstest5 \
+       status-close timeout
+
 # List of the files that appear in manual tests or are for reserve testing:
-GENTESTS_UNUSED = Makefile.in dtdgport.awk gtlnbufv.awk hello.awk \
-       inchello.awk inclib.awk inplace.1.in inplace.2.in inplace.in \
-       longdbl.awk longdbl.in printfloat.awk readdir0.awk xref.awk
+GENTESTS_UNUSED = Makefile.in checknegtime.awk dtdgport.awk gtlnbufv.awk \
+       hello.awk inchello.awk inclib.awk inplace.1.in inplace.2.in \
+       inplace.in printfloat.awk readdir0.awk valgrind.awk xref.awk
+
+# List of tests on MinGW or DJGPP that need a different cmp program
+NEED_TESTOUTCMP = \
+       beginfile2 double2 exit fmttest hsprint posix profile5 space
 
 CMP = cmp
 AWKPROG = ../gawk$(EXEEXT)
+SORT = sort
 
 # Default for VALGRIND is empty unless overridden by a command-line argument.
 # This protects against cruft in the environment.
@@ -1394,16 +1452,21 @@ unix-tests: $(UNIX_TESTS)
 gawk-extensions: $(GAWK_EXT_TESTS)
 
 charset-tests-all:
-       @if locale -a | grep -i 'en_US.UTF.*8' > /dev/null && \
-           locale -a | grep -i 'fr_FR.UTF.*8' > /dev/null && \
-           locale -a | grep -i 'ru_RU.UTF.*8' > /dev/null && \
-           locale -a | grep -i 'ja_JP.UTF.*8' > /dev/null  ; \
-       then \
-               $(MAKE) charset-msg-start charset-tests charset-msg-end; \
-       else \
-               echo %%%%%%%%%% Inadequate locale support: skipping charset 
tests. ; \
-               echo %%%%%%%%%% At least en_US.UTF-8, fr_FR.UTF-8, ru_RU.UTF-8 
and ja_JP.UTF-8 are needed. ; \
-       fi
+       @case `uname` in \
+       *MINGW* | *MS-DOS*) \
+               $(MAKE) charset-msg-start charset-tests charset-msg-end ;; \
+       *) \
+               if locale -a | grep -i 'en_US.UTF.*8' > /dev/null && \
+                  locale -a | grep -i 'fr_FR.UTF.*8' > /dev/null && \
+                  locale -a | grep -i 'ru_RU.UTF.*8' > /dev/null && \
+                  locale -a | grep -i 'ja_JP.UTF.*8' > /dev/null  ; \
+               then \
+                       $(MAKE) charset-msg-start charset-tests 
charset-msg-end; \
+               else \
+                       echo %%%%%%%%%% Inadequate locale support: skipping 
charset tests. ; \
+                       echo %%%%%%%%%% At least en_US.UTF-8, fr_FR.UTF-8, 
ru_RU.UTF-8 and ja_JP.UTF-8 are needed. ; \
+               fi ;; \
+       esac
 
 charset-tests: $(LOCALE_CHARSET_TESTS)
 
@@ -1420,7 +1483,7 @@ machine-tests: $(MACHINE_TESTS)
 mpfr-tests:
        @if $(AWK) --version | $(AWK) ' /MPFR/ { exit 1 }' ; then \
        echo MPFR tests not supported on this system ; \
-       else $(MAKE) $(MPFR_TESTS) ; \
+       else $(MAKE) $(NEED_MPFR) ; \
        fi
 
 arraydebug-tests:
@@ -1439,7 +1502,7 @@ shlib-real-tests: $(SHLIB_TESTS)
 
 msg::
        @echo ''
-       @echo 'Any output from "cmp" is bad news, although some differences'
+       @echo 'Any output from "$(CMP)" is bad news, although some differences'
        @echo 'in floating point values are probably benign -- in particular,'
        @echo 'some systems may omit a leading zero and the floating point'
        @echo 'precision may lead to slightly different output in a few cases.'
@@ -1497,13 +1560,6 @@ mpfr-msg-end:
        @echo "======== Done with MPFR tests ========"
 
 
-lc_num1:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-
 # This test is a PITA because increasingly, /tmp is getting
 # mounted noexec.  So, we'll test it locally.  Sigh.
 #
@@ -1524,83 +1580,74 @@ poundbang::
 
 messages::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/messages.awk >_out2 2>_out3
+       @$(AWK) -f "$(srcdir)"/messages.awk >_out2 2>_out3 || echo EXIT CODE: 
$$? >> _$@
        @-$(CMP) "$(srcdir)"/out1.ok _out1 && $(CMP) "$(srcdir)"/out2.ok _out2 
&& $(CMP) "$(srcdir)"/out3.ok _out3 && rm -f _out1 _out2 _out3
 
 argarray::
        @echo $@
        @cp "$(srcdir)"/argarray.in ./argarray.input
-       @TEST=test echo just a test | $(AWK) -f "$(srcdir)"/argarray.awk 
./argarray.input - >_$@
+       @TEST=test echo just a test | $(AWK) -f "$(srcdir)"/argarray.awk 
./argarray.input - >_$@ || echo EXIT CODE: $$? >> _$@
        @rm -f ./argarray.input
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 regtest::
+       @echo $@
        @echo 'Some of the output from regtest is very system specific, do not'
        @echo 'be distressed if your output differs from that distributed.'
        @echo 'Manual inspection is called for.'
-       AWK=$(AWKPROG) "$(srcdir)"/regtest.sh
+       @AWK=$(AWKPROG) "$(srcdir)"/regtest.sh
 
 manyfiles::
-       @echo manyfiles
+       @echo $@
        @rm -rf junk
        @mkdir junk
        @$(AWK) 'BEGIN { for (i = 1; i <= 1030; i++) print i, i}' >_$@
-       @$(AWK) -f "$(srcdir)"/manyfiles.awk _$@ _$@
+       @$(AWK) -f "$(srcdir)"/manyfiles.awk _$@ _$@ || echo EXIT CODE: $$? >> 
_$@
        @wc -l junk/* | $(AWK) '$$1 != 2' | wc -l | sed "s/  *//g" > _$@
        @rm -rf junk
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 compare::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/compare.awk 0 1 "$(srcdir)"/compare.in >_$@
+       @$(AWK) -f "$(srcdir)"/compare.awk 0 1 "$(srcdir)"/compare.in >_$@ || 
echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 inftest::
        @echo $@
        @echo This test is very machine specific...
-       @$(AWK) -f "$(srcdir)"/inftest.awk | sed "s/inf/Inf/g" >_$@
+       @$(AWK) -f "$(srcdir)"/inftest.awk | sed "s/inf/Inf/g" >_$@ || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 getline2::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/getline2.awk "$(srcdir)"/getline2.awk 
"$(srcdir)"/getline2.awk >_$@
+       @$(AWK) -f "$(srcdir)"/getline2.awk "$(srcdir)"/getline2.awk 
"$(srcdir)"/getline2.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 awkpath::
        @echo $@
-       @AWKPATH="$(srcdir)$(PATH_SEPARATOR)$(srcdir)/lib" $(AWK) -f 
awkpath.awk >_$@
+       @AWKPATH="$(srcdir)$(PATH_SEPARATOR)$(srcdir)/lib" $(AWK) -f 
awkpath.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 argtest::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/argtest.awk -x -y abc >_$@
+       @$(AWK) -f "$(srcdir)"/argtest.awk -x -y abc >_$@ || echo EXIT CODE: 
$$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 badargs::
        @echo $@
-       @-$(AWK) -f 2>&1 | grep -v patchlevel >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-nonl::
-       @echo $@
-       @-AWKPATH="$(srcdir)" $(AWK) --lint -f nonl.awk /dev/null >_$@ 2>&1
+       @-$(AWK) -f 2>&1 | grep -v patchlevel >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 strftime::
        @echo $@
-       @GAWKLOCALE=C; export GAWKLOCALE; \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C ; export GAWKLOCALE; \
        TZ=GMT0; export TZ; \
-       $(AWK) -v OUTPUT=_$@ -f "$(srcdir)"/strftime.awk
+       $(AWK) -v OUTPUT=_$@ -v DATECMD="$(DATE)" -f "$(srcdir)"/strftime.awk 
|| echo EXIT CODE: $$? >> _$@
        @-$(CMP) strftime.ok _$@ && rm -f _$@ strftime.ok || exit 0
 
-litoct::
-       @echo $@
-       @echo ab | $(AWK) --traditional -f "$(srcdir)"/litoct.awk >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 devfd::
        @echo $@
-       @$(AWK) 1 /dev/fd/4 /dev/fd/5 4<"$(srcdir)"/devfd.in4 
5<"$(srcdir)"/devfd.in5 >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@
+       @$(AWK) 1 /dev/fd/4 /dev/fd/5 4<"$(srcdir)"/devfd.in4 
5<"$(srcdir)"/devfd.in5 >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ || echo EXIT 
CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 # This cannot be autogenerated; we want it to read the input name
@@ -1610,26 +1657,16 @@ errno:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-fflush::
-       @echo $@
-       @"$(srcdir)"/fflush.sh >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 tweakfld::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/tweakfld.awk "$(srcdir)"/tweakfld.in >_$@
+       @$(AWK) -f "$(srcdir)"/tweakfld.awk "$(srcdir)"/tweakfld.in >_$@ || 
echo EXIT CODE: $$? >> _$@
        @rm -f errors.cleanup
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-tradanch::
-       @echo $@
-       @$(AWK) --traditional -f "$(srcdir)"/tradanch.awk 
"$(srcdir)"/tradanch.in >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 # AIX /bin/sh exec's the last command in a list, therefore issue a ":"
 # command so that pid.sh is fork'ed as a child before being exec'ed.
 pid::
-       @echo pid
+       @echo $@
        @AWKPATH="$(srcdir)" AWK=$(AWKPROG) $(SHELL) "$(srcdir)"/pid.sh $$$$ > 
_`basename address@hidden ; :
        @-$(CMP) "$(srcdir)"/pid.ok _`basename address@hidden && rm -f 
_`basename address@hidden
 
@@ -1643,7 +1680,7 @@ strftlng::
 
 nors::
        @echo $@
-       @echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - 
"$(srcdir)"/nors.in > _$@
+       @echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - 
"$(srcdir)"/nors.in > _$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 fmtspcl.ok: fmtspcl.tok Makefile
@@ -1666,37 +1703,32 @@ rsglstdin::
        @cat  "$(srcdir)"/rsgetline.in | AWKPATH="$(srcdir)" $(AWK) -f 
rsgetline.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-reint::
-       @echo $@
-       @$(AWK) --re-interval -f "$(srcdir)"/reint.awk "$(srcdir)"/reint.in >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 pipeio1::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/pipeio1.awk >_$@
+       @$(AWK) -f "$(srcdir)"/pipeio1.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @rm -f test1 test2
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 pipeio2::
        @echo $@
-       @$(AWK) -v SRCDIR="$(srcdir)" -f "$(srcdir)"/pipeio2.awk >_$@
+       @$(AWK) -v SRCDIR="$(srcdir)" -f "$(srcdir)"/pipeio2.awk >_$@ || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 clobber::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/clobber.awk >_$@
+       @$(AWK) -f "$(srcdir)"/clobber.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/clobber.ok seq && $(CMP) "$(srcdir)"/clobber.ok 
_$@ && rm -f _$@
        @rm -f seq
 
 arynocls::
        @echo $@
-       @-AWKPATH="$(srcdir)" $(AWK) -v INPUT="$(srcdir)"/arynocls.in -f 
arynocls.awk >_$@
+       @-AWKPATH="$(srcdir)" $(AWK) -v INPUT="$(srcdir)"/arynocls.in -f 
arynocls.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 getlnbuf::
        @echo $@
-       @-AWKPATH="$(srcdir)" $(AWK) -f getlnbuf.awk "$(srcdir)"/getlnbuf.in > 
_$@
-       @-AWKPATH="$(srcdir)" $(AWK) -f gtlnbufv.awk "$(srcdir)"/getlnbuf.in > 
_2$@
+       @-AWKPATH="$(srcdir)" $(AWK) -f getlnbuf.awk "$(srcdir)"/getlnbuf.in > 
_$@ || echo EXIT CODE: $$? >> _$@
+       @-AWKPATH="$(srcdir)" $(AWK) -f gtlnbufv.awk "$(srcdir)"/getlnbuf.in > 
_2$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/getlnbuf.ok _$@ && $(CMP) "$(srcdir)"/getlnbuf.ok 
_2$@ && rm -f _$@ _2$@
 
 inetmesg::
@@ -1724,27 +1756,12 @@ inetdayt::
 
 redfilnm::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/redfilnm.awk srcdir="$(srcdir)" 
"$(srcdir)"/redfilnm.in >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-leaddig::
-       @echo $@
-       @$(AWK) -v x=2E  -f "$(srcdir)"/leaddig.awk >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-gsubtst3::
-       @echo $@
-       @$(AWK) --re-interval -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden >_$@
+       @$(AWK) -f "$(srcdir)"/redfilnm.awk srcdir="$(srcdir)" 
"$(srcdir)"/redfilnm.in >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 space::
        @echo $@
-       @$(AWK) -f ' ' "$(srcdir)"/space.awk >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-printf0::
-       @echo $@
-       @$(AWK) --posix -f "$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @$(AWK) -f ' ' "$(srcdir)"/space.awk >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 rsnulbig::
@@ -1752,7 +1769,7 @@ rsnulbig::
        @ : Suppose that block size for pipe is at most 128kB:
        @$(AWK) 'BEGIN { for (i = 1; i <= 128*64+1; i++) print 
"abcdefgh123456\n" }' 2>&1 | \
        $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" }; { print }' 2>&1 | \
-       $(AWK) '/^[^a]/; END{ print NR }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       $(AWK) ' /^[^a]/; END{ print NR }' >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 rsnulbig2::
@@ -1760,55 +1777,7 @@ rsnulbig2::
        @$(AWK) 'BEGIN { ORS = ""; n = "\n"; for (i = 1; i <= 10; i++) n = (n 
n); \
                for (i = 1; i <= 128; i++) print n; print "abc\n" }' 2>&1 | \
                $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" };{ print }' 2>&1 | \
-               $(AWK) '/^[^a]/; END { print NR }' >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-wideidx::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-wideidx2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub3::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub4::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-ignrcas2::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? 
>> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-subamp::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
+               $(AWK) ' /^[^a]/; END { print NR }' >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 # This test makes sure gawk exits with a zero code.
@@ -1820,45 +1789,22 @@ exitval1::
 
 fsspcoln::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/address@hidden 'FS=[ :]+' 
"$(srcdir)"/address@hidden >_$@
+       @$(AWK) -f "$(srcdir)"/address@hidden 'FS=[ :]+' 
"$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 rsstart3::
        @echo $@
-       @head "$(srcdir)"/rsstart1.in | $(AWK) -f "$(srcdir)"/rsstart2.awk >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rtlen::
-       @echo $@
-       @"$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rtlen01::
-       @echo $@
-       @"$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >>_$@
+       @head "$(srcdir)"/rsstart1.in | $(AWK) -f "$(srcdir)"/rsstart2.awk >_$@ 
|| echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+# FIXME: Gentests can't really deal with something that is both a shell script
+# and requires a locale. We might can fix that ...
 rtlenmb::
        @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE ; \
        "$(srcdir)"/rtlen.sh >_$@ || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-nondec2::
-       @echo $@
-       @$(AWK) --non-decimal-data -v a=0x1 -f "$(srcdir)"/address@hidden >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-intarray::
-       @echo $@
-       @$(AWK) --non-decimal-data -f "$(srcdir)"/address@hidden >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-forcenum::
-       @echo $@
-       @$(AWK) --non-decimal-data -f "$(srcdir)"/address@hidden >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 nofile::
        @echo $@
        @$(AWK) '{}' no/such/file >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -1869,16 +1815,6 @@ binmode1::
        @$(AWK) -v BINMODE=3 'BEGIN { print BINMODE }' >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-subi18n::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; $(AWK) -f "$(srcdir)"/address@hidden > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-concat4::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; $(AWK) -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 devfd1::
        @echo $@
        @$(AWK) -f "$(srcdir)"/address@hidden 4< "$(srcdir)"/devfd.in1 5< 
"$(srcdir)"/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -1895,80 +1831,16 @@ mixed1::
        @$(AWK) -f /dev/null --source 'BEGIN {return junk}' >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-mtchi18n::
-       @echo $@
-       @GAWKLOCALE=ru_RU.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-reint2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) --re-interval -f address@hidden 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-localenl::
-       @echo $@
-       @"$(srcdir)"/address@hidden >_$@ 2>/dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf1::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf2::
-       @echo $@
-       @GAWKLOCALE=ja_JP.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? 
>> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf3::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf4::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 mbprintf5::
        @echo $@
        @case `uname` in \
-       CYGWIN*) echo this test fails on cygwin --- skipping $@ ;; \
+       CYGWIN* | MINGW32* | *MS-DOS*) echo this test fails on this system --- 
skipping $@ ;; \
        *) \
-       GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
+       [ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE ; \
        $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@ ; \
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        esac
 
-mbfw1::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-gsubtst6::
-       @echo $@
-       @GAWKLOCALE=C ; $(AWK) -f "$(srcdir)"/address@hidden > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbstr1::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbstr2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 printfbad2: printfbad2.ok
        @echo $@
        @$(AWK) --lint -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden 
2>&1 | sed 's;$(srcdir)/;;g' >_$@ || echo EXIT CODE: $$?  >>_$@
@@ -1981,12 +1853,12 @@ beginfile1::
 
 beginfile2:
        @echo $@
-       @-( cd "$(srcdir)" && LC_ALL=C AWK="$(abs_builddir)/$(AWKPROG)" 
$(abs_srcdir)/address@hidden $(abs_srcdir)/address@hidden ) > _$@ 2>&1
+       @-( cd "$(srcdir)" && LC_ALL=C AWK="$(abs_builddir)/$(AWKPROG)" 
$(abs_srcdir)/address@hidden $(abs_srcdir)/address@hidden ) > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 dumpvars::
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) --dump-variables 1 < 
"$(srcdir)"/address@hidden >/dev/null 2>&1 || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) --dump-variables 1 < 
"$(srcdir)"/address@hidden >/dev/null 2>&1 || echo EXIT CODE: $$? >>_$@ || echo 
EXIT CODE: $$? >> _$@
        @grep -v ENVIRON < awkvars.out | grep -v PROCINFO > _$@; rm awkvars.out
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2006,7 +1878,7 @@ profile1:
 
 profile2:
        @echo $@
-       @$(AWK) address@hidden -v sortcmd=sort -f "$(srcdir)"/xref.awk 
"$(srcdir)"/dtdgport.awk > /dev/null
+       @$(AWK) address@hidden -v sortcmd=$(SORT) -f "$(srcdir)"/xref.awk 
"$(srcdir)"/dtdgport.awk > /dev/null
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2016,16 +1888,6 @@ profile3:
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-profile4:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-profile5:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 profile6:
        @echo $@
        @$(AWK) address@hidden -f "$(srcdir)"/address@hidden > /dev/null
@@ -2038,120 +1900,39 @@ profile7:
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-profile8:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-profile9:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-profile10:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-posix2008sub:
-       @echo $@
-       @$(AWK) --posix -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-next:
-       @echo $@
-       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-LC_ALL=C $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-exit:
-       @echo $@
-       @-AWK="$(AWKPROG)" "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rri1::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 mpfrieee:
        @echo $@
-       @$(AWK) -M -vPREC=double -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -vPREC=double -f "$(srcdir)"/address@hidden > _$@ 2>&1 || 
echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrexprange:
        @echo $@
-       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrrnd:
        @echo $@
-       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrrndeval:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrnegzero:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrnr:
-       @echo $@
-       @$(AWK) -M -vPREC=113 -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden > _$@
+       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrsort:
        @echo $@
-       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrbigint:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrsqrt:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrstrtonum:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfruplus:
        @echo $@
-       @$(AWK) -M -f "$(srcdir)"/uplus.awk > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpgforcenum:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrrem:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -f "$(srcdir)"/uplus.awk > _$@ 2>&1 || echo EXIT CODE: $$? 
>> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrmemok1:
        @echo $@
-       @$(AWK) -p- -M -f "$(srcdir)"/address@hidden 2>&1 | sed 1d > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrfield:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden > 
_$@ 2>&1
+       @$(AWK) -p- -M -f "$(srcdir)"/address@hidden 2>&1 | sed 1d > _$@ || 
echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 jarebug::
        @echo $@
-       @"$(srcdir)"/address@hidden "$(AWKPROG)" "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden "_$@"
+       @"$(srcdir)"/address@hidden "$(AWKPROG)" "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden "_$@" || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 ordchr2::
@@ -2162,8 +1943,8 @@ ordchr2::
 # N.B. If the test fails, create readfile.ok so that "make diffout" will work
 readfile::
        @echo $@
-       @$(AWK) -l readfile 'BEGIN {printf "%s", readfile("Makefile")}' >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) Makefile _$@ && rm -f _$@ || cp -p Makefile address@hidden
+       @$(AWK) -l readfile 'BEGIN {printf "%s", 
readfile("$(srcdir)/Makefile.am")}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)/Makefile.am" _$@ && rm -f _$@ || cp -p 
"$(srcdir)/Makefile.am" address@hidden
 
 readfile2::
        @echo $@
@@ -2244,7 +2025,7 @@ inplace3::
 
 testext::
        @echo $@
-       @$(AWK) '/^(@load|BEGIN)/,/^}/' "$(top_srcdir)"/extension/testext.c > 
testext.awk
+       @$(AWK) ' /^(@load|BEGIN)/,/^}/' "$(top_srcdir)"/extension/testext.c > 
testext.awk
        @$(AWK) -f ./testext.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ testext.awk 
testexttmp.txt
 
@@ -2254,12 +2035,12 @@ getfile:
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 readdir:
+       @echo $@
        @if [ "`uname`" = Linux ] && [ "`stat -f . 2>/dev/null | awk 'NR == 2 { 
print $$NF }'`" = nfs ];  then \
        echo This test may fail on GNU/Linux systems when run on NFS or JFS 
filesystems.; \
        echo If it does, try rerunning on an ext'[234]' filesystem. ; \
        fi
-       @echo $@
-       @$(AWK) -f "$(srcdir)"/readdir.awk "$(top_srcdir)" > _$@
+       @$(AWK) -f "$(srcdir)"/readdir.awk "$(top_srcdir)" > _$@ || echo EXIT 
CODE: $$? >> _$@
        @ls -afi "$(top_srcdir)" > _dirlist
        @ls -lna "$(top_srcdir)" | sed 1d > _longlist
        @$(AWK) -f "$(srcdir)"/readdir0.awk -v extout=_$@  \
@@ -2279,6 +2060,7 @@ readdir_retest:
        @-$(CMP) address@hidden _$@ && rm -f address@hidden _$@
 
 fts:
+       @echo $@
        @case `uname` in \
        IRIX) \
        echo This test may fail on IRIX systems when run on an NFS filesystem.; 
\
@@ -2287,14 +2069,14 @@ fts:
        echo This test may fail on CYGWIN systems when run on an NFS 
filesystem.; \
        echo If it does, try rerunning on an ntfs filesystem. ;; \
        esac
-       @echo $@
-       @$(AWK) -f "$(srcdir)"/fts.awk
+       @$(AWK) -f "$(srcdir)"/fts.awk || echo EXIT CODE: $$? >> _$@
        @-$(CMP) address@hidden _$@ && rm -f address@hidden _$@
 
+# BINMODE=2 is needed for PC tests.
 charasbytes:
        @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -b -f address@hidden 
"$(srcdir)"/address@hidden | \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -b -v BINMODE=2 -f address@hidden 
"$(srcdir)"/address@hidden | \
        od -c -t x1 | tr '      ' ' ' | sed -e 's/  */ /g' -e 's/ *$$//' >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2312,55 +2094,20 @@ symtab8:
 
 symtab9:
        @echo $@
-       @$(AWK) -f "$(srcdir)"/address@hidden >_$@
+       @$(AWK) -f "$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >> _$@
        @rm -f testit.txt
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 reginttrad:
        @echo $@
-       @$(AWK) --traditional -r -f "$(srcdir)"/address@hidden > _$@
+       @$(AWK) --traditional -r -f "$(srcdir)"/address@hidden > _$@ || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 colonwarn:
        @echo $@
        @for i in 1 2 3 ; \
        do $(AWK) -f "$(srcdir)"/address@hidden $$i < 
"$(srcdir)"/address@hidden ; \
-       done > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-clos1way:
-       @echo $@
-       @AWKPATH="$(srcdir)" LC_ALL=C $(AWK) -f address@hidden  >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-dfamb1:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-
-randtest::
-       @echo $@
-       @-GAWK="$(AWKPROG)" "$(srcdir)"/randtest.sh >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-backbigs1:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-backsmalls1:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-backsmalls2:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       done > _$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 dbugeval::
@@ -2370,12 +2117,6 @@ dbugeval::
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
-printhuge::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 filefuncs:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden -v 
builddir="$(abs_top_builddir)"  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2386,41 +2127,11 @@ genpot:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --gen-pot >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-paramasfunc1::
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --posix >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-paramasfunc2::
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --posix >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 negtime::
        @echo $@
        @TZ=GMT AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
        @AWKPATH="$(srcdir)" $(AWK) -f checknegtime.awk 
"$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-dbugtypedre1:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-dbugtypedre2:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-dbugeval2:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-muldimposix::
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --posix >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 watchpoint1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden 
$(srcdir)/address@hidden < $(srcdir)/address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2444,27 +2155,17 @@ pty2:
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ;; \
        esac
 
-rscompat:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) --traditional -f address@hidden 
"$(srcdir)/address@hidden" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-symtab10:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)/address@hidden" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 ignrcas3::
        @echo $@
        @if locale -a | grep el_GR.iso88597 > /dev/null ; then \
-       GAWKLOCALE=el_GR.iso88597 \
+       [ -z "$$GAWKLOCALE" ] && GAWKLOCALE=el_GR.iso88597 ; export GAWKLOCALE; 
\
        AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@ ; \
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
 arrdbg:
        @echo $@
-       @$(AWK) -v "okfile=./address@hidden" -f "$(srcdir)"/address@hidden | 
grep array_f >_$@
+       @$(AWK) -v "okfile=./address@hidden" -f "$(srcdir)"/address@hidden | 
grep array_f >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) ./address@hidden _$@ && rm -f _$@ ./address@hidden
 
 sourcesplit:
@@ -2472,16 +2173,18 @@ sourcesplit:
        @AWKPATH="$(srcdir)" $(AWK) --source='BEGIN { a = 5;' --source='print a 
}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+# Use [:] in the regexp to keep MSYS from converting the /'s to \'s.
 nonfatal1:
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden 2>&1 | $(AWK) '{print 
gensub(/invalid:.*$$/, "invalid", 1, $$0)}' >_$@ || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden 2>&1 | $(AWK) '{print 
gensub(/invalid[:].*$$/, "invalid", 1, $$0)}' >_$@ || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+# 4/2018: On first call to $(CMP), send to /dev/null even with -s for MinGW.
 nlstringtest::
        @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=fr_FR.UTF-8 ; \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=fr_FR.UTF-8 ; export GAWKLOCALE ; \
        AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)" >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
-       @-if $(CMP) -s "$(srcdir)"/nlstringtest-nogettext.ok _$@ ; \
+       @-if $(CMP) -s "$(srcdir)"/nlstringtest-nogettext.ok _$@ > /dev/null ; \
        then \
                rm -f _$@ ; \
        else \
@@ -2489,11 +2192,17 @@ nlstringtest::
        fi
 
 
+longwrds:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden -v SORT="$(SORT)" < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+
 # Targets generated for other tests:
 include Maketests
 
 Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests
-       files=`cd "$(srcdir)" && echo *.awk *.in`; \
+       files=`cd "$(srcdir)" && echo *.awk *.in *.sh`; \
        $(AWK) -f "$(srcdir)"/Gentests "$(srcdir)"/Makefile.am $$files > $@
 
 clean-local:
diff --git a/test/Makefile.in b/test/Makefile.in
index e2d9192..78606f8 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -286,7 +286,6 @@ EXTRA_DIST = \
        lib \
        ChangeLog.0 \
        Gentests \
-       Gentests.vms \
        Maketests \
        README \
        aadelete1.awk \
@@ -847,12 +846,10 @@ EXTRA_DIST = \
        lintwarn.awk \
        lintwarn.ok \
        litoct.awk \
+       litoct.in \
        litoct.ok \
        localenl.ok \
        localenl.sh \
-       longdbl.awk \
-       longdbl.in \
-       longdbl.ok \
        longsub.awk \
        longsub.in \
        longsub.ok \
@@ -1008,6 +1005,7 @@ EXTRA_DIST = \
        nonfatal3.awk \
        nonfatal3.ok \
        nonl.awk \
+       nonl.in \
        nonl.ok \
        noparms.awk \
        noparms.ok \
@@ -1479,7 +1477,6 @@ EXTRA_DIST = \
        zeroflag.awk \
        zeroflag.ok
 
-TESTS_WE_ARE_NOT_DOING_YET_FIXME_ONE_DAY = longdbl
 
 # Get rid of core files when cleaning and generated .ok file
 CLEANFILES = core core.* fmtspcl.ok
@@ -1564,10 +1561,6 @@ ARRAYDEBUG_TESTS = arrdbg
 EXTRA_TESTS = inftest regtest ignrcas3 
 INET_TESTS = inetdayu inetdayt inetechu inetecht
 MACHINE_TESTS = double1 double2 fmtspcl intformat
-MPFR_TESTS = mpfrbigint mpfrexprange mpfrfield mpfrieee mpfrmemok1 \
-       mpfrnegzero mpfrnr mpfrrem mpfrrnd mpfrrndeval mpfrsort mpfrsqrt \
-       mpfrstrtonum mpgforcenum mpfruplus
-
 LOCALE_CHARSET_TESTS = \
        asort asorti backbigs1 backsmalls1 backsmalls2 \
        fmttest fnarydel fnparydl jarebug lc_num1 mbfw1 \
@@ -1585,15 +1578,42 @@ SHLIB_TESTS = \
        testext time
 
 
+# List of the tests which should be run with --debug option:
+NEED_DEBUG = dbugtypedre1 dbugtypedre2 dbugeval2 symtab10
+
 # List of the tests which should be run with --lint option:
 NEED_LINT = \
        defref fmtspcl lintexp lintindex lintint lintlength lintwarn \
-       noeffect nofmtch shadow uninit2 uninit3 uninit4 uninit5 uninitialized
+       noeffect nofmtch nonl shadow uninit2 uninit3 uninit4 uninit5 
uninitialized
 
 
 # List of the tests which should be run with --lint-old option:
 NEED_LINT_OLD = lintold
 
+# List of tests that must be run with -M
+NEED_MPFR = mpfrbigint mpfrexprange mpfrfield mpfrieee mpfrmemok1 \
+       mpfrnegzero mpfrnr mpfrrem mpfrrnd mpfrrndeval mpfrsort mpfrsqrt \
+       mpfrstrtonum mpgforcenum mpfruplus
+
+
+# List of tests that need --non-decimal-data
+NEED_NONDEC = nondec2 intarray forcenum
+
+# List of tests that need --posix
+NEED_POSIX = printf0 posix2008sub paramasfunc1 paramasfunc2 muldimposix
+
+# List of tests that need --pretty-print
+NEED_PRETTY = profile4 profile5 profile8 profile9 profile10
+
+# List of tests that need --re-interval
+NEED_RE_INTERVAL = gsubtst3 reint reint2
+
+# List of tests that need --traditional
+NEED_TRADITIONAL = litoct tradanch rscompat
+
+# Lists of tests that run a shell script
+RUN_SHELL = exit fflush localenl next randtest rtlen rtlen01
+
 # List of the tests which fail with EXIT CODE 1
 FAIL_CODE1 = \
        badassign1 badbuild callparam delfunc fcall_exit fcall_exit2 \
@@ -1607,13 +1627,55 @@ CHECK_MPFR = \
        rand fnarydel fnparydl
 
 
+# Lists of tests that need particular locales
+NEED_LOCALE_C = \
+       clos1way gsubtst6
+
+NEED_LOCALE_EN = \
+       backbigs1 backsmalls1 backsmalls2 concat4 dfamb1 ignrcas2 lc_num1 \
+       mbfw1 mbprintf1 mbprintf3 mbprintf4 mbstr1 mbstr2 printhuge reint2 \
+       rri1 subamp subi18n wideidx wideidx2 widesub widesub2 widesub3 widesub4
+
+
+# Unused at the moment, since nlstringtest has additional stufff it does
+# NEED_LOCALE_FR =
+# Same for ignrcas3
+# NEED_LOCALE_GR =
+NEED_LOCALE_JP = mbprintf2
+NEED_LOCALE_RU = mtchi18n
+
+# List of tests that fail on DJGPP
+EXPECTED_FAIL_DJGPP = \
+       backbigs1 backsmalls1 backw beginfile1 clos1way clos1way2 \
+       clos1way3 clos1way4 clos1way5 clos1way6 errno getlndir \
+       getlnhd gnuops3 gnureops id ignrcas3 inetdayt inetdayu \
+       inetecht inetechu inftest jarebug mbfw1 mbprintf1 mbprintf4 \
+       mbstr1 mbstr2 mpfrsqrt nonfatal1 nonfatal2 nonfatal3 pid pty1 pty2 \
+       regx8bit strtod sigpipe1 timeout
+
+
+# List of tests that fail on MinGW
+EXPECTED_FAIL_MINGW = \
+       backbigs1 backsmalls1 clos1way6 devfd devfd1 devfd2 \
+       errno exitval2 fork fork2 fts getfile getlnhd ignrcas3 inetdayt \
+       inetecht mbfw1 mbprintf1 mbprintf4 mbstr1 mbstr2 pid pipeio2 \
+       pty1 pty2 readdir readdir_test readdir_retest rstest4 rstest5 \
+       status-close timeout
+
+
 # List of the files that appear in manual tests or are for reserve testing:
-GENTESTS_UNUSED = Makefile.in dtdgport.awk gtlnbufv.awk hello.awk \
-       inchello.awk inclib.awk inplace.1.in inplace.2.in inplace.in \
-       longdbl.awk longdbl.in printfloat.awk readdir0.awk xref.awk
+GENTESTS_UNUSED = Makefile.in checknegtime.awk dtdgport.awk gtlnbufv.awk \
+       hello.awk inchello.awk inclib.awk inplace.1.in inplace.2.in \
+       inplace.in printfloat.awk readdir0.awk valgrind.awk xref.awk
+
+
+# List of tests on MinGW or DJGPP that need a different cmp program
+NEED_TESTOUTCMP = \
+       beginfile2 double2 exit fmttest hsprint posix profile5 space
 
 CMP = cmp
 AWKPROG = ../gawk$(EXEEXT)
+SORT = sort
 
 # Default for VALGRIND is empty unless overridden by a command-line argument.
 # This protects against cruft in the environment.
@@ -1836,16 +1898,21 @@ unix-tests: $(UNIX_TESTS)
 gawk-extensions: $(GAWK_EXT_TESTS)
 
 charset-tests-all:
-       @if locale -a | grep -i 'en_US.UTF.*8' > /dev/null && \
-           locale -a | grep -i 'fr_FR.UTF.*8' > /dev/null && \
-           locale -a | grep -i 'ru_RU.UTF.*8' > /dev/null && \
-           locale -a | grep -i 'ja_JP.UTF.*8' > /dev/null  ; \
-       then \
-               $(MAKE) charset-msg-start charset-tests charset-msg-end; \
-       else \
-               echo %%%%%%%%%% Inadequate locale support: skipping charset 
tests. ; \
-               echo %%%%%%%%%% At least en_US.UTF-8, fr_FR.UTF-8, ru_RU.UTF-8 
and ja_JP.UTF-8 are needed. ; \
-       fi
+       @case `uname` in \
+       *MINGW* | *MS-DOS*) \
+               $(MAKE) charset-msg-start charset-tests charset-msg-end ;; \
+       *) \
+               if locale -a | grep -i 'en_US.UTF.*8' > /dev/null && \
+                  locale -a | grep -i 'fr_FR.UTF.*8' > /dev/null && \
+                  locale -a | grep -i 'ru_RU.UTF.*8' > /dev/null && \
+                  locale -a | grep -i 'ja_JP.UTF.*8' > /dev/null  ; \
+               then \
+                       $(MAKE) charset-msg-start charset-tests 
charset-msg-end; \
+               else \
+                       echo %%%%%%%%%% Inadequate locale support: skipping 
charset tests. ; \
+                       echo %%%%%%%%%% At least en_US.UTF-8, fr_FR.UTF-8, 
ru_RU.UTF-8 and ja_JP.UTF-8 are needed. ; \
+               fi ;; \
+       esac
 
 charset-tests: $(LOCALE_CHARSET_TESTS)
 
@@ -1862,7 +1929,7 @@ machine-tests: $(MACHINE_TESTS)
 mpfr-tests:
        @if $(AWK) --version | $(AWK) ' /MPFR/ { exit 1 }' ; then \
        echo MPFR tests not supported on this system ; \
-       else $(MAKE) $(MPFR_TESTS) ; \
+       else $(MAKE) $(NEED_MPFR) ; \
        fi
 
 arraydebug-tests:
@@ -1881,7 +1948,7 @@ shlib-real-tests: $(SHLIB_TESTS)
 
 msg::
        @echo ''
-       @echo 'Any output from "cmp" is bad news, although some differences'
+       @echo 'Any output from "$(CMP)" is bad news, although some differences'
        @echo 'in floating point values are probably benign -- in particular,'
        @echo 'some systems may omit a leading zero and the floating point'
        @echo 'precision may lead to slightly different output in a few cases.'
@@ -1938,12 +2005,6 @@ mpfr-msg-start:
 mpfr-msg-end:
        @echo "======== Done with MPFR tests ========"
 
-lc_num1:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 # This test is a PITA because increasingly, /tmp is getting
 # mounted noexec.  So, we'll test it locally.  Sigh.
 #
@@ -1964,83 +2025,74 @@ poundbang::
 
 messages::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/messages.awk >_out2 2>_out3
+       @$(AWK) -f "$(srcdir)"/messages.awk >_out2 2>_out3 || echo EXIT CODE: 
$$? >> _$@
        @-$(CMP) "$(srcdir)"/out1.ok _out1 && $(CMP) "$(srcdir)"/out2.ok _out2 
&& $(CMP) "$(srcdir)"/out3.ok _out3 && rm -f _out1 _out2 _out3
 
 argarray::
        @echo $@
        @cp "$(srcdir)"/argarray.in ./argarray.input
-       @TEST=test echo just a test | $(AWK) -f "$(srcdir)"/argarray.awk 
./argarray.input - >_$@
+       @TEST=test echo just a test | $(AWK) -f "$(srcdir)"/argarray.awk 
./argarray.input - >_$@ || echo EXIT CODE: $$? >> _$@
        @rm -f ./argarray.input
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 regtest::
+       @echo $@
        @echo 'Some of the output from regtest is very system specific, do not'
        @echo 'be distressed if your output differs from that distributed.'
        @echo 'Manual inspection is called for.'
-       AWK=$(AWKPROG) "$(srcdir)"/regtest.sh
+       @AWK=$(AWKPROG) "$(srcdir)"/regtest.sh
 
 manyfiles::
-       @echo manyfiles
+       @echo $@
        @rm -rf junk
        @mkdir junk
        @$(AWK) 'BEGIN { for (i = 1; i <= 1030; i++) print i, i}' >_$@
-       @$(AWK) -f "$(srcdir)"/manyfiles.awk _$@ _$@
+       @$(AWK) -f "$(srcdir)"/manyfiles.awk _$@ _$@ || echo EXIT CODE: $$? >> 
_$@
        @wc -l junk/* | $(AWK) '$$1 != 2' | wc -l | sed "s/  *//g" > _$@
        @rm -rf junk
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 compare::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/compare.awk 0 1 "$(srcdir)"/compare.in >_$@
+       @$(AWK) -f "$(srcdir)"/compare.awk 0 1 "$(srcdir)"/compare.in >_$@ || 
echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 inftest::
        @echo $@
        @echo This test is very machine specific...
-       @$(AWK) -f "$(srcdir)"/inftest.awk | sed "s/inf/Inf/g" >_$@
+       @$(AWK) -f "$(srcdir)"/inftest.awk | sed "s/inf/Inf/g" >_$@ || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 getline2::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/getline2.awk "$(srcdir)"/getline2.awk 
"$(srcdir)"/getline2.awk >_$@
+       @$(AWK) -f "$(srcdir)"/getline2.awk "$(srcdir)"/getline2.awk 
"$(srcdir)"/getline2.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 awkpath::
        @echo $@
-       @AWKPATH="$(srcdir)$(PATH_SEPARATOR)$(srcdir)/lib" $(AWK) -f 
awkpath.awk >_$@
+       @AWKPATH="$(srcdir)$(PATH_SEPARATOR)$(srcdir)/lib" $(AWK) -f 
awkpath.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 argtest::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/argtest.awk -x -y abc >_$@
+       @$(AWK) -f "$(srcdir)"/argtest.awk -x -y abc >_$@ || echo EXIT CODE: 
$$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 badargs::
        @echo $@
-       @-$(AWK) -f 2>&1 | grep -v patchlevel >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-nonl::
-       @echo $@
-       @-AWKPATH="$(srcdir)" $(AWK) --lint -f nonl.awk /dev/null >_$@ 2>&1
+       @-$(AWK) -f 2>&1 | grep -v patchlevel >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 strftime::
        @echo $@
-       @GAWKLOCALE=C; export GAWKLOCALE; \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C ; export GAWKLOCALE; \
        TZ=GMT0; export TZ; \
-       $(AWK) -v OUTPUT=_$@ -f "$(srcdir)"/strftime.awk
+       $(AWK) -v OUTPUT=_$@ -v DATECMD="$(DATE)" -f "$(srcdir)"/strftime.awk 
|| echo EXIT CODE: $$? >> _$@
        @-$(CMP) strftime.ok _$@ && rm -f _$@ strftime.ok || exit 0
 
-litoct::
-       @echo $@
-       @echo ab | $(AWK) --traditional -f "$(srcdir)"/litoct.awk >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 devfd::
        @echo $@
-       @$(AWK) 1 /dev/fd/4 /dev/fd/5 4<"$(srcdir)"/devfd.in4 
5<"$(srcdir)"/devfd.in5 >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@
+       @$(AWK) 1 /dev/fd/4 /dev/fd/5 4<"$(srcdir)"/devfd.in4 
5<"$(srcdir)"/devfd.in5 >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ || echo EXIT 
CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 # This cannot be autogenerated; we want it to read the input name
@@ -2050,26 +2102,16 @@ errno:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-fflush::
-       @echo $@
-       @"$(srcdir)"/fflush.sh >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 tweakfld::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/tweakfld.awk "$(srcdir)"/tweakfld.in >_$@
+       @$(AWK) -f "$(srcdir)"/tweakfld.awk "$(srcdir)"/tweakfld.in >_$@ || 
echo EXIT CODE: $$? >> _$@
        @rm -f errors.cleanup
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-tradanch::
-       @echo $@
-       @$(AWK) --traditional -f "$(srcdir)"/tradanch.awk 
"$(srcdir)"/tradanch.in >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 # AIX /bin/sh exec's the last command in a list, therefore issue a ":"
 # command so that pid.sh is fork'ed as a child before being exec'ed.
 pid::
-       @echo pid
+       @echo $@
        @AWKPATH="$(srcdir)" AWK=$(AWKPROG) $(SHELL) "$(srcdir)"/pid.sh $$$$ > 
_`basename address@hidden ; :
        @-$(CMP) "$(srcdir)"/pid.ok _`basename address@hidden && rm -f 
_`basename address@hidden
 
@@ -2083,7 +2125,7 @@ strftlng::
 
 nors::
        @echo $@
-       @echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - 
"$(srcdir)"/nors.in > _$@
+       @echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - 
"$(srcdir)"/nors.in > _$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 fmtspcl.ok: fmtspcl.tok Makefile
@@ -2106,37 +2148,32 @@ rsglstdin::
        @cat  "$(srcdir)"/rsgetline.in | AWKPATH="$(srcdir)" $(AWK) -f 
rsgetline.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-reint::
-       @echo $@
-       @$(AWK) --re-interval -f "$(srcdir)"/reint.awk "$(srcdir)"/reint.in >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 pipeio1::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/pipeio1.awk >_$@
+       @$(AWK) -f "$(srcdir)"/pipeio1.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @rm -f test1 test2
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 pipeio2::
        @echo $@
-       @$(AWK) -v SRCDIR="$(srcdir)" -f "$(srcdir)"/pipeio2.awk >_$@
+       @$(AWK) -v SRCDIR="$(srcdir)" -f "$(srcdir)"/pipeio2.awk >_$@ || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 clobber::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/clobber.awk >_$@
+       @$(AWK) -f "$(srcdir)"/clobber.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/clobber.ok seq && $(CMP) "$(srcdir)"/clobber.ok 
_$@ && rm -f _$@
        @rm -f seq
 
 arynocls::
        @echo $@
-       @-AWKPATH="$(srcdir)" $(AWK) -v INPUT="$(srcdir)"/arynocls.in -f 
arynocls.awk >_$@
+       @-AWKPATH="$(srcdir)" $(AWK) -v INPUT="$(srcdir)"/arynocls.in -f 
arynocls.awk >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 getlnbuf::
        @echo $@
-       @-AWKPATH="$(srcdir)" $(AWK) -f getlnbuf.awk "$(srcdir)"/getlnbuf.in > 
_$@
-       @-AWKPATH="$(srcdir)" $(AWK) -f gtlnbufv.awk "$(srcdir)"/getlnbuf.in > 
_2$@
+       @-AWKPATH="$(srcdir)" $(AWK) -f getlnbuf.awk "$(srcdir)"/getlnbuf.in > 
_$@ || echo EXIT CODE: $$? >> _$@
+       @-AWKPATH="$(srcdir)" $(AWK) -f gtlnbufv.awk "$(srcdir)"/getlnbuf.in > 
_2$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/getlnbuf.ok _$@ && $(CMP) "$(srcdir)"/getlnbuf.ok 
_2$@ && rm -f _$@ _2$@
 
 inetmesg::
@@ -2164,27 +2201,12 @@ inetdayt::
 
 redfilnm::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/redfilnm.awk srcdir="$(srcdir)" 
"$(srcdir)"/redfilnm.in >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-leaddig::
-       @echo $@
-       @$(AWK) -v x=2E  -f "$(srcdir)"/leaddig.awk >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-gsubtst3::
-       @echo $@
-       @$(AWK) --re-interval -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden >_$@
+       @$(AWK) -f "$(srcdir)"/redfilnm.awk srcdir="$(srcdir)" 
"$(srcdir)"/redfilnm.in >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 space::
        @echo $@
-       @$(AWK) -f ' ' "$(srcdir)"/space.awk >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-printf0::
-       @echo $@
-       @$(AWK) --posix -f "$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @$(AWK) -f ' ' "$(srcdir)"/space.awk >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 rsnulbig::
@@ -2192,7 +2214,7 @@ rsnulbig::
        @ : Suppose that block size for pipe is at most 128kB:
        @$(AWK) 'BEGIN { for (i = 1; i <= 128*64+1; i++) print 
"abcdefgh123456\n" }' 2>&1 | \
        $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" }; { print }' 2>&1 | \
-       $(AWK) '/^[^a]/; END{ print NR }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       $(AWK) ' /^[^a]/; END{ print NR }' >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 rsnulbig2::
@@ -2200,55 +2222,7 @@ rsnulbig2::
        @$(AWK) 'BEGIN { ORS = ""; n = "\n"; for (i = 1; i <= 10; i++) n = (n 
n); \
                for (i = 1; i <= 128; i++) print n; print "abc\n" }' 2>&1 | \
                $(AWK) 'BEGIN { RS = ""; ORS = "\n\n" };{ print }' 2>&1 | \
-               $(AWK) '/^[^a]/; END { print NR }' >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-wideidx::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-wideidx2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub3::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-widesub4::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-ignrcas2::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? 
>> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-subamp::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
+               $(AWK) ' /^[^a]/; END { print NR }' >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 # This test makes sure gawk exits with a zero code.
@@ -2260,45 +2234,22 @@ exitval1::
 
 fsspcoln::
        @echo $@
-       @$(AWK) -f "$(srcdir)"/address@hidden 'FS=[ :]+' 
"$(srcdir)"/address@hidden >_$@
+       @$(AWK) -f "$(srcdir)"/address@hidden 'FS=[ :]+' 
"$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 rsstart3::
        @echo $@
-       @head "$(srcdir)"/rsstart1.in | $(AWK) -f "$(srcdir)"/rsstart2.awk >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rtlen::
-       @echo $@
-       @"$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rtlen01::
-       @echo $@
-       @"$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >>_$@
+       @head "$(srcdir)"/rsstart1.in | $(AWK) -f "$(srcdir)"/rsstart2.awk >_$@ 
|| echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+# FIXME: Gentests can't really deal with something that is both a shell script
+# and requires a locale. We might can fix that ...
 rtlenmb::
        @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE ; \
        "$(srcdir)"/rtlen.sh >_$@ || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-nondec2::
-       @echo $@
-       @$(AWK) --non-decimal-data -v a=0x1 -f "$(srcdir)"/address@hidden >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-intarray::
-       @echo $@
-       @$(AWK) --non-decimal-data -f "$(srcdir)"/address@hidden >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-forcenum::
-       @echo $@
-       @$(AWK) --non-decimal-data -f "$(srcdir)"/address@hidden >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 nofile::
        @echo $@
        @$(AWK) '{}' no/such/file >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2309,16 +2260,6 @@ binmode1::
        @$(AWK) -v BINMODE=3 'BEGIN { print BINMODE }' >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-subi18n::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; $(AWK) -f "$(srcdir)"/address@hidden > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-concat4::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; $(AWK) -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 devfd1::
        @echo $@
        @$(AWK) -f "$(srcdir)"/address@hidden 4< "$(srcdir)"/devfd.in1 5< 
"$(srcdir)"/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2335,80 +2276,16 @@ mixed1::
        @$(AWK) -f /dev/null --source 'BEGIN {return junk}' >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-mtchi18n::
-       @echo $@
-       @GAWKLOCALE=ru_RU.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-reint2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) --re-interval -f address@hidden 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-localenl::
-       @echo $@
-       @"$(srcdir)"/address@hidden >_$@ 2>/dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf1::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf2::
-       @echo $@
-       @GAWKLOCALE=ja_JP.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? 
>> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf3::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbprintf4::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 mbprintf5::
        @echo $@
        @case `uname` in \
-       CYGWIN*) echo this test fails on cygwin --- skipping $@ ;; \
+       CYGWIN* | MINGW32* | *MS-DOS*) echo this test fails on this system --- 
skipping $@ ;; \
        *) \
-       GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
+       [ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE ; \
        $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@ ; \
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        esac
 
-mbfw1::
-       @echo $@
-       @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
-       $(AWK) -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden >_$@ 
2>&1 || echo EXIT CODE: $$? >> _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-gsubtst6::
-       @echo $@
-       @GAWKLOCALE=C ; $(AWK) -f "$(srcdir)"/address@hidden > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbstr1::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mbstr2::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 printfbad2: printfbad2.ok
        @echo $@
        @$(AWK) --lint -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden 
2>&1 | sed 's;$(srcdir)/;;g' >_$@ || echo EXIT CODE: $$?  >>_$@
@@ -2421,12 +2298,12 @@ beginfile1::
 
 beginfile2:
        @echo $@
-       @-( cd "$(srcdir)" && LC_ALL=C AWK="$(abs_builddir)/$(AWKPROG)" 
$(abs_srcdir)/address@hidden $(abs_srcdir)/address@hidden ) > _$@ 2>&1
+       @-( cd "$(srcdir)" && LC_ALL=C AWK="$(abs_builddir)/$(AWKPROG)" 
$(abs_srcdir)/address@hidden $(abs_srcdir)/address@hidden ) > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 dumpvars::
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) --dump-variables 1 < 
"$(srcdir)"/address@hidden >/dev/null 2>&1 || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) --dump-variables 1 < 
"$(srcdir)"/address@hidden >/dev/null 2>&1 || echo EXIT CODE: $$? >>_$@ || echo 
EXIT CODE: $$? >> _$@
        @grep -v ENVIRON < awkvars.out | grep -v PROCINFO > _$@; rm awkvars.out
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2446,7 +2323,7 @@ profile1:
 
 profile2:
        @echo $@
-       @$(AWK) address@hidden -v sortcmd=sort -f "$(srcdir)"/xref.awk 
"$(srcdir)"/dtdgport.awk > /dev/null
+       @$(AWK) address@hidden -v sortcmd=$(SORT) -f "$(srcdir)"/xref.awk 
"$(srcdir)"/dtdgport.awk > /dev/null
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2456,16 +2333,6 @@ profile3:
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-profile4:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-profile5:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 profile6:
        @echo $@
        @$(AWK) address@hidden -f "$(srcdir)"/address@hidden > /dev/null
@@ -2478,120 +2345,39 @@ profile7:
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-profile8:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-profile9:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-profile10:
-       @echo $@
-       @$(AWK) --pretty-print=_$@ -f "$(srcdir)"/address@hidden > /dev/null
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-posix2008sub:
-       @echo $@
-       @$(AWK) --posix -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-next:
-       @echo $@
-       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-LC_ALL=C $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-exit:
-       @echo $@
-       @-AWK="$(AWKPROG)" "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-rri1::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 mpfrieee:
        @echo $@
-       @$(AWK) -M -vPREC=double -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -vPREC=double -f "$(srcdir)"/address@hidden > _$@ 2>&1 || 
echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrexprange:
        @echo $@
-       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrrnd:
        @echo $@
-       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrrndeval:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrnegzero:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrnr:
-       @echo $@
-       @$(AWK) -M -vPREC=113 -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden > _$@
+       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrsort:
        @echo $@
-       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrbigint:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrsqrt:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrstrtonum:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -vPREC=53 -f "$(srcdir)"/address@hidden > _$@ 2>&1 || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfruplus:
        @echo $@
-       @$(AWK) -M -f "$(srcdir)"/uplus.awk > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpgforcenum:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrrem:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden > _$@ 2>&1
+       @$(AWK) -M -f "$(srcdir)"/uplus.awk > _$@ 2>&1 || echo EXIT CODE: $$? 
>> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 mpfrmemok1:
        @echo $@
-       @$(AWK) -p- -M -f "$(srcdir)"/address@hidden 2>&1 | sed 1d > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-mpfrfield:
-       @echo $@
-       @$(AWK) -M -f "$(srcdir)"/address@hidden "$(srcdir)"/address@hidden > 
_$@ 2>&1
+       @$(AWK) -p- -M -f "$(srcdir)"/address@hidden 2>&1 | sed 1d > _$@ || 
echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 jarebug::
        @echo $@
-       @"$(srcdir)"/address@hidden "$(AWKPROG)" "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden "_$@"
+       @"$(srcdir)"/address@hidden "$(AWKPROG)" "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden "_$@" || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 ordchr2::
@@ -2602,8 +2388,8 @@ ordchr2::
 # N.B. If the test fails, create readfile.ok so that "make diffout" will work
 readfile::
        @echo $@
-       @$(AWK) -l readfile 'BEGIN {printf "%s", readfile("Makefile")}' >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) Makefile _$@ && rm -f _$@ || cp -p Makefile address@hidden
+       @$(AWK) -l readfile 'BEGIN {printf "%s", 
readfile("$(srcdir)/Makefile.am")}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)/Makefile.am" _$@ && rm -f _$@ || cp -p 
"$(srcdir)/Makefile.am" address@hidden
 
 readfile2::
        @echo $@
@@ -2684,7 +2470,7 @@ inplace3::
 
 testext::
        @echo $@
-       @$(AWK) '/^(@load|BEGIN)/,/^}/' "$(top_srcdir)"/extension/testext.c > 
testext.awk
+       @$(AWK) ' /^(@load|BEGIN)/,/^}/' "$(top_srcdir)"/extension/testext.c > 
testext.awk
        @$(AWK) -f ./testext.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ testext.awk 
testexttmp.txt
 
@@ -2694,12 +2480,12 @@ getfile:
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 readdir:
+       @echo $@
        @if [ "`uname`" = Linux ] && [ "`stat -f . 2>/dev/null | awk 'NR == 2 { 
print $$NF }'`" = nfs ];  then \
        echo This test may fail on GNU/Linux systems when run on NFS or JFS 
filesystems.; \
        echo If it does, try rerunning on an ext'[234]' filesystem. ; \
        fi
-       @echo $@
-       @$(AWK) -f "$(srcdir)"/readdir.awk "$(top_srcdir)" > _$@
+       @$(AWK) -f "$(srcdir)"/readdir.awk "$(top_srcdir)" > _$@ || echo EXIT 
CODE: $$? >> _$@
        @ls -afi "$(top_srcdir)" > _dirlist
        @ls -lna "$(top_srcdir)" | sed 1d > _longlist
        @$(AWK) -f "$(srcdir)"/readdir0.awk -v extout=_$@  \
@@ -2719,6 +2505,7 @@ readdir_retest:
        @-$(CMP) address@hidden _$@ && rm -f address@hidden _$@
 
 fts:
+       @echo $@
        @case `uname` in \
        IRIX) \
        echo This test may fail on IRIX systems when run on an NFS filesystem.; 
\
@@ -2727,14 +2514,14 @@ fts:
        echo This test may fail on CYGWIN systems when run on an NFS 
filesystem.; \
        echo If it does, try rerunning on an ntfs filesystem. ;; \
        esac
-       @echo $@
-       @$(AWK) -f "$(srcdir)"/fts.awk
+       @$(AWK) -f "$(srcdir)"/fts.awk || echo EXIT CODE: $$? >> _$@
        @-$(CMP) address@hidden _$@ && rm -f address@hidden _$@
 
+# BINMODE=2 is needed for PC tests.
 charasbytes:
        @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -b -f address@hidden 
"$(srcdir)"/address@hidden | \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -b -v BINMODE=2 -f address@hidden 
"$(srcdir)"/address@hidden | \
        od -c -t x1 | tr '      ' ' ' | sed -e 's/  */ /g' -e 's/ *$$//' >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
@@ -2752,54 +2539,20 @@ symtab8:
 
 symtab9:
        @echo $@
-       @$(AWK) -f "$(srcdir)"/address@hidden >_$@
+       @$(AWK) -f "$(srcdir)"/address@hidden >_$@ || echo EXIT CODE: $$? >> _$@
        @rm -f testit.txt
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 reginttrad:
        @echo $@
-       @$(AWK) --traditional -r -f "$(srcdir)"/address@hidden > _$@
+       @$(AWK) --traditional -r -f "$(srcdir)"/address@hidden > _$@ || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 colonwarn:
        @echo $@
        @for i in 1 2 3 ; \
        do $(AWK) -f "$(srcdir)"/address@hidden $$i < 
"$(srcdir)"/address@hidden ; \
-       done > _$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-clos1way:
-       @echo $@
-       @AWKPATH="$(srcdir)" LC_ALL=C $(AWK) -f address@hidden  >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-dfamb1:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-randtest::
-       @echo $@
-       @-GAWK="$(AWKPROG)" "$(srcdir)"/randtest.sh >_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-backbigs1:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-backsmalls1:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-backsmalls2:
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)"/address@hidden 
>_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       done > _$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 dbugeval::
@@ -2809,12 +2562,6 @@ dbugeval::
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
-printhuge::
-       @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
-       AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 filefuncs:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden -v 
builddir="$(abs_top_builddir)"  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -2825,41 +2572,11 @@ genpot:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --gen-pot >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-paramasfunc1::
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --posix >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-paramasfunc2::
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --posix >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 negtime::
        @echo $@
        @TZ=GMT AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
        @AWKPATH="$(srcdir)" $(AWK) -f checknegtime.awk 
"$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-dbugtypedre1:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-dbugtypedre2:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-dbugeval2:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-muldimposix::
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden --posix >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 watchpoint1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden 
$(srcdir)/address@hidden < $(srcdir)/address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -2881,27 +2598,17 @@ pty2:
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ;; \
        esac
 
-rscompat:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) --traditional -f address@hidden 
"$(srcdir)/address@hidden" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
-symtab10:
-       @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -D -f address@hidden < 
"$(srcdir)/address@hidden" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
-
 ignrcas3::
        @echo $@
        @if locale -a | grep el_GR.iso88597 > /dev/null ; then \
-       GAWKLOCALE=el_GR.iso88597 \
+       [ -z "$$GAWKLOCALE" ] && GAWKLOCALE=el_GR.iso88597 ; export GAWKLOCALE; 
\
        AWKPATH="$(srcdir)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@ ; \
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
 arrdbg:
        @echo $@
-       @$(AWK) -v "okfile=./address@hidden" -f "$(srcdir)"/address@hidden | 
grep array_f >_$@
+       @$(AWK) -v "okfile=./address@hidden" -f "$(srcdir)"/address@hidden | 
grep array_f >_$@ || echo EXIT CODE: $$? >> _$@
        @-$(CMP) ./address@hidden _$@ && rm -f _$@ ./address@hidden
 
 sourcesplit:
@@ -2909,21 +2616,28 @@ sourcesplit:
        @AWKPATH="$(srcdir)" $(AWK) --source='BEGIN { a = 5;' --source='print a 
}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+# Use [:] in the regexp to keep MSYS from converting the /'s to \'s.
 nonfatal1:
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden 2>&1 | $(AWK) '{print 
gensub(/invalid:.*$$/, "invalid", 1, $$0)}' >_$@ || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden 2>&1 | $(AWK) '{print 
gensub(/invalid[:].*$$/, "invalid", 1, $$0)}' >_$@ || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+# 4/2018: On first call to $(CMP), send to /dev/null even with -s for MinGW.
 nlstringtest::
        @echo $@
-       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=fr_FR.UTF-8 ; \
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=fr_FR.UTF-8 ; export GAWKLOCALE ; \
        AWKPATH="$(srcdir)" $(AWK) -f address@hidden "$(srcdir)" >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
-       @-if $(CMP) -s "$(srcdir)"/nlstringtest-nogettext.ok _$@ ; \
+       @-if $(CMP) -s "$(srcdir)"/nlstringtest-nogettext.ok _$@ > /dev/null ; \
        then \
                rm -f _$@ ; \
        else \
                $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
+
+longwrds:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden -v SORT="$(SORT)" < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 Gt-dummy:
 # file Maketests, generated from Makefile.am by the Gentests program
 addcomma:
@@ -3126,6 +2840,12 @@ concat3:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+concat4:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 concat5:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -3161,9 +2881,15 @@ delarprm:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-delfunc:
+delfunc:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+dfamb1:
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
 dfastress:
@@ -3346,6 +3072,11 @@ gsubtst2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+gsubtst3:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --re-interval < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 gsubtst4:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -3356,6 +3087,12 @@ gsubtst5:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+gsubtst6:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 gsubtst7:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -3406,17 +3143,22 @@ iobug1:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+leaddig:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 leadnl:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-longsub:
+litoct:
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --traditional < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-longwrds:
+longsub:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
@@ -3531,6 +3273,11 @@ noloop2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+nonl:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --lint < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 noparms:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -3616,6 +3363,16 @@ opasnslf:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+paramasfunc1:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+paramasfunc2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 paramdup:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -3656,6 +3413,11 @@ pcntplus:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+posix2008sub:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 prdupval:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -3666,6 +3428,11 @@ prec:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+printf0:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 printf1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -3703,6 +3470,11 @@ rand:
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
+randtest:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 range1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -3768,11 +3540,22 @@ resplit:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+rri1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rs:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+rscompat:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --traditional < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rsnul1nl:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -3898,11 +3681,23 @@ strtod:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+subamp:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 subback:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+subi18n:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 subsepnm:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -3938,6 +3733,11 @@ tailrecurse:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+tradanch:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --traditional < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 uninit2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --lint >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
@@ -3978,6 +3778,42 @@ uplus:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+wideidx:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+wideidx2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub3:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub4:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 wjposer1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -3998,11 +3834,31 @@ zeroflag:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+fflush:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 getlnhd:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+localenl:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+rtlen:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+rtlen01:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 aadelete1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -4038,6 +3894,12 @@ backw:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+clos1way:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 clos1way2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -4068,16 +3930,41 @@ crlf:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+dbugeval2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+dbugtypedre1:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+dbugtypedre2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 delsub:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+exit:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 fieldwdth:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+forcenum:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --non-decimal-data >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 fpat1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -4243,6 +4130,12 @@ igncfs:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+ignrcas2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 ignrcas4:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -4273,6 +4166,11 @@ indirectcall2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+intarray:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --non-decimal-data >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 isarrayunset:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -4338,16 +4236,43 @@ match3:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+mbstr1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbstr2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+muldimposix:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 nastyparm:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+next:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 nondec:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+nondec2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --non-decimal-data >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 nonfatal2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -4383,11 +4308,42 @@ printfbad4:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+printhuge:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 procinfs:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+profile4:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile5:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile8:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile9:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile10:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 regnul1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -4403,6 +4359,17 @@ regx8bit:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+reint:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --re-interval < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+reint2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --re-interval < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rsgetline:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -4508,6 +4475,11 @@ symtab7:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+symtab10:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 typedregex1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -4578,6 +4550,24 @@ asorti:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+backbigs1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+backsmalls1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+backsmalls2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 fmttest:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -4597,6 +4587,48 @@ fnparydl:
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
+lc_num1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbfw1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf3:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf4:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mtchi18n:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ru_RU.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rebt8b2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -4662,12 +4694,57 @@ time:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+mpfrbigint:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrfield:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrnegzero:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrnr:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrrem:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrrndeval:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrsqrt:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrstrtonum:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpgforcenum:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 # end of file Maketests
 
 # Targets generated for other tests:
 
 Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests
-       files=`cd "$(srcdir)" && echo *.awk *.in`; \
+       files=`cd "$(srcdir)" && echo *.awk *.in *.sh`; \
        $(AWK) -f "$(srcdir)"/Gentests "$(srcdir)"/Makefile.am $$files > $@
 
 clean-local:
diff --git a/test/Maketests b/test/Maketests
index 0358cca..266e4a9 100644
--- a/test/Maketests
+++ b/test/Maketests
@@ -200,6 +200,12 @@ concat3:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+concat4:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 concat5:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -240,6 +246,12 @@ delfunc:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+dfamb1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 dfastress:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -420,6 +432,11 @@ gsubtst2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+gsubtst3:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --re-interval < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 gsubtst4:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -430,6 +447,12 @@ gsubtst5:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+gsubtst6:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 gsubtst7:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -480,17 +503,22 @@ iobug1:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+leaddig:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 leadnl:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-longsub:
+litoct:
        @echo $@
-       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --traditional < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
-longwrds:
+longsub:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
@@ -605,6 +633,11 @@ noloop2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+nonl:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --lint < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 noparms:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -690,6 +723,16 @@ opasnslf:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+paramasfunc1:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+paramasfunc2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 paramdup:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -730,6 +773,11 @@ pcntplus:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+posix2008sub:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 prdupval:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -740,6 +788,11 @@ prec:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+printf0:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 printf1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -777,6 +830,11 @@ rand:
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
+randtest:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 range1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -842,11 +900,22 @@ resplit:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+rri1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rs:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+rscompat:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --traditional < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rsnul1nl:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -972,11 +1041,23 @@ strtod:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+subamp:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 subback:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+subi18n:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 subsepnm:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1012,6 +1093,11 @@ tailrecurse:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+tradanch:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --traditional < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 uninit2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --lint >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
@@ -1052,6 +1138,42 @@ uplus:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+wideidx:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+wideidx2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub3:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+widesub4:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 wjposer1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -1072,11 +1194,31 @@ zeroflag:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+fflush:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 getlnhd:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+localenl:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+rtlen:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+rtlen01:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 aadelete1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1112,6 +1254,12 @@ backw:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+clos1way:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 clos1way2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -1142,16 +1290,41 @@ crlf:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+dbugeval2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+dbugtypedre1:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+dbugtypedre2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 delsub:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+exit:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 fieldwdth:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+forcenum:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --non-decimal-data >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 fpat1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -1317,6 +1490,12 @@ igncfs:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+ignrcas2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 ignrcas4:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1347,6 +1526,11 @@ indirectcall2:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+intarray:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --non-decimal-data >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 isarrayunset:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1412,16 +1596,43 @@ match3:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+mbstr1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbstr2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+muldimposix:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --posix >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 nastyparm:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+next:
+       @echo $@
+       @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/address@hidden  > _$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 nondec:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+nondec2:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --non-decimal-data >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 nonfatal2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1457,11 +1668,42 @@ printfbad4:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+printhuge:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 procinfs:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+profile4:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile5:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile8:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile9:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+profile10:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --pretty-print=_$@ >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 regnul1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1477,6 +1719,17 @@ regx8bit:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+reint:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --re-interval < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+reint2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --re-interval < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rsgetline:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -1582,6 +1835,11 @@ symtab7:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+symtab10:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  --debug < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 typedregex1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1652,6 +1910,24 @@ asorti:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+backbigs1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+backsmalls1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+backsmalls2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 fmttest:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1671,6 +1947,48 @@ fnparydl:
        $(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@ ; \
        fi
 
+lc_num1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbfw1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf1:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf2:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf3:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mbprintf4:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mtchi18n:
+       @echo $@
+       @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ru_RU.UTF-8; export GAWKLOCALE; \
+       AWKPATH="$(srcdir)" $(AWK) -f address@hidden  < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 rebt8b2:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
@@ -1736,4 +2054,49 @@ time:
        @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+mpfrbigint:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrfield:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrnegzero:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrnr:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M < 
"$(srcdir)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrrem:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrrndeval:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrsqrt:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpfrstrtonum:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
+mpgforcenum:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f address@hidden  -M >_$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 # end of file Maketests
diff --git a/test/gsubtst3.awk b/test/gsubtst3.awk
index 1c4f4ea..6c51896 100644
--- a/test/gsubtst3.awk
+++ b/test/gsubtst3.awk
@@ -164,7 +164,8 @@ OFS="-"
 $(length(_)+1)=""
 print $0
 
-while(getline <ARGV[1]) # ADR: was testre.dat
+#while(getline <ARGV[1]) # ADR: was testre.dat
+while(getline) # ADR: use stdin so can automate generation of test
 {
 RE=$1;IN=$2;OUT=$3
 $0=IN
diff --git a/test/leaddig.awk b/test/leaddig.awk
index 6c001ba..1e6ca51 100644
--- a/test/leaddig.awk
+++ b/test/leaddig.awk
@@ -2,6 +2,11 @@
 # right way, based on a note in comp.lang.awk.
 #
 # run with gawk -v x=2E -f leaddig.awk
+
 BEGIN {
+       # 4/2018: Put it into the program to make generation of the
+       # recipe automatable
+       x = "2E"
+
        print "x =", x, (x == 2), (x == 2E0), (x == 2E), (x == 2D)
 }
diff --git a/test/litoct.in b/test/litoct.in
new file mode 100644
index 0000000..81bf396
--- /dev/null
+++ b/test/litoct.in
@@ -0,0 +1 @@
+ab
diff --git a/test/longdbl.awk b/test/longdbl.awk
deleted file mode 100644
index bbe8aba..0000000
--- a/test/longdbl.awk
+++ /dev/null
@@ -1,159 +0,0 @@
-# From address@hidden  Wed Apr 27 09:48:37 2005
-# Return-Path: <address@hidden>
-# Received: from localhost (skeeve [127.0.0.1])
-#      by skeeve.com (8.12.11/8.12.11) with ESMTP id j3R6mZVm015791
-#      for <address@hidden>; Wed, 27 Apr 2005 09:48:37 +0300
-# Received: from pop.012.net.il [84.95.5.221]
-#      by localhost with POP3 (fetchmail-6.2.5)
-#      for address@hidden (single-drop); Wed, 27 Apr 2005 09:48:37 +0300 (IDT)
-# Received: from mtain3.012.net.il ([10.220.5.7])
-#  by i_mss3.012.net.il (HyperSendmail v2004.12)
-#  with ESMTP id <address@hidden> for address@hidden;
-#  Tue, 26 Apr 2005 22:18:36 +0300 (IDT)
-# Received: from VScan3 ([10.220.20.3])
-#  by i_mtain3.012.net.il (HyperSendmail v2004.12)
-#  with ESMTP id <address@hidden> for address@hidden
-#  (ORCPT address@hidden); Tue, 26 Apr 2005 22:18:36 +0300 (IDT)
-# Received: from i_mtain1.012.net.il ([10.220.5.1])
-#  by VScan3 with InterScan Messaging Security Suite; Tue,
-#  26 Apr 2005 22:15:22 +0300
-# Received: from f7.net ([209.61.216.22])
-#  by i_mtain1.012.net.il (HyperSendmail v2004.12)
-#  with ESMTP id <address@hidden> for address@hidden;
-#  Tue, 26 Apr 2005 22:18:33 +0300 (IDT)
-# Received: (from address@hidden)      by f7.net (8.11.7-20030920/8.11.7)
-#  id j3QJFAg18376     for address@hidden; Tue, 26 Apr 2005 15:15:10 -0400
-# Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164])
-#      by f7.net (8.11.7-20030920/8.11.7) with ESMTP id j3QJF5J18304   for
-#  <address@hidden>; Tue, 26 Apr 2005 15:15:06 -0400
-# Received: from monty-python.gnu.org ([199.232.76.173])
-#      by fencepost.gnu.org with esmtp (Exim 4.34)
-#      id 1DQVVh-0004gD-CH     for address@hidden; Tue, 26 Apr 2005 15:14:17 
-0400
-# Received: from Debian-exim by monty-python.gnu.org with spam-scanned
-#  (Exim 4.34) id 1DQVYa-0002PR-2b     for address@hidden; Tue,
-#  26 Apr 2005 15:17:56 -0400
-# Received: from [129.183.4.8] (helo=ecfrec.frec.bull.fr)
-#      by monty-python.gnu.org with esmtp (Exim 4.34)
-#      id 1DQVYZ-0002Lr-EF     for address@hidden; Tue, 26 Apr 2005 15:17:15 
-0400
-# Received: from localhost (localhost [127.0.0.1])
-#      by ecfrec.frec.bull.fr (Postfix) with ESMTP id 5782819D907      for
-#  <address@hidden>; Tue, 26 Apr 2005 21:12:53 +0200 (CEST)
-# Received: from ecfrec.frec.bull.fr ([127.0.0.1])
-#  by localhost (ecfrec.frec.bull.fr [127.0.0.1]) (amavisd-new, port 10024)
-#  with ESMTP id 06763-10 for <address@hidden>; Tue,
-#  26 Apr 2005 21:12:51 +0200 (CEST)
-# Received: from ecn002.frec.bull.fr (ecn002.frec.bull.fr [129.183.4.6])
-#      by ecfrec.frec.bull.fr (Postfix) with ESMTP id 4488B19D906      for
-#  <address@hidden>; Tue, 26 Apr 2005 21:12:51 +0200 (CEST)
-# Received: from daphne ([129.183.192.6])
-#  by ecn002.frec.bull.fr (Lotus Domino Release 5.0.12)
-#  with ESMTP id 2005042621231613:3312 ; Tue, 26 Apr 2005 21:23:16 +0200
-# Date: Tue, 26 Apr 2005 21:12:49 +0200 (CEST)
-# From: Jean-Marc Saffroy <address@hidden>
-# Subject: GNU awk unable to handle 64-bit ints on IA64
-# X-X-Sender: address@hidden
-# To: address@hidden
-# Message-id: <address@hidden>
-# MIME-version: 1.0
-# Content-type: TEXT/PLAIN; charset=US-ASCII; format=flowed
-# X-MIMETrack: Itemize by SMTP Server on ECN002/FR/BULL(Release 5.0.12  
|February
-#  13, 2003) at 26/04/2005 21:23:16,
-#      Serialize by Router on ECN002/FR/BULL(Release 5.0.12  |February 13,
-#  2003) at 26/04/2005 21:23:16,       Serialize complete at 26/04/2005 
21:23:16
-# X-Virus-Scanned: by amavisd-new at frec.bull.fr
-# Original-recipient: rfc822;address@hidden
-# X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on skeeve.com
-# X-Spam-Level: 
-# X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham 
-#      version=2.63
-# Status: RO
-# 
-# 
-# Hello,
-# 
-# I have rounding problems when manipulating 64-bit ints (actually they are 
-# addresses) on Linux/IA64:
-# 
-# $ echo 0xa000000100000813|./gawk '{printf("0x%lx\n",strtonum($1));}'
-# 0xa000000100000800
-# $ echo 0xffffffffffffffff|./gawk '{printf("0x%lx\n",strtonum($1));}'
-# 0x8000000000000000
-# $ ./gawk --version|head -1
-# GNU Awk 3.1.4
-# 
-# The problem seems to be that AWKNUM is defined to be a double, which has a 
-# 53-bit mantissa. On IA64 with gcc 3.2.3 (maybe other compilers as well) 
-# there is a long double type with a larger mantissa:
-# 
-# $ grep define.*LDBL_MANT_DIG 
/usr/lib/gcc-lib/ia64-redhat-linux/3.2.3/include/float.h
-# #define LDBL_MANT_DIG 64
-# 
-# So I changed AWKNUM to be a long double; this does not seem to be 
-# sufficient, because of some dubious casts to double (there may be others 
-# left, I didn't check), see patch below. Now it's much nicer:
-# 
-# $ echo 0xa000000100000813|./gawk '{printf("0x%lx\n",strtonum($1));}'
-# 0xa000000100000813
-# $ echo 0xffffffffffffffff|./gawk '{printf("0x%lx\n",strtonum($1));}'
-# 0xffffffffffffffff
-# 
-# Maybe the gawk configure script should set AWKNUM to be a long double on 
-# Linux/IA64?
-# 
-# 
-# Regards,
-# 
-# -- 
-# Jean-Marc Saffroy - address@hidden
-# 
-# 
-# diff -ru gawk-3.1.4/awk.h gawk/awk.h
-# --- gawk-3.1.4/awk.h 2004-07-26 16:11:05.000000000 +0200
-# +++ gawk/awk.h       2005-04-26 19:19:10.545419273 +0200
-# @@ -273,7 +273,7 @@
-#   /* ------------------ Constants, Structures, Typedefs  ------------------ 
*/
-# 
-#   #ifndef AWKNUM
-# -#define AWKNUM      double
-# +#define AWKNUM      long double
-#   #endif
-# 
-#   #ifndef TRUE
-# diff -ru gawk-3.1.4/builtin.c gawk/builtin.c
-# --- gawk-3.1.4/builtin.c     2004-07-13 09:55:28.000000000 +0200
-# +++ gawk/builtin.c   2005-04-26 20:53:41.211365432 +0200
-# @@ -578,7 +578,7 @@
-#      char *cend = &cpbuf[30];/* chars, we lose, but seems unlikely */
-#      char *cp;
-#      const char *fill;
-# -    double tmpval;
-# +    AWKNUM tmpval;
-#      char signchar = FALSE;
-#      size_t len;
-#      int zero_flag = FALSE;
-# @@ -2773,16 +2773,16 @@
-#   do_strtonum(NODE *tree)
-#   {
-#      NODE *tmp;
-# -    double d;
-# +    AWKNUM d;
-# 
-#      tmp = tree_eval(tree->lnode);
-# 
-#      if ((tmp->flags & (NUMBER|NUMCUR)) != 0)
-# -            d = (double) force_number(tmp);
-# +            d = (AWKNUM) force_number(tmp);
-#      else if (isnondecimal(tmp->stptr))
-#              d = nondec2awknum(tmp->stptr, tmp->stlen);
-#      else
-# -            d = (double) force_number(tmp);
-# +            d = (AWKNUM) force_number(tmp);
-# 
-#      free_temp(tmp);
-#      return tmp_number((AWKNUM) d);
-# 
-# 
-# 
#####################################################################################
-# This Mail Was Scanned by 012.net Anti Virus Service - Powered by TrendMicro 
Interscan
-# 
-{ printf("0x%lx\n",strtonum($1)); }
diff --git a/test/longdbl.in b/test/longdbl.in
deleted file mode 100644
index d50f0c4..0000000
--- a/test/longdbl.in
+++ /dev/null
@@ -1,2 +0,0 @@
-0xa000000100000813
-0xffffffffffffffff
diff --git a/test/longdbl.ok b/test/longdbl.ok
deleted file mode 100644
index d50f0c4..0000000
--- a/test/longdbl.ok
+++ /dev/null
@@ -1,2 +0,0 @@
-0xa000000100000813
-0xffffffffffffffff
diff --git a/test/nondec2.awk b/test/nondec2.awk
index 681d283..23f9053 100644
--- a/test/nondec2.awk
+++ b/test/nondec2.awk
@@ -101,4 +101,8 @@
 # 
 # --------------enig9DEC74140126C224E7DE3E54--
 # 
+
+# Added 4/2018 to make script self contained
+BEGIN { a = "0x1" }
+
 BEGIN { print a+0 }
diff --git a/test/nonl.in b/test/nonl.in
new file mode 100644
index 0000000..91195ee
--- /dev/null
+++ b/test/nonl.in
@@ -0,0 +1 @@
+junk
\ No newline at end of file
diff --git a/test/randtest.sh b/test/randtest.sh
index b17fda7..597376a 100755
--- a/test/randtest.sh
+++ b/test/randtest.sh
@@ -29,9 +29,9 @@
 # 
 #!/bin/ksh
 
-#GAWK=/bin/gawk
+#AWK=/bin/gawk
 
-# ADR: Get GAWK from the environment.
+# ADR: Get AWK from the environment.
 # Additional note: This wants ksh/bash for the use of $RANDOM below to
 # seed the generator. However, shells that don't provide it won't be
 # a problem since gawk will then seed the generator with the time of day,
@@ -40,7 +40,7 @@
 # large NSAMPLES and NRUNS will bring any correlation out of the noise better
 NSAMPLES=1024; MAX_ALLOWED_SIGMA=5; NRUNS=50;
 
-$GAWK 'BEGIN{ 
+$AWK 'BEGIN{ 
     srand('$RANDOM');
     nsamples=('$NSAMPLES');
     max_allowed_sigma=('$MAX_ALLOWED_SIGMA');

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                |    5 +
 Makefile.am              |    5 +-
 Makefile.in              |    5 +-
 NEWS                     |    4 +
 README_d/ChangeLog       |    5 +
 README_d/README.pc       |    9 +-
 pc/ChangeLog             |   51 ++
 pc/GenMakefileTst.awk    |  162 ++++++
 pc/Makefile.tst          | 1271 ++++++++++++++++++++++++----------------------
 pc/Makefile.tst.prologue |  138 +++++
 test/ChangeLog           |  137 +++++
 test/Gentests            |  176 ++++++-
 test/Gentests.vms        |  102 ----
 test/Makefile.am         |  613 ++++++----------------
 test/Makefile.in         |  985 ++++++++++++++++++-----------------
 test/Maketests           |  369 +++++++++++++-
 test/gsubtst3.awk        |    3 +-
 test/leaddig.awk         |    5 +
 test/litoct.in           |    1 +
 test/longdbl.awk         |  159 ------
 test/longdbl.in          |    2 -
 test/longdbl.ok          |    2 -
 test/nondec2.awk         |    4 +
 test/nonl.in             |    1 +
 test/randtest.sh         |    6 +-
 25 files changed, 2430 insertions(+), 1790 deletions(-)
 create mode 100644 pc/GenMakefileTst.awk
 create mode 100644 pc/Makefile.tst.prologue
 delete mode 100644 test/Gentests.vms
 create mode 100644 test/litoct.in
 delete mode 100644 test/longdbl.awk
 delete mode 100644 test/longdbl.in
 delete mode 100644 test/longdbl.ok
 create mode 100644 test/nonl.in


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]