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.
|
---|