Blame NEWS.0

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