gawk-diffs
[Top][All Lists]
Advanced

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

[SCM] gawk branch, feature/nuke-djgpp, created. gawk-4.1.0-4760-g628b387


From: Arnold Robbins
Subject: [SCM] gawk branch, feature/nuke-djgpp, created. gawk-4.1.0-4760-g628b3876
Date: Wed, 6 Jul 2022 08:26:47 -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, feature/nuke-djgpp has been created
        at  628b387658b5704cc711e106459ed3bee37ef600 (commit)

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

commit 628b387658b5704cc711e106459ed3bee37ef600
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Wed Jul 6 15:26:09 2022 +0300

    Remove DJGPP support.

diff --git a/ChangeLog b/ChangeLog
index 94f43869..acfb88f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2022-07-06         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * README: Updated. Remove mention of DJGPP.
+       * awk.h, custom.h, eval.c, gawkmisc.c, io.c, main.c, nonposix.h,
+       re.c, replace.c: Remove all code for __DJGPP__.
+
 2022-07-03         Arnold D. Robbins     <arnold@skeeve.com>
 
        * README: Updated. Remove mention of OS/2.
diff --git a/README b/README
index 1c9d52af..599154d3 100644
--- a/README
+++ b/README
@@ -87,10 +87,6 @@ Arnold Robbins
 
 BUG REPORTS AND FIXES, non-Unix systems:
 
-MS-DOS with DJGPP:
-       Juan Manuel Guerrero
-       juan.guerrero@gmx.de
-
 MS-Windows with MinGW:
        Eli Zaretskii
        eliz@gnu.org
diff --git a/awk.h b/awk.h
index 0da24149..67562f4e 100644
--- a/awk.h
+++ b/awk.h
@@ -169,9 +169,9 @@ extern void *memset_ulong(void *dest, int val, unsigned 
long l);
 #define fwrite fwrite_unlocked
 #endif /* HAVE_FWRITE_UNLOCKED */
 
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 #include "nonposix.h"
-#endif /* defined(__DJGPP__) || defined(__MINGW32__) */
+#endif /* defined(__MINGW32__) */
 
 /* use this as lintwarn("...")
    this is a hack but it gives us the right semantics */
diff --git a/custom.h b/custom.h
index ace6c81b..67d0d1f0 100644
--- a/custom.h
+++ b/custom.h
@@ -112,8 +112,6 @@ typedef unsigned long long uint_fast64_t;
 #define xirealloc xrealloc
 #define ximalloc xmalloc
 
-#include "mbsupport.h" /* defines stuff for DJGPP to fake MBS */
-
 #ifdef USE_PERSISTENT_MALLOC
 #include <stdlib.h>
 #include "pma.h"
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 1bf2ed3f..bf386be7 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,9 @@
+2022-07-06         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * gawktexi.in: Remove stuff related to DJGPP.
+       (POSIX/GNU): Updated.
+       * wordlist, wordlist3: Updated.
+
 2022-07-04         Arnold D. Robbins     <arnold@skeeve.com>
 
        * gawktexi.in (POSIX/GNU): Updated.
diff --git a/doc/gawk.info b/doc/gawk.info
index e8dead37..16af2c5b 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -11434,10 +11434,8 @@ they are not special:
           This element gives a string indicating the platform for which
           'gawk' was compiled.  The value will be one of the following:
 
-          '"djgpp"'
           '"mingw"'
-               Microsoft Windows, using either DJGPP or MinGW,
-               respectively.
+               Microsoft Windows, using MinGW.
 
           '"os390"'
                OS/390.
@@ -30057,6 +30055,8 @@ current version of 'gawk'.
 
         - OS/2
 
+        - DJGPP
+
 
 File: gawk.info,  Node: Feature History,  Next: Common Extensions,  Prev: 
POSIX/GNU,  Up: Language History
 
@@ -31561,12 +31561,11 @@ File: gawk.info,  Node: PC Using,  Next: Cygwin,  
Prev: PC Compiling,  Up: PC In
 B.3.1.3 Using 'gawk' on PC Operating Systems
 ............................................
 
-Information in this section applies to the MinGW and DJGPP ports of
-'gawk'.  *Note Cygwin:: for information about the Cygwin port.
+Information in this section applies to the MinGW port of 'gawk'.  *Note
+Cygwin:: for information about the Cygwin port.
 
    Under MS-Windows, the MinGW environment supports both the '|&'
-operator and TCP/IP networking (*note TCP/IP Networking::).  The DJGPP
-environment does not support '|&'.
+operator and TCP/IP networking (*note TCP/IP Networking::).
 
    The MS-Windows version of 'gawk' searches for program files as
 described in *note AWKPATH Variable::.  However, semicolons (rather than
@@ -32310,8 +32309,6 @@ should be considered authoritative if it conflicts with 
this Info file.
 
 Unix and POSIX          Arnold Robbins, <arnold@skeeve.com>
 systems                 
-MS-DOS with DJGPP       Juan Manuel Guerrero, <juan.guerrero@gmx.de>
-                        
 MS-Windows with MinGW   Eli Zaretskii, <eliz@gnu.org>
                         
 VMS                     John Malmberg, <wb8tyw@qsl.net>
@@ -32534,9 +32531,9 @@ B.6 Summary
           file.
 
    * 'gawk' may be built on non-POSIX systems as well.  The currently
-     supported systems are MS-Windows using MSYS, MSYS2, DJGPP, MinGW,
-     and Cygwin, and both Vax/VMS and OpenVMS. Instructions for each
-     system are included in this major node.
+     supported systems are MS-Windows using MSYS, MSYS2, MinGW, and
+     Cygwin, and both Vax/VMS and OpenVMS. Instructions for each system
+     are included in this major node.
 
    * Bug reports should be sent via email to <bug-gawk@gnu.org>.  Bug
      reports should be in English and should include the version of
@@ -35684,7 +35681,7 @@ Index
                                                               (line  19)
 * ; (semicolon), separating statements in actions <2>: Statements.
                                                               (line  10)
-* ; (semicolon), AWKPATH variable and:   PC Using.            (line  13)
+* ; (semicolon), AWKPATH variable and:   PC Using.            (line  12)
 * < (left angle bracket), < operator (I/O): Getline/File.     (line   6)
 * < (left angle bracket), < operator:    Comparison Operators.
                                                               (line  11)
@@ -36060,7 +36057,7 @@ Index
 * AWKgo:                                 Other Versions.      (line 133)
 * AWKLIBPATH environment variable:       AWKLIBPATH Variable. (line   6)
 * AWKPATH environment variable:          AWKPATH Variable.    (line   6)
-* AWKPATH environment variable <1>:      PC Using.            (line  13)
+* AWKPATH environment variable <1>:      PC Using.            (line  12)
 * awkprof.out file:                      Profiling.           (line   6)
 * awksed.awk program:                    Simple Sed.          (line  25)
 * awkvars.out file:                      Options.             (line  97)
@@ -36160,7 +36157,7 @@ Index
 * bindtextdomain() function (gawk), portability and: I18N Portability.
                                                               (line  33)
 * BINMODE variable:                      User-modified.       (line  15)
-* BINMODE variable <1>:                  PC Using.            (line  19)
+* BINMODE variable <1>:                  PC Using.            (line  18)
 * bit-manipulation functions:            Bitwise Functions.   (line   6)
 * bits2str() user-defined function:      Bitwise Functions.   (line  70)
 * bitwise, operations:                   Bitwise Functions.   (line   6)
@@ -36383,7 +36380,7 @@ Index
 * common extensions, length() applied to an array: String Functions.
                                                               (line 214)
 * common extensions, func keyword:       Definition Syntax.   (line  99)
-* common extensions, BINMODE variable:   PC Using.            (line  19)
+* common extensions, BINMODE variable:   PC Using.            (line  18)
 * comp.lang.awk newsgroup:               Usenet.              (line  11)
 * comparison expressions:                Typing and Comparison.
                                                               (line   9)
@@ -36525,7 +36522,7 @@ Index
 * dark corner, exit statement:           Exit Statement.      (line  30)
 * dark corner, value of ARGV[0]:         Auto-set.            (line  39)
 * dark corner, FILENAME variable <1>:    Auto-set.            (line 108)
-* dark corner, FNR/NR variables:         Auto-set.            (line 406)
+* dark corner, FNR/NR variables:         Auto-set.            (line 404)
 * dark corner, array subscripts:         Uninitialized Subscripts.
                                                               (line  43)
 * dark corner, regexp as second argument to index(): String Functions.
@@ -36774,8 +36771,8 @@ Index
 * differences in awk and gawk, ERRNO variable: Auto-set.      (line  87)
 * differences in awk and gawk, FUNCTAB variable: Auto-set.    (line 134)
 * differences in awk and gawk, PROCINFO array: Auto-set.      (line 148)
-* differences in awk and gawk, RS/RT variables <3>: Auto-set. (line 345)
-* differences in awk and gawk, SYMTAB variable: Auto-set.     (line 349)
+* differences in awk and gawk, RS/RT variables <3>: Auto-set. (line 343)
+* differences in awk and gawk, SYMTAB variable: Auto-set.     (line 347)
 * differences in awk and gawk, ARGC/ARGV variables: ARGC and ARGV.
                                                               (line  89)
 * differences in awk and gawk, array elements, deleting: Delete.
@@ -36791,7 +36788,7 @@ Index
 * differences in awk and gawk, indirect function calls: Indirect Calls.
                                                               (line   6)
 * differences in awk and gawk, BINMODE variable <1>: PC Using.
-                                                              (line  19)
+                                                              (line  18)
 * directories, searching, for source files: AWKPATH Variable. (line   6)
 * directories, searching, for loadable extensions: AWKLIBPATH Variable.
                                                               (line   6)
@@ -36904,7 +36901,7 @@ Index
 * environment variables, LC_ALL:         I18N Example.        (line  68)
 * environment variables, LANG:           I18N Example.        (line  68)
 * environment variables, LC_MESSAGES:    I18N Example.        (line  68)
-* environment variables, AWKPATH <1>:    PC Using.            (line  13)
+* environment variables, AWKPATH <1>:    PC Using.            (line  12)
 * epoch, definition of:                  Glossary.            (line 310)
 * equals sign (=), = operator:           Assignment Ops.      (line   6)
 * equals sign (=), == operator:          Comparison Operators.
@@ -36972,7 +36969,7 @@ Index
 * expressions, selecting:                Conditional Exp.     (line   6)
 * expressions, as patterns:              Expression Patterns. (line   6)
 * Extended Regular Expressions (EREs):   Bracket Expressions. (line  34)
-* extension API, version number:         Auto-set.            (line 284)
+* extension API, version number:         Auto-set.            (line 282)
 * extension API, interaction with namespaces: Namespace And Features.
                                                               (line  22)
 * extension API:                         Extension API Description.
@@ -37012,7 +37009,7 @@ Index
 * extensions, in gawk, not in POSIX awk: POSIX/GNU.           (line   6)
 * extensions, Brian Kernighan's awk <1>: Common Extensions.   (line   6)
 * extensions, mawk:                      Common Extensions.   (line   6)
-* extensions, common, BINMODE variable:  PC Using.            (line  19)
+* extensions, common, BINMODE variable:  PC Using.            (line  18)
 * extract.awk program:                   Extract Program.     (line  79)
 * extraction, of marked strings (internationalization): String Extraction.
                                                               (line   6)
@@ -37148,7 +37145,7 @@ Index
                                                               (line  12)
 * FNR variable:                          Records.             (line   6)
 * FNR variable <1>:                      Auto-set.            (line 118)
-* FNR variable, changing:                Auto-set.            (line 406)
+* FNR variable, changing:                Auto-set.            (line 404)
 * for statement:                         For Statement.       (line   6)
 * for statement, looping over arrays:    Scanning an Array.   (line  20)
 * fork() extension function:             Extension Sample Fork.
@@ -37312,9 +37309,9 @@ Index
 * gawk, ERRNO variable in <3>:           Auto-set.            (line  87)
 * gawk, FUNCTAB array in:                Auto-set.            (line 134)
 * gawk, PROCINFO array in <1>:           Auto-set.            (line 148)
-* gawk, version of:                      Auto-set.            (line 259)
-* gawk, RT variable in <3>:              Auto-set.            (line 345)
-* gawk, SYMTAB array in:                 Auto-set.            (line 349)
+* gawk, version of:                      Auto-set.            (line 257)
+* gawk, RT variable in <3>:              Auto-set.            (line 343)
+* gawk, SYMTAB array in:                 Auto-set.            (line 347)
 * gawk, IGNORECASE variable in <2>:      Array Intro.         (line 100)
 * gawk, function arguments and:          Calling Built-in.    (line  16)
 * gawk, IGNORECASE variable in <3>:      String Functions.    (line  57)
@@ -37342,7 +37339,7 @@ Index
                                                               (line   6)
 * gawk, configuring:                     Configuration Philosophy.
                                                               (line   6)
-* gawk, MS-Windows version of:           PC Using.            (line  13)
+* gawk, MS-Windows version of:           PC Using.            (line  12)
 * gawk, VMS version of:                  VMS Installation.    (line   6)
 * gawk, implementation issues:           Notes.               (line   6)
 * gawk, implementation issues, downward compatibility: Compatibility Mode.
@@ -37758,7 +37755,7 @@ Index
 * mawk utility <2>:                      Concatenation.       (line  36)
 * mawk utility <3>:                      Nextfile Statement.  (line  47)
 * mawk utility <4>:                      Other Versions.      (line  39)
-* maximum precision supported by MPFR library: Auto-set.      (line 273)
+* maximum precision supported by MPFR library: Auto-set.      (line 271)
 * McIlroy, Doug:                         Glossary.            (line 255)
 * McPhee, Patrick T.J.:                  Contributors.        (line 103)
 * memory, allocating for extensions:     Memory Allocation Functions.
@@ -37773,7 +37770,7 @@ Index
 * messages from extensions:              Printing Messages.   (line   6)
 * metacharacters, escape sequences for:  Escape Sequences.    (line 139)
 * metacharacters, in regular expressions: Regexp Operators.   (line   6)
-* minimum precision required by MPFR library: Auto-set.       (line 276)
+* minimum precision required by MPFR library: Auto-set.       (line 274)
 * Minshall, Greg:                        Getopt Function.     (line 105)
 * mkbool:                                Boolean Functions.   (line  10)
 * mktime:                                Time Functions.      (line  25)
@@ -37870,7 +37867,7 @@ Index
 * not Boolean-logic operator:            Boolean Ops.         (line   6)
 * NR variable:                           Records.             (line   6)
 * NR variable <1>:                       Auto-set.            (line 143)
-* NR variable, changing:                 Auto-set.            (line 406)
+* NR variable, changing:                 Auto-set.            (line 404)
 * null strings, in gawk arguments, quoting and: Quoting.      (line  82)
 * null strings, in gawk arguments, quoting and <1>: Other Arguments.
                                                               (line  73)
@@ -37987,7 +37984,7 @@ Index
                                                               (line  39)
 * package, definition of:                Global Namespace.    (line  18)
 * Papadopoulos, Panos:                   Contributors.        (line 131)
-* parent process ID of gawk process:     Auto-set.            (line 248)
+* parent process ID of gawk process:     Auto-set.            (line 246)
 * parentheses (), regexp operator:       Regexp Operator Details.
                                                               (line  77)
 * parentheses (), in a profile:          Profiling.           (line 146)
@@ -38186,8 +38183,8 @@ Index
 * printing, mailing labels:              Labels Program.      (line   6)
 * printing, messages from extensions:    Printing Messages.   (line   6)
 * private variables:                     Library Names.       (line  11)
-* process group ID of gawk process:      Auto-set.            (line 242)
-* process ID of gawk process:            Auto-set.            (line 245)
+* process group ID of gawk process:      Auto-set.            (line 240)
+* process ID of gawk process:            Auto-set.            (line 243)
 * processes, two-way communications with: Two-way I/O.        (line   6)
 * processing data:                       Basic High Level.    (line   6)
 * PROCINFO array:                        Auto-set.            (line 148)
@@ -38377,7 +38374,7 @@ Index
 * right angle bracket (>), >> operator (I/O) <1>: Precedence. (line  64)
 * right shift, bitwise:                  Bitwise Functions.   (line  33)
 * Ritchie, Dennis:                       Basic Data Typing.   (line  54)
-* RLENGTH variable:                      Auto-set.            (line 332)
+* RLENGTH variable:                      Auto-set.            (line 330)
 * RLENGTH variable, match() function and: String Functions.   (line 241)
 * Robbins, Miriam:                       Acknowledgments.     (line  94)
 * Robbins, Jean:                         Acknowledgments.     (line  94)
@@ -38407,12 +38404,12 @@ Index
 * RS variable, multiline records and:    Multiple Line.       (line  17)
 * RS variable <1>:                       User-modified.       (line 135)
 * rshift:                                Bitwise Functions.   (line  55)
-* RSTART variable:                       Auto-set.            (line 338)
+* RSTART variable:                       Auto-set.            (line 336)
 * RSTART variable, match() function and: String Functions.    (line 241)
 * RT variable:                           awk split records.   (line 118)
 * RT variable <1>:                       gawk split records.  (line  66)
 * RT variable <2>:                       Multiple Line.       (line 138)
-* RT variable <3>:                       Auto-set.            (line 345)
+* RT variable <3>:                       Auto-set.            (line 343)
 * Rubin, Paul:                           History.             (line  30)
 * Rubin, Paul <1>:                       Contributors.        (line  16)
 * rule, definition of:                   Getting Started.     (line  21)
@@ -38430,7 +38427,7 @@ Index
 * scanning arrays:                       Scanning an Array.   (line   6)
 * scanning multidimensional arrays:      Multiscanning.       (line  11)
 * Schorr, Andrew:                        Acknowledgments.     (line  60)
-* Schorr, Andrew <1>:                    Auto-set.            (line 376)
+* Schorr, Andrew <1>:                    Auto-set.            (line 374)
 * Schorr, Andrew <2>:                    Contributors.        (line 136)
 * Schreiber, Bert:                       Acknowledgments.     (line  38)
 * Schreiber, Rita:                       Acknowledgments.     (line  38)
@@ -38440,8 +38437,8 @@ Index
 * search paths, for loadable extensions: AWKLIBPATH Variable. (line   6)
 * search paths:                          Programs Exercises.  (line  70)
 * search paths, for source files <1>:    Programs Exercises.  (line  70)
-* search paths <1>:                      PC Using.            (line  13)
-* search paths, for source files <2>:    PC Using.            (line  13)
+* search paths <1>:                      PC Using.            (line  12)
+* search paths, for source files <2>:    PC Using.            (line  12)
 * search paths <2>:                      VMS Running.         (line  57)
 * search paths, for source files <3>:    VMS Running.         (line  57)
 * searching, files for regular expressions: Egrep Program.    (line   6)
@@ -38457,7 +38454,7 @@ Index
                                                               (line  19)
 * semicolon (;), separating statements in actions <2>: Statements.
                                                               (line  10)
-* semicolon (;), AWKPATH variable and:   PC Using.            (line  13)
+* semicolon (;), AWKPATH variable and:   PC Using.            (line  12)
 * separators, for records:               awk split records.   (line   6)
 * separators, for records <1>:           awk split records.   (line  85)
 * separators, for records, regular expressions as: awk split records.
@@ -38554,7 +38551,7 @@ Index
 * sidebar, Syntactic Ambiguities Between /= and Regular Expressions: 
Assignment Ops.
                                                               (line 148)
 * sidebar, Operator Evaluation Order:    Increment Ops.       (line  58)
-* sidebar, Changing NR and FNR:          Auto-set.            (line 404)
+* sidebar, Changing NR and FNR:          Auto-set.            (line 402)
 * sidebar, Matching the Null String:     String Functions.    (line 561)
 * sidebar, Interactive Versus Noninteractive Buffering: I/O Functions.
                                                               (line  73)
@@ -38712,9 +38709,9 @@ Index
 * substr:                                String Functions.    (line 499)
 * substring:                             String Functions.    (line 499)
 * Sumner, Andrew:                        Other Versions.      (line  64)
-* supplementary groups of gawk process:  Auto-set.            (line 289)
+* supplementary groups of gawk process:  Auto-set.            (line 287)
 * switch statement:                      Switch Statement.    (line   6)
-* SYMTAB array:                          Auto-set.            (line 349)
+* SYMTAB array:                          Auto-set.            (line 347)
 * syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops.
                                                               (line 150)
 * system:                                I/O Functions.       (line 105)
@@ -38933,10 +38930,10 @@ Index
 * variables, global, for library functions: Library Names.    (line  11)
 * variables, private:                    Library Names.       (line  11)
 * variables <1>:                         Basic Data Typing.   (line   6)
-* version of, gawk:                      Auto-set.            (line 259)
-* version of, GNU MP library:            Auto-set.            (line 267)
-* version of, GNU MPFR library:          Auto-set.            (line 269)
-* version of, gawk extension API:        Auto-set.            (line 284)
+* version of, gawk:                      Auto-set.            (line 257)
+* version of, GNU MP library:            Auto-set.            (line 265)
+* version of, GNU MPFR library:          Auto-set.            (line 267)
+* version of, gawk extension API:        Auto-set.            (line 282)
 * vertical bar (|):                      Regexp Operator Details.
                                                               (line  66)
 * vertical bar (|), | operator (I/O):    Getline/Pipe.        (line  10)
@@ -39223,401 +39220,401 @@ Node: Exit Statement469789
 Node: Built-in Variables472192
 Node: User-modified473325
 Node: Auto-set481092
-Ref: Auto-set-Footnote-1497859
-Ref: Auto-set-Footnote-2498065
-Node: ARGC and ARGV498121
-Node: Pattern Action Summary502334
-Node: Arrays504764
-Node: Array Basics506093
-Node: Array Intro506937
-Ref: figure-array-elements508912
-Ref: Array Intro-Footnote-1511617
-Node: Reference to Elements511745
-Node: Assigning Elements514209
-Node: Array Example514700
-Node: Scanning an Array516654
-Node: Controlling Scanning519676
-Ref: Controlling Scanning-Footnote-1526132
-Node: Numeric Array Subscripts526448
-Node: Uninitialized Subscripts528632
-Node: Delete530251
-Ref: Delete-Footnote-1533003
-Node: Multidimensional533060
-Node: Multiscanning536155
-Node: Arrays of Arrays537746
-Node: Arrays Summary542514
-Node: Functions544607
-Node: Built-in545645
-Node: Calling Built-in546798
-Node: Boolean Functions548794
-Node: Numeric Functions549348
-Ref: Numeric Functions-Footnote-1553375
-Ref: Numeric Functions-Footnote-2554023
-Ref: Numeric Functions-Footnote-3554071
-Node: String Functions554343
-Ref: String Functions-Footnote-1579185
-Ref: String Functions-Footnote-2579313
-Ref: String Functions-Footnote-3579561
-Node: Gory Details579648
-Ref: table-sub-escapes581439
-Ref: table-sub-proposed582959
-Ref: table-posix-sub584323
-Ref: table-gensub-escapes585865
-Ref: Gory Details-Footnote-1586689
-Node: I/O Functions586843
-Ref: table-system-return-values593297
-Ref: I/O Functions-Footnote-1595378
-Ref: I/O Functions-Footnote-2595526
-Node: Time Functions595646
-Ref: Time Functions-Footnote-1606317
-Ref: Time Functions-Footnote-2606385
-Ref: Time Functions-Footnote-3606543
-Ref: Time Functions-Footnote-4606654
-Ref: Time Functions-Footnote-5606766
-Ref: Time Functions-Footnote-6606993
-Node: Bitwise Functions607259
-Ref: table-bitwise-ops607853
-Ref: Bitwise Functions-Footnote-1613917
-Ref: Bitwise Functions-Footnote-2614090
-Node: Type Functions614281
-Node: I18N Functions617701
-Node: User-defined619352
-Node: Definition Syntax620164
-Ref: Definition Syntax-Footnote-1625858
-Node: Function Example625929
-Ref: Function Example-Footnote-1628851
-Node: Function Calling628873
-Node: Calling A Function629461
-Node: Variable Scope630419
-Node: Pass By Value/Reference633413
-Node: Function Caveats636057
-Ref: Function Caveats-Footnote-1638104
-Node: Return Statement638224
-Node: Dynamic Typing641203
-Node: Indirect Calls642133
-Node: Functions Summary653060
-Node: Library Functions655765
-Ref: Library Functions-Footnote-1659372
-Ref: Library Functions-Footnote-2659515
-Node: Library Names659686
-Ref: Library Names-Footnote-1663353
-Ref: Library Names-Footnote-2663576
-Node: General Functions663662
-Node: Strtonum Function664844
-Node: Assert Function667866
-Node: Round Function671192
-Node: Cliff Random Function672732
-Node: Ordinal Functions673748
-Ref: Ordinal Functions-Footnote-1676811
-Ref: Ordinal Functions-Footnote-2677063
-Node: Join Function677273
-Ref: Join Function-Footnote-1679043
-Node: Getlocaltime Function679243
-Node: Readfile Function682985
-Node: Shell Quoting684962
-Node: Isnumeric Function686390
-Node: Data File Management687778
-Node: Filetrans Function688410
-Node: Rewind Function692506
-Node: File Checking694415
-Ref: File Checking-Footnote-1695749
-Node: Empty Files695950
-Node: Ignoring Assigns697929
-Node: Getopt Function699479
-Ref: Getopt Function-Footnote-1714776
-Node: Passwd Functions714976
-Ref: Passwd Functions-Footnote-1723815
-Node: Group Functions723903
-Ref: Group Functions-Footnote-1731801
-Node: Walking Arrays732008
-Node: Library Functions Summary735016
-Node: Library Exercises736422
-Node: Sample Programs736887
-Node: Running Examples737657
-Node: Clones738385
-Node: Cut Program739609
-Node: Egrep Program749749
-Node: Id Program758750
-Node: Split Program768685
-Ref: Split Program-Footnote-1778578
-Node: Tee Program778751
-Node: Uniq Program781541
-Node: Wc Program789129
-Node: Bytes vs. Characters789516
-Node: Using extensions791064
-Node: wc program791818
-Node: Miscellaneous Programs796683
-Node: Dupword Program797896
-Node: Alarm Program799926
-Node: Translate Program804781
-Ref: Translate Program-Footnote-1809346
-Node: Labels Program809616
-Ref: Labels Program-Footnote-1812967
-Node: Word Sorting813051
-Node: History Sorting817123
-Node: Extract Program819348
-Node: Simple Sed827361
-Node: Igawk Program830435
-Ref: Igawk Program-Footnote-1844766
-Ref: Igawk Program-Footnote-2844968
-Ref: Igawk Program-Footnote-3845090
-Node: Anagram Program845205
-Node: Signature Program848267
-Node: Programs Summary849514
-Node: Programs Exercises850728
-Ref: Programs Exercises-Footnote-1854858
-Node: Advanced Features854944
-Node: Nondecimal Data857341
-Node: Boolean Typed Values858939
-Node: Array Sorting860820
-Node: Controlling Array Traversal861525
-Ref: Controlling Array Traversal-Footnote-1869893
-Node: Array Sorting Functions870011
-Ref: Array Sorting Functions-Footnote-1875922
-Node: Two-way I/O876118
-Ref: Two-way I/O-Footnote-1883844
-Ref: Two-way I/O-Footnote-2884031
-Node: TCP/IP Networking884113
-Node: Profiling887189
-Node: Persistent Memory896495
-Ref: Persistent Memory-Footnote-1902664
-Node: Extension Philosophy902791
-Node: Advanced Features Summary904278
-Node: Internationalization906450
-Node: I18N and L10N908124
-Node: Explaining gettext908811
-Ref: Explaining gettext-Footnote-1914703
-Ref: Explaining gettext-Footnote-2914888
-Node: Programmer i18n915053
-Ref: Programmer i18n-Footnote-1920002
-Node: Translator i18n920051
-Node: String Extraction920845
-Ref: String Extraction-Footnote-1921977
-Node: Printf Ordering922063
-Ref: Printf Ordering-Footnote-1924849
-Node: I18N Portability924913
-Ref: I18N Portability-Footnote-1927369
-Node: I18N Example927432
-Ref: I18N Example-Footnote-1930707
-Ref: I18N Example-Footnote-2930780
-Node: Gawk I18N930889
-Node: I18N Summary931511
-Node: Debugger932852
-Node: Debugging933852
-Node: Debugging Concepts934293
-Node: Debugging Terms936102
-Node: Awk Debugging938677
-Ref: Awk Debugging-Footnote-1939622
-Node: Sample Debugging Session939754
-Node: Debugger Invocation940288
-Node: Finding The Bug941674
-Node: List of Debugger Commands948148
-Node: Breakpoint Control949481
-Node: Debugger Execution Control953175
-Node: Viewing And Changing Data956537
-Node: Execution Stack960078
-Node: Debugger Info961715
-Node: Miscellaneous Debugger Commands965786
-Node: Readline Support970848
-Node: Limitations971744
-Node: Debugging Summary974298
-Node: Namespaces975577
-Node: Global Namespace976688
-Node: Qualified Names978086
-Node: Default Namespace979085
-Node: Changing The Namespace979826
-Node: Naming Rules981440
-Node: Internal Name Management983288
-Node: Namespace Example984330
-Node: Namespace And Features986892
-Node: Namespace Summary988327
-Node: Arbitrary Precision Arithmetic989804
-Node: Computer Arithmetic991291
-Ref: table-numeric-ranges995057
-Ref: table-floating-point-ranges995551
-Ref: Computer Arithmetic-Footnote-1996210
-Node: Math Definitions996267
-Ref: table-ieee-formats999243
-Node: MPFR features999811
-Node: MPFR On Parole1000256
-Ref: MPFR On Parole-Footnote-11001085
-Node: MPFR Intro1001240
-Node: FP Math Caution1002879
-Ref: FP Math Caution-Footnote-11003951
-Node: Inexactness of computations1004320
-Node: Inexact representation1005351
-Node: Comparing FP Values1006711
-Node: Errors accumulate1007952
-Node: Strange values1009408
-Ref: Strange values-Footnote-11011996
-Node: Getting Accuracy1012101
-Node: Try To Round1014811
-Node: Setting precision1015710
-Ref: table-predefined-precision-strings1016407
-Node: Setting the rounding mode1018238
-Ref: table-gawk-rounding-modes1018612
-Ref: Setting the rounding mode-Footnote-11022544
-Node: Arbitrary Precision Integers1022723
-Ref: Arbitrary Precision Integers-Footnote-11025898
-Node: Checking for MPFR1026047
-Node: POSIX Floating Point Problems1027521
-Ref: POSIX Floating Point Problems-Footnote-11032174
-Node: Floating point summary1032212
-Node: Dynamic Extensions1034402
-Node: Extension Intro1035955
-Node: Plugin License1037221
-Node: Extension Mechanism Outline1038018
-Ref: figure-load-extension1038457
-Ref: figure-register-new-function1040023
-Ref: figure-call-new-function1041116
-Node: Extension API Description1043179
-Node: Extension API Functions Introduction1044892
-Ref: table-api-std-headers1046728
-Node: General Data Types1050978
-Ref: General Data Types-Footnote-11059684
-Node: Memory Allocation Functions1059983
-Ref: Memory Allocation Functions-Footnote-11064484
-Node: Constructor Functions1064583
-Node: API Ownership of MPFR and GMP Values1068236
-Node: Registration Functions1069769
-Node: Extension Functions1070469
-Node: Exit Callback Functions1075791
-Node: Extension Version String1077041
-Node: Input Parsers1077704
-Node: Output Wrappers1090425
-Node: Two-way processors1094937
-Node: Printing Messages1097202
-Ref: Printing Messages-Footnote-11098373
-Node: Updating ERRNO1098526
-Node: Requesting Values1099265
-Ref: table-value-types-returned1100002
-Node: Accessing Parameters1101111
-Node: Symbol Table Access1102348
-Node: Symbol table by name1102860
-Ref: Symbol table by name-Footnote-11105885
-Node: Symbol table by cookie1106013
-Ref: Symbol table by cookie-Footnote-11110198
-Node: Cached values1110262
-Ref: Cached values-Footnote-11113798
-Node: Array Manipulation1113951
-Ref: Array Manipulation-Footnote-11115042
-Node: Array Data Types1115079
-Ref: Array Data Types-Footnote-11117737
-Node: Array Functions1117829
-Node: Flattening Arrays1122614
-Node: Creating Arrays1129590
-Node: Redirection API1134357
-Node: Extension API Variables1137190
-Node: Extension Versioning1137901
-Ref: gawk-api-version1138330
-Node: Extension GMP/MPFR Versioning1140062
-Node: Extension API Informational Variables1141690
-Node: Extension API Boilerplate1142763
-Node: Changes from API V11146737
-Node: Finding Extensions1148309
-Node: Extension Example1148868
-Node: Internal File Description1149666
-Node: Internal File Ops1153746
-Ref: Internal File Ops-Footnote-11165096
-Node: Using Internal File Ops1165236
-Ref: Using Internal File Ops-Footnote-11167619
-Node: Extension Samples1167893
-Node: Extension Sample File Functions1169422
-Node: Extension Sample Fnmatch1177071
-Node: Extension Sample Fork1178558
-Node: Extension Sample Inplace1179776
-Node: Extension Sample Ord1183402
-Node: Extension Sample Readdir1184238
-Ref: table-readdir-file-types1185127
-Node: Extension Sample Revout1186195
-Node: Extension Sample Rev2way1186784
-Node: Extension Sample Read write array1187524
-Node: Extension Sample Readfile1190689
-Node: Extension Sample Time1191784
-Node: Extension Sample API Tests1193536
-Node: gawkextlib1194028
-Node: Extension summary1196946
-Node: Extension Exercises1200648
-Node: Language History1201890
-Node: V7/SVR3.11203546
-Node: SVR41205698
-Node: POSIX1207132
-Node: BTL1208513
-Node: POSIX/GNU1209242
-Node: Feature History1215131
-Node: Common Extensions1232760
-Node: Ranges and Locales1234043
-Ref: Ranges and Locales-Footnote-11238659
-Ref: Ranges and Locales-Footnote-21238686
-Ref: Ranges and Locales-Footnote-31238921
-Node: Contributors1239144
-Node: History summary1245141
-Node: Installation1246521
-Node: Gawk Distribution1247465
-Node: Getting1247949
-Node: Extracting1248912
-Node: Distribution contents1250550
-Node: Unix Installation1257611
-Node: Quick Installation1258415
-Node: Compiling with MPFR1260835
-Node: Shell Startup Files1261525
-Node: Additional Configuration Options1262614
-Node: Configuration Philosophy1264929
-Node: Compiling from Git1267325
-Node: Building the Documentation1267880
-Node: Non-Unix Installation1269264
-Node: PC Installation1269724
-Node: PC Binary Installation1270562
-Node: PC Compiling1271435
-Node: PC Using1272552
-Node: Cygwin1276105
-Node: MSYS1277329
-Node: VMS Installation1277931
-Node: VMS Compilation1278650
-Ref: VMS Compilation-Footnote-11279879
-Node: VMS Dynamic Extensions1279937
-Node: VMS Installation Details1281622
-Node: VMS Running1283884
-Node: VMS GNV1288163
-Node: Bugs1288877
-Node: Bug definition1289789
-Node: Bug address1292725
-Node: Usenet1295913
-Node: Performance bugs1297102
-Node: Asking for help1300023
-Node: Maintainers1301990
-Node: Other Versions1303091
-Node: Installation summary1311361
-Node: Notes1312725
-Node: Compatibility Mode1313519
-Node: Additions1314301
-Node: Accessing The Source1315226
-Node: Adding Code1316663
-Node: New Ports1323478
-Node: Derived Files1327853
-Ref: Derived Files-Footnote-11333513
-Ref: Derived Files-Footnote-21333548
-Ref: Derived Files-Footnote-31334146
-Node: Future Extensions1334260
-Node: Implementation Limitations1334918
-Node: Extension Design1336128
-Node: Old Extension Problems1337272
-Ref: Old Extension Problems-Footnote-11338790
-Node: Extension New Mechanism Goals1338847
-Ref: Extension New Mechanism Goals-Footnote-11342211
-Node: Extension Other Design Decisions1342400
-Node: Extension Future Growth1344513
-Node: Notes summary1345119
-Node: Basic Concepts1346277
-Node: Basic High Level1346958
-Ref: figure-general-flow1347240
-Ref: figure-process-flow1347926
-Ref: Basic High Level-Footnote-11351228
-Node: Basic Data Typing1351413
-Node: Glossary1354741
-Node: Copying1386628
-Node: GNU Free Documentation License1424171
-Node: Index1449291
+Ref: Auto-set-Footnote-1497794
+Ref: Auto-set-Footnote-2498000
+Node: ARGC and ARGV498056
+Node: Pattern Action Summary502269
+Node: Arrays504699
+Node: Array Basics506028
+Node: Array Intro506872
+Ref: figure-array-elements508847
+Ref: Array Intro-Footnote-1511552
+Node: Reference to Elements511680
+Node: Assigning Elements514144
+Node: Array Example514635
+Node: Scanning an Array516589
+Node: Controlling Scanning519611
+Ref: Controlling Scanning-Footnote-1526067
+Node: Numeric Array Subscripts526383
+Node: Uninitialized Subscripts528567
+Node: Delete530186
+Ref: Delete-Footnote-1532938
+Node: Multidimensional532995
+Node: Multiscanning536090
+Node: Arrays of Arrays537681
+Node: Arrays Summary542449
+Node: Functions544542
+Node: Built-in545580
+Node: Calling Built-in546733
+Node: Boolean Functions548729
+Node: Numeric Functions549283
+Ref: Numeric Functions-Footnote-1553310
+Ref: Numeric Functions-Footnote-2553958
+Ref: Numeric Functions-Footnote-3554006
+Node: String Functions554278
+Ref: String Functions-Footnote-1579120
+Ref: String Functions-Footnote-2579248
+Ref: String Functions-Footnote-3579496
+Node: Gory Details579583
+Ref: table-sub-escapes581374
+Ref: table-sub-proposed582894
+Ref: table-posix-sub584258
+Ref: table-gensub-escapes585800
+Ref: Gory Details-Footnote-1586624
+Node: I/O Functions586778
+Ref: table-system-return-values593232
+Ref: I/O Functions-Footnote-1595313
+Ref: I/O Functions-Footnote-2595461
+Node: Time Functions595581
+Ref: Time Functions-Footnote-1606252
+Ref: Time Functions-Footnote-2606320
+Ref: Time Functions-Footnote-3606478
+Ref: Time Functions-Footnote-4606589
+Ref: Time Functions-Footnote-5606701
+Ref: Time Functions-Footnote-6606928
+Node: Bitwise Functions607194
+Ref: table-bitwise-ops607788
+Ref: Bitwise Functions-Footnote-1613852
+Ref: Bitwise Functions-Footnote-2614025
+Node: Type Functions614216
+Node: I18N Functions617636
+Node: User-defined619287
+Node: Definition Syntax620099
+Ref: Definition Syntax-Footnote-1625793
+Node: Function Example625864
+Ref: Function Example-Footnote-1628786
+Node: Function Calling628808
+Node: Calling A Function629396
+Node: Variable Scope630354
+Node: Pass By Value/Reference633348
+Node: Function Caveats635992
+Ref: Function Caveats-Footnote-1638039
+Node: Return Statement638159
+Node: Dynamic Typing641138
+Node: Indirect Calls642068
+Node: Functions Summary652995
+Node: Library Functions655700
+Ref: Library Functions-Footnote-1659307
+Ref: Library Functions-Footnote-2659450
+Node: Library Names659621
+Ref: Library Names-Footnote-1663288
+Ref: Library Names-Footnote-2663511
+Node: General Functions663597
+Node: Strtonum Function664779
+Node: Assert Function667801
+Node: Round Function671127
+Node: Cliff Random Function672667
+Node: Ordinal Functions673683
+Ref: Ordinal Functions-Footnote-1676746
+Ref: Ordinal Functions-Footnote-2676998
+Node: Join Function677208
+Ref: Join Function-Footnote-1678978
+Node: Getlocaltime Function679178
+Node: Readfile Function682920
+Node: Shell Quoting684897
+Node: Isnumeric Function686325
+Node: Data File Management687713
+Node: Filetrans Function688345
+Node: Rewind Function692441
+Node: File Checking694350
+Ref: File Checking-Footnote-1695684
+Node: Empty Files695885
+Node: Ignoring Assigns697864
+Node: Getopt Function699414
+Ref: Getopt Function-Footnote-1714711
+Node: Passwd Functions714911
+Ref: Passwd Functions-Footnote-1723750
+Node: Group Functions723838
+Ref: Group Functions-Footnote-1731736
+Node: Walking Arrays731943
+Node: Library Functions Summary734951
+Node: Library Exercises736357
+Node: Sample Programs736822
+Node: Running Examples737592
+Node: Clones738320
+Node: Cut Program739544
+Node: Egrep Program749684
+Node: Id Program758685
+Node: Split Program768620
+Ref: Split Program-Footnote-1778513
+Node: Tee Program778686
+Node: Uniq Program781476
+Node: Wc Program789064
+Node: Bytes vs. Characters789451
+Node: Using extensions790999
+Node: wc program791753
+Node: Miscellaneous Programs796618
+Node: Dupword Program797831
+Node: Alarm Program799861
+Node: Translate Program804716
+Ref: Translate Program-Footnote-1809281
+Node: Labels Program809551
+Ref: Labels Program-Footnote-1812902
+Node: Word Sorting812986
+Node: History Sorting817058
+Node: Extract Program819283
+Node: Simple Sed827296
+Node: Igawk Program830370
+Ref: Igawk Program-Footnote-1844701
+Ref: Igawk Program-Footnote-2844903
+Ref: Igawk Program-Footnote-3845025
+Node: Anagram Program845140
+Node: Signature Program848202
+Node: Programs Summary849449
+Node: Programs Exercises850663
+Ref: Programs Exercises-Footnote-1854793
+Node: Advanced Features854879
+Node: Nondecimal Data857276
+Node: Boolean Typed Values858874
+Node: Array Sorting860755
+Node: Controlling Array Traversal861460
+Ref: Controlling Array Traversal-Footnote-1869828
+Node: Array Sorting Functions869946
+Ref: Array Sorting Functions-Footnote-1875857
+Node: Two-way I/O876053
+Ref: Two-way I/O-Footnote-1883779
+Ref: Two-way I/O-Footnote-2883966
+Node: TCP/IP Networking884048
+Node: Profiling887124
+Node: Persistent Memory896430
+Ref: Persistent Memory-Footnote-1902599
+Node: Extension Philosophy902726
+Node: Advanced Features Summary904213
+Node: Internationalization906385
+Node: I18N and L10N908059
+Node: Explaining gettext908746
+Ref: Explaining gettext-Footnote-1914638
+Ref: Explaining gettext-Footnote-2914823
+Node: Programmer i18n914988
+Ref: Programmer i18n-Footnote-1919937
+Node: Translator i18n919986
+Node: String Extraction920780
+Ref: String Extraction-Footnote-1921912
+Node: Printf Ordering921998
+Ref: Printf Ordering-Footnote-1924784
+Node: I18N Portability924848
+Ref: I18N Portability-Footnote-1927304
+Node: I18N Example927367
+Ref: I18N Example-Footnote-1930642
+Ref: I18N Example-Footnote-2930715
+Node: Gawk I18N930824
+Node: I18N Summary931446
+Node: Debugger932787
+Node: Debugging933787
+Node: Debugging Concepts934228
+Node: Debugging Terms936037
+Node: Awk Debugging938612
+Ref: Awk Debugging-Footnote-1939557
+Node: Sample Debugging Session939689
+Node: Debugger Invocation940223
+Node: Finding The Bug941609
+Node: List of Debugger Commands948083
+Node: Breakpoint Control949416
+Node: Debugger Execution Control953110
+Node: Viewing And Changing Data956472
+Node: Execution Stack960013
+Node: Debugger Info961650
+Node: Miscellaneous Debugger Commands965721
+Node: Readline Support970783
+Node: Limitations971679
+Node: Debugging Summary974233
+Node: Namespaces975512
+Node: Global Namespace976623
+Node: Qualified Names978021
+Node: Default Namespace979020
+Node: Changing The Namespace979761
+Node: Naming Rules981375
+Node: Internal Name Management983223
+Node: Namespace Example984265
+Node: Namespace And Features986827
+Node: Namespace Summary988262
+Node: Arbitrary Precision Arithmetic989739
+Node: Computer Arithmetic991226
+Ref: table-numeric-ranges994992
+Ref: table-floating-point-ranges995486
+Ref: Computer Arithmetic-Footnote-1996145
+Node: Math Definitions996202
+Ref: table-ieee-formats999178
+Node: MPFR features999746
+Node: MPFR On Parole1000191
+Ref: MPFR On Parole-Footnote-11001020
+Node: MPFR Intro1001175
+Node: FP Math Caution1002814
+Ref: FP Math Caution-Footnote-11003886
+Node: Inexactness of computations1004255
+Node: Inexact representation1005286
+Node: Comparing FP Values1006646
+Node: Errors accumulate1007887
+Node: Strange values1009343
+Ref: Strange values-Footnote-11011931
+Node: Getting Accuracy1012036
+Node: Try To Round1014746
+Node: Setting precision1015645
+Ref: table-predefined-precision-strings1016342
+Node: Setting the rounding mode1018173
+Ref: table-gawk-rounding-modes1018547
+Ref: Setting the rounding mode-Footnote-11022479
+Node: Arbitrary Precision Integers1022658
+Ref: Arbitrary Precision Integers-Footnote-11025833
+Node: Checking for MPFR1025982
+Node: POSIX Floating Point Problems1027456
+Ref: POSIX Floating Point Problems-Footnote-11032109
+Node: Floating point summary1032147
+Node: Dynamic Extensions1034337
+Node: Extension Intro1035890
+Node: Plugin License1037156
+Node: Extension Mechanism Outline1037953
+Ref: figure-load-extension1038392
+Ref: figure-register-new-function1039958
+Ref: figure-call-new-function1041051
+Node: Extension API Description1043114
+Node: Extension API Functions Introduction1044827
+Ref: table-api-std-headers1046663
+Node: General Data Types1050913
+Ref: General Data Types-Footnote-11059619
+Node: Memory Allocation Functions1059918
+Ref: Memory Allocation Functions-Footnote-11064419
+Node: Constructor Functions1064518
+Node: API Ownership of MPFR and GMP Values1068171
+Node: Registration Functions1069704
+Node: Extension Functions1070404
+Node: Exit Callback Functions1075726
+Node: Extension Version String1076976
+Node: Input Parsers1077639
+Node: Output Wrappers1090360
+Node: Two-way processors1094872
+Node: Printing Messages1097137
+Ref: Printing Messages-Footnote-11098308
+Node: Updating ERRNO1098461
+Node: Requesting Values1099200
+Ref: table-value-types-returned1099937
+Node: Accessing Parameters1101046
+Node: Symbol Table Access1102283
+Node: Symbol table by name1102795
+Ref: Symbol table by name-Footnote-11105820
+Node: Symbol table by cookie1105948
+Ref: Symbol table by cookie-Footnote-11110133
+Node: Cached values1110197
+Ref: Cached values-Footnote-11113733
+Node: Array Manipulation1113886
+Ref: Array Manipulation-Footnote-11114977
+Node: Array Data Types1115014
+Ref: Array Data Types-Footnote-11117672
+Node: Array Functions1117764
+Node: Flattening Arrays1122549
+Node: Creating Arrays1129525
+Node: Redirection API1134292
+Node: Extension API Variables1137125
+Node: Extension Versioning1137836
+Ref: gawk-api-version1138265
+Node: Extension GMP/MPFR Versioning1139997
+Node: Extension API Informational Variables1141625
+Node: Extension API Boilerplate1142698
+Node: Changes from API V11146672
+Node: Finding Extensions1148244
+Node: Extension Example1148803
+Node: Internal File Description1149601
+Node: Internal File Ops1153681
+Ref: Internal File Ops-Footnote-11165031
+Node: Using Internal File Ops1165171
+Ref: Using Internal File Ops-Footnote-11167554
+Node: Extension Samples1167828
+Node: Extension Sample File Functions1169357
+Node: Extension Sample Fnmatch1177006
+Node: Extension Sample Fork1178493
+Node: Extension Sample Inplace1179711
+Node: Extension Sample Ord1183337
+Node: Extension Sample Readdir1184173
+Ref: table-readdir-file-types1185062
+Node: Extension Sample Revout1186130
+Node: Extension Sample Rev2way1186719
+Node: Extension Sample Read write array1187459
+Node: Extension Sample Readfile1190624
+Node: Extension Sample Time1191719
+Node: Extension Sample API Tests1193471
+Node: gawkextlib1193963
+Node: Extension summary1196881
+Node: Extension Exercises1200583
+Node: Language History1201825
+Node: V7/SVR3.11203481
+Node: SVR41205633
+Node: POSIX1207067
+Node: BTL1208448
+Node: POSIX/GNU1209177
+Node: Feature History1215083
+Node: Common Extensions1232712
+Node: Ranges and Locales1233995
+Ref: Ranges and Locales-Footnote-11238611
+Ref: Ranges and Locales-Footnote-21238638
+Ref: Ranges and Locales-Footnote-31238873
+Node: Contributors1239096
+Node: History summary1245093
+Node: Installation1246473
+Node: Gawk Distribution1247417
+Node: Getting1247901
+Node: Extracting1248864
+Node: Distribution contents1250502
+Node: Unix Installation1257563
+Node: Quick Installation1258367
+Node: Compiling with MPFR1260787
+Node: Shell Startup Files1261477
+Node: Additional Configuration Options1262566
+Node: Configuration Philosophy1264881
+Node: Compiling from Git1267277
+Node: Building the Documentation1267832
+Node: Non-Unix Installation1269216
+Node: PC Installation1269676
+Node: PC Binary Installation1270514
+Node: PC Compiling1271387
+Node: PC Using1272504
+Node: Cygwin1276000
+Node: MSYS1277224
+Node: VMS Installation1277826
+Node: VMS Compilation1278545
+Ref: VMS Compilation-Footnote-11279774
+Node: VMS Dynamic Extensions1279832
+Node: VMS Installation Details1281517
+Node: VMS Running1283779
+Node: VMS GNV1288058
+Node: Bugs1288772
+Node: Bug definition1289684
+Node: Bug address1292620
+Node: Usenet1295808
+Node: Performance bugs1296997
+Node: Asking for help1299918
+Node: Maintainers1301885
+Node: Other Versions1302892
+Node: Installation summary1311162
+Node: Notes1312519
+Node: Compatibility Mode1313313
+Node: Additions1314095
+Node: Accessing The Source1315020
+Node: Adding Code1316457
+Node: New Ports1323272
+Node: Derived Files1327647
+Ref: Derived Files-Footnote-11333307
+Ref: Derived Files-Footnote-21333342
+Ref: Derived Files-Footnote-31333940
+Node: Future Extensions1334054
+Node: Implementation Limitations1334712
+Node: Extension Design1335922
+Node: Old Extension Problems1337066
+Ref: Old Extension Problems-Footnote-11338584
+Node: Extension New Mechanism Goals1338641
+Ref: Extension New Mechanism Goals-Footnote-11342005
+Node: Extension Other Design Decisions1342194
+Node: Extension Future Growth1344307
+Node: Notes summary1344913
+Node: Basic Concepts1346071
+Node: Basic High Level1346752
+Ref: figure-general-flow1347034
+Ref: figure-process-flow1347720
+Ref: Basic High Level-Footnote-11351022
+Node: Basic Data Typing1351207
+Node: Glossary1354535
+Node: Copying1386422
+Node: GNU Free Documentation License1423965
+Node: Index1449085
 
 End Tag Table
 
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 67a12eba..62a04d37 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -16422,9 +16422,8 @@ This element gives a string indicating the platform for 
which
 
 @c nested table
 @table @code
-@item "djgpp"
-@itemx "mingw"
-Microsoft Windows, using either DJGPP or MinGW, respectively.
+@item "mingw"
+Microsoft Windows, using MinGW.
 
 @item "os390"
 OS/390.
@@ -41090,7 +41089,8 @@ for @command{gawk} @value{PVERSION} 5.2:
 @item
 OS/2
 
-@c add more removed systems here
+@item
+DJGPP
 
 @end itemize
 
@@ -43130,14 +43130,13 @@ type @samp{make mingw32}.
 @cindex operating systems @subentry PC, @command{gawk} on
 @cindex PC operating systems, @command{gawk} on
 
-Information in this section applies to the MinGW and
-DJGPP ports of @command{gawk}. @xref{Cygwin} for information
+Information in this section applies to the MinGW
+port of @command{gawk}. @xref{Cygwin} for information
 about the Cygwin port.
 
 Under MS-Windows, the MinGW environment supports
 both the @samp{|&} operator and TCP/IP networking
 (@pxref{TCP/IP Networking}).
-The DJGPP environment does not support @samp{|&}.
 
 @cindex search paths
 @cindex search paths @subentry for source files
@@ -44038,8 +44037,6 @@ The people maintaining the various @command{gawk} ports 
are:
 @multitable {MS-Windows with MinGW} 
{123456789012345678901234567890123456789001234567890}
 @item Unix and POSIX systems @tab Arnold Robbins, 
@EMAIL{arnold@@skeeve.com,arnold at skeeve dot com}
 
-@item MS-DOS with DJGPP @tab Juan Manuel Guerrero, 
@EMAIL{juan.guerrero@@gmx.de, juan dot guerrero at gmx dot de}
-
 @item MS-Windows with MinGW @tab Eli Zaretskii, @EMAIL{eliz@@gnu.org,eliz at 
gnu dot org}
 
 @item VMS @tab John Malmberg, @EMAIL{wb8tyw@@qsl.net,wb8tyw at qsl dot net}
@@ -44349,7 +44346,7 @@ the file.
 @item
 @command{gawk} may be built on non-POSIX systems as well. The currently
 supported systems are MS-Windows using
-MSYS, MSYS2, DJGPP, MinGW, and Cygwin,
+MSYS, MSYS2, MinGW, and Cygwin,
 and both Vax/VMS and OpenVMS.
 Instructions for each system are included in this @value{APPENDIX}.
 
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index d72665a0..8af244cc 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -4113,7 +4113,7 @@ the arbitrary precision arithmetic features in 
@command{gawk}
 are ``on parole.''
 The primary maintainer is no longer willing to support this feature,
 but another member of the development team has stepped up to take it over.
-As long as this situation reamins stable, MPFR will be supported. If it
+As long as this situation remains stable, MPFR will be supported. If it
 changes, the MPFR support will be removed from @command{gawk}.
 @ignore
 If you use this option, @command{gawk} generates a warning message.
@@ -15609,9 +15609,8 @@ This element gives a string indicating the platform for 
which
 
 @c nested table
 @table @code
-@item "djgpp"
-@itemx "mingw"
-Microsoft Windows, using either DJGPP or MinGW, respectively.
+@item "mingw"
+Microsoft Windows, using MinGW.
 
 @item "os390"
 OS/390.
@@ -39933,7 +39932,8 @@ for @command{gawk} @value{PVERSION} 5.2:
 @item
 OS/2
 
-@c add more removed systems here
+@item
+DJGPP
 
 @end itemize
 
@@ -41973,14 +41973,13 @@ type @samp{make mingw32}.
 @cindex operating systems @subentry PC, @command{gawk} on
 @cindex PC operating systems, @command{gawk} on
 
-Information in this section applies to the MinGW and
-DJGPP ports of @command{gawk}. @xref{Cygwin} for information
+Information in this section applies to the MinGW
+port of @command{gawk}. @xref{Cygwin} for information
 about the Cygwin port.
 
 Under MS-Windows, the MinGW environment supports
 both the @samp{|&} operator and TCP/IP networking
 (@pxref{TCP/IP Networking}).
-The DJGPP environment does not support @samp{|&}.
 
 @cindex search paths
 @cindex search paths @subentry for source files
@@ -42881,8 +42880,6 @@ The people maintaining the various @command{gawk} ports 
are:
 @multitable {MS-Windows with MinGW} 
{123456789012345678901234567890123456789001234567890}
 @item Unix and POSIX systems @tab Arnold Robbins, 
@EMAIL{arnold@@skeeve.com,arnold at skeeve dot com}
 
-@item MS-DOS with DJGPP @tab Juan Manuel Guerrero, 
@EMAIL{juan.guerrero@@gmx.de, juan dot guerrero at gmx dot de}
-
 @item MS-Windows with MinGW @tab Eli Zaretskii, @EMAIL{eliz@@gnu.org,eliz at 
gnu dot org}
 
 @item VMS @tab John Malmberg, @EMAIL{wb8tyw@@qsl.net,wb8tyw at qsl dot net}
@@ -43192,7 +43189,7 @@ the file.
 @item
 @command{gawk} may be built on non-POSIX systems as well. The currently
 supported systems are MS-Windows using
-MSYS, MSYS2, DJGPP, MinGW, and Cygwin,
+MSYS, MSYS2, MinGW, and Cygwin,
 and both Vax/VMS and OpenVMS.
 Instructions for each system are included in this @value{APPENDIX}.
 
diff --git a/doc/wordlist b/doc/wordlist
index abb631eb..1f25fc30 100644
--- a/doc/wordlist
+++ b/doc/wordlist
@@ -861,7 +861,6 @@ dircategory
 direntry
 distributable
 div
-djgpp
 dl
 dll
 dlopen
diff --git a/doc/wordlist3 b/doc/wordlist3
index cbe0cdcb..d8846134 100644
--- a/doc/wordlist3
+++ b/doc/wordlist3
@@ -21,6 +21,7 @@ GMP
 IGNORECASE
 IPv
 ISBN
+Jun
 LC
 MPFR
 MSEC
diff --git a/eval.c b/eval.c
index ddbf87e3..8fde6b39 100644
--- a/eval.c
+++ b/eval.c
@@ -543,7 +543,6 @@ posix_compare(NODE *s1, NODE *s2)
                s1->stptr[s1->stlen] = save1;
                s2->stptr[s2->stlen] = save2;
        }
-#if ! defined(__DJGPP__)
        else {
                /* Similar logic, using wide characters */
                const wchar_t *p1, *p2;
@@ -576,7 +575,6 @@ posix_compare(NODE *s1, NODE *s2)
                        }
                }
        }
-#endif
 
        return ret;
 }
diff --git a/gawkmisc.c b/gawkmisc.c
index 165e15c6..8a7bf0e5 100644
--- a/gawkmisc.c
+++ b/gawkmisc.c
@@ -32,12 +32,12 @@
 
 /* some old compilers don't grok #elif. sigh */
 
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 #include "pc/gawkmisc.pc"
-#else /* not __DJGPP__, not __MINGW32__ */
+#else /* not __MINGW32__ */
 #if defined(VMS)
 #include "vms/gawkmisc.vms"
 #else /* not VMS */
 #include "posix/gawkmisc.c"
 #endif /* not VMS */
-#endif /* not __DJGPP__, not __MINGW32__ */
+#endif /* not __MINGW32__ */
diff --git a/io.c b/io.c
index 8fac000a..91fa2225 100644
--- a/io.c
+++ b/io.c
@@ -117,10 +117,6 @@
 #define ENFILE EMFILE
 #endif
 
-#if defined(__DJGPP__)
-#define closemaybesocket(fd)   close(fd)
-#endif
-
 #if defined(VMS)
 #include <ssdef.h>
 #ifndef SS$_EXBYTLM
@@ -183,10 +179,6 @@
 #undef TANDEM  /* AIX defines this in one of its header files */
 #endif
 
-#ifdef __DJGPP__
-#define PIPES_SIMULATED
-#endif
-
 #ifdef __MINGW32__
 # ifndef PIPES_SIMULATED
 #  define pipe(fds)    _pipe(fds, 0, O_NOINHERIT)
@@ -349,7 +341,7 @@ init_io()
 }
 
 
-#if defined(__DJGPP__) || defined(__MINGW32__) || defined(__CYGWIN__)
+#if defined(__MINGW32__) || defined(__CYGWIN__)
 /* binmode --- convert BINMODE to string for fopen */
 
 static const char *
diff --git a/main.c b/main.c
index 53126435..999361c3 100644
--- a/main.c
+++ b/main.c
@@ -1862,8 +1862,6 @@ platform_name()
        return "vms";
 #elif defined(__MINGW32__)
        return "mingw";
-#elif defined(__DJGPP__)
-       return "djgpp";
 #elif defined(USE_EBCDIC)
        return "os390";
 #else
diff --git a/missing_d/ChangeLog b/missing_d/ChangeLog
index f645dd06..6ca385e6 100644
--- a/missing_d/ChangeLog
+++ b/missing_d/ChangeLog
@@ -1,3 +1,7 @@
+2022-07-06         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * snprintf.c: Remove stuff related to __DJGPP__.
+
 2022-07-03         Arnold D. Robbins     <arnold@skeeve.com>
 
        * snprintf.c: Remove stuff related to __EMX__.
diff --git a/missing_d/snprintf.c b/missing_d/snprintf.c
index dfe57c6b..af63dff7 100644
--- a/missing_d/snprintf.c
+++ b/missing_d/snprintf.c
@@ -86,7 +86,7 @@ safe_tmpfile (void)
        if ((fd = mkstemp (tmpfilename)) < 0)
                return NULL;
 
-#if ! defined(__DJGPP__) && ! defined(MSDOS) && ! defined(_MSC_VER) \
+#if ! defined(MSDOS) && ! defined(_MSC_VER) \
        && ! defined(_WIN32) && ! defined(__CRTRSXNT__) \
        && ! defined(__MINGW32__) && ! defined(__WIN32__)
        /* If not MS unlink after opening. */
diff --git a/nonposix.h b/nonposix.h
index 80d30da4..92a79504 100644
--- a/nonposix.h
+++ b/nonposix.h
@@ -67,17 +67,10 @@ char *w32_setlocale (int, const char *);
 
 #endif /* __MINGW32__ */
 
-#if defined(VMS) || defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(VMS) || defined(__MINGW32__)
 int getpgrp(void);
 #endif
 
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 int getppid(void);
 #endif
-
-#ifdef __DJGPP__
-/* Prototypes of for Posix functions for which we define replacements
-   in pc/ files.  */
-wint_t btowc (int c);
-wint_t putwc (wchar_t wc, FILE *stream);
-#endif
diff --git a/pc/ChangeLog b/pc/ChangeLog
index 65100263..ddeb8883 100644
--- a/pc/ChangeLog
+++ b/pc/ChangeLog
@@ -1,3 +1,9 @@
+2022-07-06         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * GenMakefileTst.awk, Makefile, Makefile.tst, config.h, config.sed,
+       gawkmisc.pc, getid.c, popen.h: Remove stuff related to DJGPP.
+
+Untracked files:
 2022-07-03         Arnold D. Robbins     <arnold@skeeve.com>
 
        * Makefile, config.h, config.sed, gawkmisc.pc:
diff --git a/pc/GenMakefileTst.awk b/pc/GenMakefileTst.awk
index 964573c9..6176370a 100644
--- a/pc/GenMakefileTst.awk
+++ b/pc/GenMakefileTst.awk
@@ -12,16 +12,6 @@
 
 # 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
@@ -116,11 +106,7 @@ function print_recipe(             i, start)
                start = 2
 
        # print the right warning
-       if (name in djgpp && name in mingw) {
-               print "\t@echo Expect $@ to fail with DJGPP and MinGW."
-       } else if (name in djgpp) {
-               print "\t@echo Expect $@ to fail with DJGPP."
-       } else if (name in mingw) {
+       if (name in mingw) {
                print "\t@echo Expect $@ to fail with MinGW."
        }
 
diff --git a/pc/Makefile b/pc/Makefile
index 1eb1fc9e..f05aae92 100644
--- a/pc/Makefile
+++ b/pc/Makefile
@@ -1,6 +1,5 @@
 # Makefile for gawk (GNU awk)                                      Dec 2010
 #
-# - for GNU C (djgpp)         [32bit protected-mode executable for DOS]
 # - for GNU C (mingw32)              [Windows32 executable for Windows 
9x/NT/2K/XP/7]
 
 # Tested with GNU make on Windows, OS/2 and DOS.
@@ -19,12 +18,6 @@
 default:
        @echo "Enter $(MAK) target "
        @echo " where 'target' is chosen from                          "
-       @echo "  djgpp ... DOS 32-bit exe [GNU C, Delorie, v2]         "
-       @echo "  djgpp-mpfr . Like djgpp, but with MPFR                "
-       @echo "   [You will need to have GNU MPFR library installed.]  "
-       @echo "  djgpp-readline . Like djgpp, but with readline        "
-       @echo "   [You will need to have GNU readline library installed.] "
-       @echo "  djgpp-readline-mpfr . djgpp with readline and MPFR    "
        @echo "  mingw32 . Windows32 exe [Mingw32 GNU C]               "
        @echo "  mingw32-readline . Like mingw32, but with readline    "
        @echo "   [You will need to have GNU readline library installed.] "
@@ -37,11 +30,9 @@ default:
        @echo "  doc ..... Create documentation                        "
 
 # Support dropped in 4.0
-# - for DJGPP v1.x            [DOS 32bit protected-mode executable]
 # - for MS-Visual C/C++ 4.x   [Windows32 executable for Windows 9x/NT]
 # - for Microsoft C 7         [16bit ececutable for DOS]
 # - for Microsoft C 6.00A     [16bit executable for OS/2 or DOS]
-#      @echo "  djgppv1 . DOS 32-bit exe [GNU C, Delorie, v1]         "
 #      @echo "  msc ..... DOS exe [Microsoft C 7 & 8 (AKA 1.52)]      "
 #      @echo "  msc6 .... DOS exe [Microsoft C 6.00a]                 "
 #      @echo "  msc6os2 . OS/2 exe [Microsoft C 6.00a]                "
@@ -103,48 +94,6 @@ VPATH = .;./support;./support/malloc
 # End of general configuration. Some platform-specific configuration
 # notes appear below.
 
-#========================================================================
-#========================== DJGPP =======================================
-#========================================================================
-
-ifneq ($(DJGPP),)
-prefix = /dev/env/DJDIR
-pkgdatadir = $(prefix)/share/awk
-SHLIBEXT = "\"dxe\""
-endif
-LDJG = $(CC) $(LF) -o gawk.exe $(LDRSP) $(LF2)
-BDJG = stubify -g awk.exe | stubedit awk.exe runfile=gawk
-
-djgpp:
-       $(MAK) all \
-       CC=gcc O=.o CF=-O2 \
-       LNK=LDJG LF=-s LF2=-lm \
-       BIND=BDJG
-
-djgpp-debug:
-       $(MAK) all \
-       CC=gcc O=.o CF='-O2 -g' \
-       LNK=LDJG LF2=-lm \
-       BIND=BDJG
-
-djgpp-mpfr:
-       $(MAK) all \
-       CC=gcc O=.o CF='-O2 -DHAVE_MPFR' \
-       LNK=LDJG LF=-s LF2="-lmpfr -lgmp -lm" \
-       BIND=BDJG
-
-djgpp-readline:
-       $(MAK) all \
-       CC=gcc O=.o CF='-O2 -DHAVE_LIBREADLINE' \
-       LNK=LDJG LF=-s LF2="-lreadline -lm" \
-       BIND=BDJG
-
-djgpp-readline-mpfr:
-       $(MAK) all \
-       CC=gcc O=.o CF='-O2 -DHAVE_LIBREADLINE -DHAVE_MPFR' \
-       LNK=LDJG LF=-s LF2="-lreadline -lmpfr -lgmp -lm" \
-       BIND=BDJG
-
 #========================================================================
 #========================== MINGW32 =====================================
 #========================================================================
diff --git a/pc/Makefile.tst b/pc/Makefile.tst
index e07a22ed..9dc6837d 100644
--- a/pc/Makefile.tst
+++ b/pc/Makefile.tst
@@ -315,16 +315,6 @@ NEED_LOCALE_EN = \
 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 \
-       randtest regx8bit strtod sigpipe1 symtab6 timeout
-
-
 # List of tests that fail on MinGW
 EXPECTED_FAIL_MINGW = \
        backbigs1 backsmalls1 clos1way6 devfd devfd1 devfd2 \
@@ -355,7 +345,7 @@ GENTESTS_UNUSED = Makefile.in checknegtime.awk dtdgport.awk 
fix-fmtspcl.awk \
        readall1.awk readall2.awk
 
 
-# List of tests on MinGW or DJGPP that need a different cmp program
+# List of tests on MinGW that need a different cmp program
 NEED_TESTOUTCMP = \
        beginfile2 double2 exit fmttest hsprint posix profile5 space
 
@@ -543,7 +533,6 @@ compare::
 
 inftest::
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @echo This test is very machine specific...
        @-$(AWK) -f "$(srcdir)"/inftest.awk | sed "s/inf/Inf/g" >_$@ || echo 
EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
@@ -585,7 +574,7 @@ devfd::
 # on the command line.
 errno:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -599,7 +588,7 @@ tweakfld::
 # command so that pid.sh is fork'ed as a child before being exec'ed.
 pid::
        @echo $@
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-AWKPATH="$(srcdir)" AWK=$(AWKPROG) $(SHELL) "$(srcdir)"/pid.sh $$$$ > 
_`basename $@` ; :
        @-$(CMP) "$(srcdir)"/pid.ok _`basename $@` && rm -f _`basename $@`
 
@@ -671,23 +660,21 @@ inetmesg::
        @-echo file /etc/services and do "'netstat -a'".
 
 inetechu::
-       @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"}'
 
 inetecht::
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @echo This test is for establishing TCP connections
        @-$(AWK) 'BEGIN {print "" |& "/inet/tcp/0/127.0.0.1/9"}'
 
 inetdayu::
-       @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}'
 
 inetdayt::
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with 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}'
@@ -788,7 +775,6 @@ printfbad2: printfbad2.ok
 
 beginfile1::
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk "$(srcdir)"/$@.awk . 
./no/such/file Makefile  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -890,7 +876,6 @@ mpfrmemok1:
 
 jarebug::
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-"$(srcdir)"/$@.sh "$(AWKPROG)" "$(srcdir)"/$@.awk "$(srcdir)"/$@.in 
"_$@" || echo EXIT CODE: $$? >> _$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -1101,7 +1086,6 @@ charasbytes:
 
 symtab6:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk > _$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -1158,7 +1142,7 @@ watchpoint1:
 
 pty1:
        @echo $@
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-case `uname` in \
        *[Oo][Ss]/390*) : ;; \
        *) AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@ ; \
@@ -1167,7 +1151,7 @@ pty1:
 
 pty2:
        @echo $@
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-case `uname` in \
        *[Oo][Ss]/390*) : ;; \
        *) AWKPATH="$(srcdir)" $(AWK) -f $@.awk | od -c | $(AWK) '{ $$1 = $$1 ; 
print }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ ; \
@@ -1176,7 +1160,7 @@ pty2:
 
 ignrcas3::
        @echo $@
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-if locale -a | grep ell_GRC.1253 > /dev/null ; then \
        [ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ell_GRC.1253 ; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@ ; \
@@ -1208,7 +1192,6 @@ nsbad_cmd:
 # Use [:] in the regexp to keep MSYS from converting the /'s to \'s.
 nonfatal1:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk 2>&1 | $(AWK) '{print 
gensub(/invalid[:].*$$/, "invalid", 1, $$0)}' >_$@ || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -2140,7 +2123,6 @@ rand:
 
 randtest:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-$(LOCALES) AWK="$(AWKPROG)" "$(srcdir)"/$@.sh  > _$@ 2>&1 || echo 
EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -2310,7 +2292,6 @@ setrec1:
 
 sigpipe1:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -2377,7 +2358,6 @@ strnum2:
 
 strtod:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 
|| echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -2551,7 +2531,7 @@ fflush:
 
 getlnhd:
        @echo $@
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -2619,44 +2599,38 @@ asortbool:
 
 backw:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 
|| echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 clos1way:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 clos1way2:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 
|| echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 clos1way3:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 clos1way4:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 clos1way5:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 clos1way6:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -2853,7 +2827,6 @@ gensub3:
 
 getlndir:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -2864,13 +2837,11 @@ gnuops2:
 
 gnuops3:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 gnureops:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -2891,7 +2862,6 @@ icasers:
 
 id:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -3024,14 +2994,14 @@ match3:
 
 mbstr1:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 mbstr2:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
@@ -3073,13 +3043,11 @@ nondec2:
 
 nonfatal2:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 nonfatal3:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -3231,7 +3199,6 @@ regnul2:
 
 regx8bit:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -3393,7 +3360,7 @@ symtab7:
 
 timeout:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
@@ -3484,14 +3451,14 @@ asorti:
 
 backbigs1:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 backsmalls1:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
@@ -3529,14 +3496,14 @@ lc_num1:
 
 mbfw1:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
 mbprintf1:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
@@ -3555,7 +3522,7 @@ mbprintf3:
 
 mbprintf4:
        @echo $@ $(ZOS_FAIL)
-       @echo Expect $@ to fail with DJGPP and MinGW.
+       @echo Expect $@ to fail with MinGW.
        @-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
        AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
@@ -3691,7 +3658,6 @@ mpfrrndeval:
 
 mpfrsqrt:
        @echo $@
-       @echo Expect $@ to fail with DJGPP.
        @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  -M >_$@ 2>&1 || echo EXIT CODE: 
$$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
diff --git a/pc/config.h b/pc/config.h
index bec42cfa..12c14560 100644
--- a/pc/config.h
+++ b/pc/config.h
@@ -88,17 +88,17 @@
 #undef HAVE_ICONV
 
 /* Define to 1 if the system has the type `intmax_t'. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_INTMAX_T 1
 #endif
 
 /* Define to 1 if you have the <inttypes.h> header file. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_INTTYPES_H 1
 #endif
 
 /* Define to 1 if you have the `isascii' function. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_ISASCII 1
 #endif
 
@@ -121,7 +121,7 @@
 #endif
 
 /* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 #define HAVE_LANGINFO_CODESET 1
 #endif
 
@@ -138,7 +138,7 @@
 #undef HAVE_LIBSIGSEGV
 
 /* Define to 1 if you have the <locale.h> header file. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_LOCALE_H 1
 #endif
 
@@ -168,15 +168,10 @@
 #undef HAVE_MEMCPY_ULONG
 
 /* Define to 1 if you have the `memmove' function. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_MEMMOVE 1
 #endif
 
-/* Define to 1 if you have the <memory.h> header file. */
-#ifdef __DJGPP__
-#define HAVE_MEMORY_H 1
-#endif
-
 /* Define to 1 if you have the `memset' function. */
 #define HAVE_MEMSET 1
 
@@ -186,11 +181,6 @@
 /* Define to 1 if you have the <minix/config.h> header file. */
 #undef HAVE_MINIX_CONFIG_H
 
-/* Define to 1 if you have the `mkstemp' function. */
-#ifdef __DJGPP__
-#define HAVE_MKSTEMP 1
-#endif
-
 /* we have the mktime function */
 #define HAVE_MKTIME 1
 
@@ -210,12 +200,12 @@
 #undef HAVE_POSIX_OPENPT
 
 /* Define to 1 if you have the `setenv' function. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_SETENV 1
 #endif
 
 /* Define to 1 if you have the `setlocale' function. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_SETLOCALE 1
 #endif
 
@@ -226,7 +216,7 @@
 #undef HAVE_SIGPROCMASK
 
 /* Define to 1 if you have the `snprintf' function. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_SNPRINTF 1
 #endif
 
@@ -241,7 +231,7 @@
 #endif
 
 /* Define to 1 if stdbool.h conforms to C99. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_STDBOOL_H 1
 #endif
 
@@ -251,7 +241,7 @@
 #endif
 
 /* Define to 1 if you have the <stdint.h> header file. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_STDINT_H 1
 #endif
 
@@ -259,23 +249,13 @@
 #undef HAVE_STDIO_H
 
 /* Define to 1 if you have the <stdlib.h> header file. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_STDLIB_H 1
 #endif
 
-/* Define to 1 if you have the `strcasecmp' function. */
-#ifdef __DJGPP__
-#define HAVE_STRCASECMP 1
-#endif
-
 /* Define to 1 if you have the `strchr' function. */
 #define HAVE_STRCHR 1
 
-/* Define to 1 if you have the `strcoll' function. */
-#ifdef __DJGPP__
-#define HAVE_STRCOLL 1
-#endif
-
 /* Define to 1 if you have the `strerror' function. */
 #define HAVE_STRERROR 1
 
@@ -306,7 +286,7 @@
 #define HAVE_STRTOD 1
 
 /* Define to 1 if you have the `strtoul' function. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_STRTOUL 1
 #endif
 
@@ -317,7 +297,7 @@
 #undef HAVE_STRUCT_PASSWD_PW_PASSWD
 
 /* Define to 1 if `st_blksize' is a member of `struct stat'. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
 #endif
 
@@ -327,13 +307,8 @@
 /* Define to 1 if you have the `system' function. */
 #define HAVE_SYSTEM 1
 
-/* Define to 1 if you have the <sys/ioctl.h> header file. */
-#ifdef __DJGPP__
-#define HAVE_SYS_IOCTL_H 1
-#endif
-
 /* Define to 1 if you have the <sys/param.h> header file. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_SYS_PARAM_H 1
 #endif
 
@@ -344,34 +319,24 @@
 #undef HAVE_SYS_SOCKET_H
 
 /* Define to 1 if you have the <sys/stat.h> header file. */
-#if defined(__MINGW32__) || defined(__DJGPP__)
+#if defined(__MINGW32__)
 #define HAVE_SYS_STAT_H 1
 #endif
 
 /* Define to 1 if you have the <sys/time.h> header file. */
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 #define HAVE_SYS_TIME_H 1
 #endif
 
 /* Define to 1 if you have the <sys/types.h> header file. */
 #define HAVE_SYS_TYPES_H 1
 
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#ifdef __DJGPP__
-#define HAVE_SYS_WAIT_H 1
-#endif
-
 /* Define to 1 if you have the <termios.h> header file. */
 #undef HAVE_TERMIOS_H
 
 /* Define to 1 if you have the `timegm' function. */
 #undef HAVE_TIMEGM
 
-/* Define to 1 if you have the `tmpfile' function. */
-#ifdef __DJGPP__
-#define HAVE_TMPFILE 1
-#endif
-
 /* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
    `HAVE_STRUCT_TM_TM_ZONE' instead. */
 #undef HAVE_TM_ZONE
@@ -394,12 +359,12 @@
 #define HAVE_TZSET 1
 
 /* Define to 1 if the system has the type `uintmax_t'. */
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 #define HAVE_UINTMAX_T 1
 #endif
 
 /* Define to 1 if you have the <unistd.h> header file. */
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 #define HAVE_UNISTD_H 1
 #endif
 
@@ -407,7 +372,7 @@
 #undef HAVE_UNSIGNED_LONG_LONG_INT
 
 /* Define to 1 if you have the `usleep' function. */
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 #define HAVE_USLEEP 1
 #endif
 
@@ -449,11 +414,6 @@
 #define HAVE_WINT_T 1
 #endif
 
-/* Define to 1 if the system has the type `_Bool'. */
-#ifdef __DJGPP__
-#define HAVE__BOOL 1
-#endif
-
 /* Define to 1 if you have the `__etoa_l' function. */
 #undef HAVE___ETOA_L
 
@@ -484,11 +444,6 @@
 /* Define to 1 if *printf supports %a format */
 #define PRINTF_HAS_A_FORMAT 1
 
-/* Define to 1 if *printf supports %F format */
-#ifdef __DJGPP__
-#define PRINTF_HAS_F_FORMAT 1
-#endif
-
 /* The size of `unsigned int', as computed by sizeof. */
 #define SIZEOF_UNSIGNED_INT 4
 
@@ -513,7 +468,7 @@
 #undef USE_EBCDIC
 
 /* This is required to compile Gnulib regex code.  */
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 #define _GNU_SOURCE 1
 #endif
 /* Enable extensions on AIX 3, Interix.  */
@@ -689,22 +644,5 @@
 #undef uintmax_t
 
 #include "custom.h"
-#ifdef __DJGPP__
-/* gcc no longer includes this by default */
-# include <sys/version.h>
 
-/* Library search path */
-# if (__DJGPP__ > 2 || __DJGPP_MINOR__ >= 3)
-#  define DEFPATH  ".;/dev/env/DJDIR/share/awk"
-# else
-#  define DEFPATH  ".;c:/lib/awk;c:/gnu/lib/awk"
-# endif
-
-/* Function prototype.  */
-#include <stdbool.h>
-extern bool is_valid_identifier(const char *name);
-#endif
-
-#ifndef __DJGPP__
 #define HAVE_POPEN_H 1
-#endif
diff --git a/pc/config.sed b/pc/config.sed
index 4547a842..1c1b7a2d 100644
--- a/pc/config.sed
+++ b/pc/config.sed
@@ -32,10 +32,6 @@
 #endif
 s/^#undef GETPGRP_VOID *$/#define GETPGRP_VOID 1/
 s/^#undef GETGROUPS_T *$/#define GETGROUPS_T gid_t/
-/^#undef GETPGRP_VOID$/c\
-#ifdef __DJGPP__\
-#define GETPGRP_VOID 1\
-#endif
 s/^#undef HAVE_ALARM *$/#define HAVE_ALARM 1/
 s/^#undef HAVE_ATEXIT *$/#define HAVE_ATEXIT 1/
 /^#undef HAVE_BTOWC *$/c\
@@ -55,11 +51,11 @@ s/^#undef HAVE_FMOD *$/#define HAVE_FMOD 1/
 #define HAVE_GETADDRINFO 1\
 #endif
 /^#undef HAVE_INTMAX_T *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_INTMAX_T 1\
 #endif
 /^#undef HAVE_INTTYPES_H *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_INTTYPES_H 1\
 #endif
 /^#undef HAVE_INTTYPES_H_WITH_UINTMAX *$/c\
@@ -67,7 +63,7 @@ s/^#undef HAVE_FMOD *$/#define HAVE_FMOD 1/
 #define HAVE_INTTYPES_H_WITH_UINTMAX 1\
 #endif
 /^#undef HAVE_ISASCII *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_ISASCII 1\
 #endif
 /^#undef HAVE_ISWCTYPE *$/c\
@@ -83,7 +79,7 @@ s/^#undef HAVE_FMOD *$/#define HAVE_FMOD 1/
 #define HAVE_ISWUPPER 1\
 #endif
 /^#undef HAVE_LANGINFO_CODESET *$/c\
-#if defined(__DJGPP__) || defined(__MINGW32__)\
+#if defined(__MINGW32__)\
 #define HAVE_LANGINFO_CODESET 1\
 #endif
 s/^#undef HAVE_LIBM *$/#define HAVE_LIBM 1/
@@ -91,7 +87,7 @@ s/^#undef HAVE_LIBM *$/#define HAVE_LIBM 1/
 /* #undef HAVE_LIBREADLINE */
 s/^#undef HAVE_LIMITS_H *$/#define HAVE_LIMITS_H 1/
 /^#undef HAVE_LOCALE_H *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_LOCALE_H 1\
 #endif
 /^#undef HAVE_LONG_LONG *$/c\
@@ -109,31 +105,23 @@ s/^#undef HAVE_LIMITS_H *$/#define HAVE_LIMITS_H 1/
 s/^#undef HAVE_MEMCMP *$/#define HAVE_MEMCMP 1/
 s/^#undef HAVE_MEMCPY *$/#define HAVE_MEMCPY 1/
 /^#undef HAVE_MEMMOVE *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_MEMMOVE 1\
 #endif
-/^#undef HAVE_MEMORY_H *$/c\
-#ifdef __DJGPP__\
-#define HAVE_MEMORY_H 1\
-#endif
 s/^#undef HAVE_MEMSET *$/#define HAVE_MEMSET 1/
-/^#undef HAVE_MKSTEMP *$/c\
-#ifdef __DJGPP__\
-#define HAVE_MKSTEMP 1\
-#endif
 s/^#undef HAVE_MKTIME *$/#define HAVE_MKTIME 1/
 /^#undef HAVE_MPFR *$/c\
 /* #undef HAVE_MPFR */
 /^#undef HAVE_SETENV *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_SETENV 1\
 #endif
 /^#undef HAVE_SETLOCALE *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_SETLOCALE 1\
 #endif
 /^#undef HAVE_SNPRINTF *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_SNPRINTF 1\
 #endif
 /^#undef HAVE_SOCKADDR_STORAGE *$/c\
@@ -146,7 +134,7 @@ s/^#undef HAVE_MKTIME *$/#define HAVE_MKTIME 1/
 #endif
 s/^#undef HAVE_STDARG_H *$/#define HAVE_STDARG_H 1/
 /^#undef HAVE_STDBOOL_H *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_STDBOOL_H 1\
 #endif
 /^#undef HAVE_STDDEF_H *$/c\
@@ -154,21 +142,13 @@ s/^#undef HAVE_STDARG_H *$/#define HAVE_STDARG_H 1/
 #define HAVE_STDDEF_H 1\
 #endif
 /^#undef HAVE_STDINT_H *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_STDINT_H 1\
 #endif
 /^#undef HAVE_STDLIB_H *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_STDLIB_H 1\
 #endif
-/^#undef HAVE_STRCASECMP *$/c\
-#ifdef __DJGPP__\
-#define HAVE_STRCASECMP 1\
-#endif
-/^#undef HAVE_STRCOLL *$/c\
-#ifdef __DJGPP__\
-#define HAVE_STRCOLL 1\
-#endif
 s/^#undef HAVE_STRCHR *$/#define HAVE_STRCHR 1/
 s/^#undef HAVE_STRERROR *$/#define HAVE_STRERROR 1/
 /^#undef HAVE_STRFTIME *$/c\
@@ -185,39 +165,27 @@ s/^#undef HAVE_STRING_H *$/#define HAVE_STRING_H 1/
 #define HAVE_STRNCASECMP 1\
 s/^#undef HAVE_STRTOD *$/#define HAVE_STRTOD 1/
 /^#undef HAVE_STRTOUL *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_STRTOUL 1\
 #endif
 /^#undef HAVE_STRUCT_STAT_ST_BLKSIZE *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_STRUCT_STAT_ST_BLKSIZE 1\
 #endif
-/^#undef HAVE_SYS_IOCTL_H *$/c\
-#ifdef __DJGPP__\
-#define HAVE_SYS_IOCTL_H 1\
-#endif
 s/^#undef HAVE_SYSTEM *$/#define HAVE_SYSTEM 1/
 /^#undef HAVE_SYS_PARAM_H *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_SYS_PARAM_H 1\
 #endif
 /^#undef HAVE_SYS_STAT_H *$/c\
-#if defined(__MINGW32__) || defined(__DJGPP__)\
+#if defined(__MINGW32__)\
 #define HAVE_SYS_STAT_H 1\
 #endif
 /^#undef HAVE_SYS_TIME_H *$/c\
-#if defined(__DJGPP__) || defined(__MINGW32__)\
+#if defined(__MINGW32__)\
 #define HAVE_SYS_TIME_H 1\
 #endif
 s/^#undef HAVE_SYS_TYPES_H *$/#define HAVE_SYS_TYPES_H 1/
-/^#undef HAVE_SYS_WAIT_H *$/c\
-#ifdef __DJGPP__\
-#define HAVE_SYS_WAIT_H 1\
-#endif
-/^#undef HAVE_TMPFILE *$/c\
-#ifdef __DJGPP__\
-#define HAVE_TMPFILE 1\
-#endif
 /^#undef HAVE_TOWLOWER *$/c\
 #ifdef __MINGW32__\
 #define HAVE_TOWLOWER 1\
@@ -229,16 +197,16 @@ s/^#undef HAVE_SYS_TYPES_H *$/#define HAVE_SYS_TYPES_H 1/
 s/^#undef HAVE_TZNAME *$/#define HAVE_TZNAME 1/
 s/^#undef HAVE_TZSET *$/#define HAVE_TZSET 1/
 /^#undef HAVE_UINTMAX_T *$/c\
-#if defined(__DJGPP__) || defined(__MINGW32__)\
+#if defined(__MINGW32__)\
 #define HAVE_UINTMAX_T 1\
 #endif
 /^#undef HAVE_UNISTD_H *$/c\
-#if defined(__DJGPP__) || defined(__MINGW32__)\
+#if defined(__MINGW32__)\
 #define HAVE_UNISTD_H 1\
 #endif
 s/^#undef HAVE_UNSIGNED_LONG_LONG *$/#define HAVE_UNSIGNED_LONG_LONG 1/
 /^#undef HAVE_USLEEP *$/c\
-#if defined(__DJGPP__) || defined(__MINGW32__)\
+#if defined(__MINGW32__)\
 #define HAVE_USLEEP 1\
 #endif
 s/^#undef HAVE_VPRINTF *$/#define HAVE_VPRINTF 1/
@@ -270,21 +238,13 @@ s/^#undef HAVE_VPRINTF *$/#define HAVE_VPRINTF 1/
 #ifdef __MINGW32__\
 #define HAVE_WINT_T 1\
 #endif
-/^#undef HAVE__BOOL *$/c\
-#ifdef __DJGPP__\
-#define HAVE__BOOL 1\
-#endif
 /^#undef PRINTF_HAS_A_FORMAT *$/c\
 #define PRINTF_HAS_A_FORMAT 1
-/^#undef PRINTF_HAS_F_FORMAT *$/c\
-#ifdef __DJGPP__\
-#define PRINTF_HAS_F_FORMAT 1\
-#endif
 s/^#undef PROTOTYPES *$/#define PROTOTYPES 1/
 s/^#undef RETSIGTYPE *$/#define RETSIGTYPE void/
 /^#.*RETSIGTYPE /a\
 \
-#if defined(__DJGPP__) || defined(__MINGW32__)\
+#if defined(__MINGW32__)\
 #include <limits.h>\
 #endif
 s/^#undef SIZEOF_UNSIGNED_INT *$/#define SIZEOF_UNSIGNED_INT 4/
@@ -298,29 +258,11 @@ s/^#undef TIME_WITH_SYS_TIME *$/#define 
TIME_WITH_SYS_TIME 1/
 
 /^\/\* Enable extensions on AIX 3, Interix.  \*\//i\
 /* This is required to compile Gnulib regex code.  */\
-#if defined(__DJGPP__) || defined(__MINGW32__)\
+#if defined(__MINGW32__)\
 #define _GNU_SOURCE 1\
 #endif
 
 s|^#undef PACKAGE_URL *$|#define PACKAGE_URL 
"http://www.gnu.org/software/gawk/";|
 
 $a\
-#ifdef __DJGPP__\
-/* gcc no longer includes this by default */\
-# include <sys/version.h>\
-\
-/* Library search path */\
-# if (__DJGPP__ > 2 || __DJGPP_MINOR__ >= 3)\
-#  define DEFPATH  ".;/dev/env/DJDIR/share/awk"\
-# else\
-#  define DEFPATH  ".;c:/lib/awk;c:/gnu/lib/awk"\
-# endif\
-\
-/* Function prototype.  */\
-#include <stdbool.h>\
-extern bool is_valid_identifier(const char *name);\
-#endif\
-\
-#ifndef __DJGPP__\
-#define HAVE_POPEN_H 1\
-#endif
+#define HAVE_POPEN_H 1
diff --git a/pc/gawkmisc.pc b/pc/gawkmisc.pc
index 813c201a..c37d9934 100644
--- a/pc/gawkmisc.pc
+++ b/pc/gawkmisc.pc
@@ -193,7 +193,7 @@ os_close_on_exec(fd, name, what, dir)
 int fd;
 const char *name, *what, *dir;
 {
-#if (defined(__DJGPP__) && (__DJGPP__ > 2 || __DJGPP_MINOR__ >= 4))
+#if __DJGPP__ > 2 || __DJGPP_MINOR__ >= 4
        if (fd <= 2)    /* sanity */
                return;
 
@@ -259,10 +259,6 @@ os_is_setuid()
 
 /* os_setbinmode --- set binary mode on file */
 
-#ifdef __DJGPP__
-#include <sys/exceptn.h>
-#include <io.h>
-#endif
 static int orig_tty_mode = -1;
 
 int
@@ -271,10 +267,6 @@ int fd, mode;
 {
        int prev_mode = setmode(fd, mode);
 
-#ifdef __DJGPP__
-       if ((mode & O_BINARY) != 0)
-               __djgpp_set_ctrl_c(1); /* allow to interrupt with Ctrl-C */
-#endif
        /* Save the original tty mode as we found it.  */
        if (orig_tty_mode == -1 && fd >= 0 && fd <= 2)
                orig_tty_mode = prev_mode;
@@ -834,7 +826,7 @@ os_maybe_set_errno (void)
 
 #endif /* __MINGW32__ */
 
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 
 void
 init_sockets(void)
@@ -849,49 +841,4 @@ init_sockets(void)
 #endif
 }
 
-#endif /* __DJGPP__ || __MINGW32__ */
-
-#ifdef __DJGPP__
-
-/* Replacement for the missing nl_langinfo.  DJGPP provides only C locale.  */
-#include <langinfo.h>
-
-char *
-nl_langinfo (int item)
-{
-  switch (item)
-    {
-      case CODESET:
-      default:
-        return (char *) "";
-    }
-}
-
-
-# if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4 
-int
-unsetenv (const char *name)
-{
-  if (!name || !*name || strchr (name, '=') != NULL)
-    return -1;
-
-  return putenv (name);
-}
-#endif
-
-/* This is needed to defeat too-clever GCC warnings in dfa.c about
-   comparison being always false due to limited range of data type.  */
-wint_t
-btowc (int c)
-{
-  return c;
-}
-
-wint_t
-putwc(wchar_t wc, FILE *stream)
-{
-  return MB_CUR_MAX == 1 && wc > 0 && wc <= UCHAR_MAX
-         && putc((unsigned char)wc, stream) != EOF ? (wint_t)wc : WEOF;
-}
-
-#endif /* __DJGPP__ */
+#endif /* __MINGW32__ */
diff --git a/pc/getid.c b/pc/getid.c
index 71491acf..543c559c 100644
--- a/pc/getid.c
+++ b/pc/getid.c
@@ -50,9 +50,9 @@ int getpgrp(void)
   return (0);
 }
 
-#if defined(__DJGPP__) || defined(__MINGW32__)
+#if defined(__MINGW32__)
 int getppid(void)
 {
   return (0);
 }
-#endif /* __DJGPP__ || __MINGW32__ */
+#endif /* __MINGW32__ */
diff --git a/pc/popen.h b/pc/popen.h
index 8e893326..4e6f125f 100644
--- a/pc/popen.h
+++ b/pc/popen.h
@@ -22,7 +22,6 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA
  */
 
-#if !defined (__DJGPP__)
 # if defined (popen)
 #  undef popen
 #  undef pclose
@@ -31,11 +30,10 @@
 # define pclose(f)     os_pclose(f)
   extern FILE *os_popen( const char *, const char * );
   extern int  os_pclose( FILE * );
-# ifdef __MINGW32__
+#ifdef __MINGW32__
 #  define system(c)    os_system(c)
    extern int os_system( const char * );
 #  define SIGKILL      9
    extern int kill( int, int );
    extern char *quote_cmd( const char * );
-# endif         /* __MINGW32__ */
-#endif /* !__DJGPP__ */
+#endif  /* __MINGW32__ */
diff --git a/profile.c b/profile.c
index a5b91569..5b07e223 100644
--- a/profile.c
+++ b/profile.c
@@ -119,17 +119,12 @@ set_prof_file(const char *file)
 void
 init_profiling_signals()
 {
-#ifdef __DJGPP__
-       signal(SIGINT, dump_and_exit);
-       signal(SIGQUIT, just_dump);
-#else  /* !__DJGPP__ */
 #ifdef SIGHUP
        signal(SIGHUP, dump_and_exit);
 #endif
 #ifdef SIGUSR1
        signal(SIGUSR1, just_dump);
 #endif
-#endif /* !__DJGPP__ */
 }
 
 /* indent --- print out enough tabs */
diff --git a/re.c b/re.c
index d709a5ef..fa94fdd6 100644
--- a/re.c
+++ b/re.c
@@ -388,7 +388,7 @@ void
 dfaerror(const char *s)
 {
        fatal("%s", s);
-       exit(EXIT_FATAL);       /* for DJGPP */
+       exit(EXIT_FATAL);
 }
 
 /* re_cache_get --- populate regexp cache if empty */
diff --git a/replace.c b/replace.c
index 77670b06..cf97f39d 100644
--- a/replace.c
+++ b/replace.c
@@ -114,7 +114,3 @@
 #ifndef HAVE_STRCOLL
 #include "missing_d/strcoll.c"
 #endif
-
-#if defined(__DJGPP__)
-#include "missing_d/wcmisc.c"
-#endif
diff --git a/test/ChangeLog b/test/ChangeLog
index 32ba55e1..7a342484 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
+2022-07-06         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * Makefile.am (EXPECTED_FAIL_DJGPP): Removed.
+
 2022-07-01         Arnold D. Robbins     <arnold@skeeve.com>
 
        * Makefile.am: Update copyright year.
diff --git a/test/Makefile.am b/test/Makefile.am
index 46e22334..e3e2c707 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1589,15 +1589,6 @@ 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 \
-       randtest regx8bit strtod sigpipe1 symtab6 timeout
-
 # List of tests that fail on MinGW
 EXPECTED_FAIL_MINGW = \
        backbigs1 backsmalls1 clos1way6 devfd devfd1 devfd2 \
@@ -1627,7 +1618,7 @@ GENTESTS_UNUSED = Makefile.in checknegtime.awk 
dtdgport.awk fix-fmtspcl.awk \
        printfloat.awk readdir0.awk valgrind.awk xref.awk \
        readall1.awk readall2.awk
 
-# List of tests on MinGW or DJGPP that need a different cmp program
+# List of tests on MinGW that need a different cmp program
 NEED_TESTOUTCMP = \
        beginfile2 double2 exit fmttest hsprint posix profile5 space
 
diff --git a/test/Makefile.in b/test/Makefile.in
index 0520e71f..f801a253 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -1856,16 +1856,6 @@ NEED_LOCALE_EN = \
 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 \
-       randtest regx8bit strtod sigpipe1 symtab6 timeout
-
-
 # List of tests that fail on MinGW
 EXPECTED_FAIL_MINGW = \
        backbigs1 backsmalls1 clos1way6 devfd devfd1 devfd2 \
@@ -1896,7 +1886,7 @@ GENTESTS_UNUSED = Makefile.in checknegtime.awk 
dtdgport.awk fix-fmtspcl.awk \
        readall1.awk readall2.awk
 
 
-# List of tests on MinGW or DJGPP that need a different cmp program
+# List of tests on MinGW that need a different cmp program
 NEED_TESTOUTCMP = \
        beginfile2 double2 exit fmttest hsprint posix profile5 space
 

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


hooks/post-receive
-- 
gawk



reply via email to

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