aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
blob: 434748d938db544ca65637488d969ea10c8168ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
2022-03-22         Arnold D. Robbins     <arnold@skeeve.com>

	Make lint checks for builtin functions smarter. Initial
	report from Timothy Sample <samplet@ngyro.com>.

	* builtin.c (do_fflush): Require string type.
	(printf_common): Ditto.
	(do_index): Allow strnum for both arguments.
	(do_length): Ditto.
	(do_strftime): Ditto.
	(do_substr): Require numbers for arguments 2 and 3, string or
	strnum for argument 1.
	(do_match): Require string or strnum for argument 1.
	(do_dcgettext): Require strings for all arguments.
	(do_bindtextdomain): Ditto.
	(do_dcngettext): Require strings for arguments 5, 4, 2, and 1, and
	number for argument 3.

2022-03-03         Arnold D. Robbins     <arnold@skeeve.com>

	* NEWS: Updated.

2022-02-27         Arnold D. Robbins     <arnold@skeeve.com>

	* main.c (usage): Update the message for the gawkbug program.

2022-02-27         Arnold D. Robbins     <arnold@skeeve.com>

	Add `gawkbug' reporting program.

	* gawkbug.in: New file.
	* Makefile.am (bin_SCRIPTS): New, for  gawkbug.
	* configure.ac: Add gawkbug to AC_CONFIG_FILES list.
	* NEWS: Updated.
	* .gitignore: Updated.

2022-02-27         Arnold D. Robbins     <arnold@skeeve.com>

	* awk.h (cant_happen): Change to allow a format string and arguments,
	in order to provide a clue as to what went wrong, and not just
	print "internal error".
	* awkgram.y, debug.c, eval.c, interpret.h, io.c, main.c, mpfr.c,
	profile.c, re.c, symbol.c: Fix all uses of cant_happen().

2022-02-25         Arnold D. Robbins     <arnold@skeeve.com>

	Memory issues with MPFR, fix part 2. (Part 1 is in the
	extension directory.)

	* gawkapi.c (awk_value_to_node): Clear the GMP/MPFR values
	returned from the C extension after setting the internal
	variable.
	
2022-02-22         Arnold D. Robbins     <arnold@skeeve.com>

	Enable interval expressions even for --traditional, as BWK
	awk has supported them since 2019.

	* NEWS: Updated.
	* main.c (main): Add lint warning for --re-interval.
	(parse_args): Add explanatory comment.
	* re.c (resetup): Update the comment w.r.t. interval expressions.
	Change the test for enabled them to if do_traditional.

2022-02-22         Arnold D. Robbins     <arnold@skeeve.com>

	Fix resource links found by Coverity. Thanks to
	Jakub Martisko <jamartis@redhat.com> for the report.

	* ext.c (make_builtin): Free install_name before returning.
	* io.c (remap_std_file): Unconditionally close newfd.
	* symbol.c (load_symbols): Unref built_in also.

2022-12-10         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* io.c (wait_any): When saving a saved exit status returned by
	_cwait or waitpid or wait in struct redirect's status field, we
	should actually save the valued returned by sanitize_exit_status
	instead of the raw status. This fixes a bug whereby a saved status
	for a previously exited process was being returned by gawk_pclose
	without first being sanitized. Thanks to Jakub Martisko
	<jamartis@redhat.com> for reporting the bug.

2022-02-10         Arnold D. Robbins     <arnold@skeeve.com>

	* builtin.c (sanitize_exit_status): Fix formatting.

2022-02-07         Arnold D. Robbins     <arnold@skeeve.com>

	Continue fixing indirect calls of builtins.

	* awk.h (check_exact_args, check_args_min_max): Add declarations.
	* builtin.c (check_exact_args, check_args_min_max): New functions.
	(do_exp, do_fflush, do_index, do_int, do_isarray, do_length, do_log,
	do_sqrt, do_strftime, do_systime, do_mktime, do_system, do_tolower,
	do_toupper, do_atan2, do_sin, do_cos, do_rand, do_srand, do_match,
	do_sub, do_lshift, do_rshift, do_compl, do_strtonum, do_dcgettext,
	do_dcngettext, do_bindtextdomain, do_intdiv, do_typeof): Call
	the argument checking functions.
	(call_sub, call_match): Manually check argument count.
	* field.c (do_split, do_patsplit): Call the argument checking
	functions.
	* interpret.h (r_interpret): For indirect call of extension functions,
	pop the function name off the stack when done.
	* mpfr.c (do_atan2, do_mpfr_func, do_mpfr_int, do_mpfr_compl,
	do_mpfr_lshift, do_mpfr_rshift, do_mpfr_strtonum, do_mpfr_rand,
	do_mpfr_srand, do_mpfr_intdiv): Call the argument checking functions.

2022-02-04         Arnold D. Robbins     <arnold@skeeve.com>

	Start fixing issues with indirect calls of builtins.
	Thanks to Denis Shirokov <cosmogen@gmail.com> for the initial report.
	Much more remains to be done.

	* builtin.c (do_length): Check number of arguments, fatal if not one.
	If passed Node_var_new, turn it into the null string.
	* interpret.h (r_interpret): For Op_indirect_call, pop the function
	name off the stack.

2022-01-05         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.y (change_namespace): New function. Extracted from
	set_namespace.
	(want_namespace): New variable.
	[grammar]: Add explanatory comment about the change.
	(yylex): Change the namespace immediately from the lexer.
	(set_namespace): Adjust code.
	* symbol.c (load_symbols): Strip off leading awk:: so that
	PROCINFO["identifiers"] is like SYMTAB and FUNCTAB. This makes
	the code match the documentation. Thanks to John Naman
	<gawker@703n.com> for the bug report.

2021-12-17         Yuri Gribov           <tetra2005@gmail.com>

	Make a number of functions and variables static.

	* cint_array.c (argv_array_func): Make static.
	* debug.c (cur_rule, check_until): Ditto.
	* field.c (default_FS, FS_re_yes_case, FS_re_no_case, FS_regexp,
	FPAT_re_yes_case, FPAT_re_no_case, invalidate_field0: Ditto.
	* io.c (iopflags2str): Ditto.
	* main.c (ENVIRON_node): Ditto.
	* re.c (reflags2str): Ditto.
	* str_array.c (env_array_func): Ditto.

2021-12-08         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* gawkapi.c (api_sym_update): Allow undefined Node_var_new variables
	to be converted to arrays, otherwise API functions have no way
	of creating an array that is referenced in an undefined fashion in
	the program. This is somewhat comparable to how the set_argument
	API allows an undefined argument variable to be converted to an array.

2021-12-02         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* builtin.c (efwrite): Don't use return in call of function
	returning void. Some compilers might not like it.

2021-12-01         Arnold D. Robbins     <arnold@skeeve.com>

	* builtin.c (efflush): Don't use return in call of function
	returning void. It works, but is funky, and I think some
	compilers will complain.

	Unrelated. Clean up the calls to w32_maybe_set_errno.

	* awk.h (os_maybe_set_errno): Add declaration.
	* builtin.c (wrerror): Replaced ifdef'ed code calling
	w32_maybe_set_errno() with simple call to os_maybe_set_errno().
	* io.c (non_fatal_flush_std_file, close_io): Ditto.
	* main.c (usage, copyleft): Ditto.
	* nonposix.h (w32_maybe_set_errno): Remove declaration.

2021-11-30         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	Improve output redirection error handling for problems not detected
	until the final flush or close. Thanks to Miguel Pineiro Jr.
	<mpj@pineiro.cc> for the bug report and suggesting a fix.

	* awk.h (efflush): Add declaration.
	* builtin.c (efwrite): Break up into 3 functions by moving the
	flushing logic into efflush and the error handling logic into
	wrerror.
	(wrerror): New function containing the error-handling logic extracted
	from efwrite.
	(efflush): New function containing the fflush logic extracted from
	efwrite.
	* io.c (close_redir): Call efflush prior to closing the redirection
	to identify any problems with flushing output and to take advantage
	of the error-handling logic used for print and printf.

2021-11-21         Arnold D. Robbins     <arnold@skeeve.com>

	* builtin.c (do_typeof): Make Node_array_ref handling smarter.
	See test/stupid5.awk.

2021-11-18         Arnold D. Robbins     <arnold@skeeve.com>

	* gawkapi.c (awk_value_to_node): Fix handling of MPFR values
	coming back from an extension.

2021-11-07         Arnold D. Robbins     <arnold@skeeve.com>

	* mkinstalldirs: Removed, it wasn't used.
	* Makefile.in: Regenerated.

2021-11-03         Sam James             <sam@gentoo.org>

	* configure.ac: Fix AR_FLAGS assignment typo.
	* configure.ac: Rename AR_FLAGS to ARFLAGS.

2021-10-27         Arnold D. Robbins     <arnold@skeeve.com>

	* 5.1.1: Release tar ball made.

2021-10-24         Arnold D. Robbins     <arnold@skeeve.com>

	* README: Updated.

2021-10-20         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* msg.c (err): Need to check that FNR_node->var_value is non-NULL
	before testing with is_mpg_number.

2021-10-18         Arnold D. Robbins     <arnold@skeeve.com>

	Factor duplicated code out into a separate function.
	D.R.Y. principle.

	* symbol.c (get_name_from_awk_ns): New function.
	(lookup): Use it.
	(install): Use it.

	* awkgram.y (check_qualified_special): Use awk_namespace instead of a
	string constant.
	* profile.c (pprint): Ditto.
	(adjust_namespace): Ditto. Also, fix the check for the qualified
	name to look for the "::" in case one namespace is a prefix of
	another.

2021-10-13         Arnold D. Robbins     <arnold@skeeve.com>

	* README: Update version, copyright year.
	* custom.h: Update copyright year.

2021-09-26         Arnold D. Robbins     <arnold@skeeve.com>

	* builtin.c (do_mktime): Update that ISO 8601 does not allow
	hours > 23. Thanks to Nethox <nethox+awk@gmail.com> for the info.

2021-09-23         Arnold D. Robbins     <arnold@skeeve.com>

	* gawkapi.h: Some clean-up of comments in the header file.

2021-09-12         Arnold D. Robbins     <arnold@skeeve.com>

	* interpret.h: Remove subscript_in_array variable.

	Unrelated:

	* builtin.c (add_thousands): Fix insertion of thousands_sep
	string. Do it in reverse order.

2021-09-10         Arnold D. Robbins     <arnold@skeeve.com>

	* interpret.h: For Op_subscript, don't allow references into
	FUNCTAB and SYMTAB to create new elements.  Thanks to
	Jason C. Kwan <jasonckwan@yahoo.com> for the bug report.

	Unrelated:

	* aclocal.m4: Regenerated: Automake 1.16.4.
	* NEWS: Updated.

	Unrelated:

	* awkgram.y (YYERROR_IS_DECLARED): Added for Bison 3.8.
	* command.y (YYERROR_IS_DECLARED): Ditto.
	* NEWS: Updated.

2021-09-09         Arnold D. Robbins     <arnold@skeeve.com>

	Move to Autoconf 2.71 (finally!)

	* configure.ac: Updated.
	* aclocal.m4, configh.in configure: Regenerated.
	* NEWS: Updated.

2021-09-06         Arnold D. Robbins     <arnold@skeeve.com>

	Have the ' flag work for %d in MPFR mode also. Thanks to
	Dan Nielsen <catskill549@yahoo.com> for the report.

	* builtin.c (add_thousands):  New function.
	(reverse): New helper function.
	(format_tree): Use add_thousands if MPFR and an integer
	format.

2021-09-03         Arnold D. Robbins     <arnold@skeeve.com>

	* main.c (UPDATE_YEAR): Update to 2021.

2021-09-03         Arnold D. Robbins     <arnold@skeeve.com>

	* mpfr.c (mpg_cmp_as_numbers): Avoid compiler warning about possibly
	used before set.  Thanks to Michal Jaegermann for the report.

2021-08-18         Arnold D. Robbins     <arnold@skeeve.com>

	* main.c (main): Change have_srcfile from int to bool.

2021-08-15         Arnold D. Robbins     <arnold@skeeve.com>

	Allow setting AR and ARFLAGS on the configure command line.
	Thanks to Jacob Burkholder <jake.burkholder2@gmail.com> for
	the report.

	* configure.ac (AR_FLAGS): Provide default value.
	(AR): Call AC_SUBST on it.

2021-08-13         Arnold D. Robbins     <arnold@skeeve.com>

	* builtin.c (do_sub): Rationalize handling of strongly typed
	regex as argument to sub/gsub, as well as rationalize the return
	value from gensub to always be string. Thanks to John Naman
	<gawker@703n.com> for the bug report.

2021-08-05         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* mpfr.c (do_mpfr_func): New argument, warn_negative. If true,
	print a warning message about a negative argument. Bring -M
	code into line with regular code. Bug report from Neil Ormos
	in the help-gawk list.

	Unrelated:

	* mpfr.c (do_mpfr_int_div, mpg_div, mpg_mod): If dividing by
	zero, print a fatal error messages. Brings MPFR code into line
	with the regular code. Thanks to Peng Yu for noticing the bug, in
	the help-gawk list.

2021-07-23         Arnold D. Robbins     <arnold@skeeve.com>

	* awk.h (exec_count_t): Add typedef for Vax VMS C and everyone else.
	(EXEC_COUNT_FMT, EXEC_COUNT_PROFILE_FMT): Corresponding format
	strings for printf.
	* debug.c (print_instruction): Use EXEC_COUNT_FMT.
	* profile.c (indent): Ditto and use EXEC_COUNT_PROFILE_FMT.

2021-07-07         Arnold D. Robbins     <arnold@skeeve.com>

	* array.c (asort_actual): Add a lint warning for passing the
	same array as the first two arguments without a third.
	Thanks to Peng Yu <pengyu.ut@gmail.com> for the report.

2021-06-30         Arnold D. Robbins     <arnold@skeeve.com>

	* custom.h: Add a bunch of defines to work around the continous,
	needless churn in support/dfa.c.

2021-06-04         Arnold D. Robbins     <arnold@skeeve.com>

	* builtin.c (format_tree): In MPFR prints, cast values to
	int for proper int vs. unsigned comparison. Fixes things
	for HP-UX. Thanks to Daniel Richard G. for the report.

2021-05-21         Arnold D. Robbins     <arnold@skeeve.com>

	* debug.c: For z/OS, use %#p to print pointers, %p everything else.

2021-05-13         Arnold D. Robbins     <arnold@skeeve.com>

	* custom.h: For z/OS, define _REGEX_INCLUDE_LIMITS_H.
	* profile.c (pprint): Add a diagnostic print for an
	unexprected node type.

2021-05-05         Arnold D. Robbins     <arnold@skeeve.com>

	* CMakeLists.txt: Removed.
	* cmake: Removed directory and its contents.

2021-05-05         Arnold D. Robbins     <arnold@skeeve.com>

	Move to Automake 1.16.3.

	* configure.ac (AM_INIT_AUTOMAKE): Add subdir-objects option.
	* NEWS: Updated.

	Get `make distcheck' working again:

	* Makefile.am (EXTRA_DIST): Remove files that are now in build-aux.

	Unrelated:

	* builtin.c (do_sub): Remove check for BOOL as target. It's not
	correct anymore.

2021-05-03         Arnold D. Robbins     <arnold@skeeve.com>

	* eval.c (flags2str): Move BOOL entry into the right place in the
	list.
	* NEWS: Update with info on mkbool.

2021-05-02         Arnold D. Robbins     <arnold@skeeve.com>

	* awk.h (do_bool): Renamed do_mkbool.
	* awkgram.y (tokentab): Rename bool to mkbool.
	* builtin.c (do_bool): Renamed do_mkbool.

2021-04-30         Arnold D. Robbins     <arnold@skeeve.com>

	* awk.h (boolval): Remove check for BOOL flag. It was incorrect.
	Thanks to Andrew Schorr for the catch.
	For Node_val, update the comment to describe the BOOL flag, and
	move BOOL up to be alongside the flags for Node_val.

2021-04-28         Arnold D. Robbins     <arnold@skeeve.com>

	Make bools plain numbers that have bool flag instead of
	being weird string values.

	* array.c (do_sort_up_value_type): Remove special ordering
	for booleans.
	* awk.h (warn_bool): Remove declaration.
	* builtin.c (warn_bool): Remove function and all calls.
	* gawkapi.c (node_to_awk_value): Update switches to look for
	NUMBER|BOOL.
	* node.c (make_bool_node): Revise string values and flag bits.

2021-04-16         Arnold D. Robbins     <arnold@skeeve.com>

	* main.c (arg_assign): For -v '@/...' make sure that there are
	at least three characters there. Thanks to Ed Morton
	<mortoneccc@comcast.net> for the report.

2021-04-14         Arnold D. Robbins     <arnold@skeeve.com>

	Fix up lint warnings for "no effect" to avoid false warnings.
	Straighten out the messages, and remove the run-time warning,
	since a parse-time warning is already issued. Thanks to
	Arkadiusz Drabczyk <arkadiusz@drabczyk.org> for the initial
	bug report.

	* awkgram.y (isnoeffect): Add more opcodes that are "no effect".
	(add_lint): For LINT_no_effect, check that all the opcodes in the
	list are "no effect". Only if so, issue the warning. Remove the
	addition of the run-time warning.
	* interpret.h (r_interpret): Remove LINT_no_effect from Op_lint
	case.

2021-04-14         Arnold D. Robbins     <arnold@skeeve.com>

	* array.c (do_sort_up_value_type): Fix order with bools.

2021-03-30         Arnold D. Robbins     <arnold@skeeve.com>

	* gawk_api.h (gawk_api_minor_version): Increase to 2.
	* gawk_api.c (assign_bool): New function.
	(node_to_awk_value): Finish updating for bool types and values.

2021-03-22         Arnold D. Robbins     <arnold@skeeve.com>

	* gawkapi.h (make_bool): New inline function.
	Update table of request/return types.
	* gawkapi.c (awk_value_to_node): Add support for AWK_BOOL.
	(node_to_awk_value): Start on same. Not yet complete.

2021-03-21         Arnold D. Robbins     <arnold@skeeve.com>

	* str_array.c (fnv1a_hash_string): New function.
	(str_array_init): Use fnv1a_hash_string if AWK_HASH env var
	set to "fnv1a".

2021-03-20         Arnold D. Robbins     <arnold@skeeve.com>

	* array.c (do_sort_up_value_type): Add logic for handling bools.

2021-03-08         Arnold D. Robbins     <arnold@skeeve.com>

	* awk.h (warn_bool, do_bool): Add function declarations.
	* awkgram.y (tokentab): Add entry for "bool" builtin.
	* builtin.c (warn_bool): New function.
	(do_index, do_substr, do_toupper, do_tolower, do_match,
	do_length): Call it.
	(do_sub): If first arg to sub/gsub is bool, fatal error.
	(do_bool): New function.
	* field.c (do_split, do_patsplit): Call warn_bool.
	* main.c (load_procinfo_bools): Removed function and call.

2021-03-05         Arnold D. Robbins     <arnold@skeeve.com>

	Start on a bool type for gawk.

	* awk.h (BOOL): New flag value.
	(make_bool_node): Add declaration of new function.
	(bool_val): Check for BOOL along with NUMBER.
	* builtin.c (do_typeof): Add support for BOOL.
	* eval.c (flags2str): Ditto.
	* gawkapi.h (awk_val_type): Add AWK_BOOL.
	(awk_value_t): Add awk_bool_t element to the union and macro for it.
	(struct gawk_api): Update the table of request/return values.
	* main.c (load_procinfo_bools): New function.
	(load_procinfo): Call it.
	* node.c (make_bool_node): New function.

2021-02-13         Arnold D. Robbins     <arnold@skeeve.com>

	* io.c (nextfile): Use the value of ARGC directly in the for
	loop, in case it gets changed by code or by a command line
	assignment. Thanks to the discussion in comp.lang.awk for
	the report.

2021-01-28         Arnold D. Robbins     <arnold@skeeve.com>

	Fix a Day One Bug!

	* main.c (main): For -b option, only set LC_ALL to C if
	not --posix. Ooops.

2021-01-09         Arnold D. Robbins     <arnold@skeeve.com>

	Fix problems turning something like 018 into decimal.
	Thanks to Arkadiusz Drabczyk <arkadiusz@drabczyk.org> and to
	Jean-Philippe Guérard <jean-philippe.guerard@xn--tigreray-i1a.org>
	for the reports.

	* builtin.c (nondec2awknum): Use a copy of len, in case we detect
	8 or 9 and have to restart as decimal.
	* mpfr.c (mpg_strtoui): For 8 or 9, set base to 10.

	Unrelated:
	* array.c, awk.h, awkgram., builtin.c, cmd.h, command.y, debug.c,
	eval.c, gawk.api.c, gawkapi.h, interpret.h, io.c, main.c, mfpr.c,
	node.c, profile.c, re.c: Update copyright year.

2021-01-08         Arnold D. Robbins     <arnold@skeeve.com>

	General tightening up use of const and types. Thanks to
	the C++ porting experiment.

	* array.c (null_array): Separate out multiple assignment of zero.
	* awk.h: Add <math.h> here and pull it out of individual files.
	(CONVFMT): Make const char *.
	(quote): Make const char *.
	(defpath): Make const char *.
	(deflibpath): Make const char *.
	(envsep): Make const char *.
	(DO_FLAG_NONE): New zero enum value.
	(getblock): Add a cast to the ty argument.
	(make_regnode): First argument is now NODETYPE.
	(gawk_name): Returns const char *.
	* awkgram.y: Include argument types in read_func pointer.
	(make_regnode): First argument is now NODETYPE.
	* builtin.c (do_typeof): Use const char *.
	(format_nan_inf): Move declaration of val to top of function.
	* cmd.h (dbg_prompt, commands_prompt, eval_prompt, dgawk_prompt):
	Make const char *.
	(struct cmd_token): Use const char *. Rename `class' to `lex_class'.
	* command.y (lex_class): Update all uses.
	(find_command): Use const char *.
	* debug.c (dbg_prompt, commands_prompt, eval_prompt, dgawk_prompt,
	output_file): Make const char *.
	(struct dbg_option): Use const char *.
	(do_info): Use const char *. Cast stop.command to enum argtype.
	(do_finish): Cast stop.command to enum argtype.
	(do_return, do_until): Ditto.
	(print_instruction, set_gawk_output, set_prompt): Add casts to
	some function parameters.
	* eval.c (update_ERRNO_int): Use const char *.
	* gawk.api.c (valtype2str): Return const char *.
	(api_get_argument): Use awk_true instead of true in return statements.
	(awk_value_to_node): Move declaration of tval to top of function.
	(api_release): Cast a_cookie to NODE *.
	* gawkapi.h (struct awk_input): Include argument types in
	read_func pointer.
	* interpret.h (r_interpret): Add cast to argument in call to
	do_getline_redir.
	* io.c (read_with_timeout): Change second param to void * from char *.
	(redirect_string): Add casts to function call parameters.
	(path_info): Use const char *.
	(init_awkpath): Ditto.
	* main.c (CONVFMT, locale_dir): Now const char *.
	(do_flags): Init to DO_FLAG_NONE instead of zero.
	* mfpr.c (get_rnd_mode): Add cast to return value.
	(set_round_mode): Add cast to assignment of rndm.
	(do_mpfr_func): Include argument types in type of second parameter.
	* node.c (r_make_number): Remove declaration of strtod.
	* profile.c (pp_push): Add cast in assignment to n->type. Use
	const char * for `pre' at Op_func_call.
	* re.c (check_bracket_exp): Add cast to return from memchr.

2021-01-07         Arnold D. Robbins     <arnold@skeeve.com>

	* builtin.c (format_tree): Generalize handling of invalid
	format modifiers. Add support for three more letters. Thanks to
	Arkadiusz Drabczyk <arkadiusz@drabczyk.org> for the report.

	Unrelated:

	* io.c (rsnullscan): Adjust loop test to get to end of string
	when re match is null string. Thanks to Ed Morton
	<mortoneccc@comcast.net> for the report.

2020-12-26         Arnold D. Robbins     <arnold@skeeve.com>

	* NEWS: Updated.

2020-12-20         Arnold D. Robbins     <arnold@skeeve.com>

	Second steps fixing +inform, +nancy, for MPFR.

	* builtin.c (format_nan_inf): Use mpfr_signbit instead of mpfr_sgn.
	* mpfr.c (force_mpnum): Check for NaN and leading minus and if so
	set the signbit with mpfr_setsign.
	(mpg_force_number): Copy in code from f_force_number to check
	properly for +inf, +nan.

2020-12-19         Arnold D. Robbins     <arnold@skeeve.com>

	First steps fixing +inform, +nancy. Sigh.

	* awk.h (is_ieee_magic_val): Add declaration.
	* node.c (is_ieee_magic_val): Make extern, not static.
	(r_force_number): Make the check smarter, catch -nan.

2020-11-02         Arnold D. Robbins     <arnold@skeeve.com>

	Make gawk numeric comparisons act like C doubles.
	MPFR differs from doubles w.r.t. NaN, not sure why yet.

	* awk.h (scalar_cmp_t): New enum.
	* builtin.c (format_nan_inf): Use mpfr_signbit, not mpfr_sgn.
	* eval.c (cmp_doubles): New routine.
	(cmp_scalars): Change type to bool, rework logic.
	* interpret.h (r_interpret): Rework scalar comparisons.
	* mpfr.c (mpg_cmp_as_numbers): New routine.
	* node.c: Use <math.h>, not "math.h", minor comment edits.

2020-11-02         Arnold D. Robbins     <arnold@skeeve.com>

	* re.c (make_regexp): Cast len parameter to int to avoid
	compiler warnings.

2020-10-31         Arnold D. Robbins     <arnold@skeeve.com>

	* re.c (make_regexp): When re_compile_pattern fails, use the
	original text of the regexp in the error message. Thanks to Neil
	R. Ormos <ormos-gnulists17@ormos.org> for the report.

2020-10-29         Arnold D. Robbins     <arnold@skeeve.com>

	* eval.c (setup_frame): Handle the case of values from FUNCTAB.
	Thanks to Denis Shirokov <cosmogen@gmail.com> for the report.

2020-10-12         Arnold D. Robbins     <arnold@skeeve.com>

	* gawkapi.c (api_lintwarn): Fix comparison, should be to check
	lintfunc, not lintwarn. Thanks to OLLIER Jean-François
	<lalanne.51@wanadoo.fr>, reported 23 March, 2014.

2020-10-11         Arnold D. Robbins     <arnold@skeeve.com>

	* re.c (make_regexp): Add {} to characters that cause rp->maybe_long
	to be true.
	* io.c (rsrescan): Update comment for step 4.

2020-09-21         Arnold D. Robbins     <arnold@skeeve.com>

	* awk.h (enum redirect_flags): Add RED_NONE.
	(redirect_flags_t): New typedef.
	* io.c (redflags2str): Handle RED_NONE.
	(check_duplicated_redirections): New function.
	(redirect_string): Use new typedef. Call new function if do_lint
	instead of using inline code.
	(close_redir): Add error message for failure on close of two-way pipe.

2020-09-04         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.y [GRAMMAR]: Install arrays as Node_var_array. Improves
	PROCINFO["identifiers"]. Thanks to anoncoward@nym.hush.com
	for the report.

2020-08-25         Arnold D. Robbins     <arnold@skeeve.com>

	* interpret.h (r_interpret): At Op_rule, check if in BEGINFILE. If so,
	clear the record.  Fixes an issue reported by Pat Rankin in May, 2011.

2020-08-24         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.y, builtin.c, command.y, debug.c, gawkapi.c,
	io.c, node.c: Make all messages consistent: Remove final periods
	from messages that had them.
	* TODO: Updated.

2020-08-20         Arnold D. Robbins     <arnold@skeeve.com>

	* awk.h (NODE): Move valref completely out of the union. Fixes
	core dumps on old GCC on CentOS 7.

2020-08-13         Arnold D. Robbins     <arnold@skeeve.com>

	Fix TIDYMEM / use of mtrace.

	* configure.ac: Add mtrace to list of functions searched for.
	* symbol.c (make_symbol): Set valref to 1. Allows the
	release_all_vars function to work.

	Unrelated:

	* array.c (value_info): Spell ROUNDMODE correctly in output.
	* mpfr.c (set_ROUNDMODE): Ditto.

2020-08-12         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.c, command.c: Regenerated with Bison 3.7.1.
	* NEWS: Updated.

	Unrelated:

	* profile.c (pp_namespace): Always print a newline before the
	@namespace, in case it comes after a comment. Thanks to J Naman
	for the report.
	* symbol.c (comp_symbol): Adjust comparison so that names in the
	awk namespace come out first. Makes the order of functions in
	pretty-printed output more sane. Thanks also to J Naman for
	getting me to explore this issue.

2020-07-29         Arnold D. Robbins     <arnold@skeeve.com>

	* custom.h (FLEXIBLE_ARRAY_MEMBER): Define to 1 for dfa.h.

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.
	* NEWS: Updated.

	Unrelated:

	* gawkapi.h (api_get_mpfr, api_get_mpz): Mark as obsolete.

2020-07-22         Arnold D. Robbins     <arnold@skeeve.com>

	* Makefile.in: Regenerated.

2020-07-21         Arnold D. Robbins     <arnold@skeeve.com>

	* configure.ac (AM_INIT_AUTOMAKE): Update to 1.16.
	* ar-lib, compile, config.guess, config.rpath, config.sub,
	depcomp, install-sh, missing, ylwrap: Moved to build-aux.

2020-07-20  gettextize  <bug-gnu-gettext@gnu.org>

	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.20.2.

2020-07-19         Arnold D. Robbins     <arnold@skeeve.com>

	* NEWS: Fix title on leading set of changes. Thanks to
	Marcus <marcuscruse@ya.ru> for the report.

	Unrelated: Bump minor API version since semantics have changed.

	* gawkapi.h (api_minor_version): Increase to 1.

	Unrelated: Fix a spelling error in a comment.

	* mpfr.c (force_mpnum): Fix a typo.

2020-07-17         Arnold D. Robbins     <arnold@skeeve.com>

	* gawkapi.h (gawk_api_minor_version): Increase, since the
	MPFR/MPZ stuff changed some.  Remains source and binary
	compatible, but semantics are different.

2020-07-15         Arnold D. Robbins     <arnold@skeeve.com>

	Finish cleaning up MPFR valgrind issues.

	* awk.h (struct block_header): Remove MPFR and GMP enums.
	* gawkapi.c (getmpfr, freempfr, getmpz, freempz): Removed
	(api_get_mpfr): Use emalloc instead of getmpfr.
	(api_get_mpz): Use emalloc instead of getmpz.
	* gawkapi.h: Add comments on MPFR and MPZ
	(make_number_mpfr, make_number_mpz): Update comments.
	* node.c (nextfree): Remove mpfr and mpz entries.
	* NEWS: Updated.

	Unrelated:

	* config.guess, config.sub: Updated from GNULIB.

2020-07-13         Arnold D. Robbins     <arnold@skeeve.com>

	* mpfr.c (mpg_interpret): Small speedup. If do_itrace and opcode is
	not one that's handled, return early.

2020-07-12         Arnold D. Robbins     <arnold@skeeve.com>

	* mpfr.c (mpg_interpret): Make the instruction tracing more sane.

	Fix the testext test for MPFR.

	* gawkapi.c (awk_value_to_node): Use correct code to copy
	MPFR/MPN numbers and don't free the original values.
	* interpret.h (r_interpret): At Op_ext_builtin, separate out calls
	to the external function and awk_value_to_node, for ease in a
	debugger.
	* NEWS: Updated.

2020-07-10         Arnold D. Robbins     <arnold@skeeve.com>
	
	Fix printf issues. Thanks to Michal Jaegermann for the report.

	* cint_array.c (cint_dump): Fix printf formats.
	* debug.c (print_symbol): Ditto.
	* mpfr.c (mpg_interpret): Ditto.

2020-07-09         Arnold D. Robbins     <arnold@skeeve.com>

	Fix dbugeval2 test for MPFR.

	* debug.c (do_eval): Preserve DO_MPFR flag in do_flags before
	parsing the string to be evaluated.

	Fix indirect call tests for MPFR:

	* awkgram.y (lookup_builtin): Only return the MPFR builtin
	function if the pointer is not NULL.

	Unrelated:

	* config.guess, config.sub: Updated from GNULIB.

2020-07-08         Arnold D. Robbins     <arnold@skeeve.com>

	* str_array.c (str_lookup): If a pure number, copy to a string. Fixes
	the printfchar test for MPFR.

	Fix typedregex2 and typedregex3 tests for MPFR:

	* mpfr.c (mpg_zero): No longer static inline.
	(force_mpnum): Handle the case of a strongly typed regex.
	(mpg_interpret): Add tracing for do_itrace.
	* awk.h (mpg_zero): Add declaration.
	* node.c (make_typed_regex): Init to zero for MPFR via mpg_zero.

2020-07-07         Arnold D. Robbins     <arnold@skeeve.com>

	* awk.h: Turn all the flag defines into enums. GDB can then show
	the bit maps directly.

	Unrelated: Fix another MPFR bug, reported by Hyunho Cho
	<mug896@naver.com>.

	* mpfr.c (force_mpnum): Restore the character at the end of
	the string if only saw + or -.

2020-07-07         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* node.c (r_dupnode): Sanitize the code, particularly for MPFR.

2020-07-05         Arnold D. Robbins     <arnold@skeeve.com>

	Bug fixes in MPFR, reported by Hyunho Cho<mug896@naver.com>.

	* node.c (r_dupnode): Set strndmode and also set stlen of new
	string. (How did that one get by us for so long?)
	* mpfr.c (force_mpnum): Check for a + or - sign with nothing following it.

	Unrelated. Make do_itrace a real variable so that it's easier to
	change the value from a debugger.

	* awk.h (do_itrace): Declare.
	(DO_ITRACE, do_itrace): Remove macros.
	* main.c (do_itrace): Define.
	(parse_args): Set do_itrace.

2020-07-03         Arnold D. Robbins     <arnold@skeeve.com>

	Fix a double free error with -M.  Thanks to
	"NIDE, Naoyuki" <nide@ics.nara-wu.ac.jp> for the report.

	* field.c (clear_mpfr):  New macro, clears MPFR and NUMCUR bits.
	(reset_record): Use it on the newly copied field values.
	(purge_record): Add introductory comment since we're in the file.

2020-07-01         Arnold D. Robbins     <arnold@skeeve.com>

	* eval.c (posix_compare): Rewrite contributed by
	Michael Builov <mbuilov@gmail.com>.

	Unrelated:

	* awk.h: New option: do_itrace.
	* interpret.h (r_interpret): Print instruction trace if enabled.
	* main.c (optab): New option: -I/--trace.
	(parse_args): Update optlist and the code to handle it.
	* NEWS: Updated.

2020-06-29         Arnold D. Robbins     <arnold@skeeve.com>

	* debug.c: Cleanup messages. Error messages start with lower
	case letter.
	* TODO: Updated.

2020-06-14         Arnold D. Robbins     <arnold@skeeve.com>

	Disallow SYMTAB and FUNCTAB as destination arguments to builtin
	functions that clear arrays:

	* awk.h (check_symtab_functab): Add declaration.
	* array.c (asort_actual): Call it in check for second argument.
	* builtin.c (check_symtab_functab): New function.
	(do_match): Call it in check for third argument.
	* field.c (do_patsplit, do_split): Call it in checks for fourth and
	second arguments.

2020-06-12         Arnold D. Robbins     <arnold@skeeve.com>

	* array.c (asort_actual): If SYMTAB or FUNCTAB is the second argument,
	fatal out.   If they are the first argument, make it work when a
	second argument is supplied.
	* TODO, NEWS: Updated.

2020-06-10         Arnold D. Robbins     <arnold@skeeve.com>

	More miscellaneous fixes from Michael Builov <mbuilov@gmail.com>.

	* node.c (r_unref): Handle GAWKDEBUG same as in awk.h:unref.
	(parse_escape): isxdigit/isdigit/isupper called with possible negative
	int: fixed. Dead code under "if (do_lint && j > 2)" eliminated,
	j cannot be > 2.
	(init_btowc_cache): Also initialize wide-char at index 255.

	And so that `make check' passes with GAWKDEBUG defined:

	* msg.c (err): Remove abort() call if fatal. Didn't really do
	anything special for us.

2020-06-10         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.c, command.c: Regenerated with bison 3.6.3.
	* NEWS: Updated.

2020-06-10         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	Convert exec_count from long long to unsigned long long.
	* awk.h (INSTRUCTION): Change ldl type from long long to unsigned
	long long.
	* debug.c (print_instruction): Fix printf format for exec_count.
	* profile.c (indent): The argument is now an unsigned long long,
	and fix the printf format to match.

2020-06-10         Arnold D. Robbins     <arnold@skeeve.com>

	Miscellaneous fixes from Michael Builov <mbuilov@gmail.com>.

	* awkgram.y (rule_block): Fix size declaration
	(parse_program): Adjust memset call.
	(get_comment): Check for end of file before checking for space.
	* io.c (gawk_popen): Move os_close_on_exec call inside #endif.
	* builtin.c (do_bindtextdomain): Don't pass NULL to strlen.
	* debug.c (set_breakpoint): Don't dereference NULL pointer in D_func.
	(serialize_list): Get the buffer management right to avoid overrun.

2020-06-10         Arnold D. Robbins     <arnold@skeeve.com>

	Thanks to Andrew Schorr for suggesting a better way to
	handle exec_count being a long long.

	* awk.h (INSTRUCTION): Make new ldl member be the long long.
	(exec_count): Is now ldl.
	* profile.c (pprint): Fix printf of exec_count.

2020-06-09         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.y (tokexpand): Use size_t instead of int for size of
	buffer.

2020-06-08         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.y: Fix `print $"2"' case. Thanks to Ed Morton
	<mortoneccc@comcast.net> for the report.

	Unrelated:

	* awk.h (INSTRUCTION): Make dl a long long for profiling
	counts on 32 bit systems. Thanks to Peter Lindgren
	for the report.
	* profile.c (indent): Take a long long parameter and fix
	the printf format.

2020-06-05         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.y: Allow @/foo/ as return expression in a function.
	Oops.

2020-06-05         Arnold D. Robbins     <arnold@skeeve.com>

	* configure.ac: Add call to AM_PROG_AR for use in
	cross compiles.  Thanks to Sergei Trofimovich <slyfox@gentoo.org>
	for the patch.

2020-05-15         Arnold D. Robbins     <arnold@skeeve.com>

	* config.guess, config.sub: Updated from GNULIB.

2020-05-14         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.c, command.c: Rebuild with Bison 3.6.
	* NEWS: Updated.

2020-05-06         Arnold D. Robbins     <arnold@skeeve.com>

	Add lint check for string + string. It's not concatenation
	in awk, but is in most other languages. Thanks to Roland Illig
	<roland.illig@gmx.de> for the suggestion.

	* awk.h (Op_lint_plus): New opcode.
	* awkgram.y (mk_binary): Add it into the list in the right place
	if do_lint.
	* eval.c (optypes): Add case for Op_lint_plus.
	* interpret.h (r_interpret): Ditto.

2020-04-14         Arnold D. Robbins     <arnold@skeeve.com>

	* 5.1.0: Release tar ball made.

2020-04-10         Arnold D. Robbins     <arnold@skeeve.com>

	* field.c (save_FPAT): New global variable.
	(get_field): Check if using FPAT or not in order to pass in
	the right variables to parse_field function.  Fixes bug in
	delayed field parsing when using FPAT.  Thanks to
	luciole75w <luciole75w@gmail.com> for the bug report.
	(set_FPAT): Use global save_FPAT instead of local save_fpat.

	Unrelated:

	* awkgram.c, command.c: Rebuild with Bison 3.5.4.
	* NEWS: Updated.

	Unrelated:

	* awk.h (do_lint_extensions): Define to zero if NO_LINT.

2020-04-02         Arnold D. Robbins     <arnold@skeeve.com>

	* field.c (re_parse_field): If default parsing and trailing
	whitespace, don't set a null field at the end. Thanks to
	Ed Morton <mortoneccc@comcast.net> for the report.

2020-03-18         Arnold D. Robbins     <arnold@skeeve.com>

	* TODO: Add more stuff.

2020-03-15         Arnold D. Robbins     <arnold@skeeve.com>

	* Makefile.am (zos-diffout): New target.
	* awkgram.y, command.y: Upgrade to Bison 3.5.3.
	* NEWS: Updated.

2020-03-11         Arnold D. Robbins     <arnold@skeeve.com>

	* main.c: Further message update. Thanks again to
	Roland Illig <roland.illig@gmx.de>.

2020-03-09         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* array.c (sort_up_value_string): If either arg is not a Node_val,
	call out to sort_up_value_type instead. If cmp_strings returns zero,
	fall back to sort_up_index_string as a tie-breaker.
	(sort_up_value_number): If either arg is not a Node_val, call out to
	sort_up_value_type instead. If cmp_strings returns zero, fall back
	to sort_up_index_string as a tie-breaker.
	(do_sort_up_value_type): Renamed from sort_up_value_type with one
	change: if both arguments have type Node_var, we compare the
	var_value NODEs instead.
	(sort_up_value_type): New wrapper function around do_sort_up_value_type
	to fall back to sort_up_index_string as a tie-breaker.

2020-03-09         Arnold D. Robbins     <arnold@skeeve.com>

	* array.c, awk.h, awkgram.y, builtin.c, command.y, debug.c,
	ext.c, int_array.c, io.c, main.c, symbol.c: Messages refined
	based on suggestions from Roland Illig <roland.illig@gmx.de>.

2020-03-06         Jannick               <thirdedition@gmx.net>

	* Makefile.am: Replace AM_MAKEFLAGS with AM_CFLAGS and AM_LDFLAGS.
	Put pc/Makefile.tst into BUILT_SOURCES, instead of in dist-hook.
	Add $(srcdir) to rules for the yacc files. Use AM_LDFLAGS in
	the efence rule.
	* configure.ac: Use GAWK_CANONICAL_HOST instead of AC_CANONICAL_HOST;
	this supplies MSYS2 support. Remove use of EXEEXT.

2020-03-04         Arnold D. Robbins     <arnold@skeeve.com>

	* NEWS: Updated.

2020-02-13         John E. Malmberg      <wb8tyw@qsl.net>

	* custom.h: OpenVMS needs _REGEX_INCLUDE_LIMITS_H defined.

2020-02-09         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.y: Add lint check for assignment in condition to
	if and for statements. Thanks to Jannick <thirdedition@gmx.net>
	for the suggestion.
	* debug.c (do_eval): Remove @eval from the symbol table if there
	was a syntax error in the statement being evaluated. Thanks again
	to Jannick, for the report.

2020-02-04         John E. Malmberg      <wb8tyw@qsl.net>

	* custom.h: Fix OpenVMS SIZE_MAX value.

2020-02-01         Arnold D. Robbins     <arnold@skeeve.com>

	* awk.h, dfa.c: Move include of mbsupport.h to ...
	* custom.h: ... here.
	* configure.ac: Add check for isblank.

2020-01-27         Arnold D. Robbins     <arnold@skeeve.com>

	* custom.h: Fix non-VMS compilation.

2020-01-26         John E. Malmberg      <wb8tyw@qsl.net>

	* custom.h: Additional OpenVMS typedefs needed.
	* gettext.h: Fix macro for implementations without gettext
	to not force the result to be a const char *.

2020-01-26         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* array.c (sort_up_value_type): Small efficiency tweak. Only
	run through the list of other types if both values are not scalars.

2020-01-24         Arnold D. Robbins     <arnold@skeeve.com>

	* array.c, profile.c, cint_array.c, builtin.c, interpret.h,
	main.c: Update copyright years.

2020-01-23         Arnold D. Robbins     <arnold@skeeve.com>

	* array.c (sort_up_value_type): Handle other types of nodes,
	in case someone applies PROCINFO["sorted_in"] to SYMTAB or
	FUNCTAB. This threw an assertion error if assertions were
	enabled. Thanks to John Namam <gawker@703n.com> for the report.
	(asort_actual): Disallow SYMTAB and FUNCTAB as first arguments.
	* TODO: Note that we should should eventually allow SYMTAB/FUNCTAB
	passed to asort/asorti if a destination array is provided. (The
	current code breaks right now.)

2020-01-19         Arnold D. Robbins     <arnold@skeeve.com>

	* profile.c (pp_top): New macro.
	(pprint): Be smarter for print[f] with redirection that was
	parenthesized, to not print `printf(("hello\n")) > "..."'.

	Unrelated:
	* compile, config.guess, config.rpath, config.sub, depcomp: Updated
	from GNULIB.

2020-01-14         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* cint_array.c (cint_array_init): Fix off-by-one error in array 
	bounds overflow check for an NHAT value set in the environment.
	Thanks to Michael Builov <mbuilov@gmail.com> for the report.

2020-01-08         Arnold D. Robbins     <arnold@skeeve.com>

	Fix a number of subtle memory leaks. Thanks to the
	combination of MEMDEBUG and valgrind for finding them.

	* builtin.c (do_print): Unref tmp if force_string_ofmt
	returned something different.
	(call_sub, call_match, call_split_func): Free any
	created regexp.
	* debug.c (do_eval): Free the node holding the @eval function
	when done with it.
	* field.c (init_fields): Create fields_arr[0] and Nnull_field
	in a rational fashion.
	* interpret.h (Op_assign_concat): Handle newly created node
	better.

	Unrelated:

	* interpret.h (Op_subscript): When retrieving from SYMTAB, check
	for Node_var_new; variables can exist but have not been assigned
	a value. Thanks to Denis Shirokov <cosmogen@gmail.com> for the report.

	Unrelated:

	* builtin.c (do_typeof): Handle Node_array_ref also. Thanks to
	Denis Shirokov <cosmogen@gmail.com> for the report.

2019-12-22         Arnold D. Robbins     <arnold@skeeve.com>

	* config.guess: Updated from GNULIB.

2019-12-22         Jannick               <thirdedition@gmx.net>

	* configure.ac: Hardcode the shared object extension to dll
	on Windows platforms, i.e.whenever EXEEXT is '.exe'.

2019-12-22         Arnold D. Robbins     <arnold@skeeve.com>

	* gettext.h: Update from gettext 0.20.1.
	* NEWS: Updated.

2019-12-18  Paul Eggert  <eggert@Penguin.CS.UCLA.EDU>

	Fix memcpy issue found by -fsanitize=undefined
	* field.c (set_record): Don't memcpy (databuf, NULL, 0),
	as the C standard says the resulting behavior is undefined.

2019-12-16         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.y, command.y: Upgrade to Bison 3.5.
	* NEWS: Updated.

2019-11-21         Arnold D. Robbins     <arnold@skeeve.com>

	* config.rpath: Update from GNULIB.

2019-11-10         Arnold D. Robbins     <arnold@skeeve.com>

	* compile, config.rpath: Update from GNULIB. Adds msys support.

2019-11-03         Arnold D. Robbins     <arnold@skeeve.com>

	* field.c (get_field): Remove special case code for fpat_parse_field.
	Fixes a bug reported by Ed Morton <mortoneccc@comcast.net>.

2019-10-19         Arnold D. Robbins     <arnold@skeeve.com>

	* compile, depcomp: Update from GNULIB.

2019-10-13         Arnold D. Robbins     <arnold@skeeve.com>

	Fix handling of assigning @/.../ to FS and RS. Thanks
	to Stephane Chazelas <stephane.chazelas@gmail.com>
	for the report.

	* field.c (set_FS): Check for REGEX in the flags.
	* io.c (set_RS): Ditto.

2019-10-04         Arnold D. Robbins     <arnold@skeeve.com>

	* config.guess, config.sub, install-sh: Updated from GNULIB.

2019-09-30         John E. Malmberg     <wb8tyw@qsl.net>

	* custom.h: OpenVMS does not provide ULLONG_MAX

2019-09-20  Florian Weimer  <fweimer@redhat.com>

	* configure.ac (PRINTF_HAS_F_FORMAT): Include <string.h> for
	strcmp.
	(PRINTF_HAS_A_FORMAT): Likewise.
	* configure: Regenerate.

2019-09-17         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.y, commands.y: Upgrade to Bison 3.4.2.
	* NEWS: Updated.

2019-09-10         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* awk.h (block_header): Remove cnt field and replace it with
	highwater. If MEMDEBUG is defined, add active counter.
	* node.c (r_getblock): The cnt field was replaced by active. Update
	highwater as appropriate.
	(r_freeblock): Decrement the active counter (renamed from cnt).
	(more_blocks): Bump the highwater counter (renamed from cnt).
	* builtin.c (do_typeof): When providing PROCINFO debug memory stats,
	replace count_<blah> with <blah>_active and <blah>_highwater. When
	MEMDEBUG is not set, we calculate the active value by subtracting the
	number of elements in the free list from the highwater value.

2019-09-01         Arnold D. Robbins     <arnold@skeeve.com>

	* profile.c (pp_list, pp_concat): Fix use-after-free errors
	in both routines. Thanks to valgrind and Andy's MEMDEBUG code.

2019-09-01         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* awk.h (block_header): Add cnt field even when MEMDEBUG is not
	defined, and add a name field.
	* node.c (nextfree): Initialize new name field.
	(more_blocks): Bump nextfree[id].cnt by BLOCKCHUNK.
	* builtin.c (do_typeof): When the 1st argument is PROCINFO and the
	2nd arg is provided, return new "count_<blah>" fields containing
	the memory allocation accounts of the various block types.

2019-08-30         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* configure.ac (.developing): Add -DMEMDEBUG to CFLAGS.
	* awk.h (block_header): If MEMDEBUG is defined, add cnt field
	to track the number of allocations.
	(getblock, freeblock): When MEMDEBUG is defined, replace these
	macros with calls to new functions r_getblock and r_freeblock.
	* node.c (r_getblock, r_freeblock): New functions that simply
	use malloc and free when MEMDEBUG is defined.

2019-08-30         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* interpret.h (r_interpret): For Op_match_rec, unref if a
	dynamic regexp. Fixes another memory issue. See the thread starting
	at https://lists.gnu.org/archive/html/bug-gawk/2019-08/msg00023.html.

2019-08-29         Arnold D. Robbins     <arnold@skeeve.com>

	Restore a modified version of the change of
	2016-05-03, which used realloc to shrink the buffer.

	* builtin.c (format_tree): Reduce INITIAL_OUT_SIZE to 64.
	At the end, call realloc only if there is more
	than (2 * INITIAL_OUT_SIZE) bytes to give back.

2019-08-23         Arnold D. Robbins     <arnold@skeeve.com>

	* main.c (main): Fix whitespace issues.
	* re.c (re_update): Small code cleanup in handling t->re_cnt.
	Thanks to Andrew Schorr.

2019-08-21         Arnold D. Robbins     <arnold@skeeve.com>

	* config.guess: Updated from GNULIB.

2019-08-15         Arnold D. Robbins     <arnold@skeeve.com>

	Revert a6df7afc605079df7d85318846a522ef64aaa44d, change of
	2016-05-03, which used realloc to shrink the buffer, in an
	attempt to save memory.  In actuality, it could cause increased
	memory usage, even though there was no memory leak. See
	https://lists.gnu.org/archive/html/bug-gawk/2019-08/msg00003.html
	and the rest of thread for more detail.

	* builtin.c (format_tree): Don't use realloc, just call
	make_str_node with the original buffer. Remove `olen_final'
	variable and its use.

2019-08-15         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	Reduce memory usage by only compiling the IGNORECASE version of
	regexp when it's actually needed.

	* awkgram.y (make_regnode): Only compile the regular version.
	* re.c (re_cache_get): New function.
	(re_update): Use it as appropriate.

2019-07-23         Koichi Murase         <myoga.murase@gmail.com>

	* builtin.c (do_xor): Remove unneeded local variable `i'. Simplify
	the loop's computation.
	(do_and): Improve the initial value for the result.

2019-07-23         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	Fix reporting of negative arguments for and(), or() and xor().
	Thanks to Koichi Murase <myoga.murase@gmail.com> for the
	report.

	* builtin.c (do_and): Use nargs instead of i in the loop to
	check for non-numeric and negative arguments.
	(do_or): Ditto.
	(do_xor): Ditto.

2019-07-23         Arnold D. Robbins     <arnold@skeeve.com>

	* Checklist: Updated.

2019-07-21         Arnold D. Robbins     <arnold@skeeve.com>

	* command.y, custom.h, eval.c, ext.c, field.c, io.c,
	msg.c, node.c, nonposix.h, re.c: Update copyright year.
	* NEWS: Updated.
	* README: Updated.

2019-07-16         Arnold D. Robbins     <arnold@skeeve.com>

	* TODO: Updated.
	* awkgram.y [GRAMMAR]: Change some lint warnings to use lintwarn.
	(yylex): Ditto.
	* field.c (choose_fs_function): Ditto.
	* main.c (main): Ditto.
	* node.c (parse_escape): Ditto.

2019-07-09         Arnold D. Robbins     <arnold@skeeve.com>

	* gawkapi.h: Update copyright year, fix some spelling errors.

2019-07-08         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* gawkapi.h (gawk_api_major_version): Bump from 2 to 3 because the
	namespace changes altered the function signatures in gawk_api_t.
	And add a comment at the top of the structure with a reminder that
	the version number should be bumped whenever the struct is altered
	in any way.

2019-06-30         Arnold D. Robbins     <arnold@skeeve.com>

	* interpret.h (r_interpret): Fix two more cases of warning
	about gawk extensions.
	* awkgram.y [GRAMMAR]: And two more cases here. Thanks to
	Mark Krauze <daburashka@ya.ru> for making me look for them.

	Unrelated:

	* config.sub: Updated from GNULIB.

2019-06-26         Arnold D. Robbins     <arnold@skeeve.com>

	* symbol.c (install): Strip off any leading `awk::' before
	installing a symbol. Thanks to Andrew Schorr for the
	report.

2019-06-21         Arnold D. Robbins     <arnold@skeeve.com>

	* config.guess, config.sub: Updated from GNULIB.
	* awkgram.y (get_src_buf): Set buffers to zero to avoid
	possible issues with accessing uninitialized memory.
	Thanks to valgrind, as pointed out by Nadezhda Vyukova
	<qniva@yandex.ru>.
	* NEWS, README.git: Fix some typos.

2019-06-19         Arnold D. Robbins     <arnold@skeeve.com>

	* re.c (make_regexp): If do_posix, have {} in ok_to_escape.
	Thanks to Ed Morton <mortoneccc@comcast.net> for the report.

2019-06-18         Arnold D. Robbins     <arnold@skeeve.com>

	* 5.0.1: Release tar ball made.

2019-06-06         Arnold D. Robbins     <arnold@skeeve.com>

	* main.c (usage): Update comment for translators.

2019-06-02         Arnold D. Robbins     <arnold@skeeve.com>

	* awkgram.c, command.c: Update to Bison 3.4.
	* NEWS: Updated.

2019-05-22         Arnold D. Robbins     <arnold@skeeve.com>

	Add --lint=no-ext. Suggest by Mark Krauze <daburashka@ya.ru>.

	* NEWS: Updated.
	* awk.h (DO_LINT_EXTENSIONS): New enum.
	(do_lint_extensions): New macro.
	* awkgram.y (yylex, snode): Use do_lint_extensions instead of
	do_lint where appropriate.
	* builtin.c (do_length): Ditto.
	* eval.c (set_IGNORECASE, set_BINMODE): Ditto.
	(set_LINT): Revise logic.
	* field.c (do_split, set_FIELDWIDTHS, chose_fs_function, set_FPAT):
	Ditto.
	* io.c (set_RS): Ditto.
	* main.c (usage): Updated.
	(parse_args): Revise the code to handle --lint=no-ext.

2019-05-10         Arnold D. Robbins     <arnold@skeeve.com>

	* NEWS: Updated.

2019-05-06         Arnold D. Robbins     <arnold@skeeve.com>

	In sandbox mode, disallow assigning filenames that weren't
	there initially. Thanks to Nolan Woods <nolan_w@sfu.ca> for
	pointing out the gap.

	* awk.h (init_argv_array): Add declaration.
	* cint_array.c (argv_store): New vtable for ARGV.
	(argv_shadow_array): New file static variable
	(argv_store, init_argv_array): New functions.
	* main.c (init_args): If in sandbox mode, build shadow array of
	initial argv values. Call init_argv_array.

2019-05-05         Arnold D. Robbins     <arnold@skeeve.com>

	* ext.c (load_ext): Fix the message in the version for when
	extensions are not available.

2019-04-24         Arnold D. Robbins     <arnold@skeeve.com>

	* msg.c (msg): Use %ld for the line number value. Thanks to
	Michal Jaegermann for the report.

2019-04-23         Arnold D. Robbins     <arnold@skeeve.com>

	* config.sub: Updated from GNULIB.

2019-02-21         Andrew J. Schorr      <aschorr@telemetry-investments.com>

	* interpret.h (Op_store_field): Move call to force_string to
	here from unfield.  Speeds up work with fields that are numeric
	only. Thanks to Tom Gray <tom_gray@keysight.com> for the report.

2019-04-21         Arnold D. Robbins     <arnold@skeeve.com>

	* POSIX.STD: Updated.
	* field.c (get_field): If NF == -1, check parse high water to
	set in_middle correctly. Thanks to <oguzismailuysal@gmail.com>
	for the report.

2019-04-18         Arnold D. Robbins     <arnold@skeeve.com>

	* msg.c (msg): Add an undocumented feature. "Use the Source, Luke."
	* Makefile.am (EXTRA_DIST): Add ChangeLog.1 to the list. Ooops.
	* CheckList: Updated.

	Fix core dump reported by Steve Kemp <steve@steve.org.uk>:

	* awk.h (errcount): Declare.
	* awkgram.y (errcount): No longer static.
	* command.y (dbg_errcount): Renamed from errcount.
	* main.c (catchsig, catchsegv): If errcount > 0, just exit,
	don't abort.  

2019-04-12         Arnold D. Robbins     <arnold@skeeve.com>

	* configure.ac: Update version to 5.0.0.
	* configure: Regenerated.
	* ChangeLog.1: Rotated ChangeLog into this file.
	* ChangeLog: Created anew for gawk 5.0.0 and on.
	* README: Bump version to 5.0.0.
	* 5.0.0: Release tar ball made.