-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCHANGES
751 lines (562 loc) · 27.4 KB
/
CHANGES
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
-- $MawkId: CHANGES,v 1.217 2014/09/14 22:36:13 tom Exp $
Changes by Thomas E Dickey <[email protected]>
20140914
+ rename vs6.mak / vs6.h to vs2008 for Visual Studio 2008 compiles.
+ remove MS-DOS support.
+ add a check in split for empty regex, treating that the same as an
empty string (Original-Mawk #9).
+ correct inconsistently-ifdef'd reset of errno in check_strnum()
function, which caused some values to be internally classified as
strings rather than strnums (Original-Mawk #26).
+ add parameter to REmatch to control use of REG_NOTBOL and its
equivalent in mawk (prompted by discussion with Mike Brennan,
Original-Mawk #24).
+ settle on "gsub3" implementation (suggested by Mike Brennan,
Original-Mawk #11).
+ change default for configure option --enable-init-srand to enable
this (discussion with Mike Brennan).
+ add -W random option to set initial srand() seed.
+ add TraceVA, use to provide debug-traces for errmsg().
+ add note in manpage about "nextfile", see for example:
http://www.opengroup.org/austin/docs/austin_578.txt
http://austingroupbugs.net/view.php?id=607
+ make it possible to build with "bsd" library ported to Linux by
setting LIBS=-lbsd before running configure script.
+ show random-function names in version message, as well as maximum
integer-value.
+ modify initialization of srand default seed from time of day to use
gettimeofday, etc., so that successive runs of mawk are less likely
to use the same seed value (suggested by Mike Brennan).
+ make a further refinement, "gsub3" which uses a single pass.
+ change SType and SLen types to improve performance as well as
handling larger regular expressions (suggested by Mike Brennan).
+ fix some minor issues reported by Coverity.
+ regenerate parse.c using byacc 20140422
+ modify makefile-rule for generating parse.c to keep the "#line"
preprocessor lines consistent with the actual filename. This is
needed by lcov.
+ add test/reg7.awk to help with recent testing.
+ discard intermediate new_gsub used for regression-testing, will do
further improvements based on "gsub2".
+ fix a comparison in rexp3.c to work with embedded nulls (patch by
Mike Brennan).
+ in-progress changes to implement "gsub2", which will reduce copying.
+ discard intermediate old_gsub used for regression-testing, using
original gsub function renamed to "gsub0" for that purpose.
+ remove old compiler information from version message.
+ remove NF value from version message.
+ patches by Mike Brennan:
+ changed the intermediate storage of STRINGS used by split.
+ cleaned up the xxx_split() functions.
a) removed hand loop unrolling. What was an optimization for
intel 8086/88 is silly today.
b) consequence of a) some macros went away so the code is easier
to read/understand.
c) handles null in input string
Note: re_split() does \x00 null correctly, but it calls
REmatch() which does not. I have examples where REmatch works
with nulls and examples of not working. That needs to be fixed.
+ changed field allocation to support no upper limit.
+ when comparing two strings, allow for embedded nulls.
+ add checks in rexp3.c for infinite loop for testcase noloop.awk
(report by Tibor Palinkas).
+ improve test-package for debian by adding postrm script to restore
"mawk-base" to its unalternatized configuration, as well as adding
messages to the other pre/post scripts.
+ patches by Mike Brennan:
+ increase some limits: NF is now 1048575, sprintf limit is 8192.
+ updated array.w; mostly documentation improvements
+ add array.pdf generated from array.w
+ add -Wu / -Wusage / -Wh / -Whelp to show usage message, like gawk.
If long options are enabled, honor --help and --usage as well.
+ if no command-line parameters are given, show usage message like
gawk and BWK (report by Michael Sanders).
+ improve configure macros CF_ADD_CFLAGS, CF_ADD_LIBS, CF_XOPEN_SOURCE,
e.g., for Minix3.2 port.
+ restore in-progress change to gsub; resolved problem handling its
internal use of vectors for second parameter when "&" marker is used.
+ improve configure check for Intel compiler warnings; trim unwanted
-no-gcc option.
+ for Solaris suppress the followup check for defining _XOPEN_SOURCE
+ update config.guess and config.sub
20131226
+ add configure check to work around recent breakage in Cygwin's math.h
which declares _LIB_VERSION without allowing it to be updated (report
by Gert Hulselmans).
+ minor updates to configure script, for clang and mingw
+ update config.guess and config.sub
20130803
+ minor updates to configure script
+ add limit-checks, improve index computation in scan.c to fix old
1.3.3 problems with very long string-literals in the parsed script
(report by Marcin Krol).
+ update config.guess and config.sub
20130219
+ modify missing-operand check in rexp.c to allow the case of empty
"()", matching behavior of gawk and BWK (report by Arkadiusz
Miskiewicz).
+ revert in-progress change to gsub retain ifdef'd for additional
development since it did not handle array as the second parameter
(report by Arkadiusz Miskiewicz).
20121209
+ build-fix for cygwin in matherr.c, which declares a different type
for _LIB_VERSION
+ add missing "-f" option in examples/gdecl.awk
+ fix a regression in fflush, ensuring that it returns an error if
the argument does not match any output filename (report by Nathan
Weeks).
+ modify wording of configure --help message to make it clear that
the default for --with-builtin-regex uses the builtin regular
expression engine of mawk.
+ fix issues reported by Coverity scan. Most of these were minor,
and were addressed by modifying the source to allow Coverity to
improve its analysis of the code.
+ amend support for LC_NUMERIC by translating period to the local
decimal separator as needed to work with strtod() which is used
to validate decimal constants when scanning source files. This
fixes an infinite loop with
mawk 'BEGIN { print 1.0 }'
(report by Jan Psota).
+ regenerate man/mawk.doc, overlooked in previous updates.
20121129
+ change behavior if internal fflush call fails: rather than exiting
with an error, propagate the return value to the script as -1, for
consistency with gawk and BWK (discussion with Aharon Robbins and
Nathan Weeks).
+ add special case for forward reference to a function using an array
parameter, updating the function's parameter type so that the array
is passed properly.
+ support length(array), as done in gawk and BWK awk (Original-Mawk #1).
+ support LC_NUMERIC, which will modify the displayed decimal point in
some locales. It does not modify the decimal point used for input,
matching the behavior of nawk and BWK awk (prompted by request from
Yechiel Bardov for thousands-separator).
+ add configure option --enable-init-srand to allow choice whether to
initialize random numbers automatically at startup or not. Not doing
this makes programs more predictable (Debian #63843, Original-Mawk
#3).
+ add configure option --enable-builtin-srand, use that to deprecate
mawk's builtin srand/rand functions which generally are not as good
as the system-provided functions.
+ extend --enable-trace configure option to show builtin functions.
+ add systime and mktime functions
+ when warning about unrecognized options, do not exit with error
on these gawk options:
--lint
--lint-old
--posix
--re-interval
--traditional
+ integrate strtime function (patch by Dominic Letz, Original-Mawk #2).
+ correct logic for "/dev/stdin" special device (GenToo #424137,
Original-Mawk #17).
+ updates for configure script macros:
+ modify configure script and makefile to support cross-compiles.
+ remove Turbo C++ and Zortech C++ makefiles.
+ remove obsolete function-checks: fmod, memcpy, strchr, strerror,
strtod, vfprintf.
+ remove obsolete checks for some headers: math.h, stdarg.h,
stdlib.h, string.h time.h
+ support --datarootdir option.
+ add 3rd parameter to AC_DEFINE's to allow autoheader to run.
+ remove unused macros.
+ update config.guess and config.sub
+ add icons for webpage artwork
20120627
+ add "/dev/stdin" name for stdin for consistency with other
implementations of awk (suggested by Aharon Robbins).
+ improve overflow check in check_strnum() (Ubuntu #485574).
+ implement gawk extension "nextfile" (suggested by Aharon Robbins).
+ updates for configure macros CF_ANSI_CC_CHECK, CF_ENABLE_TRACE,
CF_GCC_ATTRIBUTES, CF_GCC_WARNINGS, CF_MAKE_TAGS, CF_MSG_LOG,
CF_REGEX, CF_XOPEN_SOURCE.
+ update config.guess and config.sub
20101210
+ update copyright notices to reflect changes made starting 20080909.
This commit was made in May 2012, updates only copyright notices
needed for project registration on Savannah as discussed in Debian
#554167. However, since current policy on Savannah discriminates
against GPLv2, it will be hosted elsewhere. See
http://invisible-island.net/mawk/
http://github.com/ThomasDickey
20101207
+ add configure --enable-trace, to consolidate various debugging
traces which were written to stderr. This writes to Trace.out.
+ modify zmalloc.c to make it simpler to use the --disable-leaks
configure script option to analyze memory leaks. The memory pool
which interferes with analysis can be disabled by defining
DEBUG_ZMALLOC.
+ (IN-PROGRESS) convert gsub() function from recursive, to
non-recursive to lessen use of program stack (Debian #158481).
+ escape some dashes in manpage, to work with groff.
+ change section for Debian package to "interpreters" (Debian #442071).
+ fix printable token value for SC_MATCH in scan.c (report by Heiner
Marxen).
20100625
+ correct translation of octal and hex escapes for system regular
expression library.
+ modify configure script to support --program-suffix, etc.
+ add Debian package scripts, for "mawk-cur".
+ add RPM spec-file.
+ move release- and patch-level values from version.c to patchlev.h
to simplify packaging scripts.
20100618
+ correct translation of "^{" pattern for system regular expression
library (report by Elias Pipping).
+ fix sentence fragment in README (report by Elias Pipping).
20100507
+ cleanup gcc warnings for 64-bit platform, e.g., use size_t rather
than unsigned, etc.
+ fix warnings from clang --analyze
+ update/improve configure script
+ modify CF_GCC_VERSION to ignore stderr, e.g., from c89 alias
+ modify CF_GCC_WARNINGS, moving -W and -Wall into the list to check,
since c89 alias for gcc complains about these options.
+ add --disable-leaks and related options, for testing.
+ add lint rule to makefile.
+ add configure-check for ctags to work with pkgsrc.
+ amend change of array.w, fixes a regression in "delete" (report by
Heiner Marxen).
20100419
+ modify split() to handle embedded nulls in the string to split, e.g.,
BEGIN{s="a\0b"; print length(s); n = split(s,f,""); print n}
(report by Morris Lee).
+ modify array.w to update table pointers in the special case where
an array is known to have string-indices, but is later indexed via
integers. The problem occurs when the array grows large enough to
rehash it, e.g.,
BEGIN{a["n"];for(i=1;i<1000;++i)printf "%d\n", a[i]; }
(report by Morris Lee).
+ increase size of reference-count for strings to unsigned. It was an
unsigned short, which prevented using arrays larger than 64k, e.g.,
BEGIN{for(i = 1; i <= 65550; ++i){if(i >= 65534 && i<= 65537) print i; s[i] = "a"}; delete s;}
(report by Morris Lee).
+ add special case for Solaris 10 (and up) to configure check
CF_XOPEN_SOURCE
+ refactored configure check CF_REGEX
20100224
+ add a configure check for large files (report by Sean Kumar).
+ modify check in collect_RE() to show the actual limit value, e.g.,
MIN_SPRINTF-2 used for built-in regular expressions.
+ increase MIN_SPRINTF, used as limit on regular-expression size, to
match the MAX_SPLIT value, i.e., slightly more than doubling the size
(report by Markus Gnam).
+ further modify makefile to build outside the source-tree.
+ modify makefile and mawktest to use relative path again, since the
existing script did not work with openSUSE's build (patch by Guido
Berhoerster).
+ fix makefile's .c.i rule, which lacked CPP definition.
+ update mawktest.bat script to more/less correspond with mawktest,
for Win32 console except where echo command does not handle the
required quoting syntax.
+ add vs6.mak, for Visual Studio 6.
+ modify mawktest script to report results from all tests, rather than
halting on the first failure.
+ add limit-check after processing match(test, "[^0-9A-Za-z]") to
ensure the internal trailing null of the test-string is not mistaken
for part of the string, i.e., RSTART, RLENGTH are computed correctly
(report by Markus Gnam).
+ modify parsing of -W option to use comma-separated values, e.g.,
"-Wi,e" for "-Winteractive" and "-Werror".
+ add timestamp to scancode.c, to help manage revisions.
+ improve configure macro CF_XOPEN_SOURCE, making it remove possibly
conflicting definitions before adding new ones.
+ update config.guess and config.sub
> patches by Jan Psota:
+ improve buffering for -Winteractive option.
+ allow multiple single-character flags after -W, e.g., "-Wie" for
"-Winteractive" and "-Werror" to permit these to be passed on a
"#"-line of a shell script, e.g.,
#!/usr/bin/mawk -Wie
> patches by Jonathan Nieder:
+ add new M_SAVE_POS and M_2JC operation codes (states) to the
built-in regular expression engine. Use these to reimplement
m* (closure), to provide a way to avoid infinite looping on
matches against empty strings. This change requires reimplementing
the workaround for gawk's noloop1 testcase from 20090726.
+ improve buffer-overflow check for string_buff.
+ fix collect_RE to treat "[^]]" as a character class (meaning "not a
closing bracket") but "[^^]]" not as one. This also requires
initializing the local "start of character class" variable to NULL
rather than the beginning of the string, to avoid an invalid array
access when collecting expressions such as "^text".
+ within a character class and not followed by a :, ., or ~, a "[" is
just like any other character. This way, you can tell mawk to scan
for a literal [ character with "mawk /[[]/", and you can scan for a [
or ] with "mawk /[][]/". Also clean up the relevant loop in
do_class() to make it a bit more readable.
+ outside a character class, a "]" is just like any other character.
+ prevent do_class() from scanning past the end, e.g., if the
terminating zero byte was escaped.
+ fix regular-expression parsing when a right parenthesis ")" is
found without a preceding left parenthesis.
+ fix resetting of position stack when backtracking.
+ modify regular-expression engine to avoid exponential running time
for some regular expression matches in which the first match mawk
finds extends to the end of the string. This is a new fix for the
gawk noloop2 test, added here for regression testing.
20091220
+ bump version to 1.3.4
+ update INSTALL and README files.
+ improve configure checks for math library.
+ change test for NaN to use sqrt() rather than log() to work around
cygwin's partly broken math functions.
+ add/use isnanf() to work around other breakage in cygwin math
functions.
+ add configure check for _XOPEN_SOURCE, etc., needed to define
proper function pointer for sigaction, e.g., on Tru64.
+ add check for sigaction function pointer, whose POSIX form is
absent from the cygwin header.
+ extend MAWKBINMODE, adding a third bit which when set will suppress
the change for RS or ORS to use CR/LF rather than LF. This is used
for MinGW to make the "check" rule in a build work, for instance.
+ add configure check for functions used for pipe/system calls, e.g.,
for MinGW where these are absent.
+ add runtime check for floating-point underflow exceptions
+ fix an old 1.3.3 bug in re_split(), which did not check properly for
the end of buffer; this broke on Tru64.
+ drop obsolete config-user, v7 and atarist subdirectories
+ improve configure checks for sigaction, making the definitions used
in fpe_check.c consistent with matherr.c
+ build fixes for AIX, Tru64.
+ add configure check for 'environ'.
+ remove redundant setlocale() calls; only LC_CTYPE and LC_NUMERIC
are used.
20091213
+ add makedeps.sh script to aid in updating object dependencies in
Makefile.in
+ use "mkdir -p" rather than mkdirs.sh (suggested by Aleksey Cheusov).
+ reformatted this file, to simplify extraction of contributor names.
+ update config.guess and config.sub
> patches by Jonathan Nieder:
+ modify CF_DISABLE_ECHO autoconf macro to ensure that command lines
in Makefile.in begin with a tab.
+ the makefile does not use $(MAKE); remove the SET_MAKE substitution.
+ add some files to the "make clean" rule, in case make gets
interrupted in the middle of a rule.
+ add a maintainer-clean rule to the makefile, to remove files which
could be regenerated.
+ fix an unescaped "-" in man/mawk.1
+ remove an unneeded cast in bi_funct.c
+ fix an unused parameter warning in matherr.c
+ drop unused line_no parameter from compile_error() and its callers.
+ convert makescan.c to ANSI C, do further cleanup of that file.
+ split-out scancode.h from scan.h
20090920
+ improve hash function by using FNV-1 algorithm (patch/analysis by
Jim Mellander). This greatly improves speed for accessing arrays
with a large number of distinct keys; however the unsorted order in
"for" loops will differ.
+ add "internal regex" or "external regex" string to version message to
allow scripting based on support for embedded nulls.
+ drop obsolete CF_MAWK_PROG_GCC and CF_MAWK_PROG_YACC macros from
configure script (report by Mike Frysinger).
+ fixes to allow build outside source-tree (report by Mike Frysinger).
+ correct logic in scan.c to handle expression "[[]" (report by Aleksey
Cheusov).
+ add MAWK_LONG_OPTIONS feature to allow mawk to ignore long options
which are not implemented.
+ two changes for embedded nulls, allows FS to be either a null or
contain a character class with null, e.g., '\000' or '[ \000]':
+ modify built-in regular expression functions to accept embedded
nulls.
+ modify input reader FINgets() to accept embedded nulls in data read
from files. Data read from standard input is line-buffered, and is
still null-terminated.
+ update config.guess and config.sub
20090820
+ minor portability/standards fixes for examples/hical
+ add WHINY_USERS sorted-array feature, for compatibility with gawk
(patch by Aharon Robbins).
+ correct lower-limit for d_to_U() function, which broke conversion of
zero in "%x" format, added in fix for Debian #303825 (report by
Masami Hiramatsu).
+ modify "%s" and "%c" formatting in printf/sprintf commands to ensure
that "%02s" does not do zero-padding, for standards conformance
(discussion with Aharon Robbins, Mike Brennan, prompted by Debian
#339799).
20090728
+ add fallback definitions for GCC_NORETURN and GCC_UNUSED to build
with non-gcc compilers (report by Jan Wells).
20090727
+ add check/fix to prevent gsub from recurring to modify on a substring
of the current line when the regular expression is anchored to the
beginning of the line; fixes gawk's anchgsub testcase.
+ add check for implicit concatenation mistaken for exponent; fixes
gawk's hex testcase.
+ add character-classes to built-in regular expressions.
+ add 8-bit locale support
20090726
+ improve configure checks for MAX__UINT.
+ add a check for infinite loop in REmatch(), to work with gawk's
noloop1 testcase.
+ modify logic to allow setting RS to an explicit null character, e.g.,
RS="\0"
(Ubuntu #400409).
+ modify workaround for (incorrect) scripts which use a zero-parameter
for substr to ensure the overall length of the result stays the same.
For example, from makewhatis:
filename_no_gz = substr(filename, 0, RSTART - 1);
+ move regular-expression files into main directory to simplify
building using configure --srcdir and VPATH.
+ modify internal functions for gsub() to handle a case from makewhatis
script from man 1.6f which substitutes embedded zero bytes to a
different value (report by Gabor Z Papp).
+ change default for configure --with-builtin-regex to prefer the
builtin regular expressions. They are incomplete, but POSIX regular
expressions cannot match nulls embedded in strings.
+ require standard C compiler; converted to ANSI C.
+ rename #define'd SV_SIGINFO to MAWK_SV_SIGINFO to avoid predefined
name on Mac OS X (report on comp.lang.awk).
+ revise configure script to use conventional scheme for generating
config.h
20090721
+ port to cygwin, modifying test-script to work with executable-suffix
and fp-exception code to allow const in declaration.
20090712
+ bump patch-date.
+ fix Debian #127293 "mawk does not understand unescaped '/' in
character classes", noting that gawk 3.1.6 also has problems with
this area.
+ drop support for varargs; use stdarg only.
+ add tags rule to makefile.
+ rename configure option "--with-local-regexp" to
"--with-builtin-regex"
+ add build-fix from NetBSD port: enable vax FP support when
defined(__vax__) as well as BSD43_VAX. from ragge.
+ add configure --disable-echo option
+ identify updated files with "MawkId" keywords, retaining old log
comments for reference. Ongoing changes are recorded here.
+ change maintainer email address to my own.
20090711
+ use conventional install/uninstall rules in makefile.
+ add install-sh script, mkdirs.sh, config.guess and config.sub
+ add $DESTDIR support to makefile
+ add uninstall make-target
+ add configure --enable-warnings option (fixed some warnings...)
+ change configure script to autoconf 2.52 to permit cross-compiles.
+ drop config.user file; replace with conventional autoconf --prefix,
etc.
+ fill-in CA_REC.type in two places in parse.y which weren't
initialized.
+ fix Debian #38353 (absent expression on last part of "for" statement
caused core-dump).
+ fix Debian #303825 (printf %x clamps numbers to signed range rather
than unsigned range).
+ apply fix from Debian #355966 (null-pointer check in
is_string_split())
+ apply fix from Debian #391051 (limit-check in scan.c)
20090709
+ add support for external regexp libraries (patch by Aleksey Cheusov)
(originally comp.lang.awk June 15 2005, also cited in Debian #355442
March 6, 2006).
20090705
+ fixes to build on BeOS (if LIBS is set to -lroot), and QNX
(redefinition of setmode).
20080909
+ fix gcc 4.3.1 -Wall warnings
+ transform mawk.ac.m4 to aclocal.m4, renaming macros to use "CF_" or
"CF_MAWK_" prefixes depending on their reusability. Modified macros
to use quoting consistent with recent autoconf versions.
+ regenerate configure with autoconf version 2.13.20030927
+ regenerate parse.c with byacc - 1.9 20080827
+ ifdef'd prototypes in nstd.h which belong to stdlib.h, string.h to
use standard C by default.
+ source-in Debian patches 01-08 (see below). Changes for 20080909 fix
Debian #496980 as well.
-------------------------------------------------------------------------------
Debian patches:
(Peter Eisentraut <[email protected]> Sat, 05 Apr 2008 17:11:11 +0200)
08_fix-for-gcc3.3
Debian #195371
(James Troup <[email protected]> Fri, 30 May 2003 15:24:50 +0100)
07_mawktest-check-devfull
Debian #51875
06_parse.y-semicolons
Debian #170973
05_-Wall-fixes
04_mawk.1-fix-pi
Debian #103699
03_read-and-close-redefinition
Debian #104124
02_fix-examples
Debian #36011
01_error-on-full-fs
Debian #28249
Debian #4293
-------------------------------------------------------------------------------
1.3.1 -> 1.3.2 Sep 1996
1) Numeric but not integer indices caused core dump in new array scheme.
Fixed bug and fired test division.
2) Added ferror() checks on writes.
3) Added some static storage specs to array.c to keep non-ansi
compilers happy.
1.3 -> 1.3.1 Sep 1996
Release to new ftp site ftp://ftp.whidbey.net.
1) Workaround for overflow exception in strtod, sunos5.5 solaris.
2) []...] and [^]...] put ] in a class (or not in a class) without
having to use back-slash escape.
1.2.2 -> 1.3 Jul 1996
Extensive redesign of array data structures to support large arrays and
fast access to arrays created with split. Many of the ideas in the
new design were inspired by reading "The Design and Implementation of
Dynamic Hashing Sets and Tables in Icon" by William Griswold and
Gregg Townsend, SPE 23,351-367.
1.2.1 -> 1.2.2 Jan 1996
1) Improved autoconfig, in particular, fpe tests. This is far from
perfect and never will be until C standardizes an interface to ieee754.
2) Removed automatic error message on open failure for getline.
3) Flush all output before system(). Previous behavior was to only
flush std{out,err}.
4) Explicitly fclose() all output on exit to work around AIX4.1 bug.
5) Fixed random number generator to work with longs larger than
32bits.
6) Added a type Int which is int on real machines and long on dos machines.
Believe that all implicit assumptions that int=32bits are now gone.
-------------------------------------------------------------------------------
Changes from version 1.1.4 to 1.2:
1) Limit on code size set by #define in sizes.h is gone.
2) A number of obscure bugs have been fixed such as,
you can now make a recursive function call inside a for( i in A) loop.
Function calls with array parameters in loop expressions sometimes
generated erroneous internal code.
See RCS log comments in code for details.
Reported bugs are fixed.
3) new -W options
-We file : reads commands from file and next argument, regardless
of form, is ARGV[1]. Useful for passing -v , -f etc to
an awk program started with #!/.../mawk
#!/usr/local/bin/mawk -We
myprogram -v works, while
#!/usr/local/bin/mawk -f
myprogram -v gives error message
mawk: option -v lacks argument
This is really a posix bozo. Posix says you end arguments with
"--" , but this doesn't work with the "#!" convention.
-W interactive : forces stdout to be unbuffered and stdin to
be line buffered. Records from stdin are lines regardless of
the value of RS. Useful for interaction with a mawk on a pipe.
-W dump, -Wd : disassembles internal code to stdout (used to be
stderr) and exits 0.
4) FS = "" causes each record to be broken into characters and placed
into $1,$2 ...
same with split(x,A,"") and split(x,A,//)
5) print > "/dev/stdout" writes to stdout, exactly the same as
print
This is useful for passing stdout to
function my_special_output_routine(s, file)
{
# do something fancy with s
print s > file
}
6) New built-in function fflush() -- copied from the lastest att awk.
fflush() : flushes stdout and returns 0
fflush(file) flushes file and returns 0; if file was not an
open output file then returns -1.
7) delete A ; -- removes all elements of the array A
intended to replace:
for( i in A) delete A[i]
8) mawk errors such as compilation failure, file open failure, etc.
now exit 2 which reserves exit 1 for the user.
9) No program now silently exits 0, prior behavior was to exit 2 with
an error message