1 Mon Aug 7 15:23:00 2000 Arnold D. Robbins <arnold@skeeve.com>
3 * Release 3.0.6: Release tar file made.
5 Thu Aug 3 17:47:53 2000 Greg McGary <greg@mcgary.org>
7 * regex.c: patches for gcc bounded pointer handling.
9 Thu Aug 3 13:09:09 2000 Arnold D. Robbins <arnold@skeeve.com>
11 * array.c (in_array, do_delete): fix tests for index equality
12 when searching through the array to work correctly when
15 Fri Jul 14 21:40:17 2000 Pat Rankin <rankin@eql.caltech.edu>
17 * builtin.c (format_tree): Workaround a DEC C V5.7 bug by
18 splitting `strcpy() + 3' into two expressions (the builtin
19 inline strcpy evidently has erroneous return type of void *
20 instead of char *; reputedly fixed in V6.1).
22 * eval.c (C): New macro.
23 [casetable]: Use it to add explicit casts for the character
24 values outside the range of 0 to 127.
25 * missing/strncasecmp.c [C, charmap]: Likewise.
27 * io.c (redirect): Add EIO check on failed open for VMS.
29 Fri Jul 14 11:57:23 2000 Arnold D. Robbins <arnold@skeeve.com>
31 Efficiency hack: turn `for (iggy in foo) delete foo[iggy]'
32 into moral equivalent of `delete foo'.
33 * array.c (do_delete_loop): new routine.
34 * awk.h [NODETYPE]: new Node_K_delete_loop value.
35 Add declaration of do_delete_loop.
36 * awk.y [LEX_FOR]: Fix code to recognize special case.
37 * eval.c (nodetypes): new entry for Node_K_delete_loop.
38 (interpret): add case for Node_K_delete_loop, add more
39 diagnostic info in default (cant_happen) case.
41 Tue Jul 11 22:15:10 2000 Pat Rankin <rankin@eql.caltech.edu>
43 * awk.y (nextc): Recast unsigned char values back to int to
44 prevent VAX C from truncating EOF to 255.
46 Tue Jul 11 14:08:23 2000 Arnold D. Robbins <arnold@skeeve.com>
48 * array.c (do_delete): switch to string comparison, not
50 (assoc_find): add call to force_string on subscript.
51 * eval.c (interpret): Case Node_K_arrayfor: check for
52 Node_array_ref and fetch original_array. Yowser.
54 Fri Jun 30 21:57:00 2000 Arnold D. Robbins <arnold@skeeve.com>
56 * array.c (assoc_lookup): Don't force the subscript
57 to be a string. Not a good idea after the change
60 Sun Jun 25 15:08:19 2000 Arnold D. Robbins <arnold@skeeve.com>
62 * Release 3.0.5: Release tar file made.
64 Wed Jun 14 13:03:45 2000 Arnold D. Robbins <arnold@skeeve.com>
66 * field.c (set_record): manage a private buffer for $0.
67 Keeps things safe in case `getline var' rearranges the
68 IOBUF's contents that $0 is still pointing into.
70 Tue Jun 13 16:27:55 2000 Paul Eggert <eggert@twinsun.com>
72 Upgrade to latest and greatest version of largefile code.
74 * configure.in (AC_CANONICAL_HOST): Remove.
75 (GAWK_AC_SYS_LARGEFILE): Defer until after AC_MINIX,
76 to avoid autoconf warnings.
78 Rewrite largefile configuration so that we don't need to run
79 getconf and don't need AC_CANONICAL_HOST.
80 * config.guess, config.sub: Remove these files.
81 * Makefile.in (MISC): Remove config.guess, config.sub.
82 * m4/largefile.m4 (GAWK_AC_SYS_LARGEFILE_FLAGS,
83 GAWK_AC_SYS_LARGEFILE_SPACE_APPEND): Remove.
84 (GAWK_AC_SYS_LARGEFILE_TEST_INCLUDES): New macro.
85 (GAWK_AC_SYS_LARGEFILE_MACRO_VALUE): Change arguments from
86 CODE-TO-SET-DEFAULT to VALUE, INCLUDES, FUNCTION-BODY.
88 Instead of inspecting the output of getconf, try to compile the
89 test program without and with the macro definition.
90 (GAWK_AC_SYS_LARGEFILE): Do not require AC_CANONICAL_HOST or check
91 for getconf. Instead, check for the needed flags by compiling
94 (GAWK_AC_SYS_LARGEFILE): Define _XOPEN_SOURCE to be 500 to
95 work around glibc 2.1.3 bug.
97 (GAWK_AC_SYS_LARGEFILE_FLAGS): Don't use -n32 on IRIX if the
98 installer said otherwise.
100 (GAWK_AC_SYS_LARGEFILE_FLAGS): Work around a bug in the QNX shell,
101 which doesn't propagate exit status of failed commands inside
104 Wed Jun 7 13:23:09 2000 Arnold D. Robbins <arnold@skeeve.com>
106 * Updated copyright dates in appropriate files.
108 Mon May 22 17:29:43 2000 Arnold D. Robbins <arnold@skeeve.com>
110 * Makefile.in (clean): get `*/core' too.
112 Sun May 7 16:33:05 2000 Arnold D. Robbins <arnold@skeeve.com>
114 * array.c (concat_exp): Change ref to `lnode->stlen' and
115 `lnode->stptr' for SUBSEP to use `var_value->...'.
117 Tue May 2 09:54:29 2000 Arnold D. Robbins <arnold@skeeve.com>
119 Fix referencing freed memory as shown by test/arynocls.* tests.
120 * awk.h [Node_array_ref]: new node type.
121 [orig_array]: new macro element in NODE structure.
122 * field.c (do_split): handle case for Node_array_ref, fetch
124 * array.c (in_array, do_delete): ditto.
125 * eval.c (nodetypes[]): add Node_array_ref string.
126 (r_tree_eval): handle case for Node_array_ref.
127 (push_args): push arrays as Node_array_ref, and pass them on.
128 (pop_fcall): don't unref lnode if it's an array when releasing
129 local arguments. Check for both Node_array and Node_array_ref.
130 (r_get_lhs): choke on Node_array_ref as for Node_array.
131 For Node_subscript, handle Node_array_ref.
133 Tue May 2 09:52:12 2000 Bruno Haible <haible@clisp.cons.org>
135 * io.c (redirect): After reopening a `struct redirect', move it to
136 the head of the list.
138 Sun Apr 2 17:51:40 2000 Arnold D. Robbins <arnold@skeeve.com>
140 * re.c (re_update): Check if IGNORECASE has changed, and
141 if so recompute the re. See test/igncdym.awk.
143 Mon Mar 20 16:18:34 2000 Arnold D. Robbins <arnold@skeeve.com>
145 * io.c (set_RS): Added a lint warning about multicharacter RS,
146 per suggestion from Akim DeMaille (akim@epita.fr).
148 Sun Feb 13 14:40:32 2000 Arnold D. Robbins <arnold@skeeve.com>
150 * eval.c (push_args): Fix from Nide Naoyuki <nide@ics.nara-wu.ac.jp>,
151 re-assign `f' in case tree_eval moved fcall_list around.
153 Sun Feb 6 11:39:33 2000 Arnold D. Robbins <arnold@skeeve.com>
155 * eval.c (op_assign): Fix it right. For ++ and --, get the lhs
156 in the operations, do the op, and then return. For += etc,
157 get the rhs FIRST, since the lhs can move around as a result,
158 *then* get the lhs and do the operation. See test/opasnidx.awk.
160 Tue Feb 1 18:41:40 2000 Arnold D. Robbins <arnold@skeeve.com>
162 * eval.c (op_assign): reget the rval after regetting
163 the left hand side. See test/opasnslf.awk for why.
165 Thu Jan 27 18:06:31 2000 Arnold D. Robbins <arnold@skeeve.com>
167 * awk.y (yylex): Made ']' not one of the characters
168 that sets `want_assign' to false. `a[i] /= 2' was
169 broken. Per bug report from Kristofer T. Karas
170 <ktk@ktk.bidmc.harvard.edu>.
172 Wed Dec 22 15:06:37 1999 Arnold D. Robbins <arnold@skeeve.com>
174 * awk.y: Removed declarations of functions before
175 definition of `tokentab[]'. They're redundant with
178 Thu Dec 9 17:01:07 1999 Arnold D. Robbins <arnold@skeeve.com>
180 * node.c (parse_escape): Add lint warning for unrecognized
183 Mon Dec 6 15:17:34 1999 Arnold D. Robbins <arnold@skeeve.com>
185 * main.c (usage): Changed bug reporting email addresses to
186 be a reference to `Bugs' node in the online and printed
189 Thu Dec 2 13:08:18 1999 Arnold D. Robbins <arnold@skeeve.com>
191 * builtin.c (do_compl): test `d' for negative inside the do_lint
192 test, not uval. Ooops.
194 Fri Nov 26 10:58:36 1999 Arnold D. Robbins <arnold@skeeve.com>
196 * array.c (assoc_find): ALWAYS compare indexes as strings,
197 don't use cmp_nodes in case they are numeric. Oh my.
198 Talk about a Day 1 bug!
200 Tue Nov 23 11:58:53 1999 Arnold D. Robbins <arnold@skeeve.com>
202 * regex.c (SYNTAX): cast argument to `unsigned char' instead of
203 &-ing with 0xFF. Hopefully somewhat more portable, ala 21 Nov 99
206 Sun Nov 21 22:25:27 1999 Paul Eggert <eggert@twinsun.com>
208 * aclocal.m4 (AC_SYS_LARGEFILE_FLAGS): Work around a
209 problem with the QNX 4.25 shell, which doesn't propagate exit
210 status of failed commands inside shell assignments.
212 Sun Nov 21 20:33:35 1999 Arnold D. Robbins <arnold@skeeve.com>
214 * awk.h (nextc): remove declaration, don't need it here.
215 awk.y (nextc): Cast values to unsigned char so that latin-1
216 characters in strings don't turn themselves into EOF.
217 Most notably y-umlaut, which is decimal 255.
219 Mon Nov 1 20:00:25 1999 Arnold D. Robbins <arnold@skeeve.com>
221 * regex.c (init_syntax_once): move below definition of
222 ISALNUM etc., then use ISALNUM to init the table, so that
223 the word ops will work if i18n'ed.
224 (SYNTAX): And subscript with 0xFF for Latin-1 characters.
226 Mon Oct 25 18:37:13 1999 Arnold D. Robbins <arnold@skeeve.com>
228 * awk.h, main.c, io.c: undo previous changes (22 Oct 1999).
229 * main.c (main): move call to `init_fields()' to before
230 arg parsing. This allows `-v NF=blah' to work ok.
232 Fri Oct 22 17:43:40 1999 Arnold D. Robbins <arnold@skeeve.com>
234 * main.c (arg_assign): Add new arg, `initing' for icky special
235 casing of -v of special variables. Use it to check for NF.
236 May need to add other cases later.
237 (pre_assign): change call arg_assign, passing initing=TRUE;
238 io.c (nextfile): change call arg_assign, passing initing=FALSE;
239 awk.h: Change prototype for arg_assign.
241 Tue Oct 19 16:06:48 1999 Paul Eggert <eggert@twinsun.com>
243 * io.c (close_redir): Don't munge errno between setting it and
246 Wed Oct 6 17:47:47 1999 Arnold D. Robbins <arnold@skeeve.com>
248 * main.c (arg_assign): return NULL on bad variable. Allows
249 things like `./3x=stuff' to work as a filename.
251 Thu Sep 23 21:35:46 1999 Paul Eggert <eggert@twinsun.com>
253 * aclocal.m4 (GAWK_AC_SYS_LARGEFILE_FLAGS): Work around GCC
254 2.95.1 bug in HP-UX 10.20 or later. (Had to fix the fix. ADR. :-)
256 Tue Sep 21 13:31:36 1999 Arnold D. Robbins <arnold@skeeve.com>
258 * builtin.c (format_tree): For '0', only set zero_flag if we
259 haven't seen the field width or precision yet.
261 Mon Aug 9 13:06:01 1999 Arnold D. Robbins <arnold@skeeve.com>
263 * array.c (assoc_lookup): Removed code that gave each array
264 a private copy of each index. Balloons memory usage for
265 no good reason that I can see. Just use dupnode in all
267 * configure.in: check for $srcdir/.developing adds extra
268 defines for my testing/debugging use. Yes, hack alert.
270 Sun Aug 1 11:02:02 1999 Arnold D. Robbins <arnold@skeeve.com>
272 * node.c (dupnode): turn off FIELD when copying nodes.
273 * array.c (do_adump, assoc_dump): new functions for array debugging.
274 * awk.y (tokentab): conditionally add "adump" function for debugging.
275 * awk.h: delcare new functions.
277 Thu Jul 29 23:26:40 1999 Arnold D. Robbins <arnold@skeeve.com>
279 From wsanchez@apple.com:
280 * Makefile.in (install-strip): new target, coding stds. compatibility.
281 * config.guess, config.sub: Add MacOS X recognition.
283 Thu Jul 29 19:09:19 1999 Arnold D. Robbins <arnold@skeeve.com>
285 * awk.y (func_install): make `function foo(foo)' a fatal error.
286 eval.c (r_tree_eval): diagnose use of a function name as a
287 variable inside the function.
289 Sun Jul 4 16:53:14 1999 Arnold D. Robbins <arnold@skeeve.com>
291 * eval.c (eval_condition): add extra braces to avoid
292 gcc warning. I'm not going to bother for the library
293 code like dfa and regex.
295 Wed Jun 30 16:14:36 1999 Arnold D. Robbins <arnold@gnu.org>
297 * Release 3.0.4: Release tar file made. This time for sure.
299 Wed Jun 30 16:10:11 1999 Arnold D. Robbins <arnold@gnu.org>
301 * awk.h: add include of <assert.h>, and comment about config.h
302 having to be included before any system headers. Otherwise,
303 with egcs-2.91.66 and later on Linux systems, and possibly
304 others, things break badly, due to the LFS macros.
305 * awk.y, builtin.c, eval.c, field.c, io.c: removed include
308 Wed Jun 9 11:39:19 1999 Paul Eggert <eggert@twinsun.com>
310 Port the large-file code to AIX, HP-UX, and IRIX.
311 Add cross-compilation support for large files.
313 * config.guess, config.sub: New files.
315 * configure.in (AC_CANONICAL_HOST):
316 Add; GAWK_AC_SYS_LARGEFILE needs this.
317 (GAWK_AC_SYS_LARGEFILE): Renamed from GAWK_AC_LARGE_FILES.
319 * aclocal.m4 (GAWK_AC_SYS_LARGEFILE): Renamed from GAWK_AC_LARGE_FILES.
320 Add support for AIX and HP-UX.
321 (GAWK_AC_SYS_LARGEFILE_FLAGS, GAWK_AC_SYS_LARGEFILE_SPACE_APPEND,
322 GAWK_AC_SYS_LARGEFILE_MACRO_VALUE): New macros.
324 * acconfig.h (_FILE_OFFSET_BITS, _LARGEFILE_SOURCE, _LARGE_FILES):
327 * Makefile.in (MISC): add config.guess and config.sub so they get
328 included in the distribution.
330 Wed Jun 9 11:29:29 1999 Paul Eggert <eggert@twinsun.com>
332 * io.c (iop_alloc): Don't mmap files whose sizes don't fit in `int'.
333 [ This isn't really needed, as HAVE_MMAP is #undef'ed at the top,
334 but it's there in case people want to take their life in their hands. ]
336 Sun Jun 6 11:28:07 1999 Arnold D. Robbins <arnold@gnu.org>
338 * BETA Release 3.0.46: Release tar file made.
340 Wed Jun 2 14:36:24 1999 Arnold D. Robbins <arnold@gnu.org>
342 * PORTS: Updated with a more recent list of systems
343 that gawk compiles and tests ok on.
345 Tue Jun 1 14:24:59 1999 Arnold D. Robbins <arnold@gnu.org>
347 * BETA Release 3.0.45: Release tar file made.
349 Tue May 25 16:32:37 1999 Arnold D. Robbins <arnold@gnu.org>
351 * builtin.c (format_tree): more smarts for weird cases, such as
352 zero precisions and zero values used with the `#' flag.
353 Thanks to Andreas Schwab (schwab@gnu.org) for pointing these out.
355 Wed May 19 14:02:54 1999 Arnold D. Robbins <arnold@gnu.org>
357 * io.c (do_close): move test for `close(FILENAME)' to after
358 loop through all open redirections. Fixes problems in obscure
359 cases with redirections in END rules.
361 Sun May 16 14:08:39 1999 Arnold D. Robbins <arnold@gnu.org>
363 * awk.y (yylex): fix group of characters including ',' to
364 set want_assign = FALSE. Fixes bizarre parsing problems in
365 function call lists, for example.
366 * io.c (get_a_record): repair logic for single-leading-newline
369 Tue May 11 16:48:11 1999 Arnold D. Robbins <arnold@gnu.org>
371 * aclocal.m4 (GAWK_AC_AIX_TWEAK): new macro.
372 * configure.in: call it
373 * Makefile.in: (awklib/all): pass CFLAGS on to sub-make so
374 that password programs will get AIX magic defines. Avoids
375 having to tweak program code for those in doc/gawk.texi.
377 Mon May 3 16:56:23 1999 Arnold D. Robbins <arnold@gnu.org>
379 * array.c (do_delete): don't free_temp(subs) until after all
380 references to it are finished.
382 Mon May 3 13:41:16 1999 Arnold D. Robbins <arnold@gnu.org>
384 * BETA Release 3.0.44: Release tar file made.
386 Sun May 2 18:25:43 1999 Arnold D. Robbins <arnold@gnu.org>
388 * io.c (get_a_record): Do a really good job of stripping newlines
389 from the front of records when RS = "" and there's only one
390 newline at the front of the file, which the regex didn't catch.
392 Wed Apr 28 12:27:49 1999 Arnold D. Robbins <arnold@gnu.org>
394 * configure.in: more HP stuff: fix the manual alloca code so that
395 gawk will compile and link on HP systems. See the comments.
397 Sun Apr 25 13:39:16 1999 Arnold D. Robbins <arnold@gnu.org>
399 * Makefile.in (gawk): add $(CFLAGS) to linking step.
400 * configure.in: correctly do AC_FUNC_GETPGRP on HP systems too.
402 Tue Apr 13 20:21:00 1999 Arnold D. Robbins <arnold@gnu.org>
404 * BETA Release 3.0.43: Release tar file made.
406 Tue Apr 13 19:02:20 1999 Arnold D. Robbins <arnold@gnu.org>
408 * io.c (useropen, pidopen): add casts to int on arguments to
409 silence gcc warnings.
410 * regex.c (regcomp,regexec,regfree): add ifdef for APPLE.
412 Thu Feb 4 10:38:02 1999 Arnold D. Robbins <arnold@gnu.org>
414 * custom.h: hacks for BeOS. Not documented in the manual right now.
415 * configure.in: hacks for BeOS. Check for HP-UX and define C_ALLOCA
416 if not using gcc. I wish they'd just fix bison already.
418 Sun Dec 20 16:57:38 1998 Arnold D. Robbins <arnold@gnu.org>
420 * BETA Release 3.0.42: Release tar file made.
422 Sun Nov 15 21:05:39 1998 Arnold D. Robbins <arnold@gnu.org>
424 * io.c (gawk_popen): Add WIN32 to list of systems that use
425 the non-real-pipe version. From the PC gawk guys.
427 Wed Nov 4 11:32:24 1998 Arnold D. Robbins <arnold@gnu.org>
429 * BETA Release 3.0.41: Release tar file made.
431 Tue Nov 3 16:24:35 1998 Arnold D. Robbins <arnold@gnu.org>
433 * eval.c (r_get_lhs): Fix the cases for the special variables,
434 don't unref their current value if it's the same as the internal
435 copy; perhaps the current one is used in a concatenation or some
436 other expression somewhere higher up in the call chain. Ouch.
437 See test/getnr2tm.awk.
439 Sun Nov 1 15:24:52 1998 Arnold D. Robbins <arnold@gnu.org>
441 * builtin.c (format_tree): improve handling of zero-fill
442 when a precision is present. See test/zeroflag.awk.
444 Wed Oct 28 20:40:17 1998 Arnold D. Robbins <arnold@gnu.org>
446 * eval.c (r_tree_eval): Case for Node_concat. Get lengths
447 separately, in case one expression has a side effect that
448 that changes another. Ugly, but it keeps gawk from core
449 dumping. See test/nasty.awk.
451 Sun Oct 18 21:27:24 1998 Arnold D. Robbins <arnold@gnu.org>
453 * awk.y (append_right): bug fix, if `list' or `new' are NULL,
454 return `list', so that things don't break too badly.
455 * regex.c (re_compile_fastmap): remove unused variable `num_regs'.
457 Thu Oct 8 19:36:57 1998 Arnold D. Robbins <arnold@gnu.org>
459 * BETA Release 3.0.40: Release tar file made.
461 Mon Jul 27 10:14:33 1998 Arnold D. Robbins <arnold@gnu.org>
463 * node.c (parse_escape): Remove assignment with side effects
464 from ISXDIGIT test. Thanks to "Mihai T. LAZARESCU"
465 <mihai@ccmserv.polito.it> for pointing this out.
467 Mon Apr 27 11:31:32 1998 Arnold D. Robbins <arnold@gnu.org>
469 * main.c (usage): fix the email address for the bug list.
470 (copyleft): update the copyright year.
472 Mon Mar 23 21:22:32 1998 Arnold D. Robbins <arnold@gnu.org>
474 * eval.c (r_get_lhs): make sure that values of type
475 Node_param_list don't have the FUNC flag set. This means
476 we don't allow the use of a function name as a variable or
477 array from within the function.
479 Sun Mar 22 19:12:32 1998 Paul Eggert <eggert@twinsun.com>
481 * aclocal.m4 (GAWK_AC_LARGE_FILES): new macro that checks for
482 large file support, and updates CPPFLAGS, LDFLAGS, LIBS as
484 * configure.in: call GAWK_AC_LARGE_FILES.
485 * Makefile.in (CPPFLAGS, LDFLAGS): Let autoconf configure.
486 (COMPFLAGS): Add $(CPPFLAGS).
488 Mon Mar 16 14:06:41 1998 Arnold D. Robbins <arnold@gnu.org>
490 * field.c (using_FIELDWIDTHS): new macro.
491 (using_fieldwidths): use new macro.
492 (do_split): in case for FS_DFLT, also check that
493 we're not using FIELDWIDTHS. Otherwise, split() would use
494 FIELDWIDTHS, not current value of FS. Oops.
496 Sun Nov 16 20:08:59 1997 Arnold D. Robbins <arnold@gnu.org>
498 * builtin.c (sub_common): fix for count of matches in gsub
499 from Geert.Debyser@esat.kuleuven.ac.be.
501 Wed Oct 15 03:38:12 1997 Arnold D. Robbins <arnold@gnu.org>
503 * field.c (set_FS): Use `sc_parsefield' if the value of FS is not
504 alphabetic OR if not ignoring case. Bug fix if IGNORECASE
505 is true and FS happens to be '^'. Sheesh, talk about obscure.
506 (rebuild_record): Add more smarts to the code that sets up the
507 fields. Thanks to Alan J. Broder (ajb@dtmr.com).
509 Sun Oct 5 11:56:52 1997 Arnold D. Robbins <arnold@gnu.org>
511 * configure.in: if ISC add -D_SYSV3 to CFLAGS, per email from
512 Mario Vanoni (vanonim@dial.eunet.ch).
514 Fri Sep 26 00:57:49 1997 Arnold D. Robbins <arnold@gnu.org>
516 * awk.y (append_right): return if either list is NULL. Prevents
517 syntax errors from causing core dumps.
519 Wed Sep 17 15:34:15 1997 Arnold D. Robbins <arnold@gnu.org>
521 * field.c (rebuild_record): set things up so that all fields point
522 into the new record and release any changed fields without
523 causing memory leaks. Avoids problems when fields are extended
524 with the value of $0 or other fields and then $0 is assigned to.
526 Mon Sep 15 16:12:55 1997 Arnold D. Robbins <arnold@gnu.org>
528 * builtin.c (do_print): when testing for NUMBER, make sure
529 it's not a string too. Thanks to Michael Brennan for
530 clarifying the semantics.
532 Sun Sep 14 19:55:12 1997 Arnold D. Robbins <arnold@gnu.org>
534 * node.c (format_val): always format values ourselves: avoids
535 problems if OFMT is bizarre, like %s.
537 Sun Sep 14 00:08:53 1997 Arnold D. Robbins <arnold@gnu.org>
539 * io.c (get_a_record): replace all occurrences of the test
540 `grRS == FALSE' with `RS_is_null' which makes ` RS = "\0" '
541 actually work, is clearer code, and actually makes use of
542 the `RS_is_null' variable!
544 Sun Aug 17 07:15:12 1997 Arnold D. Robbins <arnold@gnu.org>
546 * field.c (set_FS): Change logic to always set parse_field, even
547 if FS hasn't changed. Thanks to Igor Sheyn for catching this.
549 Wed Aug 6 21:04:37 1997 Arnold D. Robbins <arnold@gnu.org>
551 * io.c (VMS et al gawk_popen): use pclose, not fclose, if
554 Wed Jul 30 19:53:52 1997 Arnold D. Robbins <arnold@gnu.org>
556 * awk.y [variable]: fix case for subscript if $3 == NULL.
558 Sun Jul 27 22:47:30 1997 Arnold D. Robbins <arnold@gnu.org>
560 * awk.y (get_src_buf): don't close file if it's stdin.
562 Sun Jul 27 22:47:15 1997 Pat Rankin <rankin@eql.caltech.edu>
564 * io.c (#if VMS: vmsrtl_fileno): new routine.
565 (#if VMS: fileno): new macro substituted for stdio one.
567 Thu Jul 17 20:05:59 1997 Arnold D. Robbins <arnold@gnu.org>
569 * builtin.c (do_print): When OFMT != CONVFMT, create a new
570 temporary node with just the numeric value valid and format it,
571 and use that for printing. Avoids memory corruption.
573 Wed Jul 16 10:01:16 1997 Arnold D. Robbins <arnold@gnu.org>
575 * regex.c: When SYNTAX_TABLE is defined, but not emacs, then
576 CHAR_SET_SIZE is not defined, though used in regcomp. It should
577 be taken out of #ifdef SYNTAX_TABLE. Fix from bug group, from
578 Akim Demaille, demaille@inf.enst.fr.
579 * awk.h (isnondecimal): make test a little smarter.
580 builtin.c (nondec2awknum): add bailout for decimal numbers, e.g.
581 `00.1'. Fix from Larry Schwimmer <rosebud@cyclone.Stanford.EDU>.
583 Thu Jun 19 19:00:40 1997 Arnold D. Robbins <arnold@gnu.org>
585 * eval.c (interpret): case Node_K_next, Node_K_nextfile: fatal
586 error if called from BEGIN or END.
587 (Fixed completely Mon May 3 13:31:42 1999.)
589 Mon Jun 9 22:40:04 1997 Arnold D. Robbins <arnold@gnu.org>
591 * builtin.c (nondec2awknum): Allow `f' and `F' in hexadecimal numbers.
592 Gotta get more sleep...
593 * array.c (assoc_lookup): Fix from Tom Karzes (karzes@equator.com)
594 for memory leak when forcing type to Node_var_array.
596 Thu May 15 12:49:08 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
598 * Release 3.0.3: Release tar file made.
600 Wed May 14 08:06:08 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
602 * io.c (do_close): add lint warning if closing something that
605 Tue May 13 12:14:12 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
607 * random.c, builtin.c: remove __GLIBC__ tests, since it breaks
608 `make test'. I prefer consistency across platforms.
609 * Makefile.in (gawk): undid April 25 changes and added comment.
610 Putting COMPLAGS in breaks with -g on VMS POSIX.
612 Sun May 11 14:48:04 1997 Darrell Hankerson <hankedr@mail.auburn.edu>
614 * io.c [MSC_VER]: add cases for WIN32.
615 * regex.c [MSC_VER]: add cases for WIN32.
617 Sun May 11 07:04:01 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
619 * builtin.c (do_print): in the loop that evaluates each expression
620 to be printed, do a dupnode to avoid bizarre output. Thanks to
621 Michal for finding this problem.
622 * awk.y (yylex): fix scanning of hexadecimal constants.
624 Wed May 7 15:09:25 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
626 * io.c (get_a_record): fix casetable indexing with cast to int.
629 Tue May 6 16:40:19 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
631 * eval.c (func_call): removed unneeded variables.
633 Mon May 5 21:17:37 1997 Pat Rankin <rankin@eql.caltech.edu>
635 * missing/strftime.c [case 'v', VMS_EXT]: for VMS date format, two
636 digit day of month should not be zero padded on the 1st through
639 Mon May 5 06:33:47 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
641 * regex.h, regex.c: merge with current GLIBC version.
643 Mon May 5 06:33:47 1997 Pat Rankin <rankin@eql.caltech.edu>
645 * io.c (nextfile): move the check for null return from iop_open
646 in the normal case and add one for the "no args" case.
648 Fri Apr 25 16:52:33 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
650 * array.c (grow_table): add a bunch more large primes so arrays
651 can get really big. Thanks to christos@deshaw.com.
652 * all files: remove ifdef'ed out code and update copyrights.
653 * Makefile.in (gawk): add $(COMPFLAGS) to command line.
654 * eval.c (flags2str): added case for FIELD.
656 Thu Apr 24 22:39:23 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
658 * COPYING: changed to current official version from FSF.
659 * regex.c: merge with GLIBC version.
660 * awk.h [_GNU_SOURCE]: bracket definition inside ifdef.
661 (NODE.source_line): move name member out of `x' union and
662 into `nodep'; avoids problems doing diagnostics.
663 (nondec2num): put decl into #if BITOPS || NONDECDATA
664 * posix/gawkmisc.c, missing/system.c, missing/strtod.c,
665 missing/strerror.c: move to generic GPL statement at top.
666 * builtin.c (nondec2num): put into #if BITOPS || NONDECDATA
668 Wed Apr 23 22:14:14 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
670 * dfa.c: misc changes for really pedantic SGI compilers.
671 * builtin.c: bracket defs of random() etc for GLIBC.
672 * random.c: bracket whole file for GLIBC.
673 * configure.in: extra goop for GETPGRP test for VMS POSIX.
674 * custom.h [VMS]: remove hard definition of GETPGRP_VOID.
676 Fri Apr 18 07:55:47 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
678 * BETA Release 3.0.34: Release tar file made.
680 Tue Apr 15 21:35:45 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
682 NEW UNDOCUMENTED FEATURE. USE THE SOURCE LUKE!
683 * acconfig.h [NONDECDATA]: new macro.
684 * awk.h: add decl of do_strtonum.
685 * awk.y (tokentab): add entry for strtonum function.
686 * builtin.c (do_strtonum): new function.
687 * configure.in (non-decimal-data): new --enable-* option.
688 * node.c (r_force_number): change to allow non-decimal data inside
691 Tue Apr 15 06:32:50 1997 Pat Rankin <rankin@eql.caltech.edu>
693 * missing/strftime.c (malloc, realloc, getenv, strchr): only
694 declare these when STDC_HEADERS is not defined.
695 <stdlib.h, string.h>: include these when STDC_HEADERS is defined.
696 * awk.h (freenode, tree_eval, m_tree_eval): reorganize definitions.
697 * alloca.c (malloc): if malloc is already defined as a macro,
698 presumeably by config.h, don't define or declare it.
700 Wed Apr 9 22:45:27 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
702 * Makefile.in [COMPFLAGS]: per suggestion from Karl Berry, put
705 Tue Apr 8 23:54:46 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
707 * eval.c (interpret): For Node_K_break and Node_K_continue, if
708 treating them like `next', also check the function call stack
709 and pop it if necessary.
711 Mon Apr 7 18:22:37 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
713 * awk.h: Add decls of new routines do_compl() and set_loc().
714 * awk.y (tokentab): add entry for "compl" function.
715 * builtin.c (do_compl): new function to do ones complement.
716 (do_substr): rationalized yet again, now notices negative start
717 and length parameters.
718 * eval.c (push_args): fix if call_list gets realloc'ed in the
719 middle of things. Avoids crash for deeply nested function calls.
720 * main.c (catch_sig): add call to set_loc().
721 * msg.c (set_loc, srcfile, srcline): new function and private
722 variables to help out in tracing down source of error messages.
724 Fri Mar 28 08:42:27 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
726 * io.c (iop_alloc, iop_close): Undo changes of Feb 11, apparently
727 other cleanups in io.c made mmap stuff start working again.
728 BAH! It's a mess, the test suite still fails. I'm leaving the
729 mmap stuff undefined for now. It'll probably get ripped out in 3.1.
731 Thu Mar 27 08:48:57 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
733 * custom.h [_SEQUENT_]: undef HAVE_MMAP.
735 Wed Mar 26 09:08:16 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
737 * io.c (iop_alloc): fix definition to make it static.
739 Mon Mar 24 23:09:07 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
741 * field.c (init_fields, etc..): more clean up use of Null_field
742 and the various flags.
743 * node.c (unref): if a field, free the node itself. Fixes
744 memory leak problems.
746 Sun Mar 23 22:51:09 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
748 * awk.h [FIELD]: new flag for node->flags field.
749 * builtin.c (sub_common): if FIELD is set, dup the string.
750 * field.c (init_fields): set up a new Null_field global var.
751 (init_fields, set_field, set_record) use the FIELD flag.
752 (getfield): use Null_field instead of private variable.
753 * io.c (wait_any): comment out calls to pclose and iop_close,
754 caused weird race conditions. See test/pipeio1.awk. Thanks
755 to Darrell Hankerson for tracing this one down.
757 Tue Mar 18 20:57:18 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
759 * dfa.c (inboth): free templist; plugs memory leak.
760 * field.c (init_fields, grow_fields_arr, set_field, rebuild_record,
761 set_record): remove PERM flag from entries in fields_arr[]. Fixes
764 Tue Mar 18 06:33:00 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
766 * awk.y (dup_parms): robustified against parameter errors.
768 Sun Mar 16 21:31:40 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
770 NEW UNDOCUMENTED FEATURE. USE THE SOURCE LUKE!
771 * acconfig.h [BITOPS]: new macro. If set, do octal & hex and bit ops.
772 * awk.h [isnondecimal]: new macro, and decl of new functions.
773 * awk.y (yylex): add recognition of octal and hex constants.
774 * builtin.c (do_and, do_or, do_xor, do_lshift, do_rshift): new
775 functions that do bit operations.
776 (nondec2awknum): new function to convert octal or hex to double.
777 * configure.in: Add AC_ARG_ENABLE for bit operations.
778 * node.c (r_force_number): add octal and hex conversion.
780 Sun Mar 16 21:28:56 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
782 * awk.h [IOP_NOFREE_OBJ]: new macro.
783 * io.c (iop_open, iop_alloc): add new third parameter, which is
784 either NULL, meaning allocate a new IOP, or the address of one
785 already allocated. Have a static one in the `nextfile'
786 routine, and use the IOP_NOFREE_OBJ flag for it. All of this
787 keeps us from reading freed memory. The `swaplns' test fails
789 (iop_close): if IOP_NOFREE_OBJ is set, don't free the IOBUF.
791 Wed Feb 26 06:21:02 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
793 * eval.c (in_function, pop_fcall_stack, pop_fcall, push_args):
794 new functions. These manage "frames" of awk function call arguments.
795 The problem is that a `next' or a `nextfile' from a function
796 leaks memory. These changes allow us to free up that memory.
797 (interpret): for Node_K_next and Node_K_nextfile, check if in
798 a function call and free all function call frames.
800 Fri Feb 21 06:23:19 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
802 * Misc changes from Katsuyuki Okabe <HGC02147@niftyserve.or.jp>:
803 * builtin.c (do_substr): change a %d to %ld in warning message.
804 * eval.c (op_assign): fix format string for warning about %=.
806 Wed Feb 19 23:29:02 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
808 * main.c (main): add do_intervals to condition that causes
809 resetup() to be called again. Makes the --re-interval option
810 actually work. What a concept.
812 Fri Feb 14 09:47:31 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
814 * io.c [#include "awk.h"]: undef HAVE_MMAP to just use the old code.
815 Something is causing a file descriptor leak, and this is getting to
816 be just too much hair. I reserve the right to rip out the mmap
817 code entirely at a future date.
819 Tue Feb 11 06:28:29 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
821 * io.c (iop_alloc): for an mmap'ed file, close the file descriptor,
822 and then touch each page to get a private copy. Fixes nasty case
823 of truncating our input file.
824 (iop_close): don't call close on mmap'ed file.
826 Wed Feb 5 17:59:04 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
828 * eval.c (interpret): For Node_K_delete, just call do_delete; let
829 it handle the case of `delete array'.
830 * array.c (do_delete): Changed to handle case of `delete array',
831 and made smarter if the array is actually an uninitialized
834 Sun Jan 26 22:58:29 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
836 * getopt.h, getopt.c, getopt1.c: replaced with new versions from
839 Sun Jan 19 23:37:03 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
841 * eval.c (nodetype2str): not static, for debugging.
842 (flags2str) new function: for debugging.
843 * field.c (get_field): add new var that is like Nnull_string but
844 does not have numeric attributes, so that new fields are strings.
845 (set_record): turn off PERM flag before unrefing fields and field 0.
846 * array.c (in_array): always evaluate subscript, could have
848 * builtin.c (do_strftime): way increase size of buffer to make sure
849 we don't have overflow problem. Keeps Paul Eggert happy.
850 * custom.h [__amigaos__]: define fork to vfork. From Fred Fish.
851 * dfa.c: move include of config.h to top, for RSXNT. From Kai
853 (ISALPHA, etc): change from Jacob Engelbrecht (jaen@novo.dk)
854 to better handle non-ascii environments.
855 * gawkmisc.c: remove amigados case, posix should now work fine.
856 * amiga/*: nuked per previous entry.
857 * Makefile.in: removed all references to amiga
858 * io.c [HAVE_SYS_PARAM_H]: Add #undef RE_DUP_MAX to avoid
859 spurious conflict with regex.h.
860 (flush_io): remove amiga ifdefs, not needed anymore.
861 (spec_setup): set getrec field for special files. Fix from
862 Mark Gray (markgray@pdt.net).
863 * node.c (more_nodes): fix to get the last entry in the array.
865 Wed Jan 8 17:42:37 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
867 * io.c (mmap_get_record): Fix return value if file ends without
870 Fri Jan 3 19:57:16 1997 Pat Rankin <rankin@eql.caltech.edu>
872 * awk.y (get_src_buf): Test for an empty source file by detecting
873 an initial read of 0 bytes rather than by relying on info from
876 Wed Dec 25 11:25:22 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
878 * Release 3.0.2: Release tar file made.
880 Wed Dec 25 11:17:32 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
882 * Makefile.in (install, uninstall): use $(srcdir)/patchlevel.h.
883 Thanks to Richard Levitte, LeViMS@stacken.kth.se.
884 (install): remove chmod command; let $(INSTALL_PROGRAM) use -m.
886 Mon Dec 23 20:36:59 1996 Pat Rankin <rankin@eql.caltech.edu>
888 * custom.h (#if VMS_POSIX): Define GETPGRP_VOID.
890 Fri Dec 20 08:59:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
892 * getopt.c, getopt1.c: comment out the `#if defined (_LIBC) ||
893 !defined (__GNU_LIBRARY__)' and `#endif' to force use of this
894 getopt, even on systems like linux. This will be handled
895 better in 3.1 / glibc 2.
897 Thu Dec 19 22:52:39 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
899 * awk.y (yylex): In several places, after yyerror(), add call to
900 exit(). Otherwise, infinite messages. This should probably
903 Wed Dec 18 22:42:10 1996 Darrel Hankerson <hankedr@mail.auburn.edu>
905 * getopt.c (_getopt_internal): if 'W' and ';', if optind == argc,
906 return c, don't fall through.
908 Wed Dec 18 10:09:44 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
910 * configure.in [AC_PREREQ]: Update to 2.12 in order to switch to
911 autoconf 2.12. Lots of other files will be rebuilt automatically.
912 [AM_SANITY_CHECK_CC]: Removed, autoconf does it now.
913 * aclocal.m4 [AM_SANITY_CHECK_CC]: Removed, autoconf does it now.
915 Tue Dec 17 22:23:16 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
917 * builtin.c (do_strftime): fix case if format string is "".
918 Also fix it if format is not "" but result of strftime is "".
919 See comments in code.
921 Tue Dec 10 23:09:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
923 * Release 3.0.1: Release tar file made.
925 Tue Dec 10 22:39:41 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
927 * Makefile.in (dist): add dependency on `info'. Remove line that
929 (install): use $(LN) not $(LN_S) to link gawk gawk-version.
931 Sun Dec 8 07:53:44 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
933 * Makefile.in (gawk): took COMPFLAGS out of link line for help
934 on VMS posix. Shouldn't (I hope) affect anything else.
936 Thu Nov 28 11:52:24 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
938 * configure.in (AC_PROG_INSTALL): Set INSTALL to install-sh.
940 Tue Nov 26 22:42:00 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
942 * PORTS: Updated list of systems.
943 * Makefile.in (install): Fix some typos and add some improvements
946 Sun Nov 24 22:16:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
948 * builtin.c (do_printf): if no args, fatal error. Return silently
951 Thu Nov 7 20:54:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
953 * io.c (inrec): make sure EOF hasn't already happened before
954 trying to read; prevents accessing freed buffer. Thanks to
956 * Makefile.in [AWKSRC]: add random.h.
957 random.h: new file, redefines names of the `random' functions.
958 random.c, builtin.c: add include of random.h.
960 Thu Nov 7 09:06:21 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
962 * awk.y (snode): undo 4 Oct change, put do_split code back.
963 field.c (do_split): restore old code; add test for CONST, so
964 that re_parse_field is used if third arg to split is a regexp
967 Mon Nov 4 12:57:11 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
969 * main.c (main): Research -m[fr] options don't need literal '='
970 characters. Brian's documentation was confusing. Fixed, not
971 that anyone actually uses these options with gawk.
973 Sun Nov 3 11:23:21 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
975 * field.c (def_parse_field): add \n to list of acceptable white space.
976 (posix_def_parse_field): new routine, just like def_parse_field(),
977 but only allows space and tab as separators.
978 (do_split, set_FS): make appropriate choice between the two
979 *def_parse_field() routines.
981 Fri Oct 25 10:13:06 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
983 * configure.in: remove test for random.
984 * Makefile.in: add random.c to list of files always compiled.
985 * missing.c: remove HAVE_RANDOM test.
986 * builtin.c: remove ifdef's for HAVE_RANDOM.
987 [GAWK_RAND_MAX]: use constant we know works with our random().
988 * random.c: new file - moved from missing/ directory.
990 Wed Oct 23 19:46:01 1996 Pat Rankin <rankin@eql.caltech.edu>
992 * builtin.c (do_tolower, do_toupper): Add `unsigned char *' casts.
994 Tue Oct 22 21:27:52 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
996 * builtin.c [GAWK_RANDOM_MAX]: Try to make definition a bit
997 smarter; don't use RAND_MAX if it's equal to SHRT_MAX, blows
1000 Tue Oct 22 08:49:20 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1002 * main.c (copyleft): update copyright date to 1996.
1003 too many files to list: update copyright date to 1996.
1005 Sun Oct 20 12:21:09 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1007 * awk.y, dfa.c, eval.c, io.c, re.c: added various FIXME comments.
1009 Sat Oct 19 22:06:42 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1011 * eval.c (nodetype2str): make static, add prototype.
1012 * field.c (sc_parse_field): cast array subscripts to int to
1013 shut up gcc warnings.
1014 * gawkmisc.c: add prototype for xmalloc.
1015 * awk.h: add prototype for getredirect.
1016 * builtin.c (do_fflush): remove extern decl of getredirect.
1017 * io.c (get_a_record, mmap_get_record): change decl of rs to int,
1018 to shut up gcc warnings.
1019 * awk.y (isassignable): add a default to switch to quiet gcc.
1020 * getopt.c (_getopt_internal): give default value to `indfound'.
1022 Fri Oct 18 09:00:49 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1024 * regex.h [RE_SYNTAX_AWK]: add RE_CONTEXT_INDEP_ANCHORS.
1026 Thu Oct 17 22:32:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1028 * aclocal.m4 [AM_SANITY_CHECK_CC]: added.
1029 * configure.in: use it.
1031 Thu Oct 17 21:43:25 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1033 * configure.in: add checks for locale.h and setlocale().
1034 awk.h: include locale.h and define out setlocale() if not available.
1035 main.c (main): call setlocale().
1036 builtin.c (do_tolower, do_toupper): use unsigned char pointers,
1037 to get other charsets right in different locales.
1039 Wed Oct 16 21:32:53 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1041 * builtin.c (format_tree): Change initial buffer size to 512
1042 and use a constant. Allows large values of %f per bug report
1043 from sheyn@cs.bu.edu.
1045 Wed Oct 16 21:22:08 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1047 * Makefile.in [MISC]: removed TAGS and tags
1048 (local-distclean): added TAGS and tags
1049 (maintainer-clean): removed TAGS and tags
1051 Wed Oct 16 12:28:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1053 * main.c (version): Add call to copyleft(), per new standards.
1054 version.c: Fix text of version string to match new standards.
1056 Sun Oct 6 22:19:45 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1058 * regex.c: updated to Emacs 19.34b base.
1060 Sun Oct 6 21:57:34 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1062 * re.c (make_regexp): fixed to handle \8 and \9 in the middle
1065 Fri Oct 4 10:26:16 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1067 * awk.y (snode): remove case for do_split; always making the
1068 third arg a Node_regex is wrong.
1069 field.c (do_split): rationalized to distinguish `/ /' from `" "'.
1071 * node.c (parse_escape): Allow single digit \x escapes.
1073 1996-10-02 Paul Eggert <eggert@twinsun.com>
1075 * builtin.c (format_tree):
1076 Fix bug in %d and %i format: NaNs, and values
1077 in the range LONG_MAX+1 .. ULONG_MAX, were mishandled.
1078 Don't assume that double values <= -1 are converted to unsigned
1079 long in the expected way; the C Standard doesn't guarantee this.
1081 1996-10-02 Paul Eggert <eggert@twinsun.com>
1083 * awk.h (INT_MAX): Remove unused symbol.
1085 Mon Sep 30 22:19:11 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1087 * getopt.c (_getopt_internal): If 'W' is in the optstring followed
1088 by a ';' then search through the long opts table. This makes
1089 `-W foo=bar' same as `--foo=bar'.
1090 * main.c (main): 'W' now prints an error message.
1091 (gawk_option): deleted the routine.
1093 Sun Sep 29 23:04:54 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1095 * builtin.c (sub_common): fix several bugs with gsub when
1096 matching null strings. See test/gsubtest.awk.
1098 Fri Sep 20 17:35:54 1996 Pat Rankin <rankin@eql.caltech.edu>
1100 * alloca.c (NULL): don't define if <config.h> has already done so.
1102 Fri Sep 20 11:54:31 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1104 * builtin.c (do_print): evaluate all the expressions first and
1105 then print them. Avoids surprising behavior. See test/prtoeval.awk
1108 Tue Sep 10 06:21:40 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1110 * awk.h [FUNC]: new flag, marks a Node_parameter_list as really
1111 being the function name; allows more checking in awk.y.
1112 * awk.y (isassignable): now takes a NODE * instead of a type, to
1113 check if a function parameter is marked FUNC, then it's the function
1114 name, which is not assignable. Fix call from snode().
1115 (function_prologue): mark function name as FUNC.
1116 (yyerror): don't call exit() anymore; gawk will now report
1119 Sun Sep 1 19:36:30 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1121 * field.c (rebuild_record): after building new field 0, go through
1122 all old fields, and if they used to point into the old one,
1123 have them point into the new one. Then turn off PERM flag before
1126 Wed Aug 28 19:13:34 1996 Arnold D. Robbins <arnold@math.utah.edu>
1128 * eval.c (set_IGNORECASE): Correctly parenthesize bit operations
1129 in test and fix logic for string value.
1131 Wed Aug 28 22:06:33 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1133 * main.c (usage): add email addresses for bug reporting, per
1134 change in GNU Coding Standards from RMS.
1136 Sun Aug 11 23:13:22 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1138 * Makefile.in (install): correct use of $(INSTALL_PROGRAM).
1140 Thu Aug 8 23:29:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1142 * parse.y (isassignable): new function, checks in type can
1144 (snode): changed checking for 3rd arg of gsub to be more
1145 general, supersedes earlier change.
1147 Thu Aug 8 13:58:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1149 * parse.y (snode): If third arg to sub or gsub is builtin
1150 function, complain, since can't substitute into result.
1151 * eval.c (r_get_lhs): diagnose Node_builtin as an error, instead
1152 of falling through into default case and using cant_happen().
1154 Thu Aug 1 07:13:14 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1156 * regex.h [RE_DEBUG]: new macro.
1157 [RE_SYNTAX_GNU_AWK]: add RE_DEBUG.
1158 [RE_SYNTAX_POSIX_AWK]: add RE_INTERVALS.
1159 * regex.c (re_set_syntax): add #ifdef DEBUG code to turn on `debug'
1160 flag if RE_DEBUG set, and turn off debug if not set and debug
1162 * main.c (main): remove `do_intervals = TRUE' from `if (do_posix)',
1163 it's now handled in the definition of RE_SYNTAX_POSIX_AWK.
1165 Mon Jul 29 17:49:07 1996 Pat Rankin <rankin@eql.caltech.edu>
1167 * io.c (O_ACCMODE): define it if <fcntl.h> doesn't.
1169 Mon Jul 29 12:02:48 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1171 * eval.c (set_IGNORECASE): made somewhat smarter. gawk -v IGNORECASE=0
1172 was acting the same as -v IGNORECASE=1. Thanks to Darrell Hankerson
1175 Fri Jul 26 12:04:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1177 * awk.h (format_val): add declaration of new routine.
1178 * node.c (format_val): new routine, abstracts old guts of
1179 r_forcestring; accepts format string and index as additional params.
1180 (r_force_string): changed to call format_val.
1181 * builtin.c (do_print): don't tree_eval the tree twice in case
1182 OFMTidx != CONVFMTidx; doing so could cause side effects
1183 (from bug report by Tobias Rettstadt, xassp@ipds.uni-kiel.de).
1184 Instead, call format_val.
1186 Mon Jul 22 21:59:15 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1188 * io.c (iop_close): change check for "is $0 in the input buffer"
1189 to use `< (iop->buf + iop->secsiz + iop->size)' instead of
1190 `< iop->end'. The latter is bogus if EOF has been hit on the
1191 file. Fix from Darrel Hankerson based on bug report by
1192 Charles Howes (howes@grid.direct.ca). See test/eofsplit.awk.
1194 Thu Jul 18 19:43:20 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1196 * builtin.c (sub_common): backed out change of Feb 14 in favor of:
1197 (do_gensub): Changed to use make_string and then to |= TEMP
1198 flag, based on bug report and patch from Katsuyuki Okabe,
1199 hgc02147@niftyserve.or.jp.
1201 Thu Jul 18 19:23:53 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1203 * custom.h: added ifdef for QNX, based on bug report from
1204 Michael Hunter, mphunter@qnx.com.
1206 Mon Jul 15 09:31:01 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1208 * io.c (redirect): When finding the rp pointer, if it's not
1209 NULL, set str = rp->value. This gets the '\0' terminated
1210 version. Motivated by bug report from John Hawkinson
1211 (jhawk@bbnplanet.com).
1213 Sun Jul 14 18:40:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1215 * configure.in: added call to AC_CHECK_LIB(m, fmod), since
1216 apparently some systems have fmod in the math library.
1217 Portability: the Holy Grail. Sigh.
1219 Sun Jul 14 18:08:01 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1221 * awk.h: add Jim Meyerings ISASCII etc hacks for ctype macros.
1222 * builtin.c (do_toupper, do_tolower, sub_common): changed to use
1223 upper-case versions of ctype macros.
1224 * main.c (main): ditto.
1225 * node.c (r_force_number, parse_escape): ditto.
1227 Sun Jul 14 06:34:18 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1229 * field.c (set_record): made it always do the PERM flag.
1230 Fixes cases where $0 is assigned to, e.g. by gsub, keeps
1232 (get_field): removed the call to reset_record in
1233 case where ! field0_valid. We want to leave the fields alone
1234 if they've been changed.
1236 Thu Jul 11 23:04:20 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1238 * io.c (devopen): change tests of (flag & O_fooONLY) to
1239 (flag & O_ACCMODE) == O_fooONLY. Per (long standing) bug
1240 report from Chapman Flack.
1241 (close_redir): change final conditional to just (status != 0)
1242 so that ERRNO always set; the warning had its own `if (do_lint)'
1244 * eval.c (do_split): force type of array to be Node_var_array
1245 instead of Node_var. Per (long standing) bug report from
1248 Thu Jul 11 22:17:14 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1250 * Makefile.in (install): added symlink of gawk to awk if
1251 no awk in $(bindir).
1252 (LN_S): new variable for symlinking.
1253 (uninstall): remove awk if it's the same gawk.
1254 * Configure.in: Added call to AC_PROG_LN_S for Makefile.in.
1256 Sun Jul 7 15:47:13 1996 Arnold D. Robbins <arnold@infographix.com>
1258 * main.c (main): made `--posix' turn on interval expressions.
1259 Gawk now matches its documentation. (What a concept!)
1261 Wed Jul 3 15:02:48 1996 Arnold D. Robbins <arnold@infographix.com>
1263 * regex.h, regex.c: upgraded to changes from Emacs 19.31.
1265 Fri May 17 08:46:07 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1267 * io.c (get_a_record): added `continued' flag. Fix from
1268 Darrell Hankerson for when RS = "\n|something".
1270 Wed May 15 02:34:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1272 * Makefile.in (awklib/all): now depends on gawk, fixes problem
1275 Tue May 14 15:02:52 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1277 * builtin.c (format_tree): fix handling of '*' to deal with
1278 negative value for fieldwidth -- make positive and turn on
1279 left justify. Per bug report from Michael Brennan.
1281 Sun May 12 20:42:06 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1283 * eval.c (r_get_lhs): case Node_subscript. Check if array name
1284 is actually a function, fatal error if so.
1286 Sun May 5 10:11:52 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1288 * io.c (redirect): call flush_io() before creating a new output pipe,
1289 per bug report from Brian Kernighan (bwk@research.bell-labs.com).
1291 Fri Mar 15 06:38:33 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1293 * Makefile.in (install): use $(INSTALL_PROGRAM), not $(INSTALL).
1294 (local-distclean): add `*~' to list of files to be removed.
1295 (CFLAGS): now contains just @CFLAGS@.
1296 (COMPFLAGS): replaces use of CFLAGS, has CFLAGS plus all the
1299 Wed Mar 13 14:19:38 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1301 * io.c (mmap_get_record): fixed to not place sentinel at end
1302 of mmap'ed object. Won't work if file is exact multiple of
1303 disk block size. See comments in code for more info.
1304 Thanks to Rick Adams (rick@uunet.uu.net) for help in testing.
1306 Sun Mar 10 22:50:23 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1308 * io.c (do_close): notice if we were called as `close(FILENAME)'
1309 and arrange to close the current input file. This turns out
1310 to be easy to do, just call `nextfile(TRUE)'. Based on bug report
1311 from Pascal A. Dupuis, <dupuis@lei.ucl.ac.be>.
1313 Thu Mar 7 08:08:51 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1315 * field.c (init_fields, grow_fields, set_field, rebuild_record):
1316 Nuke the `nodes' array everywhere. Anytime a field is unref'ed,
1317 allocate a new node that is a copy of Nnull_string. This avoids
1318 subtle memory management problems when doing a lot of assignment
1319 to fields, and tweaking of NF. Make sure that fields_arr[0] always
1320 has a type of Node_val!
1321 * field.c (set_NF): If NF is decremented, clear fields between
1322 NF and parse_high_water, otherwise if NF incremented, clear
1323 fields between parse_high_water and NF.
1324 * eval.c (nodetype2str): new function, used for diagnostics.
1325 eval.c (interpret): use nodetype2str when finding invalid node.
1327 Mon Mar 4 09:02:28 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1329 * builtin.c (do_toupper, do_tolower): use isascii along with
1330 isupper/islower before changing case, in case characters have
1331 the high bit set. This is a hack.
1333 Mon Feb 26 22:24:44 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1335 * builtin.c (sub_common): if no match, and called from gensub,
1336 don't free the temporary string, since the tmp_number then
1339 Sun Feb 25 23:13:01 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1341 * builtin.c (format_tree): fixed %c to treat user input as
1342 numeric also by adding test for MAYBE_NUM.
1344 Tue Feb 20 12:25:50 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1346 * configure.in: Added AC_FUNC_MMAP call and add madvise to
1347 list of functions to look for.
1348 * awk.h [IOP_ISMAPPED]: new flag value for mmap support and new
1349 `getrec' structure member in struct iobuf.
1350 * io.c (iop_alloc, iop_close): changed to map/unmap input file
1351 into memory if possible.
1352 (mmap_get_record): new function to actually retrieve the
1353 record from mmaped file.
1355 Thu Feb 1 08:56:46 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1357 * builtin.c (do_substr): fixed lint message to use indx+1 when
1358 start position is past end of string.
1360 Sun Jan 28 07:00:56 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1362 * builtin.c (do_substr): rationalized handling of missing length
1363 argument, as well as various accompanying lint warnings. Previous
1364 code was slightly bogus. Talk about your Day 1 bugs.
1366 Thu Jan 25 14:09:11 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1368 * builtin.c (do_substr): if length exceeds length of actual
1369 string, do computation of needed substring length *after*
1372 Wed Jan 24 10:06:16 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1374 * Makefile.in (gawk): Add $(CFLAGS) to link line.
1375 (Makefile): target depends on the Makefile.in files.
1376 (OTHERS): Added TAGS and tags to the distribution.
1377 (local-distclean): New rule.
1378 (distclean): Use it.
1379 (maintainer-clean): Don't `make distclean' before running submakes,
1380 since that removes makefiles needed for the submakes.
1381 * builtin.c (do_strftime): Remove hard coded limit on length of result.
1382 Based on code from Paul Eggert (eggert@twinsun.com).
1384 Mon Jan 22 13:16:37 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1386 * main.c (usage): takes new fp parameter which is either
1387 stdout for `--help' (per the GNU Coding Standards) or stderr
1388 if an error occurs. Fix all calls.
1389 (version): prints to stdout per the coding stds.
1390 (copyleft): prints to stdout now, not stderr, and exits.
1392 Fri Jan 19 08:10:29 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1394 * regex.h [RE_GNU_AWK]: added RE_CONTEXT_INDEP_OPS to set of
1395 bits we turn off for regular operation. Breaks things like
1396 /^+[0-9]+/ to match a literal `+' at the beginning of, say,
1399 Wed Jan 10 23:19:36 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1401 * 3.0.0 polished up and release tar file made.
1403 Wed Dec 27 11:46:16 1995 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1405 * 2.94.0 released to porting group (no, I haven't been good
1406 about this file; I'll do better once 3.0 is released).
1408 Mon Aug 28 23:04:30 1995 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1410 * awk.h updated for NeXT - bracket TRUE/FALSE
1411 * io.c (get_a_record): removed shadowing of 'start' in
1412 * Makefile.in and doc/Makefile.in: fixed to use gawk.1 and gawk.texi,
1413 instead of gawk.1.in and gawk.texi.in.
1415 Mon Aug 25 11:04:30 1995 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
1417 * 2.90.0 released to porting group.
1419 Fri Aug 18 12:43:31 1995 Arnold D. Robbins <arnold@puny.ssc.com>
1421 * ChangeLog created.