b725e888cf
management problem involving custom print formats. PR: 13615 Reported by: Scott Hazen Mueller <scott@zorch.sf-bay.org>
1879 lines
58 KiB
Plaintext
1879 lines
58 KiB
Plaintext
Changes from 3.0.3 to 3.0.4
|
|
---------------------------
|
|
|
|
This is a bug fix release only, pending further development on 3.1.0.
|
|
|
|
Bugs Fixed:
|
|
|
|
1. A memory leak when turning a function parameter into an array was
|
|
fixed.
|
|
|
|
2. The non-decimal data option now works correctly.
|
|
|
|
3. Using an empty pair of brackets as an array subscript no longer causes
|
|
a core dump during parsing. In general, syntax errors should not
|
|
cause core dumps any more.
|
|
|
|
4. Standard input is no longer closed if it provides program source,
|
|
avoiding strange I/O problems.
|
|
|
|
5. Memory corruption during printing with `print' has been fixed.
|
|
|
|
6. The gsub function now correctly counts the number of matches.
|
|
|
|
7. A typo in doc/Makefile.in has been fixed, making installation work.
|
|
|
|
8. Calling `next' or `nextfile' from a BEGIN or END rule is now fatal.
|
|
|
|
9. Subtle problems in rebuilding $0 when fields were changed have been
|
|
fixed.
|
|
|
|
10. `FS = FS' now correctly turns off the use of FIELDWIDTHS.
|
|
|
|
11. Gawk now parses fields correctly when FS is a single character.
|
|
|
|
12. It is now possible for RS to be the NUL character ("\0").
|
|
|
|
13. Weird problems with number conversions on MIPS and other systems
|
|
have been fixed.
|
|
|
|
14. When parsing using FIELDWIDTHS is in effect, split() with no third
|
|
argument will still use the value of FS.
|
|
|
|
15. Large File Support for Solaris, HP-UX, AIX, and IRIX is now enabled at
|
|
compile time, thanks to Paul Eggert.
|
|
|
|
16. Attempting to use the name of a function as a variable or array
|
|
from within the function is now caught as a fatal error, instead
|
|
of as a core dump.
|
|
|
|
17. A bug in parsing hex escapes was fixed.
|
|
|
|
18. A weird bug with concatenation where one expression has side effects
|
|
that changes another was fixed.
|
|
|
|
19. printf/sprintf now behave much better for uses of the '0' and '#' flags
|
|
and with precisions and field widths.
|
|
|
|
20. Further strangenesses with concatenation and multiple accesses of some
|
|
of the special variables was fixed.
|
|
|
|
21. The Atari port is marked as no longer supported.
|
|
|
|
22. Build problems on HP-UX have been fixed.
|
|
|
|
23. Minor fixes and additional explanations added to the documentation.
|
|
|
|
24. For RS = "", even a single leading newline is now correctly stripped.
|
|
|
|
25. Obscure parsing problems for regex constants like /=.../ fixed, so
|
|
that a regex constant is recognized, and not the /= operator.
|
|
|
|
26. Fixed a bug when closing a redirection that matched the current
|
|
or last FILENAME.
|
|
|
|
27. Build problems on AIX fixed.
|
|
|
|
Changes from 3.0.2 to 3.0.3
|
|
---------------------------
|
|
|
|
The horrendous per-record memory leak introduced in 3.0.1 is gone, finally.
|
|
|
|
The `amiga' directory is now gone; Amiga support is now entirely handled
|
|
by the POSIX support.
|
|
|
|
Win32 support has been added in the `pc' directory. See `README_d/README.pc'
|
|
for more info.
|
|
|
|
The mmap changes are disabled in io.c, and will be removed entirely
|
|
in the next big release. They were an interesting experiment that just
|
|
really didn't work in practice.
|
|
|
|
A minor memory leak that occurred when using `next' from within a
|
|
function has also been fixed.
|
|
|
|
Problems with I/O from sub-processes via a pipe are now gone.
|
|
|
|
Using "/dev/pid" and the other special /dev files no longer causes a core dump.
|
|
|
|
The files regex.h, regex.c, getopt.h, getopt.c, and getopt1.c have been
|
|
merged with the versions in GNU libc. Thanks to Ulrich Drepper for his help.
|
|
|
|
Some new undocumented features have been added. Use the source, Luke!
|
|
It is not clear yet whether these will ever be fully supported.
|
|
|
|
Array performance should be much better for very very large arrays. "Virtual
|
|
memory required, real memory helpful."
|
|
|
|
builtin.c:do_substr rationalized, again.
|
|
|
|
The --re-interval option now works as advertised.
|
|
|
|
The license text on some of the missing/* files is now generic.
|
|
|
|
Lots more new test cases.
|
|
|
|
Lots of other small bugs fixed, see the ChangeLog files for details.
|
|
|
|
Changes from 3.0.1 to 3.0.2
|
|
---------------------------
|
|
|
|
Gawk now uses autoconf 2.12.
|
|
|
|
strftime now behaves correctly if passed an empty format string or if
|
|
the string formats to an empty result string.
|
|
|
|
Several minor compilation and installation problems have been fixed.
|
|
|
|
Minor page break issues in the user's guide have been fixed.
|
|
|
|
Lexical errors no longer repeat ad infinitum.
|
|
|
|
Changes from 3.0.0 to 3.0.1
|
|
---------------------------
|
|
|
|
Troff source for a handy-dandy five color reference card is now provided.
|
|
Thanks to SSC for their macros.
|
|
|
|
Gawk now behaves like Unix awk and mawk, in that newline acts as white
|
|
space for separating fields and for split(), by default. In posix mode,
|
|
only space and tab separate fields. The documentation has been updated to
|
|
reflect this.
|
|
|
|
Tons and tons of small bugs fixed and new tests added, see the ChangeLogs.
|
|
|
|
Lots fewer compile time warnings from gcc -Wall. Remaining ones aren't
|
|
worth fixing.
|
|
|
|
Gawk now pays some attention to the locale settings.
|
|
|
|
Fixes to gsub to catch several corner cases.
|
|
|
|
The `print' statement now evaluates all expressions first, and then
|
|
prints them. This leads to less suprising behaviour if any expression has
|
|
output side effects.
|
|
|
|
Miscellanious improvements in regex.h and regex.c.
|
|
|
|
Gawk will now install itself as gawk-M.N.P in $(bindir), and link
|
|
`gawk' to it. This makes it easy to have multiple versions of gawk
|
|
simultaneously. It will also now install itself as `awk' in $(bindir)
|
|
if there is no `awk' there. This is in addition to installing itself as
|
|
`gawk'. This change benefits the Hurd, and possibly other systems. One
|
|
day, gawk will drop the `g', but not yet.
|
|
|
|
`--posix' turns on interval expressions. Gawk now matches its documentation.
|
|
|
|
`close(FILENAME)' now does something meaningful.
|
|
|
|
Field management code in field.c majorly overhauled, several times.
|
|
|
|
The gensub code has been fixed, several bugs are now gone.
|
|
|
|
Gawk will use mmap for data file input if it is available.
|
|
|
|
The printf/sprintf code has been improved.
|
|
|
|
Minor issues in Makefile setup worked on and improved.
|
|
|
|
builtin.c:do_substr rationalized.
|
|
|
|
Regex matching fixed so that /+[0-9]/ now matches the leading +.
|
|
|
|
For building on vms, the default compiler is now DEC C rather than VAX C.
|
|
|
|
Changes from 2.15.6 to 3.0.0
|
|
----------------------------
|
|
|
|
Fixed spelling of `Programming' in the copyright notice in all the files.
|
|
|
|
New --re-interval option to turn on interval expressions. They're off
|
|
by default, except for --posix, to avoid breaking old programs.
|
|
|
|
Passing regexp constants as parameters to user defined functions now
|
|
generates a lint warning.
|
|
|
|
Several obscure regexp bugs fixed; alas, a small number remain.
|
|
|
|
The manual has been thoroughly revised. It's now almost 50% bigger than
|
|
it used to be.
|
|
|
|
The `+' modifier in printf is now reset correctly for each item.
|
|
|
|
The do_unix variable is now named do_traditional.
|
|
|
|
Handling of \ in sub and gsub rationalized (somewhat, see the manual for
|
|
the gory [and I do mean gory] details).
|
|
|
|
IGNORECASE now uses ISO 8859-1 Latin-1 instead of straight ASCII. See the
|
|
source for how to revert to pure ASCII.
|
|
|
|
--lint will now warn if an assignment occurs in a conditional context.
|
|
This may become obnoxious enough to need turning off in the future, but
|
|
"it seemed like a good idea at the time."
|
|
|
|
%hf and %Lf are now diagnosed as invalid in printf, just like %lf.
|
|
|
|
Gawk no longer incorrectly closes stdin in child processes used in
|
|
input pipelines.
|
|
|
|
For integer formats, gawk now correctly treats the precision as the
|
|
number of digits to print, not the number of characters.
|
|
|
|
gawk is now much better at catching the use of scalar values when
|
|
arrays are needed, both in function calls and the `x in y' constructs.
|
|
|
|
New gensub function added. See the manual.
|
|
|
|
If do_tradtional is true, octal and hex escapes in regexp constants are
|
|
treated literally. This matches historical behavior.
|
|
|
|
yylex/nextc fixed so that even null characters can be included
|
|
in the source code.
|
|
|
|
do_format now handles cases where a format specifier doesn't end in
|
|
a control letter. --lint reports an error.
|
|
|
|
strftime() now uses a default time format equivalent to that of the
|
|
Unix date command, thus it can be called with no arguments.
|
|
|
|
Gawk now catches functions that are used but not defined at parse time
|
|
instead of at run time. (This is a lint error, making it fatal could break
|
|
old code.)
|
|
|
|
Arrays that max out are now handled correctly.
|
|
|
|
Integer formats outside the range of an unsigned long are now detected
|
|
correctly using the SunOS 4.x cc compiler.
|
|
|
|
--traditional option added as new preferred name for --compat, in keeping
|
|
with GCC.
|
|
|
|
--lint-old option added, so that warnings about things not in old awk
|
|
are only given if explicitly asked for.
|
|
|
|
`next file' has changed to one word, `nextfile'. `next file' is still
|
|
accepted but generates a lint warning. `next file' will go away eventually.
|
|
|
|
Gawk with --lint will now notice empty source files and empty data files.
|
|
|
|
Amiga support using the Unix emulation added. Thanks to fnf@ninemoons.com.
|
|
|
|
test/Makefile is now "parallel-make safe".
|
|
|
|
Gawk now uses POSIX regexps + GNU regex ops by default. --posix goes to
|
|
pure posix regexps, and --compat goes to traditional Unix regexps. However,
|
|
interval expressions, even though specified by POSIX, are turned off by
|
|
default, to avoid breaking old code.
|
|
|
|
IGNORECASE now applies to string comparison as well as regexp operations.
|
|
|
|
The AT&T Bell Labs Research awk fflush builtin function is now supported.
|
|
fflush is extended to flush stdout if no arg and everything if given
|
|
the null string as an argument.
|
|
|
|
If RS is more than one character, it is treated as a regular expression
|
|
and records are delimited accordingly. The variable RT is set to the record
|
|
terminator string. This is disabled in compatibility mode.
|
|
|
|
If FS is set to the null string (or the third arg. of split() is the null
|
|
string), splitting is done at every single character. This is disabled in
|
|
compatibility mode.
|
|
|
|
Gawk now uses the Autoconf generated configure script, doing away with all
|
|
the config/* files and the machinery that went with them. The Makefile.in
|
|
has also changed accordingly, complete with all the standard GNU Makefile
|
|
targets. (Non-unix systems may still have their own config.h and Makefile;
|
|
see the appropriate README_d/README.* and/or subdirectory.)
|
|
|
|
The source code has been cleaned up somewhat and the formatting improved.
|
|
|
|
Changes from 2.15.5 to 2.15.6
|
|
-----------------------------
|
|
|
|
Copyrights updated on all changed files.
|
|
|
|
test directory enhanced with four new tests.
|
|
|
|
Gawk now generates a warning for \x without following hexadecimal digits.
|
|
In this case, it returns 'x', not \0.
|
|
|
|
Several fixes in main.c related to variable initialization:
|
|
CONVFMT has a default value
|
|
resetup is called before initializing variables
|
|
the varinit table fixed up a bit (see the comments)
|
|
|
|
gawk.1 updated with new BUG REPORTS section.
|
|
|
|
A plain `print' inside a BEGIN or END now generates a lint warning (awk.y).
|
|
|
|
Small fix in iop.c:get_a_record to avoid reading uninitialized memory.
|
|
|
|
awk.y:yylex now does a better job of handling things if the source file
|
|
does not end in a newline. Probably there is more work to be done.
|
|
|
|
Memory leaks fixed in awk.y, particularly in cases of duplicate function
|
|
parameters. Also, calling a function doesn't leak memory during parsing.
|
|
|
|
Empty function bodies are now allowed (awk.y).
|
|
|
|
Gawk now detects duplicate parameter names in functions (awk.y).
|
|
|
|
New function `error' in msg.c added for use from awk.y.
|
|
|
|
eval.c:r_get_lhs now checks if its argument is a parameter on the stack,
|
|
and pulls down the real variable. This catches more 'using an array as
|
|
a scalar' kinds of errors.
|
|
|
|
main.c recovers C alloca space after parsing, this is important for
|
|
bison-based parsers. re.c recovers C alloca space after doing an research.
|
|
[Changes from Pat Rankin]
|
|
|
|
builtin.c now declares the random() related functions based on
|
|
RANDOM_MISSING from config.h. [Suggested by Pat Rankin]
|
|
|
|
awk.h now handles alloca correctly for HP-UX. [Kaveh Ghazi]
|
|
|
|
regex.h and config/cray60 updated for Unicos 8.0. [Hal Peterson]
|
|
|
|
Fixed re.c and dfa.c so that gawk no longer leaks memory when using
|
|
lots of dynamic regexps.
|
|
|
|
Removed dependency on signed chars from `idx' variable in awk.h. Gawk
|
|
now passes its test suite if compiled with `gcc -fno-signed-char'.
|
|
|
|
Fixed warning on close in io.c to go under lint control. Too many people
|
|
have complained about the spurious message, particularly when closing a
|
|
child pipeline early.
|
|
|
|
Gawk now correctly handles RS = "" when input is from a terminal
|
|
(iop.c:get_a_record).
|
|
|
|
Config file added for GNU.
|
|
|
|
gawk 'BEGIN { exit 1 } ; END { exit }' now exits 1, as it should
|
|
(eval.c:interpret).
|
|
|
|
sub and gsub now follow posix, \ escapes both & and \. Each \ must
|
|
be doubled initially in the program to get it into the string.
|
|
Thanks to Mike Brennan for pointing this out (builtin.c:sub_common).
|
|
|
|
If FS is "", gawk behaves like mawk and nawk, making the whole record be $1.
|
|
Yet Another Dark Corner. Sigh (field.c:def_parse_field).
|
|
|
|
Gawk now correctly recomputes string values for numbers if CONVFMT has
|
|
changed (awk.h:force_string, node.c:r_force_string).
|
|
|
|
A regexp of the form `/* this looks like a comment but is not */' will
|
|
now generate a warning from --lint (awk.y).
|
|
|
|
Gawk will no longer core dump if given an empty input file (awk.y:get_src_buf,
|
|
iop.c:optimal_bufsize).
|
|
|
|
A printf format of the form %lf is handled correctly. The `l' generates
|
|
a lint warning (builtin.c:format_tree) [Thanks to Mark Moraes].
|
|
|
|
Lynxos config file added.
|
|
|
|
`continue' outside a loop treated as `next' only in compatibility mode,
|
|
instead of by default; recent att nawk chokes on this now. `break'
|
|
outside a loop now treated as `next' in compatibility mode (eval.c).
|
|
|
|
Bug fix in string concatenation, an arbitrary number of expressions
|
|
are allowed (eval.c).
|
|
|
|
$1 += $2 now works correctly (eval.c).
|
|
|
|
Changing IGNORECASE no longer resets field-splitting to FS if it was
|
|
using FIELDWIDTHS (eval.c, field.c).
|
|
|
|
Major enhancement: $0 and NF for last record read are now preserved
|
|
into the END rule (io.c).
|
|
|
|
Regexp fixes:
|
|
/./ now matches a newline (regex.h)
|
|
^ and $ match beginning and end of string only, not any embedded
|
|
newlines (re.c)
|
|
regex.c should compile and work ok on 64-bit mips/sgi machines
|
|
|
|
Changes from 2.15.4 to 2.15.5
|
|
-----------------------------
|
|
|
|
FUTURES file updated and re-arranged some with more rational schedule.
|
|
|
|
Many prototypes handled better for ANSI C in protos.h.
|
|
|
|
getopt.c updated somewhat.
|
|
|
|
test/Makefile now removes junk directory, `bardargtest' renamed `badargs.'
|
|
|
|
Bug fix in iop.c for RS = "". Eat trailing newlines off of record separator.
|
|
|
|
Bug fix in Makefile.bsd44, use leading tab in actions.
|
|
|
|
Fix in field.c:set_FS for FS == "\\" and IGNORECASE != 0.
|
|
|
|
Config files updated or added:
|
|
cray60, DEC OSF/1 2.0, Utek, sgi405, next21, next30, atari/config.h,
|
|
sco.
|
|
|
|
Fix in io.c for ENFILE as well as EMFILE, update decl of groupset to
|
|
include OSF/1.
|
|
|
|
Rationalized printing as integers if numbers are outside the range of a long.
|
|
Changes to node.c:force_string and builtin.c.
|
|
|
|
Made internal NF, NR, and FNR variables longs instead of ints.
|
|
|
|
Add LIMITS_H_MISSING stuff to config.in and awk.h, and default defs for
|
|
INT_MAX and LONG_MAX, if no limits.h file. Add a standard decl of
|
|
the time() function for __STDC__. From ghazi@noc.rutgers.edu.
|
|
|
|
Fix tree_eval in awk.h and r_tree_eval in eval.c to deal better with
|
|
function parameters, particularly ones that are arrays.
|
|
|
|
Fix eval.c to print out array names of arrays used in scalar contexts.
|
|
|
|
Fix eval.c in interpret to zero out source and sourceline initially. This
|
|
does a better job of providing source file and line number information.
|
|
|
|
Fix to re_parse_field in field.c to not use isspace when RS = "", but rather
|
|
to explicitly look for blank and tab.
|
|
|
|
Fix to sc_parse_field in field.c to catch the case of the FS character at the
|
|
end of a record.
|
|
|
|
Lots of miscellanious bug fixes for memory leaks, courtesy Mark Moraes,
|
|
also fixes for arrays.
|
|
|
|
io.c fixed to warn about lack of explicit closes if --lint.
|
|
|
|
Updated missing/strftime.c to match posted strftime 6.2.
|
|
|
|
Bug fix in builtin.c, in case of non-match in sub_common.
|
|
|
|
Updated constant used for division in builtin.c:do_rand for DEC Alpha
|
|
and CRAY Y-MP.
|
|
|
|
POSIXLY_CORRECT in the environment turns on --posix (fixed in main.c).
|
|
|
|
Updated srandom prototype and calls in builtin.c.
|
|
|
|
Fix awk.y to enforce posix semantics of unary +: result is numeric.
|
|
|
|
Fix array.c to not rearrange the hash chain upon finding an index in
|
|
the array. This messed things up in cases like:
|
|
for (index1 in array) {
|
|
blah
|
|
if (index2 in array) # blew away the for
|
|
stuff
|
|
}
|
|
|
|
Fixed spelling errors in the man page.
|
|
|
|
Fixes in awk.y so that
|
|
gawk '' /path/to/file
|
|
will work without core dumping or finding parse errors.
|
|
|
|
Fix main.c so that --lint will fuss about an empty program.
|
|
Yet another fix for argument parsing in the case of unrecognized options.
|
|
|
|
Bug fix in dfa.c to not attempt to free null pointers.
|
|
|
|
Bug fix in builtin.c to only use DEFAULT_G_PRECISION for %g or %G.
|
|
|
|
Bug fix in field.c to achieve call by value semantics for split.
|
|
|
|
Changes from 2.15.3 to 2.15.4
|
|
-----------------------------
|
|
|
|
Lots of lint fixes, and do_sprintf made mostly ANSI C compatible.
|
|
|
|
Man page updated and edited.
|
|
|
|
Copyrights updated.
|
|
|
|
Arrays now grow dynamically, initially scaling up by an order of magnitude
|
|
and then doubling, up to ~ 64K. This should keep gawk's performance
|
|
graceful under heavy load.
|
|
|
|
New `delete array' feature added. Only documented in the man page.
|
|
|
|
Switched to dfa and regex suites from grep-2.0. These offer the ability to
|
|
move to POSIX regexps in the next release.
|
|
|
|
Disabled GNU regex ops.
|
|
|
|
Research awk -m option now recognized. It does nothing in gawk, since gawk
|
|
has no static limits. Only documented in the man page.
|
|
|
|
New bionic (faster, better, stronger than before) hashing function.
|
|
|
|
Bug fix in argument handling. `gawk -X' now notices there was no program.
|
|
Additional bug fixes to make --compat and --lint work again.
|
|
|
|
Many changes for systems where sizeof(int) != sizeof(void *).
|
|
|
|
Add explicit alloca(0) in io.c to recover space from C alloca.
|
|
|
|
Fixed file descriptor leak in io.c.
|
|
|
|
The --version option now follows the GNU coding standards and exits.
|
|
|
|
Fixed several prototypes in protos.h.
|
|
|
|
Several tests updated. On Solaris, warn that the out? tests will fail.
|
|
|
|
Configuration files for SunOS with cc and Solaris 2.x added.
|
|
|
|
Improved error messages in awk.y on gawk extensions if do_unix or do_compat.
|
|
|
|
INSTALL file added.
|
|
|
|
Fixed Atari Makefile and several VMS specific changes.
|
|
|
|
Better conversion of numbers to strings on systems with broken sprintfs.
|
|
|
|
Changes from 2.15.2 to 2.15.3
|
|
-----------------------------
|
|
|
|
Increased HASHSIZE to a decent number, 127 was way too small.
|
|
|
|
FILENAME is now the null string in a BEGIN rule.
|
|
|
|
Argument processing fixed for invalid options and missing arguments.
|
|
|
|
This version will build on VMS. This included a fix to close all files
|
|
and pipes opened with redirections before closing stdout and stderr.
|
|
|
|
More getpgrp() defines.
|
|
|
|
Changes for BSD44: <sys/param.h> in io.c and Makefile.bsd44.
|
|
|
|
All directories in the distribution are now writable.
|
|
|
|
Separated LDFLAGS and CFLAGS in Makefile. CFLAGS can now be overridden by
|
|
user.
|
|
|
|
Make dist now builds compressed archives ending in .gz and runs doschk.
|
|
|
|
Amiga port.
|
|
|
|
New getopt.c fixes Alpha OSF/1 problem.
|
|
|
|
Make clean now removes possible test output.
|
|
|
|
Improved algorithm for multiple adjacent string concatenations leads to
|
|
performance improvements.
|
|
|
|
Fix nasty bug whereby command-line assignments, both with -v and at run time,
|
|
could create variables with syntactically illegal names.
|
|
|
|
Fix obscure bug in printf with %0 flag and filling.
|
|
|
|
Add a lint check for substr if provided length exceeds remaining characters
|
|
in string.
|
|
|
|
Update atari support.
|
|
|
|
PC support enhanced to include support for both DOS and OS/2. (Lots more
|
|
#ifdefs. Sigh.)
|
|
|
|
Config files for Hitachi Unix and OSF/1, courtesy of Yoko Morishita
|
|
(morisita@sra.co.jp)
|
|
|
|
Changes from 2.15.1 to 2.15.2
|
|
-----------------------------
|
|
|
|
Additions to the FUTURES file.
|
|
|
|
Document undefined order of output when using both standard output
|
|
and /dev/stdout or any of the /dev output files that gawk emulates in
|
|
the absence of OS support.
|
|
|
|
Clean up the distribution generation in Makefile.in: the info files are
|
|
now included, the distributed files are marked read-only and patched
|
|
distributions are now unpacked in a directory named with the patch level.
|
|
|
|
Changes from 2.15 to 2.15.1
|
|
---------------------------
|
|
|
|
Close stdout and stderr before all redirections on program exit. This allows
|
|
detection of write errors and also fixes the messages test on Solaris 2.x.
|
|
|
|
Removed YYMAXDEPTH define in awk.y which was limiting the parser stack depth.
|
|
|
|
Changes to config/bsd44, Makefile.bsd44 and configure to bring it into line
|
|
with the BSD4.4 release.
|
|
|
|
Changed Makefile to use prefix, exec_prefix, bindir etc.
|
|
|
|
make install now installs info files.
|
|
|
|
make install now sets permissions on installed files.
|
|
|
|
Make targets added: uninstall, distclean, mostlyclean and realclean.
|
|
|
|
Added config.h to cleaner and clobber make targets.
|
|
|
|
Changes to config/{hpux8x,sysv3,sysv4,ultrix41} to deal with alloca().
|
|
|
|
Change to getopt.h for portability.
|
|
|
|
Added more special cases to the getpgrp() call.
|
|
|
|
Added README.ibmrt-aos and config/ibmrt-aos.
|
|
|
|
Changes from 2.14 to 2.15
|
|
---------------------------
|
|
|
|
Command-line source can now be mixed with library functions.
|
|
|
|
ARGIND variable tracks index in ARGV of FILENAME.
|
|
|
|
GNU style long options in addition to short options.
|
|
|
|
Plan 9 style special files interpreted by gawk:
|
|
/dev/pid
|
|
/dev/ppid
|
|
/dev/pgrpid
|
|
/dev/user
|
|
$1 = getuid
|
|
$2 = geteuid
|
|
$3 = getgid
|
|
$4 = getegid
|
|
$5 ... $NF = getgroups if supported
|
|
|
|
ERRNO variable contains error string if getline or close fails.
|
|
|
|
Very old options -a and -e have gone away.
|
|
|
|
Inftest has been removed from the default target in test/Makefile -- the
|
|
results were too machine specific and resulted in too many false alarms.
|
|
|
|
A README.amiga has been added.
|
|
|
|
The "too many arguments supplied for format string" warning message is only
|
|
in effect under the lint option.
|
|
|
|
Code improvements in dfa.c.
|
|
|
|
Fixed all reported bugs:
|
|
|
|
Writes are checked for failure (such as full filesystem).
|
|
|
|
Stopped (at least some) runaway error messages.
|
|
|
|
gsub(/^/, "x") does the right thing for $0 of 0, 1, or more length.
|
|
|
|
close() on a command being piped to a getline now works properly.
|
|
|
|
The input record will no longer be freed upon an explicit close()
|
|
of the input file.
|
|
|
|
A NUL character in FS now works.
|
|
|
|
In a substitute, \\& now means a literal backslash followed by what
|
|
was matched.
|
|
|
|
Integer overflow of substring length in substr() is caught.
|
|
|
|
An input record without a newline termination is handled properly.
|
|
|
|
In io.c, check is against only EMFILE so that system file table
|
|
is not filled.
|
|
|
|
Renamed all files with names longer than 14 characters.
|
|
|
|
Escaped characters in regular expressions were being lost when
|
|
IGNORECASE was used.
|
|
|
|
Long source lines were not being handled properly.
|
|
|
|
Sourcefiles that ended in a tab but no newline were bombing.
|
|
|
|
Patterns that could match zero characters in split() were not working
|
|
properly.
|
|
|
|
The parsedebug option was not working.
|
|
|
|
The grammar was being a bit too lenient, allowing some very dubious
|
|
programs to pass.
|
|
|
|
Compilation with DEBUG defined now works.
|
|
|
|
A variable read in with getline was not being treated as a potential
|
|
number.
|
|
|
|
Array subscripts were not always of string type.
|
|
|
|
|
|
Changes from 2.13.2 to 2.14
|
|
---------------------------
|
|
|
|
Updated manual!
|
|
|
|
Added "next file" to skip efficiently to the next input file.
|
|
|
|
Fixed potential of overflowing buffer in do_sprintf().
|
|
|
|
Plugged small memory leak in sub_common().
|
|
|
|
EOF on a redirect is now "sticky" -- it can only be cleared by close()ing
|
|
the pipe or file.
|
|
|
|
Now works if used via a #! /bin/gawk line at the top of an executable file
|
|
when that line ends with whitespace.
|
|
|
|
Added some checks to the grammar to catch redefinition of builtin functions.
|
|
This could eventually be the basis for an extension to allow redefining
|
|
functions, but in the mean time it's a good error catching facility.
|
|
|
|
Negative integer exponents now work.
|
|
|
|
Modified do_system() to make sure it had a non-null string to be passed
|
|
to system(3). Thus, system("") will flush any pending output but not go
|
|
through the overhead of forking an un-needed shell.
|
|
|
|
A fix to floating point comparisons so that NaNs compare right on IEEE systems.
|
|
|
|
Added code to make sure we're not opening directories for reading and such.
|
|
|
|
Added code to do better diagnoses of weird or null file names.
|
|
|
|
Allow continue outside of a loop, unless in strict posix mode. Lint option
|
|
will issue warning.
|
|
|
|
New missing/strftime.c. There has been one change that affects gawk. Posix
|
|
now defines a %V conversion so the vms conversion has been changed to %v.
|
|
If this version is used with gawk -Wlint and they use %V in a call to
|
|
strftime, they'll get a warning.
|
|
|
|
Error messages now conform to GNU standard (I hope).
|
|
|
|
Changed comparisons to conform to the description found in the file POSIX.
|
|
This is inconsistent with the current POSIX draft, but that is broken.
|
|
Hopefully the final POSIX standard will conform to this version.
|
|
(Alas, this will have to wait for 1003.2b, which will be a revision to
|
|
the 1003.2 standard. That standard has been frozen with the broken
|
|
comparison rules.)
|
|
|
|
The length of a string was a short and now is a size_t.
|
|
|
|
Updated VMS help.
|
|
|
|
Added quite a few new tests to the test suite and deleted many due to lack of
|
|
written releases. Test output is only removed if it is identical to the
|
|
"good" output.
|
|
|
|
Fixed a couple of bugs for reference to $0 when $0 is "" -- particularly in
|
|
a BEGIN block.
|
|
|
|
Fixed premature freeing in construct "$0 = $0".
|
|
|
|
Removed the call to wait_any() in gawk_popen(), since on at least some systems,
|
|
if gawk's input was from a pipe, the predecessor process in the pipe was a
|
|
child of gawk and this caused a deadlock.
|
|
|
|
Regexp can (once again) match a newline, if given explicitly.
|
|
|
|
nextopen() makes sure file name is null terminated.
|
|
|
|
Fixed VMS pipe simulation. Improved VMS I/O performance.
|
|
|
|
Catch . used in variable names.
|
|
|
|
Fixed bug in getline without redirect from a file -- it was quitting after the
|
|
first EOF, rather than trying the next file.
|
|
|
|
Fixed bug in treatment of backslash at the end of a string -- it was bombing
|
|
rather than doing something sensible. It is not clear what this should mean,
|
|
but for now I issue a warning and take it as a literal backslash.
|
|
|
|
Moved setting of regexp syntax to before the option parsing in main(), to
|
|
handle things like -v FS='[.,;]'
|
|
|
|
Fixed bug when NF is set by user -- fields_arr must be expanded if necessary
|
|
and "new" fields must be initialized.
|
|
|
|
Fixed several bugs in [g]sub() for no match found or the match is 0-length.
|
|
|
|
Fixed bug where in gsub() a pattern anchored at the beginning would still
|
|
substitute throughout the string.
|
|
|
|
make test does not assume that . is in PATH.
|
|
|
|
Fixed bug when a field beyond the end of the record was requested after
|
|
$0 was altered (directly or indirectly).
|
|
|
|
Fixed bug for assignment to field beyond end of record -- the assigned value
|
|
was not found on subsequent reference to that field.
|
|
|
|
Fixed bug for FS a regexp and it matches at the end of a record.
|
|
|
|
Fixed memory leak for an array local to a function.
|
|
|
|
Fixed hanging of pipe redirection to getline
|
|
|
|
Fixed coredump on access to $0 inside BEGIN block.
|
|
|
|
Fixed treatment of RS = "". It now parses the fields correctly and strips
|
|
leading whitespace from a record if FS is a space.
|
|
|
|
Fixed faking of /dev/stdin.
|
|
|
|
Fixed problem with x += x
|
|
|
|
Use of scalar as array and vice versa is now detected.
|
|
|
|
IGNORECASE now obeyed for FS (even if FS is a single alphabetic character).
|
|
|
|
Switch to GPL version 2.
|
|
|
|
Renamed awk.tab.c to awktab.c for MSDOS and VMS tar programs.
|
|
|
|
Renamed this file (CHANGES) to NEWS.
|
|
|
|
Use fmod() instead of modf() and provide FMOD_MISSING #define to undo
|
|
this change.
|
|
|
|
Correct the volatile declarations in eval.c.
|
|
|
|
Avoid errant closing of the file descriptors for stdin, stdout and stderr.
|
|
|
|
Be more flexible about where semi-colons can occur in programs.
|
|
|
|
Check for write errors on all output, not just on close().
|
|
|
|
Eliminate the need for missing/{strtol.c,vprintf.c}.
|
|
|
|
Use GNU getopt and eliminate missing/getopt.c.
|
|
|
|
More "lint" checking.
|
|
|
|
|
|
Changes from 2.13.1 to 2.13.2
|
|
-----------------------------
|
|
|
|
Toward conformity with GNU standards, configure is a link to mkconf, the latter
|
|
to disappear in the next major release.
|
|
|
|
Update to config/bsd43.
|
|
|
|
Added config/apollo, config/msc60, config/cray2-50, config/interactive2.2
|
|
|
|
sgi33.cc added for compilation using cc rather than gcc.
|
|
|
|
Ultrix41 now propagates to config.h properly -- as part of a general
|
|
mechanism in configure for kludges -- #define anything from a config file
|
|
just gets tacked onto the end of config.h -- to be used sparingly.
|
|
|
|
Got rid of an unnecessary and troublesome declaration of vprintf().
|
|
|
|
Small improvement in locality of error messages.
|
|
|
|
Try to diagnose use of array as scalar and vice versa -- to be improved in
|
|
the future.
|
|
|
|
Fix for last bug fix for Cray division code--sigh.
|
|
|
|
More changes to test suite to explicitly use sh. Also get rid of
|
|
a few generated files.
|
|
|
|
Fixed off-by-one bug in string concatenation code.
|
|
|
|
Fix for use of array that is passed in from a previous function parameter.
|
|
Addition to test suite for above.
|
|
|
|
A number of changes associated with changing NF and access to fields
|
|
beyond the end of the current record.
|
|
|
|
Change to missing/memcmp.c to avoid seg. fault on zero length input.
|
|
|
|
Updates to test suite (including some inadvertently left out of the last patch)
|
|
to invoke sh explicitly (rather than rely on #!/bin/sh) and remove some
|
|
junk files. test/chem/good updated to correspond to bug fixes.
|
|
|
|
Changes from 2.13.0 to 2.13.1
|
|
-----------------------------
|
|
|
|
More configs and PORTS.
|
|
|
|
Fixed bug wherein a simple division produced an erroneous FPE, caused by
|
|
the Cray division workaround -- that code is now #ifdef'd only for
|
|
Cray *and* fixed.
|
|
|
|
Fixed bug in modulus implementation -- it was very close to the above
|
|
code, so I noticed it.
|
|
|
|
Fixed portability problem with limits.h in missing.c
|
|
|
|
Fixed portability problem with tzname and daylight -- define TZNAME_MISSING
|
|
if strftime() is missing and tzname is also.
|
|
|
|
Better support for Latin-1 character set.
|
|
|
|
Fixed portability problem in test Makefile.
|
|
|
|
Updated PROBLEMS file.
|
|
|
|
=============================== gawk-2.13 released =========================
|
|
Changes from 2.12.42 to 2.12.43
|
|
-------------------------------
|
|
|
|
Typo in awk.y
|
|
|
|
Fixed up strftime.3 and added doc. for %V.
|
|
|
|
Changes from 2.12.41 to 2.12.42
|
|
-------------------------------
|
|
|
|
Fixed bug in devopen() -- if you had write permission in /dev,
|
|
it would just create /dev/stdout etc.!!
|
|
|
|
Final (?) VMS update.
|
|
|
|
Make NeXT use GFMT_WORKAROUND
|
|
|
|
Fixed bug in sub_common() for substitute on zero-length match. Improved the
|
|
code a bit while I was at it.
|
|
|
|
Fixed grammar so that $i++ parses as ($i)++
|
|
|
|
Put support/* back in the distribution (didn't I already do this?!)
|
|
|
|
Changes from 2.12.40 to 2.12.41
|
|
-------------------------------
|
|
|
|
VMS workaround for broken %g format.
|
|
|
|
Changes from 2.12.39 to 2.12.40
|
|
-------------------------------
|
|
|
|
Minor man page update.
|
|
|
|
Fixed latent bug in redirect().
|
|
|
|
Changes from 2.12.38 to 2.12.39
|
|
-------------------------------
|
|
|
|
Updates to test suite -- remove dependence on changing gawk.1 man page.
|
|
|
|
Changes from 2.12.37 to 2.12.38
|
|
-------------------------------
|
|
|
|
Fixed bug in use of *= without whitespace following.
|
|
|
|
VMS update.
|
|
|
|
Updates to man page.
|
|
|
|
Option handling updates in main.c
|
|
|
|
test/manyfiles redone and added to bigtest.
|
|
|
|
Fixed latent (on Sun) bug in handling of save_fs.
|
|
|
|
Changes from 2.12.36 to 2.12.37
|
|
-------------------------------
|
|
|
|
Update REL in Makefile-dist. Incorporate test suite into main distribution.
|
|
|
|
Minor fix in regtest.
|
|
|
|
Changes from 2.12.35 to 2.12.36
|
|
-------------------------------
|
|
|
|
Release takes on dual personality -- 2.12.36 and 2.13.0 -- any further
|
|
patches before public release won't count for 2.13, although they will for
|
|
2.12 -- be careful to avoid confusion! patchlevel.h will be the last thing
|
|
to change.
|
|
|
|
Cray updates to deal with arithmetic problems.
|
|
|
|
Minor test suite updates.
|
|
|
|
Fixed latent bug in parser (freeing memory).
|
|
|
|
Changes from 2.12.34 to 2.12.35
|
|
-------------------------------
|
|
|
|
VMS updates.
|
|
|
|
Flush stdout at top of err() and stderr at bottom.
|
|
|
|
Fixed bug in eval_condition() -- it wasn't testing for MAYBE_NUM and
|
|
doing the force_number().
|
|
|
|
Included the missing manyfiles.awk and a new test to catch the above bug which
|
|
I am amazed wasn't already caught by the test suite -- it's pretty basic.
|
|
|
|
Changes from 2.12.33 to 2.12.34
|
|
-------------------------------
|
|
|
|
Atari updates -- including bug fix.
|
|
|
|
More VMS updates -- also nuke vms/version.com.
|
|
|
|
Fixed bug in handling of large numbers of redirections -- it was probably never
|
|
tested before (blush!).
|
|
|
|
Minor rearrangement of code in r_force_number().
|
|
|
|
Made chem and regtest tests a bit more portable (Ultrix again).
|
|
|
|
Added another test -- manyfiles -- not invoked under any other test -- very Unix
|
|
specific.
|
|
|
|
Rough beginning of LIMITATIONS file -- need my AWK book to complete it.
|
|
|
|
Changes from 2.12.32 to 2.12.33
|
|
-------------------------------
|
|
|
|
Expunge debug.? from various files.
|
|
|
|
Remove vestiges of Floor and Ceil kludge.
|
|
|
|
Special case integer division -- mainly for Cray, but maybe someone else
|
|
will benefit.
|
|
|
|
Workaround for iop_close closing an output pipe descriptor on Cray --
|
|
not conditional since I think it may fix a bug on SGI as well and I don't
|
|
think it can hurt elsewhere.
|
|
|
|
Fixed memory leak in assoc_lookup().
|
|
|
|
Small cleanup in test suite.
|
|
|
|
Changes from 2.12.31 to 2.12.32
|
|
-------------------------------
|
|
|
|
Nuked debug.c and debugging flag -- there are better ways.
|
|
|
|
Nuked version.sh and version.c in subdirectories.
|
|
|
|
Fixed bug in handling of IGNORECASE.
|
|
|
|
Fixed bug when FIELDWIDTHS was set via -v option.
|
|
|
|
Fixed (obscure) bug when $0 is assigned a numerical value.
|
|
|
|
Fixed so that escape sequences in command-line assignments work (as it already
|
|
said in the comment).
|
|
|
|
Added a few cases to test suite.
|
|
|
|
Moved support/* back into distribution.
|
|
|
|
VMS updates.
|
|
|
|
Changes from 2.12.30 to 2.12.31
|
|
-------------------------------
|
|
|
|
Cosmetic manual page changes.
|
|
|
|
Updated sunos3 config.
|
|
|
|
Small changes in test suite including renaming files over 14 chars. in length.
|
|
|
|
Changes from 2.12.29 to 2.12.30
|
|
-------------------------------
|
|
|
|
Bug fix for many string concatenations in a row.
|
|
|
|
Changes from 2.12.28 to 2.12.29
|
|
-------------------------------
|
|
|
|
Minor cleanup in awk.y
|
|
|
|
Minor VMS update.
|
|
|
|
Minor atari update.
|
|
|
|
Changes from 2.12.27 to 2.12.28
|
|
-------------------------------
|
|
|
|
Got rid of the debugging goop in eval.c -- there are better ways.
|
|
|
|
Sequent port.
|
|
|
|
VMS changes left out of the last patch -- sigh! config/vms.h renamed
|
|
to config/vms-conf.h.
|
|
|
|
Fixed missing/tzset.c
|
|
|
|
Removed use of gcvt() and GCVT_MISSING -- turns out it was no faster than
|
|
sprintf("%g") and caused all sorts of portability headaches.
|
|
|
|
Tuned get_field() -- it was unnecessarily parsing the whole record on reference
|
|
to $0.
|
|
|
|
Tuned interpret() a bit in the rule_node loop.
|
|
|
|
In r_force_number(), worked around bug in Uglix strtod() and got rid of
|
|
ugly do{}while(0) at Michal's urging.
|
|
|
|
Replaced do_deref() and deref with unref(node) -- much cleaner and a bit faster.
|
|
|
|
Got rid of assign_number() -- contrary to comment, it was no faster than
|
|
just making a new node and freeing the old one.
|
|
|
|
Replaced make_number() and tmp_number() with macros that call mk_number().
|
|
|
|
Changed freenode() and newnode() into macros -- the latter is getnode()
|
|
which calls more_nodes() as necessary.
|
|
|
|
Changes from 2.12.26 to 2.12.27
|
|
-------------------------------
|
|
|
|
Completion of Cray 2 port (includes a kludge for floor() and ceil()
|
|
that may go or be changed -- I think that it may just be working around
|
|
a bug in chem that is being tweaked on the Cray).
|
|
|
|
More VMS updates.
|
|
|
|
Moved kludge over yacc's insertion of malloc and realloc declarations
|
|
from protos.h to the Makefile.
|
|
|
|
Added a lisp interpreter in awk to the test suite. (Invoked under
|
|
bigtest.)
|
|
|
|
Cleanup in r_force_number() -- I had never gotten around to a thorough
|
|
profile of the cache code and it turns out to be not worth it.
|
|
|
|
Performance boost -- do lazy force_number()'ing for fields etc. i.e.
|
|
flag them (MAYBE_NUM) and call force_number only as necessary.
|
|
|
|
Changes from 2.12.25 to 2.12.26
|
|
-------------------------------
|
|
|
|
Rework of regexp stuff so that dynamic regexps have reasonable
|
|
performance -- string used for compiled regexp is stored and
|
|
compared to new string -- if same, no recompilation is necessary.
|
|
Also, very dynamic regexps cause dfa-based searching to be turned
|
|
off.
|
|
|
|
Code in dev_open() is back to returning fileno(std*) rather than
|
|
dup()ing it. This will be documented. Sorry for the run-around
|
|
on this.
|
|
|
|
Minor atari updates.
|
|
|
|
Minor vms update.
|
|
|
|
Missing file from MSDOS port.
|
|
|
|
Added warning (under lint) if third arg. of [g]sub is a constant and
|
|
handle it properly in the code (i.e. return how many matches).
|
|
|
|
Changes from 2.12.24 to 2.12.25
|
|
-------------------------------
|
|
|
|
MSDOS port.
|
|
|
|
Non-consequential changes to regexp variables in preparation for
|
|
a more serious change to fix a serious performance problem.
|
|
|
|
Changes from 2.12.23 to 2.12.24
|
|
-------------------------------
|
|
|
|
Fixed bug in output flushing introduced a few patches back. This caused
|
|
serious performance losses.
|
|
|
|
Changes from 2.12.22 to 2.12.23
|
|
-------------------------------
|
|
|
|
Accidentally left config/cray2-60 out of last patch.
|
|
|
|
Added some missing dependencies to Makefile.
|
|
|
|
Cleaned up mkconf a bit; made yacc the default parser (no alloca needed,
|
|
right?); added rs6000 hook for signed characters.
|
|
|
|
Made regex.c with NO_ALLOCA undefined work.
|
|
|
|
Fixed bug in dfa.c for systems where free(NULL) bombs.
|
|
|
|
Deleted a few cant_happen()'s that *really* can't hapen.
|
|
|
|
Changes from 2.12.21 to 2.12.22
|
|
-------------------------------
|
|
|
|
Added to config stuff the ability to choose YACC rather than bison.
|
|
|
|
Fixed CHAR_UNSIGNED in config.h-dist.
|
|
|
|
Second arg. of strtod() is char ** rather than const char **.
|
|
|
|
stackb is now initially malloc()'ed since it may be realloc()'ed.
|
|
|
|
VMS updates.
|
|
|
|
Added SIZE_T_MISSING to config stuff and a default typedef to awk.h.
|
|
(Maybe it is not needed on any current systems??)
|
|
|
|
re_compile_pattern()'s size is now size_t unconditionally.
|
|
|
|
Changes from 2.12.20 to 2.12.21
|
|
-------------------------------
|
|
|
|
Corrected missing/gcvt.c.
|
|
|
|
Got rid of use of dup2() and thus DUP_MISSING.
|
|
|
|
Updated config/sgi33.
|
|
|
|
Turned on (and fixed) in cmp_nodes() the behaviour that I *hope* will be in
|
|
POSIX 1003.2 for relational comparisons.
|
|
|
|
Small updates to test suite.
|
|
|
|
Changes from 2.12.19 to 2.12.20
|
|
-------------------------------
|
|
|
|
Sloppy, sloppy, sloppy!! I didn't even try to compile the last two
|
|
patches. This one fixes goofs in regex.c.
|
|
|
|
Changes from 2.12.18 to 2.12.19
|
|
-------------------------------
|
|
|
|
Cleanup of last patch.
|
|
|
|
Changes from 2.12.17 to 2.12.18
|
|
-------------------------------
|
|
|
|
Makefile renamed to Makefile-dist.
|
|
|
|
Added alloca() configuration to mkconf. (A bit kludgey.) Just
|
|
add a single line containing ALLOCA_PW, ALLOCA_S or ALLOCA_C
|
|
to the appropriate config file to have Makefile-dist edited
|
|
accordingly.
|
|
|
|
Reorganized output flushing to correspond with new semantics of
|
|
devopen() on "/dev/std*" etc.
|
|
|
|
Fixed rest of last goof!!
|
|
|
|
Save and restore errno in do_pathopen().
|
|
|
|
Miscellaneous atari updates.
|
|
|
|
Get rid of the trailing comma in the NODETYPE definition (Cray
|
|
compiler won't take it).
|
|
|
|
Try to make the use of `const' consistent since Cray compiler is
|
|
fussy about that. See the changes to `basename' and `myname'.
|
|
|
|
It turns out that, according to section 3.8.3 (Macro Replacement)
|
|
of the ANSI Standard: ``If there are sequences of preprocessing
|
|
tokens within the list of arguments that would otherwise act as
|
|
preprocessing directives, the behavior is undefined.'' That means
|
|
that you cannot count on the behavior of the declaration of
|
|
re_compile_pattern in awk.h, and indeed the Cray compiler chokes on it.
|
|
|
|
Replaced alloca with malloc/realloc/free in regex.c. It was much simpler
|
|
than expected. (Inside NO_ALLOCA for now -- by default no alloca.)
|
|
|
|
Added a configuration file, config/cray60, for Unicos-6.0.
|
|
|
|
Changes from 2.12.16 to 2.12.17
|
|
-------------------------------
|
|
|
|
Ooops. Goofed signal use in last patch.
|
|
|
|
Changes from 2.12.15 to 2.12.16
|
|
-------------------------------
|
|
|
|
RENAMED *_dir to just * (e.g. missing_dir).
|
|
|
|
Numerous VMS changes.
|
|
|
|
Proper inclusion of atari and vms files.
|
|
|
|
Added experimental (ifdef'd out) RELAXED_CONTINUATION and DEFAULT_FILETYPE
|
|
-- please comment on these!
|
|
|
|
Moved pathopen() to io.c (sigh).
|
|
|
|
Put local directory ahead in default AWKPATH.
|
|
|
|
Added facility in mkconf to echo comments on stdout: lines beginning
|
|
with "#echo " will have the remainder of the line echoed when mkconf is run.
|
|
Any lines starting with "#" will otherwise be treated as comments. The
|
|
intent is to be able to say:
|
|
"#echo Make sure you uncomment alloca.c in the Makefile"
|
|
or the like.
|
|
|
|
Prototype fix for V.4
|
|
|
|
Fixed version_string to not print leading @(#).
|
|
|
|
Fixed FIELDWIDTHS to work with strict (turned out to be easy).
|
|
|
|
Fixed conf for V.2.
|
|
|
|
Changed semantics of /dev/fd/n to be like on real /dev/fd.
|
|
|
|
Several configuration and updates in the makefile.
|
|
|
|
Updated manpage.
|
|
|
|
Include tzset.c and system.c from missing_dir that were accidently left out of
|
|
the last patch.
|
|
|
|
Fixed bug in cmdline variable assignment -- arg was getting freed(!) in
|
|
call to variable.
|
|
|
|
Backed out of parse-time constant folding for now, until I can figure out
|
|
how to do it right.
|
|
|
|
Fixed devopen() so that getline <"-" works.
|
|
|
|
Changes from 2.12.14 to 2.12.15
|
|
-------------------------------
|
|
|
|
Changed config/* to a condensed form that can be used with mkconf to generate
|
|
a config.h from config.h-dist -- much easier to maintain. Please check
|
|
carefully against what you had before for a particular system and report
|
|
any problems. vms.h remains separate since the stuff at the bottom
|
|
didn't quite fit the mkconf model -- hopefully cleared up later.
|
|
|
|
Fixed bug in grammar -- didn't allow function definition to be separated from
|
|
other rules by a semi-colon.
|
|
|
|
VMS fix to #includes in missing.c -- should we just be including awk.h?
|
|
|
|
Updated README for texinfo.tex version.
|
|
|
|
Updating of copyright in all .[chy] files.
|
|
|
|
Added but commented out Michal's fix to strftime.
|
|
|
|
Added tzset() emulation based on Rick Adams' code. Added TZSET_MISSING to
|
|
config.h-dist.
|
|
|
|
Added strftime.3 man page for missing_dir
|
|
|
|
More posix: func, **, **= don't work in -W posix
|
|
|
|
More lint: ^, ^= not in old awk
|
|
|
|
gawk.1: removed ref to -DNO_DEV_FD, other minor updating.
|
|
|
|
Style change: pushbak becomes pushback() in yylex().
|
|
|
|
Changes from 2.12.13 to 2.12.14
|
|
-------------------------------
|
|
|
|
Better (?) organization of awk.h -- attempt to keep all system dependencies
|
|
near the top and move some of the non-general things out of the config.h
|
|
files.
|
|
|
|
Change to handling of SYSTEM_MISSING.
|
|
|
|
Small change to ultrix config.
|
|
|
|
Do "/dev/fd/*" etc. checking at runtime.
|
|
|
|
First pass at VMS port.
|
|
|
|
Improvements to error handling (when lexeme spans buffers).
|
|
|
|
Fixed backslash handling -- why didn't I notice this sooner?
|
|
|
|
Added programs from book to test suite and new target "bigtest" to Makefile.
|
|
|
|
Changes from 2.12.12 to 2.12.13
|
|
-------------------------------
|
|
|
|
Recognize OFS and ORS specially so that OFS = 9 works without efficiency hit.
|
|
Took advantage of opportunity to tune do_print*() for about 10% win on a
|
|
print with 5 args (i.e. small but significant).
|
|
|
|
Somewhat pervasive changes to reconcile CONVFMT vs. OFMT.
|
|
|
|
Better initialization of builtin vars.
|
|
|
|
Make config/* consistent wrt STRTOL_MISSING.
|
|
|
|
Small portability improvement to alloca.s
|
|
|
|
Improvements to lint code in awk.y
|
|
|
|
Replaced strtol() with a better one by Chris Torek.
|
|
|
|
Changes from 2.12.11 to 2.12.12
|
|
-------------------------------
|
|
|
|
Added PORTS file to record successful ports.
|
|
|
|
Added #define const to nothing if not STDC and added const to strtod() header.
|
|
|
|
Added * to printf capabilities and partially implemented ' ' and '+' (has an
|
|
effect for %d only, silently ignored for other formats). I'm afraid that's
|
|
as far as I want to go before I look at a complete replacement for
|
|
do_sprintf().
|
|
|
|
Added warning for /regexp/ on LHS of MATCHOP.
|
|
|
|
Changes from 2.12.10 to 2.12.11
|
|
-------------------------------
|
|
|
|
Small Makefile improvements.
|
|
|
|
Some remaining nits from the NeXT port.
|
|
|
|
Got rid of bcopy() define in awk.h -- not needed anymore (??)
|
|
|
|
Changed private in builtin.c -- it is special on Sequent.
|
|
|
|
Added subset implementation of strtol() and STRTOL_MISSING.
|
|
|
|
A little bit of cleanup in debug.c, dfa.c.
|
|
|
|
Changes from 2.12.9 to 2.12.10
|
|
------------------------------
|
|
|
|
Redid compatability checking and checking for # of args.
|
|
|
|
Removed all references to variables[] from outside awk.y, in preparation
|
|
for a more abstract interface to the symbol table.
|
|
|
|
Got rid of a remaining use of bcopy() in regex.c.
|
|
|
|
Changes from 2.12.8 to 2.12.9
|
|
-----------------------------
|
|
|
|
Portability improvements for atari, next and decstation.
|
|
|
|
Bug fix in substr() -- wasn't handling 3rd arg. of -1 properly.
|
|
|
|
Manpage updates.
|
|
|
|
Moved support from src release to doc release.
|
|
|
|
Updated FUTURES file.
|
|
|
|
Added some "lint" warnings.
|
|
|
|
Changes from 2.12.7 to 2.12.8
|
|
-----------------------------
|
|
|
|
Changed time() to systime().
|
|
|
|
Changed warning() in snode() to fatal().
|
|
|
|
strftime() now defaults second arg. to current time.
|
|
|
|
Changes from 2.12.6 to 2.12.7
|
|
-----------------------------
|
|
|
|
Fixed bug in sub_common() involving inadequate allocation of a buffer.
|
|
|
|
Added some missing files to the Makefile.
|
|
|
|
Changes from 2.12.5 to 2.12.6
|
|
-----------------------------
|
|
|
|
Fixed bug wherein non-redirected getline could call iop_close() just
|
|
prior to a call from do_input().
|
|
|
|
Fixed bug in handling of /dev/stdout and /dev/stderr.
|
|
|
|
Changes from 2.12.4 to 2.12.5
|
|
-----------------------------
|
|
|
|
Updated README and support directory.
|
|
|
|
Changes from 2.12.3 to 2.12.4
|
|
-----------------------------
|
|
|
|
Updated CHANGES and TODO (should have been done in previous 2 patches).
|
|
|
|
Changes from 2.12.2 to 2.12.3
|
|
-----------------------------
|
|
|
|
Brought regex.c and alloca.s into line with current FSF versions.
|
|
|
|
Changes from 2.12.1 to 2.12.2
|
|
-----------------------------
|
|
|
|
Portability improvements; mostly moving system prototypes out of awk.h
|
|
|
|
Introduction of strftime.
|
|
|
|
Use of CONVFMT.
|
|
|
|
Changes from 2.12 to 2.12.1
|
|
-----------------------------
|
|
|
|
Consolidated treatment of command-line assignments (thus correcting the
|
|
-v treatment).
|
|
|
|
Rationalized builtin-variable handling into a table-driven process, thus
|
|
simplifying variable() and eliminating spc_var().
|
|
|
|
Fixed bug in handling of command-line source that ended in a newline.
|
|
|
|
Simplified install() and lookup().
|
|
|
|
Did away with double-mallocing of identifiers and now free second and later
|
|
instances of a name, after the first gets installed into the symbol table.
|
|
|
|
Treat IGNORECASE specially, simplifying a lot of code, and allowing
|
|
checking against strict conformance only on setting it, rather than on each
|
|
pattern match.
|
|
|
|
Fixed regexp matching when IGNORECASE is non-zero (broken when dfa.c was
|
|
added).
|
|
|
|
Fixed bug where $0 was not being marked as valid, even after it was rebuilt.
|
|
This caused mangling of $0.
|
|
|
|
|
|
Changes from 2.11.1 to 2.12
|
|
-----------------------------
|
|
|
|
Makefile:
|
|
|
|
Portability improvements in Makefile.
|
|
Move configuration stuff into config.h
|
|
|
|
FSF files:
|
|
|
|
Synchronized alloca.[cs] and regex.[ch] with FSF.
|
|
|
|
array.c:
|
|
|
|
Rationalized hash routines into one with a different algorithm.
|
|
delete() now works if the array is a local variable.
|
|
Changed interface of assoc_next() and avoided dereferencing past the end of the
|
|
array.
|
|
|
|
awk.h:
|
|
|
|
Merged non-prototype and prototype declarations in awk.h.
|
|
Expanded tree_eval #define to short-circuit more calls of r_tree_eval().
|
|
|
|
awk.y:
|
|
|
|
Delinted some of the code in the grammar.
|
|
Fixed and improved some of the error message printing.
|
|
Changed to accomodate unlimited length source lines.
|
|
Line continuation now works as advertised.
|
|
Source lines can be arbitrarily long.
|
|
Refined grammar hacks so that /= assignment works. Regular expressions
|
|
starting with /= are recognized at the beginning of a line, after && or ||
|
|
and after ~ or !~. More contexts can be added if necessary.
|
|
Fixed IGNORECASE (multiple scans for backslash).
|
|
Condensed expression_lists in array references.
|
|
Detect and warn for correct # args in builtin functions -- call most of them
|
|
with a fixed number (i.e. fill in defaults at parse-time rather than at
|
|
run-time).
|
|
Load ENVIRON only if it is referenced (detected at parse-time).
|
|
Treat NF, FS, RS, NR, FNR specially at parse time, to improve run time.
|
|
Fold constant expressions at parse time.
|
|
Do make_regexp() on third arg. of split() at parse tiem if it is a constant.
|
|
|
|
builtin.c:
|
|
|
|
srand() returns 0 the first time called.
|
|
Replaced alloca() with malloc() in do_sprintf().
|
|
Fixed setting of RSTART and RLENGTH in do_match().
|
|
Got rid of get_{one,two,three} and allowance for variable # of args. at
|
|
run-time -- this is now done at parse-time.
|
|
Fixed latent bug in [g]sub whereby changes to $0 would never get made.
|
|
Rewrote much of sub_common() for simplicity and performance.
|
|
Added ctime() and time() builtin functions (unless -DSTRICT). ctime() returns
|
|
a time string like the C function, given the number of seconds since the epoch
|
|
and time() returns the current time in seconds.
|
|
do_sprintf() now checks for mismatch between format string and number of
|
|
arguments supplied.
|
|
|
|
dfa.c
|
|
|
|
This is borrowed (almost unmodified) from GNU grep to provide faster searches.
|
|
|
|
eval.c
|
|
|
|
Node_var, Node_var_array and Node_param_list handled from macro rather
|
|
than in r_tree_eval().
|
|
Changed cmp_nodes() to not do a force_number() -- this, combined with a
|
|
force_number() on ARGV[] and ENVIRON[] brings it into line with other awks
|
|
Greatly simplified cmp_nodes().
|
|
Separated out Node_NF, Node_FS, Node_RS, Node_NR and Node_FNR in get_lhs().
|
|
All adjacent string concatenations now done at once.
|
|
|
|
field.c
|
|
|
|
Added support for FIELDWIDTHS.
|
|
Fixed bug in get_field() whereby changes to a field were not always
|
|
properly reflected in $0.
|
|
Reordered tests in parse_field() so that reference off the end of the buffer
|
|
doesn't happen.
|
|
set_FS() now sets *parse_field i.e. routine to call depending on type of FS.
|
|
It also does make_regexp() for FS if needed. get_field() passes FS_regexp
|
|
to re_parse_field(), as does do_split().
|
|
Changes to set_field() and set_record() to avoid malloc'ing and free'ing the
|
|
field nodes repeatedly. The fields now just point into $0 unless they are
|
|
assigned to another variable or changed. force_number() on the field is
|
|
*only* done when the field is needed.
|
|
|
|
gawk.1
|
|
|
|
Fixed troff formatting problem on .TP lines.
|
|
|
|
io.c
|
|
|
|
Moved some code out into iop.c.
|
|
Output from pipes and system() calls is properly synchronized.
|
|
Status from pipe close properly returned.
|
|
Bug in getline with no redirect fixed.
|
|
|
|
iop.c
|
|
|
|
This file contains a totally revamped get_a_record and associated code.
|
|
|
|
main.c
|
|
|
|
Command line programs no longer use a temporary file.
|
|
Therefore, tmpnam() no longer required.
|
|
Deprecated -a and -e options -- they will go away in the next release,
|
|
but for now they cause a warning.
|
|
Moved -C, -V, -c options to -W ala posix.
|
|
Added -W posix option: throw out \x
|
|
Added -W lint option.
|
|
|
|
|
|
node.c
|
|
|
|
force_number() now allows pure numerics to have leading whitespace.
|
|
Added make_string facility to optimize case of adding an already malloc'd
|
|
string.
|
|
Cleaned up and simplified do_deref().
|
|
Fixed bug in handling of stref==255 in do_deref().
|
|
|
|
re.c
|
|
|
|
contains the interface to regexp code
|
|
|
|
Changes from 2.11.1 to FSF version of same
|
|
------------------------------------------
|
|
Thu Jan 4 14:19:30 1990 Jim Kingdon (kingdon at albert)
|
|
|
|
* Makefile (YACC): Add -y to bison part.
|
|
|
|
* missing.c: Add #include <stdio.h>.
|
|
|
|
Sun Dec 24 16:16:05 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu)
|
|
|
|
* Makefile: Add (commented out) default defines for Sony News.
|
|
|
|
* awk.h: Move declaration of vprintf so it will compile when
|
|
-DVPRINTF_MISSING is defined.
|
|
|
|
Mon Nov 13 18:54:08 1989 Robert J. Chassell (bob at apple-gunkies.ai.mit.edu)
|
|
|
|
* gawk.texinfo: changed @-commands that are not part of the
|
|
standard, currently released texinfmt.el to those that are.
|
|
Otherwise, only people with the as-yet unreleased makeinfo.c can
|
|
format this file.
|
|
|
|
Changes from 2.11beta to 2.11.1 (production)
|
|
--------------------------------------------
|
|
|
|
Went from "beta" to production status!!!
|
|
|
|
Now flushes stdout before closing pipes or redirected files to
|
|
synchronize output.
|
|
|
|
MS-DOS changes added in.
|
|
|
|
Signal handler return type parameterized in Makefile and awk.h and
|
|
some lint removed. debug.c cleaned up.
|
|
|
|
Fixed FS splitting to never match null strings, per book.
|
|
|
|
Correction to the manual's description of FS.
|
|
|
|
Some compilers break on char *foo = "string" + 4 so fixed version.sh and
|
|
main.c.
|
|
|
|
Changes from 2.10beta to 2.11beta
|
|
---------------------------------
|
|
|
|
This release fixes all reported bugs that we could reproduce. Probably
|
|
some of the changes are not documented here.
|
|
|
|
The next release will probably not be a beta release!
|
|
|
|
The most important change is the addition of the -nostalgia option. :-)
|
|
|
|
The documentation has been improved and brought up-to-date.
|
|
|
|
There has been a lot of general cleaning up of the code that is not otherwise
|
|
documented here. There has been a movement toward using standard-conforming
|
|
library routines and providing them (in missing.d) for systems lacking them.
|
|
Improved (hopefully) configuration through Makfile modifications and missing.c.
|
|
In particular, straightened out confusion over vprintf #defines, declarations
|
|
etc.
|
|
|
|
Deleted RCS log comments from source, to reduce source size by about one third.
|
|
Most of them were horribly out-of-date, anyway.
|
|
|
|
Renamed source files to reflect (for the most part) their contents.
|
|
|
|
More and improved error messages. Cleanup and fixes to yyerror().
|
|
String constants are not altered in input buffer, so error messages come out
|
|
better. Fixed usage message. Make use of ANSI C strerror() function
|
|
(provided).
|
|
|
|
Plugged many more memory leaks. The memory consumption is now quite
|
|
reasonable over a wide range of programs.
|
|
|
|
Uses volatile declaration if STDC > 0 to avoid problems due to longjmp.
|
|
|
|
New -a and -e options to use awk or egrep style regexps, respectively,
|
|
since POSIX says awk should use egrep regexps. Default is -a.
|
|
|
|
Added -v option for setting variables before the first file is encountered.
|
|
Version information now uses -V and copyleft uses -C.
|
|
|
|
Added a patchlevel.h file and its use for -V and -C.
|
|
|
|
Append_right() optimized for major improvement to programs with a *lot*
|
|
of statements.
|
|
|
|
Operator precedence has been corrected to match draft Posix.
|
|
|
|
Tightened up grammar for builtin functions so that only length
|
|
may be called without arguments or parentheses.
|
|
|
|
/regex/ is now a normal expression that can appear in any expression
|
|
context.
|
|
|
|
Allow /= to begin a regexp. Allow ..[../..].. in a regexp.
|
|
|
|
Allow empty compound statements ({}).
|
|
|
|
Made return and next illegal outside a function and in BEGIN/END respectively.
|
|
|
|
Division by zero is now illegal and causes a fatal error.
|
|
|
|
Fixed exponentiation so that x ^ 0 and x ^= 0 both return 1.
|
|
|
|
Fixed do_sqrt, do_log, and do_exp to do argument/return checking and
|
|
print an error message, per the manual.
|
|
|
|
Fixed main to catch SIGSEGV to get source and data file line numbers.
|
|
|
|
Fixed yyerror to print the ^ at the beginning of the bad token, not the end.
|
|
|
|
Fix to substr() builtin: it was failing if the arguments
|
|
weren't already strings.
|
|
|
|
Added new node value flag NUMERIC to indicate that a variable is
|
|
purely a number as opposed to type NUM which indicates that
|
|
the node's numeric value is valid. This is set in make_number(),
|
|
tmp_number and r_force_number() when appropriate and used in
|
|
cmp_nodes(). This fixed a bug in comparison of variables that had
|
|
numeric prefixes. The new code uses strtod() and eliminates is_a_number().
|
|
A simple strtod() is provided for systems lacking one. It does no
|
|
overflow checking, so could be improved.
|
|
|
|
Simplification and efficiency improvement in force_string.
|
|
|
|
Added performance tweak in r_force_number().
|
|
|
|
Fixed a bug with nested loops and break/continue in functions.
|
|
|
|
Fixed inconsistency in handling of empty fields when $0 has to be rebuilt.
|
|
Happens to simplify rebuild_record().
|
|
|
|
Cleaned up the code associated with opening a pipe for reading. Gawk
|
|
now has its own popen routine (gawk_popen) that allocates an IOBUF
|
|
and keeps track of the pid of the child process. gawk_pclose
|
|
marks the appropriate child as defunct in the right struct redirect.
|
|
|
|
Cleaned up and fixed close_redir().
|
|
|
|
Fixed an obscure bug to do with redirection. Intermingled ">" and ">>"
|
|
redirects did not output in a predictable order.
|
|
|
|
Improved handling of output buffering: now all print[f]s redirected to a tty
|
|
or pipe are flushed immediately and non-redirected output to a tty is flushed
|
|
before the next input record is read.
|
|
|
|
Fixed a bug in get_a_record() where bcopy() could have copied over
|
|
a random pointer.
|
|
|
|
Fixed a bug when RS="" and records separated by multiple blank lines.
|
|
|
|
Got rid of SLOWIO code which was out-of-date anyway.
|
|
|
|
Fix in get_field() for case where $0 is changed and then $(n) are
|
|
changed and then $0 is used.
|
|
|
|
Fixed infinite loop on failure to open file for reading from getline.
|
|
Now handles redirect file open failures properly.
|
|
|
|
Filenames such as /dev/stdin now allowed on the command line as well as
|
|
in redirects.
|
|
|
|
Fixed so that gawk '$1' where $1 is a zero tests false.
|
|
|
|
Fixed parsing so that `RLENGTH -1' parses the same as `RLENGTH - 1',
|
|
for example.
|
|
|
|
The return from a user-defined function now defaults to the Null node.
|
|
This fixes a core-dump-causing bug when the return value of a function
|
|
is used and that function returns no value.
|
|
|
|
Now catches floating point exceptions to avoid core dumps.
|
|
|
|
Bug fix for deleting elements of an array -- under some conditions, it was
|
|
deleting more than one element at a time.
|
|
|
|
Fix in AWKPATH code for running off the end of the string.
|
|
|
|
Fixed handling of precision in *printf calls. %0.2d now works properly,
|
|
as does %c. [s]printf now recognizes %i and %X.
|
|
|
|
Fixed a bug in printing of very large (>240) strings.
|
|
|
|
Cleaned up erroneous behaviour for RS == "".
|
|
|
|
Added IGNORECASE support to index().
|
|
|
|
Simplified and fixed newnode/freenode.
|
|
|
|
Fixed reference to $(anything) in a BEGIN block.
|
|
|
|
Eliminated use of USG rand48().
|
|
|
|
Bug fix in force_string for machines with 16-bit ints.
|
|
|
|
Replaced use of mktemp() with tmpnam() and provided a partial implementation of
|
|
the latter for systems that don't have it.
|
|
|
|
Added a portability check for includes in io.c.
|
|
|
|
Minor portability fix in alloc.c plus addition of xmalloc().
|
|
|
|
Portability fix: on UMAX4.2, st_blksize is zero for a pipe, thus breaking
|
|
iop_alloc() -- fixed.
|
|
|
|
Workaround for compiler bug on Sun386i in do_sprintf.
|
|
|
|
More and improved prototypes in awk.h.
|
|
|
|
Consolidated C escape parsing code into one place.
|
|
|
|
strict flag is now turned on only when invoked with compatability option.
|
|
It now applies to fewer things.
|
|
|
|
Changed cast of f._ptr in vprintf.c from (unsigned char *) to (char *).
|
|
Hopefully this is right for the systems that use this code (I don't).
|
|
|
|
Support for pipes under MSDOS added.
|