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