diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2023-11-23 19:20:45 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2023-11-23 19:20:45 +0200 |
commit | b84620a7b5c89e84ec76821ba3fd31d70b29ee7b (patch) | |
tree | 7a3b8a0d16cb3b4efad27fbc42613e977ea4a80b | |
parent | ad444edf7b9d72d9c1025764cb76079b6cc84661 (diff) | |
download | one-true-awk-b84620a7b5c89e84ec76821ba3fd31d70b29ee7b.tar.gz |
Fix issue #147. Update FIXES and main.c version.
-rw-r--r-- | FIXES | 11 | ||||
-rw-r--r-- | main.c | 2 | ||||
-rw-r--r-- | run.c | 3 |
3 files changed, 11 insertions, 5 deletions
@@ -25,13 +25,19 @@ THIS SOFTWARE. This file lists all bug fixes, changes, etc., made since the second edition of the AWK book was published in September 2023. -Nov 20, 2023 +Nov 23, 2023: + Fix Issue #169, related to escape sequences in strings. + Thanks to Github user rajeevvp. + Fix Issue #147, reported by Github user drawkula, and fixed + by Miguel Pineiro Jr. + +Nov 20, 2023: rewrite of fnematch to fix a number of issues, including extraneous output, out-of-bounds access, number of bytes to push back after a failed match etc. thanks to Miguel Pineiro Jr. -Nov 15, 2023 +Nov 15, 2023: Man page edit, regression test fixes. thanks to Arnold Robbins consolidation of sub and gsub into dosub, removing duplicate code. thanks to Miguel Pineiro Jr. @@ -44,7 +50,6 @@ Oct 30, 2023: systems. also fixed an out-of-bounds read for empty CCL. fixed a buffer overflow in substr with utf-8 strings. many thanks to Todd C Miller. - Sep 24, 2023: fnematch and getrune have been overhauled to solve issues around @@ -22,7 +22,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ****************************************************************/ -const char *version = "version 20231120"; +const char *version = "version 20231123"; #define DEBUG #include <stdio.h> @@ -1540,8 +1540,9 @@ Cell *assign(Node **a, int n) /* a[0] = a[1], a[0] += a[1], etc. */ if (x == y && !(x->tval & (FLD|REC)) && x != nfloc) ; /* self-assignment: leave alone unless it's a field or NF */ else if ((y->tval & (STR|NUM)) == (STR|NUM)) { + yf = getfval(y); setsval(x, getsval(y)); - x->fval = getfval(y); + x->fval = yf; x->tval |= NUM; } else if (isstr(y)) |