aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2020-07-28 20:47:34 +0300
committerArnold D. Robbins <arnold@skeeve.com>2020-07-28 20:47:34 +0300
commit9ef797b31c4d9200774ce8e6040c0eb009c58518 (patch)
tree9dec8c44731a3f1d54083c49994637df0e9b61fc
parentb11ce4a54d8ed198e734b3f8a86ed0d245bdd664 (diff)
parent7b10924a0f6cc443742af2f032ddbafea1c62e4e (diff)
downloadegawk-9ef797b31c4d9200774ce8e6040c0eb009c58518.tar.gz
egawk-9ef797b31c4d9200774ce8e6040c0eb009c58518.tar.bz2
egawk-9ef797b31c4d9200774ce8e6040c0eb009c58518.zip
Merge branch 'gawk-5.1-stable'
-rw-r--r--ChangeLog11
-rw-r--r--TODO4
-rw-r--r--awk.h6
-rw-r--r--awkgram.c4
-rw-r--r--awkgram.y4
-rw-r--r--build-aux/ChangeLog4
-rwxr-xr-xbuild-aux/install-sh115
-rw-r--r--debug.c2
-rw-r--r--doc/ChangeLog5
-rw-r--r--doc/gawk.info283
-rw-r--r--doc/gawk.texi2
-rw-r--r--doc/gawktexi.in2
-rw-r--r--eval.c2
13 files changed, 226 insertions, 218 deletions
diff --git a/ChangeLog b/ChangeLog
index bcad5f82..df5db6fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2020-07-28 Arnold D. Robbins <arnold@skeeve.com>
+
+ Eliminate 'iszero: redefined' warning from tcc.
+
+ * awk.h (is_zero): Renamed from `iszero'.
+ (boolval): Update usage.
+ * awkgram.y [GRAMMAR]: Ditto.
+ (negate_num): Ditto.
+ * debug.c (condition_triggered): Ditto.
+ * eval.c (set_LINT): Ditto.
+
2020-07-26 Arnold D. Robbins <arnold@skeeve.com>
* awkgram.c, command.c: Regenerated with Bison 3.7.
diff --git a/TODO b/TODO
index f2b3e1be..9d01bafe 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-Mon Jun 29 11:16:12 IDT 2020
+Tue Jul 28 20:45:09 IDT 2020
============================
There were too many files tracking different thoughts and ideas for
@@ -33,6 +33,8 @@ Minor Cleanups and Code Improvements
Message cleanup:
* Messages are inconsistent about final punctuation (periods etc.)
+ Go through the FIXMEs in the manual and fix as many as possible.
+
Minor New Features
------------------
diff --git a/awk.h b/awk.h
index ed6a6ee4..3b688b0c 100644
--- a/awk.h
+++ b/awk.h
@@ -1307,7 +1307,7 @@ DEREF(NODE *r)
#define get_number_uj(n) numtype_choose((n), mpfr_get_uj((n)->mpg_numbr, ROUND_MODE), (uintmax_t) mpz_get_d((n)->mpg_i), (uintmax_t) (n)->numbr)
-#define iszero(n) numtype_choose((n), mpfr_zero_p((n)->mpg_numbr), (mpz_sgn((n)->mpg_i) == 0), ((n)->numbr == 0.0))
+#define is_zero(n) numtype_choose((n), mpfr_zero_p((n)->mpg_numbr), (mpz_sgn((n)->mpg_i) == 0), ((n)->numbr == 0.0))
#define IEEE_FMT(r, t) (void) (do_ieee_fmt && format_ieee(r, t))
@@ -1325,7 +1325,7 @@ DEREF(NODE *r)
#define is_mpg_number(n) 0
#define is_mpg_float(n) 0
#define is_mpg_integer(n) 0
-#define iszero(n) ((n)->numbr == 0.0)
+#define is_zero(n) ((n)->numbr == 0.0)
#endif
#define var_uninitialized(n) ((n)->var_value == Nnull_string)
@@ -1983,7 +1983,7 @@ boolval(NODE *t)
{
(void) fixtype(t);
if ((t->flags & NUMBER) != 0)
- return ! iszero(t);
+ return ! is_zero(t);
return (t->stlen > 0);
}
diff --git a/awkgram.c b/awkgram.c
index ed664c8f..2e55534a 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -3059,7 +3059,7 @@ regular_loop:
if (yyvsp[-1] != NULL) {
NODE *n = yyvsp[-1]->nexti->nexti->memory;
- if ((n->flags & (STRING|STRCUR)) != 0 || ! iszero(n))
+ if ((n->flags & (STRING|STRCUR)) != 0 || ! is_zero(n))
goto regular_print;
bcfree(yyvsp[-1]->lasti); /* Op_field_spec */
@@ -4901,7 +4901,7 @@ negate_num(NODE *n)
#ifdef HAVE_MPFR
if (is_mpg_integer(n)) {
- if (! iszero(n)) {
+ if (! is_zero(n)) {
mpz_neg(n->mpg_i, n->mpg_i);
return;
}
diff --git a/awkgram.y b/awkgram.y
index f78fe470..4017b9b4 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -1154,7 +1154,7 @@ simple_stmt
if ($3 != NULL) {
NODE *n = $3->nexti->nexti->memory;
- if ((n->flags & (STRING|STRCUR)) != 0 || ! iszero(n))
+ if ((n->flags & (STRING|STRCUR)) != 0 || ! is_zero(n))
goto regular_print;
bcfree($3->lasti); /* Op_field_spec */
@@ -2399,7 +2399,7 @@ negate_num(NODE *n)
#ifdef HAVE_MPFR
if (is_mpg_integer(n)) {
- if (! iszero(n)) {
+ if (! is_zero(n)) {
mpz_neg(n->mpg_i, n->mpg_i);
return;
}
diff --git a/build-aux/ChangeLog b/build-aux/ChangeLog
index 935c733b..553b1a78 100644
--- a/build-aux/ChangeLog
+++ b/build-aux/ChangeLog
@@ -1,3 +1,7 @@
+2020-07-28 Arnold D. Robbins <arnold@skeeve.com>
+
+ * install-sh: Updated from GNULIB.
+
2020-07-22 Arnold D. Robbins <arnold@skeeve.com>
* ltmain.sh: New file, from extension/build-aux.
diff --git a/build-aux/install-sh b/build-aux/install-sh
index 20d8b2ea..b34a8fc5 100755
--- a/build-aux/install-sh
+++ b/build-aux/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2018-03-11.20; # UTC
+scriptversion=2020-07-26.22; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,6 +69,10 @@ posix_mkdir=
# Desired mode of installed file.
mode=0755
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
+
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
@@ -301,22 +305,6 @@ do
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
@@ -326,52 +314,49 @@ do
fi
posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- # Note that $RANDOM variable is not portable (e.g. dash); Use it
- # here however when possible just to lower collision chance.
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-
- trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- # Because "mkdir -p" follows existing symlinks and we likely work
- # directly in world-writeable /tmp, make sure that the '$tmpdir'
- # directory is successfully created first before we actually test
- # 'mkdir -p' feature.
- if (umask $mkdir_umask &&
- $mkdirprog $mkdir_mode "$tmpdir" &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- test_tmpdir="$tmpdir/a"
- ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # The $RANDOM variable is not portable (e.g., dash). Use it
+ # here however when possible just to lower collision chance.
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+
+ trap '
+ ret=$?
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
+ exit $ret
+ ' 0
+
+ # Because "mkdir -p" follows existing symlinks and we likely work
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
+ # directory is successfully created first before we actually test
+ # 'mkdir -p'.
+ if (umask $mkdir_umask &&
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+ fi
+ trap '' 0;;
esac
if
@@ -382,7 +367,7 @@ do
then :
else
- # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
@@ -411,7 +396,7 @@ do
prefixes=
else
if $posix_mkdir; then
- (umask=$mkdir_umask &&
+ (umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
diff --git a/debug.c b/debug.c
index 68740d6d..343d2d08 100644
--- a/debug.c
+++ b/debug.c
@@ -1616,7 +1616,7 @@ condition_triggered(struct condition *cndn)
return false; /* not triggered */
force_number(r);
- di = ! iszero(r);
+ di = ! is_zero(r);
DEREF(r);
return di;
}
diff --git a/doc/ChangeLog b/doc/ChangeLog
index f40c6b8b..a2ce4805 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2020-07-28 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Change a FIXME into a real cross reference. Thanks
+ to Antonio Columbo for the report.
+
2020-07-26 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Document that get_mpfr and get_mpz are obsolete
diff --git a/doc/gawk.info b/doc/gawk.info
index 49825017..31e209c7 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -24750,7 +24750,8 @@ operations:
treated as read-only. However, unlike strings, memory for MPFR/GMP
values allocated by an extension and passed into 'gawk' is _copied_
by 'gawk'; the extension should then free the values itself to
- avoid memory leaks. This is discussed further in *FIXME*.
+ avoid memory leaks. This is discussed further in *API Ownership of
+ MPFR and GMP Values*.
* The API defines several simple 'struct's that map values as seen
from 'awk'. A value can be a 'double', a string, or an array (as
@@ -37847,146 +37848,146 @@ Ref: figure-call-new-function996119
Node: Extension API Description998181
Node: Extension API Functions Introduction999894
Ref: table-api-std-headers1001730
-Node: General Data Types1005943
-Ref: General Data Types-Footnote-11014573
-Node: Memory Allocation Functions1014872
-Ref: Memory Allocation Functions-Footnote-11019373
-Node: Constructor Functions1019472
-Node: API Ownership of MPFR and GMP Values1022938
-Node: Registration Functions1024251
-Node: Extension Functions1024951
-Node: Exit Callback Functions1030273
-Node: Extension Version String1031523
-Node: Input Parsers1032186
-Node: Output Wrappers1044907
-Node: Two-way processors1049419
-Node: Printing Messages1051684
-Ref: Printing Messages-Footnote-11052855
-Node: Updating ERRNO1053008
-Node: Requesting Values1053747
-Ref: table-value-types-returned1054484
-Node: Accessing Parameters1055420
-Node: Symbol Table Access1056657
-Node: Symbol table by name1057169
-Ref: Symbol table by name-Footnote-11060193
-Node: Symbol table by cookie1060321
-Ref: Symbol table by cookie-Footnote-11064506
-Node: Cached values1064570
-Ref: Cached values-Footnote-11068106
-Node: Array Manipulation1068259
-Ref: Array Manipulation-Footnote-11069350
-Node: Array Data Types1069387
-Ref: Array Data Types-Footnote-11072045
-Node: Array Functions1072137
-Node: Flattening Arrays1076635
-Node: Creating Arrays1083611
-Node: Redirection API1088378
-Node: Extension API Variables1091211
-Node: Extension Versioning1091922
-Ref: gawk-api-version1092351
-Node: Extension GMP/MPFR Versioning1094082
-Node: Extension API Informational Variables1095710
-Node: Extension API Boilerplate1096783
-Node: Changes from API V11100757
-Node: Finding Extensions1102329
-Node: Extension Example1102888
-Node: Internal File Description1103686
-Node: Internal File Ops1107766
-Ref: Internal File Ops-Footnote-11119116
-Node: Using Internal File Ops1119256
-Ref: Using Internal File Ops-Footnote-11121639
-Node: Extension Samples1121913
-Node: Extension Sample File Functions1123442
-Node: Extension Sample Fnmatch1131091
-Node: Extension Sample Fork1132578
-Node: Extension Sample Inplace1133796
-Node: Extension Sample Ord1137421
-Node: Extension Sample Readdir1138257
-Ref: table-readdir-file-types1139146
-Node: Extension Sample Revout1140213
-Node: Extension Sample Rev2way1140802
-Node: Extension Sample Read write array1141542
-Node: Extension Sample Readfile1143484
-Node: Extension Sample Time1144579
-Node: Extension Sample API Tests1146331
-Node: gawkextlib1146823
-Node: Extension summary1149741
-Node: Extension Exercises1153443
-Node: Language History1154685
-Node: V7/SVR3.11156341
-Node: SVR41158493
-Node: POSIX1159927
-Node: BTL1161308
-Node: POSIX/GNU1162037
-Node: Feature History1167815
-Node: Common Extensions1184134
-Node: Ranges and Locales1185417
-Ref: Ranges and Locales-Footnote-11190033
-Ref: Ranges and Locales-Footnote-21190060
-Ref: Ranges and Locales-Footnote-31190295
-Node: Contributors1190518
-Node: History summary1196515
-Node: Installation1197895
-Node: Gawk Distribution1198839
-Node: Getting1199323
-Node: Extracting1200286
-Node: Distribution contents1201924
-Node: Unix Installation1208404
-Node: Quick Installation1209086
-Node: Shell Startup Files1211500
-Node: Additional Configuration Options1212589
-Node: Configuration Philosophy1214904
-Node: Non-Unix Installation1217273
-Node: PC Installation1217733
-Node: PC Binary Installation1218571
-Node: PC Compiling1219006
-Node: PC Using1220123
-Node: Cygwin1223676
-Node: MSYS1224900
-Node: VMS Installation1225502
-Node: VMS Compilation1226293
-Ref: VMS Compilation-Footnote-11227522
-Node: VMS Dynamic Extensions1227580
-Node: VMS Installation Details1229265
-Node: VMS Running1231518
-Node: VMS GNV1235797
-Node: VMS Old Gawk1236532
-Node: Bugs1237003
-Node: Bug address1237666
-Node: Usenet1240648
-Node: Maintainers1241652
-Node: Other Versions1242837
-Node: Installation summary1249925
-Node: Notes1251134
-Node: Compatibility Mode1251928
-Node: Additions1252710
-Node: Accessing The Source1253635
-Node: Adding Code1255072
-Node: New Ports1261291
-Node: Derived Files1265666
-Ref: Derived Files-Footnote-11271326
-Ref: Derived Files-Footnote-21271361
-Ref: Derived Files-Footnote-31271959
-Node: Future Extensions1272073
-Node: Implementation Limitations1272731
-Node: Extension Design1273941
-Node: Old Extension Problems1275085
-Ref: Old Extension Problems-Footnote-11276603
-Node: Extension New Mechanism Goals1276660
-Ref: Extension New Mechanism Goals-Footnote-11280024
-Node: Extension Other Design Decisions1280213
-Node: Extension Future Growth1282326
-Node: Notes summary1282932
-Node: Basic Concepts1284090
-Node: Basic High Level1284771
-Ref: figure-general-flow1285053
-Ref: figure-process-flow1285738
-Ref: Basic High Level-Footnote-11289039
-Node: Basic Data Typing1289224
-Node: Glossary1292552
-Node: Copying1324437
-Node: GNU Free Documentation License1361980
-Node: Index1387100
+Node: General Data Types1005979
+Ref: General Data Types-Footnote-11014609
+Node: Memory Allocation Functions1014908
+Ref: Memory Allocation Functions-Footnote-11019409
+Node: Constructor Functions1019508
+Node: API Ownership of MPFR and GMP Values1022974
+Node: Registration Functions1024287
+Node: Extension Functions1024987
+Node: Exit Callback Functions1030309
+Node: Extension Version String1031559
+Node: Input Parsers1032222
+Node: Output Wrappers1044943
+Node: Two-way processors1049455
+Node: Printing Messages1051720
+Ref: Printing Messages-Footnote-11052891
+Node: Updating ERRNO1053044
+Node: Requesting Values1053783
+Ref: table-value-types-returned1054520
+Node: Accessing Parameters1055456
+Node: Symbol Table Access1056693
+Node: Symbol table by name1057205
+Ref: Symbol table by name-Footnote-11060229
+Node: Symbol table by cookie1060357
+Ref: Symbol table by cookie-Footnote-11064542
+Node: Cached values1064606
+Ref: Cached values-Footnote-11068142
+Node: Array Manipulation1068295
+Ref: Array Manipulation-Footnote-11069386
+Node: Array Data Types1069423
+Ref: Array Data Types-Footnote-11072081
+Node: Array Functions1072173
+Node: Flattening Arrays1076671
+Node: Creating Arrays1083647
+Node: Redirection API1088414
+Node: Extension API Variables1091247
+Node: Extension Versioning1091958
+Ref: gawk-api-version1092387
+Node: Extension GMP/MPFR Versioning1094118
+Node: Extension API Informational Variables1095746
+Node: Extension API Boilerplate1096819
+Node: Changes from API V11100793
+Node: Finding Extensions1102365
+Node: Extension Example1102924
+Node: Internal File Description1103722
+Node: Internal File Ops1107802
+Ref: Internal File Ops-Footnote-11119152
+Node: Using Internal File Ops1119292
+Ref: Using Internal File Ops-Footnote-11121675
+Node: Extension Samples1121949
+Node: Extension Sample File Functions1123478
+Node: Extension Sample Fnmatch1131127
+Node: Extension Sample Fork1132614
+Node: Extension Sample Inplace1133832
+Node: Extension Sample Ord1137457
+Node: Extension Sample Readdir1138293
+Ref: table-readdir-file-types1139182
+Node: Extension Sample Revout1140249
+Node: Extension Sample Rev2way1140838
+Node: Extension Sample Read write array1141578
+Node: Extension Sample Readfile1143520
+Node: Extension Sample Time1144615
+Node: Extension Sample API Tests1146367
+Node: gawkextlib1146859
+Node: Extension summary1149777
+Node: Extension Exercises1153479
+Node: Language History1154721
+Node: V7/SVR3.11156377
+Node: SVR41158529
+Node: POSIX1159963
+Node: BTL1161344
+Node: POSIX/GNU1162073
+Node: Feature History1167851
+Node: Common Extensions1184170
+Node: Ranges and Locales1185453
+Ref: Ranges and Locales-Footnote-11190069
+Ref: Ranges and Locales-Footnote-21190096
+Ref: Ranges and Locales-Footnote-31190331
+Node: Contributors1190554
+Node: History summary1196551
+Node: Installation1197931
+Node: Gawk Distribution1198875
+Node: Getting1199359
+Node: Extracting1200322
+Node: Distribution contents1201960
+Node: Unix Installation1208440
+Node: Quick Installation1209122
+Node: Shell Startup Files1211536
+Node: Additional Configuration Options1212625
+Node: Configuration Philosophy1214940
+Node: Non-Unix Installation1217309
+Node: PC Installation1217769
+Node: PC Binary Installation1218607
+Node: PC Compiling1219042
+Node: PC Using1220159
+Node: Cygwin1223712
+Node: MSYS1224936
+Node: VMS Installation1225538
+Node: VMS Compilation1226329
+Ref: VMS Compilation-Footnote-11227558
+Node: VMS Dynamic Extensions1227616
+Node: VMS Installation Details1229301
+Node: VMS Running1231554
+Node: VMS GNV1235833
+Node: VMS Old Gawk1236568
+Node: Bugs1237039
+Node: Bug address1237702
+Node: Usenet1240684
+Node: Maintainers1241688
+Node: Other Versions1242873
+Node: Installation summary1249961
+Node: Notes1251170
+Node: Compatibility Mode1251964
+Node: Additions1252746
+Node: Accessing The Source1253671
+Node: Adding Code1255108
+Node: New Ports1261327
+Node: Derived Files1265702
+Ref: Derived Files-Footnote-11271362
+Ref: Derived Files-Footnote-21271397
+Ref: Derived Files-Footnote-31271995
+Node: Future Extensions1272109
+Node: Implementation Limitations1272767
+Node: Extension Design1273977
+Node: Old Extension Problems1275121
+Ref: Old Extension Problems-Footnote-11276639
+Node: Extension New Mechanism Goals1276696
+Ref: Extension New Mechanism Goals-Footnote-11280060
+Node: Extension Other Design Decisions1280249
+Node: Extension Future Growth1282362
+Node: Notes summary1282968
+Node: Basic Concepts1284126
+Node: Basic High Level1284807
+Ref: figure-general-flow1285089
+Ref: figure-process-flow1285774
+Ref: Basic High Level-Footnote-11289075
+Node: Basic Data Typing1289260
+Node: Glossary1292588
+Node: Copying1324473
+Node: GNU Free Documentation License1362016
+Node: Index1387136

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 6d7694a2..874a4646 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -34402,7 +34402,7 @@ should also be treated as read-only. However, unlike strings,
memory for MPFR/GMP values allocated by an extension and passed
into @command{gawk} is @emph{copied} by @command{gawk}; the extension
should then free the values itself to avoid memory leaks. This is
-discussed further in @strong{FIXME}.
+discussed further in @strong{API Ownership of MPFR and GMP Values}.
@item
The API defines several simple @code{struct}s that map values as seen
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index e41fe930..9057e91d 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -33373,7 +33373,7 @@ should also be treated as read-only. However, unlike strings,
memory for MPFR/GMP values allocated by an extension and passed
into @command{gawk} is @emph{copied} by @command{gawk}; the extension
should then free the values itself to avoid memory leaks. This is
-discussed further in @strong{FIXME}.
+discussed further in @strong{API Ownership of MPFR and GMP Values}.
@item
The API defines several simple @code{struct}s that map values as seen
diff --git a/eval.c b/eval.c
index a66eaf37..9b3342c8 100644
--- a/eval.c
+++ b/eval.c
@@ -976,7 +976,7 @@ set_LINT()
}
}
} else {
- if (! iszero(n))
+ if (! is_zero(n))
do_flags |= DO_LINT_ALL;
}