1Mon Aug  7 15:23:00 2000  Arnold D. Robbins  <arnold@skeeve.com>
2
3	* Release 3.0.6: Release tar file made.
4
5Thu Aug  3 17:47:53 2000  Greg McGary  <greg@mcgary.org>
6
7	* regex.c: patches for gcc bounded pointer handling.
8
9Thu Aug  3 13:09:09 2000  Arnold D. Robbins  <arnold@skeeve.com>
10
11	* array.c (in_array, do_delete): fix tests for index equality
12	  when searching through the array to work correctly when
13	  index is "".
14
15Fri Jul 14 21:40:17 2000  Pat Rankin  <rankin@eql.caltech.edu>
16
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).
21
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.
26
27	* io.c (redirect): Add EIO check on failed open for VMS.
28
29Fri Jul 14 11:57:23 2000  Arnold D. Robbins  <arnold@skeeve.com>
30
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.
40
41Tue Jul 11 22:15:10 2000  Pat Rankin  <rankin@eql.caltech.edu>
42
43	* awk.y (nextc): Recast unsigned char values back to int to
44	  prevent VAX C from truncating EOF to 255.
45
46Tue Jul 11 14:08:23 2000  Arnold D. Robbins  <arnold@skeeve.com>
47
48	* array.c (do_delete): switch to string comparison, not
49	  cmp_nodes.
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.
53
54Fri Jun 30 21:57:00 2000  Arnold D. Robbins  <arnold@skeeve.com>
55
56	* array.c (assoc_lookup): Don't force the subscript
57	  to be a string.  Not a good idea after the change
58	  to using dupnode.
59
60Sun Jun 25 15:08:19 2000  Arnold D. Robbins  <arnold@skeeve.com>
61
62	* Release 3.0.5: Release tar file made.
63
64Wed Jun 14 13:03:45 2000  Arnold D. Robbins  <arnold@skeeve.com>
65
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.
69
70Tue Jun 13 16:27:55 2000  Paul Eggert  <eggert@twinsun.com>
71
72	Upgrade to latest and greatest version of largefile code.
73
74	* configure.in (AC_CANONICAL_HOST): Remove.
75	(GAWK_AC_SYS_LARGEFILE): Defer until after AC_MINIX,
76	to avoid autoconf warnings.
77
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.
87	All uses changed.
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
92	test programs.
93
94	(GAWK_AC_SYS_LARGEFILE): Define _XOPEN_SOURCE to be 500 to
95	work around glibc 2.1.3 bug.
96
97	(GAWK_AC_SYS_LARGEFILE_FLAGS): Don't use -n32 on IRIX if the
98	installer said otherwise.
99
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
102	shell assignments.
103
104Wed Jun  7 13:23:09 2000  Arnold D. Robbins  <arnold@skeeve.com>
105
106	* Updated copyright dates in appropriate files.
107
108Mon May 22 17:29:43 2000  Arnold D. Robbins  <arnold@skeeve.com>
109
110	* Makefile.in (clean): get `*/core' too.
111
112Sun May  7 16:33:05 2000  Arnold D. Robbins  <arnold@skeeve.com>
113
114	* array.c (concat_exp): Change ref to `lnode->stlen' and
115	  `lnode->stptr' for SUBSEP to use `var_value->...'.
116
117Tue May  2 09:54:29 2000  Arnold D. Robbins  <arnold@skeeve.com>
118
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
123	  the original array.
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.
132
133Tue May  2 09:52:12 2000  Bruno Haible  <haible@clisp.cons.org>
134
135	* io.c (redirect): After reopening a `struct redirect', move it to
136	  the head of the list.
137
138Sun Apr  2 17:51:40 2000  Arnold D. Robbins  <arnold@skeeve.com>
139
140	* re.c (re_update): Check if IGNORECASE has changed, and
141	  if so recompute the re.  See test/igncdym.awk.
142
143Mon Mar 20 16:18:34 2000  Arnold D. Robbins  <arnold@skeeve.com>
144
145	* io.c (set_RS): Added a lint warning about multicharacter RS,
146	  per suggestion from Akim DeMaille (akim@epita.fr).
147
148Sun Feb 13 14:40:32 2000  Arnold D. Robbins  <arnold@skeeve.com>
149
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.
152
153Sun Feb  6 11:39:33 2000  Arnold D. Robbins  <arnold@skeeve.com>
154
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.
159
160Tue Feb  1 18:41:40 2000  Arnold D. Robbins  <arnold@skeeve.com>
161
162	* eval.c (op_assign): reget the rval after regetting
163	  the left hand side.  See test/opasnslf.awk for why.
164
165Thu Jan 27 18:06:31 2000  Arnold D. Robbins  <arnold@skeeve.com>
166
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>.
171
172Wed Dec 22 15:06:37 1999  Arnold D. Robbins  <arnold@skeeve.com>
173
174	* awk.y: Removed declarations of functions before
175	  definition of `tokentab[]'.  They're redundant with
176	  what's in awk.h.
177
178Thu Dec  9 17:01:07 1999  Arnold D. Robbins  <arnold@skeeve.com>
179
180	* node.c (parse_escape): Add lint warning for unrecognized
181	  escape sequences.
182
183Mon Dec  6 15:17:34 1999  Arnold D. Robbins  <arnold@skeeve.com>
184
185	* main.c (usage): Changed bug reporting email addresses to
186	  be a reference to `Bugs' node in the online and printed
187	  doc, instead.
188
189Thu Dec  2 13:08:18 1999  Arnold D. Robbins  <arnold@skeeve.com>
190
191	* builtin.c (do_compl): test `d' for negative inside the do_lint
192	  test, not uval.  Ooops.
193
194Fri Nov 26 10:58:36 1999  Arnold D. Robbins  <arnold@skeeve.com>
195
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!
199
200Tue Nov 23 11:58:53 1999  Arnold D. Robbins  <arnold@skeeve.com>
201
202	* regex.c (SYNTAX): cast argument to `unsigned char' instead of
203	  &-ing with 0xFF.  Hopefully somewhat more portable, ala 21 Nov 99
204	  changes to awk.y.
205
206Sun Nov 21 22:25:27 1999  Paul Eggert  <eggert@twinsun.com>
207
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.
211
212Sun Nov 21 20:33:35 1999 Arnold D. Robbins  <arnold@skeeve.com>
213
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.
218
219Mon Nov  1 20:00:25 1999  Arnold D. Robbins  <arnold@skeeve.com>
220
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.
225
226Mon Oct 25 18:37:13 1999  Arnold D. Robbins  <arnold@skeeve.com>
227
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.
231
232Fri Oct 22 17:43:40 1999  Arnold D. Robbins  <arnold@skeeve.com>
233
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.
240
241Tue Oct 19 16:06:48 1999  Paul Eggert  <eggert@twinsun.com>
242
243	* io.c (close_redir): Don't munge errno between setting it and
244	  using it.
245
246Wed Oct  6 17:47:47 1999  Arnold D. Robbins  <arnold@skeeve.com>
247
248	* main.c (arg_assign): return NULL on bad variable.  Allows
249	  things like `./3x=stuff' to work as a filename.
250
251Thu Sep 23 21:35:46 1999  Paul Eggert  <eggert@twinsun.com>
252
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. :-)
255
256Tue Sep 21 13:31:36 1999  Arnold D. Robbins  <arnold@skeeve.com>
257
258	* builtin.c (format_tree): For '0', only set zero_flag if we
259	  haven't seen the field width or precision yet.
260
261Mon Aug  9 13:06:01 1999  Arnold D. Robbins  <arnold@skeeve.com>
262
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
266	  cases.
267	* configure.in: check for $srcdir/.developing adds extra
268	  defines for my testing/debugging use.  Yes, hack alert.
269
270Sun Aug  1 11:02:02 1999  Arnold D. Robbins  <arnold@skeeve.com>
271
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.
276
277Thu Jul 29 23:26:40 1999  Arnold D. Robbins  <arnold@skeeve.com>
278
279	From wsanchez@apple.com:
280	* Makefile.in (install-strip): new target, coding stds. compatibility.
281	* config.guess, config.sub: Add MacOS X recognition.
282
283Thu Jul 29 19:09:19 1999  Arnold D. Robbins  <arnold@skeeve.com>
284
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.
288
289Sun Jul  4 16:53:14 1999  Arnold D. Robbins  <arnold@skeeve.com>
290
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.
294
295Wed Jun 30 16:14:36 1999  Arnold D. Robbins  <arnold@gnu.org>
296
297	* Release 3.0.4: Release tar file made.  This time for sure.
298
299Wed Jun 30 16:10:11 1999  Arnold D. Robbins  <arnold@gnu.org>
300
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
306	  of assert.h
307
308Wed Jun  9 11:39:19 1999  Paul Eggert  <eggert@twinsun.com>
309
310	Port the large-file code to AIX, HP-UX, and IRIX.
311	Add cross-compilation support for large files.
312
313	* config.guess, config.sub: New files.
314
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.
318
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.
323
324	* acconfig.h (_FILE_OFFSET_BITS, _LARGEFILE_SOURCE, _LARGE_FILES):
325	  New macros.
326
327	* Makefile.in (MISC): add config.guess and config.sub so they get
328	  included in the distribution.
329
330Wed Jun  9 11:29:29 1999  Paul Eggert  <eggert@twinsun.com>
331
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. ]
335
336Sun Jun  6 11:28:07 1999  Arnold D. Robbins  <arnold@gnu.org>
337
338	* BETA Release 3.0.46: Release tar file made.
339
340Wed Jun  2 14:36:24 1999  Arnold D. Robbins  <arnold@gnu.org>
341
342	* PORTS: Updated with a more recent list of systems
343	  that gawk compiles and tests ok on.
344
345Tue Jun  1 14:24:59 1999  Arnold D. Robbins  <arnold@gnu.org>
346
347	* BETA Release 3.0.45: Release tar file made.
348
349Tue May 25 16:32:37 1999  Arnold D. Robbins  <arnold@gnu.org>
350
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.
354
355Wed May 19 14:02:54 1999  Arnold D. Robbins  <arnold@gnu.org>
356
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.
360
361Sun May 16 14:08:39 1999  Arnold D. Robbins  <arnold@gnu.org>
362
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
367	  case.
368
369Tue May 11 16:48:11 1999  Arnold D. Robbins  <arnold@gnu.org>
370
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.
376
377Mon May  3 16:56:23 1999  Arnold D. Robbins  <arnold@gnu.org>
378
379	* array.c (do_delete): don't free_temp(subs) until after all
380	  references to it are finished.
381
382Mon May  3 13:41:16 1999  Arnold D. Robbins  <arnold@gnu.org>
383
384	* BETA Release 3.0.44: Release tar file made.
385
386Sun May  2 18:25:43 1999  Arnold D. Robbins  <arnold@gnu.org>
387
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.
391
392Wed Apr 28 12:27:49 1999  Arnold D. Robbins  <arnold@gnu.org>
393
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.
396
397Sun Apr 25 13:39:16 1999  Arnold D. Robbins  <arnold@gnu.org>
398
399	* Makefile.in (gawk): add $(CFLAGS) to linking step.
400	* configure.in: correctly do AC_FUNC_GETPGRP on HP systems too.
401
402Tue Apr 13 20:21:00 1999  Arnold D. Robbins  <arnold@gnu.org>
403
404	* BETA Release 3.0.43: Release tar file made.
405
406Tue Apr 13 19:02:20 1999  Arnold D. Robbins  <arnold@gnu.org>
407
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.
411
412Thu Feb  4 10:38:02 1999  Arnold D. Robbins  <arnold@gnu.org>
413
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.
417
418Sun Dec 20 16:57:38 1998  Arnold D. Robbins  <arnold@gnu.org>
419
420	* BETA Release 3.0.42: Release tar file made.
421
422Sun Nov 15 21:05:39 1998  Arnold D. Robbins  <arnold@gnu.org>
423
424	* io.c (gawk_popen): Add WIN32 to list of systems that use
425	  the non-real-pipe version. From the PC gawk guys.
426
427Wed Nov  4 11:32:24 1998  Arnold D. Robbins  <arnold@gnu.org>
428
429	* BETA Release 3.0.41: Release tar file made.
430
431Tue Nov  3 16:24:35 1998  Arnold D. Robbins  <arnold@gnu.org>
432
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.
438
439Sun Nov  1 15:24:52 1998  Arnold D. Robbins  <arnold@gnu.org>
440
441	* builtin.c (format_tree): improve handling of zero-fill
442	  when a precision is present. See test/zeroflag.awk.
443
444Wed Oct 28 20:40:17 1998  Arnold D. Robbins  <arnold@gnu.org>
445
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.
450
451Sun Oct 18 21:27:24 1998  Arnold D. Robbins  <arnold@gnu.org>
452
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'.
456
457Thu Oct  8 19:36:57 1998  Arnold D. Robbins  <arnold@gnu.org>
458
459	* BETA Release 3.0.40: Release tar file made.
460
461Mon Jul 27 10:14:33 1998  Arnold D. Robbins  <arnold@gnu.org>
462
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.
466
467Mon Apr 27 11:31:32 1998  Arnold D. Robbins  <arnold@gnu.org>
468
469	* main.c (usage): fix the email address for the bug list.
470	  (copyleft): update the copyright year.
471
472Mon Mar 23 21:22:32 1998  Arnold D. Robbins  <arnold@gnu.org>
473
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.
478
479Sun Mar 22 19:12:32 1998  Paul Eggert  <eggert@twinsun.com>
480
481	* aclocal.m4 (GAWK_AC_LARGE_FILES): new macro that checks for
482	  large file support, and updates CPPFLAGS, LDFLAGS, LIBS as
483	  needed.
484	* configure.in: call GAWK_AC_LARGE_FILES.
485	* Makefile.in (CPPFLAGS, LDFLAGS): Let autoconf configure.
486	(COMPFLAGS): Add $(CPPFLAGS).
487
488Mon Mar 16 14:06:41 1998  Arnold D. Robbins  <arnold@gnu.org>
489
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.
495
496Sun Nov 16 20:08:59 1997  Arnold D. Robbins  <arnold@gnu.org>
497
498	* builtin.c (sub_common): fix for count of matches in gsub
499	  from Geert.Debyser@esat.kuleuven.ac.be.
500
501Wed Oct 15 03:38:12 1997  Arnold D. Robbins  <arnold@gnu.org>
502
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).
508
509Sun Oct  5 11:56:52 1997  Arnold D. Robbins  <arnold@gnu.org>
510
511	* configure.in: if ISC add -D_SYSV3 to CFLAGS, per email from
512	  Mario Vanoni (vanonim@dial.eunet.ch).
513
514Fri Sep 26 00:57:49 1997  Arnold D. Robbins  <arnold@gnu.org>
515
516	* awk.y (append_right): return if either list is NULL. Prevents
517	  syntax errors from causing core dumps.
518
519Wed Sep 17 15:34:15 1997  Arnold D. Robbins  <arnold@gnu.org>
520
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.
525
526Mon Sep 15 16:12:55 1997  Arnold D. Robbins  <arnold@gnu.org>
527
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.
531
532Sun Sep 14 19:55:12 1997  Arnold D. Robbins  <arnold@gnu.org>
533
534	* node.c (format_val): always format values ourselves: avoids
535	  problems if OFMT is bizarre, like %s.
536
537Sun Sep 14 00:08:53 1997  Arnold D. Robbins  <arnold@gnu.org>
538
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!
543
544Sun Aug 17 07:15:12 1997  Arnold D. Robbins  <arnold@gnu.org>
545
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.
548
549Wed Aug  6 21:04:37 1997  Arnold D. Robbins  <arnold@gnu.org>
550
551	* io.c (VMS et al gawk_popen): use pclose, not fclose, if
552	  iop_alloc fails.
553
554Wed Jul 30 19:53:52 1997  Arnold D. Robbins  <arnold@gnu.org>
555
556	* awk.y [variable]: fix case for subscript if $3 == NULL.
557
558Sun Jul 27 22:47:30 1997  Arnold D. Robbins  <arnold@gnu.org>
559
560	* awk.y (get_src_buf): don't close file if it's stdin.
561
562Sun Jul 27 22:47:15 1997  Pat Rankin  <rankin@eql.caltech.edu>
563
564	* io.c (#if VMS: vmsrtl_fileno): new routine.
565	  (#if VMS: fileno): new macro substituted for stdio one.
566
567Thu Jul 17 20:05:59 1997  Arnold D. Robbins  <arnold@gnu.org>
568
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.
572
573Wed Jul 16 10:01:16 1997  Arnold D. Robbins  <arnold@gnu.org>
574
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>.
582
583Thu Jun 19 19:00:40 1997  Arnold D. Robbins  <arnold@gnu.org>
584
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.)
588
589Mon Jun  9 22:40:04 1997  Arnold D. Robbins  <arnold@gnu.org>
590
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.
595
596Thu May 15 12:49:08 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
597
598	* Release 3.0.3: Release tar file made.
599
600Wed May 14 08:06:08 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
601
602	* io.c (do_close): add lint warning if closing something that
603	  isn't open.
604
605Tue May 13 12:14:12 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
606
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.
611
612Sun May 11 14:48:04 1997  Darrell Hankerson  <hankedr@mail.auburn.edu>
613
614	* io.c [MSC_VER]: add cases for WIN32.
615	* regex.c [MSC_VER]: add cases for WIN32.
616
617Sun May 11 07:04:01 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
618
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.
623
624Wed May  7 15:09:25 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
625
626	* io.c (get_a_record): fix casetable indexing with cast to int.
627	  Keeps Michal happy.
628
629Tue May  6 16:40:19 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
630
631	* eval.c (func_call): removed unneeded variables.
632
633Mon May  5 21:17:37 1997  Pat Rankin  <rankin@eql.caltech.edu>
634
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
637	  the 9th.
638
639Mon May  5 06:33:47 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
640
641	* regex.h, regex.c: merge with current GLIBC version.
642
643Mon May  5 06:33:47 1997  Pat Rankin  <rankin@eql.caltech.edu>
644
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.
647
648Fri Apr 25 16:52:33 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
649
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.
655
656Thu Apr 24 22:39:23 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
657
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
667
668Wed Apr 23 22:14:14 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
669
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.
675
676Fri Apr 18 07:55:47 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
677
678	* BETA Release 3.0.34: Release tar file made.
679
680Tue Apr 15 21:35:45 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
681
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
689	  ifdef NONDECDATA.
690
691Tue Apr 15 06:32:50 1997  Pat Rankin  <rankin@eql.caltech.edu>
692
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.
699
700Wed Apr  9 22:45:27 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
701
702	* Makefile.in [COMPFLAGS]: per suggestion from Karl Berry, put
703	  $(CFLAGS) last.
704
705Tue Apr  8 23:54:46 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
706
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.
710
711Mon Apr  7 18:22:37 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
712
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.
723
724Fri Mar 28 08:42:27 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
725
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.
730
731Thu Mar 27 08:48:57 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
732
733	* custom.h [_SEQUENT_]: undef HAVE_MMAP.
734
735Wed Mar 26 09:08:16 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
736
737	* io.c (iop_alloc): fix definition to make it static.
738
739Mon Mar 24 23:09:07 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
740
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.
745
746Sun Mar 23 22:51:09 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
747
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.
756
757Tue Mar 18 20:57:18 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
758
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
762	  nasty memory leak.
763
764Tue Mar 18 06:33:00 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
765
766	* awk.y (dup_parms): robustified against parameter errors.
767
768Sun Mar 16 21:31:40 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
769
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.
779
780Sun Mar 16 21:28:56 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
781
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
788	  otherwise.
789	  (iop_close): if IOP_NOFREE_OBJ is set, don't free the IOBUF.
790
791Wed Feb 26 06:21:02 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
792
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.
799
800Fri Feb 21 06:23:19 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
801
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 %=.
805
806Wed Feb 19 23:29:02 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
807
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.
811
812Fri Feb 14 09:47:31 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
813
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.
818
819Tue Feb 11 06:28:29 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
820
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.
825
826Wed Feb  5 17:59:04 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
827
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
832	  parameter.
833
834Sun Jan 26 22:58:29 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
835
836	* getopt.h, getopt.c, getopt1.c: replaced with new versions from
837	  GLIBC 2.
838
839Sun Jan 19 23:37:03 1997  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
840
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
847	  side effects.
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
852	  Uwe Rommel.
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.
864
865Wed Jan  8 17:42:37 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
866
867	* io.c (mmap_get_record): Fix return value if file ends without
868	  record separator.
869
870Fri Jan  3 19:57:16 1997  Pat Rankin  <rankin@eql.caltech.edu>
871
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
874	  stat().
875
876Wed Dec 25 11:25:22 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
877
878	* Release 3.0.2: Release tar file made.
879
880Wed Dec 25 11:17:32 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
881
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.
885
886Mon Dec 23 20:36:59 1996  Pat Rankin  <rankin@eql.caltech.edu>
887
888	* custom.h (#if VMS_POSIX):  Define GETPGRP_VOID.
889
890Fri Dec 20 08:59:55 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
891
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.
896
897Thu Dec 19 22:52:39 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
898
899	* awk.y (yylex): In several places, after yyerror(), add call to
900	  exit(). Otherwise, infinite messages. This should probably
901	  be handled better.
902
903Wed Dec 18 22:42:10 1996  Darrel Hankerson  <hankedr@mail.auburn.edu>
904
905	* getopt.c (_getopt_internal): if 'W' and ';', if optind == argc,
906	  return c, don't fall through.
907
908Wed Dec 18 10:09:44 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
909
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.
914
915Tue Dec 17 22:23:16 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
916
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.
920
921Tue Dec 10 23:09:26 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
922
923	* Release 3.0.1: Release tar file made.
924
925Tue Dec 10 22:39:41 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
926
927	* Makefile.in (dist): add dependency on `info'. Remove line that
928	  does makeinfo.
929	  (install): use $(LN) not $(LN_S) to link gawk gawk-version.
930
931Sun Dec  8 07:53:44 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
932
933	* Makefile.in (gawk): took COMPFLAGS out of link line for help
934	  on VMS posix. Shouldn't (I hope) affect anything else.
935
936Thu Nov 28 11:52:24 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
937
938	* configure.in (AC_PROG_INSTALL): Set INSTALL to install-sh.
939
940Tue Nov 26 22:42:00 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
941
942	* PORTS: Updated list of systems.
943	* Makefile.in (install): Fix some typos and add some improvements
944	  for Ultrix.
945
946Sun Nov 24 22:16:26 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
947
948	* builtin.c (do_printf): if no args, fatal error. Return silently
949	  if --traditional.
950
951Thu Nov  7 20:54:43 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
952
953	* io.c (inrec): make sure EOF hasn't already happened before
954	  trying to read; prevents accessing freed buffer. Thanks to
955	  Michal Jaegermann.
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.
959
960Thu Nov  7 09:06:21 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
961
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
965	  constant.
966
967Mon Nov  4 12:57:11 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
968
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.
972
973Sun Nov  3 11:23:21 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
974
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.
980
981Fri Oct 25 10:13:06 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
982
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.
989
990Wed Oct 23 19:46:01 1996  Pat Rankin  <rankin@eql.caltech.edu>
991
992	* builtin.c (do_tolower, do_toupper): Add `unsigned char *' casts.
993
994Tue Oct 22 21:27:52 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
995
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
998	  things up.
999
1000Tue Oct 22 08:49:20 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1001
1002	* main.c (copyleft): update copyright date to 1996.
1003	  too many files to list: update copyright date to 1996.
1004
1005Sun Oct 20 12:21:09 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1006
1007	* awk.y, dfa.c, eval.c, io.c, re.c: added various FIXME comments.
1008
1009Sat Oct 19 22:06:42 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1010
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'.
1021
1022Fri Oct 18 09:00:49 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1023
1024	* regex.h [RE_SYNTAX_AWK]: add RE_CONTEXT_INDEP_ANCHORS.
1025
1026Thu Oct 17 22:32:55 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1027
1028	* aclocal.m4 [AM_SANITY_CHECK_CC]: added.
1029	* configure.in: use it.
1030
1031Thu Oct 17 21:43:25 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1032
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.
1038
1039Wed Oct 16 21:32:53 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1040
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.
1044
1045Wed Oct 16 21:22:08 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1046
1047	* Makefile.in [MISC]: removed TAGS and tags
1048	  (local-distclean): added TAGS and tags
1049	  (maintainer-clean): removed TAGS and tags
1050
1051Wed Oct 16 12:28:43 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1052
1053	* main.c (version): Add call to copyleft(), per new standards.
1054	  version.c: Fix text of version string to match new standards.
1055
1056Sun Oct  6 22:19:45 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1057
1058	* regex.c: updated to Emacs 19.34b base.
1059
1060Sun Oct  6 21:57:34 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1061
1062	* re.c (make_regexp): fixed to handle \8 and \9 in the middle
1063	  of a regexp.
1064
1065Fri Oct  4 10:26:16 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1066
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 `" "'.
1070	  Generally fixed up.
1071	* node.c (parse_escape): Allow single digit \x escapes.
1072
10731996-10-02  Paul Eggert  <eggert@twinsun.com>
1074
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.
1080
10811996-10-02  Paul Eggert  <eggert@twinsun.com>
1082
1083	* awk.h (INT_MAX): Remove unused symbol.
1084
1085Mon Sep 30 22:19:11 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1086
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.
1092
1093Sun Sep 29 23:04:54 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1094
1095	* builtin.c (sub_common): fix several bugs with gsub when
1096	  matching null strings. See test/gsubtest.awk.
1097
1098Fri Sep 20 17:35:54 1996  Pat Rankin  <rankin@eql.caltech.edu>
1099
1100	* alloca.c (NULL): don't define if <config.h> has already done so.
1101
1102Fri Sep 20 11:54:31 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1103
1104	* builtin.c (do_print): evaluate all the expressions first and
1105	  then print them. Avoids surprising behavior. See test/prtoeval.awk
1106	  for an example.
1107
1108Tue Sep 10 06:21:40 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1109
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
1117	  all syntax errors.
1118
1119Sun Sep  1 19:36:30 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1120
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
1124	  unref-ing field 0.
1125
1126Wed Aug 28 19:13:34 1996  Arnold D. Robbins  <arnold@math.utah.edu>
1127
1128	* eval.c (set_IGNORECASE): Correctly parenthesize bit operations
1129	  in test and fix logic for string value.
1130
1131Wed Aug 28 22:06:33 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1132
1133	* main.c (usage): add email addresses for bug reporting, per
1134	  change in GNU Coding Standards from RMS.
1135
1136Sun Aug 11 23:13:22 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1137
1138	* Makefile.in (install): correct use of $(INSTALL_PROGRAM).
1139
1140Thu Aug  8 23:29:43 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1141
1142	* parse.y (isassignable): new function, checks in type can
1143	  be assigned to.
1144	  (snode): changed checking for 3rd arg of gsub to be more
1145	  general, supersedes earlier change.
1146
1147Thu Aug  8 13:58:26 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1148
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().
1153
1154Thu Aug  1 07:13:14 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1155
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
1161	  was on.
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.
1164
1165Mon Jul 29 17:49:07 1996  Pat Rankin  <rankin@eql.caltech.edu>
1166
1167	* io.c (O_ACCMODE): define it if <fcntl.h> doesn't.
1168
1169Mon Jul 29 12:02:48 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1170
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
1173	  for the bug report.
1174
1175Fri Jul 26 12:04:43 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1176
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.
1185
1186Mon Jul 22 21:59:15 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1187
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.
1193
1194Thu Jul 18 19:43:20 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1195
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.
1200
1201Thu Jul 18 19:23:53 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1202
1203	* custom.h: added ifdef for QNX, based on bug report from
1204	  Michael Hunter, mphunter@qnx.com.
1205
1206Mon Jul 15 09:31:01 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1207
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).
1212
1213Sun Jul 14 18:40:26 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1214
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.
1218
1219Sun Jul 14 18:08:01 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1220
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.
1226
1227Sun Jul 14 06:34:18 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1228
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
1231	  the fields valid.
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.
1235
1236Thu Jul 11 23:04:20 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1237
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)'
1243	  anyway.
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
1246	  Chapman Flack.
1247
1248Thu Jul 11 22:17:14 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1249
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.
1255
1256Sun Jul  7 15:47:13 1996  Arnold D. Robbins  <arnold@infographix.com>
1257
1258	* main.c (main): made `--posix' turn on interval expressions.
1259	  Gawk now matches its documentation. (What a concept!)
1260
1261Wed Jul  3 15:02:48 1996  Arnold D. Robbins  <arnold@infographix.com>
1262
1263	* regex.h, regex.c: upgraded to changes from Emacs 19.31.
1264
1265Fri May 17 08:46:07 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1266
1267	* io.c (get_a_record): added `continued' flag. Fix from
1268	  Darrell Hankerson for when RS = "\n|something".
1269
1270Wed May 15 02:34:55 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1271
1272	* Makefile.in (awklib/all): now depends on gawk, fixes problem
1273	  with parallel make.
1274
1275Tue May 14 15:02:52 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1276
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.
1280
1281Sun May 12 20:42:06 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1282
1283	* eval.c (r_get_lhs): case Node_subscript. Check if array name
1284	  is actually a function, fatal error if so.
1285
1286Sun May  5 10:11:52 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1287
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).
1290
1291Fri Mar 15 06:38:33 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1292
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
1297	  other stuff.
1298
1299Wed Mar 13 14:19:38 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1300
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.
1305
1306Sun Mar 10 22:50:23 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1307
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>.
1312
1313Thu Mar  7 08:08:51 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1314
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.
1326
1327Mon Mar  4 09:02:28 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1328
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.
1332
1333Mon Feb 26 22:24:44 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1334
1335	* builtin.c (sub_common): if no match, and called from gensub,
1336	  don't free the temporary string, since the tmp_number then
1337	  writes over it.
1338
1339Sun Feb 25 23:13:01 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1340
1341	* builtin.c (format_tree): fixed %c to treat user input as
1342	  numeric also by adding test for MAYBE_NUM.
1343
1344Tue Feb 20 12:25:50 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1345
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.
1354
1355Thu Feb  1 08:56:46 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1356
1357	* builtin.c (do_substr): fixed lint message to use indx+1 when
1358	  start position is past end of string.
1359
1360Sun Jan 28 07:00:56 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1361
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.
1365
1366Thu Jan 25 14:09:11 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1367
1368	* builtin.c (do_substr): if length exceeds length of actual
1369	  string, do computation of needed substring length *after*
1370	  the lint warning.
1371
1372Wed Jan 24 10:06:16 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1373
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).
1383
1384Mon Jan 22 13:16:37 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1385
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.
1391
1392Fri Jan 19 08:10:29 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1393
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,
1397	  a phone number.
1398
1399Wed Jan 10 23:19:36 1996  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1400
1401	* 3.0.0 polished up and release tar file made.
1402
1403Wed Dec 27 11:46:16 1995  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1404
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).
1407
1408Mon Aug 28 23:04:30 1995  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1409
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.
1414
1415Mon Aug 25 11:04:30 1995  Arnold D. Robbins  <arnold@skeeve.atl.ga.us>
1416
1417	* 2.90.0 released to porting group.
1418
1419Fri Aug 18 12:43:31 1995  Arnold D. Robbins  <arnold@puny.ssc.com>
1420
1421	* ChangeLog created.
1422