xref: /dragonfly/contrib/awk/FIXES (revision ed569bc2)
14b588458SPeter Avalos/****************************************************************
24b588458SPeter AvalosCopyright (C) Lucent Technologies 1997
34b588458SPeter AvalosAll Rights Reserved
44b588458SPeter Avalos
54b588458SPeter AvalosPermission to use, copy, modify, and distribute this software and
64b588458SPeter Avalosits documentation for any purpose and without fee is hereby
74b588458SPeter Avalosgranted, provided that the above copyright notice appear in all
84b588458SPeter Avaloscopies and that both that the copyright notice and this
94b588458SPeter Avalospermission notice and warranty disclaimer appear in supporting
104b588458SPeter Avalosdocumentation, and that the name Lucent Technologies or any of
114b588458SPeter Avalosits entities not be used in advertising or publicity pertaining
124b588458SPeter Avalosto distribution of the software without specific, written prior
134b588458SPeter Avalospermission.
144b588458SPeter Avalos
154b588458SPeter AvalosLUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
164b588458SPeter AvalosINCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
174b588458SPeter AvalosIN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY
184b588458SPeter AvalosSPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
194b588458SPeter AvalosWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
204b588458SPeter AvalosIN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
214b588458SPeter AvalosARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
224b588458SPeter AvalosTHIS SOFTWARE.
234b588458SPeter Avalos****************************************************************/
244b588458SPeter Avalos
25*ed569bc2SAaron LIThis file lists all bug fixes, changes, etc., made since the
26*ed569bc2SAaron LIsecond edition of the AWK book was published in September 2023.
2748f09a05SAntonio Huete Jimenez
28*ed569bc2SAaron LIJan 22, 2024:
29*ed569bc2SAaron LI	Restore the ability to compile with g++. Thanks to
3048f09a05SAntonio Huete Jimenez	Arnold Robbins.
3148f09a05SAntonio Huete Jimenez
32*ed569bc2SAaron LIDec 24, 2023:
33*ed569bc2SAaron LI	Matchop dereference after free problem fix when the first
34*ed569bc2SAaron LI	argument is a function call. Thanks to Oguz Ismail Uysal.
35*ed569bc2SAaron LI	Fix inconsistent handling of --csv and FS set in the
36*ed569bc2SAaron LI	command line. Thanks to Wilbert van der Poel.
37*ed569bc2SAaron LI	Casting changes to int for is* functions.
3848f09a05SAntonio Huete Jimenez
39*ed569bc2SAaron LINov 27, 2023:
40*ed569bc2SAaron LI	Fix exit status of system on MacOS. Update to REGRESS.
411d48fce0SDaniel Fojt	Thanks to Arnold Robbins.
42*ed569bc2SAaron LI	Fix inconsistent handling of -F and --csv, and loss of csv
43*ed569bc2SAaron LI	mode when FS is set.
441d48fce0SDaniel Fojt
45*ed569bc2SAaron LINov 24, 2023:
46*ed569bc2SAaron LI        Fix issue #199: gototab improvements to dynamically resize the
47*ed569bc2SAaron LI        table, qsort and bsearch to improve the lookup speed as the
48*ed569bc2SAaron LI        table gets larger for multibyte input. Thanks to Arnold Robbins.
491d48fce0SDaniel Fojt
50*ed569bc2SAaron LINov 23, 2023:
51*ed569bc2SAaron LI	Fix Issue #169, related to escape sequences in strings.
52*ed569bc2SAaron LI	Thanks to Github user rajeevvp.
53*ed569bc2SAaron LI	Fix Issue #147, reported by Github user drawkula, and fixed
54*ed569bc2SAaron LI	by Miguel Pineiro Jr.
551d48fce0SDaniel Fojt
56*ed569bc2SAaron LINov 20, 2023:
57*ed569bc2SAaron LI	Rewrite of fnematch to fix a number of issues, including
58*ed569bc2SAaron LI	extraneous output, out-of-bounds access, number of bytes
59*ed569bc2SAaron LI	to push back after a failed match etc.
60*ed569bc2SAaron LI	Thanks to Miguel Pineiro Jr.
611d48fce0SDaniel Fojt
62*ed569bc2SAaron LINov 15, 2023:
63*ed569bc2SAaron LI	Man page edit, regression test fixes. Thanks to Arnold Robbins
64*ed569bc2SAaron LI	Consolidation of sub and gsub into dosub, removing duplicate
65*ed569bc2SAaron LI	code. Thanks to Miguel Pineiro Jr.
66*ed569bc2SAaron LI	gcc replaced with cc everywhere.
671d48fce0SDaniel Fojt
68*ed569bc2SAaron LIOct 30, 2023:
69*ed569bc2SAaron LI	Multiple fixes and a minor code cleanup.
70*ed569bc2SAaron LI	Disabled utf-8 for non-multibyte locales, such as C or POSIX.
71*ed569bc2SAaron LI	Fixed a bad char * cast that causes incorrect results on big-endian
72*ed569bc2SAaron LI	systems. Also fixed an out-of-bounds read for empty CCL.
73*ed569bc2SAaron LI	Fixed a buffer overflow in substr with utf-8 strings.
74*ed569bc2SAaron LI	Many thanks to Todd C Miller.
751d48fce0SDaniel Fojt
76*ed569bc2SAaron LISep 24, 2023:
77*ed569bc2SAaron LI	fnematch and getrune have been overhauled to solve issues around
78*ed569bc2SAaron LI	unicode FS and RS. Also fixed gsub null match issue with unicode.
79*ed569bc2SAaron LI	Big thanks to Arnold Robbins.
801d48fce0SDaniel Fojt
81*ed569bc2SAaron LISep 12, 2023:
82*ed569bc2SAaron LI	Fixed a length error in u8_byte2char that set RSTART to
83*ed569bc2SAaron LI	incorrect (cannot happen) value for EOL match(str, /$/).
841d48fce0SDaniel Fojt
851d48fce0SDaniel Fojt
86*ed569bc2SAaron LI-----------------------------------------------------------------
871d48fce0SDaniel Fojt
88*ed569bc2SAaron LI[This entry is a summary, not a precise list of changes.]
891d48fce0SDaniel Fojt
90*ed569bc2SAaron LI	Added --csv option to enable processing of comma-separated
91*ed569bc2SAaron LI	values inputs.  When --csv is enabled, fields are separated
92*ed569bc2SAaron LI	by commas, fields may be quoted with " double quotes, fields
93*ed569bc2SAaron LI	may contain embedded newlines.
941d48fce0SDaniel Fojt
95*ed569bc2SAaron LI	If no explicit separator argument is provided, split() uses
96*ed569bc2SAaron LI	the setting of --csv to determine how fields are split.
971d48fce0SDaniel Fojt
98*ed569bc2SAaron LI	Strings may now contain UTF-8 code points (not necessarily
99*ed569bc2SAaron LI	characters).  Functions that operate on characters, like
100*ed569bc2SAaron LI	length, substr, index, match, etc., use UTF-8, so the length
101*ed569bc2SAaron LI	of a string of 3 emojis is 3, not 12 as it would be if bytes
102*ed569bc2SAaron LI	were counted.
1031d48fce0SDaniel Fojt
104*ed569bc2SAaron LI	Regular expressions are processed as UTF-8.
1051d48fce0SDaniel Fojt
106*ed569bc2SAaron LI	Unicode literals can be written as \u followed by one
107*ed569bc2SAaron LI	to eight hexadecimal digits.  These may appear in strings and
108*ed569bc2SAaron LI	regular expressions.
109