| 1 | Changes from 3.1.4 to 3.1.5
|
|---|
| 2 | ---------------------------
|
|---|
| 3 |
|
|---|
| 4 | 1. The random() suite has been updated to a current FreeBSD version, which
|
|---|
| 5 | works on systems with > 32-bit ints.
|
|---|
| 6 |
|
|---|
| 7 | 2. A new option, `--exec' has been added. It's like -f but ends option
|
|---|
| 8 | processing. It also disables `x=y' variable assignments, but not -v.
|
|---|
| 9 | It's needed mainly for CGI scripts, so that source code can't be
|
|---|
| 10 | passed in as part of the URL.
|
|---|
| 11 |
|
|---|
| 12 | 3. dfa.[ch] have been synced with GNU grep development. This also fixes
|
|---|
| 13 | multiple regex matching problems in multibyte locales.
|
|---|
| 14 |
|
|---|
| 15 | 4. Updated to Automake 1.9.5.
|
|---|
| 16 |
|
|---|
| 17 | 5. Updated to Bison 2.0.
|
|---|
| 18 |
|
|---|
| 19 | 6. The getopt* and regex* files were synchronized with current GLIBC CVS.
|
|---|
| 20 | See the ChangeLog for the versions and minor edits made.
|
|---|
| 21 |
|
|---|
| 22 | 7. `configure --disable-nls' now disables just gawk's own translations.
|
|---|
| 23 | Gawk continues to work with the locale's numeric formatting. This
|
|---|
| 24 | includes a bug fix in handling the printf ' flag (e.g., %'d).
|
|---|
| 25 |
|
|---|
| 26 | 8. Gawk is now multibyte aware. This means that index(), length(),
|
|---|
| 27 | substr() and match() all work in terms of characters, not bytes.
|
|---|
| 28 |
|
|---|
| 29 | 9. Gawk is now smarter about parsing numeric constants in corner cases.
|
|---|
| 30 |
|
|---|
| 31 | 11. Not closing open redirections no longer causes gawk to exit non-zero.
|
|---|
| 32 |
|
|---|
| 33 | 10. The VMS port has been updated.
|
|---|
| 34 |
|
|---|
| 35 | 11. Changes from Andrew Schorr at the xmlgawk project to provide for
|
|---|
| 36 | open hooks from extensions are now included. This will let the
|
|---|
| 37 | xmlgawk extension work in the standard gawk.
|
|---|
| 38 |
|
|---|
| 39 | 12. Updated to gettext 0.14.4. Gawk no longer includes its own copy
|
|---|
| 40 | of the gettext `intl' library, following current GNU practice to
|
|---|
| 41 | rely on there being an external version thereof.
|
|---|
| 42 |
|
|---|
| 43 | 13. A regexp of the form `//' will now generate a warning that it
|
|---|
| 44 | is not a C++ comment from --lint (awk.y).
|
|---|
| 45 |
|
|---|
| 46 | 14. The ^ and ^= operators with an integer exponent now use Exponentiation
|
|---|
| 47 | by Squaring. This simultaneously fixes a problem with ^= and a negative
|
|---|
| 48 | integer exponent.
|
|---|
| 49 |
|
|---|
| 50 | 15. length(array) now returns the number of elements in the array. This is
|
|---|
| 51 | is a non-standard extension that will fail in POSIX mode.
|
|---|
| 52 |
|
|---|
| 53 | 16. Carriage return characters are now ignored in program source code.
|
|---|
| 54 |
|
|---|
| 55 | 17. Four new translations added.
|
|---|
| 56 |
|
|---|
| 57 | 18. Various minor bugs fixed. See the ChangeLog for the details.
|
|---|
| 58 |
|
|---|
| 59 | Changes from 3.1.3 to 3.1.4
|
|---|
| 60 | ---------------------------
|
|---|
| 61 |
|
|---|
| 62 | 1. Gawk now supports the POSIX %F format, falling back to %f if the local
|
|---|
| 63 | system printf doesn't handle it.
|
|---|
| 64 |
|
|---|
| 65 | 2. Gawk now supports the ' flag in printf. E.g., %'d in a locale with thousands
|
|---|
| 66 | separators includes the thousands separator in the value, e.g. 12,345.
|
|---|
| 67 |
|
|---|
| 68 | This has one problem; the ' flag is next to impossible to use on the
|
|---|
| 69 | command line, without major quoting games. Oh well, TANSTAAFL.
|
|---|
| 70 |
|
|---|
| 71 | 3. The dfa code has been reinstated; the performance degradation was
|
|---|
| 72 | just too awful. Sigh. (For fun, use `export GAWK_NO_DFA=1' to
|
|---|
| 73 | see the difference.)
|
|---|
| 74 |
|
|---|
| 75 | 4. The special case `x = x y' is now recognized in the grammar, and gawk
|
|---|
| 76 | now uses `realloc' to append the new value to the end of the existing
|
|---|
| 77 | one. This can speed up the common case of appending onto a string.
|
|---|
| 78 |
|
|---|
| 79 | 5. The dfa code was upgraded with most of the fixes from grep 2.5.1, and
|
|---|
| 80 | the regex code was upgraded with GLIBC as mid-January 2004. The regex
|
|---|
| 81 | code is faster than it was, but still not as fast as the dfa code, so
|
|---|
| 82 | the dfa code stays in. The getopt code was also synced to current GLIBC.
|
|---|
| 83 |
|
|---|
| 84 | 6. Support code upgraded to Automake 1.8.5, Autoconf 2.59, and gettext 0.14.1.
|
|---|
| 85 |
|
|---|
| 86 | 7. When --posix is in effect, sub/gsub now follow the 2001 POSIX behavior.
|
|---|
| 87 | Yippee. This is even documented in the manual.
|
|---|
| 88 |
|
|---|
| 89 | 8. Gawk will now recover children that have died (input pipelines, two-way
|
|---|
| 90 | pipes), upon detecting EOF from them, thus avoiding filling
|
|---|
| 91 | up the process table. Open file descriptors are not recovered
|
|---|
| 92 | (unfortunately), since that could break awk semantics. See the
|
|---|
| 93 | ChangeLog and the source code for the details.
|
|---|
| 94 |
|
|---|
| 95 | 9. Handling of numbers like `0,1' in non-American locales ought to
|
|---|
| 96 | work correctly now.
|
|---|
| 97 |
|
|---|
| 98 | 10. IGNORECASE is now locale-aware for characters with values above 128.
|
|---|
| 99 | The dfa matcher is now used for IGNORECASE matches too.
|
|---|
| 100 |
|
|---|
| 101 | 11. Dynamic function loading is better. The documentation has been improved
|
|---|
| 102 | and some new APIs for use by dynamic functions have been added.
|
|---|
| 103 |
|
|---|
| 104 | 12. Gawk now has a fighting chance of working on older systems,
|
|---|
| 105 | a la SunOS 4.1.x.
|
|---|
| 106 |
|
|---|
| 107 | 13. Issues with multibyte support on HP-UX are now resolved. `configure' now
|
|---|
| 108 | disables such support there, since it's not up to what gawk needs.
|
|---|
| 109 |
|
|---|
| 110 | 14. There are now even more tests in the test suite.
|
|---|
| 111 |
|
|---|
| 112 | 15. Various bugs fixed; see ChangeLog for the details.
|
|---|
| 113 |
|
|---|
| 114 | Changes from 3.1.2 to 3.1.3
|
|---|
| 115 | ---------------------------
|
|---|
| 116 |
|
|---|
| 117 | 1. Gawk now follows POSIX in handling of local numeric formats for
|
|---|
| 118 | input, output and number/string conversions.
|
|---|
| 119 |
|
|---|
| 120 | 2. Multibyte detection improved. See README_d/README.multibyte for more
|
|---|
| 121 | info about multibyte locales.
|
|---|
| 122 |
|
|---|
| 123 | 3. Handling of `close' made more POSIX-compliant for POSIXLY_CORRECT,
|
|---|
| 124 | see the documentation.
|
|---|
| 125 |
|
|---|
| 126 | 4. The record reading code was redone, again. This time it's much
|
|---|
| 127 | better. Really!
|
|---|
| 128 |
|
|---|
| 129 | 5. For RS = "\n" and RS = "", gawk now only sets RT when it has changed.
|
|---|
| 130 | This provides considerable performance improvement.
|
|---|
| 131 |
|
|---|
| 132 | 6. `match' now sets all the subscripts in the third argument array
|
|---|
| 133 | correctly, even if not all subexpressions matched.
|
|---|
| 134 |
|
|---|
| 135 | 7. Updated to Automake 1.7.5. configure.in renamed configure.ac.
|
|---|
| 136 |
|
|---|
| 137 | 8. C-style switch statements are available, but must be enabled at
|
|---|
| 138 | compile time via `configure --enable-switch'. For 3.2 they'll be
|
|---|
| 139 | enabled by default. Thanks to Michael Benzinger for the initial
|
|---|
| 140 | code.
|
|---|
| 141 |
|
|---|
| 142 | 9. %c now always prints no more than one character, whatever
|
|---|
| 143 | precision is provided.
|
|---|
| 144 |
|
|---|
| 145 | 10. strtonum(<number>) now works again.
|
|---|
| 146 |
|
|---|
| 147 | 11. Gawk is now much better about scalar/array typing of global
|
|---|
| 148 | uninitiailzed variables passed as parameters. Once the parameter
|
|---|
| 149 | is then used one way or the other, the global var's type is
|
|---|
| 150 | adjusted accordingly. Thanks to Stepan Kasal for the original
|
|---|
| 151 | (considerable) changes.
|
|---|
| 152 |
|
|---|
| 153 | 12. Dynamic function loading under Windows32 should now be possible. See
|
|---|
| 154 | README_d/README.pcdynamic. Thanks to Patrick T.J. McPhee for the changes.
|
|---|
| 155 |
|
|---|
| 156 | 13. Updated to gettext 0.12.1.
|
|---|
| 157 |
|
|---|
| 158 | 14. Gawk now follows historical practice and POSIX for the return
|
|---|
| 159 | value of `rand': It's now 0 <= N < 1.
|
|---|
| 160 |
|
|---|
| 161 | Changes from 3.1.1 to 3.1.2
|
|---|
| 162 | ---------------------------
|
|---|
| 163 |
|
|---|
| 164 | 1. Loops of the form:
|
|---|
| 165 |
|
|---|
| 166 | for (iggy in foo)
|
|---|
| 167 | next
|
|---|
| 168 |
|
|---|
| 169 | no longer leak memory.
|
|---|
| 170 |
|
|---|
| 171 | 2. gawk -v FIELDWIDTHS="..." now sets PROCINFO["FS"] correctly.
|
|---|
| 172 |
|
|---|
| 173 | 3. All builtin operations and functions should now fully evaluate their
|
|---|
| 174 | arguments so that side effects take place correctly.
|
|---|
| 175 |
|
|---|
| 176 | 4. Fixed a logic bug in gsub/gensub for matches to null strings that occurred
|
|---|
| 177 | later in the string after a nonnull match.
|
|---|
| 178 |
|
|---|
| 179 | 5. getgroups code now works on Ultrix again.
|
|---|
| 180 |
|
|---|
| 181 | 6. Completely new version of the full GNU regex engine now in place.
|
|---|
| 182 |
|
|---|
| 183 | 7. Argument parsing and variable assignment has been cleaned up.
|
|---|
| 184 |
|
|---|
| 185 | 8. An I/O bug on HP-UX has been documented and worked around. See
|
|---|
| 186 | README_d/README.hpux.
|
|---|
| 187 |
|
|---|
| 188 | 9. awklib/grcat should now compile correctly.
|
|---|
| 189 |
|
|---|
| 190 | 10. Updated to automake 1.7.3, autoconf 2.57 and gettext 0.11.5 ; thanks to
|
|---|
| 191 | Paul Eggert for the initial automake and autoconf work.
|
|---|
| 192 |
|
|---|
| 193 | 11. As a result of #6, removed the use of the dfa code from GNU grep.
|
|---|
| 194 |
|
|---|
| 195 | 12. It is now possible to use ptys for |& two-way pipes instead of
|
|---|
| 196 | pipes. The basic plumbing for this was provided by Paolo Bonzini.
|
|---|
| 197 | To make this happen:
|
|---|
| 198 |
|
|---|
| 199 | command = "unix command etc"
|
|---|
| 200 | PROCINFO[command, "pty"] = 1
|
|---|
| 201 |
|
|---|
| 202 | print ... |& command
|
|---|
| 203 | command |& getline stuff
|
|---|
| 204 |
|
|---|
| 205 | In other words, set the element in PROCINFO *before* opening the
|
|---|
| 206 | two-way pipe, and then gawk will use ptys instead of pipes.
|
|---|
| 207 |
|
|---|
| 208 | On systems without ptys or where all the ptys are in use, gawk
|
|---|
| 209 | will fall back to using plain pipes.
|
|---|
| 210 |
|
|---|
| 211 | 13. Fixed a regex matching across buffer boundaries bug, with a
|
|---|
| 212 | heuristic. See io.c:rsre_get_a_record.
|
|---|
| 213 |
|
|---|
| 214 | 14. Profiling no longer dumps core if there are extension functions in place.
|
|---|
| 215 |
|
|---|
| 216 | 15. Grammar and scanner cleaned up, courtesy of Stepen Kasal, to hopefully
|
|---|
| 217 | once and for all fix the `/=' operator vs. `/=.../' regex ambiguity.
|
|---|
| 218 | Lots of other grammar simplifications applied, as well.
|
|---|
| 219 |
|
|---|
| 220 | 16. BINMODE should work now on more Windows ports.
|
|---|
| 221 |
|
|---|
| 222 | 17. Updated to bison 1.875. Includes fix to bisonfix.sed script.
|
|---|
| 223 |
|
|---|
| 224 | 18. The NODE structure is now 20% (8 bytes) smaller (on x86, anyway), which
|
|---|
| 225 | should help conserve memory.
|
|---|
| 226 |
|
|---|
| 227 | 19. Builds not in the source directory should work again.
|
|---|
| 228 |
|
|---|
| 229 | 20. Arrays now use 2 NODE's per element instead of three. Combined with
|
|---|
| 230 | #18, (on the x86) this reduces the overhead from 120 bytes per element
|
|---|
| 231 | to just 64 bytes: almost a 50% improvement.
|
|---|
| 232 |
|
|---|
| 233 | 21. Programs that make heavy use of changing IGNORECASE should now be
|
|---|
| 234 | much faster, particularly if using a regular expression for FS or RS.
|
|---|
| 235 | IGNORECASE now correctly affects RS regex record splitting, as well.
|
|---|
| 236 |
|
|---|
| 237 | 22. IGNORECASE no longer affects single-character field splitting (FS = "c"),
|
|---|
| 238 | or single-character record splitting (RS = "c").
|
|---|
| 239 |
|
|---|
| 240 | This cleans up some weird behavior, and makes gawk better match the
|
|---|
| 241 | documentation, which says it only affects regex-based field splitting
|
|---|
| 242 | and record splitting.
|
|---|
| 243 |
|
|---|
| 244 | The documentation on this was improved, too.
|
|---|
| 245 |
|
|---|
| 246 | 23. The framework in test/ has been simplified, making it much easier to
|
|---|
| 247 | add new tests while keeping the size of Makefile.am reasonable. Thanks
|
|---|
| 248 | for this to Stepan Kasal.
|
|---|
| 249 |
|
|---|
| 250 | 24. --lint=invalid causes lint warnings only about stuff that's actually
|
|---|
| 251 | invalid. This needs additional work.
|
|---|
| 252 |
|
|---|
| 253 | 25. More translations.
|
|---|
| 254 |
|
|---|
| 255 | 26. The `get_a_record' routine has been revamped (currently by splitting it
|
|---|
| 256 | into three variants). This should improve long-term maintainability.
|
|---|
| 257 |
|
|---|
| 258 | 27. `match' now adds more entries to 3rd array arg:
|
|---|
| 259 | match("the big dog", /([a-z]+) ([a-z]+) ([a-z]+)/, data)
|
|---|
| 260 | fills in variables:
|
|---|
| 261 | data[1, "start"], data[1, "length"], and so on.
|
|---|
| 262 |
|
|---|
| 263 | 28. New `asorti' function with same interface as `asort', but sorts indices
|
|---|
| 264 | instead of values.
|
|---|
| 265 |
|
|---|
| 266 | 29. Documentation updated to FDL 1.2.
|
|---|
| 267 |
|
|---|
| 268 | 30. New `configure' option --disable-lint at compile time disables lint
|
|---|
| 269 | checking. With GCC dead-code-elimination, cuts almost 200K off the
|
|---|
| 270 | executable size on GNU/Linux x86. Presumably speeds up runtime.
|
|---|
| 271 |
|
|---|
| 272 | Using this will cause some of the tests in the test suite to fail.
|
|---|
| 273 | This option may be removed at a later date.
|
|---|
| 274 |
|
|---|
| 275 | 31. Various minor cleanups, see the ChangeLog for details.
|
|---|
| 276 |
|
|---|
| 277 | Changes from 3.1.0 to 3.1.1
|
|---|
| 278 | ---------------------------
|
|---|
| 279 |
|
|---|
| 280 | 1. Six new translations.
|
|---|
| 281 |
|
|---|
| 282 | 2. Having more than 4 different values for OFMT and/or CONVFMT now works.
|
|---|
| 283 |
|
|---|
| 284 | 3. The handling of dynamic regexes is now more more sane, esp. w.r.t.
|
|---|
| 285 | the profiling code. The profiling code has been fixed in several
|
|---|
| 286 | places.
|
|---|
| 287 |
|
|---|
| 288 | 4. The return value of index("", "") is now 1.
|
|---|
| 289 |
|
|---|
| 290 | 5. Gawk should no longer close fd 0 in child processes.
|
|---|
| 291 |
|
|---|
| 292 | 6. Fixed test for strtod semantics and regenerated configure.
|
|---|
| 293 |
|
|---|
| 294 | 7. Gawk can now be built with byacc; an accidental bison dependency was
|
|---|
| 295 | removed.
|
|---|
| 296 |
|
|---|
| 297 | 8. `yyerror' will no longer dump core on long source lines.
|
|---|
| 298 |
|
|---|
| 299 | 9. Gawk now correctly queries getgroups(2) to figure out how many groups
|
|---|
| 300 | the process has.
|
|---|
| 301 |
|
|---|
| 302 | 10. New configure option to force use of included strftime, e.g. on
|
|---|
| 303 | Solaris systems. See `./configure --help' for the details. Replaced
|
|---|
| 304 | the included strftime.c with the one from textutils.
|
|---|
| 305 |
|
|---|
| 306 | 11. OS/2 port has been updated.
|
|---|
| 307 |
|
|---|
| 308 | 12. Multi-byte character support has been added, courtesy of IBM Japan.
|
|---|
| 309 |
|
|---|
| 310 | 13. The `for (iggy in foo) delete foo[iggy]' -> `delete foo' optimisation
|
|---|
| 311 | now works.
|
|---|
| 312 |
|
|---|
| 313 | 14. Upgraded to gettext 0.11.2 and automake 1.5.
|
|---|
| 314 |
|
|---|
| 315 | 15. Full gettext compatibility (new dcngettext function).
|
|---|
| 316 |
|
|---|
| 317 | 16. The O'Reilly copyedits and indexing changes for the documentation have
|
|---|
| 318 | been folded into the texinfo version of the manuals.
|
|---|
| 319 |
|
|---|
| 320 | 17. A humongously long value for the AWKPATH environment variable will no
|
|---|
| 321 | longer dump core.
|
|---|
| 322 |
|
|---|
| 323 | 18. Configuration / Installation issues have been straightened out in
|
|---|
| 324 | Makefile.am.
|
|---|
| 325 |
|
|---|
| 326 | Changes from 3.0.6 to 3.1.0
|
|---|
| 327 | ---------------------------
|
|---|
| 328 |
|
|---|
| 329 | 1. A new PROCINFO array provides info about the process. The non-I/O /dev/xxx
|
|---|
| 330 | files are now obsolete, and their use always generates a warning.
|
|---|
| 331 |
|
|---|
| 332 | 2. A new `mktime' builtin function was added for creating time stamps. The
|
|---|
| 333 | `mktime' function written in awk was removed from the user's guide.
|
|---|
| 334 |
|
|---|
| 335 | 3. New `--gen-po' option creates GNU gettext .po files for strings marked
|
|---|
| 336 | with a leading underscore.
|
|---|
| 337 |
|
|---|
| 338 | 4. Gawk now completely interprets special file names internally, ignoring the
|
|---|
| 339 | existence of real /dev/stdin, /dev/stdout files, etc.
|
|---|
| 340 |
|
|---|
| 341 | 5. The mmap code was removed. It was a worthwhile experiment that just
|
|---|
| 342 | didn't work out.
|
|---|
| 343 |
|
|---|
| 344 | 6. The BINMODE variable is new; on non-UNIX systems it affects how gawk
|
|---|
| 345 | opens files for text vs. binary.
|
|---|
| 346 |
|
|---|
| 347 | 7. The atari port is now unsupported.
|
|---|
| 348 |
|
|---|
| 349 | 8. Gawk no longer supports `next file' as two words.
|
|---|
| 350 |
|
|---|
| 351 | 9. On systems that support it, gawk now sets the `close on exec' flag on all
|
|---|
| 352 | files and pipes it opens. This makes sure that child processes run via
|
|---|
| 353 | `system' or pipes have plenty of file descriptors available.
|
|---|
| 354 |
|
|---|
| 355 | 10. New ports: Tandem and BeOS. The Tandem port is unsupported.
|
|---|
| 356 |
|
|---|
| 357 | 11. If `--posix' is in effect, newlines are not allowed after ?:.
|
|---|
| 358 |
|
|---|
| 359 | 12. Weird OFMT/CONVFMT formats no longer cause fatal errors.
|
|---|
| 360 |
|
|---|
| 361 | 13. Diagnostics about array parameters now include the parameter's name,
|
|---|
| 362 | not just its number.
|
|---|
| 363 |
|
|---|
| 364 | 14. configure should now automatically add -D_SYSV3 for ISC Unix.
|
|---|
| 365 | (This seems to have made it into the gawk 3.0.x line long ago.)
|
|---|
| 366 |
|
|---|
| 367 | 15. It is now possible to open a two-way pipe via the `|&' operator.
|
|---|
| 368 | See the discussion in the manual about putting `sort' into such a pipeline,
|
|---|
| 369 | though. (NOTE! This is borrowed from ksh: it is not the same as
|
|---|
| 370 | the same operator in csh!)
|
|---|
| 371 |
|
|---|
| 372 | 16. The `close' function now takes an optional second string argument
|
|---|
| 373 | that allows closing one or the other end of the two-way pipe to
|
|---|
| 374 | a co-process. This is needed to use `sort' in a co-process, see
|
|---|
| 375 | the doc.
|
|---|
| 376 |
|
|---|
| 377 | 17. If TCP/IP is available, special file names beginning with `/inet'
|
|---|
| 378 | can be used with `|&' for IPC. Thanks to Juergen Kahrs for the initial
|
|---|
| 379 | code.
|
|---|
| 380 |
|
|---|
| 381 | 18. With `--enable-portals' on the configure command line, gawk will also
|
|---|
| 382 | treat file names that start with `/p/' as a 4.4 BSD type portal file,
|
|---|
| 383 | i.e., a two-way pipe for `|&'.
|
|---|
| 384 |
|
|---|
| 385 | 19. Unrecognized escapes, such as "\q" now always generate a warning.
|
|---|
| 386 |
|
|---|
| 387 | 20. The LINT variable is new; it provides dynamic control over the --lint
|
|---|
| 388 | option.
|
|---|
| 389 |
|
|---|
| 390 | 21. Lint warnings can be made fatal by using --lint=fatal or `LINT = "fatal"'.
|
|---|
| 391 | Use this if you're really serious about portable code.
|
|---|
| 392 |
|
|---|
| 393 | 22. Due to an enhanced sed script, there is no longer any need to worry
|
|---|
| 394 | about finding or using alloca. alloca.c is thus now gone.
|
|---|
| 395 |
|
|---|
| 396 | 23. A number of lint warnings have been added. Most notably, gawk will
|
|---|
| 397 | detect if a variable is used before assigned to. Warnings for
|
|---|
| 398 | when a string that isn't a number gets converted to a number are
|
|---|
| 399 | in the code but disabled; they seem to be too picky in practice.
|
|---|
| 400 |
|
|---|
| 401 | Also, gawk will now warn about function parameter names that shadow
|
|---|
| 402 | global variable names.
|
|---|
| 403 |
|
|---|
| 404 | 24. It is now possible to dynamically add builtin functions on systems
|
|---|
| 405 | that support dlopen. This facility is not (yet) as portable or well
|
|---|
| 406 | integrated as it might be. *** WARNING *** THIS FEATURE WILL EVOLVE!
|
|---|
| 407 |
|
|---|
| 408 | 25. There are *many* new tests in the test suite.
|
|---|
| 409 |
|
|---|
| 410 | 26. Profiling has been added! A separate version of gawk, named pgawk, is
|
|---|
| 411 | built and generates a run-time execution profile. The --profile option
|
|---|
| 412 | can be used to change the default output file. In regular gawk, this
|
|---|
| 413 | option pretty-prints the parse tree.
|
|---|
| 414 |
|
|---|
| 415 | 27. Gawk has been internationalized, using GNU gettext. Translations for
|
|---|
| 416 | future distributions are most welcome. Simultaneously, gawk was switched
|
|---|
| 417 | over to using automake. You need Automake 1.4a (from the CVS archive)
|
|---|
| 418 | if you want to muck with the Makefile.am files.
|
|---|
| 419 |
|
|---|
| 420 | 28. New `asort' function for sorting arrays. See the doc for details.
|
|---|
| 421 |
|
|---|
| 422 | 29. The match function takes an optional array third argument to hold
|
|---|
| 423 | the text matched by parenthesized sub-expressions.
|
|---|
| 424 |
|
|---|
| 425 | 30. The bit op functions and octal and hex source code constants are on by
|
|---|
| 426 | default, no longer a configure-time option. Recognition of non-decimal
|
|---|
| 427 | data is now enabled at runtime with --non-decimal-data command line option.
|
|---|
| 428 |
|
|---|
| 429 | 31. Internationalization features available at the awk level: new TEXTDOMAIN
|
|---|
| 430 | variable and `bindtextdomain' and `dcgettext' functions. printf formats
|
|---|
| 431 | may contain the "%2$3.5d" kind of notation for use in translations. See
|
|---|
| 432 | the texinfo manual for details.
|
|---|
| 433 |
|
|---|
| 434 | 32. The return value from `close' has been rationalized. Most notably,
|
|---|
| 435 | closing something that wasn't open returns -1 but remains non-fatal.
|
|---|
| 436 |
|
|---|
| 437 | 33. The array effeciency change from 3.0.5 was reverted; the semantics were
|
|---|
| 438 | not right. Additionally, index values of previously stored elements
|
|---|
| 439 | can no longer change dynamically.
|
|---|
| 440 |
|
|---|
| 441 | 34. The new option --dump-variables dumps a list of all global variables and
|
|---|
| 442 | their final types and values to a file you give, or to `awkvars.out'.
|
|---|
| 443 |
|
|---|
| 444 | 35. Gawk now uses a recent version of random.c courtesy of the FreeBSD
|
|---|
| 445 | project.
|
|---|
| 446 |
|
|---|
| 447 | 36. The gawk source code now uses ANSI C function definitions (new style),
|
|---|
| 448 | with ansi2knr to translate code for old compilers.
|
|---|
| 449 |
|
|---|
| 450 | 37. `for (iggy in foo)' loops should be more robust now in the face of
|
|---|
| 451 | adding/deleting elements in the middle; they loop over just the elements
|
|---|
| 452 | that are present in the array when the loop starts.
|
|---|
| 453 |
|
|---|
| 454 | Changes from 3.0.5 to 3.0.6
|
|---|
| 455 | ---------------------------
|
|---|
| 456 |
|
|---|
| 457 | This is a bug fix release only, pending further development on 3.1.0.
|
|---|
| 458 |
|
|---|
| 459 | Bugs fixed and changes made:
|
|---|
| 460 |
|
|---|
| 461 | 1. Subscripting an array with a variable that is just a number no
|
|---|
| 462 | longer magically converts the variable into a string.
|
|---|
| 463 |
|
|---|
| 464 | 2. Similarly, running a `for (iggy in foo)' loop where `foo' is a
|
|---|
| 465 | function parameter now works correctly.
|
|---|
| 466 |
|
|---|
| 467 | 3. Similarly, `i = ""; v[i] = a; if (i in v) ...' now works again.
|
|---|
| 468 |
|
|---|
| 469 | 4. Gawk now special cases `for (iggy in foo) delete foo[iggy]' and
|
|---|
| 470 | treats it as the moral equivalent of `delete foo'. This should be
|
|---|
| 471 | a major efficiency win when portably deleting large arrays.
|
|---|
| 472 |
|
|---|
| 473 | 5. VMS port brought up to date.
|
|---|
| 474 |
|
|---|
| 475 | Changes from 3.0.4 to 3.0.5
|
|---|
| 476 | ---------------------------
|
|---|
| 477 |
|
|---|
| 478 | This is a bug fix release only, pending further development on 3.1.0.
|
|---|
| 479 |
|
|---|
| 480 | Bugs Fixed:
|
|---|
| 481 |
|
|---|
| 482 | 1. `function foo(foo)' is now a fatal error.
|
|---|
| 483 |
|
|---|
| 484 | 2. Array indexing is now much more efficient: where possible, only one
|
|---|
| 485 | copy of an index string is kept, even if used in multiple arrays.
|
|---|
| 486 |
|
|---|
| 487 | 3. Support was added for MacOS X and an `install-strip' target.
|
|---|
| 488 |
|
|---|
| 489 | 4. [s]printf formatting for `0' flag and floating point formats now
|
|---|
| 490 | works correctly.
|
|---|
| 491 |
|
|---|
| 492 | 5. HP-UX large file support with GCC 2.95.1 now works.
|
|---|
| 493 |
|
|---|
| 494 | 6. Arguments that contain `=' but that aren't syntactically valid are
|
|---|
| 495 | now treated as filenames, instead of as fatal errors.
|
|---|
| 496 |
|
|---|
| 497 | 7. `-v NF=foo' now works.
|
|---|
| 498 |
|
|---|
| 499 | 8. Non-ascii alphanumeric characters are now treated as such in the
|
|---|
| 500 | right locales by regex.c. Similarly, a Latin-1 y-umlaut (decimal
|
|---|
| 501 | value 255) in the program text no longer acts like EOF.
|
|---|
| 502 |
|
|---|
| 503 | 9. Array indexes are always compared as strings; fixes an obscure bug
|
|---|
| 504 | when user input gets used for the `x in array' test.
|
|---|
| 505 |
|
|---|
| 506 | 10. The usage message now points users to the documentation for how
|
|---|
| 507 | to report bugs.
|
|---|
| 508 |
|
|---|
| 509 | 11. `/=' now works after an array.
|
|---|
| 510 |
|
|---|
| 511 | 12. `b += b += 1' now works correctly.
|
|---|
| 512 |
|
|---|
| 513 | 13. IGNORECASE changing with calls `match' now works better. (Fix for
|
|---|
| 514 | semi-obscure bug.)
|
|---|
| 515 |
|
|---|
| 516 | 14. Multicharacter values for RS now generate a lint warning.
|
|---|
| 517 |
|
|---|
| 518 | 15. The gawk open file caching is now much more efficient.
|
|---|
| 519 |
|
|---|
| 520 | 16. Global arrays passed to functions are now managed better. In particular,
|
|---|
| 521 | test/arynocls.awk won't crash referencing freed memory.
|
|---|
| 522 |
|
|---|
| 523 | 17. In obscure cases, `getline var' can no longer clobber $0.
|
|---|
| 524 |
|
|---|
| 525 | Changes from 3.0.3 to 3.0.4
|
|---|
| 526 | ---------------------------
|
|---|
| 527 |
|
|---|
| 528 | This is a bug fix release only, pending further development on 3.1.0.
|
|---|
| 529 |
|
|---|
| 530 | Bugs Fixed:
|
|---|
| 531 |
|
|---|
| 532 | 1. A memory leak when turning a function parameter into an array was
|
|---|
| 533 | fixed.
|
|---|
| 534 |
|
|---|
| 535 | 2. The non-decimal data option now works correctly.
|
|---|
| 536 |
|
|---|
| 537 | 3. Using an empty pair of brackets as an array subscript no longer causes
|
|---|
| 538 | a core dump during parsing. In general, syntax errors should not
|
|---|
| 539 | cause core dumps any more.
|
|---|
| 540 |
|
|---|
| 541 | 4. Standard input is no longer closed if it provides program source,
|
|---|
| 542 | avoiding strange I/O problems.
|
|---|
| 543 |
|
|---|
| 544 | 5. Memory corruption during printing with `print' has been fixed.
|
|---|
| 545 |
|
|---|
| 546 | 6. The gsub function now correctly counts the number of matches.
|
|---|
| 547 |
|
|---|
| 548 | 7. A typo in doc/Makefile.in has been fixed, making installation work.
|
|---|
| 549 |
|
|---|
| 550 | 8. Calling `next' or `nextfile' from a BEGIN or END rule is now fatal.
|
|---|
| 551 |
|
|---|
| 552 | 9. Subtle problems in rebuilding $0 when fields were changed have been
|
|---|
| 553 | fixed.
|
|---|
| 554 |
|
|---|
| 555 | 10. `FS = FS' now correctly turns off the use of FIELDWIDTHS.
|
|---|
| 556 |
|
|---|
| 557 | 11. Gawk now parses fields correctly when FS is a single character.
|
|---|
| 558 |
|
|---|
| 559 | 12. It is now possible for RS to be the NUL character ("\0").
|
|---|
| 560 |
|
|---|
| 561 | 13. Weird problems with number conversions on MIPS and other systems
|
|---|
| 562 | have been fixed.
|
|---|
| 563 |
|
|---|
| 564 | 14. When parsing using FIELDWIDTHS is in effect, `split' with no third
|
|---|
| 565 | argument will still use the value of FS.
|
|---|
| 566 |
|
|---|
| 567 | 15. Large File Support for Solaris, HP-UX, AIX, and IRIX is now enabled at
|
|---|
| 568 | compile time, thanks to Paul Eggert.
|
|---|
| 569 |
|
|---|
| 570 | 16. Attempting to use the name of a function as a variable or array
|
|---|
| 571 | from within the function is now caught as a fatal error, instead
|
|---|
| 572 | of as a core dump.
|
|---|
| 573 |
|
|---|
| 574 | 17. A bug in parsing hex escapes was fixed.
|
|---|
| 575 |
|
|---|
| 576 | 18. A weird bug with concatenation where one expression has side effects
|
|---|
| 577 | that changes another was fixed.
|
|---|
| 578 |
|
|---|
| 579 | 19. printf/sprintf now behave much better for uses of the '0' and '#' flags
|
|---|
| 580 | and with precisions and field widths.
|
|---|
| 581 |
|
|---|
| 582 | 20. Further strangenesses with concatenation and multiple accesses of some
|
|---|
| 583 | of the special variables was fixed.
|
|---|
| 584 |
|
|---|
| 585 | 21. The Atari port is marked as no longer supported.
|
|---|
| 586 |
|
|---|
| 587 | 22. Build problems on HP-UX have been fixed.
|
|---|
| 588 |
|
|---|
| 589 | 23. Minor fixes and additional explanations added to the documentation.
|
|---|
| 590 |
|
|---|
| 591 | 24. For RS = "", even a single leading newline is now correctly stripped.
|
|---|
| 592 |
|
|---|
| 593 | 25. Obscure parsing problems for regex constants like /=.../ fixed, so
|
|---|
| 594 | that a regex constant is recognized, and not the /= operator.
|
|---|
| 595 |
|
|---|
| 596 | 26. Fixed a bug when closing a redirection that matched the current
|
|---|
| 597 | or last FILENAME.
|
|---|
| 598 |
|
|---|
| 599 | 27. Build problems on AIX fixed.
|
|---|
| 600 |
|
|---|
| 601 | Changes from 3.0.2 to 3.0.3
|
|---|
| 602 | ---------------------------
|
|---|
| 603 |
|
|---|
| 604 | The horrendous per-record memory leak introduced in 3.0.1 is gone, finally.
|
|---|
| 605 |
|
|---|
| 606 | The `amiga' directory is now gone; Amiga support is now entirely handled
|
|---|
| 607 | by the POSIX support.
|
|---|
| 608 |
|
|---|
| 609 | Windows32 support has been added in the `pc' directory. See `README_d/README.pc'
|
|---|
| 610 | for more info.
|
|---|
| 611 |
|
|---|
| 612 | The mmap changes are disabled in io.c, and will be removed entirely
|
|---|
| 613 | in the next big release. They were an interesting experiment that just
|
|---|
| 614 | really didn't work in practice.
|
|---|
| 615 |
|
|---|
| 616 | A minor memory leak that occurred when using `next' from within a
|
|---|
| 617 | function has also been fixed.
|
|---|
| 618 |
|
|---|
| 619 | Problems with I/O from sub-processes via a pipe are now gone.
|
|---|
| 620 |
|
|---|
| 621 | Using "/dev/pid" and the other special /dev files no longer causes a core dump.
|
|---|
| 622 |
|
|---|
| 623 | The files regex.h, regex.c, getopt.h, getopt.c, and getopt1.c have been
|
|---|
| 624 | merged with the versions in GNU libc. Thanks to Ulrich Drepper for his help.
|
|---|
| 625 |
|
|---|
| 626 | Some new undocumented features have been added. Use the source, Luke!
|
|---|
| 627 | It is not clear yet whether these will ever be fully supported.
|
|---|
| 628 |
|
|---|
| 629 | Array performance should be much better for very very large arrays. "Virtual
|
|---|
| 630 | memory required, real memory helpful."
|
|---|
| 631 |
|
|---|
| 632 | builtin.c:do_substr rationalized, again.
|
|---|
| 633 |
|
|---|
| 634 | The --re-interval option now works as advertised.
|
|---|
| 635 |
|
|---|
| 636 | The license text on some of the missing/* files is now generic.
|
|---|
| 637 |
|
|---|
| 638 | Lots more new test cases.
|
|---|
| 639 |
|
|---|
| 640 | Lots of other small bugs fixed, see the ChangeLog files for details.
|
|---|
| 641 |
|
|---|
| 642 | Changes from 3.0.1 to 3.0.2
|
|---|
| 643 | ---------------------------
|
|---|
| 644 |
|
|---|
| 645 | Gawk now uses autoconf 2.12.
|
|---|
| 646 |
|
|---|
| 647 | strftime now behaves correctly if passed an empty format string or if
|
|---|
| 648 | the string formats to an empty result string.
|
|---|
| 649 |
|
|---|
| 650 | Several minor compilation and installation problems have been fixed.
|
|---|
| 651 |
|
|---|
| 652 | Minor page break issues in the user's guide have been fixed.
|
|---|
| 653 |
|
|---|
| 654 | Lexical errors no longer repeat ad infinitum.
|
|---|
| 655 |
|
|---|
| 656 | Changes from 3.0.0 to 3.0.1
|
|---|
| 657 | ---------------------------
|
|---|
| 658 |
|
|---|
| 659 | Troff source for a handy-dandy five color reference card is now provided.
|
|---|
| 660 | Thanks to SSC for their macros.
|
|---|
| 661 |
|
|---|
| 662 | Gawk now behaves like Unix awk and mawk, in that newline acts as white
|
|---|
| 663 | space for separating fields and for `split', by default. In posix mode,
|
|---|
| 664 | only space and tab separate fields. The documentation has been updated to
|
|---|
| 665 | reflect this.
|
|---|
| 666 |
|
|---|
| 667 | Tons and tons of small bugs fixed and new tests added, see the ChangeLogs.
|
|---|
| 668 |
|
|---|
| 669 | Lots fewer compile time warnings from gcc -Wall. Remaining ones aren't
|
|---|
| 670 | worth fixing.
|
|---|
| 671 |
|
|---|
| 672 | Gawk now pays some attention to the locale settings.
|
|---|
| 673 |
|
|---|
| 674 | Fixes to gsub to catch several corner cases.
|
|---|
| 675 |
|
|---|
| 676 | The `print' statement now evaluates all expressions first, and then
|
|---|
| 677 | prints them. This leads to less suprising behaviour if any expression has
|
|---|
| 678 | output side effects.
|
|---|
| 679 |
|
|---|
| 680 | Miscellanious improvements in regex.h and regex.c.
|
|---|
| 681 |
|
|---|
| 682 | Gawk will now install itself as gawk-M.N.P in $(bindir), and link
|
|---|
| 683 | `gawk' to it. This makes it easy to have multiple versions of gawk
|
|---|
| 684 | simultaneously. It will also now install itself as `awk' in $(bindir)
|
|---|
| 685 | if there is no `awk' there. This is in addition to installing itself as
|
|---|
| 686 | `gawk'. This change benefits the Hurd, and possibly other systems. One
|
|---|
| 687 | day, gawk will drop the `g', but not yet.
|
|---|
| 688 |
|
|---|
| 689 | `--posix' turns on interval expressions. Gawk now matches its documentation.
|
|---|
| 690 |
|
|---|
| 691 | `close(FILENAME)' now does something meaningful.
|
|---|
| 692 |
|
|---|
| 693 | Field management code in field.c majorly overhauled, several times.
|
|---|
| 694 |
|
|---|
| 695 | The gensub code has been fixed, several bugs are now gone.
|
|---|
| 696 |
|
|---|
| 697 | Gawk will use mmap for data file input if it is available.
|
|---|
| 698 |
|
|---|
| 699 | The printf/sprintf code has been improved.
|
|---|
| 700 |
|
|---|
| 701 | Minor issues in Makefile setup worked on and improved.
|
|---|
| 702 |
|
|---|
| 703 | builtin.c:do_substr rationalized.
|
|---|
| 704 |
|
|---|
| 705 | Regex matching fixed so that /+[0-9]/ now matches the leading +.
|
|---|
| 706 |
|
|---|
| 707 | For building on vms, the default compiler is now DEC C rather than VAX C.
|
|---|
| 708 |
|
|---|
| 709 | Changes from 2.15.6 to 3.0.0
|
|---|
| 710 | ----------------------------
|
|---|
| 711 |
|
|---|
| 712 | Fixed spelling of `Programming' in the copyright notice in all the files.
|
|---|
| 713 |
|
|---|
| 714 | New --re-interval option to turn on interval expressions. They're off
|
|---|
| 715 | by default, except for --posix, to avoid breaking old programs.
|
|---|
| 716 |
|
|---|
| 717 | Passing regexp constants as parameters to user defined functions now
|
|---|
| 718 | generates a lint warning.
|
|---|
| 719 |
|
|---|
| 720 | Several obscure regexp bugs fixed; alas, a small number remain.
|
|---|
| 721 |
|
|---|
| 722 | The manual has been thoroughly revised. It's now almost 50% bigger than
|
|---|
| 723 | it used to be.
|
|---|
| 724 |
|
|---|
| 725 | The `+' modifier in printf is now reset correctly for each item.
|
|---|
| 726 |
|
|---|
| 727 | The do_unix variable is now named do_traditional.
|
|---|
| 728 |
|
|---|
| 729 | Handling of \ in sub and gsub rationalized (somewhat, see the manual for
|
|---|
| 730 | the gory [and I do mean gory] details).
|
|---|
| 731 |
|
|---|
| 732 | IGNORECASE now uses ISO 8859-1 Latin-1 instead of straight ASCII. See the
|
|---|
| 733 | source for how to revert to pure ASCII.
|
|---|
| 734 |
|
|---|
| 735 | --lint will now warn if an assignment occurs in a conditional context.
|
|---|
| 736 | This may become obnoxious enough to need turning off in the future, but
|
|---|
| 737 | "it seemed like a good idea at the time."
|
|---|
| 738 |
|
|---|
| 739 | %hf and %Lf are now diagnosed as invalid in printf, just like %lf.
|
|---|
| 740 |
|
|---|
| 741 | Gawk no longer incorrectly closes stdin in child processes used in
|
|---|
| 742 | input pipelines.
|
|---|
| 743 |
|
|---|
| 744 | For integer formats, gawk now correctly treats the precision as the
|
|---|
| 745 | number of digits to print, not the number of characters.
|
|---|
| 746 |
|
|---|
| 747 | gawk is now much better at catching the use of scalar values when
|
|---|
| 748 | arrays are needed, both in function calls and the `x in y' constructs.
|
|---|
| 749 |
|
|---|
| 750 | New gensub function added. See the manual.
|
|---|
| 751 |
|
|---|
| 752 | If do_tradtional is true, octal and hex escapes in regexp constants are
|
|---|
| 753 | treated literally. This matches historical behavior.
|
|---|
| 754 |
|
|---|
| 755 | yylex/nextc fixed so that even null characters can be included
|
|---|
| 756 | in the source code.
|
|---|
| 757 |
|
|---|
| 758 | do_format now handles cases where a format specifier doesn't end in
|
|---|
| 759 | a control letter. --lint reports an error.
|
|---|
| 760 |
|
|---|
| 761 | strftime() now uses a default time format equivalent to that of the
|
|---|
| 762 | Unix date command, thus it can be called with no arguments.
|
|---|
| 763 |
|
|---|
| 764 | Gawk now catches functions that are used but not defined at parse time
|
|---|
| 765 | instead of at run time. (This is a lint error, making it fatal could break
|
|---|
| 766 | old code.)
|
|---|
| 767 |
|
|---|
| 768 | Arrays that max out are now handled correctly.
|
|---|
| 769 |
|
|---|
| 770 | Integer formats outside the range of an unsigned long are now detected
|
|---|
| 771 | correctly using the SunOS 4.x cc compiler.
|
|---|
| 772 |
|
|---|
| 773 | --traditional option added as new preferred name for --compat, in keeping
|
|---|
| 774 | with GCC.
|
|---|
| 775 |
|
|---|
| 776 | --lint-old option added, so that warnings about things not in old awk
|
|---|
| 777 | are only given if explicitly asked for.
|
|---|
| 778 |
|
|---|
| 779 | `next file' has changed to one word, `nextfile'. `next file' is still
|
|---|
| 780 | accepted but generates a lint warning. `next file' will go away eventually.
|
|---|
| 781 |
|
|---|
| 782 | Gawk with --lint will now notice empty source files and empty data files.
|
|---|
| 783 |
|
|---|
| 784 | Amiga support using the Unix emulation added. Thanks to fnf@ninemoons.com.
|
|---|
| 785 |
|
|---|
| 786 | test/Makefile is now "parallel-make safe".
|
|---|
| 787 |
|
|---|
| 788 | Gawk now uses POSIX regexps + GNU regex ops by default. --posix goes to
|
|---|
| 789 | pure posix regexps, and --compat goes to traditional Unix regexps. However,
|
|---|
| 790 | interval expressions, even though specified by POSIX, are turned off by
|
|---|
| 791 | default, to avoid breaking old code.
|
|---|
| 792 |
|
|---|
| 793 | IGNORECASE now applies to string comparison as well as regexp operations.
|
|---|
| 794 |
|
|---|
| 795 | The AT&T Bell Labs Research awk fflush builtin function is now supported.
|
|---|
| 796 | fflush is extended to flush stdout if no arg and everything if given
|
|---|
| 797 | the null string as an argument.
|
|---|
| 798 |
|
|---|
| 799 | If RS is more than one character, it is treated as a regular expression
|
|---|
| 800 | and records are delimited accordingly. The variable RT is set to the record
|
|---|
| 801 | terminator string. This is disabled in compatibility mode.
|
|---|
| 802 |
|
|---|
| 803 | If FS is set to the null string (or the third arg. of split() is the null
|
|---|
| 804 | string), splitting is done at every single character. This is disabled in
|
|---|
| 805 | compatibility mode.
|
|---|
| 806 |
|
|---|
| 807 | Gawk now uses the Autoconf generated configure script, doing away with all
|
|---|
| 808 | the config/* files and the machinery that went with them. The Makefile.in
|
|---|
| 809 | has also changed accordingly, complete with all the standard GNU Makefile
|
|---|
| 810 | targets. (Non-unix systems may still have their own config.h and Makefile;
|
|---|
| 811 | see the appropriate README_d/README.* and/or subdirectory.)
|
|---|
| 812 |
|
|---|
| 813 | The source code has been cleaned up somewhat and the formatting improved.
|
|---|
| 814 |
|
|---|
| 815 | Changes from 2.15.5 to 2.15.6
|
|---|
| 816 | -----------------------------
|
|---|
| 817 |
|
|---|
| 818 | Copyrights updated on all changed files.
|
|---|
| 819 |
|
|---|
| 820 | test directory enhanced with four new tests.
|
|---|
| 821 |
|
|---|
| 822 | Gawk now generates a warning for \x without following hexadecimal digits.
|
|---|
| 823 | In this case, it returns 'x', not \0.
|
|---|
| 824 |
|
|---|
| 825 | Several fixes in main.c related to variable initialization:
|
|---|
| 826 | CONVFMT has a default value
|
|---|
| 827 | resetup is called before initializing variables
|
|---|
| 828 | the varinit table fixed up a bit (see the comments)
|
|---|
| 829 |
|
|---|
| 830 | gawk.1 updated with new BUG REPORTS section.
|
|---|
| 831 |
|
|---|
| 832 | A plain `print' inside a BEGIN or END now generates a lint warning (awk.y).
|
|---|
| 833 |
|
|---|
| 834 | Small fix in iop.c:get_a_record to avoid reading uninitialized memory.
|
|---|
| 835 |
|
|---|
| 836 | awk.y:yylex now does a better job of handling things if the source file
|
|---|
| 837 | does not end in a newline. Probably there is more work to be done.
|
|---|
| 838 |
|
|---|
| 839 | Memory leaks fixed in awk.y, particularly in cases of duplicate function
|
|---|
| 840 | parameters. Also, calling a function doesn't leak memory during parsing.
|
|---|
| 841 |
|
|---|
| 842 | Empty function bodies are now allowed (awk.y).
|
|---|
| 843 |
|
|---|
| 844 | Gawk now detects duplicate parameter names in functions (awk.y).
|
|---|
| 845 |
|
|---|
| 846 | New function `error' in msg.c added for use from awk.y.
|
|---|
| 847 |
|
|---|
| 848 | eval.c:r_get_lhs now checks if its argument is a parameter on the stack,
|
|---|
| 849 | and pulls down the real variable. This catches more 'using an array as
|
|---|
| 850 | a scalar' kinds of errors.
|
|---|
| 851 |
|
|---|
| 852 | main.c recovers C alloca space after parsing, this is important for
|
|---|
| 853 | bison-based parsers. re.c recovers C alloca space after doing an research.
|
|---|
| 854 | [Changes from Pat Rankin]
|
|---|
| 855 |
|
|---|
| 856 | builtin.c now declares the random() related functions based on
|
|---|
| 857 | RANDOM_MISSING from config.h. [Suggested by Pat Rankin]
|
|---|
| 858 |
|
|---|
| 859 | awk.h now handles alloca correctly for HP-UX. [Kaveh Ghazi]
|
|---|
| 860 |
|
|---|
| 861 | regex.h and config/cray60 updated for Unicos 8.0. [Hal Peterson]
|
|---|
| 862 |
|
|---|
| 863 | Fixed re.c and dfa.c so that gawk no longer leaks memory when using
|
|---|
| 864 | lots of dynamic regexps.
|
|---|
| 865 |
|
|---|
| 866 | Removed dependency on signed chars from `idx' variable in awk.h. Gawk
|
|---|
| 867 | now passes its test suite if compiled with `gcc -fno-signed-char'.
|
|---|
| 868 |
|
|---|
| 869 | Fixed warning on close in io.c to go under lint control. Too many people
|
|---|
| 870 | have complained about the spurious message, particularly when closing a
|
|---|
| 871 | child pipeline early.
|
|---|
| 872 |
|
|---|
| 873 | Gawk now correctly handles RS = "" when input is from a terminal
|
|---|
| 874 | (iop.c:get_a_record).
|
|---|
| 875 |
|
|---|
| 876 | Config file added for GNU.
|
|---|
| 877 |
|
|---|
| 878 | gawk 'BEGIN { exit 1 } ; END { exit }' now exits 1, as it should
|
|---|
| 879 | (eval.c:interpret).
|
|---|
| 880 |
|
|---|
| 881 | sub and gsub now follow posix, \ escapes both & and \. Each \ must
|
|---|
| 882 | be doubled initially in the program to get it into the string.
|
|---|
| 883 | Thanks to Mike Brennan for pointing this out (builtin.c:sub_common).
|
|---|
| 884 |
|
|---|
| 885 | If FS is "", gawk behaves like mawk and nawk, making the whole record be $1.
|
|---|
| 886 | Yet Another Dark Corner. Sigh (field.c:def_parse_field).
|
|---|
| 887 |
|
|---|
| 888 | Gawk now correctly recomputes string values for numbers if CONVFMT has
|
|---|
| 889 | changed (awk.h:force_string, node.c:r_force_string).
|
|---|
| 890 |
|
|---|
| 891 | A regexp of the form `/* this looks like a comment but is not */' will
|
|---|
| 892 | now generate a warning from --lint (awk.y).
|
|---|
| 893 |
|
|---|
| 894 | Gawk will no longer core dump if given an empty input file (awk.y:get_src_buf,
|
|---|
| 895 | iop.c:optimal_bufsize).
|
|---|
| 896 |
|
|---|
| 897 | A printf format of the form %lf is handled correctly. The `l' generates
|
|---|
| 898 | a lint warning (builtin.c:format_tree) [Thanks to Mark Moraes].
|
|---|
| 899 |
|
|---|
| 900 | Lynxos config file added.
|
|---|
| 901 |
|
|---|
| 902 | `continue' outside a loop treated as `next' only in compatibility mode,
|
|---|
| 903 | instead of by default; recent att nawk chokes on this now. `break'
|
|---|
| 904 | outside a loop now treated as `next' in compatibility mode (eval.c).
|
|---|
| 905 |
|
|---|
| 906 | Bug fix in string concatenation, an arbitrary number of expressions
|
|---|
| 907 | are allowed (eval.c).
|
|---|
| 908 |
|
|---|
| 909 | $1 += $2 now works correctly (eval.c).
|
|---|
| 910 |
|
|---|
| 911 | Changing IGNORECASE no longer resets field-splitting to FS if it was
|
|---|
| 912 | using FIELDWIDTHS (eval.c, field.c).
|
|---|
| 913 |
|
|---|
| 914 | Major enhancement: $0 and NF for last record read are now preserved
|
|---|
| 915 | into the END rule (io.c).
|
|---|
| 916 |
|
|---|
| 917 | Regexp fixes:
|
|---|
| 918 | /./ now matches a newline (regex.h)
|
|---|
| 919 | ^ and $ match beginning and end of string only, not any embedded
|
|---|
| 920 | newlines (re.c)
|
|---|
| 921 | regex.c should compile and work ok on 64-bit mips/sgi machines
|
|---|
| 922 |
|
|---|
| 923 | Changes from 2.15.4 to 2.15.5
|
|---|
| 924 | -----------------------------
|
|---|
| 925 |
|
|---|
| 926 | FUTURES file updated and re-arranged some with more rational schedule.
|
|---|
| 927 |
|
|---|
| 928 | Many prototypes handled better for ANSI C in protos.h.
|
|---|
| 929 |
|
|---|
| 930 | getopt.c updated somewhat.
|
|---|
| 931 |
|
|---|
| 932 | test/Makefile now removes junk directory, `bardargtest' renamed `badargs.'
|
|---|
| 933 |
|
|---|
| 934 | Bug fix in iop.c for RS = "". Eat trailing newlines off of record separator.
|
|---|
| 935 |
|
|---|
| 936 | Bug fix in Makefile.bsd44, use leading tab in actions.
|
|---|
| 937 |
|
|---|
| 938 | Fix in field.c:set_FS for FS == "\\" and IGNORECASE != 0.
|
|---|
| 939 |
|
|---|
| 940 | Config files updated or added:
|
|---|
| 941 | cray60, DEC OSF/1 2.0, Utek, sgi405, next21, next30, atari/config.h,
|
|---|
| 942 | sco.
|
|---|
| 943 |
|
|---|
| 944 | Fix in io.c for ENFILE as well as EMFILE, update decl of groupset to
|
|---|
| 945 | include OSF/1.
|
|---|
| 946 |
|
|---|
| 947 | Rationalized printing as integers if numbers are outside the range of a long.
|
|---|
| 948 | Changes to node.c:force_string and builtin.c.
|
|---|
| 949 |
|
|---|
| 950 | Made internal NF, NR, and FNR variables longs instead of ints.
|
|---|
| 951 |
|
|---|
| 952 | Add LIMITS_H_MISSING stuff to config.in and awk.h, and default defs for
|
|---|
| 953 | INT_MAX and LONG_MAX, if no limits.h file. Add a standard decl of
|
|---|
| 954 | the time() function for __STDC__. From ghazi@noc.rutgers.edu.
|
|---|
| 955 |
|
|---|
| 956 | Fix tree_eval in awk.h and r_tree_eval in eval.c to deal better with
|
|---|
| 957 | function parameters, particularly ones that are arrays.
|
|---|
| 958 |
|
|---|
| 959 | Fix eval.c to print out array names of arrays used in scalar contexts.
|
|---|
| 960 |
|
|---|
| 961 | Fix eval.c in interpret to zero out source and sourceline initially. This
|
|---|
| 962 | does a better job of providing source file and line number information.
|
|---|
| 963 |
|
|---|
| 964 | Fix to re_parse_field in field.c to not use isspace when RS = "", but rather
|
|---|
| 965 | to explicitly look for blank and tab.
|
|---|
| 966 |
|
|---|
| 967 | Fix to sc_parse_field in field.c to catch the case of the FS character at the
|
|---|
| 968 | end of a record.
|
|---|
| 969 |
|
|---|
| 970 | Lots of miscellanious bug fixes for memory leaks, courtesy Mark Moraes,
|
|---|
| 971 | also fixes for arrays.
|
|---|
| 972 |
|
|---|
| 973 | io.c fixed to warn about lack of explicit closes if --lint.
|
|---|
| 974 |
|
|---|
| 975 | Updated missing/strftime.c to match posted strftime 6.2.
|
|---|
| 976 |
|
|---|
| 977 | Bug fix in builtin.c, in case of non-match in sub_common.
|
|---|
| 978 |
|
|---|
| 979 | Updated constant used for division in builtin.c:do_rand for DEC Alpha
|
|---|
| 980 | and CRAY Y-MP.
|
|---|
| 981 |
|
|---|
| 982 | POSIXLY_CORRECT in the environment turns on --posix (fixed in main.c).
|
|---|
| 983 |
|
|---|
| 984 | Updated srandom prototype and calls in builtin.c.
|
|---|
| 985 |
|
|---|
| 986 | Fix awk.y to enforce posix semantics of unary +: result is numeric.
|
|---|
| 987 |
|
|---|
| 988 | Fix array.c to not rearrange the hash chain upon finding an index in
|
|---|
| 989 | the array. This messed things up in cases like:
|
|---|
| 990 | for (index1 in array) {
|
|---|
| 991 | blah
|
|---|
| 992 | if (index2 in array) # blew away the for
|
|---|
| 993 | stuff
|
|---|
| 994 | }
|
|---|
| 995 |
|
|---|
| 996 | Fixed spelling errors in the man page.
|
|---|
| 997 |
|
|---|
| 998 | Fixes in awk.y so that
|
|---|
| 999 | gawk '' /path/to/file
|
|---|
| 1000 | will work without core dumping or finding parse errors.
|
|---|
| 1001 |
|
|---|
| 1002 | Fix main.c so that --lint will fuss about an empty program.
|
|---|
| 1003 | Yet another fix for argument parsing in the case of unrecognized options.
|
|---|
| 1004 |
|
|---|
| 1005 | Bug fix in dfa.c to not attempt to free null pointers.
|
|---|
| 1006 |
|
|---|
| 1007 | Bug fix in builtin.c to only use DEFAULT_G_PRECISION for %g or %G.
|
|---|
| 1008 |
|
|---|
| 1009 | Bug fix in field.c to achieve call by value semantics for split.
|
|---|
| 1010 |
|
|---|
| 1011 | Changes from 2.15.3 to 2.15.4
|
|---|
| 1012 | -----------------------------
|
|---|
| 1013 |
|
|---|
| 1014 | Lots of lint fixes, and do_sprintf made mostly ANSI C compatible.
|
|---|
| 1015 |
|
|---|
| 1016 | Man page updated and edited.
|
|---|
| 1017 |
|
|---|
| 1018 | Copyrights updated.
|
|---|
| 1019 |
|
|---|
| 1020 | Arrays now grow dynamically, initially scaling up by an order of magnitude
|
|---|
| 1021 | and then doubling, up to ~ 64K. This should keep gawk's performance
|
|---|
| 1022 | graceful under heavy load.
|
|---|
| 1023 |
|
|---|
| 1024 | New `delete array' feature added. Only documented in the man page.
|
|---|
| 1025 |
|
|---|
| 1026 | Switched to dfa and regex suites from grep-2.0. These offer the ability to
|
|---|
| 1027 | move to POSIX regexps in the next release.
|
|---|
| 1028 |
|
|---|
| 1029 | Disabled GNU regex ops.
|
|---|
| 1030 |
|
|---|
| 1031 | Research awk -m option now recognized. It does nothing in gawk, since gawk
|
|---|
| 1032 | has no static limits. Only documented in the man page.
|
|---|
| 1033 |
|
|---|
| 1034 | New bionic (faster, better, stronger than before) hashing function.
|
|---|
| 1035 |
|
|---|
| 1036 | Bug fix in argument handling. `gawk -X' now notices there was no program.
|
|---|
| 1037 | Additional bug fixes to make --compat and --lint work again.
|
|---|
| 1038 |
|
|---|
| 1039 | Many changes for systems where sizeof(int) != sizeof(void *).
|
|---|
| 1040 |
|
|---|
| 1041 | Add explicit alloca(0) in io.c to recover space from C alloca.
|
|---|
| 1042 |
|
|---|
| 1043 | Fixed file descriptor leak in io.c.
|
|---|
| 1044 |
|
|---|
| 1045 | The --version option now follows the GNU coding standards and exits.
|
|---|
| 1046 |
|
|---|
| 1047 | Fixed several prototypes in protos.h.
|
|---|
| 1048 |
|
|---|
| 1049 | Several tests updated. On Solaris, warn that the out? tests will fail.
|
|---|
| 1050 |
|
|---|
| 1051 | Configuration files for SunOS with cc and Solaris 2.x added.
|
|---|
| 1052 |
|
|---|
| 1053 | Improved error messages in awk.y on gawk extensions if do_unix or do_compat.
|
|---|
| 1054 |
|
|---|
| 1055 | INSTALL file added.
|
|---|
| 1056 |
|
|---|
| 1057 | Fixed Atari Makefile and several VMS specific changes.
|
|---|
| 1058 |
|
|---|
| 1059 | Better conversion of numbers to strings on systems with broken sprintfs.
|
|---|
| 1060 |
|
|---|
| 1061 | Changes from 2.15.2 to 2.15.3
|
|---|
| 1062 | -----------------------------
|
|---|
| 1063 |
|
|---|
| 1064 | Increased HASHSIZE to a decent number, 127 was way too small.
|
|---|
| 1065 |
|
|---|
| 1066 | FILENAME is now the null string in a BEGIN rule.
|
|---|
| 1067 |
|
|---|
| 1068 | Argument processing fixed for invalid options and missing arguments.
|
|---|
| 1069 |
|
|---|
| 1070 | This version will build on VMS. This included a fix to close all files
|
|---|
| 1071 | and pipes opened with redirections before closing stdout and stderr.
|
|---|
| 1072 |
|
|---|
| 1073 | More getpgrp() defines.
|
|---|
| 1074 |
|
|---|
| 1075 | Changes for BSD44: <sys/param.h> in io.c and Makefile.bsd44.
|
|---|
| 1076 |
|
|---|
| 1077 | All directories in the distribution are now writable.
|
|---|
| 1078 |
|
|---|
| 1079 | Separated LDFLAGS and CFLAGS in Makefile. CFLAGS can now be overridden by
|
|---|
| 1080 | user.
|
|---|
| 1081 |
|
|---|
| 1082 | Make dist now builds compressed archives ending in .gz and runs doschk.
|
|---|
| 1083 |
|
|---|
| 1084 | Amiga port.
|
|---|
| 1085 |
|
|---|
| 1086 | New getopt.c fixes Alpha OSF/1 problem.
|
|---|
| 1087 |
|
|---|
| 1088 | Make clean now removes possible test output.
|
|---|
| 1089 |
|
|---|
| 1090 | Improved algorithm for multiple adjacent string concatenations leads to
|
|---|
| 1091 | performance improvements.
|
|---|
| 1092 |
|
|---|
| 1093 | Fix nasty bug whereby command-line assignments, both with -v and at run time,
|
|---|
| 1094 | could create variables with syntactically illegal names.
|
|---|
| 1095 |
|
|---|
| 1096 | Fix obscure bug in printf with %0 flag and filling.
|
|---|
| 1097 |
|
|---|
| 1098 | Add a lint check for substr if provided length exceeds remaining characters
|
|---|
| 1099 | in string.
|
|---|
| 1100 |
|
|---|
| 1101 | Update atari support.
|
|---|
| 1102 |
|
|---|
| 1103 | PC support enhanced to include support for both DOS and OS/2. (Lots more
|
|---|
| 1104 | #ifdefs. Sigh.)
|
|---|
| 1105 |
|
|---|
| 1106 | Config files for Hitachi Unix and OSF/1, courtesy of Yoko Morishita
|
|---|
| 1107 | (morisita@sra.co.jp)
|
|---|
| 1108 |
|
|---|
| 1109 | Changes from 2.15.1 to 2.15.2
|
|---|
| 1110 | -----------------------------
|
|---|
| 1111 |
|
|---|
| 1112 | Additions to the FUTURES file.
|
|---|
| 1113 |
|
|---|
| 1114 | Document undefined order of output when using both standard output
|
|---|
| 1115 | and /dev/stdout or any of the /dev output files that gawk emulates in
|
|---|
| 1116 | the absence of OS support.
|
|---|
| 1117 |
|
|---|
| 1118 | Clean up the distribution generation in Makefile.in: the info files are
|
|---|
| 1119 | now included, the distributed files are marked read-only and patched
|
|---|
| 1120 | distributions are now unpacked in a directory named with the patch level.
|
|---|
| 1121 |
|
|---|
| 1122 | Changes from 2.15 to 2.15.1
|
|---|
| 1123 | ---------------------------
|
|---|
| 1124 |
|
|---|
| 1125 | Close stdout and stderr before all redirections on program exit. This allows
|
|---|
| 1126 | detection of write errors and also fixes the messages test on Solaris 2.x.
|
|---|
| 1127 |
|
|---|
| 1128 | Removed YYMAXDEPTH define in awk.y which was limiting the parser stack depth.
|
|---|
| 1129 |
|
|---|
| 1130 | Changes to config/bsd44, Makefile.bsd44 and configure to bring it into line
|
|---|
| 1131 | with the BSD4.4 release.
|
|---|
| 1132 |
|
|---|
| 1133 | Changed Makefile to use prefix, exec_prefix, bindir etc.
|
|---|
| 1134 |
|
|---|
| 1135 | make install now installs info files.
|
|---|
| 1136 |
|
|---|
| 1137 | make install now sets permissions on installed files.
|
|---|
| 1138 |
|
|---|
| 1139 | Make targets added: uninstall, distclean, mostlyclean and realclean.
|
|---|
| 1140 |
|
|---|
| 1141 | Added config.h to cleaner and clobber make targets.
|
|---|
| 1142 |
|
|---|
| 1143 | Changes to config/{hpux8x,sysv3,sysv4,ultrix41} to deal with alloca().
|
|---|
| 1144 |
|
|---|
| 1145 | Change to getopt.h for portability.
|
|---|
| 1146 |
|
|---|
| 1147 | Added more special cases to the getpgrp() call.
|
|---|
| 1148 |
|
|---|
| 1149 | Added README.ibmrt-aos and config/ibmrt-aos.
|
|---|
| 1150 |
|
|---|
| 1151 | Changes from 2.14 to 2.15
|
|---|
| 1152 | ---------------------------
|
|---|
| 1153 |
|
|---|
| 1154 | Command-line source can now be mixed with library functions.
|
|---|
| 1155 |
|
|---|
| 1156 | ARGIND variable tracks index in ARGV of FILENAME.
|
|---|
| 1157 |
|
|---|
| 1158 | GNU style long options in addition to short options.
|
|---|
| 1159 |
|
|---|
| 1160 | Plan 9 style special files interpreted by gawk:
|
|---|
| 1161 | /dev/pid
|
|---|
| 1162 | /dev/ppid
|
|---|
| 1163 | /dev/pgrpid
|
|---|
| 1164 | /dev/user
|
|---|
| 1165 | $1 = getuid
|
|---|
| 1166 | $2 = geteuid
|
|---|
| 1167 | $3 = getgid
|
|---|
| 1168 | $4 = getegid
|
|---|
| 1169 | $5 ... $NF = getgroups if supported
|
|---|
| 1170 |
|
|---|
| 1171 | ERRNO variable contains error string if getline or close fails.
|
|---|
| 1172 |
|
|---|
| 1173 | Very old options -a and -e have gone away.
|
|---|
| 1174 |
|
|---|
| 1175 | Inftest has been removed from the default target in test/Makefile -- the
|
|---|
| 1176 | results were too machine specific and resulted in too many false alarms.
|
|---|
| 1177 |
|
|---|
| 1178 | A README.amiga has been added.
|
|---|
| 1179 |
|
|---|
| 1180 | The "too many arguments supplied for format string" warning message is only
|
|---|
| 1181 | in effect under the lint option.
|
|---|
| 1182 |
|
|---|
| 1183 | Code improvements in dfa.c.
|
|---|
| 1184 |
|
|---|
| 1185 | Fixed all reported bugs:
|
|---|
| 1186 |
|
|---|
| 1187 | Writes are checked for failure (such as full filesystem).
|
|---|
| 1188 |
|
|---|
| 1189 | Stopped (at least some) runaway error messages.
|
|---|
| 1190 |
|
|---|
| 1191 | gsub(/^/, "x") does the right thing for $0 of 0, 1, or more length.
|
|---|
| 1192 |
|
|---|
| 1193 | close() on a command being piped to a getline now works properly.
|
|---|
| 1194 |
|
|---|
| 1195 | The input record will no longer be freed upon an explicit close()
|
|---|
| 1196 | of the input file.
|
|---|
| 1197 |
|
|---|
| 1198 | A NUL character in FS now works.
|
|---|
| 1199 |
|
|---|
| 1200 | In a substitute, \\& now means a literal backslash followed by what
|
|---|
| 1201 | was matched.
|
|---|
| 1202 |
|
|---|
| 1203 | Integer overflow of substring length in substr() is caught.
|
|---|
| 1204 |
|
|---|
| 1205 | An input record without a newline termination is handled properly.
|
|---|
| 1206 |
|
|---|
| 1207 | In io.c, check is against only EMFILE so that system file table
|
|---|
| 1208 | is not filled.
|
|---|
| 1209 |
|
|---|
| 1210 | Renamed all files with names longer than 14 characters.
|
|---|
| 1211 |
|
|---|
| 1212 | Escaped characters in regular expressions were being lost when
|
|---|
| 1213 | IGNORECASE was used.
|
|---|
| 1214 |
|
|---|
| 1215 | Long source lines were not being handled properly.
|
|---|
| 1216 |
|
|---|
| 1217 | Sourcefiles that ended in a tab but no newline were bombing.
|
|---|
| 1218 |
|
|---|
| 1219 | Patterns that could match zero characters in split() were not working
|
|---|
| 1220 | properly.
|
|---|
| 1221 |
|
|---|
| 1222 | The parsedebug option was not working.
|
|---|
| 1223 |
|
|---|
| 1224 | The grammar was being a bit too lenient, allowing some very dubious
|
|---|
| 1225 | programs to pass.
|
|---|
| 1226 |
|
|---|
| 1227 | Compilation with DEBUG defined now works.
|
|---|
| 1228 |
|
|---|
| 1229 | A variable read in with getline was not being treated as a potential
|
|---|
| 1230 | number.
|
|---|
| 1231 |
|
|---|
| 1232 | Array subscripts were not always of string type.
|
|---|
| 1233 |
|
|---|
| 1234 |
|
|---|
| 1235 | Changes from 2.13.2 to 2.14
|
|---|
| 1236 | ---------------------------
|
|---|
| 1237 |
|
|---|
| 1238 | Updated manual!
|
|---|
| 1239 |
|
|---|
| 1240 | Added "next file" to skip efficiently to the next input file.
|
|---|
| 1241 |
|
|---|
| 1242 | Fixed potential of overflowing buffer in do_sprintf().
|
|---|
| 1243 |
|
|---|
| 1244 | Plugged small memory leak in sub_common().
|
|---|
| 1245 |
|
|---|
| 1246 | EOF on a redirect is now "sticky" -- it can only be cleared by close()ing
|
|---|
| 1247 | the pipe or file.
|
|---|
| 1248 |
|
|---|
| 1249 | Now works if used via a #! /bin/gawk line at the top of an executable file
|
|---|
| 1250 | when that line ends with whitespace.
|
|---|
| 1251 |
|
|---|
| 1252 | Added some checks to the grammar to catch redefinition of builtin functions.
|
|---|
| 1253 | This could eventually be the basis for an extension to allow redefining
|
|---|
| 1254 | functions, but in the mean time it's a good error catching facility.
|
|---|
| 1255 |
|
|---|
| 1256 | Negative integer exponents now work.
|
|---|
| 1257 |
|
|---|
| 1258 | Modified do_system() to make sure it had a non-null string to be passed
|
|---|
| 1259 | to system(3). Thus, system("") will flush any pending output but not go
|
|---|
| 1260 | through the overhead of forking an un-needed shell.
|
|---|
| 1261 |
|
|---|
| 1262 | A fix to floating point comparisons so that NaNs compare right on IEEE systems.
|
|---|
| 1263 |
|
|---|
| 1264 | Added code to make sure we're not opening directories for reading and such.
|
|---|
| 1265 |
|
|---|
| 1266 | Added code to do better diagnoses of weird or null file names.
|
|---|
| 1267 |
|
|---|
| 1268 | Allow continue outside of a loop, unless in strict posix mode. Lint option
|
|---|
| 1269 | will issue warning.
|
|---|
| 1270 |
|
|---|
| 1271 | New missing/strftime.c. There has been one change that affects gawk. Posix
|
|---|
| 1272 | now defines a %V conversion so the vms conversion has been changed to %v.
|
|---|
| 1273 | If this version is used with gawk -Wlint and they use %V in a call to
|
|---|
| 1274 | strftime, they'll get a warning.
|
|---|
| 1275 |
|
|---|
| 1276 | Error messages now conform to GNU standard (I hope).
|
|---|
| 1277 |
|
|---|
| 1278 | Changed comparisons to conform to the description found in the file POSIX.
|
|---|
| 1279 | This is inconsistent with the current POSIX draft, but that is broken.
|
|---|
| 1280 | Hopefully the final POSIX standard will conform to this version.
|
|---|
| 1281 | (Alas, this will have to wait for 1003.2b, which will be a revision to
|
|---|
| 1282 | the 1003.2 standard. That standard has been frozen with the broken
|
|---|
| 1283 | comparison rules.)
|
|---|
| 1284 |
|
|---|
| 1285 | The length of a string was a short and now is a size_t.
|
|---|
| 1286 |
|
|---|
| 1287 | Updated VMS help.
|
|---|
| 1288 |
|
|---|
| 1289 | Added quite a few new tests to the test suite and deleted many due to lack of
|
|---|
| 1290 | written releases. Test output is only removed if it is identical to the
|
|---|
| 1291 | "good" output.
|
|---|
| 1292 |
|
|---|
| 1293 | Fixed a couple of bugs for reference to $0 when $0 is "" -- particularly in
|
|---|
| 1294 | a BEGIN block.
|
|---|
| 1295 |
|
|---|
| 1296 | Fixed premature freeing in construct "$0 = $0".
|
|---|
| 1297 |
|
|---|
| 1298 | Removed the call to wait_any() in gawk_popen(), since on at least some systems,
|
|---|
| 1299 | if gawk's input was from a pipe, the predecessor process in the pipe was a
|
|---|
| 1300 | child of gawk and this caused a deadlock.
|
|---|
| 1301 |
|
|---|
| 1302 | Regexp can (once again) match a newline, if given explicitly.
|
|---|
| 1303 |
|
|---|
| 1304 | nextopen() makes sure file name is null terminated.
|
|---|
| 1305 |
|
|---|
| 1306 | Fixed VMS pipe simulation. Improved VMS I/O performance.
|
|---|
| 1307 |
|
|---|
| 1308 | Catch . used in variable names.
|
|---|
| 1309 |
|
|---|
| 1310 | Fixed bug in getline without redirect from a file -- it was quitting after the
|
|---|
| 1311 | first EOF, rather than trying the next file.
|
|---|
| 1312 |
|
|---|
| 1313 | Fixed bug in treatment of backslash at the end of a string -- it was bombing
|
|---|
| 1314 | rather than doing something sensible. It is not clear what this should mean,
|
|---|
| 1315 | but for now I issue a warning and take it as a literal backslash.
|
|---|
| 1316 |
|
|---|
| 1317 | Moved setting of regexp syntax to before the option parsing in main(), to
|
|---|
| 1318 | handle things like -v FS='[.,;]'
|
|---|
| 1319 |
|
|---|
| 1320 | Fixed bug when NF is set by user -- fields_arr must be expanded if necessary
|
|---|
| 1321 | and "new" fields must be initialized.
|
|---|
| 1322 |
|
|---|
| 1323 | Fixed several bugs in [g]sub() for no match found or the match is 0-length.
|
|---|
| 1324 |
|
|---|
| 1325 | Fixed bug where in gsub() a pattern anchored at the beginning would still
|
|---|
| 1326 | substitute throughout the string.
|
|---|
| 1327 |
|
|---|
| 1328 | make test does not assume that . is in PATH.
|
|---|
| 1329 |
|
|---|
| 1330 | Fixed bug when a field beyond the end of the record was requested after
|
|---|
| 1331 | $0 was altered (directly or indirectly).
|
|---|
| 1332 |
|
|---|
| 1333 | Fixed bug for assignment to field beyond end of record -- the assigned value
|
|---|
| 1334 | was not found on subsequent reference to that field.
|
|---|
| 1335 |
|
|---|
| 1336 | Fixed bug for FS a regexp and it matches at the end of a record.
|
|---|
| 1337 |
|
|---|
| 1338 | Fixed memory leak for an array local to a function.
|
|---|
| 1339 |
|
|---|
| 1340 | Fixed hanging of pipe redirection to getline
|
|---|
| 1341 |
|
|---|
| 1342 | Fixed coredump on access to $0 inside BEGIN block.
|
|---|
| 1343 |
|
|---|
| 1344 | Fixed treatment of RS = "". It now parses the fields correctly and strips
|
|---|
| 1345 | leading whitespace from a record if FS is a space.
|
|---|
| 1346 |
|
|---|
| 1347 | Fixed faking of /dev/stdin.
|
|---|
| 1348 |
|
|---|
| 1349 | Fixed problem with x += x
|
|---|
| 1350 |
|
|---|
| 1351 | Use of scalar as array and vice versa is now detected.
|
|---|
| 1352 |
|
|---|
| 1353 | IGNORECASE now obeyed for FS (even if FS is a single alphabetic character).
|
|---|
| 1354 |
|
|---|
| 1355 | Switch to GPL version 2.
|
|---|
| 1356 |
|
|---|
| 1357 | Renamed awk.tab.c to awktab.c for MSDOS and VMS tar programs.
|
|---|
| 1358 |
|
|---|
| 1359 | Renamed this file (CHANGES) to NEWS.
|
|---|
| 1360 |
|
|---|
| 1361 | Use fmod() instead of modf() and provide FMOD_MISSING #define to undo
|
|---|
| 1362 | this change.
|
|---|
| 1363 |
|
|---|
| 1364 | Correct the volatile declarations in eval.c.
|
|---|
| 1365 |
|
|---|
| 1366 | Avoid errant closing of the file descriptors for stdin, stdout and stderr.
|
|---|
| 1367 |
|
|---|
| 1368 | Be more flexible about where semi-colons can occur in programs.
|
|---|
| 1369 |
|
|---|
| 1370 | Check for write errors on all output, not just on close().
|
|---|
| 1371 |
|
|---|
| 1372 | Eliminate the need for missing/{strtol.c,vprintf.c}.
|
|---|
| 1373 |
|
|---|
| 1374 | Use GNU getopt and eliminate missing/getopt.c.
|
|---|
| 1375 |
|
|---|
| 1376 | More "lint" checking.
|
|---|
| 1377 |
|
|---|
| 1378 |
|
|---|
| 1379 | Changes from 2.13.1 to 2.13.2
|
|---|
| 1380 | -----------------------------
|
|---|
| 1381 |
|
|---|
| 1382 | Toward conformity with GNU standards, configure is a link to mkconf, the latter
|
|---|
| 1383 | to disappear in the next major release.
|
|---|
| 1384 |
|
|---|
| 1385 | Update to config/bsd43.
|
|---|
| 1386 |
|
|---|
| 1387 | Added config/apollo, config/msc60, config/cray2-50, config/interactive2.2
|
|---|
| 1388 |
|
|---|
| 1389 | sgi33.cc added for compilation using cc rather than gcc.
|
|---|
| 1390 |
|
|---|
| 1391 | Ultrix41 now propagates to config.h properly -- as part of a general
|
|---|
| 1392 | mechanism in configure for kludges -- #define anything from a config file
|
|---|
| 1393 | just gets tacked onto the end of config.h -- to be used sparingly.
|
|---|
| 1394 |
|
|---|
| 1395 | Got rid of an unnecessary and troublesome declaration of vprintf().
|
|---|
| 1396 |
|
|---|
| 1397 | Small improvement in locality of error messages.
|
|---|
| 1398 |
|
|---|
| 1399 | Try to diagnose use of array as scalar and vice versa -- to be improved in
|
|---|
| 1400 | the future.
|
|---|
| 1401 |
|
|---|
| 1402 | Fix for last bug fix for Cray division code--sigh.
|
|---|
| 1403 |
|
|---|
| 1404 | More changes to test suite to explicitly use sh. Also get rid of
|
|---|
| 1405 | a few generated files.
|
|---|
| 1406 |
|
|---|
| 1407 | Fixed off-by-one bug in string concatenation code.
|
|---|
| 1408 |
|
|---|
| 1409 | Fix for use of array that is passed in from a previous function parameter.
|
|---|
| 1410 | Addition to test suite for above.
|
|---|
| 1411 |
|
|---|
| 1412 | A number of changes associated with changing NF and access to fields
|
|---|
| 1413 | beyond the end of the current record.
|
|---|
| 1414 |
|
|---|
| 1415 | Change to missing/memcmp.c to avoid seg. fault on zero length input.
|
|---|
| 1416 |
|
|---|
| 1417 | Updates to test suite (including some inadvertently left out of the last patch)
|
|---|
| 1418 | to invoke sh explicitly (rather than rely on #!/bin/sh) and remove some
|
|---|
| 1419 | junk files. test/chem/good updated to correspond to bug fixes.
|
|---|
| 1420 |
|
|---|
| 1421 | Changes from 2.13.0 to 2.13.1
|
|---|
| 1422 | -----------------------------
|
|---|
| 1423 |
|
|---|
| 1424 | More configs and PORTS.
|
|---|
| 1425 |
|
|---|
| 1426 | Fixed bug wherein a simple division produced an erroneous FPE, caused by
|
|---|
| 1427 | the Cray division workaround -- that code is now #ifdef'd only for
|
|---|
| 1428 | Cray *and* fixed.
|
|---|
| 1429 |
|
|---|
| 1430 | Fixed bug in modulus implementation -- it was very close to the above
|
|---|
| 1431 | code, so I noticed it.
|
|---|
| 1432 |
|
|---|
| 1433 | Fixed portability problem with limits.h in missing.c
|
|---|
| 1434 |
|
|---|
| 1435 | Fixed portability problem with tzname and daylight -- define TZNAME_MISSING
|
|---|
| 1436 | if strftime() is missing and tzname is also.
|
|---|
| 1437 |
|
|---|
| 1438 | Better support for Latin-1 character set.
|
|---|
| 1439 |
|
|---|
| 1440 | Fixed portability problem in test Makefile.
|
|---|
| 1441 |
|
|---|
| 1442 | Updated PROBLEMS file.
|
|---|
| 1443 |
|
|---|
| 1444 | =============================== gawk-2.13 released =========================
|
|---|
| 1445 | Changes from 2.12.42 to 2.12.43
|
|---|
| 1446 | -------------------------------
|
|---|
| 1447 |
|
|---|
| 1448 | Typo in awk.y
|
|---|
| 1449 |
|
|---|
| 1450 | Fixed up strftime.3 and added doc. for %V.
|
|---|
| 1451 |
|
|---|
| 1452 | Changes from 2.12.41 to 2.12.42
|
|---|
| 1453 | -------------------------------
|
|---|
| 1454 |
|
|---|
| 1455 | Fixed bug in devopen() -- if you had write permission in /dev,
|
|---|
| 1456 | it would just create /dev/stdout etc.!!
|
|---|
| 1457 |
|
|---|
| 1458 | Final (?) VMS update.
|
|---|
| 1459 |
|
|---|
| 1460 | Make NeXT use GFMT_WORKAROUND
|
|---|
| 1461 |
|
|---|
| 1462 | Fixed bug in sub_common() for substitute on zero-length match. Improved the
|
|---|
| 1463 | code a bit while I was at it.
|
|---|
| 1464 |
|
|---|
| 1465 | Fixed grammar so that $i++ parses as ($i)++
|
|---|
| 1466 |
|
|---|
| 1467 | Put support/* back in the distribution (didn't I already do this?!)
|
|---|
| 1468 |
|
|---|
| 1469 | Changes from 2.12.40 to 2.12.41
|
|---|
| 1470 | -------------------------------
|
|---|
| 1471 |
|
|---|
| 1472 | VMS workaround for broken %g format.
|
|---|
| 1473 |
|
|---|
| 1474 | Changes from 2.12.39 to 2.12.40
|
|---|
| 1475 | -------------------------------
|
|---|
| 1476 |
|
|---|
| 1477 | Minor man page update.
|
|---|
| 1478 |
|
|---|
| 1479 | Fixed latent bug in redirect().
|
|---|
| 1480 |
|
|---|
| 1481 | Changes from 2.12.38 to 2.12.39
|
|---|
| 1482 | -------------------------------
|
|---|
| 1483 |
|
|---|
| 1484 | Updates to test suite -- remove dependence on changing gawk.1 man page.
|
|---|
| 1485 |
|
|---|
| 1486 | Changes from 2.12.37 to 2.12.38
|
|---|
| 1487 | -------------------------------
|
|---|
| 1488 |
|
|---|
| 1489 | Fixed bug in use of *= without whitespace following.
|
|---|
| 1490 |
|
|---|
| 1491 | VMS update.
|
|---|
| 1492 |
|
|---|
| 1493 | Updates to man page.
|
|---|
| 1494 |
|
|---|
| 1495 | Option handling updates in main.c
|
|---|
| 1496 |
|
|---|
| 1497 | test/manyfiles redone and added to bigtest.
|
|---|
| 1498 |
|
|---|
| 1499 | Fixed latent (on Sun) bug in handling of save_fs.
|
|---|
| 1500 |
|
|---|
| 1501 | Changes from 2.12.36 to 2.12.37
|
|---|
| 1502 | -------------------------------
|
|---|
| 1503 |
|
|---|
| 1504 | Update REL in Makefile-dist. Incorporate test suite into main distribution.
|
|---|
| 1505 |
|
|---|
| 1506 | Minor fix in regtest.
|
|---|
| 1507 |
|
|---|
| 1508 | Changes from 2.12.35 to 2.12.36
|
|---|
| 1509 | -------------------------------
|
|---|
| 1510 |
|
|---|
| 1511 | Release takes on dual personality -- 2.12.36 and 2.13.0 -- any further
|
|---|
| 1512 | patches before public release won't count for 2.13, although they will for
|
|---|
| 1513 | 2.12 -- be careful to avoid confusion! patchlevel.h will be the last thing
|
|---|
| 1514 | to change.
|
|---|
| 1515 |
|
|---|
| 1516 | Cray updates to deal with arithmetic problems.
|
|---|
| 1517 |
|
|---|
| 1518 | Minor test suite updates.
|
|---|
| 1519 |
|
|---|
| 1520 | Fixed latent bug in parser (freeing memory).
|
|---|
| 1521 |
|
|---|
| 1522 | Changes from 2.12.34 to 2.12.35
|
|---|
| 1523 | -------------------------------
|
|---|
| 1524 |
|
|---|
| 1525 | VMS updates.
|
|---|
| 1526 |
|
|---|
| 1527 | Flush stdout at top of err() and stderr at bottom.
|
|---|
| 1528 |
|
|---|
| 1529 | Fixed bug in eval_condition() -- it wasn't testing for MAYBE_NUM and
|
|---|
| 1530 | doing the force_number().
|
|---|
| 1531 |
|
|---|
| 1532 | Included the missing manyfiles.awk and a new test to catch the above bug which
|
|---|
| 1533 | I am amazed wasn't already caught by the test suite -- it's pretty basic.
|
|---|
| 1534 |
|
|---|
| 1535 | Changes from 2.12.33 to 2.12.34
|
|---|
| 1536 | -------------------------------
|
|---|
| 1537 |
|
|---|
| 1538 | Atari updates -- including bug fix.
|
|---|
| 1539 |
|
|---|
| 1540 | More VMS updates -- also nuke vms/version.com.
|
|---|
| 1541 |
|
|---|
| 1542 | Fixed bug in handling of large numbers of redirections -- it was probably never
|
|---|
| 1543 | tested before (blush!).
|
|---|
| 1544 |
|
|---|
| 1545 | Minor rearrangement of code in r_force_number().
|
|---|
| 1546 |
|
|---|
| 1547 | Made chem and regtest tests a bit more portable (Ultrix again).
|
|---|
| 1548 |
|
|---|
| 1549 | Added another test -- manyfiles -- not invoked under any other test -- very Unix
|
|---|
| 1550 | specific.
|
|---|
| 1551 |
|
|---|
| 1552 | Rough beginning of LIMITATIONS file -- need my AWK book to complete it.
|
|---|
| 1553 |
|
|---|
| 1554 | Changes from 2.12.32 to 2.12.33
|
|---|
| 1555 | -------------------------------
|
|---|
| 1556 |
|
|---|
| 1557 | Expunge debug.? from various files.
|
|---|
| 1558 |
|
|---|
| 1559 | Remove vestiges of Floor and Ceil kludge.
|
|---|
| 1560 |
|
|---|
| 1561 | Special case integer division -- mainly for Cray, but maybe someone else
|
|---|
| 1562 | will benefit.
|
|---|
| 1563 |
|
|---|
| 1564 | Workaround for iop_close closing an output pipe descriptor on Cray --
|
|---|
| 1565 | not conditional since I think it may fix a bug on SGI as well and I don't
|
|---|
| 1566 | think it can hurt elsewhere.
|
|---|
| 1567 |
|
|---|
| 1568 | Fixed memory leak in assoc_lookup().
|
|---|
| 1569 |
|
|---|
| 1570 | Small cleanup in test suite.
|
|---|
| 1571 |
|
|---|
| 1572 | Changes from 2.12.31 to 2.12.32
|
|---|
| 1573 | -------------------------------
|
|---|
| 1574 |
|
|---|
| 1575 | Nuked debug.c and debugging flag -- there are better ways.
|
|---|
| 1576 |
|
|---|
| 1577 | Nuked version.sh and version.c in subdirectories.
|
|---|
| 1578 |
|
|---|
| 1579 | Fixed bug in handling of IGNORECASE.
|
|---|
| 1580 |
|
|---|
| 1581 | Fixed bug when FIELDWIDTHS was set via -v option.
|
|---|
| 1582 |
|
|---|
| 1583 | Fixed (obscure) bug when $0 is assigned a numerical value.
|
|---|
| 1584 |
|
|---|
| 1585 | Fixed so that escape sequences in command-line assignments work (as it already
|
|---|
| 1586 | said in the comment).
|
|---|
| 1587 |
|
|---|
| 1588 | Added a few cases to test suite.
|
|---|
| 1589 |
|
|---|
| 1590 | Moved support/* back into distribution.
|
|---|
| 1591 |
|
|---|
| 1592 | VMS updates.
|
|---|
| 1593 |
|
|---|
| 1594 | Changes from 2.12.30 to 2.12.31
|
|---|
| 1595 | -------------------------------
|
|---|
| 1596 |
|
|---|
| 1597 | Cosmetic manual page changes.
|
|---|
| 1598 |
|
|---|
| 1599 | Updated sunos3 config.
|
|---|
| 1600 |
|
|---|
| 1601 | Small changes in test suite including renaming files over 14 chars. in length.
|
|---|
| 1602 |
|
|---|
| 1603 | Changes from 2.12.29 to 2.12.30
|
|---|
| 1604 | -------------------------------
|
|---|
| 1605 |
|
|---|
| 1606 | Bug fix for many string concatenations in a row.
|
|---|
| 1607 |
|
|---|
| 1608 | Changes from 2.12.28 to 2.12.29
|
|---|
| 1609 | -------------------------------
|
|---|
| 1610 |
|
|---|
| 1611 | Minor cleanup in awk.y
|
|---|
| 1612 |
|
|---|
| 1613 | Minor VMS update.
|
|---|
| 1614 |
|
|---|
| 1615 | Minor atari update.
|
|---|
| 1616 |
|
|---|
| 1617 | Changes from 2.12.27 to 2.12.28
|
|---|
| 1618 | -------------------------------
|
|---|
| 1619 |
|
|---|
| 1620 | Got rid of the debugging goop in eval.c -- there are better ways.
|
|---|
| 1621 |
|
|---|
| 1622 | Sequent port.
|
|---|
| 1623 |
|
|---|
| 1624 | VMS changes left out of the last patch -- sigh! config/vms.h renamed
|
|---|
| 1625 | to config/vms-conf.h.
|
|---|
| 1626 |
|
|---|
| 1627 | Fixed missing/tzset.c
|
|---|
| 1628 |
|
|---|
| 1629 | Removed use of gcvt() and GCVT_MISSING -- turns out it was no faster than
|
|---|
| 1630 | sprintf("%g") and caused all sorts of portability headaches.
|
|---|
| 1631 |
|
|---|
| 1632 | Tuned get_field() -- it was unnecessarily parsing the whole record on reference
|
|---|
| 1633 | to $0.
|
|---|
| 1634 |
|
|---|
| 1635 | Tuned interpret() a bit in the rule_node loop.
|
|---|
| 1636 |
|
|---|
| 1637 | In r_force_number(), worked around bug in Uglix strtod() and got rid of
|
|---|
| 1638 | ugly do{}while(0) at Michal's urging.
|
|---|
| 1639 |
|
|---|
| 1640 | Replaced do_deref() and deref with unref(node) -- much cleaner and a bit faster.
|
|---|
| 1641 |
|
|---|
| 1642 | Got rid of assign_number() -- contrary to comment, it was no faster than
|
|---|
| 1643 | just making a new node and freeing the old one.
|
|---|
| 1644 |
|
|---|
| 1645 | Replaced make_number() and tmp_number() with macros that call mk_number().
|
|---|
| 1646 |
|
|---|
| 1647 | Changed freenode() and newnode() into macros -- the latter is getnode()
|
|---|
| 1648 | which calls more_nodes() as necessary.
|
|---|
| 1649 |
|
|---|
| 1650 | Changes from 2.12.26 to 2.12.27
|
|---|
| 1651 | -------------------------------
|
|---|
| 1652 |
|
|---|
| 1653 | Completion of Cray 2 port (includes a kludge for floor() and ceil()
|
|---|
| 1654 | that may go or be changed -- I think that it may just be working around
|
|---|
| 1655 | a bug in chem that is being tweaked on the Cray).
|
|---|
| 1656 |
|
|---|
| 1657 | More VMS updates.
|
|---|
| 1658 |
|
|---|
| 1659 | Moved kludge over yacc's insertion of malloc and realloc declarations
|
|---|
| 1660 | from protos.h to the Makefile.
|
|---|
| 1661 |
|
|---|
| 1662 | Added a lisp interpreter in awk to the test suite. (Invoked under
|
|---|
| 1663 | bigtest.)
|
|---|
| 1664 |
|
|---|
| 1665 | Cleanup in r_force_number() -- I had never gotten around to a thorough
|
|---|
| 1666 | profile of the cache code and it turns out to be not worth it.
|
|---|
| 1667 |
|
|---|
| 1668 | Performance boost -- do lazy force_number()'ing for fields etc. i.e.
|
|---|
| 1669 | flag them (MAYBE_NUM) and call force_number only as necessary.
|
|---|
| 1670 |
|
|---|
| 1671 | Changes from 2.12.25 to 2.12.26
|
|---|
| 1672 | -------------------------------
|
|---|
| 1673 |
|
|---|
| 1674 | Rework of regexp stuff so that dynamic regexps have reasonable
|
|---|
| 1675 | performance -- string used for compiled regexp is stored and
|
|---|
| 1676 | compared to new string -- if same, no recompilation is necessary.
|
|---|
| 1677 | Also, very dynamic regexps cause dfa-based searching to be turned
|
|---|
| 1678 | off.
|
|---|
| 1679 |
|
|---|
| 1680 | Code in dev_open() is back to returning fileno(std*) rather than
|
|---|
| 1681 | dup()ing it. This will be documented. Sorry for the run-around
|
|---|
| 1682 | on this.
|
|---|
| 1683 |
|
|---|
| 1684 | Minor atari updates.
|
|---|
| 1685 |
|
|---|
| 1686 | Minor vms update.
|
|---|
| 1687 |
|
|---|
| 1688 | Missing file from MSDOS port.
|
|---|
| 1689 |
|
|---|
| 1690 | Added warning (under lint) if third arg. of [g]sub is a constant and
|
|---|
| 1691 | handle it properly in the code (i.e. return how many matches).
|
|---|
| 1692 |
|
|---|
| 1693 | Changes from 2.12.24 to 2.12.25
|
|---|
| 1694 | -------------------------------
|
|---|
| 1695 |
|
|---|
| 1696 | MSDOS port.
|
|---|
| 1697 |
|
|---|
| 1698 | Non-consequential changes to regexp variables in preparation for
|
|---|
| 1699 | a more serious change to fix a serious performance problem.
|
|---|
| 1700 |
|
|---|
| 1701 | Changes from 2.12.23 to 2.12.24
|
|---|
| 1702 | -------------------------------
|
|---|
| 1703 |
|
|---|
| 1704 | Fixed bug in output flushing introduced a few patches back. This caused
|
|---|
| 1705 | serious performance losses.
|
|---|
| 1706 |
|
|---|
| 1707 | Changes from 2.12.22 to 2.12.23
|
|---|
| 1708 | -------------------------------
|
|---|
| 1709 |
|
|---|
| 1710 | Accidentally left config/cray2-60 out of last patch.
|
|---|
| 1711 |
|
|---|
| 1712 | Added some missing dependencies to Makefile.
|
|---|
| 1713 |
|
|---|
| 1714 | Cleaned up mkconf a bit; made yacc the default parser (no alloca needed,
|
|---|
| 1715 | right?); added rs6000 hook for signed characters.
|
|---|
| 1716 |
|
|---|
| 1717 | Made regex.c with NO_ALLOCA undefined work.
|
|---|
| 1718 |
|
|---|
| 1719 | Fixed bug in dfa.c for systems where free(NULL) bombs.
|
|---|
| 1720 |
|
|---|
| 1721 | Deleted a few cant_happen()'s that *really* can't hapen.
|
|---|
| 1722 |
|
|---|
| 1723 | Changes from 2.12.21 to 2.12.22
|
|---|
| 1724 | -------------------------------
|
|---|
| 1725 |
|
|---|
| 1726 | Added to config stuff the ability to choose YACC rather than bison.
|
|---|
| 1727 |
|
|---|
| 1728 | Fixed CHAR_UNSIGNED in config.h-dist.
|
|---|
| 1729 |
|
|---|
| 1730 | Second arg. of strtod() is char ** rather than const char **.
|
|---|
| 1731 |
|
|---|
| 1732 | stackb is now initially malloc()'ed since it may be realloc()'ed.
|
|---|
| 1733 |
|
|---|
| 1734 | VMS updates.
|
|---|
| 1735 |
|
|---|
| 1736 | Added SIZE_T_MISSING to config stuff and a default typedef to awk.h.
|
|---|
| 1737 | (Maybe it is not needed on any current systems??)
|
|---|
| 1738 |
|
|---|
| 1739 | re_compile_pattern()'s size is now size_t unconditionally.
|
|---|
| 1740 |
|
|---|
| 1741 | Changes from 2.12.20 to 2.12.21
|
|---|
| 1742 | -------------------------------
|
|---|
| 1743 |
|
|---|
| 1744 | Corrected missing/gcvt.c.
|
|---|
| 1745 |
|
|---|
| 1746 | Got rid of use of dup2() and thus DUP_MISSING.
|
|---|
| 1747 |
|
|---|
| 1748 | Updated config/sgi33.
|
|---|
| 1749 |
|
|---|
| 1750 | Turned on (and fixed) in cmp_nodes() the behaviour that I *hope* will be in
|
|---|
| 1751 | POSIX 1003.2 for relational comparisons.
|
|---|
| 1752 |
|
|---|
| 1753 | Small updates to test suite.
|
|---|
| 1754 |
|
|---|
| 1755 | Changes from 2.12.19 to 2.12.20
|
|---|
| 1756 | -------------------------------
|
|---|
| 1757 |
|
|---|
| 1758 | Sloppy, sloppy, sloppy!! I didn't even try to compile the last two
|
|---|
| 1759 | patches. This one fixes goofs in regex.c.
|
|---|
| 1760 |
|
|---|
| 1761 | Changes from 2.12.18 to 2.12.19
|
|---|
| 1762 | -------------------------------
|
|---|
| 1763 |
|
|---|
| 1764 | Cleanup of last patch.
|
|---|
| 1765 |
|
|---|
| 1766 | Changes from 2.12.17 to 2.12.18
|
|---|
| 1767 | -------------------------------
|
|---|
| 1768 |
|
|---|
| 1769 | Makefile renamed to Makefile-dist.
|
|---|
| 1770 |
|
|---|
| 1771 | Added alloca() configuration to mkconf. (A bit kludgey.) Just
|
|---|
| 1772 | add a single line containing ALLOCA_PW, ALLOCA_S or ALLOCA_C
|
|---|
| 1773 | to the appropriate config file to have Makefile-dist edited
|
|---|
| 1774 | accordingly.
|
|---|
| 1775 |
|
|---|
| 1776 | Reorganized output flushing to correspond with new semantics of
|
|---|
| 1777 | devopen() on "/dev/std*" etc.
|
|---|
| 1778 |
|
|---|
| 1779 | Fixed rest of last goof!!
|
|---|
| 1780 |
|
|---|
| 1781 | Save and restore errno in do_pathopen().
|
|---|
| 1782 |
|
|---|
| 1783 | Miscellaneous atari updates.
|
|---|
| 1784 |
|
|---|
| 1785 | Get rid of the trailing comma in the NODETYPE definition (Cray
|
|---|
| 1786 | compiler won't take it).
|
|---|
| 1787 |
|
|---|
| 1788 | Try to make the use of `const' consistent since Cray compiler is
|
|---|
| 1789 | fussy about that. See the changes to `basename' and `myname'.
|
|---|
| 1790 |
|
|---|
| 1791 | It turns out that, according to section 3.8.3 (Macro Replacement)
|
|---|
| 1792 | of the ANSI Standard: ``If there are sequences of preprocessing
|
|---|
| 1793 | tokens within the list of arguments that would otherwise act as
|
|---|
| 1794 | preprocessing directives, the behavior is undefined.'' That means
|
|---|
| 1795 | that you cannot count on the behavior of the declaration of
|
|---|
| 1796 | re_compile_pattern in awk.h, and indeed the Cray compiler chokes on it.
|
|---|
| 1797 |
|
|---|
| 1798 | Replaced alloca with malloc/realloc/free in regex.c. It was much simpler
|
|---|
| 1799 | than expected. (Inside NO_ALLOCA for now -- by default no alloca.)
|
|---|
| 1800 |
|
|---|
| 1801 | Added a configuration file, config/cray60, for Unicos-6.0.
|
|---|
| 1802 |
|
|---|
| 1803 | Changes from 2.12.16 to 2.12.17
|
|---|
| 1804 | -------------------------------
|
|---|
| 1805 |
|
|---|
| 1806 | Ooops. Goofed signal use in last patch.
|
|---|
| 1807 |
|
|---|
| 1808 | Changes from 2.12.15 to 2.12.16
|
|---|
| 1809 | -------------------------------
|
|---|
| 1810 |
|
|---|
| 1811 | RENAMED *_dir to just * (e.g. missing_dir).
|
|---|
| 1812 |
|
|---|
| 1813 | Numerous VMS changes.
|
|---|
| 1814 |
|
|---|
| 1815 | Proper inclusion of atari and vms files.
|
|---|
| 1816 |
|
|---|
| 1817 | Added experimental (ifdef'd out) RELAXED_CONTINUATION and DEFAULT_FILETYPE
|
|---|
| 1818 | -- please comment on these!
|
|---|
| 1819 |
|
|---|
| 1820 | Moved pathopen() to io.c (sigh).
|
|---|
| 1821 |
|
|---|
| 1822 | Put local directory ahead in default AWKPATH.
|
|---|
| 1823 |
|
|---|
| 1824 | Added facility in mkconf to echo comments on stdout: lines beginning
|
|---|
| 1825 | with "#echo " will have the remainder of the line echoed when mkconf is run.
|
|---|
| 1826 | Any lines starting with "#" will otherwise be treated as comments. The
|
|---|
| 1827 | intent is to be able to say:
|
|---|
| 1828 | "#echo Make sure you uncomment alloca.c in the Makefile"
|
|---|
| 1829 | or the like.
|
|---|
| 1830 |
|
|---|
| 1831 | Prototype fix for V.4
|
|---|
| 1832 |
|
|---|
| 1833 | Fixed version_string to not print leading @(#).
|
|---|
| 1834 |
|
|---|
| 1835 | Fixed FIELDWIDTHS to work with strict (turned out to be easy).
|
|---|
| 1836 |
|
|---|
| 1837 | Fixed conf for V.2.
|
|---|
| 1838 |
|
|---|
| 1839 | Changed semantics of /dev/fd/n to be like on real /dev/fd.
|
|---|
| 1840 |
|
|---|
| 1841 | Several configuration and updates in the makefile.
|
|---|
| 1842 |
|
|---|
| 1843 | Updated manpage.
|
|---|
| 1844 |
|
|---|
| 1845 | Include tzset.c and system.c from missing_dir that were accidently left out of
|
|---|
| 1846 | the last patch.
|
|---|
| 1847 |
|
|---|
| 1848 | Fixed bug in cmdline variable assignment -- arg was getting freed(!) in
|
|---|
| 1849 | call to variable.
|
|---|
| 1850 |
|
|---|
| 1851 | Backed out of parse-time constant folding for now, until I can figure out
|
|---|
| 1852 | how to do it right.
|
|---|
| 1853 |
|
|---|
| 1854 | Fixed devopen() so that getline <"-" works.
|
|---|
| 1855 |
|
|---|
| 1856 | Changes from 2.12.14 to 2.12.15
|
|---|
| 1857 | -------------------------------
|
|---|
| 1858 |
|
|---|
| 1859 | Changed config/* to a condensed form that can be used with mkconf to generate
|
|---|
| 1860 | a config.h from config.h-dist -- much easier to maintain. Please check
|
|---|
| 1861 | carefully against what you had before for a particular system and report
|
|---|
| 1862 | any problems. vms.h remains separate since the stuff at the bottom
|
|---|
| 1863 | didn't quite fit the mkconf model -- hopefully cleared up later.
|
|---|
| 1864 |
|
|---|
| 1865 | Fixed bug in grammar -- didn't allow function definition to be separated from
|
|---|
| 1866 | other rules by a semi-colon.
|
|---|
| 1867 |
|
|---|
| 1868 | VMS fix to #includes in missing.c -- should we just be including awk.h?
|
|---|
| 1869 |
|
|---|
| 1870 | Updated README for texinfo.tex version.
|
|---|
| 1871 |
|
|---|
| 1872 | Updating of copyright in all .[chy] files.
|
|---|
| 1873 |
|
|---|
| 1874 | Added but commented out Michal's fix to strftime.
|
|---|
| 1875 |
|
|---|
| 1876 | Added tzset() emulation based on Rick Adams' code. Added TZSET_MISSING to
|
|---|
| 1877 | config.h-dist.
|
|---|
| 1878 |
|
|---|
| 1879 | Added strftime.3 man page for missing_dir
|
|---|
| 1880 |
|
|---|
| 1881 | More posix: func, **, **= don't work in -W posix
|
|---|
| 1882 |
|
|---|
| 1883 | More lint: ^, ^= not in old awk
|
|---|
| 1884 |
|
|---|
| 1885 | gawk.1: removed ref to -DNO_DEV_FD, other minor updating.
|
|---|
| 1886 |
|
|---|
| 1887 | Style change: pushbak becomes pushback() in yylex().
|
|---|
| 1888 |
|
|---|
| 1889 | Changes from 2.12.13 to 2.12.14
|
|---|
| 1890 | -------------------------------
|
|---|
| 1891 |
|
|---|
| 1892 | Better (?) organization of awk.h -- attempt to keep all system dependencies
|
|---|
| 1893 | near the top and move some of the non-general things out of the config.h
|
|---|
| 1894 | files.
|
|---|
| 1895 |
|
|---|
| 1896 | Change to handling of SYSTEM_MISSING.
|
|---|
| 1897 |
|
|---|
| 1898 | Small change to ultrix config.
|
|---|
| 1899 |
|
|---|
| 1900 | Do "/dev/fd/*" etc. checking at runtime.
|
|---|
| 1901 |
|
|---|
| 1902 | First pass at VMS port.
|
|---|
| 1903 |
|
|---|
| 1904 | Improvements to error handling (when lexeme spans buffers).
|
|---|
| 1905 |
|
|---|
| 1906 | Fixed backslash handling -- why didn't I notice this sooner?
|
|---|
| 1907 |
|
|---|
| 1908 | Added programs from book to test suite and new target "bigtest" to Makefile.
|
|---|
| 1909 |
|
|---|
| 1910 | Changes from 2.12.12 to 2.12.13
|
|---|
| 1911 | -------------------------------
|
|---|
| 1912 |
|
|---|
| 1913 | Recognize OFS and ORS specially so that OFS = 9 works without efficiency hit.
|
|---|
| 1914 | Took advantage of opportunity to tune do_print*() for about 10% win on a
|
|---|
| 1915 | print with 5 args (i.e. small but significant).
|
|---|
| 1916 |
|
|---|
| 1917 | Somewhat pervasive changes to reconcile CONVFMT vs. OFMT.
|
|---|
| 1918 |
|
|---|
| 1919 | Better initialization of builtin vars.
|
|---|
| 1920 |
|
|---|
| 1921 | Make config/* consistent wrt STRTOL_MISSING.
|
|---|
| 1922 |
|
|---|
| 1923 | Small portability improvement to alloca.s
|
|---|
| 1924 |
|
|---|
| 1925 | Improvements to lint code in awk.y
|
|---|
| 1926 |
|
|---|
| 1927 | Replaced strtol() with a better one by Chris Torek.
|
|---|
| 1928 |
|
|---|
| 1929 | Changes from 2.12.11 to 2.12.12
|
|---|
| 1930 | -------------------------------
|
|---|
| 1931 |
|
|---|
| 1932 | Added PORTS file to record successful ports.
|
|---|
| 1933 |
|
|---|
| 1934 | Added #define const to nothing if not STDC and added const to strtod() header.
|
|---|
| 1935 |
|
|---|
| 1936 | Added * to printf capabilities and partially implemented ' ' and '+' (has an
|
|---|
| 1937 | effect for %d only, silently ignored for other formats). I'm afraid that's
|
|---|
| 1938 | as far as I want to go before I look at a complete replacement for
|
|---|
| 1939 | do_sprintf().
|
|---|
| 1940 |
|
|---|
| 1941 | Added warning for /regexp/ on LHS of MATCHOP.
|
|---|
| 1942 |
|
|---|
| 1943 | Changes from 2.12.10 to 2.12.11
|
|---|
| 1944 | -------------------------------
|
|---|
| 1945 |
|
|---|
| 1946 | Small Makefile improvements.
|
|---|
| 1947 |
|
|---|
| 1948 | Some remaining nits from the NeXT port.
|
|---|
| 1949 |
|
|---|
| 1950 | Got rid of bcopy() define in awk.h -- not needed anymore (??)
|
|---|
| 1951 |
|
|---|
| 1952 | Changed private in builtin.c -- it is special on Sequent.
|
|---|
| 1953 |
|
|---|
| 1954 | Added subset implementation of strtol() and STRTOL_MISSING.
|
|---|
| 1955 |
|
|---|
| 1956 | A little bit of cleanup in debug.c, dfa.c.
|
|---|
| 1957 |
|
|---|
| 1958 | Changes from 2.12.9 to 2.12.10
|
|---|
| 1959 | ------------------------------
|
|---|
| 1960 |
|
|---|
| 1961 | Redid compatability checking and checking for # of args.
|
|---|
| 1962 |
|
|---|
| 1963 | Removed all references to variables[] from outside awk.y, in preparation
|
|---|
| 1964 | for a more abstract interface to the symbol table.
|
|---|
| 1965 |
|
|---|
| 1966 | Got rid of a remaining use of bcopy() in regex.c.
|
|---|
| 1967 |
|
|---|
| 1968 | Changes from 2.12.8 to 2.12.9
|
|---|
| 1969 | -----------------------------
|
|---|
| 1970 |
|
|---|
| 1971 | Portability improvements for atari, next and decstation.
|
|---|
| 1972 |
|
|---|
| 1973 | Bug fix in substr() -- wasn't handling 3rd arg. of -1 properly.
|
|---|
| 1974 |
|
|---|
| 1975 | Manpage updates.
|
|---|
| 1976 |
|
|---|
| 1977 | Moved support from src release to doc release.
|
|---|
| 1978 |
|
|---|
| 1979 | Updated FUTURES file.
|
|---|
| 1980 |
|
|---|
| 1981 | Added some "lint" warnings.
|
|---|
| 1982 |
|
|---|
| 1983 | Changes from 2.12.7 to 2.12.8
|
|---|
| 1984 | -----------------------------
|
|---|
| 1985 |
|
|---|
| 1986 | Changed time() to systime().
|
|---|
| 1987 |
|
|---|
| 1988 | Changed warning() in snode() to fatal().
|
|---|
| 1989 |
|
|---|
| 1990 | strftime() now defaults second arg. to current time.
|
|---|
| 1991 |
|
|---|
| 1992 | Changes from 2.12.6 to 2.12.7
|
|---|
| 1993 | -----------------------------
|
|---|
| 1994 |
|
|---|
| 1995 | Fixed bug in sub_common() involving inadequate allocation of a buffer.
|
|---|
| 1996 |
|
|---|
| 1997 | Added some missing files to the Makefile.
|
|---|
| 1998 |
|
|---|
| 1999 | Changes from 2.12.5 to 2.12.6
|
|---|
| 2000 | -----------------------------
|
|---|
| 2001 |
|
|---|
| 2002 | Fixed bug wherein non-redirected getline could call iop_close() just
|
|---|
| 2003 | prior to a call from do_input().
|
|---|
| 2004 |
|
|---|
| 2005 | Fixed bug in handling of /dev/stdout and /dev/stderr.
|
|---|
| 2006 |
|
|---|
| 2007 | Changes from 2.12.4 to 2.12.5
|
|---|
| 2008 | -----------------------------
|
|---|
| 2009 |
|
|---|
| 2010 | Updated README and support directory.
|
|---|
| 2011 |
|
|---|
| 2012 | Changes from 2.12.3 to 2.12.4
|
|---|
| 2013 | -----------------------------
|
|---|
| 2014 |
|
|---|
| 2015 | Updated CHANGES and TODO (should have been done in previous 2 patches).
|
|---|
| 2016 |
|
|---|
| 2017 | Changes from 2.12.2 to 2.12.3
|
|---|
| 2018 | -----------------------------
|
|---|
| 2019 |
|
|---|
| 2020 | Brought regex.c and alloca.s into line with current FSF versions.
|
|---|
| 2021 |
|
|---|
| 2022 | Changes from 2.12.1 to 2.12.2
|
|---|
| 2023 | -----------------------------
|
|---|
| 2024 |
|
|---|
| 2025 | Portability improvements; mostly moving system prototypes out of awk.h
|
|---|
| 2026 |
|
|---|
| 2027 | Introduction of strftime.
|
|---|
| 2028 |
|
|---|
| 2029 | Use of CONVFMT.
|
|---|
| 2030 |
|
|---|
| 2031 | Changes from 2.12 to 2.12.1
|
|---|
| 2032 | -----------------------------
|
|---|
| 2033 |
|
|---|
| 2034 | Consolidated treatment of command-line assignments (thus correcting the
|
|---|
| 2035 | -v treatment).
|
|---|
| 2036 |
|
|---|
| 2037 | Rationalized builtin-variable handling into a table-driven process, thus
|
|---|
| 2038 | simplifying variable() and eliminating spc_var().
|
|---|
| 2039 |
|
|---|
| 2040 | Fixed bug in handling of command-line source that ended in a newline.
|
|---|
| 2041 |
|
|---|
| 2042 | Simplified install() and lookup().
|
|---|
| 2043 |
|
|---|
| 2044 | Did away with double-mallocing of identifiers and now free second and later
|
|---|
| 2045 | instances of a name, after the first gets installed into the symbol table.
|
|---|
| 2046 |
|
|---|
| 2047 | Treat IGNORECASE specially, simplifying a lot of code, and allowing
|
|---|
| 2048 | checking against strict conformance only on setting it, rather than on each
|
|---|
| 2049 | pattern match.
|
|---|
| 2050 |
|
|---|
| 2051 | Fixed regexp matching when IGNORECASE is non-zero (broken when dfa.c was
|
|---|
| 2052 | added).
|
|---|
| 2053 |
|
|---|
| 2054 | Fixed bug where $0 was not being marked as valid, even after it was rebuilt.
|
|---|
| 2055 | This caused mangling of $0.
|
|---|
| 2056 |
|
|---|
| 2057 |
|
|---|
| 2058 | Changes from 2.11.1 to 2.12
|
|---|
| 2059 | -----------------------------
|
|---|
| 2060 |
|
|---|
| 2061 | Makefile:
|
|---|
| 2062 |
|
|---|
| 2063 | Portability improvements in Makefile.
|
|---|
| 2064 | Move configuration stuff into config.h
|
|---|
| 2065 |
|
|---|
| 2066 | FSF files:
|
|---|
| 2067 |
|
|---|
| 2068 | Synchronized alloca.[cs] and regex.[ch] with FSF.
|
|---|
| 2069 |
|
|---|
| 2070 | array.c:
|
|---|
| 2071 |
|
|---|
| 2072 | Rationalized hash routines into one with a different algorithm.
|
|---|
| 2073 | delete() now works if the array is a local variable.
|
|---|
| 2074 | Changed interface of assoc_next() and avoided dereferencing past the end of the
|
|---|
| 2075 | array.
|
|---|
| 2076 |
|
|---|
| 2077 | awk.h:
|
|---|
| 2078 |
|
|---|
| 2079 | Merged non-prototype and prototype declarations in awk.h.
|
|---|
| 2080 | Expanded tree_eval #define to short-circuit more calls of r_tree_eval().
|
|---|
| 2081 |
|
|---|
| 2082 | awk.y:
|
|---|
| 2083 |
|
|---|
| 2084 | Delinted some of the code in the grammar.
|
|---|
| 2085 | Fixed and improved some of the error message printing.
|
|---|
| 2086 | Changed to accomodate unlimited length source lines.
|
|---|
| 2087 | Line continuation now works as advertised.
|
|---|
| 2088 | Source lines can be arbitrarily long.
|
|---|
| 2089 | Refined grammar hacks so that /= assignment works. Regular expressions
|
|---|
| 2090 | starting with /= are recognized at the beginning of a line, after && or ||
|
|---|
| 2091 | and after ~ or !~. More contexts can be added if necessary.
|
|---|
| 2092 | Fixed IGNORECASE (multiple scans for backslash).
|
|---|
| 2093 | Condensed expression_lists in array references.
|
|---|
| 2094 | Detect and warn for correct # args in builtin functions -- call most of them
|
|---|
| 2095 | with a fixed number (i.e. fill in defaults at parse-time rather than at
|
|---|
| 2096 | run-time).
|
|---|
| 2097 | Load ENVIRON only if it is referenced (detected at parse-time).
|
|---|
| 2098 | Treat NF, FS, RS, NR, FNR specially at parse time, to improve run time.
|
|---|
| 2099 | Fold constant expressions at parse time.
|
|---|
| 2100 | Do make_regexp() on third arg. of split() at parse tiem if it is a constant.
|
|---|
| 2101 |
|
|---|
| 2102 | builtin.c:
|
|---|
| 2103 |
|
|---|
| 2104 | srand() returns 0 the first time called.
|
|---|
| 2105 | Replaced alloca() with malloc() in do_sprintf().
|
|---|
| 2106 | Fixed setting of RSTART and RLENGTH in do_match().
|
|---|
| 2107 | Got rid of get_{one,two,three} and allowance for variable # of args. at
|
|---|
| 2108 | run-time -- this is now done at parse-time.
|
|---|
| 2109 | Fixed latent bug in [g]sub whereby changes to $0 would never get made.
|
|---|
| 2110 | Rewrote much of sub_common() for simplicity and performance.
|
|---|
| 2111 | Added ctime() and time() builtin functions (unless -DSTRICT). ctime() returns
|
|---|
| 2112 | a time string like the C function, given the number of seconds since the epoch
|
|---|
| 2113 | and time() returns the current time in seconds.
|
|---|
| 2114 | do_sprintf() now checks for mismatch between format string and number of
|
|---|
| 2115 | arguments supplied.
|
|---|
| 2116 |
|
|---|
| 2117 | dfa.c
|
|---|
| 2118 |
|
|---|
| 2119 | This is borrowed (almost unmodified) from GNU grep to provide faster searches.
|
|---|
| 2120 |
|
|---|
| 2121 | eval.c
|
|---|
| 2122 |
|
|---|
| 2123 | Node_var, Node_var_array and Node_param_list handled from macro rather
|
|---|
| 2124 | than in r_tree_eval().
|
|---|
| 2125 | Changed cmp_nodes() to not do a force_number() -- this, combined with a
|
|---|
| 2126 | force_number() on ARGV[] and ENVIRON[] brings it into line with other awks
|
|---|
| 2127 | Greatly simplified cmp_nodes().
|
|---|
| 2128 | Separated out Node_NF, Node_FS, Node_RS, Node_NR and Node_FNR in get_lhs().
|
|---|
| 2129 | All adjacent string concatenations now done at once.
|
|---|
| 2130 |
|
|---|
| 2131 | field.c
|
|---|
| 2132 |
|
|---|
| 2133 | Added support for FIELDWIDTHS.
|
|---|
| 2134 | Fixed bug in get_field() whereby changes to a field were not always
|
|---|
| 2135 | properly reflected in $0.
|
|---|
| 2136 | Reordered tests in parse_field() so that reference off the end of the buffer
|
|---|
| 2137 | doesn't happen.
|
|---|
| 2138 | set_FS() now sets *parse_field i.e. routine to call depending on type of FS.
|
|---|
| 2139 | It also does make_regexp() for FS if needed. get_field() passes FS_regexp
|
|---|
| 2140 | to re_parse_field(), as does do_split().
|
|---|
| 2141 | Changes to set_field() and set_record() to avoid malloc'ing and free'ing the
|
|---|
| 2142 | field nodes repeatedly. The fields now just point into $0 unless they are
|
|---|
| 2143 | assigned to another variable or changed. force_number() on the field is
|
|---|
| 2144 | *only* done when the field is needed.
|
|---|
| 2145 |
|
|---|
| 2146 | gawk.1
|
|---|
| 2147 |
|
|---|
| 2148 | Fixed troff formatting problem on .TP lines.
|
|---|
| 2149 |
|
|---|
| 2150 | io.c
|
|---|
| 2151 |
|
|---|
| 2152 | Moved some code out into iop.c.
|
|---|
| 2153 | Output from pipes and system() calls is properly synchronized.
|
|---|
| 2154 | Status from pipe close properly returned.
|
|---|
| 2155 | Bug in getline with no redirect fixed.
|
|---|
| 2156 |
|
|---|
| 2157 | iop.c
|
|---|
| 2158 |
|
|---|
| 2159 | This file contains a totally revamped get_a_record and associated code.
|
|---|
| 2160 |
|
|---|
| 2161 | main.c
|
|---|
| 2162 |
|
|---|
| 2163 | Command line programs no longer use a temporary file.
|
|---|
| 2164 | Therefore, tmpnam() no longer required.
|
|---|
| 2165 | Deprecated -a and -e options -- they will go away in the next release,
|
|---|
| 2166 | but for now they cause a warning.
|
|---|
| 2167 | Moved -C, -V, -c options to -W ala posix.
|
|---|
| 2168 | Added -W posix option: throw out \x
|
|---|
| 2169 | Added -W lint option.
|
|---|
| 2170 |
|
|---|
| 2171 |
|
|---|
| 2172 | node.c
|
|---|
| 2173 |
|
|---|
| 2174 | force_number() now allows pure numerics to have leading whitespace.
|
|---|
| 2175 | Added make_string facility to optimize case of adding an already malloc'd
|
|---|
| 2176 | string.
|
|---|
| 2177 | Cleaned up and simplified do_deref().
|
|---|
| 2178 | Fixed bug in handling of stref==255 in do_deref().
|
|---|
| 2179 |
|
|---|
| 2180 | re.c
|
|---|
| 2181 |
|
|---|
| 2182 | contains the interface to regexp code
|
|---|
| 2183 |
|
|---|
| 2184 | Changes from 2.11.1 to FSF version of same
|
|---|
| 2185 | ------------------------------------------
|
|---|
| 2186 | Thu Jan 4 14:19:30 1990 Jim Kingdon (kingdon at albert)
|
|---|
| 2187 |
|
|---|
| 2188 | * Makefile (YACC): Add -y to bison part.
|
|---|
| 2189 |
|
|---|
| 2190 | * missing.c: Add #include <stdio.h>.
|
|---|
| 2191 |
|
|---|
| 2192 | Sun Dec 24 16:16:05 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu)
|
|---|
| 2193 |
|
|---|
| 2194 | * Makefile: Add (commented out) default defines for Sony News.
|
|---|
| 2195 |
|
|---|
| 2196 | * awk.h: Move declaration of vprintf so it will compile when
|
|---|
| 2197 | -DVPRINTF_MISSING is defined.
|
|---|
| 2198 |
|
|---|
| 2199 | Mon Nov 13 18:54:08 1989 Robert J. Chassell (bob at apple-gunkies.ai.mit.edu)
|
|---|
| 2200 |
|
|---|
| 2201 | * gawk.texinfo: changed @-commands that are not part of the
|
|---|
| 2202 | standard, currently released texinfmt.el to those that are.
|
|---|
| 2203 | Otherwise, only people with the as-yet unreleased makeinfo.c can
|
|---|
| 2204 | format this file.
|
|---|
| 2205 |
|
|---|
| 2206 | Changes from 2.11beta to 2.11.1 (production)
|
|---|
| 2207 | --------------------------------------------
|
|---|
| 2208 |
|
|---|
| 2209 | Went from "beta" to production status!!!
|
|---|
| 2210 |
|
|---|
| 2211 | Now flushes stdout before closing pipes or redirected files to
|
|---|
| 2212 | synchronize output.
|
|---|
| 2213 |
|
|---|
| 2214 | MS-DOS changes added in.
|
|---|
| 2215 |
|
|---|
| 2216 | Signal handler return type parameterized in Makefile and awk.h and
|
|---|
| 2217 | some lint removed. debug.c cleaned up.
|
|---|
| 2218 |
|
|---|
| 2219 | Fixed FS splitting to never match null strings, per book.
|
|---|
| 2220 |
|
|---|
| 2221 | Correction to the manual's description of FS.
|
|---|
| 2222 |
|
|---|
| 2223 | Some compilers break on char *foo = "string" + 4 so fixed version.sh and
|
|---|
| 2224 | main.c.
|
|---|
| 2225 |
|
|---|
| 2226 | Changes from 2.10beta to 2.11beta
|
|---|
| 2227 | ---------------------------------
|
|---|
| 2228 |
|
|---|
| 2229 | This release fixes all reported bugs that we could reproduce. Probably
|
|---|
| 2230 | some of the changes are not documented here.
|
|---|
| 2231 |
|
|---|
| 2232 | The next release will probably not be a beta release!
|
|---|
| 2233 |
|
|---|
| 2234 | The most important change is the addition of the -nostalgia option. :-)
|
|---|
| 2235 |
|
|---|
| 2236 | The documentation has been improved and brought up-to-date.
|
|---|
| 2237 |
|
|---|
| 2238 | There has been a lot of general cleaning up of the code that is not otherwise
|
|---|
| 2239 | documented here. There has been a movement toward using standard-conforming
|
|---|
| 2240 | library routines and providing them (in missing.d) for systems lacking them.
|
|---|
| 2241 | Improved (hopefully) configuration through Makfile modifications and missing.c.
|
|---|
| 2242 | In particular, straightened out confusion over vprintf #defines, declarations
|
|---|
| 2243 | etc.
|
|---|
| 2244 |
|
|---|
| 2245 | Deleted RCS log comments from source, to reduce source size by about one third.
|
|---|
| 2246 | Most of them were horribly out-of-date, anyway.
|
|---|
| 2247 |
|
|---|
| 2248 | Renamed source files to reflect (for the most part) their contents.
|
|---|
| 2249 |
|
|---|
| 2250 | More and improved error messages. Cleanup and fixes to yyerror().
|
|---|
| 2251 | String constants are not altered in input buffer, so error messages come out
|
|---|
| 2252 | better. Fixed usage message. Make use of ANSI C strerror() function
|
|---|
| 2253 | (provided).
|
|---|
| 2254 |
|
|---|
| 2255 | Plugged many more memory leaks. The memory consumption is now quite
|
|---|
| 2256 | reasonable over a wide range of programs.
|
|---|
| 2257 |
|
|---|
| 2258 | Uses volatile declaration if STDC > 0 to avoid problems due to longjmp.
|
|---|
| 2259 |
|
|---|
| 2260 | New -a and -e options to use awk or egrep style regexps, respectively,
|
|---|
| 2261 | since POSIX says awk should use egrep regexps. Default is -a.
|
|---|
| 2262 |
|
|---|
| 2263 | Added -v option for setting variables before the first file is encountered.
|
|---|
| 2264 | Version information now uses -V and copyleft uses -C.
|
|---|
| 2265 |
|
|---|
| 2266 | Added a patchlevel.h file and its use for -V and -C.
|
|---|
| 2267 |
|
|---|
| 2268 | Append_right() optimized for major improvement to programs with a *lot*
|
|---|
| 2269 | of statements.
|
|---|
| 2270 |
|
|---|
| 2271 | Operator precedence has been corrected to match draft Posix.
|
|---|
| 2272 |
|
|---|
| 2273 | Tightened up grammar for builtin functions so that only length
|
|---|
| 2274 | may be called without arguments or parentheses.
|
|---|
| 2275 |
|
|---|
| 2276 | /regex/ is now a normal expression that can appear in any expression
|
|---|
| 2277 | context.
|
|---|
| 2278 |
|
|---|
| 2279 | Allow /= to begin a regexp. Allow ..[../..].. in a regexp.
|
|---|
| 2280 |
|
|---|
| 2281 | Allow empty compound statements ({}).
|
|---|
| 2282 |
|
|---|
| 2283 | Made return and next illegal outside a function and in BEGIN/END respectively.
|
|---|
| 2284 |
|
|---|
| 2285 | Division by zero is now illegal and causes a fatal error.
|
|---|
| 2286 |
|
|---|
| 2287 | Fixed exponentiation so that x ^ 0 and x ^= 0 both return 1.
|
|---|
| 2288 |
|
|---|
| 2289 | Fixed do_sqrt, do_log, and do_exp to do argument/return checking and
|
|---|
| 2290 | print an error message, per the manual.
|
|---|
| 2291 |
|
|---|
| 2292 | Fixed main to catch SIGSEGV to get source and data file line numbers.
|
|---|
| 2293 |
|
|---|
| 2294 | Fixed yyerror to print the ^ at the beginning of the bad token, not the end.
|
|---|
| 2295 |
|
|---|
| 2296 | Fix to substr() builtin: it was failing if the arguments
|
|---|
| 2297 | weren't already strings.
|
|---|
| 2298 |
|
|---|
| 2299 | Added new node value flag NUMERIC to indicate that a variable is
|
|---|
| 2300 | purely a number as opposed to type NUM which indicates that
|
|---|
| 2301 | the node's numeric value is valid. This is set in make_number(),
|
|---|
| 2302 | tmp_number and r_force_number() when appropriate and used in
|
|---|
| 2303 | cmp_nodes(). This fixed a bug in comparison of variables that had
|
|---|
| 2304 | numeric prefixes. The new code uses strtod() and eliminates is_a_number().
|
|---|
| 2305 | A simple strtod() is provided for systems lacking one. It does no
|
|---|
| 2306 | overflow checking, so could be improved.
|
|---|
| 2307 |
|
|---|
| 2308 | Simplification and efficiency improvement in force_string.
|
|---|
| 2309 |
|
|---|
| 2310 | Added performance tweak in r_force_number().
|
|---|
| 2311 |
|
|---|
| 2312 | Fixed a bug with nested loops and break/continue in functions.
|
|---|
| 2313 |
|
|---|
| 2314 | Fixed inconsistency in handling of empty fields when $0 has to be rebuilt.
|
|---|
| 2315 | Happens to simplify rebuild_record().
|
|---|
| 2316 |
|
|---|
| 2317 | Cleaned up the code associated with opening a pipe for reading. Gawk
|
|---|
| 2318 | now has its own popen routine (gawk_popen) that allocates an IOBUF
|
|---|
| 2319 | and keeps track of the pid of the child process. gawk_pclose
|
|---|
| 2320 | marks the appropriate child as defunct in the right struct redirect.
|
|---|
| 2321 |
|
|---|
| 2322 | Cleaned up and fixed close_redir().
|
|---|
| 2323 |
|
|---|
| 2324 | Fixed an obscure bug to do with redirection. Intermingled ">" and ">>"
|
|---|
| 2325 | redirects did not output in a predictable order.
|
|---|
| 2326 |
|
|---|
| 2327 | Improved handling of output buffering: now all print[f]s redirected to a tty
|
|---|
| 2328 | or pipe are flushed immediately and non-redirected output to a tty is flushed
|
|---|
| 2329 | before the next input record is read.
|
|---|
| 2330 |
|
|---|
| 2331 | Fixed a bug in get_a_record() where bcopy() could have copied over
|
|---|
| 2332 | a random pointer.
|
|---|
| 2333 |
|
|---|
| 2334 | Fixed a bug when RS="" and records separated by multiple blank lines.
|
|---|
| 2335 |
|
|---|
| 2336 | Got rid of SLOWIO code which was out-of-date anyway.
|
|---|
| 2337 |
|
|---|
| 2338 | Fix in get_field() for case where $0 is changed and then $(n) are
|
|---|
| 2339 | changed and then $0 is used.
|
|---|
| 2340 |
|
|---|
| 2341 | Fixed infinite loop on failure to open file for reading from getline.
|
|---|
| 2342 | Now handles redirect file open failures properly.
|
|---|
| 2343 |
|
|---|
| 2344 | Filenames such as /dev/stdin now allowed on the command line as well as
|
|---|
| 2345 | in redirects.
|
|---|
| 2346 |
|
|---|
| 2347 | Fixed so that gawk '$1' where $1 is a zero tests false.
|
|---|
| 2348 |
|
|---|
| 2349 | Fixed parsing so that `RLENGTH -1' parses the same as `RLENGTH - 1',
|
|---|
| 2350 | for example.
|
|---|
| 2351 |
|
|---|
| 2352 | The return from a user-defined function now defaults to the Null node.
|
|---|
| 2353 | This fixes a core-dump-causing bug when the return value of a function
|
|---|
| 2354 | is used and that function returns no value.
|
|---|
| 2355 |
|
|---|
| 2356 | Now catches floating point exceptions to avoid core dumps.
|
|---|
| 2357 |
|
|---|
| 2358 | Bug fix for deleting elements of an array -- under some conditions, it was
|
|---|
| 2359 | deleting more than one element at a time.
|
|---|
| 2360 |
|
|---|
| 2361 | Fix in AWKPATH code for running off the end of the string.
|
|---|
| 2362 |
|
|---|
| 2363 | Fixed handling of precision in *printf calls. %0.2d now works properly,
|
|---|
| 2364 | as does %c. [s]printf now recognizes %i and %X.
|
|---|
| 2365 |
|
|---|
| 2366 | Fixed a bug in printing of very large (>240) strings.
|
|---|
| 2367 |
|
|---|
| 2368 | Cleaned up erroneous behaviour for RS == "".
|
|---|
| 2369 |
|
|---|
| 2370 | Added IGNORECASE support to index().
|
|---|
| 2371 |
|
|---|
| 2372 | Simplified and fixed newnode/freenode.
|
|---|
| 2373 |
|
|---|
| 2374 | Fixed reference to $(anything) in a BEGIN block.
|
|---|
| 2375 |
|
|---|
| 2376 | Eliminated use of USG rand48().
|
|---|
| 2377 |
|
|---|
| 2378 | Bug fix in force_string for machines with 16-bit ints.
|
|---|
| 2379 |
|
|---|
| 2380 | Replaced use of mktemp() with tmpnam() and provided a partial implementation of
|
|---|
| 2381 | the latter for systems that don't have it.
|
|---|
| 2382 |
|
|---|
| 2383 | Added a portability check for includes in io.c.
|
|---|
| 2384 |
|
|---|
| 2385 | Minor portability fix in alloc.c plus addition of xmalloc().
|
|---|
| 2386 |
|
|---|
| 2387 | Portability fix: on UMAX4.2, st_blksize is zero for a pipe, thus breaking
|
|---|
| 2388 | iop_alloc() -- fixed.
|
|---|
| 2389 |
|
|---|
| 2390 | Workaround for compiler bug on Sun386i in do_sprintf.
|
|---|
| 2391 |
|
|---|
| 2392 | More and improved prototypes in awk.h.
|
|---|
| 2393 |
|
|---|
| 2394 | Consolidated C escape parsing code into one place.
|
|---|
| 2395 |
|
|---|
| 2396 | strict flag is now turned on only when invoked with compatability option.
|
|---|
| 2397 | It now applies to fewer things.
|
|---|
| 2398 |
|
|---|
| 2399 | Changed cast of f._ptr in vprintf.c from (unsigned char *) to (char *).
|
|---|
| 2400 | Hopefully this is right for the systems that use this code (I don't).
|
|---|
| 2401 |
|
|---|
| 2402 | Support for pipes under MSDOS added.
|
|---|