source: vendor/gawk/3.1.5/ChangeLog@ 3181

Last change on this file since 3181 was 3076, checked in by bird, 18 years ago

gawk 3.1.5

File size: 244.9 KB
Line 
1Tue Jul 26 21:46:16 2005 Arnold D. Robbins <arnold@skeeve.com>
2
3 * Release 3.1.5: Release tar file made.
4
5Tue Jul 26 21:44:54 2005 Arnold D. Robbins <arnold@skeeve.com>
6
7 Copyright dates on all relevant files updated to 2005.
8
9Wed Jul 6 17:09:02 2005 Arnold D. Robbins <arnold@skeeve.com>
10
11 Minor cleanups:
12
13 * io.c (do_index): Remove unused variables `mbclen', `mbs1' and `mbs2'.
14 * node.c (wstrstr): Remove unsed variable `j'.
15 (dump_wstr): `#ifdef' out, not currently needed.
16 * eval.c (op_assign): Move decl of `t1' and `t2' into a separate block for
17 the `! HAVE_FMOD' case. Keeps the compiler quiet. Similar for `ltemp'.
18
19Wed Jul 6 16:51:31 2005 Arnold D. Robbins <arnold@skeeve.com>
20
21 * io.c (close_io): Now takes pointer to boolean parameter indicating
22 if there was a problem closing standard output or standard error.
23 Update it in the right places.
24 * awk.h (close_io): Update the declaration.
25 * main.c (main): New variable `stdio_problem'. Pass it to `close_io'.
26 Check the result and exit non-zero if there was a problem.
27 (usage, version): Print warning message if problems with stdout.
28
29 Unrelated:
30
31 * main.c (main): For call to `setlocale' for LC_MESSAGES, just use
32 `#ifdef LC_MESSAGES'. Per Bruno Haible <bruno@clisp.org>.
33
34Wed Jul 6 16:44:58 2005 Jim Meyering <jim@meyering.net>
35
36 * main.c (init_fds): If any of the STDIN_FILENO, STDOUT_FILENO,
37 STDERR_FILENO are initially closed, reopen them with permissions
38 contrary to common usage so that any reasonable attempt to use
39 them will evoke the same sort of error as reading or writing to
40 a closed file descriptor would.
41
42Mon Jul 4 09:38:29 2005 Arnold D. Robbins <arnold@skeeve.com>
43
44 More multibyte fixes from Kimura Koichi, <kimura.koichi@canon.co.jp>.
45
46 * node.c (format_val, r_dupnode): Spell `wstptr' correctly.
47 * regex_internal.c (build_wcs_upper_buffer): Label `offsets_needed' should not
48 be inside `#ifdef _LIBC'.
49 * regcomp.c (build_charclass): Fix declaration of `class_name' in prototype to
50 not be unsigned.
51
52Thu Jun 30 11:52:34 2005 Arnold D. Robbins <arnold@skeeve.com>
53
54 * profile.c (tree_eval): Node_not: Remember to print the exclamation
55 point! Thanks to Dan Nielsen <Dan.Nielsen@corporate.ge.com>
56 for the bug report.
57 * mbsupport.h: Fix spelling of HAVE_ISWUPPER. Thanks to
58 Kimura Koichi, <kimura.koichi@canon.co.jp>.
59
60Sun Jun 26 16:37:59 2005 Arnold D. Robbins <arnold@skeeve.com>
61
62 Unrelated changes:
63
64 * builtin.c (do_length): Allow array argument to length().
65 Returns number of elements in array.
66
67 * awkgram.y (yylex): Ignore carriage returns in source code. Sigh.
68
69Wed Jun 15 22:12:15 2005 Arnold D. Robbins <arnold@skeeve.com>
70
71 * node.c (isnondecimal): Check loc.decimal_point before using it.
72 Avoids problems with command line assignment when locale info may
73 not be set up all the way yet.
74
75Wed Jun 15 21:59:54 2005 Arnold D. Robbins <arnold@skeeve.com>
76
77 * node.c (make_str_node): If working with multibyte characters, while
78 parsing string constants, keep multibyte characters together. This avoids
79 problems in cases where one of the bytes is backslash. Initial patch
80 supplied by Kimura Koichi, <kimura.koichi@canon.co.jp>.
81
82Tue Jun 14 21:50:37 2005 Andrew J. Schorr <ajschorr@users.sourceforge.net>
83
84 Use Exponentiation By Squaring for integer powers for ^ and ^=.
85
86 * eval.c (calc_exp, cal_exp_posint): New functions.
87 (r_tree_eval): Use them.
88
89Fri Jun 3 12:15:54 2005 Arnold D. Robbins <arnold@skeeve.com>
90
91 * configure.ac: Further change the hack at the end so that
92 it works on Mac OS X `sed'. Sigh.
93
94Thu Jun 2 22:44:01 2005 Arnold D. Robbins <arnold@skeeve.com>
95
96 * configure.ac (TYPE_SOCKLEN_T): Use `int' as default type if can't
97 figure one out.
98 * awkgram.y: Warn that `//' is not a C++ comment. (:-)
99
100Thu Jun 2 20:55:27 2005 Arnold D. Robbins <arnold@skeeve.com>
101
102 From: Benno Schulenberg <benno@nietvergeten.nl>
103
104 * eval.c (func_call): Take message out of gettext call since it's for debugging.
105 * ext.c (get_actual_argument): Fix formatting of message.
106
107Wed May 25 09:19:37 2005 Arnold D. Robbins <arnold@skeeve.com>
108
109 * configure.ac: Change hack at end that fixes Makefile to keep
110 version.c to use `sed' and not `ed'. More portable to OS/2, probably
111 other systems.
112
113Mon May 23 09:01:26 2005 Arnold D. Robbins <arnold@skeeve.com>
114
115 Portability help from Jim Meyering.
116
117 * io.c: Rework ifdefs for <inttypes.h> and <stdint.h>. Test them
118 individually.
119 * configure.ac: Add AC_C_RESTRICT and code for socklen_t from rsync.
120 Check for isascii and btowc for regex.
121
122Sat May 14 22:49:54 2005 Arnold D. Robbins <arnold@skeeve.com>
123
124 * wait_any (errno): Remove decl.
125 * gawk_popen: The pipe-simulated but not VMS or DOS version. Remove
126 decl/use of `strdup' in favor of `emalloc' and `strcpy'.
127
128Wed May 11 18:33:30 2005 Arnold D. Robbins <arnold@skeeve.com>
129
130 All files: Updated address of FSF to:
131
132 51 Franklin Street, Fifth Floor
133 Cambridge, MA 02110-1301
134
135Wed May 11 18:19:03 2005 Jim Meyering <jim@meyering.net>
136
137 * configure.ac: Use AM_GNU_GETTEXT([external]).
138 Reflect upgrade to gettext-0.14.4.
139 Reflect renaming of `jm_'-prefixed macros.
140 (AC_CONFIG_FILES): Remove intl/Makefile.
141
142 * Makefile.am (SUBDIRS): Remove intl.
143 (AM_CPPFLAGS): Remove -Iintl.
144
145Wed May 11 11:42:06 2005 Arnold D. Robbins <arnold@skeeve.com>
146
147 Straighten out mess with `isblank' which is C99 <ctype.h> function.
148
149 * configure.ac: Remove check for `isblank' in call to AC_CHECK_FUNCS.
150 * regex_internal.h: #ifdef out definition of `isblank' and provide `is_blank'
151 function a la dfa.c.
152 * field.c: Ditto.
153 * regcomp.c: #ifdef use of `isblank' and add `is_blank' use instead.
154
155Mon May 9 08:29:37 2005 Arnold D. Robbins <arnold@skeeve.com>
156
157 * configure.ac: Add type check for `socklen_t', fixes compile
158 warning on AMD/64 Linux.
159 * io.c (socketopen): Change type of socket lenght variables
160 to `socklen_t' from `size_t'.
161
162Thu May 5 22:00:03 2005 John E. Haque <j.eh@mchsi.com>
163
164 * io.c (iop_alloc): Let a input processor hook installed via
165 `register_open_hooks' open its own fd in case gawk does not know
166 how to open it.
167 (iop_open): Call `os_close_on_exec' after `iop_alloc'.
168 ADR: If `iop_alloc' returns NULL but the fd is valid, close
169 the fd to avoid an fd leak.
170
171Mon May 2 08:05:59 2005 Arnold D. Robbins <arnold@skeeve.com>
172
173 * eval.c (update_ERRNO): Don't use `return' in a `void' function.
174 * awk.h (AWKNUM): Back out use of `long double' based on LDBL_MANT_DIG.
175 * builtin.c (tmp_integer): Back out extra ifdefs.
176
177Fri Apr 29 13:01:05 2005 Arnold D. Robbins <arnold@skeeve.com>
178
179 * configure.ac: Look for `isblank' function.
180 * field.c: Add define for `isblank' if we don't have it.
181
182Fri Apr 29 12:01:33 2005 Julian Foad <julianfoad@btopenworld.com>
183
184 From grep. Doesn't seem to affect awk.
185
186 * dfa.c (lex): Fix bug #9519: "echo do^re | grep do^re" was
187 failing to find a match. [Towards end, set `lasttok' before
188 returning `c'.]
189
190Fri Apr 29 00:28:46 2005 Arnold D. Robbins <arnold@skeeve.com>
191
192 * configure.ac: Jump through an amazingly convoluted hoop to get
193 config.status to keep version.c upon `make distclean'. Seems to
194 work though.
195
196Thu Apr 28 23:40:02 2005 Stepan Kasal <kasal@ucw.cz>
197
198 * configure.ac (PRINTF_HAS_F_FORMAT): Some cosmetic changes.
199 (custom.h): Don't cat custom.h at the end of config.h; instead, use
200 AH_BOTTOM([#include "custom.h"])
201 * awklib/Makefile.am (AM_CPPFLAGS): Add $(top_srcdir) so that
202 custom.h can be found.
203
204Thu Apr 28 23:21:22 2005 Jim Meyering <jim@meyering.net>
205
206 * field.c (set_FIELDWIDTHS): Tighten up the code to accept FIELDWIDTHS
207 values in [1..INT_MAX], e.g., detect overflow and invalid strings,
208 and reject strings starting with `-'.
209
210Thu Apr 28 23:05:33 2005 Stepan Kasal <kasal@ucw.cz>
211
212 * dfa.c (parse_bracket_exp_mb): Shorten one part of the code, to get
213 closer to grep's copy.
214
215Thu Apr 28 23:00:58 2005 Pat Rankin <rankin@pactechdata.com>
216
217 * builtin.c (format_tree) [#if VAXCRTL]: For floating point
218 formatting, reject zero_flag if using old VAXCRTL run-time
219 library to avoid getting erroneous results which appear as if
220 numerically incorrect (due to an embedded space in some cases,
221 extra trailing zeroes in others) rather than just misformatted.
222 `hsprint' test still fails, but not as badly.
223
224Thu Apr 28 19:12:03 2005 Arnold D. Robbins <arnold@skeeve.com>
225
226 * re.c (reflags2str): Add three new RE_ flags from current regex.h
227 to bring the table up to date.
228
229 * builtin.c (format_tree): Save 2 spare bytes instead of one. Suggested
230 by Stepan Kasal.
231
232Thu Apr 28 18:16:09 2005 Andrew J. Schorr <ajschorr@users.sourceforge.net>
233
234 * awk.h (IOBUF): Add new fields `opaque', `get_record', and `close_func',
235 to support insertion of an alternate input processor. This is used
236 by the XML extension.
237 (register_deferred_variable, register_open_hook, update_ERRNO_saved):
238 Declare new functions.
239 (load_environ, load_procinfo): Remove declarations -- these functions
240 are no longer global, since we use register_deferred_variable instead.
241 * awkgram.y (register_deferred_variable): New function to allow
242 calling code to register special variable names that trigger a callback
243 upon the first reference. This is now used to implement ENVIRON
244 and PROCINFO.
245 (variable): Search the list of deferred variables instead of hardcoded
246 tests for ENVIRON and PROCINFO.
247 * eval.c (set_BINMODE): Fix spelling of "arbitrary" in warning message.
248 (update_ERRNO_saved): New function that allows the caller to specify
249 the errno value instead of using the current value.
250 (update_ERRNO): Implement by calling update_ERRNO_saved(errno).
251 * io.c (iop_close): Call `iop->close_func' if non-NULL.
252 (close_redir): Should save `errno' value, otherwise `lintwarn' messages
253 might update it. Then use `update_ERRNO_saved' to set ERRNO.
254 (do_getline): Call `update_ERRNO_saved' to set ERRNO based on the
255 error code returned by the redirect function (instead of the current
256 value of errno). Similarly, use `update_ERRNO_saved' to set ERRNO
257 based on the value returned by `get_a_record'. But add a special
258 check to avoid updating ERRNO if `get_a_record' returns an error
259 code value of -1 (this is used by the XML extension which already
260 sets ERRNO before returning).
261 (register_open_hook): New function to register a function to be
262 called whenever a new data file is opened. This can be used to
263 install a special input processor (as in the XML extension).
264 (iop_alloc): Call registered open hook.
265 (get_a_record): If a `get_record' method has been set, call that instead.
266 * main.c (init_vars): Use `register_deferred_variable' to implement
267 ENVIRON and PROCINFO.
268 (load_environ, load_procinfo): Now static instead of global.
269 * doc/gawk.texi: Document new internal functions `update_ERRNO_saved',
270 `register_deferred_variable', and `register_open_hook'.
271
272Thu Apr 28 10:50:10 2005 Arnold D. Robbins <arnold@skeeve.com>
273
274 * array.c (assoc_find, do_delete): Change incorrect uses of STREQN
275 to memcmp.
276 * builtin.c (do_index): Same.
277 * field.c (set_FS): Same.
278 * io.c (redirect, getredirect, do_close, set_RS): Same.
279 * re.c (reisstring): Same.
280
281Wed Apr 27 21:35:57 2005 Arnold D. Robbins <arnold@skeeve.com>
282
283 Allow for long double. Initial changes from Jean-Marc Saffroy
284 <jean-marc.saffroy@ext.bull.net>.
285
286 * awk.h (AWKNUM): If have long doubles (LDBL_MANT_DIG), define AWKNUM
287 as long double, otherwise just use double.
288 * builtin.c (format_tree): Change type of tmpval to double.
289 (do_strtonum): Same for `d' and types used in casts.
290 (tmp_integer): Don't do bit shifting if have long doubles.
291
292 Unrelated, from Andrew J. Schorr:
293
294 * io.c (close_one): Check for RED_FILE|RED_WRITE, not just RED_FILE.
295
296Mon Apr 25 12:23:18 2005 Andrew J. Schorr <aschorr@telemetry-investments.com>
297
298 * eval.c (r_tree_eval): In Node_assign_concat case, when copying string
299 constants, include the terminating zero byte.
300
301Fri Apr 1 06:26:31 2005 Arnold D. Robbins <arnold@skeeve.com>
302
303 Update to Automake 1.9.5.
304
305 * INSTALL, aclocal.m4, depcomp, install-sh, missing,
306 mkinstalldirs, ylwrap: Updated.
307
308 Unrelated:
309
310 * builtin.c (do_tolower, do_toupper): Remove old code
311 based on 8-bit character table.
312
313Wed Feb 23 08:23:22 2005 Arnold D. Robbins <arnold@skeeve.com>
314
315 * bisonfix.awk: New file, fixes continued #ifdef for dumb compilers.
316 * Makefile.am (awkgram.c): Fix rule to use it.
317 (EXTRA_DIST): Include bisonfix.awk.
318
319Tue Feb 22 21:18:50 2005 Arnold D. Robbins <arnold@skeeve.com>
320
321 * random.h: Remove include of config.h and move it to ...
322 * random.c: Here. Move include of random.h back to where it was.
323
324 * regcomp.c, regex.c, regexec.c: NUKED all use of alloca not inside
325 `_LIBC' ifdef. Hooray!
326
327Sat Feb 19 20:13:28 2005 Pat Rankin <rankin@pactechdata.com>
328
329 Workarounds for bugs and missing C89 features in old VAX C compiler.
330
331 * regex_internal.h "mbsupport.h": Suppress inclusion if NO_MBSUPPORT
332 is defined.
333 [MB_CUR_MAX]: Define as 1 if mbsupport.h hasn't defined it.
334 [ER_ERRMSG, ERRMSG_TYPE, ERRMSG_OFFSET, ERRMSG_SEPARATOR]: New macros
335 conditionalized upon gawk's NO_TOKEN_PASTING macro.
336 * regcomp.c: Use them.
337 (parse_dup_op): Use alternate initialization of start_token if
338 RE_TOKEN_INIT_BUG is defined.
339 * regexec.c (proceed_next_node): Compare push_fail_stack() result
340 explicitly against REG_NOERROR rather than implicitly against 0.
341
342Sat Feb 19 20:05:50 2005 Pat Rankin <rankin@pactechdata.com>
343
344 * dfa.c "mbsupport.h": Suppress inclusion if NO_MBSUPPORT is defined.
345
346Wed Feb 16 20:43:07 2005 Pat Rankin <rankin@pactechdata.com>
347
348 * awk.h "mbsupport.h": Suppress inclusion if NO_MBSUPPORT is defined.
349 * regex.h <sys/types.h>: Guard inclusion with HAVE_SYS_TYPES_H.
350 * regex.c <sys/types.h>: Likewise.
351 * random.c "random.h": include this first to get config.h setup.
352 <fcntl.h>: Guard inclusion with HAVE_FCNTL_H.
353 <unistd.h>: Guard inclusion with HAVE_UNISTD_H.
354 * io.c [#if defined(MSDOS) ||... defined(__CYGWIN__)]: Splice the
355 backslash continuation back into one long line.
356
357Wed Feb 16 10:11:21 2005 Arnold D. Robbins <arnold@skeeve.com>
358
359 * node.c (unref, format_val): Add assertions checking that both
360 `tmp->wstptr != NULL' and `(tmp->flags & WSTRCUR) != 0' before
361 freeing `tmp->wstptr'. Thanks to kimura.koichi@canon.co.jp.
362
363 * random.c (HAVE_UNISTD_H): Conditionalize include of <unistd.h>.
364 Thanks to Scott Deifik <scottd@amgen.com>.
365
366Sun Feb 13 18:24:50 2005 Arnold D. Robbins <arnold@skeeve.com>
367
368 * io.c (socketopen): Move `#ifdef MSG_PEEK' up to above
369 declarations too. Thanks to Michal Jaegermann.
370
371 * config.guess, config.sub: Updated from Savannah.
372
373Thu Feb 10 15:48:48 2005 Arnold D. Robbins <arnold@skeeve.com>
374
375 * regex_internal.c (re_dfa_add_node): Remove variable `type'
376 and just use `token.type' directly in RE_ENABLE_I18N code below.
377 Saves a compiler warning, and a good compiler will handle it anyway.
378 * regexec.c (check_arrival_add_next_nodes): Move decl of `err'
379 inside #ifdef RE_ENABLE_I18N code where it's used.
380 * awkgram.y (yylex): Add casts to int before use of `strlen' results
381 for printf-style precision. Avoid a compiler warning.
382 * io.c (redirect, do_close): Same for use of tmp->stlen.
383
384 Thanks to Michal Jaegermann <michal@harddata.com>.
385
386Wed Feb 9 10:19:15 2005 Stepan Kasal <kasal@ucw.cz>
387
388 * Makefile.am (datadir, libexecdir): Removed.
389 (awkdatadir): Renamed to pkgdatadir.
390 (pkgdatadir, LDADD): Use the make syntax to refer to other variables,
391 not @...@.
392
393Wed Feb 9 10:05:46 2005 Arnold D. Robbins <arnold@skeeve.com>
394
395 * node.c (r_dupnode): Assign NULL to r->wstr after `getnode'.
396 Fix count of bytes to copy in call to `memcpy'.
397 Thanks to Kimura Koichi, <kimura.koichi@canon.co.jp>.
398
399Tue Feb 8 19:26:22 2005 Pat Rankin <rankin@pactechdata.com>
400
401 * regcomp.c (init_dfa): Avoid strcasecmp() since regex.c doesn't
402 use awk.h and none of the assorted other included header files
403 are guaranteed to declare it.
404 (parse_expression): Modify casts for the string arguments passed to
405 build_charclass_op() to fix char * vs unsigned char * mismatch.
406 (parse_bracket_exp): Likewise add cast for the string argument
407 passed to build_charclass().
408
409Mon Feb 7 15:04:09 2005 Arnold D. Robbins <arnold@skeeve.com>
410
411 * eval.c (make_scalar): Don't use P() macro in definition.
412 Thanks to Juergen Kahrs <Juergen.Kahrs@barco.com>.
413
414Wed Feb 2 16:36:19 2005 Arnold D. Robbins <arnold@skeeve.com>
415
416 * main.c (main): Call `close_io', without its result affecting
417 the exit status. Super small, super dark corner.
418
419 See test/exitval2.awk.
420
421Tue Feb 1 11:58:29 2005 Arnold D. Robbins <arnold@skeeve.com>
422
423 * regex.h (__APPLE_CC__): Removed test and definition of __restrict.
424 Not needed for current MacOS X compiler.
425
426Sun Jan 30 13:56:37 2005 Arnold D. Robbins <arnold@skeeve.com>
427
428 Fresh merge with CVS regex routines. Fixes handling of \B.
429 See tests/gnureop3.awk and also
430 http://sources.redhat.com/bugzilla/show_bug.cgi?id=693.
431
432 CVS base versions:
433
434 * regcomp.c: Version 1.92, Thu Jan 27 19:05:20 2005.
435 * regexec.c: Version 1.77, Thu Jan 27 19:06:34 2005.
436 * regex_internal.c: Version 1.49, Thu Jan 27 19:07:15 2005.
437 * regex_internal.h: Version 1.60, Wed Jan 26 22:40:50 2005.
438 * regexec.c: Version 1.77, Thu Jan 27 19:06:34 2005.
439
440Sat Jan 22 22:30:40 2005 Arnold D. Robbins <arnold@skeeve.com>
441
442 Reinstate patch of 18 Nov 2001, for VMS, at least:
443
444 * random.c (srandomdev): ifdef-out. Lots of compile time
445 problems on multiple platforms, and gawk doesn't even
446 use the routine. The heck with fine-grained solutions.
447
448Thu Jan 20 14:15:32 2005 Arnold D. Robbins <arnold@skeeve.com>
449
450 * awkgram.y (LEX_FOR): Free NAME tokens in transformation of
451 `for (iggy in foo) delete foo[iggy]' into `delete foo'.
452 Thanks and a tip of the hatlo to Valgrind.
453
454 * dfa.c (_): Clean up stuff here by just including "gettext.h".
455 Per Bruno Haible.
456
457Wed Jan 19 18:29:23 2005 Arnold D. Robbins <arnold@skeeve.com>
458
459 * awkgram.y (yylex): Improve parsing of numeric constants
460 and hex values, via a push from Paul Eggert. See test/hex.awk.
461
462 * regex_internal.c (re_node_set_alloc): If `size' is 0, just
463 zero out the structure. From valgrind.
464
465Tue Jan 18 17:23:25 2005 Arnold D. Robbins <arnold@skeeve.com>
466
467 Make gawk multibyte aware. This means that index(), length(),
468 substr() and match() all work in terms of characters, not bytes.
469
470 * awk.h (NODE): Add `wsp' and `wslen' elements to value for wide
471 string.
472 (WSTRCUR, wstptr, wstlen, force_wstring): New macros.
473 (str2wstr, wstrstr, wcasestrstr): New declarations.
474 * builtin.c (do_index, do_length, do_substr, do_match): Handle wide
475 strings.
476 * eval.c (flags2str): Add WSTRCUR.
477 * node.c (format_val, r_dupnode, mk_number, make_str_node, unref):
478 Add code to deal with wide strings.
479 (str2wstr, dump_wstr, wstrstr, wcasestrstr): New functions.
480
481Sun Jan 16 15:10:35 2005 Arnold D. Robbins <arnold@skeeve.com>
482
483 * random.h (int32_t): Define this type.
484
485Thu Jan 13 14:38:13 2005 Arnold D. Robbins <arnold@skeeve.com>
486
487 Cause `configure --disable-nls' to still allow locale-correct
488 formating of numeric values.
489
490 * builtin.c (format_tree): Change #ifdefs to only test HAVE_LOCALE_H.
491 Improve code for ' flag so that extraneous separator is not included if
492 number of digits is multiple of locale separater count (3, 6, 9, etc.)
493 * dfa.c (dfaparse): Change ifdef to only test #ifdef LC_COLLATE.
494 * eval.c (fmt_ok): Remove ENABLE_NLS from #ifdef test.
495 * gettext.h: Include <locale.h> on both sides of test. Should really
496 be factored out.
497 * main.c (loc): Remove ENABLE_NLS from #ifdef test.
498 (main): Same in call to localeconv().
499 * node.c (isnondecimal): Remove ENABLE_NLS from #ifdef test.
500
501 Unrelated:
502
503 * regcomp.c (init_dfa): Change `codeset' to `codeset_name' in two
504 places.
505
506Mon Jan 10 11:49:56 2005 Arnold D. Robbins <arnold@skeeve.com>
507
508 Annual sync with glibc.
509
510 * getopt_int.h: New file.
511 * Makefile.am (base_sources): Add it.
512 * getopt.h, getopt.c, getopt1.c: Updated.
513 * regcomp.c, regex.c, regex.h, regex_internal.c, regex_internal.h,
514 regexec.c: Updated.
515
516 Original versions:
517
518 getopt_int.h, 1.1, Tue Mar 9 10:31:19 2004
519 getopt1.c, 1.10, Tue Mar 9 10:35:37 2004
520 getopt.h, 1.21, Fri Mar 19 00:19:32 2004
521 getopt.c, 1.53, Wed Mar 10 23:13:26 2004
522 regcomp.c, 1.87, Mon Dec 6 02:56:42 2004
523 regex.c, 1.126, Fri Jan 30 05:19:58 2004
524 regex.h, 1.33, Thu Nov 18 23:50:57 2004
525 regex_internal.c, 1.46, Thu Jan 6 20:59:49 2005
526 regex_internal.h, 1.57, Mon Dec 27 16:29:05 2004
527 regexec.c, 1.75, Mon Dec 27 16:29:52 2004
528
529 * regex.h: Add check for __APPLE_CC__ and definition of __restrict.
530 * regex.c: Add check for _MSC_VER and include <stdio.h>.
531 * regex_internal.h (_RE_ENABLE_I18N): Change test.
532 (re_realloc): Add check/fix for SunOS 4.1.x.
533 * regex_internal.c (build_wcs_upper_buffer): ifdef label
534 `offsets_needed', add cast in call to `wcrtomb'.
535 * regcomp.c (build_charclass, build_charclass_op): Remove `unsigned'
536 from declarations of `char *' params.
537 (regerror): Remove use of mempcpy.
538 (peek_token): Disallow \s and \S for gawk.
539 (build_charclass): Change decl of `class_name' and use it directly.
540 Nuke variable `name'.
541 (build_charclass_op): Change decl of `class_name' and `extra'.
542
543Thu Jan 6 16:44:32 2005 Arnold D. Robbins <arnold@skeeve.com>
544
545 Improve autoconfiscation stuff for wide character use.
546
547 * builtin.c (do_tolower, do_toupper): Conditionally compile
548 call to `wide_tolower_toupper'.
549 (wide_tolower_toupper): Conditionally compile typedefs and function.
550 * mbsupport.h: Add check for having `wint_t', and `iswlower',
551 `iswupper', `towlower' and `towupper'.
552 * configure.ac (HAVE_WINT_T): Add test.
553 (AC_CHECK_FUNCS): Add `wint_t', `iswlower', `iswupper', `towlower'
554 and `towupper'.
555
556 Unrelated change:
557
558 * hard-locale.h (hard_locale): Add decl of `xmalloc' to prevent
559 redeclaration problems on some compilers.
560
561Wed Jan 5 10:20:17 2005 Arnold D. Robbins <arnold@skeeve.com>
562
563 Update to Bison 2.0.
564
565 * bisonfix.sed: Removed, no longer needed.
566 * Makefile.am (EXTRA_DIST): Removed bisonfix.sed.
567 (awkgram.c): Fix build rule.
568 * awkgram.c: Regenerated.
569
570Tue Jan 4 18:47:56 2005 Arnold D. Robbins <arnold@skeeve.com>
571
572 Update to Automake 1.9.4.
573
574 * alocal.m4, config.guess, config.sub, install-sh: Updated.
575
576Mon Jan 3 14:08:27 2005 Arnold D. Robbins <arnold@skeeve.com>
577
578 Update to Automake 1.9.3.
579
580 * INSTALL, alocal.m4, config.guess, config.sub, depcomp,
581 install-sh, missing, ylwrap: Updated.
582
583Mon Jan 3 11:23:36 2005 Arnold D. Robbins <arnold@skeeve.com>
584
585 Fix obscure issue. ^ in RS should only match at the very
586 beginning of the input. Essentially, the file is one long
587 string. To do this, use the `not_bol' flag in the `struct
588 pattern_buffer'. Thanks to Stepan Kasal for pointing out the
589 problem and to Andreas Schwab for pointing out the mechanism
590 for a solution.
591
592 * awk.h (RE_NEED_START, RE_NO_BOL): New flags for `research'.
593 (IOP_AT_START): New flag for IOBUF.
594 (research): Last parameter is now `flags'.
595 * builtin.c (do_match, sub_common): Change calls to `research'.
596 * eval.c (interpret, match_op): Same.
597 * field.c (re_parse_field): Same.
598 * io.c (spec_setup): Add IOP_AT_START flag.
599 (iop_alloc): Same.
600 (rsrescan): Modify logic to check IOP_AT_START and if not on to
601 add RE_NO_BOL to flags value in call to `research'.
602 (get_a_record): Clear IOP_AT_START upon return from `*matchrec'.
603 (iopflags2str): Add IOP_AT_START to table. Also IOP_CLOSED,
604 which was missing. (Ooops.)
605 * re.c (research): Last paramater is now flags. Modify logic to
606 handle RE_NO_BOL case by setting the right bit initially. Clean
607 up control flow so that it's cleared before returning. If RE_NO_BOL,
608 don't bother with the dfa matcher, as it doesn't have an analogous
609 capability.
610
611Wed Dec 22 12:33:48 2004 Arnold D. Robbins <arnold@skeeve.com>
612
613 For --exec, don't allow x=y assignments where filenames would be.
614 Do allow -v. This is because we assume --exec is used mainly for
615 CGI stuff and we don't want var assigns to affect the code.
616
617 Suggested by Stepan Kasal; motivated by reading about web security.
618
619 * main.c (disallow_var_assigns): New variable.
620 (main): Set the var for --exec.
621 (arg_assign): Check it appropriately.
622
623Sun Dec 19 17:27:09 2004 Arnold D. Robbins <arnold@skeeve.com>
624
625 * builtin.c (do_gensub): Make `global' flag smarter, such that
626 a string numeric constant (e.g., "3") acts like a numeric
627 constant.
628 * node.c (r_force_number): Not really related: Only set NUMCUR
629 if we actually convert some digits.
630
631Sun Dec 19 16:08:50 2004 Arnold D. Robbins <arnold@skeeve.com>
632
633 * dfa.h, dfa.c: Synchronize with what's happening in GNU grep
634 development. Effectively only minor whitespace changes and some
635 slight code motion of ifdefs and includes.
636 * hard-locale.h: New file, extracted from old dfa.c.
637 * Makefile.am (base_sources): Add hard-locale.h.
638
639Sun Dec 19 11:13:45 2004 Arnold D. Robbins <arnold@skeeve.com>
640
641 * io.c (socketopen): Change type of `readle' and `namelen'
642 variables to size_t. For QNX, but a good idea anyway. Thanks
643 to `Anthony' (rz1a@mail.ru).
644
645Mon Dec 6 11:11:22 2004 Arnold D. Robbins <arnold@skeeve.com>
646
647 Undid change of Mar 9 2004, to add gofast patch. It gets things
648 wrong for gawk. This removes the bandaid of ifdef-ing out the
649 main check. Eventually this'll all get straightened out in the
650 GNU grep code.
651
652 * dfa.c (buf_offset): Removed.
653 (SKIP_REMAINS_MB_IF_INITIAL_STATE): Removed use of buf_offset, do
654 free `mblen_buf', `inputwcs'.
655 (match_anychar, match_mb_charset, transit_state_consume_1char,
656 transit_state): Remove use of buf_offset in mblen_buf.
657 (dfaexec): Use `free' and `malloc', not `realloc'.
658
659Mon Dec 6 10:55:37 2004 Fumitoshi UKAI <ukai@debian.or.jp>
660
661 Forwarded from james@nocrew.org, the Debian contact.
662
663 * dfa.c (parse_bracket_exp_mb):
664 1. Build range correctly when IGNORECASE for [a-a] to also get 'A'.
665 2. For [:lower:] and [:upper:], if ignoring case, set type string
666 to "alpha". This parallels code in the regex routines.
667 3. Reset wc1 to EOF when parsing bracket expressions.
668
669Mon Nov 29 18:36:25 2004 Arnold D. Robbins <arnold@skeeve.com>
670
671 * io.c (redirect): When allocating a new struct redirect, set
672 rp->pid to -1, not 0, so that code checking for EOF on an
673 input pipe works correctly.
674
675Thu Nov 25 14:22:41 2004 Stepan Kasal <kasal@ucw.cz>
676
677 * Makefile.am (MAINTAINERCLEANFILES): Add.
678 * version.in (version_string): Use PACKAGE_STRING.
679
680Tue Nov 23 17:27:38 2004 Stepan Kasal <kasal@ucw.cz>
681
682 * re.c: Fix a typo in a comment.
683
684Mon Nov 22 16:47:00 2004 Arnold D. Robbins <arnold@skeeve.com>
685
686 * awkgram.y (yylex): Add lint check for tawk style modifiers on
687 regexes, /.../i and /.../s. Not that it'll help anyone.
688
689Wed Oct 27 14:25:18 2004 Stepan Kasal <kasal@ucw.cz>
690
691 * builtin.c (do_tolower, do_toupper): Fix the wide char handling,
692 especially when the lowercased char doesn't ocuppy the same
693 number of bytes as its uppercase equivalent. Make use of ...
694 (wide_tolower_toupper): ... this new static function.
695
696Mon Oct 25 11:51:14 2004 Arnold D. Robbins <arnold@skeeve.com>
697
698 * builtin.c (bchunk, bchunk_one, cksize): Change type of `olen'
699 to size_t from long. It is the 21st century now, after all...
700 Thanks to Stepan Kasal.
701
702Mon Oct 11 10:49:09 2004 Arnold D. Robbins <arnold@skeeve.com>
703
704 * awkgram.y (yylex): Improve lint warnings for non-decimal constants.
705 * node.c (isnondecimal): Made a little smarter, thanks to Stepan Kasal.
706
707Thu Oct 7 21:59:38 2004 Arnold D. Robbins <arnold@skeeve.com>
708
709 * dfa.c (dfamust): Redo fix of 22 Sep to match code from
710 current GNU grep.
711
712Sun Oct 3 23:06:00 2004 Arnold D. Robbins <arnold@skeeve.com>
713
714 * node.c (isnondecimal): Made smarter, so that 0xEE does
715 register as non-decimal. Added parameter to indicate use of
716 locale's decimal point and changed declaration and callers.
717
718Tue Sep 28 18:38:17 2004 Arnold D. Robbins <arnold@skeeve.com>
719
720 * node.c (isnondecimal): New function, now smarter.
721 * awk.h (isnondecimal): Changed from macro to function.
722
723Wed Sep 22 11:24:46 2004 Arnold D. Robbins <arnold@skeeve.com>
724
725 * dfa.c (dfamust): At end, check results of `malloc'.
726 Based on bug report from Sorav Bansal <sbansal@stanford.edu>
727 for grep.
728
729Mon Sep 20 13:18:18 2004 Arnold D. Robbins <arnold@skeeve.com>
730
731 New --exec option. Needed for gawk CGI scripts to prevent
732 arbitrary options and/or source getting passed in from the web.
733
734 * main.c (optab): New long option, --exec.
735 (main): Catch it. Like -f but end option processing.
736 (usage): Add it to the usage message.
737
738 Thanks to John DuBois and Don Stokes for their input.
739
740 Unrelated:
741
742 * dfa.c (dfaexec): Disabled caching into buffer that bypasses
743 multibyte initialization, since it can get things wrong. Thanks
744 to Andreas Schwab <schwab@suse.de>.
745
746Mon Sep 20 12:59:42 2004 Andreas Schwab <schwab@suse.de>
747
748 * awkgram.y (nextc): Check for end of lexer buffer before
749 advancing ring buffer index.
750
751Wed Sep 8 09:54:53 2004 Arnold D. Robbins <arnold@skeeve.com>
752
753 * main.c (main): Force LC_NUMERIC locale to "C" before parsing
754 the program, since a variable assignment with -v can leave the
755 locale set incorrectly.
756
757 Thanks to Sirix <sirix@poczta.onet.pl> for reporting the problem.
758
759Wed Aug 25 18:55:30 2004 Arnold D. Robbins <arnold@skeeve.com>
760
761 * main.c (UPDATE_YEAR): New constant at top of file, where we
762 won't miss it.
763 (copyleft): Use it.
764
765Sun Aug 22 17:26:39 2004 Stepan Kasal <kasal@ucw.cz>
766
767 Define gawk_mb_cur_max even if there is no mbs support, as
768 ``const int'' and assign 1 to it.
769 This fixes a bug in re.c where #ifdef MBS_SUPPORT was missing.
770
771 * awk.h (gawk_mb_cur_max): Declare.
772 * main.c (gawk_mb_cur_max): Define.
773 * awkgram.y (nextc_is_1stbyte): Without mbs support, define to 1.
774 * builtin.c (index_multibyte_buffer): Define a dummy function
775 when there is no mbs support.
776 * awkgram.y, builtin.c, re.c: Remove some `#ifdef MBS_SUPPORT'.
777
778Sun Aug 15 22:08:04 2004 Arnold D. Robbins <arnold@skeeve.com>
779
780 Import current FreeBSD random.c. Make it work for gawk.
781 Needed for cases where long is more than 32 bits.
782
783 * random.c: Imported from FreeBSD. Header includes tweaked.
784 * random.h: Typdef gawk_uint32_t appropriately and #define uint32_t
785 to it.
786 * configure.ac: Add calls to AC_CHECK_SIZEOF for unsigned int
787 and unsigned long.
788
789 Started with
790 http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/stdlib/random.c
791 Thanks to Andreas Schwab <schwab@suse.de> for the pointer.
792
793Thu Aug 12 13:09:53 2004 Arnold D. Robbins <arnold@skeeve.com>
794
795 * main.c (copyleft): Fix copyright year.
796
797Mon Aug 2 12:18:15 2004 Arnold D. Robbins <arnold@skeeve.com>
798
799 * Release 3.1.4: Release tar file made.
800
801Mon Aug 2 12:17:40 2004 Arnold D. Robbins <arnold@skeeve.com>
802
803 * configure.ac: Fix the hack. Do the sed on `Makefile',
804 not `Makefile.in'. Sigh.
805
806Sun Aug 1 14:48:30 2004 Arnold D. Robbins <arnold@skeeve.com>
807
808 * configure.ac: MAJOR HACK: At end, remove version.c from Makefile.in
809 variable `CONFIG_CLEAN_FILES' so that `make distclean' doesn't
810 remove version.c.
811
812Mon Jul 19 17:07:27 2004 Arnold D. Robbins <arnold@skeeve.com>
813
814 * config.guess, config.sub: Updated from Savannah CVS.
815
816Fri Jul 16 10:59:07 2004 Arnold D. Robbins <arnold@skeeve.com>
817
818 * re.c (make_regexp): Bracket code using `gawk_mb_cur_max'
819 inside `#ifdef MBS_SUPPORT'.
820
821Thu Jul 15 12:36:25 2004 Arnold D. Robbins <arnold@skeeve.com>
822
823 * dfa.c (parse_bracket_exp_mb): If doing case folding,
824 include the other case for regular characters inside [...].
825
826 * re.c (make_regexp): Smarten up handling of IGNORECASE,
827 particularly for multibyte character sets. Sigh.
828
829Wed Jul 14 16:25:23 2004 John Haque <mary1john8@earthlink.net>
830
831 * eval.c (interpret): For `Node_K_return', use `copynode'
832 and not `dupnode' for non-PERM, non-TEMP values.
833 (func_call): Don't add TEMP flag to returned value.
834
835 These two fix a problem uncovered by the July 8 change in
836 `assoc_lookup'.
837
838Wed Jul 14 16:14:09 2004 Arnold D. Robbins <arnold@skeeve.com>
839
840 * awkgram.y (node_common): Add check `lexeme >= lexptr_begin',
841 from valgrind run.
842
843Wed Jul 14 16:00:51 2004 John Haque <mary1john8@earthlink.net>
844
845 * io.c (rsrescan): Fix off by one error at end of record.
846
847Thu Jul 8 16:59:51 2004 Stepan Kasal <kasal@ucw.cz>
848
849 * awkgram.y (output_redir): Make sure not to dereference NULL
850 pointer. The bug was triggered by the following code:
851
852 gawk 'BEGIN{print "date" |& getline}'
853
854 No test case created, beacuse of the following:
855 Correct interpretation involves executing "1" or "0" -- as the user
856 may have defined this, we would have to override this in the test
857 script. It's not worth the hassle.
858
859Thu Jul 8 12:59:49 2004 Arnold D. Robbins <arnold@skeeve.com>
860
861 * awk.h (load_casetable): Name changed from `load_ignorecase'.
862 * eval.c (load_casetable): Name changed from `load_ignorecase'.
863 Fix all uses.
864
865Thu Jul 8 12:32:13 2004 John Haque <mary1john8@earthlink.net>
866
867 * awkgram.y (get_src_buf): Fix off-by-one error to avoid "does not end
868 in newline" messages.
869 * array.c (assoc_lookup): Small performance hack: for TEMP subs nodes,
870 use its string memory for ahname.
871 * ext.c (get_actual_argument): Minor code cleanup.
872 * builtin.c (do_lshift, do_rshift, do_and, do_or, do_xor, do_compl):
873 fixed to issue "non-numeric argument" lint warnings before using
874 `force_number'.
875
876Mon Jun 21 16:53:35 2004 Arnold D. Robbins <arnold@skeeve.com>
877
878 More changes from John Haque to rationalize extension functions.
879
880 * awk.h (get_curfunc_arg_count): Name changed from
881 `get_curfunc_parm_count'.
882 * eval.c (get_curfunc_arg_count): Ditto, body redone to count actual
883 args passed at call time.
884 * ext.c (get_argument): Update range check.
885 (get_actual_argument): Simplify the code.
886
887Mon Jun 14 14:01:16 2004 Arnold D. Robbins <arnold@skeeve.com>
888
889 Changes from John Haque and ADR to rationalize extension functions.
890
891 * awk.h (check_special, get_curfunc_parm_count, get_actual_argument):
892 new function declarations.
893 (get_scalar_argument, get_array_argument): new macros.
894 * awkgram.y (check_special): new function.
895 (yylex): Use `check_special' to search `tokentab'.
896 (dump_funcs): Always count functions, in order to get dynamic ones.
897 Removed bogus use of `static' on `tab' variable.
898 * eval.c (struct fcall): Change type of `count' to `size_t'.
899 (get_curfunc_parm_count): New function.
900 (push_args): Set `r->rnode' to NULL for local variable.
901 * ext.c (make_builtin): Add sanity checking for presence and
902 name of new function, and that it's not a redefinition.
903 (get_argument): Check that requested arg is within range of actual
904 number of parameters. Also clean up logic for Node_var_new,
905 Node_var_array, Node_array_ref.
906 (get_actual_argument): New function.
907 * profile.c (pp_builtin): Better handling of dynamic extension function.
908
909Sun Jun 13 14:32:22 2004 Arnold D. Robbins <arnold@skeeve.com>
910
911 * io.c (redirect): Conditionalize checking for process recovery
912 on `#ifdef PIPES_SIMULATED'. Needed for MS-DOS and VMS.
913 * builtin.c (tmp_integer): Change bracketing of magic test to
914 `#ifdef HAVE_UINTMAX_T' which is more general and more correct.
915
916Wed Jun 9 21:36:01 2004 Arnold D. Robbins <arnold@skeeve.com>
917
918 * re.c (make_regexp): Add dfa matching into IGNORECASE handling.
919
920Tue Jun 8 15:38:56 2004 Arnold D. Robbins <arnold@skeeve.com>
921
922 * awk.h (casetable): Remove `const'.
923 * eval.c (casetable): Remove `const'.
924 (load_ignorecase): New function. Loads locale-correct values in
925 upper 128 bytes.
926 (set_IGNORECASE): Call `load_ignorecase'.
927
928Tue Jun 8 14:04:19 2004 Arnold D. Robbins <arnold@skeeve.com>
929
930 * awkgram.y (get_src_buf): Make sure that value from
931 `optimal_bufsize' is reasonable. Increase it if not.
932
933Tue Jun 8 13:54:28 2004 John E. Haque <mary1john8@earthlink.net>
934
935 * awkgram.y (statement:LEX_FOR): Fix bug in loop to `delete a'
936 optimization.
937 * io.c (format_tree): Check for out of range values for
938 positional specifiers.
939
940Mon Jun 7 17:02:48 2004 Arnold D. Robbins <arnold@skeeve.com>
941
942 * builtin.c (tmp_integer): Bracket the magic test inside
943 `#ifndef VMS'.
944
945 * awk.h (child_catcher): Remove declaration.
946 * main.c (main): Remove `signal' calls for SIGCLD, SIGCHLD.
947 * io.c (child_died, child_signo, child_catcher): Removed.
948 (get_a_record): Remove code checking for death of child.
949 (redirect): If `rp' matches and is at EOF and type is input
950 pipe, and `rp->pid' is not -1, call `wait_any' to reap the
951 child. This is a heuristic, but it works pretty well.
952
953Sun Jun 6 18:35:17 2004 Arnold D. Robbins <arnold@skeeve.com>
954
955 * io.c (get_a_record): Restore use of `memmove' instead of
956 memcpy. Otherwise some tests break on some systems. We think.
957 (child_died): Don't reset signal handler; breaks on some S5 systems.
958 (get_a_record): Reset handler if child_died. Still flaky on Solaris.
959 * configure.ac (version.c): Made from version.in again, for
960 non-Unix systems.
961 * Makefile.am (base_sources): Add version.c back.
962 * version.in: Include config.h for definition of const.
963 * main.c (version_string): Add back declaration, don't
964 include "version.i".
965 (main): Don't install child_catcher on Sun. (HACK)
966
967Thu Jun 3 14:06:06 2004 Arnold D. Robbins <arnold@skeeve.com>
968
969 * main.c (version_string): Removed declaration, since
970 version.i is included directly.
971 * version.in: Removed test for definition of const.
972
973Tue Jun 1 19:23:53 2004 Stepan Kasal <kasal@ucw.cz>
974
975 * Makefile.am (base_sources): Don't mention version.c, so that
976 it doesn't get distributed.
977 * po/POTFILES.in: remove version.c
978 * configure.ac: Create version.i from version.in.
979 * main.c: include version.i.
980
981Tue Jun 1 18:33:32 2004 Arnold D. Robbins <arnold@skeeve.com>
982
983 Fix problem reported by Stephen Marchant <Stephen.Marchant@Cognex.com>
984 on Thu, 30 Oct 2003 13:11:42 -0500.
985
986 * regex_internal.h (re_realloc): Allow for SunOS pre-Standard C
987 `realloc' which doesn't accept NULL pointers.
988 * awk.h (erealloc): Same.
989
990 Unrelated. Change suggested by Peter Sobisch <petersob@gmx.net>, have
991 PROCINFO["version"] be the version of gawk:
992
993 * main.c (load_procinfo): Add in version.
994
995 Unrelated: Avoid warning:
996
997 * main.c (main): Cast calls to `bindtextdomain' and `textdomain' to
998 void. Avoids diagnostic with `configure --disable-nls'.
999 * dfa.c (check_matching_with_multibyte_ops): Remove unneeded nested
1000 #ifdef, per Scott Deifik (scottd@amgen.com). Also fix some spelling
1001 errors in comments.
1002
1003Tue Jun 1 18:26:45 2004 Paul Eggert <eggert@twinsun.com>
1004
1005 Fix a bug reported by Mike Romaniw <msr@micromonumental.com>
1006 to bug-gnu-utils on 2003-09-27: compl(compl(0xf0f)) returned 0xfff
1007 on hosts with 64-bit uintmax_t and 64-bit IEEE-764 double, due to
1008 rounding errors.
1009
1010 * doc/gawk.texi (Bitwise Functions): Leading nonzero bits are
1011 removed in order to fit the result into a C 'double' without rounding
1012 error.
1013 * builtin.c: Include <float.h> if available.
1014 (FLT_RADIX, FLT_MANT_DIG, DBL_MANT_DIG): Define if not already defined.
1015 (AWKSMALL_MANT_DIG, AWKNUM_MANT_DIG, AWKNUM_FRACTION_BITS): New macros.
1016 (tmp_integer): New function.
1017 (do_lshift, do_rshift, do_and, do_or, do_xor, do_compl): Use them.
1018
1019Tue Jun 1 17:40:47 2004 Stepan Kasal <kasal@ucw.cz>
1020
1021 * eval.c (push_args): Set var_value to Nnull_string for
1022 local variables.
1023
1024Mon May 31 11:49:20 2004 Stepan Kasal <kasal@ucw.cz>
1025
1026 * replace.c: #undef DEBUG before including mktime.c, it has
1027 different meaning there.
1028
1029Mon May 31 08:25:30 2004 Arnold D. Robbins <arnold@skeeve.com>
1030
1031 * array.c (get_actual): Add extra error message for `delete f'
1032 inside body of function `f'.
1033
1034Mon May 3 09:53:34 2004 Arnold D. Robbins <arnold@skeeve.com>
1035
1036 * Makefile.in, */Makefile.in: Updated to automake 1.8.4.
1037 * config.guess, config.sub: Same.
1038 * aclocal.m4, depcomp, install-sh: Same.
1039
1040Mon May 3 09:24:45 2004 Arnold D. Robbins <arnold@skeeve.com>
1041
1042 * configure.ac: Look for missing `strtoul'.
1043 * replace.c: Include missing_d/stroul.c if not HAVE_STRTOUL.
1044 * io.c (devopen): Use `strtoul' instead of `strtod' for
1045 extracting fd number from "/dev/fd/N". (Thanks to Jim Meyering.)
1046 * field.c (set_FIELDWIDTHS): Use `strtoul' instead of `strtod'
1047 when parsing FIELDWIDTHS values. (Thanks to Jim Meyering.)
1048
1049Mon Apr 19 20:12:57 2004 Arnold D. Robbins <arnold@skeeve.com>
1050
1051 * Makefile.in, */Makefile.in: Updated to automake 1.8.3.
1052 * config.guess, config.sub: Same.
1053
10542004-03-18 Stepan Kasal <kasal@ucw.cz>
1055
1056 * eval.c (make_scalar): Comment clarification.
1057
1058 * array.c (get_actual): Remove the condition ``canfatal''
1059 before ``cant_happen()''; if the data are consistent, we
1060 simply cannot get there with a non-func Node_param_list,
1061 no matter whether we are called via get_array or not.
1062
1063 * awkgram.y (variable): Make one longer message, to help translators.
1064
1065Tue Mar 9 17:34:10 2004 Arnold D. Robbins <arnold@skeeve.com>
1066
1067 Adapted `gofast' patch from Redhat Enterprise version of grep
1068 to current dfa.c.
1069
1070 * dfa.c (buf_offset): New variable.
1071 (SKIP_REMAINS_MB_IF_INITIAL_STATE): Modified to use it, don't
1072 free `mblen_buf', `inputwcs'.
1073 (match_anychar, match_mb_charset, transit_state_consume_1char,
1074 transit_state): Use buf_offset in mblen_buf.
1075 (dfaexec): Realloc things instead of free and malloc.
1076
1077Thu Mar 4 16:46:55 2004 Arnold D. Robbins <arnold@skeeve.com>
1078
1079 * configure.ac (AC_FUNC_MBRTOWC): Added.
1080 (AC_CHECK_FUNCS): Removed `mbrtwoc'.
1081 (REGEX_MALLOC): Removed. Not needed for new regex* routines.
1082
1083 * re.c (research): Removed comment and check for return of -2
1084 since that was for old regex using alloca or REGEX_MALLOC.
1085
1086Wed Mar 3 17:10:16 2004 Arnold D. Robbins <arnold@skeeve.com>
1087
1088 * io.c (close_one): Don't close stdout or stderr; can happen if
1089 /dev/stdout or /dev/stderr are used in redirection and all the
1090 open files get used.
1091
1092Sun Feb 29 12:17:37 2004 Arnold D. Robbins <arnold@skeeve.com>
1093
1094 * regcomp.c (build_charclass, build_charclass_op): Change type of
1095 `class_name' parameter to `const char *' from `const unsigned char *'
1096 and adjust callers.
1097
1098Thu Feb 26 15:20:22 2004 Arnold D. Robbins <arnold@skeeve.com>
1099
1100 * awkgram.y (get_src_buf): Rewritten to better manage input and
1101 supplying newlines on command line programs. Fixes problems reading
1102 source files on Cygwin.
1103
1104 Unrelated fixes from mary1john8@earthlink.net:
1105
1106 * node.c (format_val): For no malloc case, free s->stptr if necessary.
1107 * io.c (nextfile): Add missing call to `unref(FILENAME_node->var_value)'
1108 for no files case.
1109 (close_redir): Remove file from redirection list even if fp is
1110 stdout or stderr.
1111
1112Tue Feb 24 12:11:34 2004 Arnold D. Robbins <arnold@skeeve.com>
1113
1114 * regex_internal.c (build_wcs_upper_buffer): Enclose `offsets_needed'
1115 label in `#ifdef _LIBC' to silence `unused label' compiler warning.
1116
1117Tue Feb 24 11:57:18 2004 Nelson H.F. Beebe <beebe@math.utah.edu>
1118
1119 * regcomp.c (parse_expression): Add cast to (unsigned char *) in calls
1120 to `build_charclass_op'.
1121 * regex_internal.c (build_wcs_buffer): Add cast to char* in call to
1122 `wcrtomb'.
1123 * regex_internal.h (bitset_not, bitset_merge, bitset_not_merge,
1124 bitset_mask, re_string_char_size_a, re_string_wchar_at,
1125 re_string_elem_size_at): Change to use prototypes.
1126 (re_string_char_size_at, re_string_wchar_at, re_string_elem_size_at):
1127 Declare as `internal_function'.
1128
1129 * Makefile.am: Add rule to make .i files. This assists in debugging.
1130 * awk.h (m_tree_eval): Add casts to NULL. (Some compilers are just
1131 dumb. ADR)
1132
1133Mon Feb 23 15:58:39 2004 Arnold D. Robbins <arnold@skeeve.com>
1134
1135 Clean up occupied process slots of children that have died:
1136
1137 * awk.h (child_catcher): New function, declare it.
1138 * main.c (main): Catch SIGCHLD/SIGCLD with `child_catcher'.
1139 * io.c (child_died): New static variable.
1140 (child_catcher): New function, sets `child_died', reinstalls self
1141 as signal handler.
1142 (close_rp): New function: isolates actual fp/iop closing logic.
1143 (close_redir): Call `close_rp'.
1144 (get_a_record): Check `child_died' and call `wait_any(0)' if so.
1145 Add descriptive comment.
1146
1147 Unrelated clean up:
1148
1149 * eval.c (fcalls): Renamed from `fcall_list'. All uses changed.
1150 (pop_fcall, push_args, dump_fcall_stack): Adjusted to use indexing
1151 on `fcalls' instead of a pointer into it. Avoids hassles if `fcalls'
1152 is realloc-ed during recursive tree_evals. Thanks to BWK.
1153
1154 * config.guess, config.sub: Updated from Savannah.
1155
11562004-02-19 gettextize <bug-gnu-gettext@gnu.org>
1157
1158 * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.14.1.
1159
1160Wed Feb 18 12:40:09 2004 Arnold D. Robbins <arnold@skeeve.com>
1161
1162 * awkgram.y (rule): Use `msg' not `warning' for `must have an
1163 an action part' message. `warning' is wrong, since it's a real error.
1164
1165Mon Feb 16 12:17:39 2004 Arnold D. Robbins <arnold@skeeve.com>
1166
1167 * main.c, eval.c, builtin.c: Change test for `#ifdef HAVE_LOCALE_H'
1168 to `#if ENABLE_NLS && defined(HAVE_LOCALE_H)' so that builds with
1169 `configure --disable-nls' will actually work on non-glibc systems.
1170
1171Thu Feb 12 02:05:34 2004 Stepan Kasal <kasal@ucw.cz>
1172
1173 Lots of misc changes from Stepan Kasal integrated.
1174
1175 * array.c: Various variables and parameters of static functions
1176 changed from int to long, in order to prevent overflow.
1177
1178 * eval.c (make_scalar): New function; takes care of everything
1179 that has to be done when a node of type Node_var_new or
1180 Node_array_ref changes to a scalar variable.
1181 (tree_eval, get_lhs): Call it.
1182 (tree_eval): From now on, tree_eval(NULL) doesn't work;
1183 it reports an internal error.
1184 * awk.h (m_tree_eval): Likewise for the two macro versions.
1185 * awkgram.y (statement): Make sure the Node_K_return's lnode is
1186 always the return value, never NULL.
1187
1188 * Makefile.am (install-exec-hook, uninstall-links): Make use of
1189 $(VERSION).
1190 (INCLUDES): Renamed to AM_CPPFLAGS.
1191 (AM_CPPFLAGS): The file libintl.h is generated in the
1192 build subdirectory intl, not in the directory $(srcdir)/intl.
1193 (diffout): New target is an alias for ``make -C test diffout.''
1194 * awklib/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS.
1195
1196 * README_d/README.hpux: Change the whitespace in the appended patch,
1197 so that it applies to the current source.
1198 * posix/gawkmisc.c: Change a tab to a space (needed for the above).
1199
1200 Make version control more in the style of current autotools:
1201
1202 * configure.ac: Remove obsolete versions of macros:
1203 AM_INIT_AUTOMAKE doesn't need any parameters.
1204 AC_OUTPUT shouldn't have any parameters either.
1205 Its parameters go to a new macro: AC_CONFIG_FILES.
1206 AC_CONFIG_HEADERS moved near the end of the file.
1207 * configure.ac: Add [version.c:version.in] to AC_CONFIG_FILES
1208 * version.in: Modify for autoconf substitutions.
1209 * version.c: Remove, it's generated at configure time now.
1210 * fixvers, patchlev.h, unsupported/tandem/ptchlvl.h: Nuke and ...
1211 * Makefile.am, main.c: ... forget them.
1212
1213Mon Feb 9 12:57:00 2004 Arnold D. Robbins <arnold@skeeve.com>
1214
1215 * awk.h builtin.c eval.c field.c (HUGE): Changed to `UNLIMITED'.
1216 Avoids possible conflict with constant in svid-mode math.h. Thanks to
1217 Roman.Putanowicz@iecn.u-nancy.fr for pointing out the problem.
1218
1219Fri Feb 6 12:09:55 2004 Arnold D. Robbins <arnold@skeeve.com>
1220
1221 * configure.ac: Check for `wctype', `wcscoll' and `iswctype'.
1222 * mbsupport.h: New file. Merges and centralizes testing for MBS support.
1223 * Makefile.am (base_sources): Add mbsupport.h to list.
1224 * dfa.c, dfa.h, awk.h (MBS_SUPPORT): Include "mbsupport.h" and use the
1225 test there.
1226 * regex_internal (RE_ENABLE_I18N): Same.
1227
1228 * Makefile.am (CLEANFILES): Added.
1229
1230Thu Feb 5 18:05:12 2004 Arnold D. Robbins <arnold@skeeve.com>
1231
1232 * configure.ac (HAVE_WCTYPE_T): New test code added.
1233 * dfa.h (wctype_t): Define if system doesn't. Needed here too
1234 for other files that include dfa.h.
1235 * dfa.c (wctype_t): Define if system doesn't.
1236 (lex): Manually fill in arrays used for char class range testing
1237 so will work on c89 and older compilers.
1238 (parse_bracket_exp_mb): Split up an assignment to avoid type complaints.
1239
1240 * main.c (main): When checking for `close_io' failure, only set
1241 `exit_val' to 1 if not already exiting.
1242
1243 * regcomp.c (regerror): Remove use of mempcpy. Generates too
1244 many compiler warnings.
1245 * configure.ac (AC_CHECK_FUNCS): Don't bother checking for it.
1246
1247Wed Feb 4 17:34:47 2004 Arnold D. Robbins <arnold@skeeve.com>
1248
1249 * getopt.h (__THROW): Only define it if C++. The __GNU_PREREQ
1250 macro is a major headache.
1251
12522004-02-02 Paolo Bonzini <bonzini@gnu.org>
1253
1254 * regexec.c (check_matching): Add P_MATCH_FIRST parameter.
1255 (re_search_internal): Pass new parameter to check_matching.
1256 (check_matching): Unless a parenthesized group is found at the
1257 beginning of the regexp, advance P_MATCH_FIRST until we entered
1258 a state different from the initial state.
1259
1260Mon Feb 2 15:52:37 2004 Arnold D. Robbins <arnold@skeeve.com>
1261
1262 * re.c (research): Change last param to re_search to pass
1263 NULL if `need_start' is false. May give us a marginal speed gain.
1264
1265Thu Jan 29 17:04:51 2004 Arnold D. Robbins <arnold@skeeve.com>
1266
1267 * builtin.c (sub_common): Fix logic for `&' in replacement for
1268 multibyte case. Simplify code a bit.
1269
1270Tue Jan 20 10:41:45 2004 Arnold D. Robbins <arnold@skeeve.com>
1271
1272 * configure.ac: Add check for `memmove'.
1273 * replace.c: Include missing_d/memmove.c if don't have `memmove'.
1274
1275Sun Jan 18 12:01:29 2004 Arnold D. Robbins <arnold@skeeve.com>
1276
1277 * builtin.c (sub_common): Add comment and support for 2001 POSIX
1278 behavior when --posix in effect. The masses have been
1279 clamoring for this one.
1280
12812004-01-16 gettextize <bug-gnu-gettext@gnu.org>
1282
1283 * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.13.1.
1284 * intl/*: Updated to 0.13.1.
1285
1286Fri Jan 16 08:16:38 2004 Arnold D. Robbins <arnold@skeeve.com>
1287
1288 * getopt.h, getopt.c, getopt1.c: Synced to GLIBC version:
1289 getopt.c: 1.51
1290 getopt.h: 1.18
1291 getopt1.c: 1.9
1292
1293Thu Jan 15 15:28:48 2004 Arnold D. Robbins <arnold@skeeve.com>
1294
1295 Here we go again:
1296
1297 * regcomp.c, regex.h, regex.c, regex_internal.h, regex_internal.c,
1298 regexec.c: Sync to GLIBC version, but with bug fixes. GLIBC
1299 CVS versions:
1300
1301 regcomp.c: 1.76
1302 regexec.c: 1.55
1303 regex.c: 1.125
1304 regex.h: 1.30
1305 regex_internal.c: 1.39
1306 regex_internal.h: 1.45
1307 regexec.c: 1.55
1308
1309 * acinclude.m4: Removed, not needed for automake 1.8.x.
1310 * configure.ac: Updated to autoconf 2.59.
1311
1312 Everything else updated to automake 1.8x and autoconf 2.59.
1313
1314Wed Jan 14 14:26:36 2004 Arnold D. Robbins <arnold@skeeve.com>
1315
1316 * dfa.c, dfa.h: Updated manually with most of the changes in
1317 grep 2.5.1. That version lost the ability to match newlines
1318 in the data, so the merge had to be done by hand. Sigh.
1319
13202004-01-12 Paolo Bonzini <bonzini@gnu.org>
1321
1322 ALLOCA patch from
1323 http://sources.redhat.com/ml/libc-alpha/2004-01/msg00099.html
1324 added.
1325
1326 * regcomp.c [_LIBC && !RE_ENABLE_I18N]:
1327 Drop code to support this, it is never true.
1328 (build_range_exp) [!_LIBC]: Do not create a range
1329 in MBCSET for a single-byte character set.
1330 (build_range_exp) [_LIBC]: Do not create a range
1331 in MBCSET for a single-byte character set without
1332 collation elements.
1333 (init_dfa): Do not conditionalize on _LIBC, it
1334 just makes the code less clear.
1335 (parse_bracket_exp): Use NON_MATCH variable in
1336 addition to "mbcset->non_match", not as an
1337 alternative.
1338 (build_charclass_op): rename NOT parameter to
1339 NON_MATCH, use it instead of declaring a variable.
1340 (parse_bracket_exp) [!_LIBC]: Pass NULL for MBCSET
1341 if the character set is single-byte.
1342
1343Wed Jan 7 15:23:04 2004 Arnold D. Robbins <arnold@skeeve.com>
1344
1345 * awkgram.y (mk_rexp): Set n->re_cnt to 1. Makes reinstated
1346 dfa code actually take effect! Don't know how I missed this.
1347
1348 Unrelated: sync regex code to glibc.
1349
1350 * regcomp.c, regex.h, regex.c, regex_internal.h, regex_internal.c,
1351 regexec.c: Sync to GLIBC version, but with bug fixes. GLIBC
1352 CVS versions:
1353
1354 regcomp.c: 1.74
1355 regex.c: 1.124
1356 regex.h: 1.30
1357 regex_internal.c: 1.39
1358 regex_internal.h: 1.43
1359 regexec.c: 1.55
1360
1361 * regcomp.c (peek_token): Temporarily, we hope, disable \s and \S
1362 operators. Too much trouble to document right now.
1363 * dfa.c (lex): Add code for \s and \S but disable it until
1364 next release.
1365
1366Wed Dec 24 15:28:57 2003 Arnold D. Robbins <arnold@skeeve.com>
1367
1368 * eval.c (r_tree_eval): For Node_assign_concat, add
1369 call `free_temp(r)'. Thanks to mary1john8@earthlink.net.
1370
1371Mon Dec 1 10:25:52 2003 Arnold D. Robbins <arnold@skeeve.com>
1372
1373 CONSTVAL not needed if we test PERM instead. Thanks to
1374 mary1john8@earthlink.net. See test/concat3.awk.
1375
1376 * awk.h [CONSTVAL]: Removed.
1377 * eval.c (flag2str): Removed CONSTVAL from table.
1378 (r_tree_eval): For Node_assign_concat, it's enough to check
1379 if l->flags has PERM clear.
1380 * awkgram.y (yylex): Removed use of CONSTVAL for YSTRING and YNUMBER.
1381
1382Mon Nov 3 16:33:26 2003 Arnold D. Robbins <arnold@skeeve.com>
1383
1384 * awkgram.y (get_src_buf): Replace `memmove' with `memcpy' for
1385 marginal portability gain to older systems.
1386 * io.c (get_a_record): Ditto.
1387
1388Sun Nov 2 15:59:27 2003 Arnold D. Robbins <arnold@skeeve.com>
1389
1390 * awk.h [CONSTVAL]: Renamed from `STRCONST'.
1391 * eval.c (flags2str): Fix in table.
1392 (r_tree_eval): For Node_assign_concat, check for the flag for
1393 both left and right hand sides. Also add a `force_string' call
1394 for the right hand side and the left hand side.
1395 * awkgram.y (yylex): Change flag value for YSTRING and add use
1396 of flag for YNUMBER.
1397
1398Wed Oct 29 14:23:29 2003 Arnold D. Robbins <arnold@skeeve.com>
1399
1400 * awk.h [STRCONST]: New flag value.
1401 * eval.c (flags2str): Add it to table.
1402 (r_tree_eval): For Node_assign_concat, check for the flag so that
1403 we don't clobber string constants given:
1404 s = ""
1405 s = s something
1406 * awkgram.y (yylex): For YSTRING, set STRCONST flag.
1407
1408Tue Oct 28 18:00:00 2003 Arnold D. Robbins <arnold@skeeve.com>
1409
1410 Force SUBSEP to always have a string value. Per bug report
1411 from mary1john8@earthlink.net.
1412
1413 * awk.h (NODETYPE): New type, Node_SUBSEP.
1414 (set_SUBSEP): Add declaration.
1415 * awkgram.y (isnoeffect, isassignable): Add Node_SUBSPEP case.
1416 * array.c (set_SUBSEP): New function.
1417 * eval.c (nodetypes): Add Node_SUBSEP.
1418 (r_tree_eval, r_get_lhs): Add code for Node_SUBSEP.
1419 * main.c (varinit): Use Node_SUBSEP as type for SUBSEP.
1420 * profile.c (tree_eval, pp_lhs, is_scalar, prec_level): Handle
1421 Node_SUBSEP.
1422
1423Tue Oct 7 09:26:33 2003 Arnold D. Robbins <arnold@skeeve.com>
1424
1425 * awk.h (NODETYPE): New member `Node_assign_concat'.
1426 * awkgram.y (exp): Look for case of `x = x y' and if so, create a
1427 Node_assign_concat.
1428 * eval.c (interpret): Add case for Node_assign_concat.
1429 * profile.c (prec_level): Ditto.
1430 (tree_eval): Ditto. For variables, call new function `vname' to
1431 print name; handles varname field for -v variables, which end up
1432 including the value.
1433 (vname): New function.
1434
1435Wed Sep 24 17:32:31 2003 Arnold D. Robbins <arnold@skeeve.com>
1436
1437 Speed up `avoid_dfa' kludge, at least a little:
1438
1439 * awk.h (struct Regexp): Add `has_anchor' member. Make it and
1440 `dfa' member shorts; keeps space the same.
1441 * re.c (make_regexp): Set `has_anchor' member correctly.
1442 (avoid_dfa): Test for `has_anchor' member instead of searching
1443 for it each time.
1444
1445Sun Sep 21 18:34:32 2003 Arnold D. Robbins <arnold@skeeve.com>
1446
1447 * builtin.c (state): Only needs to be 256 bytes, initstate() can't
1448 use any more than that. Well whadayaknow.
1449 (do_rand, do_srand): Call `setstate' after calling `initstate'.
1450
1451Tue Sep 16 15:44:29 2003 Arnold D. Robbins <arnold@skeeve.com>
1452
1453 * eval.c (interpret): For Node_K_switch, add kludge_need_start stuff
1454 as used in `match_op'. Sigh.
1455 * re.c (make_regexp): Add `no_dfa' variable, which is true if
1456 GAWK_NO_DFA exists in the environment. This enables run time
1457 testing of things with/without the dfa matcher.
1458
1459Mon Sep 15 18:36:38 2003 Arnold D. Robbins <arnold@skeeve.com>
1460
1461 After much soul searching, reinstated old dfa code. The performance
1462 of the new regex is just disastrous. Sigh.
1463
1464 * awk.h (re_cnt): Reinstated old definition.
1465 (struct Regexp): Added `dfareg' and `dfa' members.
1466 (make_regexp): New last parameter in function, changed decl.
1467 (avoid_dfa): Added declaration.
1468 * awkgram.y (regexp, mk_rexp): Added use of `re_cnt'. Fixed call
1469 to `make_regexp'.
1470 * Makefile.am: Add dfa.h and dfa.c.
1471 * eval.c (match_op): Complexified: added call to `avoid_dfa' and
1472 `kludge_need_start' variable where used to pass FALSE as last parameter
1473 of research().
1474 * field.c (set_FS): Fixed call to `make_regexp'.
1475 * io.c (get_a_record, set_RS): Fixed calls to `make_regexp'.
1476 * re.c (make_regexp): Added last paramter (`dfa') to function.
1477 Complexified the code.
1478 (re_update): Fixed call to `make_regexp'.
1479 (research): Complexified the code, added calls to dfa stuff.
1480 (dfaerror): New function.
1481 (re_update): Fixed call to `make_regexp'.
1482 (avoid_dfa): New function.
1483
1484Tue Sep 9 15:57:38 2003 Arnold D. Robbins <arnold@skeeve.com>
1485
1486 * awkgram.y (get_src_buf): Fix calculation of `offset' when shifting
1487 source lines around. In general, improve handling of things when
1488 moving the source code line around. What a mess this code is.
1489
1490Mon Sep 8 19:08:55 2003 Arnold D. Robbins <arnold@skeeve.com>
1491
1492 * eval.c (fmt_ok): Make provision for %F format and printf %'f flag
1493 here too.
1494
14952003-07-23 Christophe Bisiere <bisiere@univ-tlse1.fr> (tiny change)
1496
1497 * posix/regex.h (RE_TRANSLATE_TYPE): Define it to "unsigned char,"
1498 to avoid problems at hosts with signed char.
1499 * posix/regexec.c (re_search_internal): Don't say
1500 "unsigned RE_TRANSLATE_TYPE."
1501
1502Thu Aug 28 11:09:41 2003 Arnold D. Robbins <arnold@skeeve.com>
1503
1504 * io.c (nextfile): Change use of variable `files' to make it
1505 clearer that it's a boolean flag.
1506
1507Tue Aug 26 22:58:15 2003 Arnold D. Robbins <arnold@skeeve.com>
1508
1509 * io.c (useropen): Add `defined (HAVE_GETGROUPS)' as first test
1510 in `#ifdef'. Brings things in sync with same test in main.c and awk.h.
1511
1512Tue Aug 26 22:49:37 2003 Arnold D. Robbins <arnold@skeeve.com>
1513
1514 * dbug.h: New file.
1515
1516 * array.c, awkgram.y, builtin.c, eval.c, ext.c, field.c, io.c,
1517 main.c, msg.c, node.c, profile.c, re.c: Converted to use
1518 Fred Fish's `dbug' library. By default compiled out, thus
1519 not affecting speed.
1520
1521 For the nonce, the `dbug' library itself is not shipped with
1522 gawk, since I expect no-one else but me to be using it.
1523
1524Thu Aug 21 23:15:36 2003 Arnold D. Robbins <arnold@skeeve.com>
1525
1526 * awkgram.y (numfiles): Change extern decl to long, to match what's
1527 in main.c. Keeps things working on 64-bit systems. Thanks to bug
1528 report from Jan Oravec <jan.oravec@6com.sk>.
1529
1530Wed Aug 20 14:53:47 2003 Arnold D. Robbins <arnold@skeeve.com>
1531
1532 * eval.c (genflags2str): Move test for out-of-space inside test
1533 for is the bit set.
1534
1535Mon Aug 11 11:26:51 2003 Arnold D. Robbins <arnold@skeeve.com>
1536
1537 * regcomp.c (parse_bracket_exp): If `build_charclass' fails, just pass
1538 its value on as the return value.
1539
1540Sun Aug 10 16:59:14 2003 Arnold D. Robbins <arnold@skeeve.com>
1541
1542 * regcomp.c (build_range_exp): Make sure we don't
1543 get WEOF on range characters.
1544
1545Tue Aug 5 21:49:32 2003 Arnold D. Robbins <arnold@skeeve.com>
1546
1547 * array.c (get_actual): In `case Node_param_list' add test for
1548 `&& (symbol->flags & FUNC) == 0' to the if.
1549
1550Sun Jul 13 18:28:38 2003 Arnold D. Robbins <arnold@skeeve.com>
1551
1552 Further bug fix:
1553
1554 * awkgram.y (variable): Give the new variable an lnode
1555 of Nnull_string if it's not an array, even if it is
1556 a Node_var_new.
1557
1558Fri Jul 11 09:32:21 2003 Arnold D. Robbins <arnold@skeeve.com>
1559
1560 Bug fix:
1561
1562 * eval.c (r_tree_eval): For Node_array_ref, set
1563 tree->orig_array->var_value to Nnull_string too.
1564
1565 Unrelated i18n and POSIX change:
1566
1567 * configure.ac: Add check for local printf supporting %F format.
1568 * awk.h (loc): New variable declaration.
1569 * main.c (loc): Defined.
1570 (main): Call `localeconv' to set loc.
1571 * io.c (format_tree): Add support for printf quote flag, %'d for
1572 decimal formats (not %e, %E), adds thousand separator into value.
1573
15742003-07-10 Paul Eggert <eggert@twinsun.com>
1575
1576 * io.c (two_way_open): If /bin/sh cannot be executed, exit
1577 with status 126 consistently.
1578
1579Mon Jul 7 11:01:43 2003 Arnold D. Robbins <arnold@skeeve.com>
1580
1581 * Release 3.1.3: Release tar file made.
1582
1583Mon Jul 7 09:55:49 2003 Arnold D. Robbins <arnold@skeeve.com>
1584
1585 * main.c (copyleft, usage): Make sure to fflush output fp. Per Jim
1586 Meyering, if error, exit non-zero.
1587 * ext.c (get_argument): Fix array paramater handling.
1588
15892003-07-06 Paul Eggert <eggert@twinsun.com>
1590
1591 * builtin.c (do_substr): Issue better diagnostics when
1592 d_substr and d_length are NaN, or when 0 < d_length < 1.
1593 Be careful when comparing double to SIZE_MAX, as
1594 the comparison might return the "wrong" answer when
1595 `(double) SIZE_MAX' is a number that is not equal to
1596 SIZE_MAX.
1597 (do_gensub): Watch out for HOW values that are out of range
1598 or are NaN.
1599 (do_dcngettext): dcngettext wants an argument of type
1600 unsigned long, not long, so use a value of that type.
1601
1602Fri Jul 4 10:58:02 2003 Arnold D. Robbins <arnold@skeeve.com>
1603
1604 * main.c (main): Make option letter 'D' fall through into default
1605 unknown case if not debugging. Let's us have just one version of
1606 `optlist'.
1607
1608Thu Jun 26 15:25:57 2003 Arnold D. Robbins <arnold@skeeve.com>
1609
1610 * array.c (get_actual): Undo Stepan Kasal change of 2003-06-17.
1611 See test/match2.awk.
1612
1613Wed Jun 25 15:26:08 2003 Arnold D. Robbins <arnold@skeeve.com>
1614
1615 * builtin.c (do_rand): Change calculation so that result
1616 obeys constraint: 0 <= N < 1. This is per history and POSIX.
1617 Thanks to Nelson Beebe (beebe@math.utah.edu) for reporting
1618 this issue.
1619
1620Mon Jun 23 15:13:39 2003 Arnold D. Robbins <arnold@skeeve.com>
1621
1622 * io.c (rs1scan): Per advice from Bruno Haible, it's safe
1623 to skip the multibyte checking code if RS is '\n'. See
1624 the comment in the code. Big performance improvement for
1625 multibyte locales.
1626
16272003-06-20 Stepan Kasal <kasal@ucw.cz>
1628
1629 * eval.c (comp_func): if memcmp returns 0, we have to compare
1630 the lengths.
1631
16322003-06-19 Stepan Kasal <kasal@ucw.cz>
1633
1634 * eval.c (interpret) <Node_K_arrayfor>: use NULL, not 0, to
1635 initialize the variable list.
1636 (comp_func): array indices no longer are string values,
1637 you have to use ahname_str, ahname_len.
1638
1639Tue Jun 17 11:53:46 2003 Arnold D. Robbins <arnold@skeeve.com>
1640
1641 * array.c (get_actual): Make check for isparam
1642 smarter: also check for FUNC flag.
1643
16442003-06-17 Stepan Kasal <kasal@ucw.cz>
1645
1646 * array.c (get_actual): even if canfatal is FALSE, don't
1647 tolerate existence of things which can't happen.
1648
1649Mon Jun 16 16:21:44 2003 Arnold D. Robbins <arnold@skeeve.com>
1650
1651 * configure.ac: Removed m4/Makefile.
1652 * m4/Makefile.am: Removed.
1653
16542003-06-16 gettextize <bug-gnu-gettext@gnu.org>
1655
1656 * configure.ac (AC_OUTPUT): Add m4/Makefile.
1657 (AM_GNU_GETTEXT_VERSION): Bump to 0.12.1.
1658
1659Sun Jun 15 20:45:43 2003 Arnold D. Robbins <arnold@skeeve.com>
1660
1661 * io.c (get_a_record): Enhance logic to fill buffers to include
1662 `|| no_data_left(iop)'.
1663 (rs1scan): Fix logic for setting recm fields for multibyte
1664 character case.
1665
16662003-06-10 Stepan Kasal <kasal@ucw.cz>
1667
1668 * awkgram.y (release_all_vars): do not try to release a value of
1669 Node_var_new; after get_lhs, use the lhs directly, do not try
1670 to do (*lhs)->var_value; the Node_var case doesn't need
1671 special treatment.
1672 * builtin.c (do_match): `get_param' is successful iff it returns
1673 Node_var_array---if the variable was new, get_param has already
1674 changed the type.
1675 * field.c (do_split): likewise.
1676
1677Sun Jun 15 19:36:35 2003 Arnold D. Robbins <arnold@skeeve.com>
1678
1679 * node.c (r_dupnode): Typo fix in hash tables: stptr -> ahname_str.
1680 Thanks to mary1john8@earthlink.net.
1681 * array.c (get_actual): Add `if (canfatal)' before call to
1682 `cant_happen'.
1683
1684Sun Jun 15 19:25:49 2003 Patrick T.J. McPhee <ptjm@interlog.com>
1685
1686 * awk.h (memcpy_ulong): Add ! WIN32 to ifdefs.
1687
1688Mon Jun 9 18:38:20 2003 Arnold D. Robbins <arnold@skeeve.com>
1689
1690 * custom.h (hpux): Added stuff to (hopefully) get `tzset'
1691 declared on HP/UX 10 and up.
1692
1693Mon Jun 9 17:12:24 2003 Patrick T.J. McPhee <ptjm@interlog.com>
1694
1695 * awk.h (ATTRIBUTE_EXPORTED): New macro for dynamic libs on Windows32.
1696 * CONVMFTidx, stack_ptr, do_lint, lintfunc: Now have this attribute.
1697
1698Mon Jun 9 13:11:33 2003 Arnold D. Robbins <arnold@skeeve.com>
1699
1700 Clean up of Stepan's patches.
1701
1702 * array.c (get_actual): Renamed from r_get_array. Added second
1703 param canfatal if routine should print fatal message when not an array.
1704 (get_actual): Renamed 'prm' to `isparam'.
1705 (array_vname): Add static msglen var; only realloc string if it grows.
1706 Don't use `s += sprintf(...)'. No good on old systems where sprintf
1707 returns char *. Minor formatting cleanups.
1708 (do_adump): Restored separate `a' and `r' variables; helps for debugging.
1709
1710 * awk.h (SCALAR, UNINITIALIZED): Removed entirely, renumbered other flags.
1711 (get_array, get_param): New macros, calls get_actual.
1712 (get_actual): Declaration changed from that of r_get_array.
1713
1714 * awkgram.y (release_all_vars): Restored previous version of code; new
1715 version isn't right for Node_xx variables.
1716 (variable): Minor code cleanup for readability.
1717
1718 * builtin.c (do_match): Use get_param and print our own message when
1719 third parameter is not an array.
1720
1721 * eval.c: Added a few comments here and there, removed some no longer
1722 needed comments.
1723
1724 * field.c (do_split): Use get_param and print our own message when
1725 second parameter is not an array.
1726
1727Mon Jun 9 11:46:21 2003 Arnold D. Robbins <arnold@skeeve.com>
1728
1729 * array.c (do_delete): Initialize hash1 and last to keep gcc -Wall happy.
1730 * io.c (rsnullscan): Comment out label skip_leading for same reason.
1731
1732Wed May 28 08:31:23 CEST 2003 Stepan Kasal <kasal@math.cas.cz>
1733
1734 * eval.c (forloops_active, in_function): Nuked.
1735 (pop_all_forloops, pop_fcall_stack): are now inline.
1736
1737Wed May 28 07:58:35 2003 Stepan Kasal <kasal@math.cas.cz>
1738
1739 * field.c, awk.h (Null_field): no longer static.
1740 * field.c (init_fields): initial value of $0 can be Nnull_string,
1741 no need to copy it.
1742 * eval.c (r_get_lhs) <Node_field_spec>: test for uninitialized field,
1743 which is Nnull_string for $0 and Null_field for $(>0).
1744 * builtin.c (do_print_rec): test for uninitialized $0.
1745
1746Tue May 27 17:03:02 2003 Stepan Kasal <kasal@math.cas.cz>
1747
1748 * awk.h (Node_var_new): New node type for variables which can be
1749 either scalar or array. From now on, Node_var is always scalar.
1750 (Node_gvar_ref): Nuked, its role can be taken by Node_array_ref.
1751 (orig_var): removed, orig_array is enough.
1752 (SCALAR, UNINITIALIZED): Flags nuked.
1753 (var_uninitialized): new macro to distinguish uninitialized vars;
1754 used in several other macros.
1755 * array.c (r_get_array, array_vname, do_adump): adapt to the
1756 above changes.
1757 * awkgram.y, eval.c, field.c, main.c, node.c, profile.c: ditto.
1758
1759Tue May 27 14:27:50 2003 Stepan Kasal <kasal@math.cas.cz>
1760
1761 * array.c (r_get_array): New function, which goes all the way
1762 through Node_param_list to actual Node_var_array; if it encounters
1763 non scalar Node_var, it changes it to Node_var_array.
1764 (in_array, do_delete, do_delete_loop, do_adump, assoc_sort_inplace):
1765 Use get_array.
1766 (assoc_lookup): The parameter must be a Node_var_array.
1767 * awk.h (get_array, r_get_array): Declare the new function and define
1768 a macro to speed it up.
1769 * builtin.c (do_match): Use get_array.
1770 * eval.c (interpret) <Node_K_arrayfor>: ditto.
1771 (r_get_lhs) <Node_K_arrayfor>: ditto.
1772 * field.c (do_split): ditto.
1773
1774Tue May 27 08:23:51 2003 Stepan Kasal <kasal@math.cas.cz>
1775
1776 Changed node->vname meaning for type Node_array_ref and Node_gvar_ref.
1777 It contains only the reference name; one has to (recursively) follow
1778 node->prev_array to find out the call history for the array.
1779
1780 * array.c (array_vname): New function to print the array name.
1781 (assoc_lookup, do_delete): Use array_vname.
1782 * eval.c (interpret, r_tree_eval, r_get_lhs): Use array_vname.
1783 (push_args, pop_fcall): Things have simplified.
1784 * awk.h (array_vname): Declare.
1785 (prev_array): Define.
1786
1787Sun Jun 8 11:25:36 2003 Stepan Kasal <kasal@ucw.cz>
1788
1789 * awkgram.y (append_right): when using savetail, remember that it
1790 is not necessarily the tail of the list---it's just a pointer to
1791 the last chunk appended.
1792
1793Thu Jun 5 12:01:41 2003 Arnold D. Robbins <arnold@skeeve.com>
1794
1795 * builtin.c (do_strtonum): Make `strtonum(13)' work.
1796
1797Wed Jun 4 17:07:06 2003 Corinna Vinschen <vinschen@redhat.com>
1798
1799 * io.c (binmode): Include function for __CYGWIN__ too.
1800
1801Tue Jun 3 12:40:50 2003 Arnold D. Robbins <arnold@skeeve.com>
1802
1803 * eval.c (interpret): Node_K_switch. For regex case, don't
1804 call `free_temp' on the result of `force_string' if it's equal to
1805 switch_value. Thanks to John DuBois <spcecdt@armory.com>
1806 for finding the problem.
1807
1808Sun Jun 1 13:08:22 2003 Arnold D. Robbins <arnold@skeeve.com>
1809
1810 * builtin.c (format_tree): For %c, force precision to 1.
1811
1812Wed May 28 11:55:48 2003 Arnold D. Robbins <arnold@skeeve.com>
1813
1814 * awkgram.y (isnoeffect, isassignable): Add Node_TEXTDOMAIN to
1815 switches in both functions.
1816
1817Wed May 28 11:38:59 2003 Stepan Kasal <kasal@math.cas.cz>
1818
1819 * awkgram.y (switch_body): remove rule ``switch_body:/*empty/''
1820 as ``switch_body:case_statements'' covers it---this disambiguation
1821 fixes a reduce/reduce conflict.
1822
1823Sun May 25 16:23:43 2003 Corinna Vinschen <vinschen@redhat.com>
1824
1825 * configure.ac: Remove linking against /usr/lib/automode.o.
1826 * configure: Regenerate.
1827
1828Sun May 25 15:19:19 2003 Stepan Kasal <kasal@math.cas.cz>
1829
1830 * awk.h (get_lhs): For an initialized Node_var, you may return
1831 the address of var_value pointer, no matter whether reference
1832 bit was set or not. We were silly slowing down most of the
1833 assignements.
1834
1835 * (get_a_record): after grow_iop_buffer, move recm.rt_start even
1836 if recm.len == 0.
1837
1838Mon May 19 16:55:59 2003 Arnold D. Robbins <arnold@skeeve.com>
1839
1840 Code for C-style switch statements. Initial version contributed by
1841 Michael Benzinger <Michael.Benzinger@sabre-holdings.com>.
1842
1843 Disabled by default, use `configure --enable-switch' to turn it on.
1844
1845 * configure.ac: New AC_ARG_ENABLE for switch statements.
1846 * awk.h (NODETYPE): New types for switch, case, default keywords
1847 and respective lists.
1848 * awkgram.y: New productions for switch statement. Does checking to
1849 avoid duplicate cases.
1850 * eval.c (nodetypes): New entries for new NODETYPEs.
1851 (interpret): New code to do switch execution.
1852 * profile.c (pprint): New code to print switch statements.
1853
1854Mon May 19 15:05:43 2003 Arnold D. Robbins <arnold@skeeve.com>
1855
1856 * configure.ac: Renamed from configure.in.
1857 * fixvers: Now looks in configure.ac.
1858 * Makefile.am: Now cites configure.ac.
1859
1860 * Misc other: Updated to Automake 1.7.5.
1861
1862Sun May 18 12:03:56 2003 Arnold D. Robbins <arnold@skeeve.com>
1863
1864 * array.c (do_delete_loop): Fix bracing of logic for
1865 tests.
1866
1867Wed May 14 09:01:16 2003 Stepan Kasal <kasal@math.cas.cz>
1868
1869 Misc patches:
1870
1871 * builtin.c (do_match): if third parameter to `match' is supplied,
1872 store all subexpressions which are applicable, even though there
1873 are some unused between them.
1874
1875 * awkgram.y (yylex): when returning from unterminated REGEXP
1876 (which is /* kludge */), take care to fake a yylval, to
1877 prevent ``internal error'' later.
1878
1879Sun May 11 15:51:00 2003 Stepan Kasal <kasal@math.cas.cz>
1880
1881 * io.c (rsnullscan, get_a_record): Boundary condition bug fixes.
1882
1883Sun May 11 15:15:20 IDT 2003 Scott Deifik <scottd@amgen.com>
1884
1885 * awk.h: Add decls for `memcpy_ulong', `memset_ulong', and
1886 MSC defines.
1887 * regex.c: Include <stdio.h> if MSC for size_t.
1888
1889Mon May 5 15:11:06 2003 Arnold D. Robbins <arnold@skeeve.com>
1890
1891 * io.c (get_a_record): Only tweak RT's value in place if the current
1892 RS scanner is the same as the last one. Bug report submitted by
1893 John DuBois (<spcecdt@armory.com>).
1894
1895Fri May 2 14:39:48 2003 Arnold D. Robbins <arnold@skeeve.com>
1896
1897 * io.c (get_a_record): Add logic at end to be smart about setting
1898 RT. Saves considerable time, esp for default case where RS = "\n".
1899
1900Wed Apr 30 11:44:38 2003 Arnold D. Robbins <arnold@skeeve.com>
1901
1902 * field.c (do_split): Add check and code for Node_gvar_ref.
1903 * array.c (in_array, do_delete, asort_actual): Same.
1904 * builtin.c (do_split): Same for 3rd arg array parameter.
1905 * eval.c (interpret): Same for Node_K_array_for.
1906 (push_args): Same for evaluating extra args.
1907
1908Tue Apr 29 15:54:28 2003 Arnold D. Robbins <arnold@skeeve.com>
1909
1910 Record reading code redone/simplified considerably.
1911
1912 * awk.h (IOBUF): Removed total field, no longer used.
1913 * io.c (at_eof, has_data, no_data_left): New macros.
1914 (RECVALUE, SCANSTATE): New enumerated types.
1915 (rs1get_a_record, rsnull_get_a_record, rsre_get_a_record): Removed.
1916 (get_a_record): Rewritten, again. Now contains just buffer and
1917 record code; searching code moved into these functions:
1918 (rs1scan, rsnullscan, rsrescan): New functions to scan a buffer
1919 for record contents and terminator. Fill in values in:
1920 (struct recmatch): Holds found record and terminator.
1921 (spec_setup): Set iop->dataend to indicate data is already in buffer.
1922 (nextfile, inrec): Use new macros instead of flag and pointer tests.
1923 (set_RS): Set scanning function instead of record function.
1924
1925 FWIW, it all passes `make test'.
1926
1927Sun Apr 27 21:02:39 2003 Arnold D. Robbins <arnold@skeeve.com>
1928
1929 * io.c (do_close): At end, if do_posix return 0. See comment in code.
1930
1931Tue Apr 15 09:56:03 2003 Isamu Hasegawa <isamu@yamato.ibm.com>
1932
1933 * configure.in: Check existence of wcrtomb, and wcscoll.
1934 * configh.in: Likewise.
1935 * configure: Re-generate.
1936 Thanks to Kimura Koichi <kimura.koichi@canon.co.jp> for reporting.
1937
1938Sun Apr 13 16:02:10 2003 Arnold D. Robbins <arnold@skeeve.com>
1939
1940 * main.c (main): Add call to `setlocale' for LC_NUMERIC after program is
1941 parsed.
1942 (arg_assign): Switch back to "C" locale for LC_NUMERIC for command
1943 line assignments; this is per POSIX that period is decimal point for
1944 program and command line assignments and the locale's separator
1945 applies for input, output, and string to number conversion.
1946
19472003-03-26 Paul Eggert <eggert@twinsun.com>
1948
1949 * builtin.c [HAVE_INTTYPES_H]: Include <inttypes.h>.
1950 [!HAVE_INTTYPES_H && HAVE_STDINT_H]: Include <stdint.h>.
1951 (CHAR_BIT, INTMAX_MIN, UINTMAX_MAX): Define if the system does not.
1952 (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): New macros, taken from
1953 coreutils and many other GNU utilities.
1954 (format_tree): When formatting, use widest possible integers
1955 rather than settling with 'long'.
1956 (do_lshift, do_rshift, do_and, do_or, do_xor, do_compl): Likewise,
1957 when doing bitwise operations.
1958 * configure.in (jm_AC_TYPE_LONG_LONG, jm_AC_TYPE_UNSIGNED_LONG_LONG,
1959 jm_AC_TYPE_INTMAX_T, jm_AC_TYPE_UINTMAX_T): Add, since the mainline
1960 code now needs this.
1961 * doc/gawk.texi (Control Letters, Bitwise Functions): Document this.
1962 * m4/intmax_t.m4: New file, taken from coreutils (but renamed to
1963 avoid collision with our m4/inttypes.m4).
1964 * m4/longlong.m4: New file, taken from coreutils.
1965 * m4/uintmax_t.m4, m4/ulonglong.m4: Remove; superseded by the above
1966 new m4 files.
1967
1968 * builtin.c (BITS_PER_BYTE): Remove; use CHAR_BIT instead, since
1969 it's the standard name.
1970 (do_lshift, do_rshift): Complain if the shift width is exactly equal
1971 to the word size, too.
1972
1973Thu Mar 27 10:44:11 2003 Arnold D. Robbins <arnold@skeeve.com>
1974
1975 * io.c (rs1_get_a_record, rsnull_get_a_record, rsre_get_a_record):
1976 Enhance check for no data left in file to be only if file has
1977 non-zero size. Linux files such as /proc/filesystems stat as a
1978 regular file of size 0, but actually have contents. Ugh.
1979 Thanks to Martin Schlemmer <azarah@gentoo.org> for the bug report.
1980
1981Wed Mar 26 12:19:32 2003 Arnold D. Robbins <arnold@skeeve.com>
1982
1983 * builtin.c (format_tree): Add a lint warning at label `out_of_range'.
1984
1985Tue Mar 25 12:24:38 2003 Arnold D. Robbins <arnold@skeeve.com>
1986
1987 * awkgram.y (variable): For array subscript, if NAME is in the
1988 symbol table, but not a variable, array, or parameter, generate
1989 a syntax error.
1990 (isarray): New function, tests if a symbol can be an array.
1991
1992 * custom.h: Add check for HP/UX, needed for GCC.
1993
1994Mon Mar 17 09:21:09 2003 Arnold D. Robbins <arnold@skeeve.com>
1995
1996 Allow simultaneous manipulation of a global array directly
1997 and when passed as a parameter.
1998
1999 * awk.h (Node_gvar_ref): New nodetype.
2000 [orig_var]: New macro.
2001 * array.c (do_delete_loop, do_delete): Add logic to handle
2002 seeing Node_gvar_ref.
2003 * eval.c (nodetypes): Add Node_gvar_ref.
2004 (r_tree_eval, r_get_lhs): Add Node_gvar_ref case.
2005
2006Wed Mar 19 14:10:31 2003 Arnold D. Robbins <arnold@skeeve.com>
2007
2008 This time for sure.
2009 -- Bullwinkle
2010
2011 * Release 3.1.2: Release tar file made.
2012
2013Wed Mar 19 14:08:11 2003 Arnold D. Robbins <arnold@skeeve.com>
2014
2015 * awkgram.y: Production `program --> program error'. Add a return so
2016 that we don't produce an infinite stream of error messages.
2017 Thanks to Michael Mauch <michael.mauch@gmx.de> for pointing this out.
2018
2019Wed Mar 19 13:45:50 2003 Corinna Vinschen <vinschen@redhat.com>
2020
2021 * regex.c [RE_ENBABLE_I18N]: remove definition; the one in
2022 regex_internal.h is better and makes things work with Cygwin.
2023
2024Tue Mar 11 11:54:20 2003 Arnold D. Robbins <arnold@skeeve.com>
2025
2026 * regex_internal.h: Don't include <limits.h> after <regex.h> was
2027 included in regex.c, since it could redefine RE_DUP_MAX to a lower
2028 value.
2029 (bitset_set, bitset_clear, bitset_contain): Use 1UL instead of 1 in
2030 left shift operations.
2031 * regex.c: Include <limits.h> before <regex.h>
2032 * regcomp.c (re_compile_fastmap_iter, init_word_char, parse_expression):
2033 Use 1UL instead of 1 in left shift operations.
2034
2035Mon Mar 10 15:45:37 2003 Corinna Vinschen <vinschen@redhat.com>
2036
2037 * configure.in: Update CYGWIN case to add /usr/lib/automode.o.
2038
2039Thu Mar 6 11:07:36 2003 Arnold D. Robbins <arnold@skeeve.com>
2040
2041 Updated to automake 1.7.3.
2042
2043 * config.guess, config.sub: Updated from prep.
2044 * Makefile.am (AUTOMAKE_OPTIONS): Add dist-bzip2 to get .bz2 files.
2045
2046Tue Mar 4 10:40:46 2003 Arnold D. Robbins <arnold@skeeve.com>
2047
2048 * version.in: Added goop for K&R compilers; forgot that I have to fix
2049 this file which then is used to create version.c.
2050
2051Mon Mar 3 17:00:44 2003 Arnold D. Robbins <arnold@skeeve.com>
2052
2053 * configure.in: New option --disable-lint.
2054 * awk.h (do_lint, do_lint_old): Conditionally declare based on NO_LINT.
2055 * eval.c (set_LINT): Ifdef out body if NO_LINT.
2056 * main.c (do_lint, do_lint_old): Conditionally compile properly.
2057 (main): Handle --lint argument code.
2058
2059Fri Feb 28 10:43:07 2003 Arnold D. Robbins <arnold@skeeve.com>
2060
2061 * main.c (main): Add LC_TIME to the things that get set with
2062 setlocale().
2063 * builtin.c (format_tree): Change test of `n0-- <= 0' to ==, avoids
2064 VMS diagnostic.
2065
2066Thu Feb 27 17:48:29 2003 Pat Rankin <rankin@pactechdata.com>
2067
2068 * regexec.c (proceed_next_node): Cast re_string_get_buffer to char *.
2069 (get_subexp): Likewise.
2070
2071Tue Feb 25 12:33:41 2003 Arnold D. Robbins <arnold@skeeve.com>
2072
2073 * regex_internal.h, regex_internal.c, regcomp.c, regexec.c:
2074 Make MB_CUR_MAX into thread local variable re_mb_cur_max.
2075
2076 Unrelated, from Scott Deifik:
2077
2078 * io.c (grow_iop_buffer): Add checks for overflow of new buffer size.
2079
2080Mon Feb 24 13:30:59 2003 Arnold D. Robbins <arnold@skeeve.com>
2081
2082 * awk.h (gawk_mb_cur_max): Declared:
2083 * main.c (gawk_mb_cur_max): Defined, init to 1.
2084 (main): Initialize gawk_mb_cur_max.
2085 * awkgram.y, builtin.c, eval.c, field.c, io.c, re.c (mb_cur_max):
2086 Replaces all instances of MB_CUR_MAX, which is a function call (!)
2087 in glibc. Big speed up, especially for -Fx case, where x is a
2088 single character.
2089
2090 Unrelated:
2091
2092 * awkgram.y (rule): For non-existent action, use a Node_K_print_rec
2093 node.
2094
2095Sun Feb 23 15:45:20 2003 Arnold D. Robbins <arnold@skeeve.com>
2096
2097 Speed up plain `print' and `print $0':
2098
2099 * awk.h (Node_K_print_rec): New node type.
2100 (do_print_rec): Declare function.
2101 * awkgram.y (simple_stmt): Create humongous test for plain `print'
2102 or `print $0', and if so, use a Node_K_print_rec for it. Modify
2103 test for lint message.
2104 * builtin.c (redirect_to_fp): New function for common code to get fp
2105 and rp for do_print{,f,_rec} functions.
2106 (do_print): Use redirect_to_fp().
2107 (do_printf): Use redirect_to_fp().
2108 (do_print_rec): New function to just print $0 from field_arr[0]
2109 directly; will rebuild the record first if necessary.
2110 * eval.c (nodetypes): Add Node_K_print_rec.
2111 (interpret): Add Node_K_print_rec case.
2112 * profile.c (pprint): Add Node_K_print_rec case.
2113 (pp_print_stmt): If null lnode, print "$0" else print the lnode.
2114
2115 Unrelated:
2116
2117 * regex_internal.h: Add ENABLE_NLS to the condition for using
2118 gettext so that --disable-nls really disables it.
2119
2120Sat Feb 23 22:46:00 2003 Arnold D. Robbins <arnold@skeeve.com>
2121
2122 * io.c (rs1_get_a_record, rsnull_get_a_record, rsre_get_a_record):
2123 Modify buffer-filling algorithm to always read one or more multiples
2124 of the blocksize (iop->readsize).
2125 (grow_iop_buffer): Make sure there's room for the current partially
2126 read record and one disk block buffer.
2127
2128Thu Feb 20 22:02:00 2003 Arnold D. Robbins <arnold@skeeve.com>
2129
2130 * re.c (research): Fix typo in cast of precision value to int.
2131 * regex.h, regex.c, re_internal.h, re_internal.c, regcomp.c, regexec.c:
2132 synced to GLIBC source, maintaining K&R portability changes, and bug
2133 fixes, although losing ability to compile each file separately.
2134 * Makefile.am (SOURCES): Moved placement of regex source files from here ...
2135 (EXTRA_DIST): ... to here.
2136
2137Tue Feb 18 14:17:33 2003 Arnold D. Robbins <arnold@skeeve.com>
2138
2139 * re.c (research): Cast precision value to int.
2140 * builtin.c (format_tree): For toofew, cast field width value to int.
2141 * io.c (rsre_get_a_record): Initialize restart and reend. Add a variable
2142 to make sure they're set before used at end of function.
2143 (iopflags2str): Removed decl at top and made not static so that GCC
2144 stops complaining that it's defined but not used. Bleah.
2145
2146Mon Feb 17 11:02:34 2003 Arnold D. Robbins <arnold@skeeve.com>
2147
2148 * config.guess, config.sub: Updated from prep.
2149
2150Sun Feb 16 15:47:15 2003 Scott Deifik <scottd@amgen.com>
2151
2152 * awk.h (format_tree, make_str_node): Changed decls to match how
2153 they are called.
2154 * builtin.c (format_tree, sub_common): Same.
2155 * node.c (make_str_node): Same.
2156
2157Wed Feb 5 14:18:01 2003 Arnold D. Robbins <arnold@skeeve.com>
2158
2159 * awk.h: Removed duplicate decl of set_prof_file(). Removed
2160 undef of const for non-ANSI C; config.h should handle it.
2161 * msg.c (set_loc): Use srcfile and srcline in regular code to shut up
2162 stupid SGI compiler.
2163
2164Tue Feb 4 14:28:06 2003 Arnold D. Robbins <arnold@skeeve.com>
2165
2166 All relevant files: Copyright year updated to 2003.
2167
2168Tue Feb 4 13:40:41 2003 Martin C. Brown <mc@whoever.com>
2169
2170 * intl/libgnuintl.h: Preprocessor fixes for MacOS X.
2171 * regex.h: Ditto.
2172
2173Tue Feb 4 13:39:37 2003 Arnold D. Robbins <arnold@skeeve.com>
2174
2175 * awkgram.y (builtin_func): New string for use in rationalizing
2176 function parsing and installation code.
2177
2178Sun Feb 2 16:00:55 2003 Arnold D. Robbins <arnold@skeeve.com>
2179
2180 Cache function body code pointer so that only have to find it the
2181 first time a function is called. This potential for optimization
2182 brought to my attention by Stepan Kasal.
2183
2184 * awk.h [funcbody]: New macro.
2185 * awkgram.y (FUNC_CALL): Set $$->funcbody to NULL.
2186 * eval.c (func_call): Changed to take top-level Node_func_call as the
2187 single parameter. Do the lookup and caching.
2188 (r_tree_eval): Change how func_call() is called in switch.
2189 * profile.c (pp_func_call): Similar changes.
2190 (tree_eval): Ditto.
2191
2192Sun Feb 2 15:32:42 2003 Stepan Kasal <kasal@math.cas.cz>
2193
2194 ADR: More grammar rationalization/repair from Stepan.
2195
2196 * awkgram.y (common_exp, simp_exp): the rule from getline (without
2197 pipe) has been moved from common_exp to simp_exp.
2198
2199 The redirection of print statements reworked. The idea comes from
2200 mawk-1.3.3; much thanks to Michael Brennan!
2201
2202 * awkgram.y (IO_OUT, IO_IN): new tokens.
2203 (APPEND_OP, TWOWAYIO): swallowed by the above ones.
2204 (in_print, in_parens): new static variables, to trace whether
2205 IO_OUT is expected.
2206 (yylex): emit the new tokens, update in_parens on '(' and ')'.
2207 (exp): the print command(s) reworked.
2208 (oputput_redir): reworked.
2209 (print_expression_list): new non-terminal.
2210 (rexp, rexpression_list opt_rexpression_list): nuked.
2211 (exp, simp_exp): ``cmd|getline'' rule changed to
2212 ``cmd IO_IN getline'' and moved from exp to simp_exp.
2213
2214 Unrelated:
2215
2216 * awkgram.y (variable): Don't return Node_func, issue a fatal
2217 error instead.
2218 * eval.c (r_tree_eval, r_get_lhs): Omit special checks for Node_func,
2219 nodes of this type cannot get into the program tree.
2220 * profile.c (tree_eval, pp_lhs): Likewise.
2221
2222Thu Jan 30 17:42:05 2003 Stepan Kasal <kasal@math.cas.cz>
2223
2224 ADR: Applied lots of patches from Stepan.
2225
2226 * array.c (do_delete_loop): Call after_assign for the loop index.
2227 * field.c (do_split): The third argument to split(), sep, has to be
2228 evaluated and the result dupnoded before assoc_clear is called,
2229 similarily as src. And we needn't to evaluate the third argument
2230 if it's CONSTant regex and the first parameter is null string.
2231 * awk.h (dupnode): Changed to macro, function renamed to r_dupnode.
2232 * node.c (dupnode, r_dupnode): Rename.
2233 * awkgram.y (parms_shadow): Return bool value, ...
2234 (shadow_funcs): ... which will enable us to end the program if
2235 lintfunc is fatal.
2236 (program): Cleanup of the rules defining the ``program'' non-terminal.
2237 (start, program, rule): no value associated,
2238 expression_value is now treated similarily as begin_block and end_block.
2239 (pattern, rule): bison actions for non-terminal `pattern' now
2240 add a new rule to the appropriate Node_rule_list, action for
2241 non-terminal `rule' now only adds the associated code block
2242 to the rnode of Node_rule_node.
2243 (io_allowed): renamed to !begin_or_end_rule.
2244 (append_pattern): New function, adds new Node_rule_node to a rule_list.
2245 (mkrangenode): Deleted, this tiny function was called only once.
2246 (function_body): non-terminal replaced by `action'.
2247 (statements, action, statement): `statements' can now be empty;
2248 both callers had to accomodate to this.
2249 (statements): Don't call isnoeffect($2->type) if
2250 $2 happens to be NULL.
2251
2252Mon Jan 27 14:12:19 2003 Arnold D. Robbins <arnold@skeeve.com>
2253
2254 * io.c (iop_close): Based on report by Stepan Kasal and because of
2255 his changes, don't call reset_record() when saving a copy of contents
2256 of $0.
2257 * awkgram.y: Improved function parsing error messages for case where
2258 user uses a builtin name as a function name. Based on error report
2259 by Stepan Kasal.
2260 * ext.c (make_builtin): Set FUNC flag for new function. Based on error
2261 report by Stepan Kasal.
2262
2263Mon Jan 27 14:06:20 2003 Stepan Kasal <kasal@math.cas.cz>
2264
2265 * field.c (reset_record): No longer call set_record(), the code is
2266 moved to the function body. Do not set MAYBE_NUM.
2267 (set_record): Call reset_record() to perform the common tasks.
2268 The prototype has changed, change awk.h and all callers.
2269
2270Mon Jan 27 10:50:03 2003 Arnold D. Robbins <arnold@skeeve.com>
2271
2272 * awk.h (NODE): `proc' renamed to `builtin,' to fix a conflict
2273 on some systems. Replaced on all spots where it was used.
2274
2275Sun Jan 26 11:52:01 2003 Arnold D. Robbins <arnold@skeeve.com>
2276
2277 * awk.h [NUMSUBPATS]: New macro.
2278 * builtin.c (do_match): Use it in loop that fills in subpattern info.
2279 * eval.c (r_tree_eval): for Node_assign, don't call free_temp(),
2280 as assign_val() contains dupnode(), which would clear the TEMP
2281 flag. From Stepan Kasal <kasal@math.cas.cz>.
2282 * config.sub: Updated from prep.
2283
2284Sun Jan 19 22:34:01 2003 Arnold D. Robbins <arnold@skeeve.com>
2285
2286 * awk.h (do_asorti): Add declaration.
2287 * awkgram.y (tokentab): Add asorti() function to table.
2288 * array.c (ASORT_TYPE): New enumerated type for VALUE or INDEX array
2289 sorting.
2290 (assoc_sort_inplace): New second arg of type ASORT_TYPE. Additional code
2291 to rearrange array so rest of merge-sorting works; basically values are
2292 tossed and index moved into value spot.
2293 (asort_actual): Renamed from do_asort(). Takes new ASORT_TYPE argument.
2294 (do_asort): Calls asort_actual(tree, VALUE).
2295 (do_asorti): Calls asort_actual(tree, INDEX).
2296
2297 * main.c (load_procinfo): Free groupset array when done with it.
2298
2299Thu Jan 16 18:30:50 2003 Arnold D. Robbins <arnold@skeeve.com>
2300
2301 * builtin.c (do_match): Revised to provide start and length
2302 indices in array 3rd parameter.
2303 * config.guess, config.sub: Updated from prep.
2304
2305Thu Jan 2 11:09:12 2003 Arnold D. Robbins <arnold@skeeve.com>
2306
2307 Updated to bison 1.875.
2308
2309Tue Dec 31 17:14:45 2002 Arnold D. Robbins <arnold@skeeve.com>
2310
2311 Updated things to automake 1.7.2 and autoconf 2.57.
2312
2313Tue Dec 31 16:54:44 2002 Arnold D. Robbins <arnold@skeeve.com>
2314
2315 * awk.h [IOP_CLOSED]: New flag.
2316 * io.c (iop_close): Set IOP_CLOSED flag.
2317 (inrec): Check for IOP_CLOSED; if set return EOF.
2318 (rs1_get_a_record, rsnull_get_a_record): Check for EOF before
2319 refilling buffers.
2320 (rsre_get_a_record): Ditto. Also, set RT before updating pointers in IOP.
2321 * Makefile.am (efence): New target to compile with Electric Fence.
2322
23232002-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2324
2325 * awk.h (catchsig): Delete prototype.
2326 * main.c (catchsig): Make static and remove excess argument.
2327 (main): Delete unnecessary casts.
2328 * io.c (rs1_get_a_record, rsnull_get_a_record): Mark parameter
2329 with ATTRIBUTE_UNUSED.
2330
2331Mon Dec 23 11:54:07 2002 Arnold D. Robbins <arnold@skeeve.com>
2332
2333 * regex_internal.h, regex_internal.c, regcomp.c, regexec.c, version.c:
2334 Fixed to compile, once again, under K&R compilers.
2335 * io.c (grow_iop_buffer): Fix calculation of new size to
2336 first subtract 2, double, then add 2 back in.
2337
2338Fri Dec 20 11:48:42 2002 Arnold D. Robbins <arnold@skeeve.com>
2339
2340 get_a_record split into three routines.
2341
2342 * awk.h (IOBUF): Structure reworked for new code.
2343 * io.c (get_a_record): Now a pointer to different functions.
2344 (rs1_get_a_record, rsnull_get_a_record, rsre_get_a_record): New functions.
2345 (iop_alloc, iop_close): Reworked for new structure.
2346 (do_getline, inrec): Modifiend for new EOF condition.
2347 (iopflags2str): New routine.
2348
2349Fri Dec 20 11:05:50 2002 Isamu Hasegawa <isamu@yamato.ibm.com>
2350
2351 * regex.c, regex_internal.c, regex_internal.h: Changes to allow separate
2352 compilation of the reg*c files.
2353 * regcomp.c: Fix bug in using translation tables with [[:upper:]] etc.
2354 * Makefile.am: Move regex files into sources from EXTRA_DIST. (ADR)
2355
2356Mon Dec 9 14:20:42 2002 Stepan Kasal <kasal@math.cas.cz>
2357
2358 * main.c (main): When processing option '-f' don't ignore spaces
2359 if optarg points at the beginning of the current argument
2360 (like ``gawk -f " " file'').
2361
23622002-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2363
2364 * awkgram.y (stopme): Mark parameter with ATTRIBUTE_UNUSED.
2365 (yyerror): Add ATTRIBUTE_PRINTF_1.
2366 * builtin.c (do_systime, do_rand): Likewise.
2367 * field.c (set_field, re_parse_field, def_parse_field,
2368 posix_def_parse_field, null_parse_field, sc_parse_field,
2369 fw_parse_field): Likewise.
2370 * io.c (pidopen, useropen): Likewise.
2371 * main.c (catchsig): Likewise.
2372 * profile.c (init_profiling): Likewise.
2373 * awk.h (err): Add ATTRIBUTE_PRINTF.
2374 * msg.c (err): Delete redundant prototype. Fix format specifier.
2375
2376Wed Nov 27 06:04:20 2002 Pat Rankin <rankin@pactechdata.com>
2377
2378 * ext.c [#if !DYNAMIC] (do_ext): Cast string value for error node.
2379
2380Sun Nov 24 18:23:29 2002 Arnold D. Robbins <arnold@skeeve.com>
2381
2382 From Paul Eggert, with some edits by me.
2383
2384 * builtin.c (do_substr): Consistently use floating point
2385 values for lint messages, so they should be printed pretty
2386 much as the user saw them. Check for overflow before
2387 converting floating point to integer. Do the right thing with
2388 NaNs.
2389
2390 Check for index out-of-range before checking for length
2391 out-of-range, to avoid some nasty effects if address
2392 arithmetic overflows (e.g., indx + length < index).
2393
2394 Allow zero-length substrings when checking for lint if
2395 do_lint == LINT_INVALID.
2396
2397Sun Nov 24 18:21:06 2002 Arnold D. Robbins <arnold@skeeve.com>
2398
2399 * awk.h (LINT_ALL, LINT_INVALID): New constants.
2400 * main.c (main): Allow --lint=invalid which restricts warning to
2401 things that aren't valid.
2402 * eval.c (set_LINT): Update setting logic.
2403
2404Wed Nov 20 13:14:58 2002 Arnold D. Robbins <arnold@skeeve.com>
2405
2406 * awk.h (lintfunc): Improve ifdef for attribute to only
2407 work for GCC 3.2 and later.
2408 * io.c (PIPES_SIMULATED): Don't define if on AIX, which
2409 does define TANDEM in one of its header files. Ugh.
2410
2411Tue Nov 19 15:33:55 2002 Arnold D. Robbins <arnold@skeeve.com>
2412
2413 * builtin.c (do_substr): Use %lu in warnings instead of %d.
2414
2415Mon Nov 18 14:42:53 2002 Arnold D. Robbins <arnold@skeeve.com>
2416
2417 * config.guess: Synced from ftp.gnu.org.
2418 * config.sub: Ditto.
2419
2420Sun Nov 17 21:32:49 2002 Arnold D. Robbins <arnold@skeeve.com>
2421
2422 Updated things to automake 1.7.1.
2423
2424Sun Nov 3 14:33:30 2002 Arnold D. Robbins <arnold@skeeve.com>
2425
2426 * eval.c (r_get_lhs): For variables, always clear UNINITIALIZED,
2427 since the variable is about to be assigned to. From Stepan Kasal.
2428
2429Fri Nov 1 11:19:01 2002 Arnold D. Robbins <arnold@skeeve.com>
2430
2431 * awk.h (lintfunc): Can only supply attributes for a function
2432 pointer if GCC >= 3. Added ifdefs. Bah, humbug.
2433
24342002-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2435
2436 * array.c (array_init, concat_exp, assoc_find, do_delete):
2437 Const-ify.
2438 * awk.h (redirect, set_record, pp_func, pp_string_fp, format_val,
2439 parse_escape, make_regexp, research, reisstring, remaybelong):
2440 Likewise.
2441 * awkgram.y (dumpintlstr, dumpintlstr2, func_use, dup_parms,
2442 var_comp, finfo, fcompare, func_use, dumpintlstr, dumpintlstr2):
2443 Likewise.
2444 * builtin.c (stdfile, do_fflush, do_index, category_table):
2445 Likewise.
2446 * eval.c (push_forloop, push_args, PUSH_BINDING, RESTORE_BINDING,
2447 cmp_nodes, op_assign, loop_info, fcall, fmt_ok, set_LINT,
2448 comp_func): Likewise.
2449 * ext.c (do_ext): Likewise.
2450 * field.c (set_record): Likewise.
2451 * io.c (gawk_popen, two_way_open, binmode, redirect, getredirect,
2452 fatal): Likewise.
2453 * node.c (values, format_val, make_str_node, parse_escape): Likewise.
2454 * profile.c (pp_string, pp_match_op, pp_func, pp_string,
2455 pp_string_fp): Likewise.
2456 * re.c (make_regexp, research, reisstring, remaybelong): Likewise.
2457
24582002-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2459
2460 * awk.h (__attribute__, ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN,
2461 ATTRIBUTE_PRINTF, ATTRIBUTE_PRINTF_1, __extension__): Define.
2462 (emalloc, erealloc): Fix format specifier warnings.
2463 (do_nextfile):Mark with ATTRIBUTE_NORETURN.
2464 (getredirect): Const-ify.
2465 (msg, error, warning, r_fatal, lintfunc): Mark with
2466 ATTRIBUTE_PRINTF_1.
2467 (r_fatal): Mark with ATTRIBUTE_NORETURN.
2468 * builtin.c (format_tree): Fix format specifier warning.
2469 * eval.c (interpret): Likewise.
2470 * main.c (usage, copyleft, catchsig, nostalgia, version): Mark
2471 with ATTRIBUTE_NORETURN.
2472 * profile.c (dump_and_exit): Likewise.
2473
24742002-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2475
2476 * array.c (array_init): Use ISDIGIT, not isdigit.
2477 * awk.h (m_tree_eval, force_number, force_string): Use
2478 __extension__ in statement expressions.
2479 * main.c (lintfunc): Fix !__SDTC__ case.
2480 * regex_internal.c (calc_state_hash): Fix inline declaration.
2481 * regexec.c (proceed_next_node): Cast assignment to correct type.
2482
24832002-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2484
2485 * awk.h (exp_node, Func_ptr): Add prototype arguments.
2486 * awkgram.y (yystype, token, getfname, nextc, pushback,
2487 allow_newline, yylex): Likewise.
2488 * io.c (wait_any): Likewise.
2489 * profile.c (indent_in, indent_out): Likewise.
2490 * random.h (random): Likewise.
2491
24922002-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2493
2494 * array.c (grow_table): Const-ify.
2495 * awk.h (RE_TRANSLATE_TYPE): Define.
2496 (flagtab, casetable): Const-ify.
2497 (getfname, shadow_funcs, redflags2str): Prototype.
2498 (flags2str, genflags2str, nodetype2str, redflags2str, set_loc,
2499 msg, error, warning, r_fatal): Const-ify.
2500 * awkgram.y (tokentab, snode): Likewise.
2501 * builtin.c (format_tree, do_strftime,
2502 localecategory_from_argument): Likewise.
2503 * eval.c (casetable, nodetypes, nodetype2str, flags2str,
2504 genflags2str): Likewise.
2505 * io.c (redflags2str, socketopen): Likewise.
2506 * main.c (varfile, version_string, lintfunc, optab, copyleft,
2507 varinit, init_vars): Likewise.
2508 * msg.c (srcfile, msg, warning, error, set_loc, r_fatal):
2509 Likewise.
2510 * profile.c (pp_op_assign, pp_match_op, pp_redir): Likewise.
2511 * random.c (sccsid): Likewise.
2512 * version.c, version.in (version_string): Likewise.
2513
2514Tue Oct 29 10:50:52 2002 Arnold D. Robbins <arnold@skeeve.com>
2515
2516 * configure.in: Update version in AC_INIT and AM_INIT_AUTOMAKE
2517 * fixvers: Make grep for pattern a little smarter.
2518
2519Mon Oct 28 16:35:39 2002 Arnold D. Robbins <arnold@skeeve.com>
2520
2521 * awk.h (hash): Now a function pointer.
2522 * array.c (gst_hash_string, scramble): New functions.
2523 (awk_hash): Renamed from hash.
2524 (hash): Now a function pointer.
2525 (array_init): Change hash function based on environment for
2526 experimentation.
2527
2528Mon Oct 28 13:21:20 2002 Arnold D. Robbins <arnold@skeeve.com>
2529
2530 Applied lots of patches from Stepan Kasal, tweaked as needed
2531 for current code base.
2532
2533 * node.c (dupnode): When n->stref overfows, flag the node as PERM.
2534 Same for n->ahname_ref.
2535 (unref): Remove the check for n->stref == LONG_MAX and
2536 n->ahname_ref == LONG_MAX.
2537 * awk.h (make_string): The third argument to make_str_node changed
2538 from FALSE to 0, it's not Boolean.
2539 (free_temp): Evaluate the argument only once, so that we
2540 can call free_temp(tree_eval(n)) for achieving side effects.
2541 (load_environ, load_procinfo): Changed return type to NODE *.
2542 * main.c (load_environ): The ENVIRON_node should be created with type
2543 Node_var_array and lnode set to NULL. Return pointer to the created node
2544 and create an empty hash even on TANDEM.
2545 (load_procinfo): Same mods for PROCINFO_node.
2546 (init_args): ARGV_node should also have lnode set to NULL.
2547 * eval.c (r_tree_eval): case Node_assign moved just above the other
2548 assignment cases.
2549 (op_assign): ++ and -- cases merged with += and -=, respectively.
2550 (push_args): Evaluate all args, even in cases where more args are
2551 supplied then required.
2552 (interpret): In case Node_K_forarray, flag the variable
2553 num_elems also as volatile, so that it survives longjmp() and
2554 can be trusted when linting code.
2555 (r_get_lhs): Case Node_param_list was unreachable (unless
2556 something breaks really badly), remove it;
2557 (r_tree_eval): case Node_var_array removed from the last switch,
2558 it was caught in the first switch above.
2559 * profile.c (tree_eval): Again, case Node_var_array was caught above.
2560 * awkgram.y (variable): Code simplified, making use of the above
2561 changes.
2562 * field.c (sc_parse_field): IGNORECASE only applies to regex based
2563 field-splitting, so remove code that pays attention to it.
2564 (do_split): Don't use parse_field if RS_is_null.
2565 (set_FS): Beware of FS == "\\" even if RS_is_null.
2566
2567 Code changes to make things work better:
2568 * field.c (set_FS): Don't use cmp_nodes() to compare old and new
2569 value of FS, that uses IGNORECASE, which is a bad idea. Improve
2570 logic for choosing sc_parse_field. Ensure that when RS_is_null
2571 but using a single character, that we do pay attention to
2572 case when doing regex splitting.
2573 * io.c (set_RS): Don't use cmp_nodes() to compare old and new
2574 value of RS, that uses IGNORECASE, which is a bad idea.
2575
2576Mon Oct 28 09:43:14 2002 Arnold D. Robbins <arnold@skeeve.com>
2577
2578 * recomp.c (parse_expression): Change return statement into
2579 two so it'll compile for SGI cc.
2580
2581 * awk.h (STR, CUR): Changed to STRCUR and NUMCUR respectively,
2582 to avoid conflict with STR on some System V systems. Changed
2583 in all source files.
2584
2585Thu Oct 24 16:14:34 2002 Arnold D. Robbins <arnold@skeeve.com>
2586
2587 * array.c (AVG_CHAIN_MAX): Now a variable, to allow easy experimentation.
2588 (array_init): Pulls a new value from env var AVG_CHAIN_MAX if it
2589 exists and sets the variable.
2590 * awk.h: Add declaration for array_init().
2591 * main.c (main): Call array_init().
2592
2593Tue Oct 22 11:23:56 2002 Arnold D. Robbins <arnold@skeeve.com>
2594
2595 * bisonfix.sed: Updated for current bison. Death to alloca!
2596
25972002-10-21 Isamu Hasegawa <isamu@yamato.ibm.com>
2598
2599 * builtin.c (tolower, toupper): Add casts to char* to fix some
2600 compiler warnings.
2601 * eval.c (cmp_nodes): Ditto.
2602 * regcomp.c (peek_token_bracket): Skip the byte already read.
2603
2604Wed Oct 16 15:02:09 2002 Arnold D. Robbins <arnold@skeeve.com>
2605
2606 * io.c (set_RS): Make sure to always call set_FS().
2607
26082002-10-11 Isamu Hasegawa <isamu@yamato.ibm.com>
2609
2610 * regcomp.c (re_compile_fastmap_iter): Remove the handling
2611 OP_CONTEXT_NODE.
2612 (regfree): Likewise.
2613 (create_initial_state): Likewise.
2614 (analyze): Remove the substitutions which became useless.
2615 (calc_first): Likewise.
2616 (calc_epsdest): Use edests of OP_BACK_REF in case that it has
2617 epsilon destination.
2618 (duplicate_node_closure): New function.
2619 (duplicate_node): Remove the handling OP_CONTEXT_NODE.
2620 (calc_inveclosure): Likewise.
2621 (calc_eclosure): Likewise.
2622 (calc_eclosure_iter): Invoke duplicate_node_closure instead of
2623 direct invocation of duplicate_node.
2624 (parse): Don't use comma operator in the return to avoid compiler
2625 warning.
2626 (parse_reg_exp): Likewise.
2627 (parse_branch): Likewise.
2628 (parse_expression): Likewise.
2629 (parse_sub_exp): Likewise.
2630 (parse_dup_op): Likewise.
2631 * regex_internal.c (re_dfa_add_node): Remove the substitutions
2632 which became useless.
2633 (create_ci_newstate): Remove the handling OP_CONTEXT_NODE.
2634 (create_cd_newstate): Likewise.
2635 * posix/regex_internal.h (re_token_type_t): Remove the obsolete type.
2636 (re_token_t): Likewise.
2637 (re_dfa_t): Likewise.
2638 (re_node_set_remove): New macro.
2639 * regexec.c (check_matching): Remove the handling
2640 OP_CONTEXT_NODE.
2641 (check_halt_node_context): Likewise.
2642 (proceed_next_node): Likewise.
2643 (pop_fail_stack): Fix the memory leak.
2644 (set_regs): Likewise.
2645 (free_fail_stack_return): New function.
2646 (sift_states_backward): Fix the memory leak. Remove the handling
2647 OP_CONTEXT_NODE.
2648 (update_cur_sifted_state): Append some if clause to avoid redundant
2649 call.
2650 (sub_epsilon_src_nodes): Use IS_EPSILON_NODE since it might be a
2651 back reference.
2652 (check_dst_limits): Remove the handling OP_CONTEXT_NODE.
2653 (check_subexp_limits): Likewise.
2654 (search_subexp): Likewise.
2655 (sift_states_bkref): Likewise.
2656 (transit_state_mb): Likewise.
2657 (transit_state_bkref_loop): Likewise.
2658 (transit_state_bkref_loop): Likewise.
2659 (group_nodes_into_DFAstates): Likewise.
2660 (check_node_accept): Likewise.
2661 (sift_ctx_init): Add initializing.
2662
2663Tue Oct 15 14:18:53 2002 Arnold D. Robbins <arnold@skeeve.com>
2664
2665 * eval.c (set_IGNORECASE): Call set_RS() instead of
2666 set_FS_if_not_FIELDWIDTHS(). The former calls the latter
2667 for us, and also makes IGNORECASE affect RS like it's supposed to.
2668 * field.c (FS_re_yes_case, FS_re_no_case): New variables.
2669 (set_FS): Smarten up routine to not recompile FS_regexp if all
2670 that's changed is IGNORECASE or if switching back to FS from
2671 FIELDWIDTHS. Significant speed-up for cases where IGNORECASE
2672 is assigned to for every record.
2673 * io.c (RS_re_yes_case, RS_re_no_case): New variables.
2674 (set_RS): Similar changes as to set_FS(). In particular,
2675 IGNORECASE changing now affects record splitting too.
2676 * re.c (refree): Set rp->pat.tranaslate to NULL. It comes
2677 from casetable and shouldn't be freed. (Strictly necessary
2678 only for old regex, but a good idea anyway).
2679 Also, call regfree(& rp->pat) instead of manually free()ing
2680 things, since there's dynamically allocated stuff hiding in
2681 the buffer. Avoids a memory leak.
2682
2683Mon Oct 14 12:02:39 2002 Arnold D. Robbins <arnold@skeeve.com>
2684
2685 Major space reduction in array management. Overhead reduced
2686 to two NODE's per element from three.
2687
2688 * awk.h (ahash): Union is gone.
2689 (hash.ref): new union member.
2690 (ahnext): new definition into hash union.
2691 (ahvalue): new definition into hash union.
2692 (ahname_str): new member, points into hash union.
2693 (ahname_len): new member, points into hash union.
2694 (ahname_ref): new member, points into hash union.
2695 * array.c: Replaces uses of ahname member with string and
2696 length. Set the reference count correctly to 1 on new nodes.
2697 * eval.c (interpret): Case for Node_K_arrayfor. dupnode() the
2698 array indices, and set loop variable to new value made via
2699 make_string().
2700 * node.c (unref, dupnode): Node_ahash nodes are now also
2701 reference counted, a la strings. Similar code is used to
2702 increment/decrement the counts, and/or copy nodes as
2703 needed.
2704
2705 Unrelated:
2706 * awk.h (forsub): Removed. Not used.
2707
2708Sun Oct 13 16:58:27 2002 Stepan Kasal <kasal@math.cas.cz>
2709
2710 * profile.c (pprint): #undef the temporary defines at the end
2711 of the case.
2712 * eval.c (interpret): Likewise.
2713 (assign_val): we can unref() before doing dupnode().
2714 Also, move the check for NF < 0 from here ...
2715 * field.c (set_NF): ... to here.
2716 * main.c (varinit): no need to call set_NF().
2717 * awkgram.y (statements): don't be so generous when concatenating
2718 `statements' with a `statement'.
2719
2720
27212002-10-13 Isamu Hasegawa <isamu@yamato.ibm.com>
2722
2723 * regcomp.c: Synced with development sources.
2724 * regex_internal.c: Synced with development sources.
2725 * regex_internal.h: Synced with development sources.
2726 * regexec.c: Synced with development sources.
2727
2728Sun Oct 13 21:35:35 2002 Arnold D. Robbins <arnold@skeeve.com>
2729
2730 * awk.h (NODE): reflags is now unsigned long for:
2731 (exec_count): defined to be sub.nodep.reflags. Using `number'
2732 broke pgawk.
2733 * profile.c (Node_K_delete_loop): print out as a for loop
2734 with a comment that it's internally the same as `delete array'.
2735 * eval.c (Node_K_delete_loop): Increment the exec_count. Ooops.
2736 * configure.in (AM_GNU_GETTEXT_VERSION): New macro call.
2737 * custom.h: Updated description of the file at the top.
2738
2739Thu Oct 10 16:39:51 2002 Arnold D. Robbins <arnold@skeeve.com>
2740
2741 * awk.h (vname, exec_count): Now macros into different
2742 parts of the NODE structure that can be safely used for them.
2743 Saves 16 bytes per NODE.
2744 * eval.c: Changed use of `vname' to `varname' to avoid new
2745 macro.
2746 * main.c (lintfunc): Made ifdefed decls match awk.h.
2747 * eval.c (comp_func): Use memcmp instead of strcmp.
2748 * configure.in (AC_CONFIG_HEADER): Physically append custom.h
2749 to config.h to avoid subdir compiliation problems.
2750
2751Sun Oct 6 17:36:15 2002 Arnold D. Robbins <arnold@skeeve.com>
2752
2753 Updated to automake 1.7 and bison 1.50.
2754
2755 * INSTALL: Replaced with current version from automake 1.7.
2756 * config.guess: Replaced with current version from automake 1.7.
2757 * config.sub: Replaced with current version from automake 1.7.
2758 * depcomp: Replaced with current version from automake 1.7.
2759 * doc/texinfo.tex: Replaced with current version from automake 1.7.
2760 * install-sh: Replaced with current version from automake 1.7.
2761 * missing: Replaced with current version from automake 1.7.
2762 * mkinstalldirs: Replaced with current version from automake 1.7.
2763 * ylwrap: Replaced with current version from automake 1.7.
2764
2765 * configure.in (DYNAMIC): Updated AC_DEFINE(DYNAMIC) to
2766 three-argument form for autoheader.
2767 * acinclude.m4: Removed includes of jm-mktime.m4 and
2768 largefile.m4, which are now standard parts of Autoconf.
2769
2770 * Makefile.in: Regenerated.
2771 * aclocal.m4: Regenerated.
2772 * awkgram.c: Regenerated.
2773 * awklib/Makefile.in: Regenerated.
2774 * configure: Regenerated.
2775 * doc/Makefile.in: Regenerated.
2776 * test/Makefile.in: Regenerated.
2777
2778Sun Sep 29 16:47:49 2002 Arnold D. Robbins <arnold@skeeve.com>
2779
2780 * custom.h (__WIN32__): Added from gnuwin32 project, via
2781 Stepan Kasal.
2782
2783 * awkgram.y: For tawk compatibility, added `delete(array)'.
2784 To remain undocumented, since it's WAY non-standard.
2785
2786Sun Sep 22 22:23:50 2002 Arnold D. Robbins <arnold@skeeve.com>
2787
2788 * awk.h (re_cnt): Removed, not needed since no dfa code.
2789 * awkgram.y (regexp, a_regexp): Removed use of re_cnt.
2790 * re.c (re_update): Ditto.
2791
2792Thu Sep 19 10:55:37 2002 Arnold D. Robbins <arnold@skeeve.com>
2793
2794 * io.c (binmode): Create function if defined(WIN32) also.
2795
2796 Updated to gettext 0.11.5, autoconf 2.54 and automake 1.6.3.
2797
2798 * aclocal.m4: Regenerated.
2799 * m4/codeset.m4: Updated.
2800 * m4/gettext.m4: Updated.
2801 * m4/glibc21.m4: Updated.
2802 * m4/iconv.m4: Updated.
2803 * m4/lcmessage.m4: Updated.
2804 * m4/lib-ld.m4: Updated.
2805 * m4/lib-link.m4: Updated.
2806 * m4/lib-prefix.m4: Updated.
2807 * m4/progtest.m4: Updated.
2808 * po/Makefile.in.in: Updated.
2809 * po/Rules-quot: Updated.
2810 * po/boldquot.sed: Updated.
2811 * po/en@boldquot.header: Updated.
2812 * po/en@quot.header: Updated.
2813 * po/insert-header.sin: Updated.
2814 * po/quot.sed: Updated.
2815 * po/remove-potcdate.sin: Updated.
2816
2817Tue Sep 17 23:46:01 2002 Arnold D. Robbins <arnold@skeeve.com>
2818
2819 * configure.in: Moved override of INSTALL to just after
2820 AC_INIT so that it takes effect. Necessary for Autoconf 2.5x.
2821
2822Mon Sep 16 16:40:57 2002 Stepan Kasal <kasal@math.cas.cz>
2823
2824 * awkgram.y (want_assign): Removed.
2825 (SLASH_BEFORE_EQUAL, ASSIGN): New terminals; ``/='' is now
2826 formed from these two.
2827 (a_slash): New non-terminal, representing either '/' or
2828 SLASH_BEFORE_EQUAL.
2829 (assign_operator): New non-terminal, replaces ASSIGNOP.
2830 (REGEXP): yylex now eats the terminating '/' before
2831 returning REGEXP token.
2832 (exp): The check for C-like comments moved from here
2833 (regexp): ... to here.
2834 (common_exp): New non-terminal; contains common parts of exp
2835 and rexp. (a_relop, relop_or_less): New non-terminals.
2836 (rexp): some rules updated to be analogous to exp.
2837 (output_redir): Can contain only common_exp, not exp in general.
2838
2839Mon Sep 16 22:51:51 2002 Arnold D. Robbins <arnold@skeeve.com>
2840
2841 * io.c (two_way_open): Move label use_pipes outsidef of ifdef,
2842 just in case.
2843
2844Thu Sep 12 15:11:28 2002 Arnold D. Robbins <arnold@skeeve.com>
2845
2846 * awkgram.y (getfname): Return NULL if not found, remove
2847 fatal error. Could be an extension function.
2848 (dump_funcs): Walk symbol table counting functions before
2849 mallocing table, since there could be extension functions,
2850 func_count could be too small.
2851 * profile.c (pp_builtin): Handle NULL return from getfname().
2852 Print it as "extension_function()" if so.
2853
2854Tue Sep 10 17:33:48 2002 Arnold D. Robbins <arnold@skeeve.com>
2855
2856 Minor code simplification.
2857
2858 * awk.h (in_array): Change return type to NODE*.
2859 (assoc_exists): Remove declaration.
2860 * array.c (in_array): Change return type to NODE *.
2861 Return value is pointer to element value or NULL.
2862 (assoc_exists): Removed function.
2863 * eval.c (r_tree_eval): Case Node_in_array, change value
2864 to test return of in_array() against NULL.
2865 * io.c (pty_vs_pipes): Change test to make a tmp_string()
2866 of the index and call in_array(). Add free_temp() of
2867 subscript and free() of full_index (oops).
2868
28692002-09-10 Isamu Hasegawa <isamu@yamato.ibm.com>
2870
2871 * posix/regcomp.c: Wrap #include wchar.h and wctype.h in #if.
2872 (build_range_exp): Add castings to strlen invocations.
2873 (build_collating_symbol): Restore the type of characters from "char"
2874 to "unsigned char", and supplement castings.
2875 (build_collating_symbol): Likewise.
2876 (build_equiv_class): Likewise.
2877 (build_charclass): Likewise.
2878 (seek_collating_symbol_entry): Likewise.
2879 (parse_bracket_exp): Likewise.
2880 (build_word_op): Supplement a casting.
2881 * posix/regex_internal.c: Wrap #include wchar.h and wctype.h in #if.
2882 (re_string_allocate): Fix castings.
2883 (re_string_construct): Likewise.
2884 (re_string_construct_common): Likewise.
2885 (re_string_realloc_buffers): Likewise.
2886 (build_wcs_buffer): Likewise.
2887 (build_wcs_upper_buffer): Likewise.
2888 (re_string_skip_chars): Likewise.
2889 (re_string_reconstruct): Likewise.
2890 * posix/regex_internal.h: Restore the type of characters in
2891 re_string_t and bracket_elem_t from "char" to "unsigned char".
2892 (re_string_elem_size_at): Fix castings.
2893 * posix/regexec.c: Wrap #include wchar.h and wctype.h in #if.
2894 (transit_state_bkref_loop): Restore the type of characters from
2895 "char" to "unsigned char", and append a cast to "char*" pointer in
2896 array subscript.
2897 (check_node_accept_bytes): Likewise.
2898 (find_collation_sequence_value): Likewise.
2899
2900Thu Sep 5 13:15:09 2002 Arnold D. Robbins <arnold@skeeve.com>
2901
2902 * re.c (remaybelong): New routine.
2903 (reisstring): Simplified the code a bit.
2904 * awk.h (remaybelong): Declaration added.
2905 * io.c (get_a_record): Change fourth grungy special case to
2906 use remaybelong() instead of strchr() on last character.
2907
2908Wed Sep 4 13:20:26 2002 Arnold D. Robbins <arnold@skeeve.com>
2909
2910 * io.c (do_input): Recode guts of main loop to be easier
2911 to trace with a debugger.
2912 (get_a_record): Fourth grungy special case for RE-based
2913 record splitting added. See explanatory comments there
2914 and test/rebuf.awk.
2915
29162002-09-03 Isamu Hasegawa <isamu@yamato.ibm.com>
2917
2918 * posix/regcomp.c (regcomp): Append "__restrict" modifier to avoid
2919 warnings of some compilers.
2920 (build_collating_symbol): Change the type of characters from
2921 "unsigned char" to "char", and append a cast to "char*" pointer in
2922 array subscript.
2923 (build_collating_symbol): Likewise.
2924 (build_equiv_class): Likewise.
2925 (build_charclass): Likewise.
2926 (re_compile_pattern): Remove incorrect cast.
2927 (re_compile_fastmap_iter): Change the type of characters from
2928 "unsigned char" to "char", and append a cast to "char*" pointer
2929 in array subscript.
2930 (parse_bracket_exp): Likewise.
2931 * posix/regex_internal.c (re_string_construct_common): Likewise.
2932 (re_string_allocate): Likewise.
2933 (re_string_construct): Likewise.
2934 (re_string_realloc_buffers): Likewise.
2935 (build_wcs_buffer): Likewise.
2936 (re_string_reconstruct): Likewise.
2937 * posix/regex_internal.h: Change the type of characters in
2938 re_string_t and bracket_elem_t from "unsigned char" to "char".
2939 * posix/regexec.c (regexec): Append "__restrict" modifier to avoid
2940 warnings of some compilers.
2941 (transit_state_bkref_loop): Change the type of characters from
2942 "unsigned char" to "char", and append a cast to "char*" pointer in
2943 array subscript.
2944 (check_node_accept_bytes): Likewise.
2945 (find_collation_sequence_value): Likewise.
2946
2947Wed Aug 21 15:40:36 2002 Corinna Vinschen <vinschen@redhat.com>
2948
2949 * configure.in: Define --without-libintl-prefix and
2950 --without-libiconv-prefix for Cygwin by default.
2951 * Makefile.am: Call fixvers from $(srcdir).
2952 * awk.h: Don't define O_BINARY on Cygwin.
2953
2954Wed Aug 21 15:31:57 2002 Andreas Buening <andreas.buening@nexgo.de>
2955
2956 * configure.in (AC_OBJEXT, AC_EXEEXT): Added. Removed OS/2 goo.
2957 * Makefile.am (check-local): Add $(EXEEXT) suffixes, remove OS/2 goo.
2958 * regcomp.c, regex_internal.c, regexec.c: Conditionalize include of
2959 <wchar.h> and <wctype.h> on RE_ENABLE_I18N.
2960
2961Wed Aug 21 14:43:57 2002 Arnold D. Robbins <arnold@skeeve.com>
2962
2963 * gettext.h (ENABLE_NLS): Add include of locale.h so that things
2964 compile even without optimization. Sheesh.
2965 * io.c (two_way_open, pty_vs_pipes): Conditionalize pty code on
2966 HAVE_TERMIOS_H.
2967
2968Thu Aug 8 22:16:10 2002 Arnold D. Robbins <arnold@skeeve.com>
2969
2970 * main.c (main): Force LC_NUMERIC locale to "C", esp. for
2971 M$ systems. Ugh.
2972
2973Wed Aug 7 13:42:01 2002 Arnold D. Robbins <arnold@skeeve.com>
2974
2975 * io.c (get_a_record): Improve test for newlines at beginning of
2976 record but with nothing following it. See test/nulrsend.
2977
2978Mon Aug 5 10:12:39 2002 Arnold D. Robbins <arnold@skeeve.com>
2979
2980 Add option to use ptys instead of pipes for |&.
2981 Basic plumbing originally from Paolo Bonzini <bonzini@gnu.org>.
2982
2983 * awk.h (RED_PTY): New flag.
2984 (assoc_exists): Add declaration.
2985 * array.c (in_array): Use FALSE not zero for return value.
2986 (assoc_exists): New routine to find and return value for an index
2987 in an array.
2988 * configure.in: test for termios.h and stropts.h, and grantpt function.
2989 * io.c: include termios.h and stropts.h if available.
2990 (redflags2str): Add RED_PTY to table.
2991 (redirect): Add RED_PTY to flags turned off when searching.
2992 (close_redir): close write channel for two-way pipes
2993 that use ptys by sending an EOF.
2994 (two_way_open): If pty_vs_pipe(), use pty's to open two-way pipes as
2995 they are line-buffered by default --> alleviates deadlock problems.
2996 If fails, fall back to using pipes.
2997 (pty_vs_pipe): New function.
2998 * main.c (arg_assign): Clean up English in some of the error messages.
2999
3000Sun Aug 4 00:37:38 2002 Stepan Kasal <kasal@math.cas.cz>
3001
3002 * re.c (make_regexp): don't pass the error message returned by
3003 re_compile_pattern() to gettext(); it's already gettextized.
3004 (make_regexp): minor reformat of code.
3005
3006Wed Jul 31 23:50:31 2002 Arnold D. Robbins <arnold@skeeve.com>
3007
3008 Removed dfa code from gawk since not really needed with new regex.
3009
3010 * Makefile.am: Removed dfa.h and dfa.c.
3011 * awk.h (struct Regexp): Removed `dfareg' and `dfa' members.
3012 (make_regexp): Last parameter in function went away, changed decl.
3013 (avoid_dfa): Removed declaration.
3014 * awkgram.y: Fixed call to make_regexp().
3015 * eval.c (match_op): Simplified: removed call to avoid_dfa() and
3016 `kludge_need_start' variable. Instead, pass FALSE as last parameter
3017 of research().
3018 * field.c (set_FS): Fixed call to make_regexp().
3019 * io.c (get_a_record, set_RS): Fixed calls to make_regexp().
3020 * re.c (make_regexp): Removed last paramter (`dfa') from function.
3021 Simplified the code.
3022 (research): Simplified the code, removed calls to dfa stuff.
3023 (dfaerror): Removed function.
3024 (re_update): Fixed call to make_regexp().
3025 (avoid_dfa): Removed function.
3026
3027Thu Jul 25 21:55:45 2002 Arnold D. Robbins <arnold@skeeve.com>
3028
3029 * regcomp.c, regex_internal.c, regex_internal.h, regexec.c: Bug
3030 fixes from Isamu Hasegawa <isamu@yamato.ibm.com> and Stepan Kasal
3031 <kasal@math.cas.cz> applied.
3032
3033Sat Jul 6 23:28:37 2002 Arnold D. Robbins <arnold@skeeve.com>
3034
3035 * awkgram.y (yyerror): Change text of unexpected newline message to
3036 include end of string.
3037
3038Mon Jun 17 17:58:55 2002 Arnold D. Robbins <arnold@skeeve.com>
3039
3040 * field.c (do_split): Per Michal Jaegermann, move free_temp(fs)
3041 above label `out'.
3042
3043Tue Jun 11 23:26:09 2002 Paul Eggert <eggert@twinsun.com>
3044
3045 Update to autoconf 2.53 and automake 1.6.1.
3046
3047 * acconfig.h: Removed.
3048 * m4/isc-posix.m4: Removed.
3049 * m4/jm-mktime.m4: Removed.
3050 * m4/largefile.m4: Removed.
3051 * m4/ssize_t.m4: Removed.
3052 * ansi2knr.c: updated.
3053 * depcomp: updated.
3054 * install-sh: updated.
3055 * missing: updated.
3056 * mkinstalldirs: updated.
3057 * ylwrap: updated.
3058
3059 * configure.in: Improved quoting.
3060 * acinclude.m4: Use `m4_sinclude', not antiquated `sinclude'.
3061
3062Tue Jun 11 23:08:40 2002 Arnold D. Robbins <arnold@skeeve.com>
3063
3064 * configure.in: Add `getgrent' to list of functions checked
3065 so that awklib/grcat is compiled correctly.
3066
3067Tue Jun 11 22:18:42 2002 Stepan Kasal <kasal@math.cas.cz>
3068
3069 Improve argument parsing and -v assignment.
3070
3071 * awk.h (struct src): Add additional enum values.
3072 (arg_assign): Return type and arg list changes.
3073 * io.c (nextfile): Add extra arg in call to `arg_assign'.
3074 * main.c (pre_assign): Nuked.
3075 (allocfiles): New variable.
3076 (srcfiles_add, preassigns_add): New macros.
3077 (main): Logic cleaned up.
3078 (add_src): New function.
3079
3080 Use `size_t' for optimal_bufsize function.
3081
3082 * awkgram.y (yylex): `len' is now size_t.
3083 * pc/gawkmisc.pc (optimal_bufsize): Change return type to size_t.
3084 * posix/gawkmisc.c (optimal_bufsize): Change return type to size_t.
3085 * unsupported/atari/gawkmisc.atr (optimal_bufsize): Change return type
3086 to size_t.
3087 * unsupported/tandem/tmisc.c (optimal_bufsize): Change return type to size_t.
3088 * vms/gawkmisc.vms (optimal_bufsize): Change return type to size_t.
3089 * README_d/README.hpux: New file.
3090
3091Fri May 24 12:23:01 2002 Arnold D. Robbins <arnold@skeeve.com>
3092
3093 * profile.c (init_profiling): Remove default initialization
3094 of `prof_fp' to stderr. Per Stepan Kasal <kasal@math.cas.cz>.
3095
3096Wed May 15 15:39:17 2002 Arnold D. Robbins <arnold@skeeve.com>
3097
3098 Work through builtin operations to make sure that
3099 anything that might have side effects gets dealt with.
3100
3101 * array.c (do_delete): Evaluate subscript first before
3102 checking if something is or isn't an array.
3103 * builtin.c (sub_common): Evaluate replacement text, and
3104 free it if no match of regex in source text.
3105
3106Wed May 15 15:30:34 2002 Arnold D. Robbins <arnold@skeeve.com>
3107
3108 Switch to new version of regex from IBM Japan.
3109
3110 * regcomp.c: New file.
3111 * regex.c: Replaced with new version.
3112 * regex.h: Replaced with new version.
3113 * regex_internal.c: New file.
3114 * regex_internal.h: New file.
3115 * regexec.c: New file.
3116 * Makefile.am (EXTRA_SOURCES): New files added.
3117
3118Tue May 14 17:04:05 2002 Arnold D. Robbins <arnold@skeeve.com>
3119
3120 * awk.h (<locale.h>): Move check and include into gettext.h.
3121 * gettext.h (<locale.h>): Add check and include per patch from
3122 Bruno Haible.
3123
3124 * field.c (do_split): When checking for split of null string,
3125 evaluate seperator if it's not FS, since could have side effects.
3126 At end, free_temp(fs), not free_temp(sep).
3127 Both of these thanks to Stepan Kasal <kasal@math.cas.cz>.
3128
3129Mon May 13 00:41:31 2002 Arnold D. Robbins <arnold@skeeve.com>
3130
3131 * custom.h (ultrix): Add define GETGROUPS_NOT_STANDARD.
3132 * main.c (init_groupset): For GETGROUPS_NOT_STANDARD, use old way
3133 to set `ngroups'.
3134
31352002-05-10 Andreas Schwab <schwab@suse.de>
3136
3137 * dfa.c (parse_bracket_exp_mb): Fix warning.
3138
3139Thu May 9 22:28:32 2002 Arnold D. Robbins <arnold@skeeve.com>
3140
3141 * builtin.c (sub_common): Fix logic for match of null strings to
3142 get correct semantics. See test/gsubtst2.*.
3143 * field.c (do_split): Minor code cleanup; the third arg to split()
3144 is set to be FS by the grammar, so don't need to check it for NULL.
3145 Thanks to Stepan Kasal <kasal@math.cas.cz>.
3146 * awk.h (locale.h): Move include before that of "gettext.h" for systems
3147 that define functions that gettext.h would use when NLS is disabled.
3148 Per bug report from Ayamura Kikuchi <ayamura@ayamura.org>.
3149
3150Tue May 7 17:31:01 2002 Arnold D. Robbins <arnold@skeeve.com>
3151
3152 Miscellanious patches courtesy of Stepan Kasal <kasal@math.cas.cz>.
3153
3154 * field.c, main.c: Tidy up some comments.
3155 * field.c (set_FIELDWIDTHS): Init fw_alloc to 4 so it isn't
3156 immediately realloced.
3157 * main.c (load_procinfo): Check value of FS/FIELDWIDTHS for
3158 value of PROCINFO["FS"].
3159 * awk.h (set_FS_if_not_FIELDWIDTHS): Removed decl.
3160 * field.c (set_FS_if_not_FIELDWIDTHS): Removed function.
3161 * eval.c (set_IGNORECASE): Use inline code checking `using_fieldwidths()'.
3162 * io.c (set_IGNORECASE): Ditto.
3163
3164Sun May 5 14:28:34 2002 Arnold D. Robbins <arnold@skeeve.com>
3165
3166 Fix a memory leak in array for loops if the body contains a
3167 `next' or `nextfile' statement. The changes maintain a stack
3168 of active for loops that is pushed and popped for each loop,
3169 and popped entirely for `next', `nextfile', etc.
3170
3171 * eval.c (forloops_active, pop_forloop, pop_all_forloops, push_forloop):
3172 new functions.
3173 (interpret): Case Node_K_arrayfor, call push and pop functions.
3174 Case Node_rule_list: pop loops and pop fcalls after longjmp.
3175 Cases Node_K_next, Node_K_nextfile, Node_K_break and
3176 Node_K_continue, removed check before longjmp.
3177 Case Node_K_exit: add loop check.
3178 (loop_stack, nloops, nloops_active): New variables that implement
3179 the stack.
3180
3181Wed May 1 16:41:32 2002 Arnold D. Robbins <arnold@skeeve.com>
3182
3183 * Release 3.1.1: Release tar file made.
3184
3185Wed May 1 16:07:49 2002 Arnold D. Robbins <arnold@skeeve.com>
3186
3187 * getopt.c: Installed latest version from glibc.
3188
3189Sun Apr 28 17:19:07 2002 Arnold D. Robbins <arnold@skeeve.com>
3190
3191 * fixvers: Changed patterns to allow test versions of the
3192 form `gawk-3.1.1a'.
3193 * patchlev.h: Patchlevel is now a string constant.
3194 * main.c (version): Print patchlevel using %s, not %d.
3195 * Makefile.am: Rework DEFPATH stuff and datadir stuff yet again.
3196
3197 * config.sub: Updated with current version from ftp.gnu.org.
3198 * config.guess: Ditto.
3199
3200 Upgrade to gettext-0.11.2:
3201
3202 * ABOUT-NLS: Replaced with version from gettext 0.11.2.
3203 * config.rpath: Replaced with version from gettext 0.11.2.
3204 * intl/*: Replaced with version from gettext 0.11.2.
3205 * po/Makefile.in.in: Replaced with version from gettext 0.11.2.
3206 * po/Makevars.template: Replaced with version from gettext 0.11.2.
3207 * po/Rules-quot: Replaced with version from gettext 0.11.2.
3208 * po/boldquot.sed: Replaced with version from gettext 0.11.2.
3209 * po/en@boldquot.header: Replaced with version from gettext 0.11.2.
3210 * po/en@quot.header: Replaced with version from gettext 0.11.2.
3211 * po/insert-header.sin: Replaced with version from gettext 0.11.2.
3212 * po/quot.sed: Replaced with version from gettext 0.11.2.
3213 * po/remove-potcdate.sin: Replaced with version from gettext 0.11.2.
3214 * m4/codeset.m4: Replaced with version from gettext 0.11.2.
3215 * m4/gettext.m4: Replaced with version from gettext 0.11.2.
3216 * m4/glibc21.m4: Replaced with version from gettext 0.11.2.
3217 * m4/iconv.m4: Replaced with version from gettext 0.11.2.
3218 * m4/isc-posix.m4: Replaced with version from gettext 0.11.2.
3219 * m4/lcmessage.m4: Replaced with version from gettext 0.11.2.
3220 * m4/lib-ld.m4: Replaced with version from gettext 0.11.2.
3221 * m4/lib-link.m4: Replaced with version from gettext 0.11.2.
3222 * m4/lib-prefix.m4: Replaced with version from gettext 0.11.2.
3223 * m4/progtest.m4: Replaced with version from gettext 0.11.2.
3224
3225Wed Apr 17 15:09:45 2002 Arnold D. Robbins <arnold@skeeve.com>
3226
3227 * regex.c (PREFIX): Change test for token concatenation ability
3228 to `#ifdef HAVE_STRINGIZE'. If a cpp has one, it ought to have
3229 the other.
3230
3231Tue Apr 16 12:26:06 2002 Arnold D. Robbins <arnold@skeeve.com>
3232
3233 * profile.c (tree_eval): Make unary minus case smarter,
3234 use is_scalar test and if false parenthesize expression.
3235 Add Node_TEXTDOMAIN case.
3236 (pp_lhs, is_scalar, prec_level): Add Node_TEXTDOMAIN cases.
3237
3238Thu Apr 11 21:28:33 2002 Arnold D. Robbins <arnold@skeeve.com>
3239
3240 * array.c (do_adump): Spelling fix in output message.
3241 * builtin.c: Ditto, in multiple routines.
3242 (do_toupper, do_tolower): Add cast to size_t in assigment to mbclen
3243 for some compilers.
3244 * re.c (research): Fix way returning is done to silence some
3245 compiler diagnostics.
3246
3247Wed Apr 10 19:30:51 2002 Arnold D. Robbins <arnold@skeeve.com>
3248
3249 * Makefile.am (datadir): Set directly to have `/awk'.
3250 (DEFPATH): Go back to using $(datadir) for path.
3251
3252Tue Apr 9 17:34:09 2002 Arnold D. Robbins <arnold@skeeve.com>
3253
3254 Upgraded to gettext 0.11.1.
3255
3256 * Makefile.am (LDADD): Use @LIBINTL@ instead of @INTLLIBS@.
3257 * ABOUT-NLS: Version from 0.11.1.
3258 * config.rpath: Version from 0.11.1.
3259 * aclocal.m4: Regenerated based on new files.
3260 * intl/*: Replaced with version from 0.11.1.
3261 * m4/ChangeLog: New file.
3262 * m4/codeset.m4: New file.
3263 * m4/gettext.m4: Version from 0.11.1.
3264 * po/ChangeLog: New file.
3265 * po/Makefile.in.in: Version from 0.11.1.
3266 * po/remove-potcdate.sin: New file.
3267
3268Mon Apr 8 22:22:58 2002 Arnold D. Robbins <arnold@skeeve.com>
3269
3270 * Makefile.am (libexecdir): Set directly to have `/awk'.
3271 (DEFPATH): Use $(pkgdatadir) for path.
3272 (install-exec-hook): Add version link for pgawk.
3273 (uninstall-links): Remove pgawk version link.
3274
3275Wed Mar 20 13:44:21 2002 Isamu Hasegawa <isamu@yamato.ibm.com>
3276
3277 * regex.c (__alignof__): Definition for non-GCC compilers.
3278
3279Sun Mar 17 17:41:55 2002 Arnold D. Robbins <arnold@skeeve.com>
3280
3281 * io.c (do_pathopen): Malloc buffers to hold constructed
3282 filenames: No Arbitrary Limits! Thanks to keoki@techie.com
3283 for the bug report.
3284
3285Sun Mar 10 16:59:06 2002 Scott Deifik <scottd@amgen.com>
3286
3287 * awk.h (LOCALEDIR): Provide a definition in case not using
3288 i18n stuff.
3289
3290Wed Mar 6 18:14:44 2002 Arnold D. Robbins <arnold@skeeve.com>
3291
3292 * main.c (usage): Add some explanatory text and examples at end.
3293
3294Sun Mar 3 16:42:50 2002 Arnold D. Robbins <arnold@skeeve.com>
3295
3296 * getopt.h, getopt.c, getopt1.c: Update to current version
3297 from glibc CVS.
3298
3299Fri Feb 22 15:53:38 2002 Isamu Hasegawa <isamu@yamato.ibm.com>
3300
3301 * dfa.c (fetch_wc): Fix type from wchar_t to wint_t.
3302 (parse_bracket_exp_mb): Likewise.
3303 * regex.c (extract_number): Retrieve the sign information from
3304 byte-code in case of AIX.
3305
3306Thu Feb 21 16:44:24 2002 Arnold D. Robbins <arnold@skeeve.com>
3307
3308 * re.c (resetup): Moved setting re_max_failures into regex.c.
3309 * regex.c (re_max_failures): Set to really big if REGEX_MALLOC
3310 defined. Do this in both places that define re_max_failures.
3311
3312Thu Feb 21 19:02:22 2002 Isamu Hasegawa <isamu@yamato.ibm.com>
3313
3314 * builtin.c (sub_common): Avoid index_multibyte_buffer invocation
3315 in single byte character environments.
3316
3317Thu Feb 21 10:08:56 2002 Isamu Hasegawa <isamu@yamato.ibm.com>
3318
3319 * dfa.c (parse_bracket_exp_mb): For ':', use wctype_t in MALLOC,
3320 not wchar_t.
3321
3322Thu Feb 21 09:52:16 2002 Arnold D. Robbins <arnold@skeeve.com>
3323
3324 Upgraded to automake 1.5 and gettext-0.11.
3325 Also bug fix to multibyte code.
3326
3327 * ABOUT-NLS: upgraded.
3328 * config.guess, config.sub, config.rpath, gettext.h, ylwrap: new files.
3329 * Makefile.am: added above to appropriate places.
3330 * awk.h: Replace libintl.h and macros with include of gettext.h.
3331 (emalloc, erealloc): Add num bytes to error message, put string inside _().
3332 (index_multibyte_buffer): Removed decl.
3333 * awklib/Makefile.am: Use $(EXEEXT) for grcat and pwcat targets.
3334 * builtin.c (index_multibyte_buffer): Made static to this file.
3335 (sub_common): Add checks that replacement string is length > 0 so
3336 that we don't try to malloc(0): this fails on some systems.
3337 * configure.in (AM_GNU_GETTEXT): Update macro for gettext 0.11.
3338 (ALL_LINGUAS): Removed.
3339 * m4/codeset.m4: new file.
3340 * m4/gettext.m4: updated.
3341 * m4/glibc21.m4: new file.
3342 * m4/iconv.m4: new file.
3343 * m4/isc-posix.m4: new file.
3344 * m4/lcmessage.m4: updated.
3345 * m4/lib-ld.m4: new file.
3346 * m4/lib-link.m4: new file.
3347 * m4/lib-prefix.m4: new file.
3348 * m4/progtest.m4: updated.
3349 * intl/*: Replaced with version from gettext 0.11.
3350 * po/*: Revised for gettext 0.11.
3351
3352Mon Feb 18 14:42:39 2002 Arnold D. Robbins <arnold@skeeve.com>
3353
3354 * builtin.c (nondec2awknum): Change assert to runtime check
3355 in case user passed in bad data.
3356
33572002-02-17 Paul Eggert <eggert@twinsun.com>
3358
3359 * re.c (resetup): Try to avoid silly limitation of regex.c by
3360 setting re_max_failures to the largest reasonable value.
3361
3362Sun Feb 17 14:57:43 2002 Arnold D. Robbins <arnold@skeeve.com>
3363
3364 * builtin.c (research): If re_search() returns -2, the
3365 match failed since regex couldn't allocate enough memory
3366 for what it needed. Fail with a fatal message instead.
3367 This is a workaround, not a fix, but I don't mess with
3368 regex.[ch].
3369
3370Fri Feb 8 16:01:11 2002 Arnold D. Robbins <arnold@skeeve.com>
3371
3372 * awkgram.y (LEX_FOR): Fix case of array loop with body of single
3373 delete statement to actually check the right things to make the
3374 optimization.
3375 * profile.c (tree_eval): Add case for Node_K_delete_loop.
3376 (prec_level): Ditto.
3377
3378Mon Feb 4 10:38:00 2002 Bruno Haible <bruno@clisp.org>
3379
3380 * awk.h (dcngettext): New macro.
3381 (do_dcngettext): New declaration.
3382 * awkgram.y (tokentab): Add dcngettext.
3383 (snode): Add a warning for incorrect use of dcngettext.
3384 (dumpintlstr): fflush at the end, not in the middle.
3385 (dumpintlstr2): New function.
3386 * builtin.c (localecategory_from_argument): New function, extracted
3387 from do_dcgettext.
3388 (do_dcgettext): Call it.
3389 (do_dcngettext): New function.
3390
3391Sun Feb 3 17:56:20 2002 Bruno Haible <bruno@clisp.org>
3392
3393 * builtin.c (do_bindtextdomain): Don't free the same variable twice.
3394 * main.c (main): Call setlocale for LC_MESSAGE, to make dcgettext
3395 function work on glibc systems.
3396
3397Wed Jan 23 15:03:36 2002 Andreas Buening <andreas.buening@nexgo.de>
3398
3399 * configure.in (PATH_SEPARATOR): Code added for OS/2.
3400 Makefile.am (PATH_SEPARATOR): Added.
3401 (DEFPATH): Make use of PATH_SEPARATOR.
3402
3403Wed Jan 23 14:46:04 2002 Arnold D. Robbins <arnold@skeeve.com>
3404
3405 * awkgram.y (yylex): Add test for lasttok != '$' when looking
3406 at _"...". See comments in code.
3407
3408Wed Aug 15 07:43:10 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3409
3410 * regex.c : Implements the codes for exactn_bin to work correctly
3411 in multibyte environments, in case of invalid multibyte sequence.
3412
3413Wed Aug 15 07:36:56 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3414
3415 * regex.c : Implements the codes for charset/charset_not to
3416 work in multibyte environments.
3417
3418Wed Aug 15 05:04:34 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3419
3420 * regex.c : Add some comments.
3421
3422Wed Aug 15 05:04:15 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3423
3424 * regex.c (count_mbs_length): New function, check the mutibyte
3425 strings and count how many wchar_t the substring occupy.
3426 (CHAR_T): New macro, character type depending on
3427 environments(singlebyte/multibyte).
3428 (UCHAR_T): New macro, unsigned character type.
3429 (COMPILED_BUFFER_VAR): New macro, the buffer containing
3430 the compiled buffer.
3431 Adapt singlebyte/multibyte environments with CHAR_T, UCHAR_T,
3432 and COMPILED_BUFFER_VAR.
3433
3434Mon Jun 25 09:00:41 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3435
3436 * regex.c : Reorganize code to build code twice. byte_* are
3437 for single byte, wcs_* are for multibyte character sets.
3438 Chose functions according to current locale dynamically.
3439 * regex.c (convert_mbs_to_wcs): New function, convert multibyte
3440 strings to wide character strings for multibyte environments.
3441
3442Fri Jun 22 05:43:50 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3443
3444 * regex.c (MBS_SUPPORT): New macro, defined if the environment
3445 can handle multibyte characters.
3446 (OFFSET_ADDRESS_SIZE): Offset address size in the
3447 compiled buffer.
3448 Rewrite offset addresses with OFFSET_ADDRESS_SIZE.
3449
3450Thu Apr 26 08:03:17 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3451
3452 * builtin.c (index_multibyte_buffer) : inspect the buffer and write
3453 the index.
3454 (sub_common) : in multibyte environment, skip multibyte characters
3455 when we check special characters.
3456 * awk.h (index_multibyte_buffer) : add prototype.
3457 * eval.c (cmp_nodes) : in multibyte environment, compare per character.
3458 * field.c (re_parse_field) : in multibyte environment, avoid to
3459 call research() on invalid boundary.
3460 (sc_parse_field) : in multibyte environment, avoid to compare on
3461 invalid boundary.
3462 (null_parse_field) : in multibyte environment, split per
3463 character, not per byte.
3464 * io.c (get_a_record) : in multibyte environment, avoid to compare
3465 on invalid boundary.
3466
3467Wed Apr 25 08:29:47 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3468
3469 * awk.h (strncasecmpmbs) : add prototype.
3470 * builtin.c (strncasecmpmbs) : new function like strncasecmp but for
3471 multibyte strings.
3472 (do_index) : in multibyte environment, compare per character.
3473 * builtin.c (do_tolower) : in multibyte environment, user towlower
3474 instead of TOLOWER.
3475 (do_toupper) : in multibyte environment, user towupper instead
3476 of TOUPPER.
3477
3478Tue Apr 24 10:38:06 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3479
3480 In multibyte environments, handle multibyte characters as single
3481 characters in bracket expressions.
3482
3483 * dfa.h (mb_char_classes) : new structure.
3484 (mbcsets) : new variable.
3485 (nmbcsets) : new variable.
3486 (mbcsets_alloc) : new variable.
3487 * dfa.c (prtok) : handle MBCSET.
3488 (fetch_wc) : new function to fetch a wide character.
3489 (parse_bracket_exp_mb) : new function to handle multibyte character
3490 in lex().
3491 (lex) : invoke parse_bracket_exp_mb() for multibyte bracket expression.
3492 (atom) : handle MBCSET.
3493 (epsclosure) : likewise.
3494 (dfaanalyze) : likewise.
3495 (dfastate) : likewise.
3496 (match_mb_charset) : new function to judge whether a bracket match
3497 with a multibyte character.
3498 (check_matching_with_multibyte_ops) : handle MBCSET.
3499 (dfainit) : initialize new variables.
3500 (dfafree) : free new variables.
3501
3502Mon Apr 23 01:40:09 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3503
3504 Implement the mechanism to match with multibyte characters,
3505 and use it for `period' in multibyte environments.
3506
3507 * dfa.h (mbps) : new variable.
3508 * dfa.c (prtok) : handle ANYCHAR.
3509 (lex) : use ANYCHAR for `period' in multibyte environments.
3510 (atom) : handle ANYCHAR.
3511 (state_index) : initialize mbps in multibyte environments.
3512 (epsclosure) : handle ANYCHAR.
3513 (dfaanalyze) : handle ANYCHAR.
3514 (dfastate) : handle ANYCHAR.
3515 (realloc_trans_if_necessary) : new function.
3516 (transit_state_singlebyte) : new function.
3517 (match_anychar) : new function.
3518 (check_matching_with_multibyte_ops) : new function.
3519 (transit_state_consume_1char) : new function.
3520 (transit_state) : new function.
3521 (dfaexec) : invoke transit_state if expression can match with
3522 a multibyte character in multibyte environments.
3523 (dfamust) : handle ANYCHAR.
3524
3525Fri Apr 20 11:31:24 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3526
3527 Avoid incorrect state transition in multibyte environments.
3528
3529 * dfa.h (nmultibyte_prop) : new variable.
3530 (multibyte_prop) : new variable.
3531 * dfa.c (addtok) : set inputwcs.
3532 (dfastate) : avoid incorrect state transition in multibyte
3533 environments.
3534 (dfaexec) : likewise.
3535 (dfainit) : init multibyte_prop.
3536 (dfafree) : free multibyte_prop.
3537 (inputwcs): new variable.
3538 (mblen_buf) : new variable contains the amount of remain byte
3539 of corresponding multibyte character in the input string.
3540
3541Fri Apr 20 06:28:59 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3542
3543 Handle a multibyte character followed by '*', '+', and '{n,m}'
3544 correctly.
3545
3546 * dfa.c (update_mb_len_index): new function.
3547 Support for multibyte string.
3548 (FETCH) : call update_mb_len_index.
3549 (lex) : check cur_mb_index not to misunderstand multibyte characters.
3550 (atom) : make a tree from a multibyte character.
3551 (dfaparse) : initialize new variables.
3552 (mbs) : new variable.
3553 (cur_mb_len) : new variable.
3554 (cur_mb_index) : new variable.
3555
3556Thu Apr 19 09:32:47 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3557
3558 * awkgram.y (cur_mbstate) : new varialble containing means current
3559 shift state.
3560 (cur_char_ring) : new varialbe reffering the buffer which contains
3561 last some character from the buffer.
3562 (cur_ring_idx) : new variable containing the current index on
3563 cur_char_ring.
3564 (nextc_is_1stbyte) : new macro, means that last nextc() return a
3565 singlebyte character or 1st byte of a multibyte character.
3566 (nextc) : check the buffer and update cur_ring_char in multibyte
3567 environments.
3568 (pushback) : adjust cur_ring_idx in multibyte environments.
3569 (yylex) : add check whether nextc() returned 1st-byte in multibyte
3570 environments.
3571 * re.c (make_regexp) : in multibyte environment, skip multibyte
3572 characters when we check special characters.
3573
3574Wed Apr 18 07:58:20 2001 Isamu Hasegawa <isamu@yamato.ibm.com>
3575
3576 * awk.h (MBS_SUPPORT) : New flag, means supporting multibyte strings.
3577 * configure.in : add check for wchar.h, wctype.h, mbrtowc, and mbrlen.
3578
3579Wed Jan 16 16:32:40 2002 Arnold D. Robbins <arnold@skeeve.com>
3580
3581 * builtin.c (do_strtonum): Simplified. Check first if the
3582 value matches a non-decimal number, and if so convert it.
3583 Otherwise do a regular force_number.
3584
3585Mon Jan 7 22:12:15 2002 Arnold D. Robbins <arnold@skeeve.com>
3586
3587 * awkgram.y (statement): moved delete, print, and expressions into
3588 new non-terminal `simple_stmt'. Allow opt_simple_stmt in the
3589 first and third part of a for loop, per latest POSIX, which documents
3590 an otherwise undocumented historical oddity in Unix awk. This has
3591 the pleasant side effect of making line numbers more accurate for
3592 messages involving delete statements.
3593 (opt_simple_stmt, simple_stmt): new non-terminals.
3594
3595 Based on bug report from drj@pobox.com.
3596
3597Mon Dec 24 14:04:02 2001 Arnold D. Robbins <arnold@skeeve.com>
3598
3599 * configure.in: Changes for VMS with new strftime:
3600 (AC_HEADER_TIME): added
3601 (AC_CHECK_HEADERS): Check for sys/time.h.
3602 (TIME_T_IN_SYS_TYPES_H): Add header check.
3603 * acconfig.h (TIME_T_IN_SYS_TYPES_H): Added.
3604
3605Wed Dec 19 16:01:58 2001 Peter J. Farley III <pjfarley@dorsai.org>
3606
3607 * configure.in: Add MS-DOS to getpgrp special case.
3608 * dfa.c, getopt.c, regex.c: Fix code to work with --disable-nls.
3609
3610Wed Dec 19 15:59:25 2001 Eli Zaretskii <eliz@is.elta.co.il>
3611
3612 * profile.c (init_profiling_signals) [__DJGPP__]: Use SIGINT
3613 instead of SIGHUP and SIGQUIT instead of SIGUSR1.
3614
3615Tue Dec 18 20:56:07 2001 Andreas Buening <andreas.buening@nexgo.de>
3616
3617 More OS/2 stuff.
3618
3619 * awk.h (O_BINARY): Don't redefine for EMX.
3620 * io.c (gawk_popen): Add __EMX__ in case compiling DOS executable.
3621 * configure.in: Add OS/2 to case for manual GETPGRP_VOID.
3622
3623Tue Dec 4 17:54:30 2001 Arnold D. Robbins <arnold@skeeve.com>
3624
3625 New configure time option, --with-whiny-user-strftime.
3626
3627 * configure.in (AC_ARG_WITH): Add appropriate code for autoconf.
3628 * accondig.h (USE_INCLUDED_STRFTIME): add #undef for it.
3629 * custom.h (USE_INCLUDED_STRFTIME): set things up write.
3630
3631Tue Dec 4 16:44:07 2001 Andreas Buening <andreas.buening@nexgo.de>
3632
3633 Mongo patch for updated OS/2 support.
3634
3635 * awk.h (TOUPPER, TOLOWER): Define only if not already defined.
3636 * awkgram.y (extproc feature): Add ifdef for __EMX__.
3637 * gawkmisc.c (__EMX__): include pc/gawkmisc.c directly.
3638 * io.c (__EMX__): Added for a number of places in addition to OS2 def.
3639 (two_way_open): Added OS/2 specific code added that uses spawn.
3640 (gawk_popen): ditto.
3641
3642Mon Dec 3 14:07:56 2001 Arnold D. Robbins <arnold@skeeve.com>
3643
3644 Fix use of getgroups to use dynamic memory, solves
3645 problem of systems where NGROUPS_MAX lies.
3646
3647 * awk.h (groupset, ngroups): New extern variables.
3648 * configure.in (AC_CHECK_FUNCS): Add getgroups to list.
3649 * io.c (user_open): Use global ngroups and groupset variables,
3650 don't call getgroups here.
3651 * main.c (init_groupset): New function to init global
3652 vars using malloc. Declare it at top.
3653 (main): Call init_groupset().
3654 (load_procinfo): Use global ngroups and groupset variables.
3655
3656Sun Nov 18 11:56:01 2001 Arnold D. Robbins <arnold@skeeve.com>
3657
3658 * random.c (srandomdev): ifdef-out. Lots of compile time
3659 problems on multiple platforms, and gawk doesn't even
3660 use the routine. The heck with fine-grained solutions.
3661
3662Wed Nov 14 16:12:40 2001 Pat Rankin <rankin@eql.caltech.edu>
3663
3664 * builtin.c (bchunk_one): Use `ofre < 1' instead of `ofre <= 0'
3665 to avoid compiler complaint about suspicious comparison for
3666 unsigned variable. (`ofre == 0' ought to suffice...)
3667
3668Tue Nov 13 17:27:52 2001 Arnold D. Robbins <arnold@skeeve.com>
3669
3670 * awkgram.y (yyerror): Fix the code to behave like it
3671 used to. Keep "no arbitrary limits" by mallocing the
3672 buffer and freeing it.
3673
3674Wed Nov 7 16:46:20 2001 Arnold D. Robbins <arnold@skeeve.com>
3675
3676 * awkgram.y (yyerror): Remove dependency upon buf[] to
3677 hold prepended space and `^' pointer. Avoids core dumps
3678 for long source lines.
3679
3680Sat Nov 3 22:27:21 2001 Arnold D. Robbins <arnold@skeeve.com>
3681
3682 * m4/strtod.m4: Add missing `#endif'. Oops.
3683
3684Mon Oct 29 14:53:57 2001 Arnold D. Robbins <arnold@skeeve.com>
3685
3686 * awkgram.y: Add semicolons in calls to count_args().
3687 Apparently bisoon adds a semicolon to each body
3688 automatically and byacc doesn't.
3689
3690Sun Oct 28 16:53:18 2001 Arnold D. Robbins <arnold@skeeve.com>
3691
3692 * builtin.c (format_tree): Fix off-by-one error in "ran out
3693 for this one" diagnostic. Also fix lint check for too many
3694 arguments vs. count in format string.
3695
3696Wed Oct 10 11:01:47 2001 Arnold D. Robbins <arnold@skeeve.com>
3697
3698 * fixvers: Check that files exist before doing `cmp', in
3699 case they're in a source code system and aren't there.
3700 Fix from Grant Erickson (gerickson@brocade.com).
3701
3702Thu Oct 4 18:20:36 2001 Arnold D. Robbins <arnold@skeeve.com>
3703
3704 * eval.c (r_tree_eval): For comparison, dupnode() results of
3705 evaluation so that we can hang on to them and avoid memory
3706 corruption. Change calls to free_temp() to unref().
3707
3708Tue Sep 25 15:19:53 2001 Arnold D. Robbins <arnold@skeeve.com>
3709
3710 * io.c (iop_open): Only call os_close_on_exec() for
3711 fd > fileno(stderr).
3712
37132001-09-07 Paul Eggert <eggert@twinsun.com>
3714
3715 * io.c (redirect): When deciding to use the fdopen bug hack,
3716 use "__sun" rather than "solaris". No compilers predefine
3717 "solaris", but both GCC and Sun C predefine "__sun".
3718
3719Thu Aug 30 15:17:12 2001 Arnold D. Robbins <arnold@skeeve.com>
3720
3721 * main.c (copyleft): Use a printf %d for last year of update
3722 to avoid translation strings changing when the file
3723 is updated from now on. Suggestion from Ulrich Drepper.
3724
3725Thu Aug 23 14:01:14 2001 Arnold D. Robbins <arnold@skeeve.com>
3726
3727 * awkgram.y (unary minus production): Add check that value
3728 isn't a string. Based on bug report from drj@pobox.com.
3729 * profile.c (tree_eval): For node_val, only test NUMBER
3730 to see if value is numeric, not NUM|NUMBER.
3731
3732Thu Aug 16 12:21:28 2001 Arnold D. Robbins <arnold@skeeve.com>
3733
3734 * configure.in (ALL_LINGUAS): Added `fr' and `tr'.
3735 * po/fr.po, po/tr.fo: New files.
3736
37372001-08-13 Paul Eggert <eggert@twinsun.com>
3738
3739 This patch fixes a bug that causes gawk to rewind standard
3740 input incorrectly. It also removes all instances of fseek,
3741 from the gawk source proper, which should make gawk a bit
3742 more portable.
3743
3744 (The original patch removed off_t & lseek too, but I need
3745 that for something else. ADR.)
3746
3747 * posix/gawkmisc.c (optimal_bufsize):
3748 Don't use lseek on the input, because that might change
3749 its state. Instead, just check whether it is a regular file.
3750 This obviates the need to invoke isatty.
3751 (Also, fix a spelling error in the first line of the source.)
3752 * pc/gawkmisc.pc, unsupported/atari/gawkmisc.atr: Likewise.
3753
3754 * awk.h (S_ISREG): Move this macro here ...
3755 * io.c (S_ISREG): from here.
3756
3757 * protos.h (fseek): Remove prototype; no longer used.
3758
3759Fri Aug 3 13:38:54 2001 Arnold D. Robbins <arnold@skeeve.com>
3760
3761 * array.c (assoc_lookup): Change assert test on type to real test
3762 to protect against FS[1] = "x" kinds of things. It'd be better
3763 to do this in the grammar, but this is easier and just as
3764 effective.
3765
3766 Undid BECAMEARRAY changes of 25 June 2001 in favor of correct code:
3767 * eval.c (pop_fcall): Change test and comment for freeing n->vname.
3768 (flags2str): removed BECAMEARRAY entry.
3769 * awk.h (BECAMEARRAY): Removed define.
3770 * array.c (assoc_lookup): Removed setting of BECAMEARRAY flag.
3771
3772Mon Jul 23 17:33:13 2001 Arnold D. Robbins <arnold@skeeve.com>
3773
3774 * io.c (get_a_record): Handle case where RS = "" and input file
3775 is only newlines. See test/onlynl. Bug report by
3776 Michel Jouvin <jouvin@lal.in2p3.fr>.
3777
3778Wed Jul 4 18:34:19 2001 Arnold D. Robbins <arnold@skeeve.com>
3779
3780 * eval.c (assign_val): Don't allow negative values for NF.
3781 * field.c (set_NF): Robustify field-freeing code to make sure
3782 values are always positive.
3783
3784Sun Jul 1 19:15:01 2001 Arnold D. Robbins <arnold@skeeve.com>
3785
3786 * builtin.c (do_index): If second string is "", return 1.
3787
3788Mon Jun 25 19:34:24 2001 Arnold D. Robbins <arnold@skeeve.com>
3789
3790 Further rationalization of treatment of dynamic regexes,
3791 so that profiling code works correctly.
3792 * awk.h (NODETYPE): New type, Node_dynregex.
3793 * awkgram.y (mk_rexp): Use Node_dynregex.
3794 * eval.c (nodetypes): Add Node_dynregex.
3795 (r_tree_eval): Add Node_dynregex to case for match_op().
3796 * profile.c (tree_eval): Add Node_dynregex to case for pp_match_op().
3797 (pp_match_op): Handle Node_dynregex, simplify cases for ~ and !~.
3798 * re.c (re_update): Add assertion that type is Node_regex when flags
3799 indicate CONST.
3800
3801 New lint warning.
3802 * awkgram.y (yylex): Added lint warning that constant with leading
3803 zero is treated as octal or hex.
3804
3805 Generalized code for those who are Strong In The Ways of the Source.
3806 * awk.h: New boolean variable.
3807 * main.c (main): set it.
3808 * eval.c (interpret): For arrays, check it. Remove variable 'first',
3809 not needed anymore.
3810 * profile.c (pp_string_fp): Enable printing of non-ascii characters
3811 verbatim if variable set.
3812
3813 Fix memory corruption on SCO for array vars as params changed globally.
3814 * awk.h (BECAMEARRAY): new flag.
3815 * array.c (assoc_lookup): set the flag as appropriate.
3816 * eval.c (flags2str): Add the flag.
3817 (pop_fcall): Check the flag, don't free memory if set.
3818
3819Wed Jun 13 18:07:06 2001 Arnold D. Robbins <arnold@skeeve.com>
3820
3821 * eval.c (fmt_index): Actually call erealloc() to grow fmt_list
3822 if that's really necessary. Bug report from David Jones,
3823 djones@zoonami.com.
3824
3825Sun Jun 10 14:24:48 2001 Arnold D. Robbins <arnold@skeeve.com>
3826
3827 * profile.c (pp_match_op): Rationalized the code.
3828
3829Thu Jun 7 11:54:36 2001 Arnold D. Robbins <arnold@skeeve.com>
3830
3831 * awk.h (O_BINARY): Don't define if already defined
3832 (as is true for cygwin/gcc --- oops).
3833
3834Sun Jun 3 13:04:44 2001 Arnold D. Robbins <arnold@skeeve.com>
3835
3836 * Release 3.1.0: Release tar file made. And there was
3837 rejoicing.
3838
3839Wed Apr 25 11:44:07 2001 Arnold Robbins <arnold@skeeve.com>
3840
3841 * Makefile.am (AM_MAKEFLAGS): Add definition per advice from
3842 Nelson Beebe.
3843
3844Tue Apr 24 14:28:00 2001 Arnold Robbins <arnold@skeeve.com>
3845
3846 * io.c (devopen): Patch from Jeurgen to robustify pulling
3847 out hostname, port numbers, etc, to avoid any buffer overrun
3848 problems.
3849
3850Mon Apr 23 10:26:38 2001 Arnold Robbins <arnold@skeeve.com>
3851
3852 * awkgram.y: Fix grammar so that `print ... |& ".." |& getline'
3853 dies with a parse-time error message.
3854
3855Sun Apr 22 16:46:48 2001 Arnold Robbins <arnold@skeeve.com>
3856
3857 * io.c (socketopen): Fix from Juergen in recursive call.
3858
3859Thu Apr 19 18:39:20 2001 Pat Rankin <rankin@eql.caltech.edu>
3860
3861 * awk.h: Really fix logic around include of <sys/types.h>.
3862
3863 * awk.h (callresult): New name for `result' macro.
3864 * eval.c (r_get_lhs, case Node_builtin): Use it.
3865
3866Thu Apr 19 16:31:09 2001 Pat Rankin <rankin@eql.caltech.edu>
3867
3868 * io.c: Move code around to allow compilation with DEC C.
3869
3870Thu Apr 19 16:21:56 2001 Arnold D. Robbins <arnold@skeeve.com>
3871
3872 * random.h: Move decl of random() here.
3873 * random.c: Remove decl of random().
3874
3875Mon Apr 9 11:41:58 2001 Arnold D. Robbins <arnold@skeeve.com>
3876
3877 * dfa.c (dfainit): Initialize more members in the structure,
3878 based on bug report in bug.gnu.utils by aaronl@vitelus.com
3879 (Aaron Lehmann).
3880 * awk.h: Fix logic around include of <sys/types.h>.
3881
3882Thu Apr 5 20:12:05 2001 Pat Rankin <rankin@eql.caltech.edu>
3883
3884 * dfa.c: for VMS, #include <stddef.h> instead of <sys/types.h>.
3885 * missing_d/mktime.c: likewise.
3886
3887 * random.c: reorder include directives to get gawk config info
3888 from random.h sooner.
3889 [fcntl.h]: guard #include with HAVE_FCNTL_H test.
3890 [unistd.h]: guard #include with HAVE_UNISTD_H test.
3891
3892 * random.c (srandomdev): skip /dev/urandom usage if O_RDONLY
3893 is not defined.
3894
3895Tue Mar 20 11:07:11 2001 Arnold D. Robbins <arnold@skeeve.com>
3896
3897 * awkgram.y (function_body): Add opt_nls to end of production.
3898
3899Tue Mar 20 09:30:32 2001 Pat Rankin <rankin@eql.caltech.edu>
3900
3901 * awk.h (BROKEN_STRNCASECMP): Add decl of strcasecmp.
3902 * io.c (two_way_open): Add `return FALSE;' for fussy compilers.
3903
3904Sun Mar 18 15:10:56 2001 Arnold D. Robbins <arnold@skeeve.com>
3905
3906 * io.c (gawk_pclose): Set the exit value for close correctly
3907 if the pipe died with a signal.
3908
3909Wed Mar 7 11:28:52 2001 Arnold D. Robbins <arnold@skeeve.com>
3910
3911 * io.c (get_a_record): Correctly handle the case of a leading
3912 single newline at the front of the file when RS = "".
3913
39142001-02-26 Paul Eggert <eggert@twinsun.com>
3915
3916 * COPYING: Incorporate latest version from FSF, which fixes a Y2k bug.
3917
3918 * builtin.c (do_mktime): Allow the user to specify the
3919 tm_isdst member as an optional trailing integer, and to
3920 specify "out-of-range" members. Check for overflow when
3921 subtracting 1 from month or 1900 from year. Allow years just
3922 past INT_MAX, as they work on some hosts when INT_MAX - 1900
3923 is representable as an int.
3924
3925 * doc/gawk.1, doc/gawk.texi: Document the above changes.
3926 Also, document that the origin-zero Gregorian calendar is used.
3927 Fix confusing wording about "midnight" by replacing it with 00:00
3928 ("midnight" is also 24:00, the end of the day).
3929 Mention the typical range for time stamps.
3930 Do not assume that years are nonnegative and are less than 10,000.
3931 Suggest TZ=UTC0 instead of TZ=GMT0, as that's how recent versions
3932 of GNU date behave.
3933 GMT is not always the time of day in Greenwich these days.
3934 Fix typos: "Emporer/Era", "1980's", "1970's".
3935
3936 * m4/largefile.m4: Synchronized with latest version.
3937
3938Tue Feb 27 12:10:11 2001 Arnold D. Robbins <arnold@skeeve.com>
3939
3940 * profile.c (pp_in_array): Change test to tree->type == Node_expression_list.
3941
3942Wed Feb 7 14:46:50 2001 Arnold D. Robbins <arnold@skeeve.com>
3943
3944 * awkgram.y (LEX_FOR): Allow newline after `;' in for loops.
3945 Per bug report from Brian Kernighan, bwk@research.bell-labs.com.
3946
3947Tue Feb 6 18:35:27 2001 Martin C. Brown <mc@whoever.com>
3948
3949 * io.c (socket_open): Conditionalize various options based on
3950 ifdef. Needed for BeOS port.
3951
3952Tue Feb 6 18:17:13 2001 Michal Jaegermann <michal@ellpspace.math.ualberta.ca>
3953
3954 * regex.c (re_match_2_internal): Case maybe_pop_jump, for
3955 charset and not_charset: change cast from (unsigned char)
3956 to (unsigned). Catches last 8 chars with high bit set
3957 if backtracking. See test/rebt8b1.awk, test/rebt8b2.awk.
3958
3959Tue Feb 6 11:20:21 2001 Arnold D. Robbins <arnold@skeeve.com>
3960
3961 Have `for (iggy in foo)' save the elements and loop over them.
3962 Make sorted for loops a dynamic test instead of a compile time test.
3963 Still requires being Strong In The Ways Of The Source.
3964
3965 * awk.h: (struct search): removed.
3966 (assoc_scan, assoc_next): removed declarations.
3967 * array.c (assoc_scan, assoc_next): removed functions.
3968 * eval.c (interpret): remove Node_K_array_sorted_for. Change code
3969 at Node_K_arrayfor.
3970 (nodetypes): remove Node_K_array_sorted_for.
3971 * configure.in: removed array sorting test.
3972 * awkgram.y: removed sorted_in keyword and associated code.
3973
3974Sun Feb 4 14:57:49 2001 Arnold D. Robbins <arnold@skeeve.com>
3975
3976 * eval.c (interpret): use tree->rnode->exec_count to hold count of
3977 times if was true.
3978 profile.c (interpret): ditto.
3979 * main.c (pre_assign): gross hack. malloc fresh copy of assign so can
3980 clear the '=', otherwise screws up profiling print out.
3981
3982Sun Jan 28 16:16:02 2001 Arnold D. Robbins <arnold@skeeve.com>
3983
3984 Per request from Nelson Beebe, SIGHUP to pgawk dumps profile
3985 and function call stack and exits, SIGUSR1 dumps and continues
3986 running.
3987
3988 * eval.c (dump_fcall_stack): New function, dumps awk function call
3989 stack.
3990 * awk.h (dump_fcall_stack): Add declaration.
3991 (init_profiling_signals): Ditto.
3992 * main.c (main): Call init_profiling_signals.
3993 * profile.c (init_profiling_signals, dump_and_exit, just_dump): new
3994 functions.
3995
3996Sun Jan 28 15:50:02 2001 Eli Zaretskii <eliz@is.elta.co.il>
3997
3998 * io.c (gawk_popen): Restore the mode of stdin before running the
3999 child process and switch it back if BINMODE is in effect after the
4000 child returns.
4001 (redirect): Restore the mode of stdin before running the child
4002 process.
4003 (close_redir): Switch mode of stdin back to binary if BINMODE is
4004 in effect, after the child returns.
4005
4006 * builtin.c (do_system): Restore the mode of stdin before running
4007 the child process and switch it back if BINMODE is in effect after
4008 the child returns.
4009
4010 * awk.h (os_restore_mode): Add prototype.
4011
4012Thu Jan 18 14:03:06 2001 Arnold D. Robbins <arnold@skeeve.com>
4013
4014 * custom.h, README_d/README.ultrix: Fixes for Ultrix
4015 from Juergen Kahrs.
4016
4017Wed Jan 17 11:03:40 2001 Eli Zaretskii <eliz@is.elta.co.il>
4018
4019 * io.c (redirect) [F_GETFL && O_APPEND]: Use binmode in the call
4020 to fdopen.
4021
4022Mon Jan 15 16:29:52 2001 Arnold D. Robbins <arnold@skeeve.com>
4023
4024 * profile.c (prec_level): Made Node_K_getline higher than <
4025 but lower than others. Allows use of getline with redirection
4026 inside an if.
4027
4028Wed Jan 10 15:35:06 2001 Arnold D. Robbins <arnold@skeeve.com>
4029
4030 * eval.c (set_BINMODE): Rationalized string assignment.
4031
4032Sun Jan 7 15:26:16 2001 Arnold D. Robbins <arnold@skeeve.com>
4033
4034 * getopt.h: Removed names in prototypes for getopt_long
4035 and getopt_long_only, fixes problems on MINGW32.
4036
4037Thu Jan 4 10:13:46 2001 Arnold D. Robbins <arnold@skeeve.com>
4038
4039 * configure.in: Add check for mcheck.h
4040 * main.c: Include mcheck.h if have it.
4041 (main): If TIDYMEM turned on in environment, also call mtrace().
4042
4043Wed Jan 3 16:41:33 2001 Arnold D. Robbins <arnold@skeeve.com>
4044
4045 Fixed minor memory leaks.
4046 * re.c (re_update): When IGNORECASE changed, unref(t->re_text).
4047 * eval.c (pop_fcall): Fix the logic to correctly free the vname
4048 when copying array args back to their underlying source.
4049
4050 Fixed massive memory leaks.
4051 * node.c (dupnode): If PERM is set, do nothing.
4052 (unref): Fix logic. Always turn off TEMP. Check just for MALLOC
4053 when incrementing the stref.
4054 * array.c (assoc_lookup): Turn off PERM also when saving subscript.
4055 * builtin.c (sub_common): Turn off PERM also when making private copy
4056 of string.
4057
4058 Add a minor memory cleanup facility (undocumented):
4059 * awk.h (do_tidy_mem, release_all_vars): Add declarations.
4060 * main.c (do_tidy_mem): Add declaration.
4061 (main): if $TIDYMEM exists, do_tidy_mem is true, and call mtrace().
4062 * awkgram.y (release_all_vars): New function.
4063
4064Sun Dec 31 10:47:37 2000 Arnold D. Robbins <arnold@skeeve.com>
4065
4066 * awkgram.y (in_end_rule): Renamed `parsing_end_rule' to avoid
4067 conflict with global var of same name.
4068
4069Sun Dec 24 10:36:54 2000 Eli Zaretskii <eliz@is.elta.co.il>
4070
4071 * awkgram.y (snode): Reword the error message about the number of
4072 arguments for a builtin, so as not to use the English `s' as a
4073 plural suffix.
4074
4075Tue Dec 12 08:38:03 2000 Arnold D. Robbins <arnold@skeeve.com>
4076
4077 * ext.c (do_ext): ifdef out use of `dummy'. Duh.
4078 * regex.c (re_error_msgid): Revert to array of `char *' so that can
4079 compile on K&R compilers. Fix all uses appropriately.
4080 (re_error_msgid_idx): Removed.
4081
4082Fri Dec 8 11:47:26 2000 Arnold D. Robbins <arnold@skeeve.com>
4083
4084 * ext.c (dummy): Make gcc specific via ifdef.
4085 * builtin.c (do_dcgettext): make conditional compilation smarter.
4086 * msg.c (warning, error, r_fatal): Finish switching back to
4087 multi-version function header.
4088
4089Wed Dec 6 13:28:58 2000 Arnold D. Robbins <arnold@skeeve.com>
4090
4091 * random.h: include <config.h> to get ssize_t definition.
4092 * awkgram.y (yyerror): Restore multi-version function header,
4093 it seems that what ansi2knr produces doesn't quite do the
4094 job on old compilers.
4095 msg.c (msg): Ditto.
4096
4097Tue Dec 5 15:05:35 2000 Arnold D. Robbins <arnold@skeeve.com>
4098
4099 * configure.in (AC_C_INLINE): Added macro call.
4100 * Makefile.am (LN): Define it for install hooks.
4101
4102Sun Dec 3 17:28:53 2000 Arnold D. Robbins <arnold@skeeve.com>
4103
4104 * awk.h (os_setbinmode): Declare new function.
4105 (setmode): Remove definition: conflicts with MacOS X.
4106 * main.c (main): Change call of setmode to os_setbindmode.
4107
4108 * builtin.c (do_dcgettext): Improve ifdef for code, fixes MacOS X.
4109 * custom.h (__APPLE__): Force definition of HAVE_MKTIME, won't
4110 link otherwise. Harumph.
4111
4112Sun Nov 26 11:58:52 2000 Arnold D. Robbins <arnold@skeeve.com>
4113
4114 * builtin.c (do_dcgettext, do_bindtextdomain): Add calls to
4115 free_temp the various arguments. Sigh.
4116 * io.c (yylex): nuked bstart variable, put all uses of mend variable
4117 into TANDEM ifdef.
4118 * main.c (load_environ): removed cp variable, value never used.
4119 * random.c: Remvoed uses of `inline' keyword.
4120 * Makefile.am (install-exec-hook, uninstall-local): new targets.
4121 Adds creation of gawk-X.Y.Z and awk links, as in 3.0.x.
4122 * configure.in (GAWK_AC_TYPE_SSIZE_T): Added.
4123 m4/ssize_t.m4: new file.
4124
4125Wed Nov 22 14:47:18 2000 Arnold D. Robbins <arnold@skeeve.com>
4126
4127 After consultation with Brian Kernighan and Michael Brennan,
4128 nuked the abort keyword.
4129
4130 * awk.h (Node_K_abort): removed.
4131 * eval.c (aborting): removed decl.
4132 (interpret): Removed Node_K_abort case.
4133 * io.c (do_input): Removed checks for aborting.
4134 * main.c (aborting): removed.
4135 (main): Removed checks for aborting.
4136 * profile.c (pprint): Removed Node_K_abort case.
4137 * awk.y (LEX_ABORT): All stuff removed.
4138
4139Wed Nov 22 10:45:57 2000 Arnold D. Robbins <arnold@skeeve.com>
4140
4141 * ext.c (dummy): Move inside #ifdef DYNAMIC. Helps on
4142 PCs and other platforms that don't do dynamic loading.
4143 * awk.h (RED_TCP): New flag, means use shutdown.
4144 io.c (redflags2str): Add RED_TCP.
4145 (SHUT_RD, SHUT_WR, SHUT_RDWR): Add conditional defines.
4146 (redirect): Add RED_TCP to tflag if appropriate. Add more
4147 #ifdef HAVE_SOCKETS as needed.
4148 (close_redir): If RED_TCP set, shutdown(2) on each end of the socket.
4149
4150Tue Nov 21 16:25:41 2000 Arnold D. Robbins <arnold@skeeve.com>
4151
4152 * awk.y: for (iggy in foo) loops: add test that index
4153 in delete statement is a simple variable.
4154
4155Tue Nov 14 16:11:39 2000 Arnold D. Robbins <arnold@skeeve.com>
4156
4157 * awk.h: Add appropriate conditional versions of the gettext
4158 functions if we don't have <libintl.h> or if ENABLE_NLS
4159 is not defined or zero.
4160 * configure.in: Add check for libintl.h header.
4161
4162 From Scott Deifik for PCs.
4163 * awk.h (lintwarn): Call set_loc unconditionally, makes
4164 compilation work on PCs.
4165 * builtin.c (do_dcgettext): Compile out cat_tab and code
4166 if not ENABLE_NLS.
4167 * ext.c: for MSC, no long long variable.
4168 * random.c: use clock() instead of gettimeofday().
4169 * builtin.c: Fixed prototypes for new random functions (ADR).
4170
4171Sun Nov 12 17:45:44 2000 Arnold D. Robbins <arnold@skeeve.com>
4172
4173 * builtin.c (parse_next_arg): Fix call to >= num_args so
4174 running out of args check is correct, instead of core dumping.
4175 (format_tree): Save and restore `the_args' and `args_size'
4176 if a nested call is in progress, see explanatory comment.
4177 See also tests/addcomma.
4178 * Makefile.am: Fix things so that gawk/pgawk built first,
4179 even if `make check' called before make. Add some
4180 commentary.
4181
4182Wed Nov 8 14:39:20 2000 Arnold D. Robbins <arnold@skeeve.com>
4183
4184 * configure.in: Only add -rdynamic for linux.
4185 * dfa.h, dfa.c: upgraded to versions in grep 2.4.2.
4186
4187Tue Nov 7 18:17:17 2000 Arnold D. Robbins <arnold@skeeve.com>
4188
4189 * All: Switched to ANSI function headers and added
4190 `ansi2knr' automake option. Really cool.
4191
4192Tue Nov 7 16:57:49 2000 Arnold D. Robbins <arnold@skeeve.com>
4193
4194 * io.c (redirect): Check for O_APPEND in flags when doing
4195 fdopen() of /dev/fd/N. Thanks to bug report from
4196 "John H. DuBois III" <spcecdt@armory.com>.
4197
4198Tue Nov 7 14:09:14 2000 Arnold D. Robbins <arnold@skeeve.com>
4199
4200 * awk.h (os_is_setuid): declare function.
4201 * main.c (main): call it if do_lint and warn if true.
4202 * awkgram.y (tokentab):
4203 - Made sure all extensions are actually marked as such. Ouch.
4204 - Changed "sort" to "asort". Potential to break too much old code.
4205 * getopt.h, getopt.c, getopt1.c: replaced with current versions
4206 from glibc CVS archive.
4207
4208Mon Nov 6 18:14:33 2000 Arnold D. Robbins <arnold@skeeve.com>
4209
4210 * random.c: Replaced with recent version from FreeBSD.
4211
4212Mon Nov 6 15:37:12 2000 Arnold D. Robbins <arnold@skeeve.com>
4213
4214 Major simplification of automake machinery.
4215
4216 * configure.in:
4217 - INSTALL is forced only if not provided in environment
4218 - lots of Makefile.in files removed since move to automake 1.4a
4219 * Makefile.am, */Makefile.am: Moved directories that don't need
4220 the automake machinery into EXTRA_DIST as appropriate and
4221 removed the Makefile{,.am,.in} files as needed.
4222 * eval_p.c, profile_p.c: New files to make it easier with automake
4223 to compile pgawk.
4224
4225Tue Oct 24 12:20:18 2000 Arnold D. Robbins <arnold@skeeve.com>
4226
4227 * awkgram.y (valinfo, var_comp, dump_vars): New functions to dump
4228 the list of global variables.
4229 * awk.h: Declare dump_vars.
4230 * main.c (optab): new option "dump-variables".
4231 (main): Code to handle it, set the output file and then call
4232 dump_vars() at the end.
4233 (usage): New option added to usage message.
4234
4235Sat Oct 21 22:59:59 2000 Arnold D. Robbins <arnold@skeeve.com>
4236
4237 * awkgram.y (parms_shadow): For a function, check if any
4238 parameters shadow global variables and print a warning.
4239 (shadow_funcs): Go through all functions and call parms_shadow().
4240 (isnoeffect, isassignable): Add Node_LINT and NODE_BINMODE.
4241 * main.c (main): If do_lint, call shadow_funcs().
4242 * awk.h: add declaration of shadow_funcs().
4243 * configure.in: added m4/Makefile and awklib/eg/network/Makefile
4244 to list of generated makefiles.
4245
4246Tue Oct 17 10:47:35 2000 Arnold D. Robbins <arnold@skeeve.com>
4247
4248 * array.c (assoc_lookup): Reverted change that did dupnode of
4249 array indices. Creates significant problems if index is
4250 numeric value and CONVFMT changes. Added fix to set
4251 bucket->ahname->stfmt to -1 so that force_string never recalculates
4252 the string value, and also turned off NUM and turned on STR.
4253 See test/arynasty.awk.
4254
4255Mon Oct 16 12:21:26 2000 Arnold D. Robbins <arnold@skeeve.com>
4256
4257 * All: Cleaned up various lint warnings for consistent phrasing.
4258 * awk.y (in_end_rule): New variable for warning about unredirected
4259 getline. It's ok in a BEGIN, but not in an END.
4260
4261Sun Oct 15 14:14:05 2000 Arnold D. Robbins <arnold@skeeve.com>
4262
4263 * field.c (set_FS): Add lint warning for FS = "".
4264 (do_split): Ditto for 3rd arg = "".
4265
4266Fri Oct 13 09:17:04 2000 Arnold D. Robbins <arnold@skeeve.com>
4267
4268 * io.c (close_redir): Clear rp->fp on all closes. Remove
4269 rp from list if either closing both ends or both ends
4270 have been closed separately. Add exitwarn message for
4271 co-process.
4272 (flush_io): Add warning message if fflush of co-process
4273 fails. Rationalize return value to either 0 or -1.
4274 * builtin.c (do_gensub): 3rd arg of zero generates a
4275 warning.
4276 (do_fflush): rationalize return value: -1 for unopen or read-only
4277 redirection, status of fflush otherwise.
4278
4279Wed Oct 11 22:11:19 2000 Arnold D. Robbins <arnold@skeeve.com>
4280
4281 * awk.y (for loop): Check that there is a body as
4282 part of the `is it a delete statement' check.
4283
4284Thu Oct 5 11:56:42 2000 Arnold D. Robbins <arnold@skeeve.com>
4285
4286 * awk.h, awkgram.y, configure.in, eval.c: enabled
4287 `for (i in_sorted array)' loops for those who
4288 are Strong In The Way Of The Source. So there.
4289
4290Mon Oct 2 10:09:32 2000 Arnold D. Robbins <arnold@skeeve.com>
4291
4292 * io.c (do_close): make close(x) for non-open x return -1
4293 and update ERRNO. close(FILENAME) no longer does anything
4294 magic; this is all for better consistency with other awks
4295 and is more logical, anyway.
4296
4297Thu Sep 28 17:27:16 2000 Arnold D. Robbins <arnold@skeeve.com>
4298
4299 * io.c (close_one): Added a lint warning if it becomes
4300 necessary to start multiplexing fd's, per ancient suggestion
4301 from Scott Deifik, <scottd@amgen.com>.
4302
4303Tue Sep 26 14:41:41 2000 Arnold D. Robbins <arnold@skeeve.com>
4304
4305 * profile.c: Move enum for redirection placement to top
4306 of file, and make the value a parameter to pp_redir.
4307 Fix all the calls. This gets `|&' right everywhere.
4308
4309Sun Sep 24 16:38:04 2000 Arnold D. Robbins <arnold@skeeve.com>
4310
4311 * awk.h (freenode): set the flags straight to UNINITIALIZED.
4312 * node.c (unref): Fix test for MALLOC|TEMP to test the
4313 actual flags, not zero.
4314 * builtin.c (format_tree): ala print and concat, dupnode
4315 the temp nodes from tree_evaling the arguments. See
4316 test/nasty2.awk.
4317
4318Mon Sep 18 10:16:58 2000 Arnold D. Robbins <arnold@skeeve.com>
4319
4320 * awkgram.y (snode): Make match 3rd arg and close 2nd arg fatal
4321 errors if --tradtional.
4322
4323Thu Sep 14 12:22:42 2000 Arnold D. Robbins <arnold@skeeve.com>
4324
4325 * eval.c (update_ERRNO): Call gettext on result of strerror.
4326 i18n rules.
4327
4328Wed Sep 13 14:56:11 2000 Arnold D. Robbins <arnold@skeeve.com>
4329
4330 * eval.c (r_tree_eval): Case for Node_concat. Dupnode the
4331 strings ala do_print to get more consistent results.
4332 Compare gawk 3.0.6 to nawk/mawk on test/nasty.awk.
4333 Thanks to Andrew Sumner (andrewsumner@yahoo.com) for
4334 pointing this one out.
4335
4336Wed Sep 13 10:06:47 2000 Arnold D. Robbins <arnold@skeeve.com>
4337
4338 * io.c (two_way_close_type): New enumerated type.
4339 (close_redir): New third param of type two_way_close_type.
4340 Add smarts to two-way case for different close types.
4341 Only remove it from the redir list if closing is for both ends.
4342 (gawk_pclose): Check that rp->iop != NULL before closing,
4343 all three versions.
4344 * awkgram.y (tokentab): Allow 2nd argument to close.
4345 (snode): Add lint warning.
4346
4347Sun Sep 10 14:16:10 2000 Arnold D. Robbins <arnold@skeeve.com>
4348
4349 * field.c (set_FIELDWIDTHS): Generate a fatal error upon
4350 encountering a negative width.
4351
4352Sun Sep 10 10:37:35 2000 Arnold D. Robbins <arnold@skeeve.com>
4353
4354 * awkgram.y (snode): If first argument to dcgettext is a
4355 string constant and --gen-po, dump the string constant to
4356 the .po file too.
4357 * main.c (nostalgia): Add call to fflush(stderr).
4358 * eval.c (r_tree_eval): Add entries for Node_LINT and for
4359 NODE_TEXTDOMAIN.
4360
4361Thu Sep 7 10:46:20 2000 Arnold D. Robbins <arnold@skeeve.com>
4362
4363 * builtin.c (do_dcgettext): Per suggestion from Ulrich Drepper,
4364 make the awk interface:
4365
4366 str = dcgettext(string [, domain [, category]])
4367
4368Wed Sep 6 16:28:12 2000 Arnold D. Robbins <arnold@skeeve.com>
4369
4370 Bring gettext features out to the awk level!
4371
4372 * awk.h: Add declarations of new functions `do_dcgettext'
4373 `do_bindtextdomain', `set_TEXTDOMAIN' and variables
4374 `TEXTDOMAIN', `TEXTDOMAIN_node'. New NODETYPE enum
4375 `Node_TEXTDOMAIN'.
4376 * eval.c (nodetypes): add Node_TEXTDOMAIN at end.
4377 (set_TEXTDOMAIN): new function.
4378 (r_get_lhs): add case for Node_TEXTDOMAIN.
4379 * main.c (varinit): add entry for TEXTDOMAIN.
4380 * node.c (format_val): If INTLSTR use dcgettext of string
4381 and TEXTDOMAIN.
4382 * awkgram.y (tokentab): Add entries for "dcgettext" and
4383 "bindtextdomain".
4384 * builtin.c (do_dcgettext, do_bindtextdomain): new functions.
4385
4386Tue Sep 5 17:01:34 2000 Arnold D. Robbins <arnold@skeeve.com>
4387
4388 * profile.c (pp_string_fp): Use lower case versions of
4389 isascii and isprint to avoid printing high-bit-set
4390 characters. Make it smarter to break strings at 70
4391 chars or after embedded newline, for --gen-po.
4392 Fix the calls to it everywhere for new boolean option
4393 to yes/no break lines.
4394 * m4/strtod.m4: new file, defines GAWK_AC_FUNC_STRTOD_C89.
4395 * configure.in: GAWK_AC_FUNC_STRTOD_C89 call added
4396 * acinclude.m4: include strtod.m4.
4397 * acconfig.h: add entry for STRTOD_NOT_C89.
4398 Remove entries for BITOPS and NON_DEC_DATA.
4399 * missing/missing.c: add check for STRTOD_NOT_C89, use ours
4400 if set.
4401 * missing/strtod.c: make smarter for input like 0x345.
4402 * awk.h: [STRTOD_NOT_C89]: define strtod gawk_strtod to get
4403 our version. Avoids linker weirdness.
4404
4405Mon Sep 4 09:16:43 2000 Arnold D. Robbins <arnold@skeeve.com>
4406
4407 * field.c (set_record): fix from Utz-Uwe Haus
4408 <haus@saturn.Math.Uni-Magdeburg.DE> to make sure there's
4409 always enough room in the record.
4410 * builtin.c (nondec2awknum): Fix octal conversions to exit
4411 when hitting a non-digit, and not go to decimal. Make
4412 check for non-octal better. Based on bug report from
4413 Morris_Lee@tvratings.com.
4414
4415Sun Sep 3 13:52:11 2000 Arnold D. Robbins <arnold@skeeve.com>
4416
4417 * builtin.c (format_tree): Allow positional parameters for
4418 %*.* kinds of things.
4419
4420 Made octal/hex constants and strtonum on by default. Made
4421 --enable-non-decimal-data a runtime switch `--non-decimal-data'.
4422
4423 * configure.in: Removed AC_ARG_ENABLE for --enable-bitops and
4424 --enable-non-decimal-data.
4425 In .developing check, remove the AC_DEFINEs.
4426 * awk.h: Decls for bitwise functions now there by default.
4427 Add decl of `do_non_decimal_data'.
4428 * main.c (do_non_decimal_data): new variable
4429 (optlist): add new entry for `--non-decimal-data'.
4430 (main): turn off `do_non_decimal_data' if `do_traditional'.
4431 (usage): add the new option.
4432 * node.c (r_force_number): make check for non-decimal data a
4433 runtime check based on do_non_decimal_data.
4434 * awkgram.y (yylex): make non-decimal constants a runtime check.
4435 * builtin.c: remove the ifdefs around the bit functions and
4436 nondec2awknum.
4437
4438Tue Aug 29 18:45:56 2000 Arnold D. Robbins <arnold@skeeve.com>
4439
4440 * configure.in: go back to ARRAYDEBUG if .developing set.
4441 * awkgram.y: use ARRAYDEBUG for adump(), use multiple tests
4442 for stopme().
4443
4444Mon Aug 28 17:09:06 2000 Arnold D. Robbins <arnold@skeeve.com>
4445
4446 * field.c (do_split): Add check for first arg is null string,
4447 if so, skip the work and return zero.
4448
4449Mon Aug 14 23:01:55 2000 Arnold D. Robbins <arnold@skeeve.com>
4450
4451 * Add %COUNT$... handling to printf.
4452 awk.h (printf_count): new define in NODE structure.
4453 (format_tree): added decl.
4454 awkgram.y (count_args): new function to set printf_count in
4455 a node.
4456 [print productions]: call the function.
4457 (snode): for do_sprintf, call count_args, set the count
4458 in the lnode.
4459 builtin.c (format_tree): new fourth arg is argument count.
4460 Add smarts to handle the `$' in a format.
4461 (do_sprintf): use new argument to format_tree.
4462 node.c (format_val): ditto.
4463
4464Sun Aug 13 11:10:41 2000 Arnold D. Robbins <arnold@skeeve.com>
4465
4466 Changes from Alan J. Broder (ajb@woti.com):
4467 - Array third arg to match puts subtexts into the array:
4468 * awk.y (tokentab): "match" gets third arg, and lint warning
4469 * builtin.c (do_match): if third arg there, fill it with subtexts
4470 - New builtin sort function:
4471 * awk.h (do_sort): declared.
4472 * array.c (do_sort, dup_table, merge, merge_sort, assoc_from_list,
4473 assoc_sort_inplace): new functions.
4474
4475 * eval.c (tree_eval): in debug code, make uninitialized var
4476 a warning, not a fatal error. Breaks too many things.
4477
4478Wed Aug 9 10:51:41 2000 Arnold D. Robbins <arnold@skeeve.com>
4479
4480 * eval.c (func_call): Increment the exec_count on the
4481 function's node; this allows printing a call count for
4482 functions.
4483 profile.c (pp_func): print the count for functions.
4484 * ALL: Changed DEBUG to GAWKDEBUG in all gawk files, so that
4485 I don't get regex/dfa debugging. In some cases, changed
4486 memory-related stuff to MEMDEBUG. Still have work to do.
4487 * awk.h, node.c, profile.c: removed exec_count_init variable;
4488 code has been cleaned up to not need different values for
4489 profiling/not profiling.
4490
4491Thu Jul 5 21:10:59 2000 Arnold D. Robbins <arnold@skeeve.com>
4492
4493 * eval.c (casetable): Removed the USE_PURE_ASCII stuff; it
4494 was never documented. Latin 1 forever.
4495 * main.c (main): only call `init_profiling' after arg parsing
4496 if `do_profiling' is still false. Avoids resetting `prof_fp'
4497 back to stderr.
4498
44992000-02-17 Akim Demaille <akim@epita.fr>
4500
4501 * m4: New directory.
4502 * acinclude.m4: Removed, replaced by m4/*.m4.
4503 * Makefile.am: Adjusted.
4504 Added ACLOCAL_AMFLAGS.
4505 * configure.in Adjusted.
4506 Use AC_SYS_LARGEFILE not GAWK_AC_SYS_LARGEFILE, jm_FUNC_MKTIME,
4507 not GAWK_FUNC_MKTIME.
4508 * acconfig.h: Removed _FILE_OFFSET_BITS, _LARGEFILE_SOURCE and
4509 _LARGE_FILES now templated by m4/largefile.m4.
4510
45112000-02-15 Arnold Robbins <arnold@skeeve.com>
4512
4513 * MOVED TO AUTOMAKE AND GETTEXT.
4514 Just about every file touched. Work done by Arno Peters.
4515
4516Sun Jan 2 14:48:23 2000 Arnold D. Robbins <arnold@skeeve.com>
4517
4518 First edit of the new millenium!
4519 * awk.y (yylex): if lint checking, be obnoxious about gotos.
4520
4521Mon Oct 25 19:12:02 1999 Arnold D. Robbins <arnold@skeeve.com>
4522
4523 * awk.h: remove C_ALLOCA ifdef.
4524 * main.c (main): remove C_ALLOCA code.
4525 * io.c (do_input): ditto.
4526
4527Mon Aug 9 17:36:24 1999 Arnold D. Robbins <arnold@skeeve.com>
4528
4529 * bisonfix.sed: unconditionally #undef YYSTACK_USE_ALLOCA.
4530 * configure.in: remove all alloca and ALLOCA related stuff.
4531 * Makefile.in: ditto
4532
4533Thu Jul 29 18:32:05 1999 Arnold D. Robbins <arnold@skeeve.com>
4534
4535 * awk.h (NODE): exec_count now in #ifndef NO_PROFILING.
4536 * Makefile.in: changes to only recompile eval.c and profile.c to a
4537 special version for profiling.
4538 * custom.h [MSC_VER]: turn on NO_PROFILING to omit the exec_count
4539 and save space.
4540 * node.c (more_nodes): move setting of exec_count to
4541 #ifndef NO_PROFILING.
4542
4543Thu Jul 1 12:12:05 1999 Arnold D. Robbins <arnold@skeeve.com>
4544
4545 * configure.in (AC_PREREQ): update to 2.13.
4546 GAWK_AC_C_STRINGIZE: convert to AC_C_STRINGIZE.
4547 * aclocal.m4 (GAWK_AC_C_STRINGIZE): remove definition, now
4548 part of autoconf.
4549 * acconfig.h (HAVE_STRINGIZE): ditto.
4550
4551Wed Apr 28 11:08:05 1999 Arnold D. Robbins <arnold@skeeve.com>
4552
4553 * array.c (assoc_lookup): fix call to free_temp(subs) to after
4554 last use of subs.
4555
4556Sun Apr 25 16:48:06 1999 Arnold D. Robbins <arnold@skeeve.com>
4557
4558 * io.c (redirect): add lint warning when same file is used for
4559 > and >>.
4560
4561Thu Apr 22 15:05:30 1999 Arnold D. Robbins <arnold@skeeve.com>
4562
4563 * array.c (assoc_lookup): Fix call to fatal to lintwarn instead.
4564 * node.c (r_force_number): Use `0 &&' to disable warnings about
4565 conversions: they're overzealous, methinks.
4566
4567Thu Apr 8 14:27:58 1999 Arnold D. Robbins <arnold@skeeve.com>
4568
4569 New features for profiling:
4570 * awk.h (NODE): add `exec_count' member.
4571 (freenode): clear `exec_count' upon free.
4572 * awk.y (func_count): new variable, counts total number of functions.
4573 (func_install): increment func_count.
4574 (struct finfo): information for use in sorting functions when
4575 pretty printing.
4576 (fcompare): compare two finfo structures.
4577 (dump_funcs): print the functions in sorted order for profiling.
4578 (getfname): return the name of a builtin function.
4579 * eval.c (INCREMENT): new macro for counting execution of nodes.
4580 (interpret): call INCREMENT() appropriately.
4581 * main.c (do_profiling): new flag if doing profiling.
4582 `--profiling': new option added to getopt_long machinery.
4583 (main): For profiled version, set do_profile and output file.
4584 Call `dump_prog' and `dump_funcs' if do_profiling at end.
4585 (usage): add new argument.
4586 * node.c (more_nodes, freenode): set exec_count to zero.
4587 * profile.c: new file, does pretty printing and prints counts.
4588 * Makefile.in: update to create two versions of gawk, regular
4589 and `pgawk' which does profiling.
4590
4591Wed Mar 10 21:38:14 1999 Arnold D. Robbins <arnold@skeeve.com>
4592
4593 * io.c (close_redir): use update_ERRNO() instead of manually
4594 doing it.
4595
4596Mon Dec 21 15:58:21 1998 Arnold D. Robbins <arnold@skeeve.com>
4597
4598 * configure.in: add BeOS to list of cases where we hardwire
4599 GETPGRP_VOID.
4600 custom.h: remove the #define from __be_os case. Cleaner to
4601 do it all in configure. Based on email from Martin C. Brown,
4602 mc@whoever.com.
4603
4604Mon Nov 30 20:52:52 1998 Arnold D. Robbins <arnold@skeeve.com>
4605
4606 * eval.c (update_ERRNO): new function, mainly for use by
4607 extension functions.
4608 * awk.h: add decl.
4609
4610Tue Nov 24 18:13:29 1998 Arnold D. Robbins <arnold@skeeve.com>
4611
4612 * Changes based on submission from Christos Zoulas at D.E. Shaw
4613 that adds the following features:
4614 - checking for use of uninitialized variables
4615 - checking if a string that's not a number converts to 0
4616 - ability to load a dynamic library to add built-ins
4617 - VERSION variable (may or may not stay)
4618 Additional change:
4619 - --lint=fatal makes lint errors become fatal
4620 - LINT="fatal" has the same effect, any other positive
4621 value makes lint errors be just warnings
4622 * Makefile.in (includedir): new variable for gawk header files
4623 (ext.c, ext.o): new source and object files
4624 (OTHERS, extension): new directory for macro with example extension
4625 (install): install header files
4626 * acconfig.h (DYNAMIC): new macro, true if can do dynamic loading
4627 * array.c (assoc_lookup): new parameter `reference' is true if we
4628 want to do reference checking. Add appropriate reference checking
4629 code.
4630 * awk.h (UNITITIALIZED): new flag
4631 (lintfunc): function pointer for correct function to use
4632 (lintwarn): new macro to produce warnings
4633 (result): new macro for func call result, used in commented out
4634 code in eval.c.
4635 (getnode, freenode): revised to set UNINITIALIZED.
4636 (get_lhs): third arg for reference checking, change all calls
4637 -- Add appropriate decls of new/changed functions
4638 * awk.y (tokentab): new builtin "extension" for adding extensions
4639 (node_common): set flags to UNINITIALIZED for Node_var.
4640 * configure.in (dynamic linking): new check. Probably should
4641 be a separate macro.
4642 * eval.c (flag2str): add UNINITIALIZED to the table.
4643 (r_tree_eval): add checks for UNINITIALIZED.
4644 (push_args): appropriate changes for UNINITIALIZED to work.
4645 (r_get_lhs): new third argument for reference checking.
4646 (set_LINT): add code to handle setting `lintfunc' appropriately.
4647 * ext.c: new file, for doing dynamic library extensions.
4648 * extension/*: new directory with simple example code.
4649 * main.c (VERSION_node, EXTENSION_node): new nodes for new vars.
4650 (optab): change for "lint" to allow optional argument.
4651 (lintfunc): definition.
4652 (main): add case in option processing for --lint.
4653 (varinit): add entries for VERSION and EXTENSION.
4654 * node.c (r_force_number): checks that string really is a number.
4655 (morenodes): set UNITIALIZED in the flags.
4656 * re.c (all): change `result' to `res' globally to avoid conflict
4657 with new macro.
4658 * GLOBAL: change lint calls to warning() to lintwarn().
4659 * GLOBAL: change all calls to get_lhs() to have 3rd arg.
4660 * GLOBAL: change all calls to assoc_lookup() to have 3rd arg.
4661
4662Sun Nov 22 17:07:39 1998 Arnold D. Robbins <arnold@skeeve.com>
4663
4664 * patchlev.h: renamed from patchlevel.h to make life
4665 easier for the PC guys.
4666 (main.c): changed to include patchlev.h.
4667 (Makefile.in): changed to ref patchlev.h where needed.
4668
4669Sat Nov 7 21:29:52 1998 Arnold D. Robbins <arnold@skeeve.com>
4670
4671 * eval.c (r_get_lhs): case Node_field_spec. Fix the lint
4672 warnings for field reference of null string or non-numeric value.
4673 When turned on, $0 generated a warning! Oops.
4674
4675Thu Nov 5 16:58:38 1998 Arnold D. Robbins <arnold@skeeve.com>
4676
4677 * main.c (init_fds): new function to pre-open 0, 1, and 2 on
4678 /dev/null if they're not open. Robustness, more or less.
4679 (main): call init_fds.
4680 * io.c (str2mode): add smarts for two-letter strings
4681 such as "rw", "r+", "wr", "w+" and "a+".
4682
4683Mon Nov 2 16:55:46 1998 Arnold D. Robbins <arnold@skeeve.com>
4684
4685 * builtin.c (do_*): added lint checks for non-numeric
4686 and/or non-string arguments, as appropriate. This should
4687 have been done long ago.
4688
4689Tue Oct 20 21:56:06 1998 Arnold D. Robbins <arnold@skeeve.com>
4690
4691 * awk.h (LINT_node): new variable for LINT special var
4692 (Node_LINT): new node type.
4693 (set_LINT): declare function.
4694 * main.c (varinit): add LINT variable.
4695 (usage): print an emphatic pointer to the manual for bug reports.
4696 * eval.c (nodetypes): new entry for Node_LINT.
4697 (r_get_lhs): case added for Node_LINT.
4698 (set_LINT): set do_lint from LINT variable.
4699
4700Mon Oct 19 22:35:46 1998 Arnold D. Robbins <arnold@skeeve.com>
4701
4702 * configure.in: for GCC, add -Wall to get warnings for development.
4703 * Makefile.in (awktab.c): move sed stuff to separate script.
4704 * bisonfix.sed: new script, with old fix and Solaris x86 fix.
4705 * awk.h (nodetype2str): add declaration.
4706 (load_procinfo): add declaration.
4707
4708Tue Oct 13 22:28:56 1998 Arnold D. Robbins <arnold@skeeve.com>
4709
4710 * Changes to make PROCINFO["FS"] reflect the use of FIELDWIDTHS or FS.
4711 eval.c (assign_val): new function that does the mechanics of
4712 assignment
4713 main.c (load_procinfo): add setting of PROCINFO["FS"] to "FS".
4714 field.c (update_PROCINFO): new function to update the array.
4715 (set_FS): call update_PROCINFO.
4716 (set_FIELDWIDTHS): ditto.
4717
4718Sun Sep 27 10:18:05 1998 Arnold D. Robbins <arnold@skeeve.com>
4719
4720 * awk.h (reisstring): new prototype.
4721 * re.c (reisstring): new function, returns true if the re did
4722 a simple string match. This is rather simplistic in its logic.
4723 * io.c (get_a_record): in the case that RS is a regexp, AND
4724 the re matched at the exact end of the buffer, add a call to
4725 `reisstring' in case it's a simple string match. If so, we
4726 don't need to read more into the buffer because we don't
4727 have a regex like `x.*y' that might extend longer.
4728 This should be very helpful for interactive /inet clients
4729 where something like `RS = "\r\n"' happens.
4730
4731Thu Aug 13 22:07:40 1998 Arnold D. Robbins <arnold@skeeve.com>
4732
4733 * io.c (socketopen): fixes from Juergen Kahrs to socket
4734 opening code for "any host".
4735
4736Tue Jul 14 19:02:33 1998 Arnold D. Robbins <arnold@skeeve.com>
4737
4738 * aclocal.m4 (GAWK_AC_LIB_SOCKETS): removed the caching;
4739 configure gave different results the second time it was run!
4740
4741Fri Jul 10 09:11:06 1998 Arnold D. Robbins <arnold@skeeve.com>
4742
4743 * eval.c (interpret): minor cleanups: add variable name to
4744 fatal error Node_K_array_for and other minor changes.
4745
4746Mon Jun 22 16:53:34 1998 Arnold D. Robbins <arnold@skeeve.com>
4747
4748 * Makefile.in (tags, TAGS): add $(LIBSRC).
4749
4750Tue Jun 2 15:23:05 1998 Arnold D. Robbins <arnold@skeeve.com>
4751
4752 * io.c (devopen): relax previous change, don't require "any",
4753 just that a port be there. The user can put 0 if they
4754 don't care.
4755
4756Wed May 27 21:33:45 1998 Arnold D. Robbins <arnold@skeeve.com>
4757
4758 * io.c (devopen): for /inet, require that local and remote
4759 ports and the remote hostname be there, and that `any'
4760 be used for a port if they don't care.
4761
4762Thu May 21 14:13:46 1998 Arnold D. Robbins <arnold@skeeve.com>
4763
4764 * node.c (parse_escape): Add warning that is always on
4765 for \q for any unknown q inside string or regex constant.
4766 I got bit by this myself once too often. Or else I'm
4767 just getting old and senile.
4768
4769Mon May 4 12:42:49 1998 Arnold D. Robbins <arnold@skeeve.com>
4770
4771 * awk.h (NODETYPE): Sorted the Node_xxx entries for the
4772 builtin variables. Gotta look nice, don't we?
4773 * eval.c (nodetypes): ditto.
4774 (genflags2str): added code to check that we don't
4775 overflow the static buffer. This is just a debugging
4776 routine, not worth the hassle of dynamic allocation.
4777
4778Mon Mar 2 16:06:16 1998 Arnold D. Robbins <arnold@skeeve.com>
4779
4780 * Makefile.in (dist): remove any embedded copied RCS or CVS
4781 directories.
4782
4783Mon Feb 23 00:09:52 1998 Arnold D. Robbins <arnold@skeeve.com>
4784
4785 * awk.h (genflags2str): add declaration.
4786 * eval.c (genflags2str): new function.
4787 (flags2str): use new general purpose function.
4788 * io.c (redflags2str): same.
4789
4790Sun Feb 22 23:57:29 1998 Arnold D. Robbins <arnold@skeeve.com>
4791
4792 Significant changes to add two-way i/o and sockets!!!
4793
4794 * Makefile.in: add @SOCKET_LIBS@ to LIBS variable.
4795 * acconfig.h: add HAVE_SOCKETS and HAVE_PORTALS defs.
4796 * aclocal.m4: new macro GAWK_AC_LIB_SOCKETS.
4797 * awk.h: new node type, Node_redirect_twoway, and new redirection
4798 flags: RED_TWOWAY, and RED_SOCKET.
4799 * awk.y (parser): add TWOWAYIO token and appropriate productions.
4800 (yylex): recognize `|&' token if not traditional.
4801 * builtin.c (do_print, do_printf): flush buffer if TWOWAYIO.
4802 * configure.in: add header checks for networking header files,
4803 add --enable-portals switch, call GAWK_AC_LIB_SOCKETS
4804 * eval.c (nodetypes): add string constant for Node_redirect_twoway.
4805 * io.c (redflags2str): new function.
4806 (redirect): better error message in default case, add code for
4807 Node_redirect_twoway.
4808 (socketopen): new function.
4809 (iop_open, devopen): add recognition of `/inet/...'.
4810 (two_way_open): new function.
4811
4812Sat Dec 13 21:15:07 1997 Arnold D. Robbins <arnold@skeeve.com>
4813
4814 * awk.h (struct node): new member, `param_list' in union `x', becomes
4815 `node->parmlist' in the code.
4816 * awk.y (func_install): rearranged a bit, to build up a list of
4817 the function parameter names and to save it in the `parmlist' field.
4818 * eval.c (push_args): new parameter, `varnames', which is the list
4819 of variable names. Use this to set the vname field of each
4820 parameter's value as it's created. Special case arrays to include
4821 where they came from, mainly for array vs. scalar diagnostics.
4822 (r_tree_eval): don't set the `vname' field for parameters.
4823 (pop_fcall): free the `vname' field if it's an array.
4824 (func_call): pass in the `parmlist' field to call of push_args().
4825 (r_get_lhs): for Node_subscript, change error message to use
4826 the `vname' field.
4827 (stopme): new do-nothing function for use with debugging code
4828 and setting breakpoints.
4829
4830Thu Dec 4 15:18:17 1997 Arnold D. Robbins <arnold@skeeve.com>
4831
4832 * awk.y: fixed several lint checks and moved some into
4833 test for do_lint_old.
4834 * eval.c (fmt_index): add value of bad format spec to
4835 error message.
4836
4837Tue Nov 18 22:19:02 1997 Arnold D. Robbins <arnold@skeeve.com>
4838
4839 * Makefile.in (install): strip the installed binary.
4840 From Anatoly A. Orehovsky (tolik@mpeks.tomsk.su).
4841
4842Sun Nov 16 22:12:39 1997 Arnold D. Robbins <arnold@skeeve.com>
4843
4844 * array.c (in_array, assoc_lookup): add symbol->vname to
4845 fatal calls for scalar in array context.
4846
4847Wed Nov 12 22:18:33 1997 Arnold D. Robbins <arnold@skeeve.com>
4848
4849 * awk.h [ISASCII]: on all IS* macros, add cast to unsigned char.
4850 [TOUPPER, TOLOWER]: new macros using unsigned char.
4851 * awk.y: change to use of IS* vs. is* macros.
4852 * builtin.c (nondec2awknum): change to use of IS* vs. is* macros,
4853 change casts for casetable[] from int to unsigned char.
4854 use new TOLOWER, TOUPPER macros
4855 * dfa.c [ISASCII]: on all IS* macros, add cast to unsigned char.
4856 (lex): change isdigit to ISDIGIT.
4857 [TOUPPER, TOLOWER]: new macros using unsigned char, now used.
4858 * eval.c (fmt_ok): change to use of IS* vs. is* macros.
4859 * field.c (sc_parse_field): change to use of IS* vs. is* macros,
4860 change casts for casetable[] from int to unsigned char.
4861 (set_FS): change to use of IS* vs. is* macros.
4862 * io.c (get_a_record): change to use of IS* vs. is* macros,
4863 change casts for casetable[] from int to unsigned char.
4864 * main.c (main): change to use of IS* vs. is* macros.
4865 * node.c (r_force_number, parse_escape): change to use of IS* vs.
4866 is* macros.
4867 * re.c (make_regexp): change to use of IS* vs. is* macros.
4868 * regex.c [ISASCII]: on all IS* macros, add cast to unsigned char.
4869
4870Sun Oct 19 12:36:47 1997 Arnold D. Robbins <arnold@skeeve.com>
4871
4872 * ALL: Change email address to arnold@gnu.org in all relevant places.
4873
4874Wed Oct 15 03:38:12 1997 Arnold D. Robbins <arnold@skeeve.com>
4875
4876 * awk.y (yylex): Don't allow newlines after ? or : if do_posix.
4877
4878Thu Oct 9 19:28:39 1997 Arnold D. Robbins <arnold@skeeve.com>
4879
4880 * custom.h [SEQUENT]: removed; not needed any more since the
4881 mmap code was ripped out.
4882
4883Wed Oct 8 17:22:03 1997 Arnold D. Robbins <arnold@skeeve.com>
4884
4885 * configure.in: remove check for madvise; don't need it any more
4886 after nuking use of mmap.
4887
4888Tue Oct 7 11:14:21 1997 Arnold D. Robbins <arnold@skeeve.com>
4889
4890 * eval.c (flags2str): made the code table driven. Shortened a lot.
4891
4892Tue Sep 30 20:59:17 1997 Arnold D. Robbins <arnold@skeeve.com>
4893
4894 * eval.c (r_get_lhs): case Node_field_spec. Add lint warnings
4895 for field reference of null string or non-numeric value.
4896 Based on patch submitted by Alan Broder, ajb@dtmr.com.
4897
4898Wed Sep 24 20:47:59 1997 Arnold D. Robbins <arnold@skeeve.com>
4899
4900 * custom.h [TANDEM]: new changes. Finishes up Tandem
4901 integration.
4902
4903Mon Sep 22 00:42:34 1997 Arnold D. Robbins <arnold@skeeve.com>
4904
4905 * custom.h [__be_os]: remove BROKEN_TOKEN definition.
4906 dfa.c, dfa.h: change `token' to `dfa_token' to avoid BeOS
4907 compile problems.
4908
4909Thu Aug 7 22:35:17 1997 Arnold D. Robbins <arnold@skeeve.com>
4910
4911 * Changes for BeOS from mc@whoever.com
4912 awk.h (strncasecmp): bracket prototype.
4913 custom.h [__be_os]: new stuff.
4914 dfa.h, dfa.c [BROKEN_TOK]: new ifdefs to use dfa_token, not token.
4915
4916Fri Aug 1 13:32:49 1997 Arnold D. Robbins <arnold@skeeve.com>
4917
4918 * Tandem changes:
4919 awk.h [TANDEM]: misc additions, as needed.
4920 io.c (get_a_record): changes for fixed length records; not used
4921 on other systems.
4922 main.c (MRL): new variable, TANDEM specific.
4923 (main): update handling -mr option for TANDEM.
4924 (load_environ): comment out whole routine if TANDEM.
4925 missing.c [TANDEM]: new includes.
4926 gawkmisc.c [TANDEM]: include `tmiscc'.
4927
4928Wed Jul 30 19:53:52 1997 Arnold D. Robbins <arnold@skeeve.com>
4929
4930 * Close-on-exec changes:
4931 awk.h: (os_close_on_exec, os_isdir): new functions.
4932 gawkmisc.c: add include fcntl.h.
4933 configure.in [AC_CHECK_HEADERS]: add fcntl.h.
4934 io.c (devopen, iop_open): change to use os_isdir(), not S_IFDIR().
4935 (redirect, devopen, iop_open, gawk_popen): change all calls to
4936 fcntl() to os_close_on_exec().
4937
4938Tue Jul 29 11:09:45 1997 Arnold D. Robbins <arnold@skeeve.com>
4939
4940 * eval.c (set_BINMODE): fixed check for digits to use isdigit()
4941 instead of looping over digits and using strchr(). Duh.
4942
4943Sat Jul 26 22:52:08 1997 Arnold D. Robbins <arnold@skeeve.com>
4944
4945 * eval.c (set_BINMODE): fix so that `-v BINMODE=w' works.
4946 * node.c (r_force_number): add decl of strtod(); makes things
4947 work on MIPS.
4948 * Makefile.in (install-strip): new target.
4949
4950Fri Jul 18 13:28:05 1997 Arnold D. Robbins <arnold@skeeve.com>
4951
4952 * io.c (redirect, devopen, iop_open, gawk_popen): set the
4953 close-on-exec flag on all files and pipes opened for I/O.
4954 Keeps children run via system() or other pipes from running out
4955 of file descriptors.
4956
4957 (Reported by Kenny McCormack, gazelle@yin.interaccess.com.)
4958
4959Tue Jul 8 22:18:00 1997 Arnold D. Robbins <arnold@skeeve.com>
4960
4961 * awk.y [LEX_NEXT]: Removed support for `next file' as two words.
4962
4963Tue Jul 8 06:46:32 1997 Arnold D. Robbins <arnold@skeeve.com>
4964
4965 * dfa.c: changes from pjr@jet.UK (Paul J Rippin) from an old
4966 bug report against 2.14.0 that speed up initialization and
4967 rewrite the inner loop into readable code.
4968
4969Thu Jul 3 11:44:50 1997 Arnold D. Robbins <arnold@skeeve.com>
4970
4971 * Atari support moved into new `unsupported' directory.
4972 awk.h, Makefile.in, gawkmisc.c, and missing.c modified.
4973
4974Sun Jun 29 14:17:37 1997 Arnold D. Robbins <arnold@skeeve.com>
4975
4976 * awk.y (exp): fixed warning about `x = /foo/'.
4977
4978Wed Jun 25 09:07:57 1997 Arnold D. Robbins <arnold@skeeve.com>
4979
4980 * PORTS: removed from distribution.
4981 * Makefile.in (MISC): removed PORTS.
4982
4983Sun Jun 22 11:52:57 1997 Arnold D. Robbins <arnold@skeeve.com>
4984
4985 * BINMODE changes
4986 awk.h (Node_BINMODE): added.
4987 (struct redirect): added mode field to save for io.c:close_one().
4988 (BINMODE, BINMODE_node, set_BINMODE): add declarations.
4989 awk.y (isnoeffect): add Node_BINMODE.
4990 eval.c (nodetypes): add Node_BINMODE string.
4991 (r_tree_eval, r_get_lhs): add cases for Node_BINMODE.
4992 (set_BINMODE): new function.
4993 io.c (binmode): new function.
4994 (nextfile, redirect, gawk_popen): add calls to binmode().
4995 main.c (BINMODE, BINMODE_node): add decls.
4996 (main): add call to setmode() if BINMODE is set.
4997 (varinit): add entry for BINMODE.
4998
4999Wed Jun 4 21:52:25 1997 Arnold D. Robbins <arnold@skeeve.com>
5000
5001 * configure.in [AC_FUNC_MMAP]: removed call.
5002 * awk.h [struct iobuf]: removed IOP_MMAPED flag and `getrec' member.
5003 * io.c: removed all mmap related code.
5004
5005Sun Apr 27 16:23:56 1997 Arnold D. Robbins <arnold@skeeve.com>
5006
5007 * aclocal.m4 [GAWK_AC_FUNC_MKTIME]: new macro.
5008 * configure.in (GAWK_AC_FUNC_MKTIME): call it.
5009
5010Thu Apr 24 23:25:06 1997 Arnold D. Robbins <arnold@skeeve.com>
5011
5012 * io.c (devopen): remove stat test for /dev/foo files. Finally.
5013
5014Fri Jul 26 09:23:15 1996 Arnold D. Robbins <arnold@skeeve.com>
5015
5016 * Changes to add an abort statement, a la tawk
5017 awk.h (Node_K_abort): new enum value for NODETYPE.
5018 main.c (aborting): new flag variable.
5019 (main): add logic to handle aborting.
5020 eval.c (interpret): add case for Node_K_abort.
5021 io.c (do_input): if aborting, break loop.
5022 awk.y (tokentab): add entry for "abort" keyword
5023 (PRODUCTIONS): add production for LEX_ABORT.
5024
5025Wed Jul 24 12:49:52 1996 Arnold D. Robbins <arnold@skeeve.com>
5026
5027 * First cut at changes for i18n.
5028 awk.h (do_intl): declare new flag variable.
5029 [INTLSTR]: new flag def.
5030 (m_tree_eval): fix definitions for INTLSTR.
5031 (force_string): fix definitions for INTLSTR.
5032 awk.y (yylex): add _"..." for international strings.
5033 (dumpintlstr): new function.
5034 main.c (do_intl): define new flag variable.
5035 (optab): add "gen-po" entry.
5036 (main): if do_intl, exit, don't run the program.
5037 (gawkoption): add "gen-po" entry.
5038 node.c (r_force_string): call gettext if flags indicate INTLSTR.
5039
5040Thu Mar 14 06:29:42 1996 Arnold D. Robbins <arnold@skeeve.com>
5041
5042 * awk.h (do_mktime): added declaration of new function.
5043 * builtin.c (do_mktime): new function.
5044 * awk.y (tokentab): added "mktime" to list of gawk extensions.
5045 * missing.c [HAVE_MKTIME]: added include of mktime.c if needed.
5046
5047Mon Feb 26 22:32:19 1996 Arnold D. Robbins <arnold@skeeve.com>
5048
5049 * io.c (pidopen, useropen): added warnings to use PROCINFO[],
5050 not special files.
5051 * main.c (load_procinfo): new function.
5052 * awk.y (variable): added call to load_procinfo() function.
5053
5054Mon Aug 7 15:23:00 2000 Arnold D. Robbins <arnold@skeeve.com>
5055
5056 * Release 3.0.6: Release tar file made.
5057
5058Thu Aug 3 17:47:53 2000 Greg McGary <greg@mcgary.org>
5059
5060 * regex.c: patches for gcc bounded pointer handling.
5061
5062Thu Aug 3 13:09:09 2000 Arnold D. Robbins <arnold@skeeve.com>
5063
5064 * array.c (in_array, do_delete): fix tests for index equality
5065 when searching through the array to work correctly when
5066 index is "".
5067
5068Fri Jul 14 21:40:17 2000 Pat Rankin <rankin@eql.caltech.edu>
5069
5070 * builtin.c (format_tree): Workaround a DEC C V5.7 bug by
5071 splitting `strcpy() + 3' into two expressions (the builtin
5072 inline strcpy evidently has erroneous return type of void *
5073 instead of char *; reputedly fixed in V6.1).
5074
5075 * eval.c (C): New macro.
5076 [casetable]: Use it to add explicit casts for the character
5077 values outside the range of 0 to 127.
5078 * missing/strncasecmp.c [C, charmap]: Likewise.
5079
5080 * io.c (redirect): Add EIO check on failed open for VMS.
5081
5082Fri Jul 14 11:57:23 2000 Arnold D. Robbins <arnold@skeeve.com>
5083
5084 Efficiency hack: turn `for (iggy in foo) delete foo[iggy]'
5085 into moral equivalent of `delete foo'.
5086 * array.c (do_delete_loop): new routine.
5087 * awk.h [NODETYPE]: new Node_K_delete_loop value.
5088 Add declaration of do_delete_loop.
5089 * awk.y [LEX_FOR]: Fix code to recognize special case.
5090 * eval.c (nodetypes): new entry for Node_K_delete_loop.
5091 (interpret): add case for Node_K_delete_loop, add more
5092 diagnostic info in default (cant_happen) case.
5093
5094Tue Jul 11 22:15:10 2000 Pat Rankin <rankin@eql.caltech.edu>
5095
5096 * awk.y (nextc): Recast unsigned char values back to int to
5097 prevent VAX C from truncating EOF to 255.
5098
5099Tue Jul 11 14:08:23 2000 Arnold D. Robbins <arnold@skeeve.com>
5100
5101 * array.c (do_delete): switch to string comparison, not
5102 cmp_nodes.
5103 (assoc_find): add call to force_string on subscript.
5104 * eval.c (interpret): Case Node_K_arrayfor: check for
5105 Node_array_ref and fetch original_array. Yowser.
5106
5107Fri Jun 30 21:57:00 2000 Arnold D. Robbins <arnold@skeeve.com>
5108
5109 * array.c (assoc_lookup): Don't force the subscript
5110 to be a string. Not a good idea after the change
5111 to using dupnode.
5112
5113Sun Jun 25 15:08:19 2000 Arnold D. Robbins <arnold@skeeve.com>
5114
5115 * Release 3.0.5: Release tar file made.
5116
5117Wed Jun 14 13:03:45 2000 Arnold D. Robbins <arnold@skeeve.com>
5118
5119 * field.c (set_record): manage a private buffer for $0.
5120 Keeps things safe in case `getline var' rearranges the
5121 IOBUF's contents that $0 is still pointing into.
5122
5123Tue Jun 13 16:27:55 2000 Paul Eggert <eggert@twinsun.com>
5124
5125 Upgrade to latest and greatest version of largefile code.
5126
5127 * configure.in (AC_CANONICAL_HOST): Remove.
5128 (GAWK_AC_SYS_LARGEFILE): Defer until after AC_MINIX,
5129 to avoid autoconf warnings.
5130
5131 Rewrite largefile configuration so that we don't need to run
5132 getconf and don't need AC_CANONICAL_HOST.
5133 * config.guess, config.sub: Remove these files.
5134 * Makefile.in (MISC): Remove config.guess, config.sub.
5135 * m4/largefile.m4 (GAWK_AC_SYS_LARGEFILE_FLAGS,
5136 GAWK_AC_SYS_LARGEFILE_SPACE_APPEND): Remove.
5137 (GAWK_AC_SYS_LARGEFILE_TEST_INCLUDES): New macro.
5138 (GAWK_AC_SYS_LARGEFILE_MACRO_VALUE): Change arguments from
5139 CODE-TO-SET-DEFAULT to VALUE, INCLUDES, FUNCTION-BODY.
5140 All uses changed.
5141 Instead of inspecting the output of getconf, try to compile the
5142 test program without and with the macro definition.
5143 (GAWK_AC_SYS_LARGEFILE): Do not require AC_CANONICAL_HOST or check
5144 for getconf. Instead, check for the needed flags by compiling
5145 test programs.
5146
5147 (GAWK_AC_SYS_LARGEFILE): Define _XOPEN_SOURCE to be 500 to
5148 work around glibc 2.1.3 bug.
5149
5150 (GAWK_AC_SYS_LARGEFILE_FLAGS): Don't use -n32 on IRIX if the
5151 installer said otherwise.
5152
5153 (GAWK_AC_SYS_LARGEFILE_FLAGS): Work around a bug in the QNX shell,
5154 which doesn't propagate exit status of failed commands inside
5155 shell assignments.
5156
5157Wed Jun 7 13:23:09 2000 Arnold D. Robbins <arnold@skeeve.com>
5158
5159 * Updated copyright dates in appropriate files.
5160
5161Mon May 22 17:29:43 2000 Arnold D. Robbins <arnold@skeeve.com>
5162
5163 * Makefile.in (clean): get `*/core' too.
5164
5165Sun May 7 16:33:05 2000 Arnold D. Robbins <arnold@skeeve.com>
5166
5167 * array.c (concat_exp): Change ref to `lnode->stlen' and
5168 `lnode->stptr' for SUBSEP to use `var_value->...'.
5169
5170Tue May 2 09:54:29 2000 Arnold D. Robbins <arnold@skeeve.com>
5171
5172 Fix referencing freed memory as shown by test/arynocls.* tests.
5173 * awk.h [Node_array_ref]: new node type.
5174 [orig_array]: new macro element in NODE structure.
5175 * field.c (do_split): handle case for Node_array_ref, fetch
5176 the original array.
5177 * array.c (in_array, do_delete): ditto.
5178 * eval.c (nodetypes[]): add Node_array_ref string.
5179 (r_tree_eval): handle case for Node_array_ref.
5180 (push_args): push arrays as Node_array_ref, and pass them on.
5181 (pop_fcall): don't unref lnode if it's an array when releasing
5182 local arguments. Check for both Node_array and Node_array_ref.
5183 (r_get_lhs): choke on Node_array_ref as for Node_array.
5184 For Node_subscript, handle Node_array_ref.
5185
5186Tue May 2 09:52:12 2000 Bruno Haible <haible@clisp.cons.org>
5187
5188 * io.c (redirect): After reopening a `struct redirect', move it to
5189 the head of the list.
5190
5191Sun Apr 2 17:51:40 2000 Arnold D. Robbins <arnold@skeeve.com>
5192
5193 * re.c (re_update): Check if IGNORECASE has changed, and
5194 if so recompute the re. See test/igncdym.awk.
5195
5196Mon Mar 20 16:18:34 2000 Arnold D. Robbins <arnold@skeeve.com>
5197
5198 * io.c (set_RS): Added a lint warning about multicharacter RS,
5199 per suggestion from Akim DeMaille (akim@epita.fr).
5200
5201Sun Feb 13 14:40:32 2000 Arnold D. Robbins <arnold@skeeve.com>
5202
5203 * eval.c (push_args): Fix from Nide Naoyuki <nide@ics.nara-wu.ac.jp>,
5204 re-assign `f' in case tree_eval moved fcall_list around.
5205
5206Sun Feb 6 11:39:33 2000 Arnold D. Robbins <arnold@skeeve.com>
5207
5208 * eval.c (op_assign): Fix it right. For ++ and --, get the lhs
5209 in the operations, do the op, and then return. For += etc,
5210 get the rhs FIRST, since the lhs can move around as a result,
5211 *then* get the lhs and do the operation. See test/opasnidx.awk.
5212
5213Tue Feb 1 18:41:40 2000 Arnold D. Robbins <arnold@skeeve.com>
5214
5215 * eval.c (op_assign): reget the rval after regetting
5216 the left hand side. See test/opasnslf.awk for why.
5217
5218Thu Jan 27 18:06:31 2000 Arnold D. Robbins <arnold@skeeve.com>
5219
5220 * awk.y (yylex): Made ']' not one of the characters
5221 that sets `want_assign' to false. `a[i] /= 2' was
5222 broken. Per bug report from Kristofer T. Karas
5223 <ktk@ktk.bidmc.harvard.edu>.
5224
5225Wed Dec 22 15:06:37 1999 Arnold D. Robbins <arnold@skeeve.com>
5226
5227 * awk.y: Removed declarations of functions before
5228 definition of `tokentab[]'. They're redundant with
5229 what's in awk.h.
5230
5231Thu Dec 9 17:01:07 1999 Arnold D. Robbins <arnold@skeeve.com>
5232
5233 * node.c (parse_escape): Add lint warning for unrecognized
5234 escape sequences.
5235
5236Mon Dec 6 15:17:34 1999 Arnold D. Robbins <arnold@skeeve.com>
5237
5238 * main.c (usage): Changed bug reporting email addresses to
5239 be a reference to `Bugs' node in the online and printed
5240 doc, instead.
5241
5242Thu Dec 2 13:08:18 1999 Arnold D. Robbins <arnold@skeeve.com>
5243
5244 * builtin.c (do_compl): test `d' for negative inside the do_lint
5245 test, not uval. Ooops.
5246
5247Fri Nov 26 10:58:36 1999 Arnold D. Robbins <arnold@skeeve.com>
5248
5249 * array.c (assoc_find): ALWAYS compare indexes as strings,
5250 don't use cmp_nodes in case they are numeric. Oh my.
5251 Talk about a Day 1 bug!
5252
5253Tue Nov 23 11:58:53 1999 Arnold D. Robbins <arnold@skeeve.com>
5254
5255 * regex.c (SYNTAX): cast argument to `unsigned char' instead of
5256 &-ing with 0xFF. Hopefully somewhat more portable, ala 21 Nov 99
5257 changes to awk.y.
5258
5259Sun Nov 21 22:25:27 1999 Paul Eggert <eggert@twinsun.com>
5260
5261 * aclocal.m4 (AC_SYS_LARGEFILE_FLAGS): Work around a
5262 problem with the QNX 4.25 shell, which doesn't propagate exit
5263 status of failed commands inside shell assignments.
5264
5265Sun Nov 21 20:33:35 1999 Arnold D. Robbins <arnold@skeeve.com>
5266
5267 * awk.h (nextc): remove declaration, don't need it here.
5268 awk.y (nextc): Cast values to unsigned char so that latin-1
5269 characters in strings don't turn themselves into EOF.
5270 Most notably y-umlaut, which is decimal 255.
5271
5272Mon Nov 1 20:00:25 1999 Arnold D. Robbins <arnold@skeeve.com>
5273
5274 * regex.c (init_syntax_once): move below definition of
5275 ISALNUM etc., then use ISALNUM to init the table, so that
5276 the word ops will work if i18n'ed.
5277 (SYNTAX): And subscript with 0xFF for Latin-1 characters.
5278
5279Mon Oct 25 18:37:13 1999 Arnold D. Robbins <arnold@skeeve.com>
5280
5281 * awk.h, main.c, io.c: undo previous changes (22 Oct 1999).
5282 * main.c (main): move call to `init_fields()' to before
5283 arg parsing. This allows `-v NF=blah' to work ok.
5284
5285Fri Oct 22 17:43:40 1999 Arnold D. Robbins <arnold@skeeve.com>
5286
5287 * main.c (arg_assign): Add new arg, `initing' for icky special
5288 casing of -v of special variables. Use it to check for NF.
5289 May need to add other cases later.
5290 (pre_assign): change call arg_assign, passing initing=TRUE;
5291 io.c (nextfile): change call arg_assign, passing initing=FALSE;
5292 awk.h: Change prototype for arg_assign.
5293
5294Tue Oct 19 16:06:48 1999 Paul Eggert <eggert@twinsun.com>
5295
5296 * io.c (close_redir): Don't munge errno between setting it and
5297 using it.
5298
5299Wed Oct 6 17:47:47 1999 Arnold D. Robbins <arnold@skeeve.com>
5300
5301 * main.c (arg_assign): return NULL on bad variable. Allows
5302 things like `./3x=stuff' to work as a filename.
5303
5304Thu Sep 23 21:35:46 1999 Paul Eggert <eggert@twinsun.com>
5305
5306 * aclocal.m4 (GAWK_AC_SYS_LARGEFILE_FLAGS): Work around GCC
5307 2.95.1 bug in HP-UX 10.20 or later. (Had to fix the fix. ADR. :-)
5308
5309Tue Sep 21 13:31:36 1999 Arnold D. Robbins <arnold@skeeve.com>
5310
5311 * builtin.c (format_tree): For '0', only set zero_flag if we
5312 haven't seen the field width or precision yet.
5313
5314Mon Aug 9 13:06:01 1999 Arnold D. Robbins <arnold@skeeve.com>
5315
5316 * array.c (assoc_lookup): Removed code that gave each array
5317 a private copy of each index. Balloons memory usage for
5318 no good reason that I can see. Just use dupnode in all
5319 cases.
5320 * configure.in: check for $srcdir/.developing adds extra
5321 defines for my testing/debugging use. Yes, hack alert.
5322
5323Sun Aug 1 11:02:02 1999 Arnold D. Robbins <arnold@skeeve.com>
5324
5325 * node.c (dupnode): turn off FIELD when copying nodes.
5326 * array.c (do_adump, assoc_dump): new functions for array debugging.
5327 * awk.y (tokentab): conditionally add "adump" function for debugging.
5328 * awk.h: delcare new functions.
5329
5330Thu Jul 29 23:26:40 1999 Arnold D. Robbins <arnold@skeeve.com>
5331
5332 From wsanchez@apple.com:
5333 * Makefile.in (install-strip): new target, coding stds. compatibility.
5334 * config.guess, config.sub: Add MacOS X recognition.
5335
5336Thu Jul 29 19:09:19 1999 Arnold D. Robbins <arnold@skeeve.com>
5337
5338 * awk.y (func_install): make `function foo(foo)' a fatal error.
5339 eval.c (r_tree_eval): diagnose use of a function name as a
5340 variable inside the function.
5341
5342Sun Jul 4 16:53:14 1999 Arnold D. Robbins <arnold@skeeve.com>
5343
5344 * eval.c (eval_condition): add extra braces to avoid
5345 gcc warning. I'm not going to bother for the library
5346 code like dfa and regex.
5347
5348Wed Jun 30 16:14:36 1999 Arnold D. Robbins <arnold@gnu.org>
5349
5350 * Release 3.0.4: Release tar file made. This time for sure.
5351
5352Wed Jun 30 16:10:11 1999 Arnold D. Robbins <arnold@gnu.org>
5353
5354 * awk.h: add include of <assert.h>, and comment about config.h
5355 having to be included before any system headers. Otherwise,
5356 with egcs-2.91.66 and later on Linux systems, and possibly
5357 others, things break badly, due to the LFS macros.
5358 * awk.y, builtin.c, eval.c, field.c, io.c: removed include
5359 of assert.h
5360
5361Wed Jun 9 11:39:19 1999 Paul Eggert <eggert@twinsun.com>
5362
5363 Port the large-file code to AIX, HP-UX, and IRIX.
5364 Add cross-compilation support for large files.
5365
5366 * config.guess, config.sub: New files.
5367
5368 * configure.in (AC_CANONICAL_HOST):
5369 Add; GAWK_AC_SYS_LARGEFILE needs this.
5370 (GAWK_AC_SYS_LARGEFILE): Renamed from GAWK_AC_LARGE_FILES.
5371
5372 * aclocal.m4 (GAWK_AC_SYS_LARGEFILE): Renamed from GAWK_AC_LARGE_FILES.
5373 Add support for AIX and HP-UX.
5374 (GAWK_AC_SYS_LARGEFILE_FLAGS, GAWK_AC_SYS_LARGEFILE_SPACE_APPEND,
5375 GAWK_AC_SYS_LARGEFILE_MACRO_VALUE): New macros.
5376
5377 * acconfig.h (_FILE_OFFSET_BITS, _LARGEFILE_SOURCE, _LARGE_FILES):
5378 New macros.
5379
5380 * Makefile.in (MISC): add config.guess and config.sub so they get
5381 included in the distribution.
5382
5383Wed Jun 9 11:29:29 1999 Paul Eggert <eggert@twinsun.com>
5384
5385 * io.c (iop_alloc): Don't mmap files whose sizes don't fit in `int'.
5386 [ This isn't really needed, as HAVE_MMAP is #undef'ed at the top,
5387 but it's there in case people want to take their life in their hands. ]
5388
5389Sun Jun 6 11:28:07 1999 Arnold D. Robbins <arnold@gnu.org>
5390
5391 * BETA Release 3.0.46: Release tar file made.
5392
5393Wed Jun 2 14:36:24 1999 Arnold D. Robbins <arnold@gnu.org>
5394
5395 * PORTS: Updated with a more recent list of systems
5396 that gawk compiles and tests ok on.
5397
5398Tue Jun 1 14:24:59 1999 Arnold D. Robbins <arnold@gnu.org>
5399
5400 * BETA Release 3.0.45: Release tar file made.
5401
5402Tue May 25 16:32:37 1999 Arnold D. Robbins <arnold@gnu.org>
5403
5404 * builtin.c (format_tree): more smarts for weird cases, such as
5405 zero precisions and zero values used with the `#' flag.
5406 Thanks to Andreas Schwab (schwab@gnu.org) for pointing these out.
5407
5408Wed May 19 14:02:54 1999 Arnold D. Robbins <arnold@gnu.org>
5409
5410 * io.c (do_close): move test for `close(FILENAME)' to after
5411 loop through all open redirections. Fixes problems in obscure
5412 cases with redirections in END rules.
5413
5414Sun May 16 14:08:39 1999 Arnold D. Robbins <arnold@gnu.org>
5415
5416 * awk.y (yylex): fix group of characters including ',' to
5417 set want_assign = FALSE. Fixes bizarre parsing problems in
5418 function call lists, for example.
5419 * io.c (get_a_record): repair logic for single-leading-newline
5420 case.
5421
5422Tue May 11 16:48:11 1999 Arnold D. Robbins <arnold@gnu.org>
5423
5424 * aclocal.m4 (GAWK_AC_AIX_TWEAK): new macro.
5425 * configure.in: call it
5426 * Makefile.in: (awklib/all): pass CFLAGS on to sub-make so
5427 that password programs will get AIX magic defines. Avoids
5428 having to tweak program code for those in doc/gawk.texi.
5429
5430Mon May 3 16:56:23 1999 Arnold D. Robbins <arnold@gnu.org>
5431
5432 * array.c (do_delete): don't free_temp(subs) until after all
5433 references to it are finished.
5434
5435Mon May 3 13:41:16 1999 Arnold D. Robbins <arnold@gnu.org>
5436
5437 * BETA Release 3.0.44: Release tar file made.
5438
5439Sun May 2 18:25:43 1999 Arnold D. Robbins <arnold@gnu.org>
5440
5441 * io.c (get_a_record): Do a really good job of stripping newlines
5442 from the front of records when RS = "" and there's only one
5443 newline at the front of the file, which the regex didn't catch.
5444
5445Wed Apr 28 12:27:49 1999 Arnold D. Robbins <arnold@gnu.org>
5446
5447 * configure.in: more HP stuff: fix the manual alloca code so that
5448 gawk will compile and link on HP systems. See the comments.
5449
5450Sun Apr 25 13:39:16 1999 Arnold D. Robbins <arnold@gnu.org>
5451
5452 * Makefile.in (gawk): add $(CFLAGS) to linking step.
5453 * configure.in: correctly do AC_FUNC_GETPGRP on HP systems too.
5454
5455Tue Apr 13 20:21:00 1999 Arnold D. Robbins <arnold@gnu.org>
5456
5457 * BETA Release 3.0.43: Release tar file made.
5458
5459Tue Apr 13 19:02:20 1999 Arnold D. Robbins <arnold@gnu.org>
5460
5461 * io.c (useropen, pidopen): add casts to int on arguments to
5462 silence gcc warnings.
5463 * regex.c (regcomp,regexec,regfree): add ifdef for APPLE.
5464
5465Thu Feb 4 10:38:02 1999 Arnold D. Robbins <arnold@gnu.org>
5466
5467 * custom.h: hacks for BeOS. Not documented in the manual right now.
5468 * configure.in: hacks for BeOS. Check for HP-UX and define C_ALLOCA
5469 if not using gcc. I wish they'd just fix bison already.
5470
5471Sun Dec 20 16:57:38 1998 Arnold D. Robbins <arnold@gnu.org>
5472
5473 * BETA Release 3.0.42: Release tar file made.
5474
5475Sun Nov 15 21:05:39 1998 Arnold D. Robbins <arnold@gnu.org>
5476
5477 * io.c (gawk_popen): Add WIN32 to list of systems that use
5478 the non-real-pipe version. From the PC gawk guys.
5479
5480Wed Nov 4 11:32:24 1998 Arnold D. Robbins <arnold@gnu.org>
5481
5482 * BETA Release 3.0.41: Release tar file made.
5483
5484Tue Nov 3 16:24:35 1998 Arnold D. Robbins <arnold@gnu.org>
5485
5486 * eval.c (r_get_lhs): Fix the cases for the special variables,
5487 don't unref their current value if it's the same as the internal
5488 copy; perhaps the current one is used in a concatenation or some
5489 other expression somewhere higher up in the call chain. Ouch.
5490 See test/getnr2tm.awk.
5491
5492Sun Nov 1 15:24:52 1998 Arnold D. Robbins <arnold@gnu.org>
5493
5494 * builtin.c (format_tree): improve handling of zero-fill
5495 when a precision is present. See test/zeroflag.awk.
5496
5497Wed Oct 28 20:40:17 1998 Arnold D. Robbins <arnold@gnu.org>
5498
5499 * eval.c (r_tree_eval): Case for Node_concat. Get lengths
5500 separately, in case one expression has a side effect that
5501 that changes another. Ugly, but it keeps gawk from core
5502 dumping. See test/nasty.awk.
5503
5504Sun Oct 18 21:27:24 1998 Arnold D. Robbins <arnold@gnu.org>
5505
5506 * awk.y (append_right): bug fix, if `list' or `new' are NULL,
5507 return `list', so that things don't break too badly.
5508 * regex.c (re_compile_fastmap): remove unused variable `num_regs'.
5509
5510Thu Oct 8 19:36:57 1998 Arnold D. Robbins <arnold@gnu.org>
5511
5512 * BETA Release 3.0.40: Release tar file made.
5513
5514Mon Jul 27 10:14:33 1998 Arnold D. Robbins <arnold@gnu.org>
5515
5516 * node.c (parse_escape): Remove assignment with side effects
5517 from ISXDIGIT test. Thanks to "Mihai T. LAZARESCU"
5518 <mihai@ccmserv.polito.it> for pointing this out.
5519
5520Mon Apr 27 11:31:32 1998 Arnold D. Robbins <arnold@gnu.org>
5521
5522 * main.c (usage): fix the email address for the bug list.
5523 (copyleft): update the copyright year.
5524
5525Mon Mar 23 21:22:32 1998 Arnold D. Robbins <arnold@gnu.org>
5526
5527 * eval.c (r_get_lhs): make sure that values of type
5528 Node_param_list don't have the FUNC flag set. This means
5529 we don't allow the use of a function name as a variable or
5530 array from within the function.
5531
5532Sun Mar 22 19:12:32 1998 Paul Eggert <eggert@twinsun.com>
5533
5534 * aclocal.m4 (GAWK_AC_LARGE_FILES): new macro that checks for
5535 large file support, and updates CPPFLAGS, LDFLAGS, LIBS as
5536 needed.
5537 * configure.in: call GAWK_AC_LARGE_FILES.
5538 * Makefile.in (CPPFLAGS, LDFLAGS): Let autoconf configure.
5539 (COMPFLAGS): Add $(CPPFLAGS).
5540
5541Mon Mar 16 14:06:41 1998 Arnold D. Robbins <arnold@gnu.org>
5542
5543 * field.c (using_FIELDWIDTHS): new macro.
5544 (using_fieldwidths): use new macro.
5545 (do_split): in case for FS_DFLT, also check that
5546 we're not using FIELDWIDTHS. Otherwise, split() would use
5547 FIELDWIDTHS, not current value of FS. Oops.
5548
5549Sun Nov 16 20:08:59 1997 Arnold D. Robbins <arnold@gnu.org>
5550
5551 * builtin.c (sub_common): fix for count of matches in gsub
5552 from Geert.Debyser@esat.kuleuven.ac.be.
5553
5554Wed Oct 15 03:38:12 1997 Arnold D. Robbins <arnold@gnu.org>
5555
5556 * field.c (set_FS): Use `sc_parsefield' if the value of FS is not
5557 alphabetic OR if not ignoring case. Bug fix if IGNORECASE
5558 is true and FS happens to be '^'. Sheesh, talk about obscure.
5559 (rebuild_record): Add more smarts to the code that sets up the
5560 fields. Thanks to Alan J. Broder (ajb@dtmr.com).
5561
5562Sun Oct 5 11:56:52 1997 Arnold D. Robbins <arnold@gnu.org>
5563
5564 * configure.in: if ISC add -D_SYSV3 to CFLAGS, per email from
5565 Mario Vanoni (vanonim@dial.eunet.ch).
5566
5567Fri Sep 26 00:57:49 1997 Arnold D. Robbins <arnold@gnu.org>
5568
5569 * awk.y (append_right): return if either list is NULL. Prevents
5570 syntax errors from causing core dumps.
5571
5572Wed Sep 17 15:34:15 1997 Arnold D. Robbins <arnold@gnu.org>
5573
5574 * field.c (rebuild_record): set things up so that all fields point
5575 into the new record and release any changed fields without
5576 causing memory leaks. Avoids problems when fields are extended
5577 with the value of $0 or other fields and then $0 is assigned to.
5578
5579Mon Sep 15 16:12:55 1997 Arnold D. Robbins <arnold@gnu.org>
5580
5581 * builtin.c (do_print): when testing for NUMBER, make sure
5582 it's not a string too. Thanks to Michael Brennan for
5583 clarifying the semantics.
5584
5585Sun Sep 14 19:55:12 1997 Arnold D. Robbins <arnold@gnu.org>
5586
5587 * node.c (format_val): always format values ourselves: avoids
5588 problems if OFMT is bizarre, like %s.
5589
5590Sun Sep 14 00:08:53 1997 Arnold D. Robbins <arnold@gnu.org>
5591
5592 * io.c (get_a_record): replace all occurrences of the test
5593 `grRS == FALSE' with `RS_is_null' which makes ` RS = "\0" '
5594 actually work, is clearer code, and actually makes use of
5595 the `RS_is_null' variable!
5596
5597Sun Aug 17 07:15:12 1997 Arnold D. Robbins <arnold@gnu.org>
5598
5599 * field.c (set_FS): Change logic to always set parse_field, even
5600 if FS hasn't changed. Thanks to Igor Sheyn for catching this.
5601
5602Wed Aug 6 21:04:37 1997 Arnold D. Robbins <arnold@gnu.org>
5603
5604 * io.c (VMS et al gawk_popen): use pclose, not fclose, if
5605 iop_alloc fails.
5606
5607Wed Jul 30 19:53:52 1997 Arnold D. Robbins <arnold@gnu.org>
5608
5609 * awk.y [variable]: fix case for subscript if $3 == NULL.
5610
5611Sun Jul 27 22:47:30 1997 Arnold D. Robbins <arnold@gnu.org>
5612
5613 * awk.y (get_src_buf): don't close file if it's stdin.
5614
5615Sun Jul 27 22:47:15 1997 Pat Rankin <rankin@eql.caltech.edu>
5616
5617 * io.c (#if VMS: vmsrtl_fileno): new routine.
5618 (#if VMS: fileno): new macro substituted for stdio one.
5619
5620Thu Jul 17 20:05:59 1997 Arnold D. Robbins <arnold@gnu.org>
5621
5622 * builtin.c (do_print): When OFMT != CONVFMT, create a new
5623 temporary node with just the numeric value valid and format it,
5624 and use that for printing. Avoids memory corruption.
5625
5626Wed Jul 16 10:01:16 1997 Arnold D. Robbins <arnold@gnu.org>
5627
5628 * regex.c: When SYNTAX_TABLE is defined, but not emacs, then
5629 CHAR_SET_SIZE is not defined, though used in regcomp. It should
5630 be taken out of #ifdef SYNTAX_TABLE. Fix from bug group, from
5631 Akim Demaille, demaille@inf.enst.fr.
5632 * awk.h (isnondecimal): make test a little smarter.
5633 builtin.c (nondec2awknum): add bailout for decimal numbers, e.g.
5634 `00.1'. Fix from Larry Schwimmer <rosebud@cyclone.Stanford.EDU>.
5635
5636Thu Jun 19 19:00:40 1997 Arnold D. Robbins <arnold@gnu.org>
5637
5638 * eval.c (interpret): case Node_K_next, Node_K_nextfile: fatal
5639 error if called from BEGIN or END.
5640 (Fixed completely Mon May 3 13:31:42 1999.)
5641
5642Mon Jun 9 22:40:04 1997 Arnold D. Robbins <arnold@gnu.org>
5643
5644 * builtin.c (nondec2awknum): Allow `f' and `F' in hexadecimal numbers.
5645 Gotta get more sleep...
5646 * array.c (assoc_lookup): Fix from Tom Karzes (karzes@equator.com)
5647 for memory leak when forcing type to Node_var_array.
5648
5649Thu May 15 12:49:08 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5650
5651 * Release 3.0.3: Release tar file made.
5652
5653Wed May 14 08:06:08 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5654
5655 * io.c (do_close): add lint warning if closing something that
5656 isn't open.
5657
5658Tue May 13 12:14:12 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5659
5660 * random.c, builtin.c: remove __GLIBC__ tests, since it breaks
5661 `make test'. I prefer consistency across platforms.
5662 * Makefile.in (gawk): undid April 25 changes and added comment.
5663 Putting COMPLAGS in breaks with -g on VMS POSIX.
5664
5665Sun May 11 14:48:04 1997 Darrell Hankerson <hankedr@mail.auburn.edu>
5666
5667 * io.c [MSC_VER]: add cases for WIN32.
5668 * regex.c [MSC_VER]: add cases for WIN32.
5669
5670Sun May 11 07:04:01 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5671
5672 * builtin.c (do_print): in the loop that evaluates each expression
5673 to be printed, do a dupnode to avoid bizarre output. Thanks to
5674 Michal for finding this problem.
5675 * awk.y (yylex): fix scanning of hexadecimal constants.
5676
5677Wed May 7 15:09:25 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5678
5679 * io.c (get_a_record): fix casetable indexing with cast to int.
5680 Keeps Michal happy.
5681
5682Tue May 6 16:40:19 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5683
5684 * eval.c (func_call): removed unneeded variables.
5685
5686Mon May 5 21:17:37 1997 Pat Rankin <rankin@eql.caltech.edu>
5687
5688 * missing/strftime.c [case 'v', VMS_EXT]: for VMS date format, two
5689 digit day of month should not be zero padded on the 1st through
5690 the 9th.
5691
5692Mon May 5 06:33:47 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5693
5694 * regex.h, regex.c: merge with current GLIBC version.
5695
5696Mon May 5 06:33:47 1997 Pat Rankin <rankin@eql.caltech.edu>
5697
5698 * io.c (nextfile): move the check for null return from iop_open
5699 in the normal case and add one for the "no args" case.
5700
5701Fri Apr 25 16:52:33 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5702
5703 * array.c (grow_table): add a bunch more large primes so arrays
5704 can get really big. Thanks to christos@deshaw.com.
5705 * all files: remove ifdef'ed out code and update copyrights.
5706 * Makefile.in (gawk): add $(COMPFLAGS) to command line.
5707 * eval.c (flags2str): added case for FIELD.
5708
5709Thu Apr 24 22:39:23 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5710
5711 * COPYING: changed to current official version from FSF.
5712 * regex.c: merge with GLIBC version.
5713 * awk.h [_GNU_SOURCE]: bracket definition inside ifdef.
5714 (NODE.source_line): move name member out of `x' union and
5715 into `nodep'; avoids problems doing diagnostics.
5716 (nondec2num): put decl into #if BITOPS || NONDECDATA
5717 * posix/gawkmisc.c, missing/system.c, missing/strtod.c,
5718 missing/strerror.c: move to generic GPL statement at top.
5719 * builtin.c (nondec2num): put into #if BITOPS || NONDECDATA
5720
5721Wed Apr 23 22:14:14 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5722
5723 * dfa.c: misc changes for really pedantic SGI compilers.
5724 * builtin.c: bracket defs of random() etc for GLIBC.
5725 * random.c: bracket whole file for GLIBC.
5726 * configure.in: extra goop for GETPGRP test for VMS POSIX.
5727 * custom.h [VMS]: remove hard definition of GETPGRP_VOID.
5728
5729Fri Apr 18 07:55:47 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5730
5731 * BETA Release 3.0.34: Release tar file made.
5732
5733Tue Apr 15 21:35:45 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5734
5735 NEW UNDOCUMENTED FEATURE. USE THE SOURCE LUKE!
5736 * acconfig.h [NONDECDATA]: new macro.
5737 * awk.h: add decl of do_strtonum.
5738 * awk.y (tokentab): add entry for strtonum function.
5739 * builtin.c (do_strtonum): new function.
5740 * configure.in (non-decimal-data): new --enable-* option.
5741 * node.c (r_force_number): change to allow non-decimal data inside
5742 ifdef NONDECDATA.
5743
5744Tue Apr 15 06:32:50 1997 Pat Rankin <rankin@eql.caltech.edu>
5745
5746 * missing/strftime.c (malloc, realloc, getenv, strchr): only
5747 declare these when STDC_HEADERS is not defined.
5748 <stdlib.h, string.h>: include these when STDC_HEADERS is defined.
5749 * awk.h (freenode, tree_eval, m_tree_eval): reorganize definitions.
5750 * alloca.c (malloc): if malloc is already defined as a macro,
5751 presumeably by config.h, don't define or declare it.
5752
5753Wed Apr 9 22:45:27 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5754
5755 * Makefile.in [COMPFLAGS]: per suggestion from Karl Berry, put
5756 $(CFLAGS) last.
5757
5758Tue Apr 8 23:54:46 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5759
5760 * eval.c (interpret): For Node_K_break and Node_K_continue, if
5761 treating them like `next', also check the function call stack
5762 and pop it if necessary.
5763
5764Mon Apr 7 18:22:37 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5765
5766 * awk.h: Add decls of new routines do_compl() and set_loc().
5767 * awk.y (tokentab): add entry for "compl" function.
5768 * builtin.c (do_compl): new function to do ones complement.
5769 (do_substr): rationalized yet again, now notices negative start
5770 and length parameters.
5771 * eval.c (push_args): fix if call_list gets realloc'ed in the
5772 middle of things. Avoids crash for deeply nested function calls.
5773 * main.c (catch_sig): add call to set_loc().
5774 * msg.c (set_loc, srcfile, srcline): new function and private
5775 variables to help out in tracing down source of error messages.
5776
5777Fri Mar 28 08:42:27 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5778
5779 * io.c (iop_alloc, iop_close): Undo changes of Feb 11, apparently
5780 other cleanups in io.c made mmap stuff start working again.
5781 BAH! It's a mess, the test suite still fails. I'm leaving the
5782 mmap stuff undefined for now. It'll probably get ripped out in 3.1.
5783
5784Thu Mar 27 08:48:57 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5785
5786 * custom.h [_SEQUENT_]: undef HAVE_MMAP.
5787
5788Wed Mar 26 09:08:16 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5789
5790 * io.c (iop_alloc): fix definition to make it static.
5791
5792Mon Mar 24 23:09:07 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5793
5794 * field.c (init_fields, etc..): more clean up use of Null_field
5795 and the various flags.
5796 * node.c (unref): if a field, free the node itself. Fixes
5797 memory leak problems.
5798
5799Sun Mar 23 22:51:09 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5800
5801 * awk.h [FIELD]: new flag for node->flags field.
5802 * builtin.c (sub_common): if FIELD is set, dup the string.
5803 * field.c (init_fields): set up a new Null_field global var.
5804 (init_fields, set_field, set_record) use the FIELD flag.
5805 (getfield): use Null_field instead of private variable.
5806 * io.c (wait_any): comment out calls to pclose and iop_close,
5807 caused weird race conditions. See test/pipeio1.awk. Thanks
5808 to Darrell Hankerson for tracing this one down.
5809
5810Tue Mar 18 20:57:18 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5811
5812 * dfa.c (inboth): free templist; plugs memory leak.
5813 * field.c (init_fields, grow_fields_arr, set_field, rebuild_record,
5814 set_record): remove PERM flag from entries in fields_arr[]. Fixes
5815 nasty memory leak.
5816
5817Tue Mar 18 06:33:00 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5818
5819 * awk.y (dup_parms): robustified against parameter errors.
5820
5821Sun Mar 16 21:31:40 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5822
5823 NEW UNDOCUMENTED FEATURE. USE THE SOURCE LUKE!
5824 * acconfig.h [BITOPS]: new macro. If set, do octal & hex and bit ops.
5825 * awk.h [isnondecimal]: new macro, and decl of new functions.
5826 * awk.y (yylex): add recognition of octal and hex constants.
5827 * builtin.c (do_and, do_or, do_xor, do_lshift, do_rshift): new
5828 functions that do bit operations.
5829 (nondec2awknum): new function to convert octal or hex to double.
5830 * configure.in: Add AC_ARG_ENABLE for bit operations.
5831 * node.c (r_force_number): add octal and hex conversion.
5832
5833Sun Mar 16 21:28:56 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5834
5835 * awk.h [IOP_NOFREE_OBJ]: new macro.
5836 * io.c (iop_open, iop_alloc): add new third parameter, which is
5837 either NULL, meaning allocate a new IOP, or the address of one
5838 already allocated. Have a static one in the `nextfile'
5839 routine, and use the IOP_NOFREE_OBJ flag for it. All of this
5840 keeps us from reading freed memory. The `swaplns' test fails
5841 otherwise.
5842 (iop_close): if IOP_NOFREE_OBJ is set, don't free the IOBUF.
5843
5844Wed Feb 26 06:21:02 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5845
5846 * eval.c (in_function, pop_fcall_stack, pop_fcall, push_args):
5847 new functions. These manage "frames" of awk function call arguments.
5848 The problem is that a `next' or a `nextfile' from a function
5849 leaks memory. These changes allow us to free up that memory.
5850 (interpret): for Node_K_next and Node_K_nextfile, check if in
5851 a function call and free all function call frames.
5852
5853Fri Feb 21 06:23:19 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5854
5855 * Misc changes from Katsuyuki Okabe <HGC02147@niftyserve.or.jp>:
5856 * builtin.c (do_substr): change a %d to %ld in warning message.
5857 * eval.c (op_assign): fix format string for warning about %=.
5858
5859Wed Feb 19 23:29:02 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5860
5861 * main.c (main): add do_intervals to condition that causes
5862 resetup() to be called again. Makes the --re-interval option
5863 actually work. What a concept.
5864
5865Fri Feb 14 09:47:31 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5866
5867 * io.c [#include "awk.h"]: undef HAVE_MMAP to just use the old code.
5868 Something is causing a file descriptor leak, and this is getting to
5869 be just too much hair. I reserve the right to rip out the mmap
5870 code entirely at a future date.
5871
5872Tue Feb 11 06:28:29 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5873
5874 * io.c (iop_alloc): for an mmap'ed file, close the file descriptor,
5875 and then touch each page to get a private copy. Fixes nasty case
5876 of truncating our input file.
5877 (iop_close): don't call close on mmap'ed file.
5878
5879Wed Feb 5 17:59:04 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5880
5881 * eval.c (interpret): For Node_K_delete, just call do_delete; let
5882 it handle the case of `delete array'.
5883 * array.c (do_delete): Changed to handle case of `delete array',
5884 and made smarter if the array is actually an uninitialized
5885 parameter.
5886
5887Sun Jan 26 22:58:29 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5888
5889 * getopt.h, getopt.c, getopt1.c: replaced with new versions from
5890 GLIBC 2.
5891
5892Sun Jan 19 23:37:03 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5893
5894 * eval.c (nodetype2str): not static, for debugging.
5895 (flags2str) new function: for debugging.
5896 * field.c (get_field): add new var that is like Nnull_string but
5897 does not have numeric attributes, so that new fields are strings.
5898 (set_record): turn off PERM flag before unrefing fields and field 0.
5899 * array.c (in_array): always evaluate subscript, could have
5900 side effects.
5901 * builtin.c (do_strftime): way increase size of buffer to make sure
5902 we don't have overflow problem. Keeps Paul Eggert happy.
5903 * custom.h [__amigaos__]: define fork to vfork. From Fred Fish.
5904 * dfa.c: move include of config.h to top, for RSXNT. From Kai
5905 Uwe Rommel.
5906 (ISALPHA, etc): change from Jacob Engelbrecht (jaen@novo.dk)
5907 to better handle non-ascii environments.
5908 * gawkmisc.c: remove amigados case, posix should now work fine.
5909 * amiga/*: nuked per previous entry.
5910 * Makefile.in: removed all references to amiga
5911 * io.c [HAVE_SYS_PARAM_H]: Add #undef RE_DUP_MAX to avoid
5912 spurious conflict with regex.h.
5913 (flush_io): remove amiga ifdefs, not needed anymore.
5914 (spec_setup): set getrec field for special files. Fix from
5915 Mark Gray (markgray@pdt.net).
5916 * node.c (more_nodes): fix to get the last entry in the array.
5917
5918Wed Jan 8 17:42:37 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5919
5920 * io.c (mmap_get_record): Fix return value if file ends without
5921 record separator.
5922
5923Fri Jan 3 19:57:16 1997 Pat Rankin <rankin@eql.caltech.edu>
5924
5925 * awk.y (get_src_buf): Test for an empty source file by detecting
5926 an initial read of 0 bytes rather than by relying on info from
5927 stat().
5928
5929Wed Dec 25 11:25:22 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5930
5931 * Release 3.0.2: Release tar file made.
5932
5933Wed Dec 25 11:17:32 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5934
5935 * Makefile.in (install, uninstall): use $(srcdir)/patchlevel.h.
5936 Thanks to Richard Levitte, LeViMS@stacken.kth.se.
5937 (install): remove chmod command; let $(INSTALL_PROGRAM) use -m.
5938
5939Mon Dec 23 20:36:59 1996 Pat Rankin <rankin@eql.caltech.edu>
5940
5941 * custom.h (#if VMS_POSIX): Define GETPGRP_VOID.
5942
5943Fri Dec 20 08:59:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5944
5945 * getopt.c, getopt1.c: comment out the `#if defined (_LIBC) ||
5946 !defined (__GNU_LIBRARY__)' and `#endif' to force use of this
5947 getopt, even on systems like linux. This will be handled
5948 better in 3.1 / glibc 2.
5949
5950Thu Dec 19 22:52:39 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5951
5952 * awk.y (yylex): In several places, after yyerror(), add call to
5953 exit(). Otherwise, infinite messages. This should probably
5954 be handled better.
5955
5956Wed Dec 18 22:42:10 1996 Darrel Hankerson <hankedr@mail.auburn.edu>
5957
5958 * getopt.c (_getopt_internal): if 'W' and ';', if optind == argc,
5959 return c, don't fall through.
5960
5961Wed Dec 18 10:09:44 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5962
5963 * configure.in [AC_PREREQ]: Update to 2.12 in order to switch to
5964 autoconf 2.12. Lots of other files will be rebuilt automatically.
5965 [AM_SANITY_CHECK_CC]: Removed, autoconf does it now.
5966 * aclocal.m4 [AM_SANITY_CHECK_CC]: Removed, autoconf does it now.
5967
5968Tue Dec 17 22:23:16 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5969
5970 * builtin.c (do_strftime): fix case if format string is "".
5971 Also fix it if format is not "" but result of strftime is "".
5972 See comments in code.
5973
5974Tue Dec 10 23:09:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5975
5976 * Release 3.0.1: Release tar file made.
5977
5978Tue Dec 10 22:39:41 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5979
5980 * Makefile.in (dist): add dependency on `info'. Remove line that
5981 does makeinfo.
5982 (install): use $(LN) not $(LN_S) to link gawk gawk-version.
5983
5984Sun Dec 8 07:53:44 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5985
5986 * Makefile.in (gawk): took COMPFLAGS out of link line for help
5987 on VMS posix. Shouldn't (I hope) affect anything else.
5988
5989Thu Nov 28 11:52:24 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5990
5991 * configure.in (AC_PROG_INSTALL): Set INSTALL to install-sh.
5992
5993Tue Nov 26 22:42:00 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
5994
5995 * PORTS: Updated list of systems.
5996 * Makefile.in (install): Fix some typos and add some improvements
5997 for Ultrix.
5998
5999Sun Nov 24 22:16:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6000
6001 * builtin.c (do_printf): if no args, fatal error. Return silently
6002 if --traditional.
6003
6004Thu Nov 7 20:54:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6005
6006 * io.c (inrec): make sure EOF hasn't already happened before
6007 trying to read; prevents accessing freed buffer. Thanks to
6008 Michal Jaegermann.
6009 * Makefile.in [AWKSRC]: add random.h.
6010 random.h: new file, redefines names of the `random' functions.
6011 random.c, builtin.c: add include of random.h.
6012
6013Thu Nov 7 09:06:21 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6014
6015 * awk.y (snode): undo 4 Oct change, put do_split code back.
6016 field.c (do_split): restore old code; add test for CONST, so
6017 that re_parse_field is used if third arg to split is a regexp
6018 constant.
6019
6020Mon Nov 4 12:57:11 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6021
6022 * main.c (main): Research -m[fr] options don't need literal '='
6023 characters. Brian's documentation was confusing. Fixed, not
6024 that anyone actually uses these options with gawk.
6025
6026Sun Nov 3 11:23:21 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6027
6028 * field.c (def_parse_field): add \n to list of acceptable white space.
6029 (posix_def_parse_field): new routine, just like def_parse_field(),
6030 but only allows space and tab as separators.
6031 (do_split, set_FS): make appropriate choice between the two
6032 *def_parse_field() routines.
6033
6034Fri Oct 25 10:13:06 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6035
6036 * configure.in: remove test for random.
6037 * Makefile.in: add random.c to list of files always compiled.
6038 * missing.c: remove HAVE_RANDOM test.
6039 * builtin.c: remove ifdef's for HAVE_RANDOM.
6040 [GAWK_RAND_MAX]: use constant we know works with our random().
6041 * random.c: new file - moved from missing/ directory.
6042
6043Wed Oct 23 19:46:01 1996 Pat Rankin <rankin@eql.caltech.edu>
6044
6045 * builtin.c (do_tolower, do_toupper): Add `unsigned char *' casts.
6046
6047Tue Oct 22 21:27:52 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6048
6049 * builtin.c [GAWK_RANDOM_MAX]: Try to make definition a bit
6050 smarter; don't use RAND_MAX if it's equal to SHRT_MAX, blows
6051 things up.
6052
6053Tue Oct 22 08:49:20 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6054
6055 * main.c (copyleft): update copyright date to 1996.
6056 too many files to list: update copyright date to 1996.
6057
6058Sun Oct 20 12:21:09 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6059
6060 * awk.y, dfa.c, eval.c, io.c, re.c: added various FIXME comments.
6061
6062Sat Oct 19 22:06:42 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6063
6064 * eval.c (nodetype2str): make static, add prototype.
6065 * field.c (sc_parse_field): cast array subscripts to int to
6066 shut up gcc warnings.
6067 * gawkmisc.c: add prototype for xmalloc.
6068 * awk.h: add prototype for getredirect.
6069 * builtin.c (do_fflush): remove extern decl of getredirect.
6070 * io.c (get_a_record, mmap_get_record): change decl of rs to int,
6071 to shut up gcc warnings.
6072 * awk.y (isassignable): add a default to switch to quiet gcc.
6073 * getopt.c (_getopt_internal): give default value to `indfound'.
6074
6075Fri Oct 18 09:00:49 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6076
6077 * regex.h [RE_SYNTAX_AWK]: add RE_CONTEXT_INDEP_ANCHORS.
6078
6079Thu Oct 17 22:32:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6080
6081 * aclocal.m4 [AM_SANITY_CHECK_CC]: added.
6082 * configure.in: use it.
6083
6084Thu Oct 17 21:43:25 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6085
6086 * configure.in: add checks for locale.h and setlocale().
6087 awk.h: include locale.h and define out setlocale() if not available.
6088 main.c (main): call setlocale().
6089 builtin.c (do_tolower, do_toupper): use unsigned char pointers,
6090 to get other charsets right in different locales.
6091
6092Wed Oct 16 21:32:53 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6093
6094 * builtin.c (format_tree): Change initial buffer size to 512
6095 and use a constant. Allows large values of %f per bug report
6096 from sheyn@cs.bu.edu.
6097
6098Wed Oct 16 21:22:08 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6099
6100 * Makefile.in [MISC]: removed TAGS and tags
6101 (local-distclean): added TAGS and tags
6102 (maintainer-clean): removed TAGS and tags
6103
6104Wed Oct 16 12:28:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6105
6106 * main.c (version): Add call to copyleft(), per new standards.
6107 version.c: Fix text of version string to match new standards.
6108
6109Sun Oct 6 22:19:45 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6110
6111 * regex.c: updated to Emacs 19.34b base.
6112
6113Sun Oct 6 21:57:34 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6114
6115 * re.c (make_regexp): fixed to handle \8 and \9 in the middle
6116 of a regexp.
6117
6118Fri Oct 4 10:26:16 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6119
6120 * awk.y (snode): remove case for do_split; always making the
6121 third arg a Node_regex is wrong.
6122 field.c (do_split): rationalized to distinguish `/ /' from `" "'.
6123 Generally fixed up.
6124 * node.c (parse_escape): Allow single digit \x escapes.
6125
61261996-10-02 Paul Eggert <eggert@twinsun.com>
6127
6128 * builtin.c (format_tree):
6129 Fix bug in %d and %i format: NaNs, and values
6130 in the range LONG_MAX+1 .. ULONG_MAX, were mishandled.
6131 Don't assume that double values <= -1 are converted to unsigned
6132 long in the expected way; the C Standard doesn't guarantee this.
6133
61341996-10-02 Paul Eggert <eggert@twinsun.com>
6135
6136 * awk.h (INT_MAX): Remove unused symbol.
6137
6138Mon Sep 30 22:19:11 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6139
6140 * getopt.c (_getopt_internal): If 'W' is in the optstring followed
6141 by a ';' then search through the long opts table. This makes
6142 `-W foo=bar' same as `--foo=bar'.
6143 * main.c (main): 'W' now prints an error message.
6144 (gawk_option): deleted the routine.
6145
6146Sun Sep 29 23:04:54 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6147
6148 * builtin.c (sub_common): fix several bugs with gsub when
6149 matching null strings. See test/gsubtest.awk.
6150
6151Fri Sep 20 17:35:54 1996 Pat Rankin <rankin@eql.caltech.edu>
6152
6153 * alloca.c (NULL): don't define if <config.h> has already done so.
6154
6155Fri Sep 20 11:54:31 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6156
6157 * builtin.c (do_print): evaluate all the expressions first and
6158 then print them. Avoids surprising behavior. See test/prtoeval.awk
6159 for an example.
6160
6161Tue Sep 10 06:21:40 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6162
6163 * awk.h [FUNC]: new flag, marks a Node_parameter_list as really
6164 being the function name; allows more checking in awk.y.
6165 * awk.y (isassignable): now takes a NODE * instead of a type, to
6166 check if a function parameter is marked FUNC, then it's the function
6167 name, which is not assignable. Fix call from snode().
6168 (function_prologue): mark function name as FUNC.
6169 (yyerror): don't call exit() anymore; gawk will now report
6170 all syntax errors.
6171
6172Sun Sep 1 19:36:30 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6173
6174 * field.c (rebuild_record): after building new field 0, go through
6175 all old fields, and if they used to point into the old one,
6176 have them point into the new one. Then turn off PERM flag before
6177 unref-ing field 0.
6178
6179Wed Aug 28 19:13:34 1996 Arnold D. Robbins <arnold@math.utah.edu>
6180
6181 * eval.c (set_IGNORECASE): Correctly parenthesize bit operations
6182 in test and fix logic for string value.
6183
6184Wed Aug 28 22:06:33 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6185
6186 * main.c (usage): add email addresses for bug reporting, per
6187 change in GNU Coding Standards from RMS.
6188
6189Sun Aug 11 23:13:22 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6190
6191 * Makefile.in (install): correct use of $(INSTALL_PROGRAM).
6192
6193Thu Aug 8 23:29:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6194
6195 * parse.y (isassignable): new function, checks in type can
6196 be assigned to.
6197 (snode): changed checking for 3rd arg of gsub to be more
6198 general, supersedes earlier change.
6199
6200Thu Aug 8 13:58:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6201
6202 * parse.y (snode): If third arg to sub or gsub is builtin
6203 function, complain, since can't substitute into result.
6204 * eval.c (r_get_lhs): diagnose Node_builtin as an error, instead
6205 of falling through into default case and using cant_happen().
6206
6207Thu Aug 1 07:13:14 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6208
6209 * regex.h [RE_DEBUG]: new macro.
6210 [RE_SYNTAX_GNU_AWK]: add RE_DEBUG.
6211 [RE_SYNTAX_POSIX_AWK]: add RE_INTERVALS.
6212 * regex.c (re_set_syntax): add #ifdef DEBUG code to turn on `debug'
6213 flag if RE_DEBUG set, and turn off debug if not set and debug
6214 was on.
6215 * main.c (main): remove `do_intervals = TRUE' from `if (do_posix)',
6216 it's now handled in the definition of RE_SYNTAX_POSIX_AWK.
6217
6218Mon Jul 29 17:49:07 1996 Pat Rankin <rankin@eql.caltech.edu>
6219
6220 * io.c (O_ACCMODE): define it if <fcntl.h> doesn't.
6221
6222Mon Jul 29 12:02:48 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6223
6224 * eval.c (set_IGNORECASE): made somewhat smarter. gawk -v IGNORECASE=0
6225 was acting the same as -v IGNORECASE=1. Thanks to Darrell Hankerson
6226 for the bug report.
6227
6228Fri Jul 26 12:04:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6229
6230 * awk.h (format_val): add declaration of new routine.
6231 * node.c (format_val): new routine, abstracts old guts of
6232 r_forcestring; accepts format string and index as additional params.
6233 (r_force_string): changed to call format_val.
6234 * builtin.c (do_print): don't tree_eval the tree twice in case
6235 OFMTidx != CONVFMTidx; doing so could cause side effects
6236 (from bug report by Tobias Rettstadt, xassp@ipds.uni-kiel.de).
6237 Instead, call format_val.
6238
6239Mon Jul 22 21:59:15 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6240
6241 * io.c (iop_close): change check for "is $0 in the input buffer"
6242 to use `< (iop->buf + iop->secsiz + iop->size)' instead of
6243 `< iop->end'. The latter is bogus if EOF has been hit on the
6244 file. Fix from Darrel Hankerson based on bug report by
6245 Charles Howes (howes@grid.direct.ca). See test/eofsplit.awk.
6246
6247Thu Jul 18 19:43:20 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6248
6249 * builtin.c (sub_common): backed out change of Feb 14 in favor of:
6250 (do_gensub): Changed to use make_string and then to |= TEMP
6251 flag, based on bug report and patch from Katsuyuki Okabe,
6252 hgc02147@niftyserve.or.jp.
6253
6254Thu Jul 18 19:23:53 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6255
6256 * custom.h: added ifdef for QNX, based on bug report from
6257 Michael Hunter, mphunter@qnx.com.
6258
6259Mon Jul 15 09:31:01 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6260
6261 * io.c (redirect): When finding the rp pointer, if it's not
6262 NULL, set str = rp->value. This gets the '\0' terminated
6263 version. Motivated by bug report from John Hawkinson
6264 (jhawk@bbnplanet.com).
6265
6266Sun Jul 14 18:40:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6267
6268 * configure.in: added call to AC_CHECK_LIB(m, fmod), since
6269 apparently some systems have fmod in the math library.
6270 Portability: the Holy Grail. Sigh.
6271
6272Sun Jul 14 18:08:01 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6273
6274 * awk.h: add Jim Meyerings ISASCII etc hacks for ctype macros.
6275 * builtin.c (do_toupper, do_tolower, sub_common): changed to use
6276 upper-case versions of ctype macros.
6277 * main.c (main): ditto.
6278 * node.c (r_force_number, parse_escape): ditto.
6279
6280Sun Jul 14 06:34:18 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6281
6282 * field.c (set_record): made it always do the PERM flag.
6283 Fixes cases where $0 is assigned to, e.g. by gsub, keeps
6284 the fields valid.
6285 (get_field): removed the call to reset_record in
6286 case where ! field0_valid. We want to leave the fields alone
6287 if they've been changed.
6288
6289Thu Jul 11 23:04:20 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6290
6291 * io.c (devopen): change tests of (flag & O_fooONLY) to
6292 (flag & O_ACCMODE) == O_fooONLY. Per (long standing) bug
6293 report from Chapman Flack.
6294 (close_redir): change final conditional to just (status != 0)
6295 so that ERRNO always set; the warning had its own `if (do_lint)'
6296 anyway.
6297 * eval.c (do_split): force type of array to be Node_var_array
6298 instead of Node_var. Per (long standing) bug report from
6299 Chapman Flack.
6300
6301Thu Jul 11 22:17:14 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6302
6303 * Makefile.in (install): added symlink of gawk to awk if
6304 no awk in $(bindir).
6305 (LN_S): new variable for symlinking.
6306 (uninstall): remove awk if it's the same gawk.
6307 * Configure.in: Added call to AC_PROG_LN_S for Makefile.in.
6308
6309Sun Jul 7 15:47:13 1996 Arnold D. Robbins <arnold@infographix.com>
6310
6311 * main.c (main): made `--posix' turn on interval expressions.
6312 Gawk now matches its documentation. (What a concept!)
6313
6314Wed Jul 3 15:02:48 1996 Arnold D. Robbins <arnold@infographix.com>
6315
6316 * regex.h, regex.c: upgraded to changes from Emacs 19.31.
6317
6318Fri May 17 08:46:07 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6319
6320 * io.c (get_a_record): added `continued' flag. Fix from
6321 Darrell Hankerson for when RS = "\n|something".
6322
6323Wed May 15 02:34:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6324
6325 * Makefile.in (awklib/all): now depends on gawk, fixes problem
6326 with parallel make.
6327
6328Tue May 14 15:02:52 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6329
6330 * builtin.c (format_tree): fix handling of '*' to deal with
6331 negative value for fieldwidth -- make positive and turn on
6332 left justify. Per bug report from Michael Brennan.
6333
6334Sun May 12 20:42:06 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6335
6336 * eval.c (r_get_lhs): case Node_subscript. Check if array name
6337 is actually a function, fatal error if so.
6338
6339Sun May 5 10:11:52 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6340
6341 * io.c (redirect): call flush_io() before creating a new output pipe,
6342 per bug report from Brian Kernighan (bwk@research.bell-labs.com).
6343
6344Fri Mar 15 06:38:33 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6345
6346 * Makefile.in (install): use $(INSTALL_PROGRAM), not $(INSTALL).
6347 (local-distclean): add `*~' to list of files to be removed.
6348 (CFLAGS): now contains just @CFLAGS@.
6349 (COMPFLAGS): replaces use of CFLAGS, has CFLAGS plus all the
6350 other stuff.
6351
6352Wed Mar 13 14:19:38 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6353
6354 * io.c (mmap_get_record): fixed to not place sentinel at end
6355 of mmap'ed object. Won't work if file is exact multiple of
6356 disk block size. See comments in code for more info.
6357 Thanks to Rick Adams (rick@uunet.uu.net) for help in testing.
6358
6359Sun Mar 10 22:50:23 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6360
6361 * io.c (do_close): notice if we were called as `close(FILENAME)'
6362 and arrange to close the current input file. This turns out
6363 to be easy to do, just call `nextfile(TRUE)'. Based on bug report
6364 from Pascal A. Dupuis, <dupuis@lei.ucl.ac.be>.
6365
6366Thu Mar 7 08:08:51 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6367
6368 * field.c (init_fields, grow_fields, set_field, rebuild_record):
6369 Nuke the `nodes' array everywhere. Anytime a field is unref'ed,
6370 allocate a new node that is a copy of Nnull_string. This avoids
6371 subtle memory management problems when doing a lot of assignment
6372 to fields, and tweaking of NF. Make sure that fields_arr[0] always
6373 has a type of Node_val!
6374 * field.c (set_NF): If NF is decremented, clear fields between
6375 NF and parse_high_water, otherwise if NF incremented, clear
6376 fields between parse_high_water and NF.
6377 * eval.c (nodetype2str): new function, used for diagnostics.
6378 eval.c (interpret): use nodetype2str when finding invalid node.
6379
6380Mon Mar 4 09:02:28 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6381
6382 * builtin.c (do_toupper, do_tolower): use isascii along with
6383 isupper/islower before changing case, in case characters have
6384 the high bit set. This is a hack.
6385
6386Mon Feb 26 22:24:44 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6387
6388 * builtin.c (sub_common): if no match, and called from gensub,
6389 don't free the temporary string, since the tmp_number then
6390 writes over it.
6391
6392Sun Feb 25 23:13:01 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6393
6394 * builtin.c (format_tree): fixed %c to treat user input as
6395 numeric also by adding test for MAYBE_NUM.
6396
6397Tue Feb 20 12:25:50 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6398
6399 * configure.in: Added AC_FUNC_MMAP call and add madvise to
6400 list of functions to look for.
6401 * awk.h [IOP_ISMAPPED]: new flag value for mmap support and new
6402 `getrec' structure member in struct iobuf.
6403 * io.c (iop_alloc, iop_close): changed to map/unmap input file
6404 into memory if possible.
6405 (mmap_get_record): new function to actually retrieve the
6406 record from mmaped file.
6407
6408Thu Feb 1 08:56:46 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6409
6410 * builtin.c (do_substr): fixed lint message to use indx+1 when
6411 start position is past end of string.
6412
6413Sun Jan 28 07:00:56 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6414
6415 * builtin.c (do_substr): rationalized handling of missing length
6416 argument, as well as various accompanying lint warnings. Previous
6417 code was slightly bogus. Talk about your Day 1 bugs.
6418
6419Thu Jan 25 14:09:11 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6420
6421 * builtin.c (do_substr): if length exceeds length of actual
6422 string, do computation of needed substring length *after*
6423 the lint warning.
6424
6425Wed Jan 24 10:06:16 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6426
6427 * Makefile.in (gawk): Add $(CFLAGS) to link line.
6428 (Makefile): target depends on the Makefile.in files.
6429 (OTHERS): Added TAGS and tags to the distribution.
6430 (local-distclean): New rule.
6431 (distclean): Use it.
6432 (maintainer-clean): Don't `make distclean' before running submakes,
6433 since that removes makefiles needed for the submakes.
6434 * builtin.c (do_strftime): Remove hard coded limit on length of result.
6435 Based on code from Paul Eggert (eggert@twinsun.com).
6436
6437Mon Jan 22 13:16:37 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6438
6439 * main.c (usage): takes new fp parameter which is either
6440 stdout for `--help' (per the GNU Coding Standards) or stderr
6441 if an error occurs. Fix all calls.
6442 (version): prints to stdout per the coding stds.
6443 (copyleft): prints to stdout now, not stderr, and exits.
6444
6445Fri Jan 19 08:10:29 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6446
6447 * regex.h [RE_GNU_AWK]: added RE_CONTEXT_INDEP_OPS to set of
6448 bits we turn off for regular operation. Breaks things like
6449 /^+[0-9]+/ to match a literal `+' at the beginning of, say,
6450 a phone number.
6451
6452Wed Jan 10 23:19:36 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6453
6454 * 3.0.0 polished up and release tar file made.
6455
6456Wed Dec 27 11:46:16 1995 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6457
6458 * 2.94.0 released to porting group (no, I haven't been good
6459 about this file; I'll do better once 3.0 is released).
6460
6461Mon Aug 28 23:04:30 1995 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6462
6463 * awk.h updated for NeXT - bracket TRUE/FALSE
6464 * io.c (get_a_record): removed shadowing of 'start' in
6465 * Makefile.in and doc/Makefile.in: fixed to use gawk.1 and gawk.texi,
6466 instead of gawk.1.in and gawk.texi.in.
6467
6468Mon Aug 25 11:04:30 1995 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
6469
6470 * 2.90.0 released to porting group.
6471
6472Fri Aug 18 12:43:31 1995 Arnold D. Robbins <arnold@puny.ssc.com>
6473
6474 * ChangeLog created.
Note: See TracBrowser for help on using the repository browser.