Name Date Size #Lines LOC

..--

READMEH A D25-Apr-20252.5 KiB5842

REGRESSH A D25-Apr-2025412 3328

a-format.awkH A D25-Apr-202530 43

a-format.badH A D25-Apr-202560 43

a-format.okH A D25-Apr-20259 21

concat-assign-same.awkH A D25-Apr-2025116 54

concat-assign-same.badH A D25-Apr-202516 32

concat-assign-same.okH A D25-Apr-202516 32

decr-NF.awkH A D25-Apr-2025103 1211

decr-NF.badH A D25-Apr-202530 65

decr-NF.okH A D25-Apr-202527 65

fmt-overflow.awkH A D25-Apr-202540 21

fmt-overflow.okH A D25-Apr-2025256 21

fs-overflow.awkH A D25-Apr-2025159 1412

fs-overflow.okH A D25-Apr-20254 21

getline-corruption.awkH A D25-Apr-202577 65

getline-corruption.inHD25-Apr-20252

getline-corruption.okH A D25-Apr-20258 21

getline-numeric.awkH A D25-Apr-2025144 76

getline-numeric.badH A D25-Apr-202524 43

getline-numeric.inH A D25-Apr-20254 21

getline-numeric.okH A D25-Apr-202523 43

inf-nan-torture.awkH A D25-Apr-202553 54

inf-nan-torture.inH A D25-Apr-202592 21

inf-nan-torture.okH A D25-Apr-2025182 1716

matchop-deref.awkH A D25-Apr-2025117 129

matchop-deref.badH A D25-Apr-20256 32

matchop-deref.inH A D25-Apr-20258 21

matchop-deref.okH A D25-Apr-20254 32

missing-precision.awkH A D25-Apr-202525 21

missing-precision.okH A D25-Apr-202563 32

negative-nf.awkH A D25-Apr-202519 21

negative-nf.okH A D25-Apr-202566 32

nf-self-assign.awkH A D25-Apr-202551 76

nf-self-assign.badH A D25-Apr-20256 21

nf-self-assign.okH A D25-Apr-20256 21

numeric-fs.awkH A D25-Apr-2025124 65

numeric-fs.okH A D25-Apr-20256 43

numeric-output-seps.awkH A D25-Apr-202579 98

numeric-output-seps.badH A D25-Apr-20258 32

numeric-output-seps.okH A D25-Apr-20258 11

numeric-rs.awkH A D25-Apr-202574 76

numeric-rs.badH A D25-Apr-20258 21

numeric-rs.okH A D25-Apr-20258 54

numeric-subsep.awkH A D25-Apr-2025102 65

numeric-subsep.badHD25-Apr-20251

numeric-subsep.okH A D25-Apr-20254 21

ofs-rebuild.awkH A D25-Apr-2025466 187

ofs-rebuild.badH A D25-Apr-202523 21

ofs-rebuild.okH A D25-Apr-202517 21

pfile-overflow.awkH A D25-Apr-20251 11

pfile-overflow.okH A D25-Apr-2025165 54

rs_underflow.awkH A D25-Apr-202531 21

rs_underflow.inHD25-Apr-20252

rs_underflow.okHD25-Apr-20252

rstart-rlength.awkH A D25-Apr-2025168 1110

rstart-rlength.okH A D25-Apr-202514 54

space.awkH A D25-Apr-2025376 2318

space.badH A D25-Apr-2025278 1716

space.okH A D25-Apr-2025282 1716

split-fs-from-array.awkH A D25-Apr-2025122 65

split-fs-from-array.okH A D25-Apr-202513 21

string-conv.awkH A D25-Apr-2025240 1413

string-conv.badH A D25-Apr-202567 54

string-conv.okH A D25-Apr-202553 54

subsep-overflow.awkH A D25-Apr-2025579 2520

subsep-overflow.okH A D25-Apr-202514 65

system-status.awkH A D25-Apr-2025576 209

system-status.badH A D25-Apr-202598 43

system-status.okH A D25-Apr-202586 43

system-status.ok2H A D25-Apr-202586 43

unary-plus.awkH A D25-Apr-202556 54

unary-plus.badH A D25-Apr-202523 32

unary-plus.okH A D25-Apr-202510 32

unicode-fs-rs-1.awkH A D25-Apr-202560 76

unicode-fs-rs-1.inH A D25-Apr-202569 32

unicode-fs-rs-1.okH A D25-Apr-202554 64

unicode-fs-rs-2.awkH A D25-Apr-202567 86

unicode-fs-rs-2.inH A D25-Apr-202563 32

unicode-fs-rs-2.okH A D25-Apr-202530 54

unicode-null-match.awkH A D25-Apr-202585 75

unicode-null-match.badHD25-Apr-202510

unicode-null-match.okH A D25-Apr-20258 21

README

1List of bugs fixed.
2
31. ofs-rebuild: OFS value used to rebuild the record was incorrect.
4Fixed August 19, 2014. Revised fix August 2018.
5
62. system-status: Instead of a floating-point division by 256, use
7the wait(2) macros to create a reasonable exit status. Fixed March 12, 2016.
8
93. space: Use provided xisblank() function instead of ispace() for
10matching [[:blank:]].
11
124. a-format: Add POSIX standard %a and %A to supported formats. Check
13at runtime that this format is available.
14
155. decr-NF: Decrementing NF did not change $0. This is a decades-old
16bug. There are interactions with the old and new value of OFS as well.
17Most of the fix came from the NetBSD awk.
18
196. string-conv: String conversions of scalars were sticky.  Once a
20conversion to string happened, even with OFMT, that value was used until
21a new numeric value was assigned, even if OFMT differed from CONVFMT,
22and also if CONVFMT changed.
23
247. unary-plus: Unary plus on a string constant returned the string.
25Instead, it should convert the value to numeric and give that value.
26
278. concat-assign-same: Concatenation previously evaluated both sides of the
28expression before doing its work, which, since assign() evaluates to the cell
29being assigned to, meant that expressions like "print (a = 1) (a = 2)" would
30print "22" rather than "12".
31
329. missing-precision: When using the format string "%*s", the precision
33argument was used without checking if it was present first.
34
3510. missing-precision: When using the format string "%*s", the precision
36argument was used without checking if it was present first.
37
3811. fmt-overflow: The buffer used for OFMT/CONVFMT conversions was written
39to with sprintf(), which meant that some conversions could write past the
40end.
41
4212. numeric-subsep, numeric-fs, numeric-output-seps, numerics-rs: If SUBSEP,
43FS, RS, OFS, or ORS were set to a numeric value, then their string values
44wouldn't always be generated before being needed.
45
4613. subsep-overflow: The length of SUBSEP needs to be rechecked after
47calling execute(), in case SUBSEP itself has been changed.
48
4914. split-fs-from-array: If the third argument to split() comes from the
50array passed as the second argument, then split() would previously read
51from the freed memory and possibly produce incorrect results (depending
52on the system's malloc()/free() behaviour.)
53
5415. getline-numeric: The `getline xx < file' syntax did not check if
55values were numeric, in discordance from POSIX. Test case adapted from
56one posted by Ben Bacarisse <[email protected]> in comp.lang.awk,
57January 2019.
58