Update to nawk-20050424. Fixes several overflow and RE bugs, as well as
preserving $0 in END block.
This commit is contained in:
parent
7e5f8bd1bf
commit
e5687f9fff
|
@ -25,6 +25,55 @@ THIS SOFTWARE.
|
|||
This file lists all bug fixes, changes, etc., made since the AWK book
|
||||
was sent to the printers in August, 1987.
|
||||
|
||||
Apr 24, 2005:
|
||||
modified lib.c so that values of $0 et al are preserved in the END
|
||||
block, apparently as required by posix. thanks to havard eidnes
|
||||
for the report and code.
|
||||
|
||||
Jan 14, 2005:
|
||||
fixed infinite loop in parsing, originally found by brian tsang.
|
||||
thanks to arnold robbins for a suggestion that started me
|
||||
rethinking it.
|
||||
|
||||
Dec 31, 2004:
|
||||
prevent overflow of -f array in main, head off potential error in
|
||||
call of SYNTAX(), test malloc return in lib.c, all with thanks to
|
||||
todd miller.
|
||||
|
||||
Dec 22, 2004:
|
||||
cranked up size of NCHARS; coverity thinks it can be overrun with
|
||||
smaller size, and i think that's right. added some assertions to b.c
|
||||
to catch places where it might overrun. the RE code is still fragile.
|
||||
|
||||
Dec 5, 2004:
|
||||
fixed a couple of overflow problems with ridiculous field numbers:
|
||||
e.g., print $(2^32-1). thanks to ruslan ermilov, giorgos keramidas
|
||||
and david o'brien at freebsd.org for patches. this really should
|
||||
be re-done from scratch.
|
||||
|
||||
Nov 21, 2004:
|
||||
fixed another 25-year-old RE bug, in split. it's another failure
|
||||
to (re-)initialize. thanks to steve fisher for spotting this and
|
||||
providing a good test case.
|
||||
|
||||
Nov 22, 2003:
|
||||
fixed a bug in regular expressions that dates (so help me) from 1977;
|
||||
it's been there from the beginning. an anchored longest match that
|
||||
was longer than the number of states triggered a failure to initialize
|
||||
the machine properly. many thanks to moinak ghosh for not only finding
|
||||
this one but for providing a fix, in some of the most mysterious
|
||||
code known to man.
|
||||
|
||||
fixed a storage leak in call() that appears to have been there since
|
||||
1983 or so -- a function without an explicit return that assigns a
|
||||
string to a parameter leaked a Cell. thanks to moinak ghosh for
|
||||
spotting this very subtle one.
|
||||
|
||||
Jul 31, 2003:
|
||||
fixed, thanks to andrey chernov and ruslan ermilov, a bug in lex.c
|
||||
that mis-handled the character 255 in input. (it was being compared
|
||||
to EOF with a signed comparison.)
|
||||
|
||||
Jul 29, 2003:
|
||||
fixed (i think) the long-standing botch that included the beginning of
|
||||
line state ^ for RE's in the set of valid characters; this led to a
|
||||
|
@ -204,7 +253,7 @@ Apr 21, 2000:
|
|||
jon bentley for the test case that found it.
|
||||
|
||||
added test in envinit to catch environment "variables" with
|
||||
names begining with '='; thanks to Berend Hasselman.
|
||||
names beginning with '='; thanks to Berend Hasselman.
|
||||
|
||||
Jul 28, 1999:
|
||||
added test in defn() to catch function foo(foo), which
|
||||
|
@ -441,7 +490,7 @@ May 2, 1996:
|
|||
some awful behaviors.)
|
||||
|
||||
Apr 29, 1996:
|
||||
replaced uchar by uschar everwhere; apparently some compilers
|
||||
replaced uchar by uschar everywhere; apparently some compilers
|
||||
usurp this name and this causes conflicts.
|
||||
|
||||
fixed call to time in run.c (bltin); arg is time_t *.
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,33 @@
|
|||
@echo off
|
||||
rem
|
||||
rem Root of Visual Developer Studio Common files.
|
||||
set VSCommonDir=C:\PROGRA~1\MICROS~3\Common
|
||||
|
||||
rem
|
||||
rem Root of Visual Developer Studio installed files.
|
||||
rem
|
||||
set MSDevDir=C:\PROGRA~1\MICROS~3\Common\msdev98
|
||||
|
||||
rem
|
||||
rem Root of Visual C++ installed files.
|
||||
rem
|
||||
set MSVCDir=C:\PROGRA~1\MICROS~3\VC98
|
||||
|
||||
rem
|
||||
rem VcOsDir is used to help create either a Windows 95 or Windows NT specific path.
|
||||
rem
|
||||
set VcOsDir=WIN95
|
||||
if "%OS%" == "Windows_NT" set VcOsDir=WINNT
|
||||
|
||||
rem
|
||||
echo Setting environment for using Microsoft Visual C++ tools.
|
||||
rem
|
||||
|
||||
if "%OS%" == "Windows_NT" set PATH=%MSDevDir%\BIN;%MSVCDir%\BIN;%VSCommonDir%\TOOLS\%VcOsDir%;%VSCommonDir%\TOOLS;%PATH%
|
||||
if "%OS%" == "" set PATH="%MSDevDir%\BIN";"%MSVCDir%\BIN";"%VSCommonDir%\TOOLS\%VcOsDir%";"%VSCommonDir%\TOOLS";"%windir%\SYSTEM";"%PATH%"
|
||||
set INCLUDE=%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%
|
||||
set LIB=%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%
|
||||
|
||||
set VcOsDir=
|
||||
set VSCommonDir=
|
||||
|
Loading…
Reference in New Issue