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