home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / OS2AWK.ZIP / CHANGES next >
Text File  |  1990-05-08  |  7KB  |  198 lines

  1. Changes from 2.11beta to 2.11.1 (production)
  2. --------------------------------------------
  3.  
  4. Went from "beta" to production status!!!
  5.  
  6. Now flushes stdout before closing pipes or redirected files to
  7. synchonize output.
  8.  
  9. MS-DOS changes added in.
  10.  
  11. Signal handler return type parameterized in Makefile and awk.h and
  12. some lint removed.  debug.c cleaned up.
  13.  
  14. Fixed FS splitting to never match null strings, per book.
  15.  
  16. Correction to the manual's description of FS.
  17.  
  18. Some compilers break on char *foo = "string" + 4 so fixed version.sh and
  19. main.c.
  20.  
  21. Changes from 2.10beta to 2.11beta
  22. ---------------------------------
  23.  
  24. This release fixes all reported bugs that we could reproduce.  Probably
  25. some of the changes are not documented here.
  26.  
  27. The next release will probably not be a beta release!
  28.  
  29. The most important change is the addition of the -nostalgia option. :-)
  30.  
  31. The documentation has been improved and brought up-to-date.
  32.  
  33. There has been a lot of general cleaning up of the code that is not otherwise
  34. documented here.  There has been a movement toward using standard-conforming
  35. library routines and providing them (in missing.d) for systems lacking them.
  36. Improved (hopefully) configuration through Makfile modifications and missing.c.
  37. In particular, straightened out confusion over vprintf #defines, declarations
  38. etc.
  39.  
  40. Deleted RCS log comments from source, to reduce source size by about one third.
  41. Most of them were horribly out-of-date, anyway.
  42.  
  43. Renamed source files to reflect (for the most part) their contents.
  44.  
  45. More and improved error messages.  Cleanup and fixes to yyerror().
  46. String constants are not altered in input buffer, so error messages come out
  47. better.  Fixed usage message.  Make use of ANSI C strerror() function
  48. (provided).
  49.  
  50. Plugged many more memory leaks.  The memory consumption is now quite
  51. reasonable over a wide range of programs.
  52.  
  53. Uses volatile declaration if STDC > 0 to avoid problems due to longjmp.
  54.  
  55. New -a and -e options to use awk or egrep style regexps, respectively,
  56. since POSIX says awk should use egrep regexps.  Default is -a.
  57.  
  58. Added -v option for setting variables before the first file is encountered.
  59. Version information now uses -V and copyleft uses -C.
  60.  
  61. Added a patchlevel.h file and its use for -V and -C.
  62.  
  63. Append_right() optimized for major improvement to programs with a *lot*
  64. of statements.
  65.  
  66. Operator precedence has been corrected to match draft Posix.
  67.  
  68. Tightened up grammar for builtin functions so that only length
  69. may be called without arguments or parentheses.
  70.  
  71. /regex/ is now a normal expression that can appear in any expression
  72. context.
  73.  
  74. Allow /= to begin a regexp.  Allow ..[../..].. in a regexp.
  75.  
  76. Allow empty compound statements ({}).
  77.  
  78. Made return and next illegal outside a function and in BEGIN/END respectively.
  79.  
  80. Division by zero is now illegal and causes a fatal error.
  81.  
  82. Fixed exponentiation so that x ^ 0 and x ^= 0 both return 1.
  83.  
  84. Fixed do_sqrt, do_log, and do_exp to do argument/return checking and
  85. print an error message, per the manual.
  86.  
  87. Fixed main to catch SIGSEGV to get source and data file line numbers.
  88.  
  89. Fixed yyerror to print the ^ at the beginning of the bad token, not the end.
  90.  
  91. Fix to substr() builtin:  it was failing if the arguments
  92. weren't already strings.
  93.  
  94. Added new node value flag NUMERIC to indicate that a variable is
  95. purely a number as opposed to type NUM which indicates that
  96. the node's numeric value is valid.  This is set in make_number(),
  97. tmp_number and r_force_number() when appropriate and used in
  98. cmp_nodes().  This fixed a bug in comparison of variables that had
  99. numeric prefixes.  The new code uses strtod() and eliminates is_a_number().
  100. A simple strtod() is provided for systems lacking one.  It does no
  101. overflow checking, so could be improved.
  102.  
  103. Simplification and efficiency improvement in force_string.
  104.  
  105. Added performance tweak in r_force_number().
  106.  
  107. Fixed a bug with nested loops and break/continue in functions.
  108.  
  109. Fixed inconsistency in handling of empty fields when $0 has to be rebuilt.
  110. Happens to simplify rebuild_record().
  111.  
  112. Cleaned up the code associated with opening a pipe for reading.  Gawk
  113. now has its own popen routine (gawk_popen) that allocates an IOBUF
  114. and keeps track of the pid of the child process.  gawk_pclose
  115. marks the appropriate child as defunct in the right struct redirect.
  116.  
  117. Cleaned up and fixed close_redir().
  118.  
  119. Fixed an obscure bug to do with redirection.  Intermingled ">" and ">>"
  120. redirects did not output in a predictable order.
  121.  
  122. Improved handling of output bufferring:  now all print[f]s redirected to a tty
  123. or pipe are flushed immediately and non-redirected output to a tty is flushed
  124. before the next input record is read.
  125.  
  126. Fixed a bug in get_a_record() where bcopy() could have copied over
  127. a random pointer.
  128.  
  129. Fixed a bug when RS="" and records separated by multiple blank lines.
  130.  
  131. Got rid of SLOWIO code which was out-of-date anyway.
  132.  
  133. Fix in get_field() for case where $0 is changed and then $(n) are
  134. changed and then $0 is used.
  135.  
  136. Fixed infinite loop on failure to open file for reading from getline.
  137. Now handles redirect file open failures properly.
  138.  
  139. Filenames such as /dev/stdin now allowed on the command line as well as
  140. in redirects.
  141.  
  142. Fixed so that gawk '$1' where $1 is a zero tests false.
  143.  
  144. Fixed parsing so that `RLENGTH -1' parses the same as `RLENGTH - 1',
  145. for example.
  146.  
  147. The return from a user-defined function now defaults to the Null node.
  148. This fixes a core-dump-causing bug when the return value  of a function
  149. is used and that function returns no value.
  150.  
  151. Now catches floating point exceptions to avoid core dumps.
  152.  
  153. Bug fix for deleting elements of an array -- under some conditions, it was
  154. deleting more than one element at a time.
  155.  
  156. Fix in AWKPATH code for running off the end of the string.
  157.  
  158. Fixed handling of precision in *printf calls.  %0.2d now works properly,
  159. as does %c.  [s]printf now recognizes %i and %X.
  160.  
  161. Fixed a bug in printing of very large (>240) strings.
  162.  
  163. Cleaned up erroneous behaviour for RS == "".
  164.  
  165. Added IGNORECASE support to index().
  166.  
  167. Simplified and fixed newnode/freenode.
  168.  
  169. Fixed reference to $(anything) in a BEGIN block.
  170.  
  171. Eliminated use of USG rand48().
  172.  
  173. Bug fix in force_string for machines with 16-bit ints.
  174.  
  175. Replaced use of mktemp() with tmpnam() and provided a partial implementation of
  176. the latter for systems that don't have it.
  177.  
  178. Added a portability check for includes in io.c.
  179.  
  180. Minor portability fix in alloc.c plus addition of xmalloc().
  181.  
  182. Portability fix:  on UMAX4.2, st_blksize is zero for a pipe, thus breaking
  183. iop_alloc() -- fixed.
  184.  
  185. Workaround for compiler bug on Sun386i in do_sprintf.
  186.  
  187. More and improved prototypes in awk.h.
  188.  
  189. Consolidated C escape parsing code into one place.
  190.  
  191. strict flag is now turned on only when invoked with compatability option.
  192. It now applies to fewer things.
  193.  
  194. Changed cast of f._ptr in vprintf.c from (unsigned char *) to (char *).
  195. Hopefully this is right for the systems that use this code (I don't).
  196.  
  197. Support for pipes under MSDOS added.
  198.