[Top][All Lists]

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

[SCM] gawk branch, master, updated. gawk-4.1.0-4837-ge97f77ec

From: Arnold Robbins
Subject: [SCM] gawk branch, master, updated. gawk-4.1.0-4837-ge97f77ec
Date: Sun, 7 Aug 2022 14:13:04 -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, master has been updated
       via  e97f77ec5e8786df682cdbc268886c70cc3e1669 (commit)
       via  d1825426d4f6e640b34d03d64a6ef29c39f240a6 (commit)
       via  a570e13ea2430fd77e7cc75bdc452849e7ccbf4f (commit)
       via  1ade0cbdfcdae637e7a3a3134eee6ac13fcb4942 (commit)
      from  21f429706d20b771d97aa3da34d11e4fb655c115 (commit)

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

- Log -----------------------------------------------------------------

commit e97f77ec5e8786df682cdbc268886c70cc3e1669
Author: Arnold D. Robbins <>
Date:   Sun Aug 7 21:12:14 2022 +0300

    Fix an issue with tests for MinGW.

diff --git a/pc/ChangeLog b/pc/ChangeLog
index fc9a0c92..7d52ee6b 100644
--- a/pc/ChangeLog
+++ b/pc/ChangeLog
@@ -1,3 +1,9 @@
+2022-08-07         Arnold D. Robbins     <>
+       * GenMakefileTst.awk: Fix substitution of `ls' to work
+       with updated input.
+       * Makefile.tst: Regenerated.
 2022-08-04  Eli Zaretskii  <>
        * Makefile (install1): Remove installation of igawk.
diff --git a/pc/GenMakefileTst.awk b/pc/GenMakefileTst.awk
index 6176370a..1e40b1ba 100644
--- a/pc/GenMakefileTst.awk
+++ b/pc/GenMakefileTst.awk
@@ -76,7 +76,7 @@ function substitutions(test, string)
        gsub(/ru_RU.UTF-8/, "RUS_RUS.1251", string)
        # command for `ls'
-       gsub(/@ls/, "@$(LS)", string)
+       gsub(/@-ls/, "@-$(LS)", string)
        # MSYS needs "/" to be doubled
        gsub(/-F\//, "-F$(SLASH)", string)
diff --git a/pc/Makefile.tst b/pc/Makefile.tst
index 8de9f95c..7043bea6 100644
--- a/pc/Makefile.tst
+++ b/pc/Makefile.tst
@@ -1083,8 +1083,8 @@ readdir:
        echo If it does, try rerunning on an ext'[234]' filesystem. ; \
        @-$(AWK) -f "$(srcdir)"/readdir.awk "$(top_srcdir)" > _$@ || echo EXIT 
CODE: $$? >> _$@
-       @-ls -afi "$(top_srcdir)" > _dirlist
-       @-ls -lna "$(top_srcdir)" | sed 1d > _longlist
+       @-$(LS) -afi "$(top_srcdir)" > _dirlist
+       @-$(LS) -lna "$(top_srcdir)" | sed 1d > _longlist
        @-$(AWK) -f "$(srcdir)"/readdir0.awk -v extout=_$@  \
                -v dirlist=_dirlist -v longlist=_longlist > $@.ok
        @-$(CMP) $@.ok _$@ && rm -f $@.ok _$@ _dirlist _longlist

commit d1825426d4f6e640b34d03d64a6ef29c39f240a6
Author: Arnold D. Robbins <>
Date:   Sun Aug 7 21:10:54 2022 +0300

    Fix environment handling for MinGW.

diff --git a/ChangeLog b/ChangeLog
index 6c05f3fb..c0b2df70 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,14 @@
        * eval.c: Include "floatmagic.h" as it also calls isnan().
        Thanks to John Malmberg for the report.
+       Unrelated:
+       * main.c (load_environ): Force ENVIRON_node to point to
+       str_array_func before loading it. Fixes issues on MinGW
+       while still solving the original `environ[0] = "0=foo"'
+       problem. Move the call to init_env_array back to after the
+       loop.
 2022-08-06         John E. Malmberg      <>
        * custom.h: Update for new VMS Versions
diff --git a/main.c b/main.c
index c1c38cc6..71a66e63 100644
--- a/main.c
+++ b/main.c
@@ -946,8 +946,10 @@ load_environ()
        ENVIRON_node = install_symbol(estrdup("ENVIRON", 7), Node_var_array);
-       /* set up array functions */
-       init_env_array(ENVIRON_node);
+       // Force string functions; if the first element in environ[]
+       // looks like "0=foo" we end up with the cint_funcs and that's
+       // not what we want, we just get core dumps.
+       ENVIRON_node->array_funcs = & str_array_func;
        for (i = 0; environ[i] != NULL; i++) {
                static char nullstr[] = "";
@@ -979,6 +981,9 @@ load_environ()
        path_environ("AWKPATH", defpath);
        path_environ("AWKLIBPATH", deflibpath);
+       /* set up array functions */
+       init_env_array(ENVIRON_node);
        return ENVIRON_node;

commit a570e13ea2430fd77e7cc75bdc452849e7ccbf4f
Author: Arnold D. Robbins <>
Date:   Sun Aug 7 18:03:45 2022 +0300

    Add include of floatmagic.h to eval.c.

diff --git a/ChangeLog b/ChangeLog
index ddd6c969..6c05f3fb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,11 @@
        * main.c (get_pma_version): New function.
        (version): Call it.
+       Unrelated:
+       * eval.c: Include "floatmagic.h" as it also calls isnan().
+       Thanks to John Malmberg for the report.
 2022-08-06         John E. Malmberg      <>
        * custom.h: Update for new VMS Versions
diff --git a/eval.c b/eval.c
index d7d0b264..59d9dcf8 100644
--- a/eval.c
+++ b/eval.c
@@ -26,6 +26,7 @@
 #include "awk.h"
 #include <math.h>
+#include "floatmagic.h"
 NODE **fcall_list = NULL;
 long fcall_count = 0;

commit 1ade0cbdfcdae637e7a3a3134eee6ac13fcb4942
Author: Arnold D. Robbins <>
Date:   Sun Aug 7 17:27:19 2022 +0300

    Use just the nickname part of the PMA version in --version output.

diff --git a/ChangeLog b/ChangeLog
index 7820afa2..ddd6c969 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2022-08-07         Arnold D. Robbins     <>
+       * main.c (get_pma_version): New function.
+       (version): Call it.
 2022-08-06         John E. Malmberg      <>
        * custom.h: Update for new VMS Versions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 0c452c55..f0240d62 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,9 @@
+2022-08-07         Arnold D. Robbins     <>
+       * For `gawk --version' output, unwrap the result,
+       after code change in main.c to get just the "Avon 7" part of the
+       version sting.
 2022-08-05         Arnold D. Robbins     <>
        * For `gawk --version' output, wrap the result
diff --git a/doc/ b/doc/
index 80aa469e..b2ba514c 100644
--- a/doc/
+++ b/doc/
@@ -22155,8 +22155,7 @@ use the same 'gawk' executable from run to run.
      $ gawk --version
-     -| GNU Awk 5.2.0, API: 3.2, PMA: 2022.08Aug.03.1659520468 (Avon 7),
-        (GNU MPFR 4.0.1, GNU MP 6.1.2)
+     -| GNU Awk 5.2.0, API 3.2, PMA Avon 7, (GNU MPFR 4.0.1, GNU MP 6.1.2)
      -| Copyright (C) 1989, 1991-2022 Free Software Foundation.
@@ -24815,8 +24814,7 @@ uses the GNU MPFR ( and GNU MP 
 see if MPFR support is available like so:
      $ gawk --version
-     -| GNU Awk 5.2.0, API: 3.2, PMA: 2022.08Aug.03.1659520468 (Avon 7),
-        (GNU MPFR 4.0.1, GNU MP 6.1.2)
+     -| GNU Awk 5.2.0, API 3.2, PMA Avon 7, (GNU MPFR 4.0.1, GNU MP 6.1.2)
      -| Copyright (C) 1989, 1991-2022 Free Software Foundation.
@@ -37018,9 +37016,9 @@ Index
 * environment variables, AWKPATH <3>:    Igawk Program.       (line  12)
 * environment variables, AWKPATH <4>:    Igawk Program.       (line 211)
 * environment variables, GAWK_PERSIST_FILE <1>: Persistent Memory.
-                                                              (line  43)
+                                                              (line  42)
 * environment variables, PMA_VERBOSITY <1>: Persistent Memory.
-                                                              (line  87)
+                                                              (line  86)
 * environment variables, LANGUAGE:       Explaining gettext.  (line 120)
 * environment variables, GAWK_LOCALE_DIR <1>: Explaining gettext.
                                                               (line 132)
@@ -37514,7 +37512,7 @@ Index
 * GAWK_PERSIST_FILE environment variable: Other Environment Variables.
                                                               (line  15)
 * GAWK_PERSIST_FILE environment variable <1>: Persistent Memory.
-                                                              (line  43)
+                                                              (line  42)
 * GAWK_READ_TIMEOUT environment variable: Other Environment Variables.
                                                               (line  19)
 * GAWK_READ_TIMEOUT environment variable <1>: Read Timeout.   (line  71)
@@ -37772,8 +37770,8 @@ Index
 * Kahrs, Jürgen:                         Acknowledgments.     (line  60)
 * Kahrs, Jürgen <1>:                     Contributors.        (line  71)
 * Kasal, Stepan:                         Acknowledgments.     (line  60)
-* Kelly, Terence:                        Persistent Memory.   (line  69)
-* Kelly, Terence <1>:                    Persistent Memory.   (line 107)
+* Kelly, Terence:                        Persistent Memory.   (line  68)
+* Kelly, Terence <1>:                    Persistent Memory.   (line 106)
 * Kelly, Terence <2>:                    Feature History.     (line 508)
 * Kenobi, Obi-Wan:                       Undocumented.        (line   6)
 * Kernighan, Brian:                      History.             (line  17)
@@ -38209,7 +38207,7 @@ Index
 * plus sign (+), += operator <1>:        Precedence.          (line  94)
 * PMA_VERBOSITY environment variable:    Other Environment Variables.
                                                               (line  29)
-* PMA_VERBOSITY environment variable <1>: Persistent Memory.  (line  87)
+* PMA_VERBOSITY environment variable <1>: Persistent Memory.  (line  86)
 * pointers to functions:                 Indirect Calls.      (line   6)
 * portability, #! (executable scripts):  Executable Scripts.  (line  29)
 * portability, ARGV variable:            Executable Scripts.  (line  55)
@@ -39564,244 +39562,244 @@ Ref: Two-way I/O-Footnote-2884578
 Node: TCP/IP Networking884660
 Node: Profiling887736
 Node: Persistent Memory897042
-Ref: Persistent Memory-Footnote-1904558
-Node: Extension Philosophy904685
-Node: Advanced Features Summary906172
-Node: Internationalization908344
-Node: I18N and L10N910018
-Node: Explaining gettext910705
-Ref: Explaining gettext-Footnote-1916597
-Ref: Explaining gettext-Footnote-2916782
-Node: Programmer i18n916947
-Ref: Programmer i18n-Footnote-1921896
-Node: Translator i18n921945
-Node: String Extraction922739
-Ref: String Extraction-Footnote-1923871
-Node: Printf Ordering923957
-Ref: Printf Ordering-Footnote-1926743
-Node: I18N Portability926807
-Ref: I18N Portability-Footnote-1929263
-Node: I18N Example929326
-Ref: I18N Example-Footnote-1932601
-Ref: I18N Example-Footnote-2932674
-Node: Gawk I18N932783
-Node: I18N Summary933405
-Node: Debugger934746
-Node: Debugging935746
-Node: Debugging Concepts936187
-Node: Debugging Terms937996
-Node: Awk Debugging940571
-Ref: Awk Debugging-Footnote-1941516
-Node: Sample Debugging Session941648
-Node: Debugger Invocation942182
-Node: Finding The Bug943568
-Node: List of Debugger Commands950042
-Node: Breakpoint Control951375
-Node: Debugger Execution Control955069
-Node: Viewing And Changing Data958431
-Node: Execution Stack961972
-Node: Debugger Info963609
-Node: Miscellaneous Debugger Commands967680
-Node: Readline Support972742
-Node: Limitations973638
-Node: Debugging Summary976192
-Node: Namespaces977471
-Node: Global Namespace978582
-Node: Qualified Names979980
-Node: Default Namespace980979
-Node: Changing The Namespace981720
-Node: Naming Rules983334
-Node: Internal Name Management985182
-Node: Namespace Example986224
-Node: Namespace And Features988786
-Node: Namespace Summary990221
-Node: Arbitrary Precision Arithmetic991698
-Node: Computer Arithmetic993185
-Ref: table-numeric-ranges996951
-Ref: table-floating-point-ranges997445
-Ref: Computer Arithmetic-Footnote-1998104
-Node: Math Definitions998161
-Ref: table-ieee-formats1001137
-Node: MPFR features1001705
-Node: MPFR On Parole1002150
-Ref: MPFR On Parole-Footnote-11002979
-Node: MPFR Intro1003134
-Node: FP Math Caution1004822
-Ref: FP Math Caution-Footnote-11005894
-Node: Inexactness of computations1006263
-Node: Inexact representation1007294
-Node: Comparing FP Values1008654
-Node: Errors accumulate1009895
-Node: Strange values1011351
-Ref: Strange values-Footnote-11013939
-Node: Getting Accuracy1014044
-Node: Try To Round1016754
-Node: Setting precision1017653
-Ref: table-predefined-precision-strings1018350
-Node: Setting the rounding mode1020181
-Ref: table-gawk-rounding-modes1020555
-Ref: Setting the rounding mode-Footnote-11024487
-Node: Arbitrary Precision Integers1024666
-Ref: Arbitrary Precision Integers-Footnote-11027841
-Node: Checking for MPFR1027990
-Node: POSIX Floating Point Problems1029464
-Ref: POSIX Floating Point Problems-Footnote-11034117
-Node: Floating point summary1034155
-Node: Dynamic Extensions1036345
-Node: Extension Intro1037898
-Node: Plugin License1039164
-Node: Extension Mechanism Outline1039961
-Ref: figure-load-extension1040400
-Ref: figure-register-new-function1041966
-Ref: figure-call-new-function1043059
-Node: Extension API Description1045122
-Node: Extension API Functions Introduction1046835
-Ref: table-api-std-headers1048671
-Node: General Data Types1052921
-Ref: General Data Types-Footnote-11061627
-Node: Memory Allocation Functions1061926
-Ref: Memory Allocation Functions-Footnote-11066427
-Node: Constructor Functions1066526
-Node: API Ownership of MPFR and GMP Values1070179
-Node: Registration Functions1071712
-Node: Extension Functions1072412
-Node: Exit Callback Functions1077734
-Node: Extension Version String1078984
-Node: Input Parsers1079647
-Node: Output Wrappers1092368
-Node: Two-way processors1096880
-Node: Printing Messages1099145
-Ref: Printing Messages-Footnote-11100316
-Node: Updating ERRNO1100469
-Node: Requesting Values1101208
-Ref: table-value-types-returned1101945
-Node: Accessing Parameters1103054
-Node: Symbol Table Access1104291
-Node: Symbol table by name1104803
-Ref: Symbol table by name-Footnote-11107828
-Node: Symbol table by cookie1107956
-Ref: Symbol table by cookie-Footnote-11112141
-Node: Cached values1112205
-Ref: Cached values-Footnote-11115741
-Node: Array Manipulation1115894
-Ref: Array Manipulation-Footnote-11116985
-Node: Array Data Types1117022
-Ref: Array Data Types-Footnote-11119680
-Node: Array Functions1119772
-Node: Flattening Arrays1124557
-Node: Creating Arrays1131533
-Node: Redirection API1136300
-Node: Extension API Variables1139133
-Node: Extension Versioning1139844
-Ref: gawk-api-version1140273
-Node: Extension GMP/MPFR Versioning1142005
-Node: Extension API Informational Variables1143633
-Node: Extension API Boilerplate1144706
-Node: Changes from API V11148680
-Node: Finding Extensions1150252
-Node: Extension Example1150811
-Node: Internal File Description1151609
-Node: Internal File Ops1155689
-Ref: Internal File Ops-Footnote-11167039
-Node: Using Internal File Ops1167179
-Ref: Using Internal File Ops-Footnote-11169562
-Node: Extension Samples1169836
-Node: Extension Sample File Functions1171365
-Node: Extension Sample Fnmatch1179014
-Node: Extension Sample Fork1180501
-Node: Extension Sample Inplace1181719
-Node: Extension Sample Ord1185345
-Node: Extension Sample Readdir1186181
-Ref: table-readdir-file-types1187070
-Node: Extension Sample Revout1188138
-Node: Extension Sample Rev2way1188727
-Node: Extension Sample Read write array1189467
-Node: Extension Sample Readfile1192632
-Node: Extension Sample Time1193727
-Node: Extension Sample API Tests1195479
-Node: gawkextlib1195971
-Node: Extension summary1198889
-Node: Extension Exercises1202591
-Node: Language History1203833
-Node: V7/SVR3.11205489
-Node: SVR41207641
-Node: POSIX1209075
-Node: BTL1210456
-Node: POSIX/GNU1211185
-Node: Feature History1217091
-Node: Common Extensions1234830
-Node: Ranges and Locales1236113
-Ref: Ranges and Locales-Footnote-11240729
-Ref: Ranges and Locales-Footnote-21240756
-Ref: Ranges and Locales-Footnote-31240991
-Node: Contributors1241214
-Node: History summary1247211
-Node: Installation1248591
-Node: Gawk Distribution1249535
-Node: Getting1250019
-Node: Extracting1250982
-Node: Distribution contents1252620
-Node: Unix Installation1259681
-Node: Quick Installation1260485
-Node: Compiling with MPFR1262905
-Node: Shell Startup Files1263595
-Node: Additional Configuration Options1264684
-Node: Configuration Philosophy1266999
-Node: Compiling from Git1269395
-Node: Building the Documentation1269950
-Node: Non-Unix Installation1271334
-Node: PC Installation1271794
-Node: PC Binary Installation1272635
-Node: PC Compiling1273508
-Node: PC Using1274614
-Node: Cygwin1278110
-Node: MSYS1279334
-Node: VMS Installation1279936
-Node: VMS Compilation1280655
-Ref: VMS Compilation-Footnote-11281884
-Node: VMS Dynamic Extensions1281942
-Node: VMS Installation Details1283627
-Node: VMS Running1285889
-Node: VMS GNV1290168
-Node: Bugs1290882
-Node: Bug definition1291794
-Node: Bug address1294730
-Node: Usenet1297918
-Node: Performance bugs1299107
-Node: Asking for help1302028
-Node: Maintainers1303995
-Node: Other Versions1305002
-Node: Installation summary1313272
-Node: Notes1314629
-Node: Compatibility Mode1315423
-Node: Additions1316205
-Node: Accessing The Source1317130
-Node: Adding Code1318567
-Node: New Ports1325382
-Node: Derived Files1329757
-Ref: Derived Files-Footnote-11335417
-Ref: Derived Files-Footnote-21335452
-Ref: Derived Files-Footnote-31336050
-Node: Future Extensions1336164
-Node: Implementation Limitations1336822
-Node: Extension Design1338032
-Node: Old Extension Problems1339176
-Ref: Old Extension Problems-Footnote-11340694
-Node: Extension New Mechanism Goals1340751
-Ref: Extension New Mechanism Goals-Footnote-11344115
-Node: Extension Other Design Decisions1344304
-Node: Extension Future Growth1346417
-Node: Notes summary1347023
-Node: Basic Concepts1348181
-Node: Basic High Level1348862
-Ref: figure-general-flow1349144
-Ref: figure-process-flow1349830
-Ref: Basic High Level-Footnote-11353132
-Node: Basic Data Typing1353317
-Node: Glossary1356645
-Node: Copying1388532
-Node: GNU Free Documentation License1426075
-Node: Index1451195
+Ref: Persistent Memory-Footnote-1904521
+Node: Extension Philosophy904648
+Node: Advanced Features Summary906135
+Node: Internationalization908307
+Node: I18N and L10N909981
+Node: Explaining gettext910668
+Ref: Explaining gettext-Footnote-1916560
+Ref: Explaining gettext-Footnote-2916745
+Node: Programmer i18n916910
+Ref: Programmer i18n-Footnote-1921859
+Node: Translator i18n921908
+Node: String Extraction922702
+Ref: String Extraction-Footnote-1923834
+Node: Printf Ordering923920
+Ref: Printf Ordering-Footnote-1926706
+Node: I18N Portability926770
+Ref: I18N Portability-Footnote-1929226
+Node: I18N Example929289
+Ref: I18N Example-Footnote-1932564
+Ref: I18N Example-Footnote-2932637
+Node: Gawk I18N932746
+Node: I18N Summary933368
+Node: Debugger934709
+Node: Debugging935709
+Node: Debugging Concepts936150
+Node: Debugging Terms937959
+Node: Awk Debugging940534
+Ref: Awk Debugging-Footnote-1941479
+Node: Sample Debugging Session941611
+Node: Debugger Invocation942145
+Node: Finding The Bug943531
+Node: List of Debugger Commands950005
+Node: Breakpoint Control951338
+Node: Debugger Execution Control955032
+Node: Viewing And Changing Data958394
+Node: Execution Stack961935
+Node: Debugger Info963572
+Node: Miscellaneous Debugger Commands967643
+Node: Readline Support972705
+Node: Limitations973601
+Node: Debugging Summary976155
+Node: Namespaces977434
+Node: Global Namespace978545
+Node: Qualified Names979943
+Node: Default Namespace980942
+Node: Changing The Namespace981683
+Node: Naming Rules983297
+Node: Internal Name Management985145
+Node: Namespace Example986187
+Node: Namespace And Features988749
+Node: Namespace Summary990184
+Node: Arbitrary Precision Arithmetic991661
+Node: Computer Arithmetic993148
+Ref: table-numeric-ranges996914
+Ref: table-floating-point-ranges997408
+Ref: Computer Arithmetic-Footnote-1998067
+Node: Math Definitions998124
+Ref: table-ieee-formats1001100
+Node: MPFR features1001668
+Node: MPFR On Parole1002113
+Ref: MPFR On Parole-Footnote-11002942
+Node: MPFR Intro1003097
+Node: FP Math Caution1004748
+Ref: FP Math Caution-Footnote-11005820
+Node: Inexactness of computations1006189
+Node: Inexact representation1007220
+Node: Comparing FP Values1008580
+Node: Errors accumulate1009821
+Node: Strange values1011277
+Ref: Strange values-Footnote-11013865
+Node: Getting Accuracy1013970
+Node: Try To Round1016680
+Node: Setting precision1017579
+Ref: table-predefined-precision-strings1018276
+Node: Setting the rounding mode1020107
+Ref: table-gawk-rounding-modes1020481
+Ref: Setting the rounding mode-Footnote-11024413
+Node: Arbitrary Precision Integers1024592
+Ref: Arbitrary Precision Integers-Footnote-11027767
+Node: Checking for MPFR1027916
+Node: POSIX Floating Point Problems1029390
+Ref: POSIX Floating Point Problems-Footnote-11034043
+Node: Floating point summary1034081
+Node: Dynamic Extensions1036271
+Node: Extension Intro1037824
+Node: Plugin License1039090
+Node: Extension Mechanism Outline1039887
+Ref: figure-load-extension1040326
+Ref: figure-register-new-function1041892
+Ref: figure-call-new-function1042985
+Node: Extension API Description1045048
+Node: Extension API Functions Introduction1046761
+Ref: table-api-std-headers1048597
+Node: General Data Types1052847
+Ref: General Data Types-Footnote-11061553
+Node: Memory Allocation Functions1061852
+Ref: Memory Allocation Functions-Footnote-11066353
+Node: Constructor Functions1066452
+Node: API Ownership of MPFR and GMP Values1070105
+Node: Registration Functions1071638
+Node: Extension Functions1072338
+Node: Exit Callback Functions1077660
+Node: Extension Version String1078910
+Node: Input Parsers1079573
+Node: Output Wrappers1092294
+Node: Two-way processors1096806
+Node: Printing Messages1099071
+Ref: Printing Messages-Footnote-11100242
+Node: Updating ERRNO1100395
+Node: Requesting Values1101134
+Ref: table-value-types-returned1101871
+Node: Accessing Parameters1102980
+Node: Symbol Table Access1104217
+Node: Symbol table by name1104729
+Ref: Symbol table by name-Footnote-11107754
+Node: Symbol table by cookie1107882
+Ref: Symbol table by cookie-Footnote-11112067
+Node: Cached values1112131
+Ref: Cached values-Footnote-11115667
+Node: Array Manipulation1115820
+Ref: Array Manipulation-Footnote-11116911
+Node: Array Data Types1116948
+Ref: Array Data Types-Footnote-11119606
+Node: Array Functions1119698
+Node: Flattening Arrays1124483
+Node: Creating Arrays1131459
+Node: Redirection API1136226
+Node: Extension API Variables1139059
+Node: Extension Versioning1139770
+Ref: gawk-api-version1140199
+Node: Extension GMP/MPFR Versioning1141931
+Node: Extension API Informational Variables1143559
+Node: Extension API Boilerplate1144632
+Node: Changes from API V11148606
+Node: Finding Extensions1150178
+Node: Extension Example1150737
+Node: Internal File Description1151535
+Node: Internal File Ops1155615
+Ref: Internal File Ops-Footnote-11166965
+Node: Using Internal File Ops1167105
+Ref: Using Internal File Ops-Footnote-11169488
+Node: Extension Samples1169762
+Node: Extension Sample File Functions1171291
+Node: Extension Sample Fnmatch1178940
+Node: Extension Sample Fork1180427
+Node: Extension Sample Inplace1181645
+Node: Extension Sample Ord1185271
+Node: Extension Sample Readdir1186107
+Ref: table-readdir-file-types1186996
+Node: Extension Sample Revout1188064
+Node: Extension Sample Rev2way1188653
+Node: Extension Sample Read write array1189393
+Node: Extension Sample Readfile1192558
+Node: Extension Sample Time1193653
+Node: Extension Sample API Tests1195405
+Node: gawkextlib1195897
+Node: Extension summary1198815
+Node: Extension Exercises1202517
+Node: Language History1203759
+Node: V7/SVR3.11205415
+Node: SVR41207567
+Node: POSIX1209001
+Node: BTL1210382
+Node: POSIX/GNU1211111
+Node: Feature History1217017
+Node: Common Extensions1234756
+Node: Ranges and Locales1236039
+Ref: Ranges and Locales-Footnote-11240655
+Ref: Ranges and Locales-Footnote-21240682
+Ref: Ranges and Locales-Footnote-31240917
+Node: Contributors1241140
+Node: History summary1247137
+Node: Installation1248517
+Node: Gawk Distribution1249461
+Node: Getting1249945
+Node: Extracting1250908
+Node: Distribution contents1252546
+Node: Unix Installation1259607
+Node: Quick Installation1260411
+Node: Compiling with MPFR1262831
+Node: Shell Startup Files1263521
+Node: Additional Configuration Options1264610
+Node: Configuration Philosophy1266925
+Node: Compiling from Git1269321
+Node: Building the Documentation1269876
+Node: Non-Unix Installation1271260
+Node: PC Installation1271720
+Node: PC Binary Installation1272561
+Node: PC Compiling1273434
+Node: PC Using1274540
+Node: Cygwin1278036
+Node: MSYS1279260
+Node: VMS Installation1279862
+Node: VMS Compilation1280581
+Ref: VMS Compilation-Footnote-11281810
+Node: VMS Dynamic Extensions1281868
+Node: VMS Installation Details1283553
+Node: VMS Running1285815
+Node: VMS GNV1290094
+Node: Bugs1290808
+Node: Bug definition1291720
+Node: Bug address1294656
+Node: Usenet1297844
+Node: Performance bugs1299033
+Node: Asking for help1301954
+Node: Maintainers1303921
+Node: Other Versions1304928
+Node: Installation summary1313198
+Node: Notes1314555
+Node: Compatibility Mode1315349
+Node: Additions1316131
+Node: Accessing The Source1317056
+Node: Adding Code1318493
+Node: New Ports1325308
+Node: Derived Files1329683
+Ref: Derived Files-Footnote-11335343
+Ref: Derived Files-Footnote-21335378
+Ref: Derived Files-Footnote-31335976
+Node: Future Extensions1336090
+Node: Implementation Limitations1336748
+Node: Extension Design1337958
+Node: Old Extension Problems1339102
+Ref: Old Extension Problems-Footnote-11340620
+Node: Extension New Mechanism Goals1340677
+Ref: Extension New Mechanism Goals-Footnote-11344041
+Node: Extension Other Design Decisions1344230
+Node: Extension Future Growth1346343
+Node: Notes summary1346949
+Node: Basic Concepts1348107
+Node: Basic High Level1348788
+Ref: figure-general-flow1349070
+Ref: figure-process-flow1349756
+Ref: Basic High Level-Footnote-11353058
+Node: Basic Data Typing1353243
+Node: Glossary1356571
+Node: Copying1388458
+Node: GNU Free Documentation License1426001
+Node: Index1451121
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 7509f165..ea7ceb46 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -31055,8 +31055,7 @@ memory like so:
 $ @kbd{gawk --version}
-@print{} GNU Awk 5.2.0, API: 3.2, PMA: 2022.08Aug.03.1659520468 (Avon 7),
-   (GNU MPFR 4.0.1, GNU MP 6.1.2)
+@print{} GNU Awk 5.2.0, API 3.2, PMA Avon 7, (GNU MPFR 4.0.1, GNU MP 6.1.2)
 @print{} Copyright (C) 1989, 1991-2022 Free Software Foundation.
 @end example
@@ -34514,8 +34513,7 @@ is available like so:
 $ @kbd{gawk --version}
-@print{} GNU Awk 5.2.0, API: 3.2, PMA: 2022.08Aug.03.1659520468 (Avon 7),
-   (GNU MPFR 4.0.1, GNU MP 6.1.2)
+@print{} GNU Awk 5.2.0, API 3.2, PMA Avon 7, (GNU MPFR 4.0.1, GNU MP 6.1.2)
 @print{} Copyright (C) 1989, 1991-2022 Free Software Foundation.
 @end example
diff --git a/doc/ b/doc/
index 2da7db78..07ef03f6 100644
--- a/doc/
+++ b/doc/
@@ -29937,8 +29937,7 @@ memory like so:
 $ @kbd{gawk --version}
-@print{} GNU Awk 5.2.0, API: 3.2, PMA: 2022.08Aug.03.1659520468 (Avon 7),
-   (GNU MPFR 4.0.1, GNU MP 6.1.2)
+@print{} GNU Awk 5.2.0, API 3.2, PMA Avon 7, (GNU MPFR 4.0.1, GNU MP 6.1.2)
 @print{} Copyright (C) 1989, 1991-2022 Free Software Foundation.
 @end example
@@ -33396,8 +33395,7 @@ is available like so:
 $ @kbd{gawk --version}
-@print{} GNU Awk 5.2.0, API: 3.2, PMA: 2022.08Aug.03.1659520468 (Avon 7),
-   (GNU MPFR 4.0.1, GNU MP 6.1.2)
+@print{} GNU Awk 5.2.0, API 3.2, PMA Avon 7, (GNU MPFR 4.0.1, GNU MP 6.1.2)
 @print{} Copyright (C) 1989, 1991-2022 Free Software Foundation.
 @end example
diff --git a/main.c b/main.c
index 7f00160b..c1c38cc6 100644
--- a/main.c
+++ b/main.c
@@ -229,8 +229,7 @@ main(int argc, char **argv)
        bool have_srcfile = false;
        SRCFILE *s;
        char *cp;
-       const char *persist_file = getenv("GAWK_PERSIST_FILE"); /* backing file 
-for PMA */
+       const char *persist_file = getenv("GAWK_PERSIST_FILE"); /* backing file 
for PMA */
 #if defined(LOCALEDEBUG)
        const char *initial_locale;
@@ -1369,6 +1368,39 @@ nostalgia()
+/* get_pma_version --- get a usable version string out of PMA */
+const char *
+       static char buf[200];
+       const char *open, *close;
+       char *out;
+       const char *in;
+       /*
+        * The default version string looks like this:
+        * 2022.08Aug.03.1659520468 (Avon 7)
+        * Yucko. Just pull out the bits between the parens.
+        */
+       open = strchr(pma_version, '(');
+       if (open == NULL)
+               return pma_version;     // sigh.
+       open++;
+       close = strchr(open, ')');
+       for (out = buf, in = open; in < close;)
+               *out++ = *in++;
+       *out++ = '\0';
+       return buf;
 /* version --- print version message */
 static void
@@ -1376,10 +1408,10 @@ version()
        printf("%s", version_string);
 #ifdef DYNAMIC
-       printf(", PMA: %s", pma_version);
+       printf(", PMA %s", get_pma_version());
 #ifdef HAVE_MPFR
        printf(", (GNU MPFR %s, GNU MP %s)", mpfr_get_version(), gmp_version);


Summary of changes:
 ChangeLog             |  18 ++
 doc/ChangeLog         |   6 +
 doc/         | 494 +++++++++++++++++++++++++-------------------------
 doc/gawk.texi         |   6 +-
 doc/       |   6 +-
 eval.c                |   1 +
 main.c                |  49 ++++-
 pc/ChangeLog          |   6 +
 pc/GenMakefileTst.awk |   2 +-
 pc/Makefile.tst       |   4 +-
 10 files changed, 327 insertions(+), 265 deletions(-)


reply via email to

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