Name Date Size #Lines LOC

..--

READMEH A D06-Jun-20192.5 KiB5842

REGRESSH A D04-May-2024412 3328

a-format.awkH A D06-Jun-201930 43

a-format.badH A D06-Jun-201960 43

a-format.okH A D06-Jun-20199 21

concat-assign-same.awkH A D06-Jun-2019116 54

concat-assign-same.badH A D06-Jun-201916 32

concat-assign-same.okH A D06-Jun-201916 32

decr-NF.awkH A D06-Jun-2019103 1211

decr-NF.badH A D06-Jun-201930 65

decr-NF.okH A D06-Jun-201927 65

fmt-overflow.awkH A D06-Jun-201940 21

fmt-overflow.okH A D06-Jun-2019256 21

fs-overflow.awkH A D06-Jun-2019159 1412

fs-overflow.okH A D01-Aug-20214 21

getline-corruption.awkH A D28-Feb-202477 65

getline-corruption.inH A D28-Feb-20242

getline-corruption.okH A D28-Feb-20248 21

getline-numeric.awkH A D06-Jun-2019144 76

getline-numeric.badH A D06-Jun-201924 43

getline-numeric.inH A D06-Jun-20194 21

getline-numeric.okH A D06-Jun-201923 43

inf-nan-torture.awkH A D01-Aug-202153 54

inf-nan-torture.inH A D01-Aug-202192 21

inf-nan-torture.okH A D01-Aug-2021182 1716

matchop-deref.awkH A D28-Feb-2024117 129

matchop-deref.badH A D28-Feb-20246 32

matchop-deref.inH A D28-Feb-20248 21

matchop-deref.okH A D28-Feb-20244 32

missing-precision.awkH A D06-Jun-201925 21

missing-precision.errH A D04-Nov-202158 32

negative-nf.awkH A D06-Jun-201919 21

negative-nf.errH A D04-Nov-202161 32

nf-self-assign.awkH A D06-Jun-201951 76

nf-self-assign.badH A D06-Jun-20196 21

nf-self-assign.okH A D06-Jun-20196 21

numeric-fs.awkH A D06-Jun-2019124 65

numeric-fs.okH A D06-Jun-20196 43

numeric-output-seps.awkH A D06-Jun-201979 98

numeric-output-seps.badH A D06-Jun-20198 32

numeric-output-seps.okH A D06-Jun-20198 11

numeric-rs.awkH A D06-Jun-201974 76

numeric-rs.badH A D06-Jun-20198 21

numeric-rs.okH A D06-Jun-20198 54

numeric-subsep.awkH A D06-Jun-2019102 65

numeric-subsep.badH A D06-Jun-20191

numeric-subsep.okH A D06-Jun-20194 21

ofs-rebuild.awkH A D23-Jul-2024466 187

ofs-rebuild.badH A D06-Jun-201923 21

ofs-rebuild.okH A D06-Jun-201917 21

pfile-overflow.awkH A D01-Aug-20211 11

pfile-overflow.errH A D06-Nov-2021155 54

rs_underflow.awkH A D01-Aug-202131 21

rs_underflow.inH A D01-Aug-20212

rs_underflow.okH A D01-Aug-20212

rstart-rlength.awkH A D28-Feb-2024168 1110

rstart-rlength.okH A D28-Feb-202414 54

space.awkH A D06-Jun-2019376 2318

space.badH A D06-Jun-2019278 1716

space.okH A D06-Jun-2019282 1716

split-fs-from-array.awkH A D06-Jun-2019122 65

split-fs-from-array.okH A D06-Jun-201913 21

string-conv.awkH A D06-Jun-2019240 1413

string-conv.badH A D06-Jun-201967 54

string-conv.okH A D06-Jun-201953 54

subsep-overflow.awkH A D06-Jun-2019579 2520

subsep-overflow.okH A D06-Jun-201914 65

system-status.ok2H A D23-Jul-202486 43

unary-plus.awkH A D06-Jun-201956 54

unary-plus.badH A D06-Jun-201923 32

unary-plus.okH A D06-Jun-201910 32

unicode-fs-rs-1.awkH A D28-Feb-202460 76

unicode-fs-rs-1.inH A D28-Feb-202469 32

unicode-fs-rs-1.okH A D28-Feb-202454 64

unicode-fs-rs-2.awkH A D28-Feb-202467 86

unicode-fs-rs-2.inH A D28-Feb-202463 32

unicode-fs-rs-2.okH A D28-Feb-202430 54

unicode-null-match.awkH A D28-Feb-202485 75

unicode-null-match.badH A D28-Feb-202410

unicode-null-match.okH A D28-Feb-20248 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 <ben.usenet@bsb.me.uk> in comp.lang.awk,
57January 2019.
58