Name Date Size #Lines LOC

..--

READMEH A D18-Feb-20202.5 KiB5842

REGRESSH A D17-Aug-2024412

a-format.awkH A D18-Feb-202030 43

a-format.badH A D18-Feb-202060 43

a-format.okH A D18-Feb-20209 21

concat-assign-same.awkH A D18-Feb-2020116 54

concat-assign-same.badH A D18-Feb-202016 32

concat-assign-same.okH A D18-Feb-202016 32

decr-NF.awkH A D18-Feb-2020103 1211

decr-NF.badH A D18-Feb-202030 65

decr-NF.okH A D18-Feb-202027 65

fmt-overflow.awkH A D18-Feb-202040 21

fmt-overflow.okH A D18-Feb-2020256 21

fs-overflow.awkH A D18-Feb-2020159 1412

fs-overflow.okH A D17-Aug-20244

getline-corruption.awkH A D17-Aug-202477

getline-corruption.inH A D17-Aug-20242

getline-corruption.okH A D17-Aug-20248

getline-numeric.awkH A D18-Feb-2020144 76

getline-numeric.badH A D18-Feb-202024 43

getline-numeric.inH A D18-Feb-20204 21

getline-numeric.okH A D18-Feb-202023 43

inf-nan-torture.awkH A D17-Aug-202453

inf-nan-torture.inH A D17-Aug-202492

inf-nan-torture.okH A D17-Aug-2024182

matchop-deref.awkH A D17-Aug-2024117

matchop-deref.badH A D17-Aug-20246

matchop-deref.inH A D17-Aug-20248

matchop-deref.okH A D17-Aug-20244

missing-precision.awkH A D18-Feb-202025 21

missing-precision.okH A D17-Aug-202463

negative-nf.awkH A D18-Feb-202019 21

negative-nf.okH A D17-Aug-202466

nf-self-assign.awkH A D18-Feb-202051 76

nf-self-assign.badH A D18-Feb-20206 21

nf-self-assign.okH A D18-Feb-20206 21

numeric-fs.awkH A D18-Feb-2020124 65

numeric-fs.okH A D18-Feb-20206 43

numeric-output-seps.awkH A D18-Feb-202079 98

numeric-output-seps.badH A D18-Feb-20208 32

numeric-output-seps.okH A D18-Feb-20208 11

numeric-rs.awkH A D18-Feb-202074 76

numeric-rs.badH A D18-Feb-20208 21

numeric-rs.okH A D18-Feb-20208 54

numeric-subsep.awkH A D18-Feb-2020102 65

numeric-subsep.badHD18-Feb-20201

numeric-subsep.okH A D18-Feb-20204 21

ofs-rebuild.awkH A D17-Aug-2024466

ofs-rebuild.badH A D18-Feb-202023 21

ofs-rebuild.okH A D18-Feb-202017 21

pfile-overflow.awkH A D17-Aug-20241

pfile-overflow.okH A D17-Aug-2024165

rs_underflow.awkH A D17-Aug-202431

rs_underflow.inH A D17-Aug-20242

rs_underflow.okH A D17-Aug-20242

rstart-rlength.awkH A D17-Aug-2024168

rstart-rlength.okH A D17-Aug-202414

space.awkH A D18-Feb-2020376 2318

space.badH A D18-Feb-2020278 1716

space.okH A D18-Feb-2020282 1716

split-fs-from-array.awkH A D18-Feb-2020122 65

split-fs-from-array.okH A D18-Feb-202013 21

string-conv.awkH A D18-Feb-2020240 1413

string-conv.badH A D18-Feb-202067 54

string-conv.okH A D18-Feb-202053 54

subsep-overflow.awkH A D18-Feb-2020579 2520

subsep-overflow.okH A D18-Feb-202014 65

system-status.awkH A D17-Aug-2024576

system-status.badH A D18-Feb-202098 43

system-status.okH A D17-Aug-202486

system-status.ok2H A D17-Aug-202486

unary-plus.awkH A D18-Feb-202056 54

unary-plus.badH A D18-Feb-202023 32

unary-plus.okH A D18-Feb-202010 32

unicode-fs-rs-1.awkH A D17-Aug-202460

unicode-fs-rs-1.inH A D17-Aug-202469

unicode-fs-rs-1.okH A D17-Aug-202454

unicode-fs-rs-2.awkH A D17-Aug-202467

unicode-fs-rs-2.inH A D17-Aug-202463

unicode-fs-rs-2.okH A D17-Aug-202430

unicode-null-match.awkH A D17-Aug-202485

unicode-null-match.badH A D17-Aug-202410

unicode-null-match.okH A D17-Aug-20248

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