diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 9888 |
1 files changed, 5 insertions, 9883 deletions
@@ -1,9885 +1,7 @@ -Mon Jun 20 20:33:26 2011 Arnold D. Robbins <arnold@skeeve.com> +2011-06-23 Arnold D. Robbins <arnold@skeeve.com> - * dfa.c (dfaanalyze): Allocate the right number of leaves to - avoid crashes. Thanks to Jim Meyering. - -Mon Jun 20 20:22:35 2011 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (setbit_c, setbit_case_fold_c): Compare btowc result against - WEOF. Thanks to Eli Zaretskii for pointing out the problem. - -Mon Jun 20 20:22:26 2011 Pat Rankin <rankin@pactechdata.com> - - * dfa.c (addtok_wc): enclose prototype within #if MBS_SUPPORT. - -Fri Jun 17 11:09:22 2011 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.86: Final beta test tar ball for 4.0. - -Fri Jun 17 10:55:27 2011 Arnold D. Robbins <arnold@skeeve.com> - - Implement Rational Range Interpretation (RRI) directly in code. - - * regex.h [RE_RANGES_IGNORE_LOCALES]: Remove macro and its use. - * dfa.c (parse_bracket_exp): Remove use of RE_RANGES_IGNORE_LOCALES - and just do it in code. - (hard-locale.h): Remove include. - (hard_LC_COLLATE): Remove variable and its uses. - * re.c (resetup): Remove use of RE_RANGES_IGNORE_LOCALES. - * regcomp.c (build_range_exp): Remove use of RE_RANGES_IGNORE_LOCALES - and just do it in code. Remove cmp_buf array; it's no longer needed. - * Makefile.am (base_sources): Remove hard_locale.h and hard_locale.c. - * hard_locale.h, hard_locale.c: Removed from dist. - -Sun Jun 12 23:43:06 2011 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (resetup): Always turn on RE_RANGES_IGNORE_LOCALES. - Add justifying comment with URLs for the relevant portions of - POSIX. Thanks to Paul Eggert for pointing out the happy change - to the rules and supplying the URLs. - -Wed Jun 8 22:41:30 2011 Arnold D. Robbins <arnold@skeeve.com> - - * regcomp.c (build_range_exp): Add check for RE_NO_EMPTY_RANGES - from GNULIB regcomp.c, courtesy of GNU grep. - -Wed Jun 8 22:10:03 2011 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Sync with GNU grep. - -Sun Jun 5 21:49:30 2011 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.85: Fourth beta test tar ball for 4.0. - -Sun Jun 5 21:39:17 2011 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (fpat_parse_field): Bug fix. Thanks to - "Radoulov, Dimitre" <cichomitiko@gmail.com> for pointing - out the problem. - -Fri Jun 3 10:39:17 2011 Arnold D. Robbins <arnold@skeeve.com> - - * regcomp.c (build_range_exp): Make syntax the first argument, - for compatibility with gnulib version of the file. - -Wed Jun 1 06:29:27 2011 Pat Rankin <rankin@pactechdata.com> - - * re.c (check_bracket_exp): Fix typo. - -Tue May 31 23:01:00 2011 John Haque <j.eh@mchsi.com> - - * re.c (check_bracket_exp): Use mem* routines instead of str* - for searching. - * main.c (arg_assign): Disallow builtin or user-defined function - as the name of a variable. - * awkgram.y (check_special): Rework so can be called from - arg_assign. - -Tue May 31 22:23:41 2011 Arnold D. Robbins <arnold@skeeve.com> - - In order to attain the goal of having ranges act like they are - always in the C locale, bit the bullet and did the work in - the regex and dfa engines. The pre-processing routine was not - handling too many cases that a full regexp parser would catch. - - * regex.h [RE_RANGES_IGNORE_LOCALES]: New syntax bit. - (RE_SYNTAX_GNU_AWK): Use it. - * dfa.c (parse_bracket_exp): If the RE_RANGES_IGNORE_LOCALES - is set, ignore locales when building a range. - * re.c (expand_range): Remove function and declaration. - (add_char): Remove function and declaration. - (make_regexp): Remove use of expand_range. - (resetup): Add RE_RANGES_IGNORE_LOCALES if --traditional. - * regcomp.c (build_range_exp): Add syntax variable as last argument. - Add code to check for RE_RANGES_IGNORE_LOCALES and do the right thing. - Adjust all calls. - -Sun May 29 22:48:41 2011 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (expand_range): Handle cases where expanded range - includes '\\' (and ']'). Thanks to Juergen Daubert <jue@jue.li>. - Fatal error if end point is below start point ([z-a]), - thanks to John Haque. Don't repeat the last character in - the expansion. Thanks to Arnold Robbins. - -Fri May 27 10:01:17 2011 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.84: Third beta test tar ball for 4.0. - -Thu May 26 22:10:08 2011 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (get_field): Enhance logic for setting NF if we're - using FPAT to parse fields. Can end up with weird cases. Thanks - to Pat Rankin for pointing them out. - -Mon May 23 22:06:13 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y: Allow newline after comma in range patterns, - per POSIX. Thanks to discussion in comp.lang.awk. (!!!) - -Mon May 23 22:02:46 2011 John Haque <j.eh@mchsi.com> - - * ext.c (get_actual_argument): Change argument type from - Node_var_new to Node_var when used as a scalar. - -Sun May 22 11:56:40 2011 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (varinit): Give FPAT a reasonable default value. - * field (get_field): Adjust test for at end of record to >=; - fpat_parse_field can go beyond when matching null regexps. - Thanks to Pat Rankin. - -Fri May 20 11:00:17 2011 Arnold D. Robbins <arnold@skeeve.com> - - * regex_internal.h (__attribute_warn_unused_result__): Always - ifdef out. Bleah. - -Thu May 19 17:13:18 2011 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.83: Second beta test tar ball for 4.0. - -Thu May 19 16:47:19 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (dump_vars): Fix warning message. Thanks to Pat Rankin. - * main.c (usage): No space allowed after -d and -p. Also thanks - to Pat Rankin. - -Thu May 19 16:34:04 2011 Pat Rankin <rankin@pactechdata.com> - - * regex_internal.h (__attribute_warn_unused_result__): Define with - empty expansion for !__GNUC__ configuration. - -Wed May 18 22:13:18 2011 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.82: Beta test tar ball for 4.0, we hope! - -Wed May 18 21:47:54 2011 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (PIPES_SIMULATED): Simplify the case where PIPES_SIMULATED - is true but using temporary files - that code not needed anymore. - * regcomp.c, regex.h, regex_internal.c, regex_internal.h, - regexec.c: Sync with GLIBC. Why not. - -Mon May 16 17:55:25 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.c: Regenerated using bison 2.5. - -Sat May 14 22:25:50 2011 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (nextfile): Use `in_array' in main loop to see if element - of ARGV exists, instead of using `assoc_lookup'. The latter creates - the element! A day one bug! - * dfa.c (parse_bracket_exp): For z/OS init pattern manually. - -Mon May 9 16:30:49 2011 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (sort_up_value_type): Remove unused variable ret. - (do_delete): Initialize local variables to silence warnings. - Thanks to Michal Jaegermann. - -Mon May 9 15:07:29 2011 Corinna Vinschen <vinschen@redhat.com> - - * awk.h: Remove cygwin code for libsigsegv. - -Sun May 8 20:38:03 2011 John Haque <j.eh@mchsi.com> - - * eval.c (r_interpret): In case Op_sub_array, store only the - subarray index as 'vname'. - * array.c (make_aname): Redone for dynamic computation of - a subarray actual 'vname'. - (array_vname): Use make_aname() for (sub)array name. - (asort_actual): Performance optimization for asort(a). - -Sun May 8 20:29:17 2011 Arnold D. Robbins <arnold@skeeve.com> - - * debug.c (print_array): Sort in order of string indices, per - request from John Haque. - * array.c (sort_up_value_number): Use string value to provide - ordering when numeric values are equal. Ensures that tests come - out OK on different systems. - -Sun May 8 20:27:27 2011 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Sync with GNU grep. - * regex.h: Sync with GLIBC in preparation for submitting updates - back. - -Thu May 5 21:22:44 2011 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (r_interpret): PROCINFO sorting only takes effect - if not do_posix. - -Wed May 4 23:31:14 2011 Arnold D. Robbins <arnold@skeeve.com> - - Move array sorting to using predefined strings, add value sorting - by type of assignment. - - * array.c (sort_up_value_type, sort_down_value_type): New routines. - (asort_actual): Pass string value to assoc_list, not NODE *. - Make sure indices of new arrays have numeric value set also. - (sort_up_value_number): Don't break the tie based on string value. - (sort_selection): Removed. - (assoc_list): Third arg is string constant. Add name to table of - functions. Linear search it. - * awk.h (assoc_list): Fix declaration. - * debug.c (print_array): And use of assoc_list. - * eval.c (r_interpret): Ditto. - -Wed May 4 23:06:17 2011 John Haque <j.eh@mchsi.com> - - * eval.c (setup_frame): Handle a Node_var in stack. Fixes - a problem when a Node_var_new as param becomes Node_var during - expresssion evaluation for a subsequent param. - -Wed May 4 23:04:06 2011 John Haque <j.eh@mchsi.com> - - Fix the problem (crash) with disappearing array argument when - it is a subarray of another deleted array argument. - - * awk.h (struct exp_node): Nuke unused field sub.nodep.number. - New field sub.nodep.rn. - (parent_array): New definition for sub.nodep.rn to keep track - of the parent of a subarray. - * awkgram.y (mk_symbol): Initialize parent_array to NULL. - * eval.c (r_interpret): In the case Op_sub_array, assign - parent_array. - * array.c (get_array): Initialize parent_array to NULL when - a Node_var_new becomes a Node_var_array. - (assoc_find): Add a fourth argument for the previous node - of the returned bucket. - (in_array, assoc_lookup): Adjust calls to assoc_find(). - (adjust_fcall_stack): New routine to change a soon-to-be deleted - subarray parameter in the function call stack to a local array. - (do_delete): Simplify code, remove recursive usage. Call - adjust_fcall_stack() where appropriate. - (do_delete_loop): Call adjust_fcall_stack() before clearing the - array. - (asort_actual): Don't accept an array and its subarray as - arguments for asort() or asorti(). - (asort_actual, dup_table): For asort(), appropriately assign - parent_array when creating the result array. - * field.c (do_split, do_patsplit): An array and its subarray not - accepted for the second and the fourth arguments. Remove - unnecessary dupnode of the field seperator node. - - Unrelated: - * awkgram.y (LEX_DELETE, simple_variable): Change type argument - from Node_var_array to Node_var_new for calls to variable(). - * io.c (devopen): Fix parsing GAWK_MSEC_SLEEP env variable. - -Mon May 2 23:44:34 2011 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (parse_bracket_exp): Sync with GNU grep, since we - now require C 90, go ahead and put non-constant values into - the array initializers. - -Mon May 2 23:37:09 2011 Corinna Vinschen <vinschen@redhat.com> - - * awk.h (small): Undef after include of <sigsegv.h> to compile - builtin.c on Cygwin. - -Fri Apr 29 12:29:56 2011 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Sync with GNU grep, mainly typos in comments. - -Fri Apr 29 12:13:32 2011 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (inetfile): Change ifdef to ifndef for have getaddrinfo. - Ooops. - -Fri Apr 29 11:49:38 2011 Arnold D. Robbins <arnold@skeeve.com> - - Per Pat Rankin, remove code related to GFMT_WORKAROUND and VAXCRTL. - - * builtin.c (sgfmt): Nuked. - (format_tree): Removed code related to GFMT_WORKAROUND and VAXCRTL. - * node.c (format_val): Revise comment. - -Fri Apr 29 11:33:08 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (NUMIND): New flag, indicates numeric value of an - array index is current. - * array.c (awk_hash): Remove code for VAXC, it's no longer - needed. Per Pat Rankin. - (assoc_lookup): Only assign the numeric value if it's available. - (do_delete): Add comment about free_subs calling force_string. - (sort_force_index): Use NUMIND. - -Fri Apr 29 10:15:24 2011 John Haque <j.eh@mchsi.com> - - * builtin.c: Relocate all codes from awkprintf.h. Restore - format_tree. - * debug.c (do_print_f): Adjust appropriately. Install fatal trap - for format_tree. - * Makefile.am (base_sources): Remove awkprintf.h. - - * array.c (assoc_list): Avoid possible crash; Remove unneeded - initialization of pre_func. - -Wed Apr 27 22:31:23 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (ahash_dupnode): Merged into dupnode in node.c, change uses. - * array.c (ahash_unref): Merged into unref in node.c, change all uses. - * node.c (dupnode): Revised to support Node_ahash. - (unref): Ditto. - - Lots of code clean up in array.c: - - * array.c (AVG_CHAIN_MAX): Made unsigned. - (array_init): Use strtoul to convert value instead of doing it - manually. - (array_vname): Nuke code that could limit length of name. It - was never used. - (concat_exp): Make len unsigned, clean up the calculation. - (assoc_lookup): Set ahname_num in the index at time of element - creation. - (dup_table): Copy ahname_num also. - Other minor cleanups after code review. - -Sun Apr 24 15:39:19 2011 Arnold D. Robbins <arnold@skeeve.com> - - * NEWS.0: Moved all pre-4.0 news to here. - * NEWS: Shortened. - * Makefile.am (EXTRA_DIST): Add NEWS.0. - -Sun Apr 24 12:43:49 2011 John Haque <j.eh@mchsi.com> - - * array.c (sort_user_func): Fix return value to match the - documentaion. - (sort_selection): Make user-specified comparison function with - the same name override default "unsorted" specification. - -Fri Apr 22 16:05:27 2011 John Haque <j.eh@mchsi.com> - - * array.c (sort_user_func): New routine to handle user-defined - quicksort comparison function. - (assoc_list): Adjust for user-defined comparison function. - -Fri Apr 22 09:18:16 2011 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (awk_hash): Force results into 32 bits for consistency - across platforms. Keeps the test suite happy. This may turn out - to be a bad idea in the long run. - -Mon Apr 18 10:18:26 2011 John Haque <j.eh@mchsi.com> - - * array.c (assoc_list): New function to construct, and optionally - sort, a list of array elements. - (asort_actual): Use the new function to sort array elements. - (assoc_sort_inplace, assoc_from_list, merge_sort, merge): Nuked. - (sort_selection): Simplify handling of error and warning messages. - (sorted_in, sort_match): Nuked, related code in sort_selection() and - assoc_list(). - (sort_ignorecase, sort_up_index_ignrcase, sort_down_index_ignrcase, - sort_maybe_numeric_index, sort_cmp_nodes, cmp_func, sort_up_value, - sort_down_value): Nuked. Ignorecase handling done in the corresponding - non-ignorecase versions. - (cmp_string): New routine for string comparisons. - (sort_up_value_string, sort_down_value_string, sort_up_value_number, - sort_down_value_number, sort_force_index_number, - sort_force_value_number, sort_force_value_string): New routines. - * awk.h (struct exp_node): New field sub.hash.num to store the - numeric value of an array index. - (ahname_num): New define. - (SORT_CTXT): New typedef. - * awkgram.y (tokentab): Accept three args for asort() and asorti(). - (snode): Adjust for the extra args. - * eval.c (r_interpret): In case Op_arrayfor_init, call assoc_list() - for a list of array elements. - * debug.c (print_array): Call assoc_list() for a sorted list of array - elements. - -Wed Apr 13 10:17:37 2011 John Haque <j.eh@mchsi.com> - - * builtin.c (do_strftime): Make the third argument to strftime - really work. - * io.c (redirect): Do not free `rp' after failure to open socket - in redirect_twoway. Fixes a double-free memory error. - -Thu Apr 7 21:38:08 2011 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (merge): Use sort_cmp_nodes for asort/asorti. - See test/arraysort.awk test 1. - -Thu Apr 7 10:48:21 2011 Pat Rankin <rankin@patechdata.com> - - * array.c (sort_cmp_nodes): New routine. Unlike cmp_nodes, numbers - are less than strings instead of being formatted and then compared. - (sort_up_value): Use it. - -Sun Apr 3 22:18:26 2011 Arnold D. Robbins <arnold@skeeve.com> - - * README, FUTURE: Minor edits. - -Fri Apr 1 11:53:54 2011 Pat Rankin <rankin@patechdata.com> - - * array.c (sort_up_index_number): Fix the NODE arguments passed to - sort_up_index_string() when a tie breaker is needed. - -Fri Apr 1 11:49:17 2011 Arnold D. Robbins <arnold@skeeve.com> - - Change ISATTY macro to os_isatty function. - - * awk.h (ISATTY): Remove definition. - (os_isatty): Add declaration. - * debug.c, io.c, main.c: Change all calls. - -Thu Mar 31 22:57:36 2011 Arnold D. Robbins <arnold@skeeve.com> - - * Checklist: Updated. This is a git-only file. - * POSIX.STD: Revised some. - -Tue Mar 29 20:52:38 2011 John Haque <j.eh@mchsi.com> - - * awkgram.y (LEXT_NEXT): Don't issue an error message if the next - statement is in a function (rule = 0). - - Always resolve the jump target for an exit statement at run-time. - This fixes a bug when the statement occurs in a function. - - * awk.h: New defines target_atexit and target_end. - * awkgram.y (LEX_EXIT): Initilize the jump targets. - * eval.c (r_interpret): Use current rule to choose the jump target - for Op_K_exit. - * debug.c (print_instruction): Adjust case Op_K_exit. - -Tue Mar 29 20:45:49 2011 Pat Rankin <rankin@patechdata.com> - - Move the code to support sorting `for (index in array)' from - eval.c to array.c, and implement several additional orderings. - - * array.c (comp_func, sorted_in, sort_ignorecase, - sort_up_index_ignrcase, sort_down_index_ignrcase): Move from eval.c. - (sort_up_index_string, sort_down_index_string): Move from eval.c - and rename from *_str to *_string. - (sort_selection, sort_match, sort_maybe_numeric_index, - sort_up_index_number, sort_down_index_number, - sort_up_value, sort_down_value): New routines. - * eval.c (sort_&c): Move to array.c. - (r_interpret: case Op_arrayfor_init): Call sort_maybe_numeric_index - before and after qsort. - * awk.h (qsort_compfunc): New typedef. - (sorted_in, sort_maybe_numeric_index): Declare. - -Fri Mar 25 13:15:36 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h: Move libsigsegv portability checks to here from main.c. - * eval.c (fcall_list, fcall_count): Move definitions to here - from main.c. - * io.c (do_find_source): Check against NULL in for loop. - * main.c: Lots of cleanup. Move some things out to other files, - add comments to some variable definitions. - (enum asgntype): To assign_type - (main): Remove decls of getopt variables, clean up comments. - Use emalloc and efree for libsigsegv stack. Remove check for SCCS - leading magic characters. - (add_preassign): Change allocassigns to alloc_assigns. - (init_locale): Change strdup calls to estrdup. - (save_argv): Make the routine static. - * version.in (version_string): Remove leading 4 SCCS magic characters. - -Wed Mar 2 08:15:02 2011 John Haque <j.eh@mchsi.com> - - * array.c (asort_actual): Handle the case when the same array - is used as the source and destination. - * field.c (do_split): Make it fatal if attempting to use the same - array for both second and fourth arguments. - (do_patsplit): Ditto. - -Sun Feb 27 08:01:04 2011 Arnold D. Robbins <arnold@skeeve.com> - - Update copryright in all relevant files. - -Sat Feb 26 21:54:07 2011 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (sorted_in): Revise text of lint warning. - -Fri Feb 25 17:34:14 2011 Pat Rankin <rankin@patechdata.com> - - * eval.c (sorted_in): Remove incorrect unref() call. - -Wed Feb 23 21:48:20 2011 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main): Free extra_stack, to make valgrind happier. - -Tue Feb 22 12:04:09 2011 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (UPDATE_YEAR): Move to 2011. Fix copyright. - -Tue Feb 15 17:11:26 2011 Pat Rankin <rankin@pactechdata.com> - - * eval.c (sorted_in, sort_up_index_str, sort_down_index_str, - sort_up_index_ignrcase, sort_down_index_ignrcase, sort_ignorecase): - New functions to sort arrays for `for (index in array)' statements. - (r_interpret: case Op_arrayfor_init): Call sorted_in(). - -Wed Feb 16 07:12:50 2011 John Haque <j.eh@mchsi.com> - - Fix line numbers in the lint, warning and error messages issued - by the parser. - - * awkgram.y (lintwarn_ln, warning_ln, error_ln): New local versions, - each accepts an additional line number argument. - (print_included_from): New function to seperate 'Included from ..' - message from yyerror. Use it in yyerror, and in the new functions. - (grammar): Use the local versions for messages. - (add_srcfile, include_source, dup_parms, func_install, param_sanity, - mk_binary, add_lint): Ditto. - (dup_params, include_source): Adjust arguments to pass line number. - * awk.h: New definition ATTRIBUTE_PRINTF_2. - - * awkgram.y (yylex): New variable warntab. Use it to issue only one - warning for the same non-standard special token in source. - (parse_program): Avoid spurious warnings. Don't call check_funcs if - yyparse aborts prematurely. - -Mon Feb 14 08:03:41 2011 John Haque <j.eh@mchsi.com> - - * awkgram.y (regexp): Don't use tokstart in lint warning, it isn't - `\0' terminated. - (grammar): Copy update and assign routines from relevant variables into - instructions to avoid extra pointer dereferencing at run-time. - * awk.h (update_var, assign_var): new definitions. - * eval.c (r_interpret): Adjust cases Op_var_assign and Op_var_update. - -Sun Feb 13 20:22:47 2011 Eli Zaretskii <eliz@gnu.org> - - * awkgram.y (add_srcfile): - * debug.c (source_find): Pass `path' and `src' to files_are_same. - * gawkmisc.c [__DJGPP__ || __MINGW32__]: Include pc/gawkmisc.pc, - for consistency with __EMX__ and pc/Makefile. - * debug.c (interpret, initialize_pager, prompt_continue) - (set_gawk_output): Use ISATTY instead of isatty. - * io.c (redirect, iop_alloc): Same. - * main.c (main): Same. - * awk.h (ISATTY): Trivial definition, if not defined elsewhere. - -Sun Feb 13 20:16:04 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (check_funcs): Update warning about never called to say - "never called directly" since it could be called indirectly. - -Sun Feb 13 07:12:50 2011 John Haque <j.eh@mchsi.com> - - * profile.c (pprint): In case Op_indirect_func_call, pop off - indirect var after function parameters. - Thanks to Hermann Peifer <peifer@gmx.eu> for the bug report. - * array.c (do_delete): Always free an empty sub-array name and node. - * ChangeLog: Fix typos. - -Fri Feb 11 10:26:25 2011 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (remad_std_file): Close oldfd first, in case we've - run out of fd and do dup2 if the newfd isn't what we were - looking for. Thanks to Hermann Peifer <peifer@gmx.eu> for - the bug report. - -Thu Feb 10 21:31:36 2011 Andreas Buening <andreas.buening@nexgo.de> - - * main.c (load_procinfo): Fix warning about unsed variables if we - don't have multiple groups. - * protos.h: Move decls for many standard functions here if - they aren't in the header files (OS/2) and bracket inside - #ifndef STDC_HEADERS. - * io.c (devopen): Remove decl of strtoul. - * field.c (set_FIELDWIDTHS): Same. - * awk.h: Always include protos.h. - -Tue Feb 8 22:46:22 2011 Arnold D. Robbins <arnold@skeeve.com> - - * array.c, builtin.c, eval.c: Equalize message strings and - fix a typo. Thanks to Benno Schulenberg <bensberg@justemail.net>. - -Mon Feb 7 11:23:33 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (next_sourcefile): Comment out assertion that - lexeof is true; causes core dump on user typos of bad - characters which previous versions did not do. Thanks to - Pat Rankin for the report. - - * re.c (expand_range): Allow for ^ as first character - inside range. Thanks for Nelson Beebe for the bug report. - -Fri Feb 4 10:28:19 2011 Arnold D. Robbins <arnold@skeeve.com> - - * README.cvs: Udpated. - * Checklist: New file for storage in the git repository. - -Wed Feb 2 20:34:41 2011 Corinna Vinschen <vinschen@redhat.com> - - * awkgram.y (free_bc_internal): Remove unused variable. - -Tue Feb 1 23:13:10 2011 Arnold D. Robbins <arnold@skeeve.com> - - * bootstrap.sh: No need to find aclocal.m4, just touch it. - -Tue Feb 1 23:05:51 2011 Corinna Vinschen <vinschen@redhat.com> - - Make values of ctype macros into unsigned char to fix - warnings found on Cygwin / Newlib. - - * array.c (array_init): Add cast. - * awkgram.y: Ditto. - * awkprintf.h: Ditto. - * builtin.c (sub_common, nondec2awknum): Ditto. - * command.y: Ditto. - * eval.c (fmt_ok): Ditto. - * ext.c (make_builtin): Ditto. - * main.c (main, arg_assign): Ditto. - * re.c (check_bracket_exp): Ditto. - * node.c (r_force_number, parse_escape): Ditto. - (dump_wstr): Add unused attribute (unrelated). - -Tue Feb 1 23:01:40 2011 John Haque <j.eh@mchsi.com> - - Fix switch debugging. - - * awkgram.y (LEX_SWITCH, case_statements, case_statement, - case_value): Linearize instructions to facilitate debugging. - (switch_body): Removed. - (yylex): Add LEX_CASE in special token processing. - (free_bc_internal): Remove case Op_K_switch. - * awk.h (OPCODE): Remove opcode Op_case_list. - * eval.c (r_interpret): Remove Op_K_switch. Add case - Op_K_case to handle switch. - Add cases Op_K_do, Op_K_while, Op_K_for, Op_K_arrayfor, Op_K_switch - and Op_K_default as no-ops, needed for pgawk. - * debug.c (print_instruction): Remove case Op_K_switch, - add case Op_K_case instead. - - Unrelated: - * awkgram.y (case_statements): As case values, "abc" and /abc/ - no longer considered as duplicates. - - Cleanup grammar and run-time code for switch and loops. - Jump targets for break and continue are now fixed, and known - at parse time. See ChangeLog entry dated Oct 21, 2010. - - * awk.h (OPCODE): Remove Op_push_loop and Op_pop_loop. - (loop_count): Remove definition. - * awkgram.y (fix_break_continue): Change calling parameters to - instruction list, break and continue targets. Adjust code. - (LEX_DO, LEX_WHILE, LEX_SWITCH, LEX_FOR): Simplify grammar. Use - Op_no_op as target for break. Adjust call to fix_break_continue. - (mk_for_loop): Ditto. - * eval.c (r_interpret): Nuke cases Op_push_loop and Op_pop_loop. - Simplify Op_K_break and Op_K_continue. Remove declaration of in_loop - and all loop detection code thereof. - * debug.c (pre_execute, post_execute): Adjust declarations and code. - (print_instruction): Nuke cases Op_push_loop and Op_pop_loop. - * eval.c (r_interpret): Adjust calls to pre_execute and post_execute. - * profile.c (pprint): Adjust cases Op_K_for, Op_K_do, Op_K_while, - Op_K_switch and Op_K_arrayfor. Add cases Op_K_case and Op_K_default. - Remove Op_push_loop and Op_pop_loop. - - Unrelated cleanup: - * awkgram.y (mk_condition): Don't include Op_K_if, Op_K_else and - Op_cond_exp if not profiling. - -Tue Feb 1 10:20:02 2011 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (r_interpret): Change magic string for array sorting. - -Sun Jan 30 21:49:53 2011 John Haque <j.eh@mchsi.com> - - Add `isarray' built-in function. - - * awk.h (enum opcodeval): Op_push_arg: new opcode. - (do_isarray): Add declaration. - * awkgram.y (tokentab): Add new entry for `isarray' function. - (snode): Add handling for it. - * builtin.c (do_isarray): New function. - (do_length): Die if posix and get an array argument. - * debug.c (print_instruction): Handle Op_push_arg. - * profile.c (pprint): Likewise. - * eval.c (optypes, r_interpret): Likewise. - -Sun Jan 30 21:13:01 2011 Arnold D. Robbins <arnold@skeeve.com> - - * hard-locale.h: Synced to GNU grep. - * hard-locale.c: New file, brought in from GNU grep. - * Makefile.am (base_sources): Add hard-locale.c. - * dfa.h: Sync as much as possible to GNU grep. - * dfa.c: Sync as much as possible to GNU grep. - * builtin.c (do_strftime): Remove unneeded variable. - -Thu Jan 27 22:52:54 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (comp_func): Add declaration. - * debug.c (comp_func): Make not static, and move to ... - * eval.c (comp_func): ... here. - (r_interpret): Add array sorting if magic index is - set in PROCINFO. - -Thu Jan 27 22:12:00 2011 Corinna Vinschen <vinschen@redhat.com> - - * Makefile.am: Remove $(EXEEXT) from 'awk' symlink. - -Thu Jan 27 21:21:13 2011 John Haque <j.eh@mchsi.com> - - * eval.c (r_interpret): When in BEGINFILE or ENDFILE, add check for - `getline var < file' in cases Op_K_getline_redir and Op_K_getline. - - * awkgram.y (constant_fold): Code cleanups. Fix bug in the code for - string concatenation. - - * configure.ac: Remove unneeded extra call to AC_LANG. - -Thu Jan 27 15:00:42 2011 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c: Fix up some comments. - * io.c (remap_std_file): New function. - (iop_close): Use it. - -Mon Jan 24 22:14:21 2011 Andreas Buening <andreas.buening@nexgo.de> - - * debug.c: Bracket variables used with readline in #ifdef. - * dfa.c (add_utf8_anychar): Move inside ifdef. - -Mon Jan 24 22:05:26 2011 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (make_regexp): Add separate variable for dfa syntax. - General formatting cleanup. - (research): General formatting cleanup. - (refree): Remove out of date comment. - (re_update): Comment the routine. - (check_bracket_exp): Improve check for range to not get [^-/] - kinds of things. Thanks to Nelson Beebe for pointing out the bug. - -Wed Jan 19 20:31:17 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (is_valid_character): Add `& 0XFF' and remove casts to - unsigned chars in other files. Remove definition of this macro - in not MBS_SUPPORT case, since it wasn't being used. - (btowc_cache): New macro to index into the array and use the - same trick. Relies on ANSI C preprocessor semantics. - Fix all uses. - * builtin.c, node.c, io.c: Fix uses of these macros. - -Wed Jan 19 20:19:29 2011 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (wstr2str): New function. - * awk.h: Declare it. - * builtin.c (is_wupper, is_wlower, to_wupper, to_wlower, - wide_change_case, wide_tolower, wide_toupper): New functions to - simplify wide character case conversions. - (do_tolower, do_toupper): Use wide_tolower, wide_toupper in multibyte - case. - (do_substr): Simplify code a little bit. - -Mon Jan 17 22:48:48 2011 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_bindtextdomain): Change type of `the_result' - to const char* to kill compiler warnings. - * debug.c (source_find): Improve error message when file not - found. - * awkgram.y (get_src_buf): Add cast to value of `read' to - turn off compiler warnings on different systems. - -Mon Jan 10 21:40:05 2011 Andreas Buening <andreas.buening@nexgo.de> - - * io.c (devopen): Handle opening of directories for OS/2. - -Mon Jan 10 21:37:49 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h: Rearrange includes of <fcntl.h> so it won't be - included for VMS, move definition of O_BINARY down. - -Sat Jan 8 23:00:37 2011 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h: Include <fcntl.h> here. - * main.c, io.c: Remove includes of <fcntl.h>. - -2011-01-08 Eli Zaretskii <eliz@gnu.org> - - * io.c (PIPES_SIMULATED) [__DJGPP__ || __MINGW32__]: Define. - (binmode): Define for __DJGPP__ and __MINGW32__ as well. - (gawk_popen) [!PIPES_SIMULATED]: Define for __DJGPP__ and - __MINGW32__ as well. - -Wed Jan 5 20:35:30 2011 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Move call to AC_LANG([C]) into here from - m4/readline.m4. - -Tue Jan 4 11:21:18 2011 Arnold D. Robbins <arnold@skeeve.com> - - Clean up some compiler warnings: - - * array.c (do_delete): Cast for printf. - * builtin.c (do_bindtextdomain): Casts for const char *. - * io.c (rs1scan): Cast for indexing of array. - * re.c (add_char): Remove unused variables. - -Fri Dec 31 11:05:11 2010 Michal Jaegermann <michal@harddata.com> - - * awk.h (strncasecmpmbs): Change parameters to const char *. - * builtin.c (strncasecmpmbs): Change parameters to const char *. - Add casts as appropriate in calls to other functions. - * eval.c (cmp_nodes): Add casts in calls to strncasecmpmbs. - * node.c (str2wstr): Ditto. - -Tue Dec 28 21:13:31 2010 Eli Zaretskii <eliz@gnu.org> - - * gawkmisc.c: Restore inclusion of pc/gawkmisc.pc. - -Tue Dec 28 21:00:36 2010 Arnold D. Robbins <arnold@skeeve.com> - - * ext.c (make_builtin): Make first parameter const char *. - Adjust code inside to fit. - * awk.h (make_builtin): Adjust declaration. - -Mon Dec 27 19:55:10 2010 Arnold D. Robbins <arnold@skeeve.com> - - * io.c [AF_UNSPEC, AF_INET, AF_INET6]: Add definitions for systems - that don't define them. - (inetfile): Make IPv6 a fatal error if using the fake getaddrinfo, - since chances are good that IPv6 really isn't available. - -Sat Dec 25 19:36:27 2010 Arnold D. Robbins <arnold@skeeve.com> - - Fixes for z/OS. - - * awkgram.y (tokcompare): Change argument types to const void *. - (check_special): Add cast to void * in call to qsort. - * builtin.c (do_bindtextdomain): Change `directory' and `domain' - to const char *. - * custom.h (ZOS_USS): Undef HAVE_SYS_PARAM_H and HAVE_MCHECK_H. - Beats me why configure thinks it has those things. - -Fri Dec 24 12:56:46 2010 Arnold D. Robbins <arnold@skeeve.com> - - * custom.h: Remove defs for MIPS RiscOS. - * configure.ac, aclocal.m4: Updated to Autoconf 2.68. - -Wed Dec 22 21:21:28 2010 Arnold D. Robbins <arnold@skeeve.com> - - * gettext.h: Synchronized with gettext 0.18.1. - -2010-12-22 gettextize <bug-gnu-gettext@gnu.org> - - * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.18.1. - * ABOUT-NLS, config.rpath: Updated from gettext 0.18.1. - -Sun Dec 19 16:43:14 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (update_PROCINFO_str, update_PROCINFO_num, make_str_node): - Change `char *' parameters to `const char *' to avoid some - compiler warnings. - * ext.c (do_ext): Remove cast in call to make_string. - * field.c (update_PROCINFO_str, update_PROCINFO_num): Adjust. - * main.c (init_args): Remove casts in calls to make_string. - * node.c (r_make_str_node): Add cast in assignment if ALREADY_MALLOCED. - -Sat Dec 18 20:12:59 2010 Eli Zaretskii <eliz@gnu.org> - - * array.c, gawkmisc.c, io.c, main.c, regex_internal.h, - awkgram.y, awk.h, array.c: Remove OS2 and _MSC_VER defines. - -Sat Dec 18 19:56:17 2010 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c, eval.c, floatcomp.c, io.c: Remove all the crufty - old code for #ifdef CRAY. - -Thu Dec 16 11:06:50 2010 Arnold D. Robbins <arnold@skeeve.com> - - Put strftime() default format into PROCINFO["strftime"]. - - * awk.h (def_strftime_format): Declare const char[] array. - * main.c (def_strftime_format): Define it. - (load_procinfo): Load it into PROCINFO. - * builtin.c (do_strftime): Use value in PROCINFO for format - string if it's there. Remove old def_format static array. - -Mon Dec 13 17:12:44 2010 Arnold D. Robbins <arnold@skeeve.com> - - If not POSIX, turn [d-h] into [defgh]. - - * re.c (check_bracket_exp): Make warning about ranges under - lint control. - (expand_range): New routine to expand ranges. - (make_regexp): Check if might have range and call expand_range. - (add_char): New helper function for expand_range. - -Thu Dec 9 22:12:48 2010 Arnold D. Robbins <arnold@skeeve.com> - - * io.c: Restored changes of 1 July 2010 to allow /inet4 and /inet6; - they got lost amongst the merges. Fixed checking of do_sandbox. - Also, removed the option for raw IP sockets since it was never - implemented and wasn't going to be. - -Tue Dec 7 11:59:00 2010 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Remove test for return type of sprintf. Another - renegade from the late 1980's bites the dust! - * protos.h (sprintf): Remove declaration. - -Sun Dec 5 15:01:35 2010 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (grow_stack): Change env var to GAWK_STACKSIZE. - * awk.h, main.c, eval.c, profile.c: Removed features added - for those who are Strong In The Ways of the Source. - * debug.c (comp_func): Moved to here from eval.c, where it's - no longer needed. - -Sat Dec 4 21:44:38 2010 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (init_btowc_cache): New function. - (btowc_cache): New array. - (str2wstr): Use is_valid_character in test instead of several isXXX - calls. - * awk.h [is_valid_character]: Macro to use btowc_cache. - * main.c (main): Call init_btowc_cache(). - * io.c (rs1scan): Add call to is_valid_character when processing - characters byte by byte. - -Wed Dec 1 08:10:21 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h, awkgram.y, debug.c: Change CONTEXT to AWK_CONTEXT - everywhere to avoid problems with libsigsegv on cygwin. - -Tue Nov 30 13:48:34 2010 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (MRL): Removed variable, not used since Tandem code nuked. - (main): Fix argument parsing for -m. - (usage): Make -m undocumented (already is the doc/* files). - * io.c (MRL): Remove declaration. - -Mon Nov 29 21:59:21 2010 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (check_bracket_exp): Add check and warning for ranges. - I may live to regret this. - -Mon Nov 29 20:09:18 2010 Eli Zaretskii <eliz@gnu.org> - - * replace.c [!HAVE_STRFTIME]: For __MINGW32__, define - HAVE_STRFTIME while compiling missing_d/strftime.c. - -Thu Nov 25 20:12:28 2010 John Haque <j.eh@mchsi.com> - - * awkgram.y (grammar): Bug fix in delete for loop efficiency hack. - * debug.c (do_info): Don't sort functions to avoid potential memory leak - in case A_FUNCTIONS. - - Plug more potential leaks in the debugger eval/condition commands: - * builtin.c (POP_TWO_SCALARS): New macro to free first scalar in case - of a fatal error in the next. - (do_index, do_atan2, do_lshift, do_rshift, do_and, do_or, do_xor): Use it - instead of two consecutive POP_SCALARs. - - Execution context related code cleanups. Also, added descriptive - comments for functions. - * awkgram.y (get_context): Nuked. - (push_context, pop_context, in_main_context): New functions. - (mk_program, parse_program, yylex): Updated. - * debug.c (condition_triggered, do_eval, parse_condition): Updated. - * eval.c (unwind_stack): Updated. - * main.c (main): Updated. - * awk.h (struct context): Removed member level, not needed. - - * eval.c (op_assign): Initialize r to NULL, and declare x only - if HAVE_FMOD not defined to remove GCC warnings. - -Thu Nov 25 08:32:31 2010 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (posix_compare): Do string comparison with strcoll() / - wcscoll(). - (cmp_nodes): Call it if do_posix. This may be a bad idea, - but what the heck. Standards compatibility uber alles! - -Wed Nov 24 20:09:23 2010 Arnold D. Robbins <arnold@skeeve.com> - - * ext.c (do_ext): Require definition of `plugin_is_GPL_compatible' - per GNU Coding standards. - -Sun Nov 21 14:23:58 2010 John Haque <j.eh@mchsi.com> - - Debugger: Fix memory leak when quitting pager. - * awk.h (PUSH_BINDING, POP_BINDING): Generalize macro definitions. - * debug.c (print_array): save and restore bindings for pager. - free list in case of an early exit in the pager. - (do_dump_instructions): Don't sort functions to avoid potential - memory leak. - (execute_code): Adjust PUSH_BINDING and POP_BINDING macro invocations. - - * awkgram.y (func_call): Avoid reading freed memory for indirect var - name; do the special variable check before the call to 'variable'. - - * eval.c (r_interpret): Fixes and cleanups. Change TOP to TOP_SCALAR - in the case Op_store_field. - (assign_common, assign, compare): Nuked macros. - (cmp_scalar, op_assign): New functions as replacements for the macros. - -Fri Nov 19 11:57:28 2010 Arnold D. Robbins <arnold@skeeve.com> - - * bootstrap.sh, Makefile.am: Remove treatment of CVS. - * README.cvs: Updated further. - -Thu Nov 18 23:28:23 2010 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Remove `--enable-portals' option. I don't think - anyone ever used it. - * io.c (two_way_open): Remove the code for portals. - * README.cvs, README.git, bootstrap.sh: New files for storage - in the Git repository. - -Tue Nov 16 11:56:31 2010 Arnold D. Robbins <arnold@skeeve.com> - - * version.in: Removed descriptive comments. New features and - so on are documented in the documentation and in NEWS. - -Mon Nov 15 19:19:25 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (LEX_LENGTH): Removed warning about length with - no argument being deprecated. - * awkprintf.h: Remove code for sun386. Fix %c to print multibyte - character instead of first byte. - * builtin.c (sub_common): Update commentary about POSIX. - * io.c (nextfile): Add MAYBE_NUM to FILENAME. - -Fri Nov 12 11:53:15 2010 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (update_global_values): New routine, needed for correct - operation of --dump-variables. - * awk.h: Declared it. - * awkgram.y (get_varlist): Call it. - Thanks to Hermann Peifer <peifer@gmx.eu> for the bug report. - - * debug.c (find_subscript): Initialize `r' to NULL, per - Michal Jaegermann. - -Thu Nov 11 16:31:49 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h: Restore decls of strcasecmp, strncasecmp. - * builtin.c: Lots of general cleanups. - (sub_common): Actually enable POSIX rules! (Wasn't done right - earlier.) - -Thu Nov 4 14:08:29 2010 Arnold D. Robbins <arnold@skeeve.com> - - * array.c, awkgram.y, awkprintf.h, builtin.c, debug.c, eval.c, - field.c, io.c, main.c, node.c, profile.c, re.c: Remove register - keyword everywhere. - * node.c: Minor code cleanups. - -Wed Nov 3 08:29:15 2010 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (free_wstr): If argument is null string or null field, - return. Thanks to Vojtech Vitek <vvitek@redhat.com> - -Tue Nov 2 16:45:06 2010 Arnold D. Robbins <arnold@skeeve.com> - - Straighten out options more. --lint --> -L, --lint-old --> -t - - * main.c (optlist, optab, main, usage): Adjusted approrpiately. - - Other: - * awk.h: Lots more general cleanup. - * builtin.c (strncasecmpmbs): Move mbstate vars into the routine. - * awk.h (strncasecmpmbs): Adjust declaration. - * eval.c (cmp_nodes): Adjust call. - * awkgram.y, command.y: Remove unused variables. - -Mon Nov 1 21:55:26 2010 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (optlist, optab, main): Renamed -l option to -t - so can eventually merge in xgawk's -l option. - (usage): Adjusted approrpiately. - -Mon Nov 1 16:23:52 2010 Arnold D. Robbins <arnold@skeeve.com> - - * array.c, awk.h, custom.h, eval.c, gawkmisc.c, io.c, main.c, - protos.h, replace.c: Remove code related to: __amigaos__, - atarist, BeOS, _MSC_VER, MSDOS, TANDOM, WIN32, and anything - not for __STDC__. - -Sun Oct 31 21:49:22 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h: Start on cleaning up. Remove stuff for DOS, WIN32, - TANDEM, atarist, NeXT even! - -Sun Oct 31 05:56:23 2010 John Haque <j.eh@mchsi.com> - - Add array of arrays. - - * awk.h (Op_sub_array): New opcode. - (POP_SCALAR, TOP_SCALAR): New macros. If the item is not a scalar, - make it a fatal error. - (POP_STRING, TOP_STRING): Use POP_SCALAR and TOP_SCALAR instead - of POP and TOP. - (force_string, force_number): Unrelated: simplify (remove) macros - for older gcc and non-gcc compilers. - * awkgram.y (grammar): New non-terminals for array subscripts. - delete array subscripts are handled differently than array subscripts - used as a variable. - (SUBSCRIPT): New terminal symbol to indicate end of subscripts. - (yylex): Return SUBSCRIPT after all the subscripts has been read. - (rules variable, LEX_DELETE and LEX_FOR): Adapt to these changes. - (sub_counter): New global to count the number of subscripts in a - delete statement. - (optimize_assignment): Adjust code for assignment to an array element. - * array.c (make_aname): New function to construct a sub-array name. - (get_array): Handle Node_val in the default case. - (concat_exp): Issue fatal error message if each expression is not a - scalar. - (assoc_clear): Recursively clear sub-arrays. - (do_delete, assoc_dump, assoc_sort_inplace, dup_table): - Handle array of arrays. - * builtin.c: Replace POP with POP_SCALAR as appropriate. - * eval.c (optypes): Add entry for Op_sub_array. - (r_interpret): Handle Op_sub_array. For case Op_subscript, increment - reference count only if the result is a scalar. If type is not a - scalar in Op_subscript_lhs, make it fatal. Adjust stack pointer - after a call to do_delete in Op_K_delete. Change POP(TOP) - to POP_SCALAR(TOP_SCALAR) as needed. - * profile.c (pprint): Add case for Op_sub_array. - * command.y (grammar): New non-terminals and rules to handle - array of arrays. - * debug.c (struct list_item): Redesigned. Field subs is NODE ** now, - new fields num_subs and sname. New flags OLD_IS_ARRAY and CUR_IS_ARRAY; - removed flag ARRAY_WATCH. Renamed macro IS_ARRAY() to WATCHING_ARRAY. - (do_info): Adapt to the structural changes in cases A_WATCH and - A_DISPLAY. - (print_array): New function to print contents of an array. - (print_subscript): New function to print an element of an array. - (do_print_var): Use the new functions to print an array element - and contents. - (do_set_var): Adapt to the structural changes in list_item for - an array element. - (delete_item, do_add_item, display): Ditto. - (add_item): Ditto. Use field symbol, not subs to store field number and - adjust accordingly everywhere. - Unrelated: handle function parameter correctly, watch and display now - prints the param name instead of the actual array name. - (find_subscript): New function. - (initialize_watch_item): Use the new function find_subscript - to locate an array element NODE. - (watchpoint_triggered): Redone. - (cmp_val): Redone. - (print_watch_code): Adjust code for printing subscript. - (print_instruction): Add case for Op_sub_array. - (serialize_subscript): New function. - (serialize): Use the new function to serialize watch and display - subscripts. - (unserialize_list_item): Adapt to the structural changes. Also, - simplify code. - (do_print_f): Redo code for printting array element. - (pre_execute_code, execute_code): Change POP to POP_SCALAR. - - Unrelated: - - * debug.c (unserialize_commands): New function for common code in - unserialize_breakpoint and unserialize_list_item. - (unserialize_breakpoint and unserialize_list_item): Use the new - function. - - * awkgram.y (grammar): Do not terminate parser if seen an empty(NULL) - subscript. Install null string as subscript and continue parsing. - (variable): Do not terminate parser if type is Node_func, change it - to Node_var_new temporarily. Simplifies grammar and allows parser to - continue. - - * command.y (yylex): Add history entry when blank line repeats - previous command. - - * debug.c (pp_args): Removed. Pretty-printing SUBSEP - seperated indexes can not be made to work reasonably in all cases. - (struct list_item): Removed field pp_subs. - (concat_args): Move to file command.y. - * command.y (grammar): Concatenate SUPSEP seperated indexes. - -Thu Oct 28 16:25:08 2010 Arnold D. Robbins <arnold@skeeve.com> - - Remove use of varargs.h everywhere: - - * awkgram.y (yyerror): Fixed. - * awk.h [CAN_USE_STADARG_H]: Removed, #error added if not available. - (snprintf, Func_print, msg, error, warning): Fix declarations. - * cmd.h (gprintf, d_error): Fix declaration. - * command.y (yyerror): Fixed. - * debug.c (d_error, gprintf): Fixed code. - * main.c (lintfunc): Fix declaration. - * msg.c (msg, warnning, error, r_fatal): Fixed code. - -Wed Oct 27 16:45:29 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h [P]: Finally, nuked the `P' macro. Removed definitions - and uses. - [HAVE_DOPRNT]: Removed check for this, now require vfprintf. - [BELL]: Nuked; require a compiler that supports '\a'. - * array.c, awkgram.y, awkprintf.h, builtin.c, cmd.h, command.y, - debug.c, eval.c, ext.c, field.c, io.c, main.c, protos.h [P]: - Remove all uses. - * node.c (r_force_number): Change check with strtod to `ptr == cpend', - SunOS 3.5 compatibility no longer concerns us. Removed the comment. - [P]: Removed all uses. - (parse_escape): Change from BELL to '\a'. - * profile.c (pp_string): Change from BELL to '\a'. - [P]: Removed all uses. - -Tue Oct 26 20:11:37 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (fix_break_continue): New routine to make break and - continue instructions point to where they should jump to. Adjusted - grammar to call it for switch and loops. - * eval.c (r_interpret): For Op_K_break and Op_K_continue, jump - to pc->target_jmp. - * command.y (cmdtab, do_help): Translate the help messages. - * debug.c (option_list, option_help): Translate the help messages. - Elsewhere, clean up / add calls to gettext. - -Fri Oct 22 11:18:29 2010 Arnold D. Robbins <arnold@skeeve.com> - - * ChangeLog: Merged with ChangeLog.BYTECODE. - * Makefile.am (EXTRA_DIST): Removed ChangeLog.BYTECODE. - * ChangeLog.BYTECODE: Removed the file. - -Thu Oct 21 12:16:35 2010 Arnold D. Robbins <arnold@skeeve.com> - - Make break and continue outside a loop not allowed at all, - even with --traditional, as BWK awk no longer allows this. - - * eval.c (r_interpret): For Op_K_break and Op_K_continue, make - them fatal errors if not in a loop. - * awkgram.y (break_allowed, continue_allowed): New variables. - [BREAK, CONTINUE]: New flags for tokentab. - (yylex): If set, increment the corresponding variable. - (Grammar): Test variables when break/continue seen, decrement them - at the end of productions for loops and switch. - -Tue Oct 19 20:03:29 2010 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (optab, usage): Remove --compat, --copyleft, and --usage extra - option aliases. - -Tue Oct 19 08:25:02 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awkprintf.h (r_format_arg): Undouble "%" characters in - error messages. Thanks to Scott Deifik for catching the problem. - -Sat Oct 16 22:08:54 2010 Arnold Robbins <arnold@skeeve.com> - - Apply changes from John Haque: - - * awk.h [ASSIGNED]: Remove unused flag. - (Op_cond_pair_left): Remove. - * debug.c (print_instruction): Remove Op_cond_pair_left. - (do_trace_instruction): Fix print for Op_newfile. - (parse_condition): Improve code. - * eval.c (optypes): Add space to string for "!". - (r_interpret): Remove Op_cond_pair_left and Node_instruction cases. - Revise Op_cond_pair to handle left and right sides correctly. - Simple code fixes in some other cases. - * profile.c (pprint): Remove Op_cond_pair_left. Simplify Op_not. - -Fri Oct 15 14:17:09 2010 Arnold Robbins <arnold@skeeve.com> - - * awk.h (Op_cond_pair_left): New op for left side of condition pair. - * debug.c (print_instruction): Support it. - * profile.c (pprint): Ditto. - * eval.c (r_interpret): Split Op_cond_pair into two cases; they have - to be handled differently. - -Wed Oct 13 19:17:03 2010 Arnold D. Robbins <arnold@skeeve.com> - - * regex.h [RE_SYNTAX_AWK]: Add RE_CHAR_CLASSES, for compatibility - with modern Unix awk. - -Sun Oct 10 15:31:01 2010 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (dfawarn): Do nothing in body, since gawk does it's - own checking. - -Sun Oct 10 15:30:34 2010 Arnold D. Robbins <arnold@skeeve.com> - - MERGE with bytecode version! Many many files changed / added. - -Sun Oct 3 08:41:25 2010 John Haque <j.eh@mchsi.com> - - * Lots of files: Indirect function call, FPAT, BEGINFILE/ENDFILE - from gawk-devel. - - * awk.h (defrule): New enum for rule types. - (ruletab): Converts rule types to string constants. - * awkgram.y: Use rule types to simplify code in grammar. - * eval.c, debug.c, profile.c, awkgram.y routines: Update to use ruletab. - - * Lots of files: New debugger command eval for evaluation of - arbitrary (g)awk expression(s). - eval "awk statement(s)" - OR - eval p1, p2 - > awk statement - > more awk statement(s) - > end - p1, p2 are eval locals. - Conditional break/watch point: - break 1 "condition expression" - OR - break 1 - condition "condition expression" - - * command.y: grammar clean-ups. - (find_command): Redo to fix bugs in abbreviation/partial-string - search. - - * debug.c (command_source): New structure. Used to manage - sources for debugger commands. 'source file' command can now - include additional source commands. - - * awk.h: new enum type redirval for I/O redirection types; - remove redirection types from OPCODE. - * awkgram.y: Adjust grammar for redirection type changes. - (yylex, mk_getline): Update for redirection type changes. - * io.c (redirect, do_getline): Ditto. - * profile.c (redir2str): New function to convert redirection types - to string constants. - (pprint): Use new function redir2str. - * debug.c (print_instruction): Ditto. - * eval.c (optypes): Remove redirection types from table. - - * main.c (main): initialize do_optimize to 1, default optimizations. - do_optimize > 1 for -O (--optimize) command line option. - do_optimize = 0 turns off all optimizations, and is for debugging - purposes. - * awkgram.y: Updated. - - Lots of other cleanups and improvements. - -Thu Sep 16 09:44:47 2010 John Haque <j.eh@mchsi.com> - - Lots of bug fixes & improvements, including work on - profiling. - -Wed Aug 18 22:15:06 2010 Arnold Robbins <arnold@skeeve.com> - - Lots of files: Sync fully with gawk-stable version, in particular - documentation edits and all ChangeLog files. - -Mon Aug 9 07:17:54 2010 John Haque <j.eh@mchsi.com> - - Fix the case when runtime stack can have a INSTRUCTION pointer - while popping stack items (a next/nextfile statement inside a loop). - - * awk.h: new NODETYPE Node_instruction. Remove instruction pointer - from STACK_ITEM union, and all related macros. - * eval.c (r_interpret): wrap code (INSTRUCTION) pointer inside - a NODE for Op_push_loop. Change Op_pop_loop, Op_K_break - and Op_K_continue accordingly. - (unwind_stack): free Node_instruction. - (nodetypes): add new entry for Node_instruction. - -Thu Aug 5 15:05:22 2010 Arnold Robbins <arnold@skeeve.com> - - * awk.h: Remove redundant declaration of struct lconv loc; - * awkprintf.h: Move ifdef for HAVE_LOCALE_H inside case '\''. - * custom.h: Add macros for setenv and unsetenv for Z/OS. - * main.c (main): Remove three argument version for Tiny CC after - applying patches to local copy that fix the issue with environ. - -Mon Jul 26 07:23:01 2010 John Haque <j.eh@mchsi.com> - - Started Byte Code version ChangeLog. - - * awk.h, eval.c, debug.c, profile.c: Renamed opcode Op_exit to - Op_atexit. Simplify exit value handling; use existing global - exit_val from main.c. - New opcode Op_stop. - - * msg.c: New variables fatal_tag_valid, fatal_tag. - (r_fatal): Use these new variables. - (err): Change myname from dgawk to gawk when debugging; - reflects the correct source of error messages. - - * builtin.c, msg.c: Change stdout to output_fp. - (do_fflush): Also flush output_fp if not stdout. - - * command.y (yylex, yyparse): (Much) improved error recovery. - - * awkgram.y (yylex): Add 'goto out' in 'check_special' - for do_traditional or do_posix check, lost somewhere - between 3.1.3 to 3.1.8. - (pop_var): New name remove_symbol to go with mk_symbol. - (install): New name install_symbol. - - * debug.c:(set_gawk_output): Improved handling of /dev files - including /dev/ttyN, /dev/pts/N. - (pre_execute): Renamed execute, a pre_hook in r_interpret. - (post_execute): New function, a post_hook in r_interpret; - used to detect non-local jumps (next, nextfile, exit) - with commands 'until' and 'finish', and to print the - returned value for finish. - (print_instruction): Redo function params initialization - when trace is on. Hopefully, correct this time around. - (close_all): New function to close all known files - during quit and restart. - - * eval.c(r_interpret): Redefine macro JUMPTO to include - post_hook from above, and use it exclusively to move to - the next instruction for execution. - - * debug.c (do_run): Trap gawk fatal errors. -Sun Sep 5 12:44:24 2010 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (check_bracket_exp): Add `warned' flag to table and adjust - code to only warn once about each candidate. - (make_regexp): Always call check_bracket_exp, per discussion - on comp.lang.awk. - -Fri Aug 6 16:29:55 2010 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (check_bracket_exp): Improved the code, again. - -Thu Aug 5 18:41:27 2010 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (check_bracket_exp): Improved the code. - -Tue Aug 3 11:35:11 2010 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (check_bracket_exp): New function. - (make_regexp): Call it if do_lint. - -Thu Jul 1 19:22:33 2010 Arnold D. Robbins <arnold@skeeve.com> - - Add support for /inet4/... and /inet6/... files. - - * io.c (socketopen): New parameter `family' for address family. - (inetfile): New function. Changed everywhere to use it and - the values it sets. - -Fri Jun 25 01:01:39 2010 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main): Added short option letters for all long options - that didn't have them so that they can be used in #!. This - reinstates -r, FWIW. - (usage): Revised message to list standard options first, then - options for extensions, sorted by short letter. - -Mon Jun 21 23:05:20 2010 Arnold D. Robbins <arnold@skeeve.com> - - New FPAT variable and patsplit built-in function. - - * awk.h (NODETYPE): Add Node_FPAT. - (FPAT_node, do_patsplit, set_FPAT): Declare. - (set_FPAT, update_PROCINFO_str, update_PROCINFO_num, - current_field_sep): New functions. - * awkgram.y (tokentab): Add patsplit. - (snode): Add code for do_patsplit to default third arg to FPAT. - (isnoeffect, isassignable): Add cases for Node_FPAT. - * eval.c (nodetypes): Add FPAT. - (r_tree_eval, r_get_lhs): Add cases for Node_FPAT. - * field.c (fpat_parse_field, update_PROCINFO_num, set_FPAT, - do_patsplit): New functions. - (update_PROCINFO): Renamed to update_PROCINFO_str. - (FPAT_re_yes_case, FPAT_re_no_case, FPAT_regexp): New variables. - (using_FIELDWIDTHS): Replaced with current_field_sep and all calls. - * io.c (set_RS): Call current_field_sep insead of using_fieldwidths. - * main.c (main): Use update_PROCINFO_str and update_PROCINFO_num - instead of manually updating the array. - (varinit): Add FPAT. - * profile.c (tree_eval, pp_lhs, is_scalar, pp_var): Add case for - Node_FPAT. - -Fri Jun 12 13:25:32 2009 Arnold D. Robbins <arnold@skeeve.com> - - Make command line arguments that are directories a warning. - They remain a fatal error if --posix or --traditional. - - * configure.ac: Remove the --disable-directories-fatal option. - * io.c (nextfile): Rationalize the code that handles directories, - including setting ERRNO correctly. - -Thu Feb 26 20:57:52 2009 Arnold D. Robbins <arnold@skeeve.com> - - Changes from August 2008 through February 2009 to add - BEGINFILE and ENDFILE, originally against 3.1.6, merged into - development version. - - * awk.h (in_beginfile_rule, in_endfile_rule): Add declarations. - * awkgram.y (beginfile_block, endfile_block): Add declarations. - (beginfile_or_endfile_rule, parsing_endfile_rule): New variables. - (LEX_BEGINFILE, LEX_ENDFILE): New tokens, new rules for those tokens. - (tokentab): Add new entries for BEGINFILE, ENDFILE. - (LEX_NEXTFILE): Allow nextfile in BEGINFILE rule. - (LEX_GETLINE): Allow only `getline var < file' inside BEGINFILE or - ENDFILE. - * eval.c (interpret): Check in_beginfile_rule and in_endfile_rule for - errors for next and nextfile. - (update_ERRNO_saved): When errno == 0, set to ERRNO to - null string. - (interpret): Allow nextfile in BEGINFILE rule. - (update_ERRNO_saved): Check errcode paramater, not global errno. - * io.c (beginfile_block, endfile_block, in_beginfile_rule, - in_endfile_rule): New variables. - (do_input): Set them. Update ERRNO only if not do_traditional. - Propogate error code down to fatal message. - (run_beginfile_rule, run_endfile_rule): New functions. - (iop_alloc): Use it instead of inline code. Add fourth argument - indicating that the open hooks should run. Adjust calls. Point is - to not call open hooks twice inside `nextfile'. - (do_nextfile): Check it and also in_beginfile_rule and only longjump - when both filebuf valid and not in a BEGINFILE rule. - (nextfile): Call run_beginfile_rule and run_endfile_rule as - appropriate. Reorder the logic to set ERRNO and allow BEGINFILE - to call nextfile to skip a bad data file. Adjust calls to - iop_open and find_open_hook. - (nextfile): Call iop_alloc if there's a BEGINFILE block in case - the hooks changed. - (find_open_hook): New function. - (get_a_record): On read error, just set *errcode and return. Let - higher level logic decide if it's fatal. - (inrec): Have error be fatal if traditional or if there isn't - an ENDFILE rule. - * profile.c (dump_prog): Add code for BEGINFILE / ENDFILE. - * awk.h (dump_prog): Adjust declaration. - * main.c (main): Adjust call to `dump_prog'. Check beginfile_block and - endfile_block also to be not NULL in order to call do_input. Thanks to - Steffen Schuler for pointing out the bug. - -Thu Feb 26 07:54:51 2009 Arnold D. Robbins <arnold@skeeve.com> - - Per advice from BWK and my own feelings, nuke additions from 2001 - of seek and tell functions. They were never documented anyway. - - * awk.h (do_seek, do_tell): Remove declarations. - (IOBUF): Remove save_start and rec_size members. - * awkgram.y (tokentab): Remove "seek" and "tell" entries. - * io.c (do_getline): Remove code setting save_start and rec_size. - (iop_alloc): Remove code initializing save_start and rec_size. - (do_seek, do_tell): Removed. - * configure.ac: Remove --enable-seektell option. - -Mon Feb 16 21:54:13 2009 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (tokentab): Enable switch / case by default. - * configure.ac: Remove test for --enable-switch. - -Thu Feb 12 22:06:17 2009 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (optab): --gen-po becomes --gen-pot. -r goes away since it's - now on by default. - (usage): Similar changes. - * regex.h [RE_SYNTAX_GNU_AWK, RE_SYNTAX_POSIX_AWK]: Adjust to support - interval expressions. - [RE_DEBUG]: Nuke: it is no longer used. - * re.c (resetup): Adjust comment for do_intervals. - (reflags2str): Remove RE_DEBUG. - -Sat Jan 17 20:41:54 2009 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (WSTRCUR): Always define, no real need for ifdef. - * eval.c (flags2str): Similar. - * field.c (rebuild_record): Similar. - -Sat Jan 17 19:59:39 2009 Arnold D. Robbins <arnold@skeeve.com> - - Add indirect function calls. They require a special - syntax, which is an `@' in front of a function call. - - * awk.h (NODETYPE): New Node_indirect_function_call value. - (ASSIGNED): New flag value. - * eval.c (nodetype2str): Add new node type. - (flags2str): Add ASSIGNED. - (func_call): Test the node type to determine - what kind of call. Cache the function body if a real function - is called indirectly. Also get scoping right if called from a function. - LOTS of work here to get this code right! - (op_assign): Add ASSIGNED to flags. - * awkgram.y (function_call, direct_function_call): New productions for - creating indirect function calls. Only call func_use for direct call. - (yylex): Add case for '@'. Only return it if not posix or traditional. - * profile.c (tree_eval): Add case for Node_indirect_func_call. - (pp_func_call): Check type and print '@' for indirect call. - -Tue Dec 30 22:25:04 2008 Assaf Gordon <gordon@cshl.edu> - - * awk.h (do_sandbox): New variable declaration. - * main.c (do_sandbox): Variable definition. - (opttab): Add new option --sandbox. - (usage): Add to usage message. - * builtin.c (do_system): Disallow if sandboxed. - * io.c (redirect): Disallow redirections if sandboxed. - -Tue Dec 30 22:22:04 2008 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (usage): Change --binary to --characters-as-bytes, - per Karl Berry. - -Thu Dec 18 05:29:46 2008 Steffen Schuler <schuler.steffen@googlemail.com> - - * field.c (*_parse_field): Add `sep_arr' argument and fill it. - * field.c (do_split): Add handling of fourth argument of awk - builtin `split'. - * field.c (get_field): Extend parse_field by default argument. - * awkgram.y (tokentab): Extend `split' entry with fourth argument. - -Wed Dec 17 09:54:00 2008 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (do_binary): New variable for new option -b which - makes gawk not mess with multibyte strings. - (opttab): Add option entry for -b / --binary. - (main): If do_binary, set gawk_mb_cur_max to 1. - -Sat Oct 27 22:43:50 2007 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (resetup): Add RE_INVALID_INTERVAL_ORD to syntax bits if - doing interval expressions. - -Thu Oct 25 23:11:10 2007 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (devopen): Add `isdir' pointer argument. - * io.c (devopen): Ditto. Adjust logic that checks for directory. - Adjust all calls. - * main.c (main): Adjust call to devopen. - -Sun Oct 3 23:18:44 2004 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (lex): Enabled \s and \S escape sequences. - * regcomp.c (peek_token): Ditto. - -Tue Aug 3 13:29:53 2004 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (sub_common): Make POSIX 2001 behavior the - default for `sub' and `gsub'. - -Wed Aug 21 13:39:08 2002 Dean Wakerly <dean@wakerly.com> - - * main.c (main): Add short option letter 'r' for --re-interval. - Mainly for use in #! scripts. - -Wed Dec 26 22:03:48 2001 Arnold D. Robbins <arnold@skeeve.com> - - Nuke /dev/pid etc. special files! - - * awk.h (IOP_IS_INTERNAL, IOP_NO_FREE): Removed. Other defines - renumbered. - * io.c (iop_open, spec_setup, specfdopen, pidopen, useropen): Removed. - (do_input, redirect): Change uses of iop_open() to devopen() + - iop_alloc(). - (iop_close, get_a_record): Remove special handling for IOP_INTERNAL, - IOP_NO_FREE. - (devopen): Remove comment relating to iop_open. - Add fstat check for valid fd for /dev/fd/N. - -Sun Nov 4 10:27:58 2001 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h, builtin.c, awkgram.y: Renamed mark/reset to tell/seek. - * acconfig.h: Add `#undef SEEK_TELL'. - * configure.in: Add `--enable-seektell' configure-time option. - * io.c (do_seek, do_tell): renamed from do_reset, do_mark. - -Thu Aug 16 12:21:28 2001 Arnold D. Robbins <arnold@skeeve.com> - - New feature, undocumented for now, use #define MARK_RESET to - to turn it on. New function val = mark("/some/file") to - save start position of current record. Use - reset("/some/file", pos) to go back to it. ONLY works - with getline. - - * awk.h (IOBUF): New members save_start and rec_size. - (do_mark, do_reset): Add declarations. - * awkgram.y (tokentab): Add entries for mark and reset. - * io.c (specsetup): Initialize save_start and rec_size. - (iop_alloc): Ditto. - (do_getline): Update them as appropriate. - (do_mark, do_reset): New functions. - -Fri Sep 17 12:42:42 2010 Arnold D. Robbins <arnold@skeeve.com> - - * regcomp.c (btowc): Changed to use mbrtowc. - -Wed Sep 15 08:26:55 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Further sync with GNU grep. - -Tue Sep 14 09:53:55 2010 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (str2wstr): Per advice from Ulrich Drepper, when converting, - if the current byte is isprint, isgraph, iscntrl or zero, then it - can't start a multibyte character. This can save many calls to - `mbrtowcs', and speed up the conversion considerably. - -Mon Sep 13 11:19:21 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.h, dfa.c: Sync with GNU grep. - * re.c (dfawarn): New routine for use by dfa. - -Sun Sep 12 22:17:02 2010 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (tree_eval): Fix comment on for ... delete array loop. - (pp_string_fp): Get escapes right on regex constant. - -Sun Sep 5 20:38:42 2010 John E. Haque <j.eh@mchsi.com> - - * re.c (str2wstr): Decrement src_count when skipping bad bytes. - -Fri Aug 27 13:51:13 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Sync with current GNU grep - minor edits only. - -Fri Aug 20 16:26:14 2010 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (tree_eval): Always parenthesize Node_cond_exp. - May add a few extra parens but guarantees the right semantics. - Thanks to Hermann Peifer <peifer@gmx.eu> for the bug report. - -Thu Aug 19 21:35:13 2010 Arnold D. Robbins <arnold@skeeve.com> - - * regex_internal.c (re_string_reconstruct): Move ifdef out to cover - variable declarations, to avoid "unused variable" warnings. - * regexec.c (check_arrival_add_next_nodes): Bracket declaration of - `err' with ifdef for the same reason. - - Thanks to avarab@gmail.com for the suggestions. - -Wed Aug 18 22:13:30 2010 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.am (AUTOMAKE_OPTIONS): Added. Other minor cleanups. - -Tue Aug 17 23:27:43 2010 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (pp_string_fp): Use different sets of escape characters - if printing a string or a regex, based on delimiter. Thanks to - Hermann Peifer <peifer@gmx.eu> for the bug report. - -Sun Aug 8 23:05:09 2010 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (make_regexp): Don't allocate rp->dfareg unless - we're using dfa; causes a memory leak otherwise. Thanks to - Antonio Columbo for reporting the bug. - -Wed Jul 14 23:04:30 2010 Eli Zaretskii <eliz@gnu.org> - - * dfa.c: Include langinfo.h only if HAVE_LANGINFO_CODESET is - defined. - -Wed Jul 14 23:00:19 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (yylex): Allow a backslash before CR-LF to also - work for line continuation, for MS-DOS style source files. - Thanks to (Vincent Belaiche) for pointing this out. - -Wed Jul 14 22:31:53 2010 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (str2wstr): Keep going if get a bad multibyte sequence. - Allows match to give correct answers for RSTART, RLENGTH. - Add a lint warning. Correctly set the length of the string - based on pointer subtraction. - -Wed Jun 16 21:52:09 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (exec_count): Moved into NODE structure as standalone - element since count on `/pat/ { ... }' was wrong. Thanks to - Hermann Peifer <peifer@gmx.eu> for the bug report. - - Note to self: DO NOT propogate this to the byte-code version. - - Unrelated: - - * awkgram.y (matchop): Made left associative to match behavior - of other awks. - (print_expression_list): Simplified so that something like - `print ("a", "b") in B in A' will work. Again, to match what - other awks do. - -Fri Jun 4 15:56:59 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Further merges with GNU grep. - -Thu May 20 22:20:32 2010 Stepan Kasal <skasal@redhat.com> - - * Makefile.am [AUTOMAKE_OPTIONS]: Removed, contents now in ... - * configure.ac [AM_INIT_AUTOMAKE]: ... here. - Added dist-xz while I'm at it, per Karl Berry. - -Tue May 18 14:52:04 2010 Marcin Szewczyk <Marcin.Szewczyk@wodny.org> - - * builtin.c (format_tree): Simplify code in pr_tail when multibyte - and %s or %d. - -Thu May 6 20:55:14 2010 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.8: Release tar file made. - -Fri Apr 30 11:37:54 2010 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Remove check for libsnprintf. - -Tue Apr 27 22:23:26 2010 Andreas Schwab <schwab@linux-m68k.org> - - * builtin.c (do_mktime): Make lint check more sane. - Fix overflow check. Removes GCC warning that Arnold - incorrectly didn't like. - -Mon Apr 26 20:16:07 2010 Arnold D. Robbins <arnold@skeeve.com> - - * ltmain.sh: Removed. - * builtin.c (do_mktime): Restored old code to match the - documentation. We now have a warning that we just have to - live with. Sigh. Stupid GCC. Added a lint warning though. - (format_tree): More code so that %'d acts like %d on systems - without <locale.h>. - * main.c (main): Add `&& #if defined(HAVE_LOCALE_H)' for - call to setlocale. - -Wed Apr 21 23:35:43 2010 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.am: Change quoting of -Dargs so that even tcsh - users will be happy. - * regex_internal.c (MAX): Add `#undef MAX', just in case. - * configure.ac: Don't look for libsigsegv on OSF/1, gives - us severe headaches. - -Tue Apr 20 12:01:01 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.h, dfa.c: Sync with GNU grep. The long-standing x{0} bug - is now gone. Matching UTF-8 with "." is now much faster. - * re.c (avoid_dfa): Remove call to dfabroken() which is now gone. - * builtin.c (do_mktime): Simplify check of values passed in to be - more readable and to avoid a weird compiler warning from GCC. - -Fri Apr 16 15:02:26 2010 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (assoc_lookup): Add cast in error message to turn - off compiler warning. - * dfa.c (is_blank): New function. Use it everywhere instead of - ctype.h `isblank' macro which isn't available universally. - -Tue Apr 13 22:36:31 2010 Arnold D. Robbins <arnold@skeeve.com> - - * array.c, awkgram.y, builtin.c, dfa.c, eval.c, ext.c, main.c, - node.c, re.c: Remove old ISxxx and TOxxx macros in favor of - standard versions. ``We're two wild and crazy guys!'' - -Tue Apr 13 22:07:18 2010 Arnold D. Robbins <arnold@skeeve.com> - - * getopt.c, getopt.h, getopt1.c, getopt_int.h, regcomp.c, regex.c, - regex.h, regex_internal.c, regex_internal.h, regexec.c: Sync with - glibc. What the heck. - -Thu Apr 8 21:33:09 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.h, dfa.c: All leading indentation is now spaces only. Yet - another sync with grep. - -Thu Apr 8 20:45:25 2010 Arnold D. Robbins <arnold@skeeve.com> - - Move dfa internals into dfa.c and sync with grep. Avoids VMS and - z/OS compile problems in order to avoid cygwin issue when used - with ligsigsegv. ("Portability? We don't need no stinkin' - portability!") - - * dfa.h: Move all the internals into dfa.c. - (dfaalloc, dfamusts, dfabroken): Add declarations. - * dfa.c: Accept all the internals. - (dfaalloc, dfamusts, dfabroken): New functions. - * awk.h (Regexp): Use a `struct dfa *'. - * re.c (make_regexp): Call dfaalloc. Adjust uses of dfareg - in other routines. - (refree): Free the dfa struct too. - -Tue Apr 6 23:06:55 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.h, dfa.c: Further sync with GNU grep for enum change - and other misc changes. - -Tue Apr 6 20:13:45 2010 Michal Jaegermann <michal@harddata.com> - - * main.c: Wrap declarations and bodies of `catchsegv' and - `catchstackoverflow' in #ifdef HAVE_LIBSIGSEGV to avoid - "not used" warnings. - -Tue Apr 6 20:11:47 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.h: Move definition of token enum to dfa.c to avoid conflict - with Windows WCHAR introduced by libsigsegv. Thanks to Corinna - Vinschen. - * dfa.c: Enum body here. - (in_coll_range): z/OS fix: Initialize array to all zeros and assign - values instead of putting them into the initializer. Thanks to Dave - Pitts for reporting the problem. - -Fri Apr 2 12:32:40 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Sync with grep 2.6.3. - -Wed Mar 31 15:50:34 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (dfaexec): Move decl of `saved_end' up to top of function. - Fixes compilation on C89 compilers. - -Mon Mar 29 08:40:29 2010 Arnold D. Robbins <arnold@skeeve.com> - - Remove local copy of libsigsegv. Use an external copy if available. - - * Makefile.am: Remove SEGVSUBDIR and SEGVINCLUDE. - * configure.ac: Remove previous code that handled the library and use - gl_LIBSIGSEGV library. - * custom.h: Remove code for HAVE_SIGSEGV_H. - * main.c: Move to HAVE_LIBSIGSEGV. - * libsigegv/ : Removed. - -Mon Mar 29 05:41:35 2010 Corinna Vinschen <vinschen@redhat.com> - - * dfa.c: Include hard-locale.h after xalloc.h because it needs - xmalloc. - * hard-locale.h (xmalloc): Remove declaration. - (hard_locale): Cast xmalloc to correct target type. - -Mon Mar 29 05:38:47 2010 Arnold D. Robbins <arnold@skeeve.com> - - * io.c: (two_way_open): In counting down retries, test for > 0 - instead of >= 0 since retries is unsigned. Thanks to Pat Rankin - for noticing. - * configure.ac: Remove use of -export-dynamic on cygwin. - -Thu Mar 25 21:48:13 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Sync to grep 2.6.1. That's probably enough for now. - -Wed Mar 24 19:48:01 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: More sync with grep. - -Tue Mar 23 19:42:48 2010 Jeff Chua <jeff.chua.linux@gmail.com> - - * io.c (two_way_open): Bug fix in management of timeout value. - -Tue Mar 23 19:40:04 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.h, dfa.c: Synced with released grep 2.6. Oh Frabjous Day! - Callou! Callay! - -Mon Mar 22 22:49:44 2010 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.c: Regenerated using bison 2.4.2. - -Fri Mar 19 10:19:20 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Minor edits for compat with grep. - -Fri Mar 19 09:19:56 2010 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (two_way_open): Cleanup new code for socket opens. - * replace.c: Include missing_d/usleep.c based HAVE_USLEEP. - * configure.ac: Add usleep to list of functions to look for. - -Thu Mar 18 23:30:33 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.h, dfa.c: Imported from GNU grep and merged. Passes "make test". - * xalloc.h: New file, needed by dfa.c. - * Makefile.am (base_sources ): Added xalloc.h. - -Thu Mar 18 07:29:45 2010 Jeff Chua <jeff.chua.linux@gmail.com> - - * io.c (two_way_open): Make failure to open a socket a non-fatal error. - Allow the amount of time to sleep during socket retries to come from an - undocumented env variable giving time in milliseconds. - -Mon Mar 8 20:58:05 2010 Paolo Bonzini <bonzini@gnu.org> - - More fixes from GNU grep. - - * dfa.c (dfaexec): Remove register keywords. - (FETCH): Use do..while(0) idiom. - (parse_bracket_exp_mb): Return MBCSET. - (in_coll_range): New. - (lex): Assign return value of parse_bracket_exp_mb to lasttok, - return it. Use in_coll_range instead of regcomp/regexec. - -Mon Mar 8 20:36:35 2010 Jim Meyering <jim@meyering.net> - - Fixes from GNU grep development version: - - build: avoid shadowing warnings - * dfa.c (match_mb_charset): Rename parameter: s/index/idx/. - (check_matching_with_multibyte_ops, match_anychar): Likewise. - - build: avoid shadowing warning for unused "rs" - * dfa.c (transit_state): Remove dead stores; - Ignore transit_state_consume_1char return value. - - syntax: remove trailing blanks - * dfa.c: Remove trailing blanks, to ease synchronization with grep. - - clean-up: limit visibility of an internal function - * dfa.c (match_mb_charset): Declare static. - - build: rename local to avoid shadowing global, dfa - * dfa.c (dfamust): Rename parameter: s/dfa/d/. - -Thu Feb 18 22:44:01 2010 Arnold D. Robbins <arnold@skeeve.com>0 - - * eval.c (push_args): Clear the stack to NULL pointers after mallocing - it. Fixes yesterday's problem when called from a rule. - See test/fcall_exit2.awk. Thanks to Seb <sbb@tuxfamily.org>. - -Wed Feb 17 23:19:32 2010 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (pop_fcall): Check that argument on stack is not NULL before - attempting to clear it; add comment explaining it. - (push_args): Set nodes to zero for argument to make sure that values - are NULL for testing later in pop_fcall. See test/fcall_exit.awk. - Thanks to Seb <sbb@tuxfamily.org>. - -Sun Jan 31 22:46:49 2010 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (prec_level): Add Node_regex to the switch so that - `! /xxx/' works. Thanks to Hermann Peifer <peifer@gmx.eu> for - reporting the bug. - -Thu Jan 28 17:40:14 2010 Arnold D. Robbins <arnold@skeeve.com> - - * configure, Makefile.am: Updated to Autoconf 2.65 and Automake 1.11.1, - libsigsegv 2.8. - -Thu Jan 21 23:24:56 2010 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (pprint): Separate out code for Node_switch_body and only - print the lnode; avoids printing the default case twice. Thanks to - Hermann Peifer <peifer@gmx.eu> for reporting the bug. - -Sun Jan 3 21:03:01 2010 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Added casts as needed to silence warnings about - signedness of pointers from GCC 4.x. - -Fri Jan 1 11:41:50 2010 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): At pr_tail, remember to take the precision - into account when determining how many characters to copy out. - Thanks to tczy <cy@wre.ath.cx> for the bug report. - -Tue Dec 8 12:29:30 2009 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac, awk.h: Remove use of <signum.h> header file. - -Mon Dec 7 15:25:02 2009 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (format_val): Use <= and >= in the comparisons with - LONG_xxx instead of < and > so that things work correctly on systems - with 64 bit integers. Thanks to Stephen Davies for pointing out - the problem. - -Sat Nov 21 23:14:59 2009 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): If there is not an actual thousands - separator character, don't let `quote_flag' have an effect. Fixes - test failure on Solaris 10, which bizarrely says to use the - thousands separator character every three digits, but then doesn't - actually supply one. Thanks to Nelson Beebe for the initial - report. - -Mon Nov 16 22:27:44 2009 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (getnode): If MPROF wrap body in parentheses; remove - incorrect trailing semicolon. - * bisonfix.awk: Convert "y.tab.c" to "awkgram.c" for those rare - instances where we need to use a debugger on the parser so - that gdb will find the right source file. - -2009-10-26 Andreas Schwab <schwab@linux-m68k.org> - - * io.c (iop_open): Set errno when rejecting a directory. - -Tue Oct 20 22:48:14 2009 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (constant_fold): Fix check for two strings to look - at `right->flags'. Fix division code to check for division by - zero first. Thanks to Stephen Davies <scldad@sdc.com.au> - for both. - -Fri Oct 16 08:41:29 2009 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (redirect): Do the close-on-exec setting before - attempt to get a FILE *. Thanks to Andreas Schwab. - -Wed Oct 14 23:25:47 2009 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (redirect): When opening a file, set the close-on-exec flag. - Thanks to Chris Pearson <kermit4@gmail.com> for the bug report. - -Tue Oct 6 21:07:23 2009 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main): When an option requires an argument and we print a - message, call `usage' and exit. - - Fix all calls to `usage' to use EXIT_FAILURE and EXIT_SUCCESS - instead of 1 and 0. - -Sun Oct 4 21:46:11 2009 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main): Don't reset argv[0] to myname. In call - to `init_args', pass argv[0] if do_posix. Based on - Fedora bug report. - -Sun Oct 4 18:45:06 2009 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (assoc_lookup): In lint warning, don't clobber - the character at the end of the subscript; instead use the - length to limit the number of characters printed. Thanks to - Nick Hobson <nick.hobson@yahoo.com>. - -Sun Aug 30 22:40:12 2009 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_length): Handle the case where Node_var_new - was passed in as a parameter via a function call parameter. - Thanks to Greg Johnson <gregfjohnson@yahoo.com> for reporting - the bug. - -Tue Aug 11 19:23:51 2009 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (parenthesize_expr): New function. - (tree_eval): Use it for Node_and and Node_or. Thanks to - Hermann Peifer <peifer@gmx.eu> for reporting the bug. - -Tue Aug 4 06:04:23 2009 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): zero_flag does not apply to - %c and %s conversions. Thanks to Mike Brennan and Thomas Dickey - for the bug report. - -Tue Jul 21 22:28:56 2009 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.7: Release tar file made. - -Fri Jul 17 08:35:10 2009 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.c: Rebuilt with current Bison (2.4.1). - -Thu Jul 9 22:55:17 2009 Arnold D. Robbins <arnold@skeeve.com> - - * (NEWS README array.c awk.h awkgram.y builtin.c configure - configure.ac custom.h dfa.c ext.c field.c floatcomp.c io.c - main.c node.c profile.c re.c replace.c): Update copyrights - and other prep for a release. - -Thu Jul 9 22:20:04 2009 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (init_locale): New function to make a deep copy of the - struct lconv. Thanks to KIMURA Koichi <kimura.koichi@canon.co.jp> - for the info. - * eval.c (r_tree_eval): Further improve Node_assign_concat code to - temporarily to keep reference counts correct and to get the - desired behavior. - -Mon Jul 6 20:29:12 2009 Arnold D. Robbins <arnold@skeeve.com> - - * floatmagic.h: Remove @ signs copied from Texinfo. - It would help if I were more awake. - -Sat Jul 4 21:55:18 2009 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.am (base_sources): Add floatmagic.h so it'll - go into the tar ball. - -Fri Jul 3 13:47:36 2009 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (is_scalar): Add Node_func_call to list. - (pp_concat): Make logic smarter for tree created by Node_assign_concat. - -Fri Jul 3 13:01:49 2009 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (optimize_concat): New function that applies - Node_assign_concat more generally. - * eval.c (r_tree_eval): Improve Node_assign_concat code to temporarily - increase the stref on `l' to avoid side effects during evaluation of - `r'. This makes test/nasty.awk work. Ouch. - -Tue Jun 30 22:10:37 2009 Arnold D. Robbins <arnold@skeeve.com> - - * floatmagic.h: New file. - * builtin.c (format_tree): Use functions defined in floatmagic.h. - -Tue Jun 30 21:57:47 2009 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac, Makefile.am: Add new --disable-libsigsegv command line - option to configure. - (LIBSIGSEGV, SEGVINCLUDE, SEGVSUBDIR): New variables that will be empty - if libsigsegv is disabled so nothing will happen, and that will have the - right values otherwise. They are then substituted into the Makefile. - -Wed Jun 24 23:00:10 2009 Arnold D. Robbins <arnold@skeeve.com> - - * bootstrap.sh: Revised. Now works again. We think. (CVS-only file) - -Wed Jun 24 21:57:30 2009 Arnold D. Robbins <arnold@skeeve.com> - - * custom.h: Move z/OS EXIT_FAILURE definition from here to ... - * awk.h: Here. Define at end after regular definition. - -Thu Jun 18 06:17:38 2009 Scott Deifik <scottd@amgen.com> - - * awk.h: Don't define HAVE_SIGSEGV_H for DJGPP. - -Thu Jun 18 05:38:42 2009 Dave Pitts <dpitts@cozx.com> - - * custom.h: Changes needed for z/OS. - -Wed Jun 10 08:22:53 2009 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (parse_escape): Add a lint warning if \x.. has more than two - hex digits. - -2009-06-08 gettextize <bug-gnu-gettext@gnu.org> - - * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.17. - -Mon Jun 8 22:13:49 2009 Arnold D. Robbins <arnold@skeeve.com> - - Update to Autoconf 2.63, Automake 1.11, Libtool 2.2.6a - - * ltmain.sh: New file. - * configure.ac: Changes to keep infrastructure tools happy. - * alocal.m4, configure: Regenerated. - * Makefile.in, */Makefile.in: Regenerated. - -Mon Jun 8 07:43:25 2009 John DuBois <spcecdt@armory.com> - - * builtin.c (mbc_byte_count, mbc_char_count): Make sure all declarations - come before executable code, for older compilers. - * dfa.c (insert): Ditto. - * io.c (devoopen): Ditto. - -Thu May 21 21:11:44 2009 Arnold D. Robbins <arnold@skeeve.com> - - Add simple constant folding. - - * awk.h (do_optimize): New declaration. - (calc_exp): Add declaration. - * eval.c (calc_exp): Make non-static. - * main.c (do_optimize): New variable. - (opttab): Add new entry for --optimize. - (main): Add 'O' to optlist and code for argument parsing. - (usage): Update for new option. - * awkgram.y (Node_concat, Node_exp, Node_times, Node_quotient, Node_mod, - Node_plus, Node_minus): Call `constant_fold' to create the node in - the tree. - (constant_fold): New function. - -Fri May 15 16:02:01 2009 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (getnode): For MPROF: Fix a typo. - -Fri May 15 14:10:44 2009 Arnold D. Robbins <arnold@skeeve.com> - - Function arguments cannot be reserved variable names, per POSIX. - - * main.c (struct varinit): Add flags member. - (varinit): Add values for flags member (one or both of NON_STANDARD - or NO_INSTALL). Add entries for the rest of the gawk variables and - sort them, so that the table can be searched by ... - (is_std_var): New routine to see if a name is a standard variable. - * awk.h (is_std_var): Add declaration. - * awkgram.y (func_install): Use new routine and issue error. - -Wed Apr 22 07:42:05 2009 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (sub_common): In code for handling \<dig> replacements, - first make sure that <dig> is within the range of parentheses sets - given, and then make sure that the subpattern start is not -1, meaning - that something actually matched. Thanks to Martin Olsson - <mnemo@minimum.se> for the bug report. - (do_length): Add a lint warning if `length' is passed an untyped - argument. - -Thu Apr 16 22:59:32 2009 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (func_call): Save nloops_active; if after function returns - the actual nloops_active is greater than the saved value, it means - there was a return inside the loop body, so pop off the necessary - number of loops. Bug reported by Aleksey Cheusov <a.cheusov@gmail.com>. - Gawk was not leaking memory - that is, things were still pointed - to, but memory use could keep on growing. - -Fri Mar 27 10:59:11 2009 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): Add lint warnings for fieldwidth and/or - precision in %%, and add lint warning for unknown format specifier - (e.g. %b). Thanks to "joanes.polus" <joanes.polus@laposte.net> for - the report. - -Wed Mar 18 18:15:41 2009 Pat Rankin <rankin@pactechdata.com> - - * awk.h (EXIT_SUCCESS, EXIT_FAILURE): Move VMS-specific values - to vms/vms-conf.h. - (EXIT_FATAL): Define here instead of in msg.c. - * msg.c (EXIT_FATAL): Move definition to awk.h. - -Mon Mar 16 18:58:09 2009 Pat Rankin <rankin@pactechdata.com> - - * main.c [#if HAVE_SIGSEGV_H]: For the #else case (VMS), - (stackoverflow_context_t): Dummy typedef for use in prototypes; - (stackoverflow_install_handler): Make macro expand to 0 rather - than nothing so that (void) cast on invocation of it works. - - * main.c (catchstackoverflow): Don't return 0 from void function. - -Wed Feb 25 21:34:14 2009 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (tokentab): Have only one copy of BEGIN / END. - (tokcompare): New function. - (check_special): Sort tokentab for EBCDIC systems. - -Sun Feb 15 22:39:30 2009 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (pp_delete): Print tree->exec_count to actually get - the value printed. Thanks to Hermann Peifer <peifer@gmx.eu> - for reporting the bug. - -Thu Feb 12 21:54:34 2009 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y: Change to use EXIT_FAILURE. - * msg.c [EXIT_FATAL]: New macro. - * msg.c (r_fatal): Change to use EXIT_FATAL. - Thanks to Pat Rankin for pointing these out. - * re.c (reflags2str): Account for RE_SYNTAX_EMACS. - * awk.h: If not VMS, define HAVE_SIGSEGV_H. - * main.c: Check HAVE_SIGSEGV_H before including <sigsegv.h>. If not - there, define dummy macros. - (catchsegv, catchstackoverflow): Remove unneeded comment. Add return 0 - for compilers that care. - -Mon Feb 9 05:24:52 2009 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h [CONST]: Renamed CONSTANT to avoid conflict with libsigsegv - on Windows. - * awkgram.y, field.c, re.c: Update all uses. - -Tue Feb 3 22:46:59 2009 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (do_close): Wrap updating of ERRNO in check for not - do_traditional. - -Sat Jan 31 23:14:00 2009 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): For '%s', don't count the multibyte - characters if we are just copying all the characters. Gives - big speedup. Thanks to Hirofumi Saito <hi_saito@yk.rim.or.jp> - for reporting the problem. - -Thu Jan 29 21:14:30 2009 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (parse_field, re_parse_field, def_parse_field, - posix_def_parse_field, null_parse_field, sc_parse_field, - fw_parse_field): Add new last arg `in_middle'. Ignored by all - except re_parse_field. - (re_parse_field): Enhance logic to only allow ^ in a regex to match - if indeed at the beginning of a record. - (getfield): Adjust call to parse_field. - -Tue Jan 27 21:42:47 2009 Arnold D. Robbins <arnold@skeeve.com> - - Changes suggested by Toni Schilling <Schilling@equicon.de>, - as modified by feedback from Pat Rankin, and some help - from me. - - * awk.h [WEXITSTATUS]: Improve definition for MSC and VMS. - [EXIT_SUCCESS, EXIT_FAILURE]: Define if they aren't. - * io.c, main.c, profile.c: Switch to using EXIT_xxx instead of - 0 and 1. - (main): Use constants instead of 0/1 for exit_val variable. - * eval.c (interpret): Map exit value from `exit' statement into - success / fail constants for VMS for exit_val variable. - -Tue Jan 20 07:35:34 2009 Arnold D. Robbins <arnold@skeeve.com> - - * regex.h: Define __USE_GNU if not _LIBC; needed for non-GLIBC - systems such as, oh say, Mac OS X. - -Tue Jan 13 09:23:40 2009 Arnold D. Robbins <arnold@skeeve.com> - - * regex.c, regex_internal.h: Remove some changes that are no - longer needed after sync with GLIBC. - -Mon Jan 12 22:27:10 2009 Arnold D. Robbins <arnold@skeeve.com> - - Bi-annual sync with GLIBC. - - * regexec.c, regex.h, regex_internal.c, regcomp.c, regex_internal.h, - regex.c: Reapply any portability patches specific to gawk. - * getopt.c: Sync with GLIBC. - - Base versions: - getopt.c 1.57 Thu Jan 8 20:02:05 2009 - getopt.h 1.21 Fri Mar 19 00:19:32 2004 - getopt1.c 1.10 Tue Mar 9 10:35:37 2004 - getopt_int.h 1.1 Tue Mar 9 10:31:19 2004 - regex.c 1.129 Tue Sep 6 20:49:44 2005 - regexec.c 1.99 Thu Jan 8 20:02:06 2009 - regexec.c 1.99 Thu Jan 8 20:02:06 2009 - regex.h 1.43 Wed Jan 16 10:09:47 2008 - regex_internal.c 1.69 Thu Jan 8 20:02:06 2009 - regex_internal.h 1.76 Thu Jan 8 20:02:06 2009 - regcomp.c 1.120 Thu Jan 8 20:02:06 2009 - -Mon Jan 5 23:07:58 2009 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (devopen): Add a retry to calls to socketopen. Tunable - via undocumented GAWK_SOCK_RETRIES environment variable. Based - on code from Juergen Kahrs <Juergen.Kahrs@vr-web.de> after a - suggestion from Hermann Peifer <peifer@gmx.eu>. - -Mon Jan 5 22:48:39 2009 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (redirect): A getline from a directory is no longer - fatal; instead it returns -1. Thanks to Paolo <oopla@users.sf.net> - for the report. - -Mon Dec 29 22:04:57 2008 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): Case for 's', improve logic for setting - the number of characters to copy, also at pr_tail. Based on - bug report by Hermann Peifer <peifer@gmx.net>. - -Thu Dec 11 21:23:50 2008 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_length): If the wide string has zero length - but the bytes are more than zero, use the number of bytes. - (do_index): Similar also: fall back to byte count if the - bytes don't make a wide-character string. - Bug reported by "Carlos G." <charlie.brown.uy@gmail.com> - - (do_substr): If defaulting to length of rest of the string, - do it based on the wide char string if it's valid. - -Fri Dec 5 11:12:11 2008 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (free_rp): New function. - (redirect): Improved logic for yesterday's change, including - use of free_rp. - (close_redir): Use free_rp. - -Thu Dec 4 22:35:05 2008 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (redirect): Only put the new struct redirect into - the list if the file or pipe could actually be opened. Fixes - a bug with the wrong return value of close, noticed by - Seb <sbb@tuxfamily.org>. - * dfa.c (parse_bracket_exp_mb): Don't zero out work_mbc->chars - after we malloc'ed it. Fixes a leak found by valgrind when - using UTF-8. (Hmmm. This got fixed in January 2007; It seems - to have crept back into the code in the August 2007 merge with - GNU grep. Sigh.) - -Mon Oct 20 11:47:59 2008 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Add -g3 and -gdwarf-2 to CFLAGS if compiling with - GCC and doing development. Should have done this ages ago. - -Sun Aug 31 22:03:55 2008 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (set_BINMODE): Tighten up the code even more so - that it matches the documentation. - -Mon Aug 25 22:41:47 2008 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (set_BINMODE): Tighten up the code to only allow - certain reasonable values when setting BINMODE. - -Fri Aug 22 14:43:49 2008 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (nextfile): Users Strong In The Ways Of The Source can use - non-existant files on the command line without it being a fatal error. - -Wed Jul 30 23:10:51 2008 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (research): Don't ever use DFA if need_start. It can - break on some weird cases. Reported by - "T. X. G." <leopardie333@yahoo.com>. - -Wed Jul 30 22:27:20 2008 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_match): Add MAYBE_NUM flag to elements of array - created by `match' since data could come from user. Similar - semantics to `split'. Thanks to Dr. Dirk Zimoch <dirk.zimoch@psi.ch> - for reporting the bug. - -Tue Jun 24 07:44:06 2008 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (insert): Reworked for significant speed improvement - by Johan Walles <johan.walles@gmail.com>. Imported from grep - bug list. - * profile.c (tree_eval): Do a return after all the built-in - variables instead of a break. Thanks again to Hermann Peifer - <peifer@gmx.eu> for finding the problem. - -Sun Jun 22 23:08:14 2008 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (format_val): Restore old code to use %ld when the value - is within the range of a long; improves performance noticably for - applications that convert integers to strings. Use %.0f only for - integral values that are outside the range of a long. Thanks to - Hermann Peifer <peifer@gmx.eu> for pointing out the existence - of a problem. - -Fri May 23 12:08:24 2008 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (epsclosure): Change type of `visited' from int to char for - potential speedup. Based on bug report to bug-grep list from - Johan Walles <johan.walles@gmail.com>. - -Wed May 14 05:55:48 2008 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): For `%c' case, add a lint warning - if the value is greater than 255. - (mbc_byte_count, mbc_char_count): Remove unused variable `i'. - -Thu Apr 24 20:31:03 2008 Bruno Haible <bruno@clisp.org> - - * main.c (main): Move call to catch SIGBUS to before installation of - libsigsegv handler, since on some systems libsigsegv installs its - own handler for SIGBUS. - [STACK_SIZE]: Add a constant instead of inline. ADR. - -Wed Apr 23 22:30:27 2008 Duncan Moore <duncan.m00re@btinternet.com> - - * builtin.c (state): Do as an integer array for systems that need it. - (do_rand, init_rand): Modify call to `initstate' as needed. - -Wed Apr 23 22:22:06 2008 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (prednames): Add an extra zero to final initializer to - silence a compiler warning. Reported by Duncan Moore - <duncan.m00re@btinternet.com>. - -Wed Apr 23 21:36:06 2008 Steffen Schuler <schuler.steffen@googlemail.com> - - * field.c (fw_parse_field): Add code for multibyte case. - -Sat Mar 15 22:17:21 2008 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_length): Handle the case of the parameter being - an array that was a function parameter. - -Tue Mar 11 22:49:11 2008 Kimura Koichi <kimura.koichi@canon.co.jp> - - * builtin.c (format_tree): Fix call to mbc_byte_count to pass the - right number of characters based on the format type. - -Tue Mar 11 22:31:58 2008 Arnold D. Robbins <arnold@skeeve.com> - - * libsigsegv: Incorporated into the dist. - * Makefile.am (SUBDIRS): Added. Make it first so that the library - is built before gawk is. - (LDADD): Add the library. - (AM_CPPFLAGS): Add -I option to find <sigsegv.h> header. - * configure.ac: Add call to AC_CONFIG_SUBDIRS for libsigsegv. - * main.c (catchsegv, catchstackoverflow): New functions. - (main): Call into sigsegv library with them. - -Tue Mar 4 21:02:25 2008 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (mbc_char_count, mbc_byte_count): New functions to return - the number of m.b. chars there are and the number of bytes needed to - copy them. - (format_tree): Use them for %s and %c cases to adjust precision and - for copying characters at pr_tail label. - -Thu Feb 14 14:05:01 2008 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (init_args): Adjust type of third arg to remove warning from - GCC 4.2, add cast in call to make_string. Bleah. - -Fri Jan 25 12:13:39 2008 Dave Pitts <dpitts@cozx.com> - - * README_d/README.zos: New file. - * Makefile.am: Add sed on y.tab.c to convert older Bison "parse error" - messages to "syntax error" messages. - * configure.ac: Added ZOS_USS changes. - * m4/arch.m4: Added ZOS_USS changes. - * m4/inttypes_h.m4: Added ZOS_USS changes. - * m4/inttypes.m4: Added ZOS_USS changes. - * m4/stdint_h.m4: Added ZOS_USS changes. - * awkgram.y: Added USE_EBCDIC changes for EBCDIC collating sequence. - * awk.h: Added ZOS_USS compile changes. - * eval.c: Added EBCDIC casetable and ZOS_USS changes. - * regcomp.c: Added btowc function for ZOS_USS. - * regex.h: Changed __string to __cstring to avoid ZOS_USS header usage. - * regex_internal.h: Added ZOS_USS changes and type defines. - -Sun Jan 13 08:16:38 2008 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (epsclosure): Replace MALLOC + zero-out-loop with CALLOC for - large potential speedup, based on bug report to bug-grep list from - Johan Walles <johan.walles@gmail.com>. - (dfaanalyze): Made a similar change. - -Fri Dec 21 11:22:16 2007 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (pprint): Add a missing `#ifdef PROFILING'. - -Thu Dec 13 22:19:19 2007 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (parenthesize): Remove "!" from output string. - (tree_eval): Fix quotes for delete array case. - (pp_var): New function, call it as appropriate everywhere else. - -Fri Nov 30 11:11:52 2007 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (socketopen): Use NULL as first argument to `getaddrinfo' - if any_remote_host is true. Should help on Non-GLIBC systems. - -Thu Nov 15 22:01:36 2007 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (two_way_open): Case for ptys. Change search for letters - to avoid ASCII / EBCDIC problems. - -Mon Oct 22 08:49:05 2007 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.6: Release tar file made. - -Sun Oct 14 23:19:12 2007 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * Makefile.am: Avoid GNU make-specific `make -C'. - -Sun Oct 14 19:37:01 2007 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Add check for `atexit', needed by replacement - version of `snprintf'. - -Sun Sep 30 21:50:59 2007 Arnold D. Robbins <arnold@skeeve.com> - - Rationalize locale's influence on %'g, strtonum, and input. - - * awk.h (use_lc_numeric): Add declaration. - * builtin.c (format_tree): Add check for quote_flag and set - LC_NUMERIC so that The Right Thing gets done, then reset it. - (do_strtonum): Pass use_lc_numeric as second arg to isnondecimal. - * main.c (main): Have do_posix set use_lc_numeric also. - -Thu Sep 27 21:36:23 2007 Stepan Kasal <skasal@redhat.com> - - * configure.ac: Do not instantiate version.c; remove the hack - to keep version.c from being removed upon `make distclean'. - * Makefile.am (version.c): New rule. - (.c.i, SUFFIXES): Remove, `.i' is unused. - (MAINTAINERCLEANFILES): Remove awkgram.c; Automake takes care of that. - -Wed Sep 26 14:40:13 2007 Eli Zaretskii <eliz@gnu.org> - - * builtin.c (format_tree): Handle non-standard snprintf that - returns a negative value when the buffer is too small. - -Tue Sep 25 23:27:41 2007 Arnold D. Robbins <arnold@skeeve.com> - - * ChangeLog: Removed all leading spaces. Fixed up formatting of - entries to have capital letter after the colon. Fixed a number of - entries to have the '*' in the right place. ASCII instead of ascii. - Capitalize Linux. (Is this anal-retentive or what? Sheesh.) - -Tue Sep 25 08:24:11 2007 KIMURA Koichi <kimura.koichi@canon.co.jp> - - * awk.h: Add include of <io.h> for Visual Studio. - * regex_internal.h: Do the right thing for replacing alloca. - -Sat Sep 22 23:26:27 2007 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (set_FIELDWIDTHS): Restore behavior of 3.1.4 that allowed - FIELDWIDTHS to be "" without crashing, and such a value has NF = 0. - Yet Another Dark Corner. Thanks to Glenn Zazulia <gnu@t1.zazu.com> - for pointing out the problem. - - Unrelated: - - * builtin.c (format_free): Make `quote_flag' not sticky. Thanks to - Ulrich Drepper for pointing this out. - * main.c (main): Adjust calls to `setlocale' and `localeconv' so that - the %'d flag will work even if not using the locale's decimal point. - -Thu Sep 20 21:02:41 2007 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (hash, awk_hash, gst_hash_string): Add fourth argument - pointer to retrieve code. Only assign a value if not NULL. - Fix most places to pass NULL for fourth argument. - (assoc_lookup): Save the code in the node for use in growing the - array later. - (grow_table): Use the saved code instead of recomputing each time. - * awk.h (NODE hash): Add `code' member and `ahcode' macro. - (hash): Revise declaration. - * awkgram.y: Revise calls to `hash'. - -Tue Aug 21 17:47:07 2007 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (copyleft): Cite version 3 of the license. - * dfa.c: Minor edits to sync with grep 2.5.3. - -Sat Aug 11 22:48:11 2007 Arnold D. Robbins <arnold@skeeve.com> - - * COPYING: Replaced with GPL 3. - * All other relevent files: Upgraded to GPL 3. - -Fri Aug 3 15:01:38 2007 Andrew J. Schorr <ajschorr@users.sourceforge.net> - - * builtin.c (format_tree): Free `obuf' before call to `fatal' - to keep valgrind happy. - -Mon Jun 4 01:12:21 2007 Arnold D. Robbins <arnold@skeeve.com> - - * All relevant files: Updated copyright year to 2007. - -Mon May 28 08:06:15 2007 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (use_lc_numeric): New variable, true for new - option `--use-lc-numeric'. - (optab): Add option "use-lc-numeric". - (usage): Add to usage message. - (main): Allow the --use-lc-numeric option to also use the - local decimal point. - -Fri May 18 16:26:00 2007 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (_TANDME_SOURCE): Add test for ! _SCO_DS for - SCO systems. Thanks to John DuBois <spcecdt@armory.com> - -Tue May 15 13:14:04 2007 Arnold D. Robbins <arnold@skeeve.com> - - General capability suggested by Michael May <mmlpz@t-online.de>. - - * configure.ac: New option --disable-directories-fatal. Makes gawk - silently skip directories on the command line. - * io.c (iop_open): Add fourth parameter, pointer to flag which is set - to true if the file is a directory. In this case, close the fd and - return NULL. - (nextfile): Modify call to iop_open. Add logic to check for directory - and skip if --disable-directories-fatal was used. If the configure flag - was not used, then if do_traditional also skip. - (redirect): Modify call to iop_open and call fatal if isdir is true. - -Mon May 7 14:51:54 2007 Arnold D. Robbins <arnold@skeeve.com> - - * POSIX.STD: Updated. - -Wed May 2 19:29:56 2007 Stepan Kasal <kasal@ucw.cz> - - Revert precedence of concatenation and | getline. - From mail dated 2005-10-31. - - * awkgram.y (common_exp): Move the two rules for naked regexp and - the rule for "(...) in arr" to ... - (non_post_simp_exp): ... here ... - (simp_exp): ... and here, respectively. Fixes test/parsefld.awk/. - (simp_exp_nc): New nonterminal, needed to fix the - precedence of concatenation over "|getline". - (common_exp): Can also start with simp_exp_nc. - -Tue May 1 19:53:11 2007 Arnold D. Robbins <arnold@skeeve.com> - - Work around problem with /ab{0}c/. - * dfa.h (struct dfa): Add member `broken'. - * dfa.c (dfainit): Initialize it to false. - (lex): Set it if `minrep == maxrep && minrep == 0'. - * re.c (avoid_dfa): Check flag and return TRUE if set. - -Tue May 1 05:34:53 2007 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Add calls to AM_LANGINFO_CODESET, and gt_LC_MESSAGES. - Thanks to Matthew Burgess <matthew@linuxfromscratch.org>. - -Sun Apr 29 22:55:12 2007 Arnold D. Robbins <arnold@skeeve.com> - - * regcomp.c (utf8_sb_map): Remove const if not __GNUC__ >= 3. - * regex_internal.h (re_dfa_t): Bracket bizarre macro call with - check for _LIBC. - Thanks to Nelson Beebe for finding both problems. - -Sun Apr 29 13:10:31 2007 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_strftime): Add optional third argument to strftime() - which if non-zero or non-null means to use UTC. - * awkgram.y (tokentab): Allow three arguments to strftime. - -Fri Apr 27 11:44:27 2007 Arnold D. Robbins <arnold@skeeve.com> - - * README.cvs, bootstrap.sh: Added to CVS archive, not for - inclusion in tarballs. - -Fri Apr 20 16:48:30 2007 Pat Rankin <rankin@pactechdata.com> - - * awk.h: Move inclusion of redirect.h before HAVE_func blocks. - -Tue Apr 24 21:55:36 2007 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (research): In the multibyte case, fall back to the full - matcher if need_start, since there are bugs in the dfa matcher - in some obscure cases. Sigh. - * builtin.c (format_tree): When using %.0f instead of %d, assert - that we're not malloc-ing zero. - -Tue Apr 17 21:51:40 2007 Arnold D. Robbins <arnold@skeeve.com> - - Portability fixes for lsbcc from Nelson Beebe. - - * configure.ac: Check for stddef.h header. - * regex.h: Use check and include header to get size_t definition. - * main.c: Update UPDATE_YEAR, add #ifdef for HAVE_MTRACE. - -Tue Apr 17 13:49:13 2007 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Add test for struct sockaddr_storage. - * io.c: Add macro to redefine sockaddr_storage as sockaddr. - -Tue Apr 17 05:45:19 2007 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (get_a_record): Make it static, to match declaration at the - top of the file. (Thank you GCC for not reporting this. Grr.) - -Fri Apr 13 00:29:24 2007 Arnold D. Robbins <arnold@skeeve.com> - - * replace.c: Only include missing/getaddrinfo.c if HAVE_SOCKETS - is defined. Avoids problems on VMS. Thanks to Pat Rankin. - -Tue Apr 10 18:53:04 2007 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y, builtin.c, eval.c, ext.c, field.c, io.c, - node.c: Added some sanity to the lint warnings, to only - print them once if they are syntactic or of the type where - they don't need to be repeated. Switch to `short' instead - of `int', and in general use a variable named `warned', for - consistency. - -Sun Apr 8 16:49:28 2007 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y: Add guard code to ifdef out "signed" for VMS. Thanks for - the heads-up to Pat Rankin. - * regcomp.c (utf8_sb_map, init_dfa): Move non-GCC code to initialize - this array into code, to preserve word-size independance. - * configure.ac: Add check for <arpa/inet.h>. - * io.c: Include <arpa/inet.h> if we have it, instead of keyed off - Tandem, needed on some Unix systems. - * awk.h, main.c, msg.c, awkgram.y: Move to use of CAN_USE_STDARG_H - instead of continuously repeating check for header and defined STDC - and STDC. Thanks to Pat Rankin. - -Fri Apr 6 15:28:09 2007 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_length): Only print `length(array)' lint warning once. - * node.c (dump_wstr): Restore from being ifdef'ed out. Useful in case - it needs to be called from a debugger. - * regcomp.c (utf8_sb_map): Fix gcc-specific code. - * awk.h (snprintf): Add declaration in case not available on the system. - (Ceil, Floor): Add macros changing the name for VMS, in an attempt to - fix linkage problems. - * io.c: Simplify includes for internet headers and for getaddrinfo - defines. - -Wed Apr 4 23:38:24 2007 Arnold D. Robbins <arnold@skeeve.com> - - * io.c [AI_ADDRCONFIG]: Add a definition in case it's not available. - * main.c (usage): Add comment for translators to add translation - bug report address. - -Wed Apr 4 18:26:45 2007 Pat Rankin <rankin@pactechdata.com> - - * regexec.c (build_trtrable): Add missing #if HAVE_ALLOCA. - -Thu Mar 29 19:30:20 2007 Pat Rankin <rankin@pactechdata.com> - - * re.c (make_regexp): Cast casetable to RE_TRANSLATE_TYPE. - -Mon Mar 19 12:35:00 2007 Arnold D. Robbins <arnold@skeeve.com> - - Finish removing references to STRTOD_NOT_C89. - - * awk.h (gawk_strtod): Use now if there is no strtod. - * replace.c (strtod.c): Include if there is no strtod. - * configure.ac [GAWK_AC_FUNC_STRTOD_C89]: Removed. - -Mon Mar 19 12:17:16 2007 Kimura Koichi <kimura.koichi@canon.co.jp> - - * dfa.c (dfaexec): Add check for half-width katakana characters in - character classes in ShiftJIS locale. - From mail originally sent Mon, 01 Aug 2005 09:07:55 +0900 - -Fri Mar 9 11:53:25 2007 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (rebuild_record): Assert that wide string is off when - creating new fields. Inspired by Karel Zak. - -Fri Mar 9 11:26:01 2007 Matthew Woehlke <mwoehlke@tibco.com> - - * io.c (get_a_record): Limit the max amount read to SSIZE_MAX. Needed - on Tandem systems where this amount is incredibly small. - -Tue Mar 6 08:17:49 2007 Paul Eggert <eggert@cs.ucla.edu> - - * node.c (is_ieee_magic_val): Don't rely on strncasecmp; it mishandles - ASCII bytes in some locales. - (get_ieee_magic_val): Use strtod if it works, relying on our handbuilt - code only if it doesn't work. This is more likely to do the right - thing with strings like "-nan". - -Tue Feb 27 20:51:29 2007 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac (AM_PROG_CC_STDC): Removed, per email suggestion - from Stepan Kasal some time ago. - -Tue Feb 27 20:44:07 2007 Aleksey Cheusov <vle@gmx.net> - - * awk.h: Revise checks for MEMCPY_ULONG and MEMSET_ULONG - for MS Interix using MSVC. - * configure.ac (AC_CHECK_FUNCS): Add checks for memcopy_ulong - and memset_ulong. - From mail dated Tue Aug 30 12:38:39 2005. - -Mon Feb 26 12:47:10 2007 Tony Leneis <tleneis@cvrreg.com> - - * dfa.c (dfacomp): Check that regexp is non-zero in length - also. Avoids problems with empty regex and IGNORECASE on - systems where `malloc(0)' returns a non-NULL pointer. - From mail dated Wed, 26 Oct 2005 15:42:07 -0700. - -Wed Feb 21 10:23:12 2007 Arnold D. Robbins <arnold@skeeve.com> - - * floatcomp.c (Floor, Ceil): Restore correct expression for Cray. - Then ifdef out the whole business, since it's likely to be obsolete. - Thanks to Paul Eggert. - -Mon Feb 19 12:28:47 2007 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (format_val): Simplify code: always format the value - ourselves. Use %.0f if the value is integral. - * floatcomp.c (dval_out_of_range): Remove function, not needed. - (awknum_fraction_bits): Removed. - (adjust_uint): New function, defined IFF have uintmax_t. - * builtin.c (tmp_integer): Use adjust_uint. - Move include of <inttypes.h> and <stdint.h> ... - * awk.h: to here. - (awknum_fraction_bits): Removed. - (adjust_uint): Declare, or define as do-nothing macro. - -Sun Feb 18 17:43:33 2007 Arnold D. Robbins <arnold@skeeve.com> - - * node.c, floatcomp.c: Add include of <math.h> to get - correct declarations of math functions. - * configure.ac: If doing development, add -DYYDEBUG and also - -fno-builtin for GCC. - -Wed Feb 14 19:42:08 2007 Arnold D. Robbins <arnold@skeeve.com> - - Add support for special infinity and NaN values in non-POSIX - mode, and in POSIX mode, just call system `strtod'. - - * configure.ac [GAWK_AC_FUNC_STRTOD_C89]: Comment out. - * node.c (is_ieee_magic_val, get_ieee_magic_val): New functions. - (r_force_number): Adapt logic and use new functions. - -Tue Feb 13 13:02:32 2007 Arnold D. Robbins <arnold@skeeve.com> - - Move Paul's numeric stuff to a separate file to make code cleaner. - - * floatcomp.c (awknum_fraction_bits): New variable. - (Floor, Ceil): Functions, moved here from macros in builtin.c. - (dval_out_of_range): New function for checking if double is in range - of long. - (FLT_RADIX, FLT_MANT_DIG, DBL_MANT_DIG, AWKSMALL_MANT_DIG, - AWKNUM_MANT_DIG, AWKNUM_FRACTION_BITS): Moved here from awk.h. - * awk.h: Add decls of stuff now in floatcomp.c. - * Makefile.am[base_sources]: Add floatcomp.c. - * builtin.c (tmp_integer): Refer to `awknum_fraction_bits' - instead of AWKNUM_FRACTION_BITS. - * node.c (format_val): Call `dval_out_of_range' instead of - inline coding the test. - -2007-02-06 Paul Eggert <eggert@cs.ucla.edu> - - * node.c (format_val): Fix bug when handling numbers close to - LONG_MIN and LONG_MAX. - * awk.h (FLT_RADIX, FLT_MANT_DIG, DBL_MANT_DIG, AWKSMALL_MANT_DIG, - AWKNUM_MANT_DIG, AWKNUM_FRACTION_BITS): Moved here from builtin.c. - * builtin.c: Move those macros to awk.h. - * awk.h (DBL_FRACTION_BITS): New macro. - -Fri Feb 9 13:40:10 2007 Matthew Woehlke <mw_triad@users.sourceforge.net> - - More Tandem fixes. - - * configure.ac: Check in Tandem's zrldsrl library for dlopen. - * regex_internal.h: Move <alloca.h> include into ifdef. - * regexec.c: Bracket alloca uses. Fix GCC use of `?:'. - -Fri Feb 9 13:30:15 2007 Arnold D. Robbins <arnold@skeeve.com> - - * replace.c: Add include of snprintf.c. Ooops! - * configure.ac: Add check for mkstemp and tmpfile for replacement - snprintf.c. - -Tue Feb 6 14:33:51 2007 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (format_val): Restructure a bit to remove need for and - use of goto. - -Sun Feb 4 16:35:21 2007 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (field_spec, opt_incdec): New terminals. - (variable): Change definition of field reference to use field_spec. - See test/parse1.awk. - -Thu Feb 1 17:38:38 2007 Arnold D. Robbins <arnold@skeeve.com> - - * main.c: Allow YYDEBUG to enable the `-D' option, not just - GAWKDEBUG. - -Wed Jan 31 19:30:26 2007 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (format_val): Restore my test for numeric values - being representable, as it includes more conditions than - Andrew's, pending a thorough review of undealt-with emails on - the topic. - * regexec.c (proceed_next_node): Move check for NULL to after - variable declarations inside initial `if'. - -Wed Jan 31 19:25:21 2007 Andrew J. Schorr <ajschorr@users.sourceforge.net> - - * configure.ac (getaddrinfo): Improve test, since this function - can be in libsocket on some systems. - -Mon Jan 29 15:33:10 2007 Andrew J. Schorr <ajschorr@users.sourceforge.net> - - * Makefile.am (valgrind): Also call new valgrind-scan target. - -Mon Jan 29 12:44:54 2007 Andreas Schwab <schwab@suse.de> - - * dfa.c (copytoks): Adjust index into multibyte csets when - copying an MBCSET token. - -Fri Jan 26 20:01:38 2007 Andrew J. Schorr <ajschorr@users.sourceforge.net> - - * node.c (format_val): Test whether a numeric value is integral - simply by converting it to long and then back again, and checking - if the value matches. That's more robust than trying to test - whether the floating-point value is representable as a long. - * builtin.c (format_tree): Fix buffer overflow bug, off-by-one errors - in checking snprintf return codes, and use "%.0f" to implement "%d" - formatting. For octal or hex formatting, test whether the value - is integral by trying to convert back to floating point and seeing - if the value matches. This is more robust than trying to test - whether the floating-point value is representable as an integer. - -Tue Jan 23 17:49:28 2007 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (socketopen): Initialize socketfd to avoid "may be used - uninitialized" warning. - * regexec.c (regexec, re_search_stub): Removed unused variable `dfa'. - * builtin.c (wide_tolower_toupper): Fix signedness of pointer in - allocation calls and in call to make_str_node. - -Mon Jan 22 12:57:19 2007 Kimura Koichi <kimura.koichi@canon.co.jp> - - Deal with halfwidth katakana in SJIS locale inside character ranges. - Based on http://sources.redhat.com/bugzilla/show_bug.cgi?id=1149. - Changes affect non-__LIBC code only. - - * regcomp.c (re_compile_fastmap_iter): Handle half-size characters. - * regexec.c (check_node_accept_bytes): Same. - -Thu Jan 18 22:19:01 2007 Karel Zak <kzak@redhat.com> - - * node.c (free_wstr): Assert that type is Node_val. - -Thu Jan 18 12:18:47 2007 Arnold D. Robbins <arnold@skeeve.com> - - * regcomp.c (re_compile_fastmap_iter): Declare `dfa' to be - be volatile. Fixes valgrind problem with the ignrcase test. - Sheesh. Gawk should now be valgrind-clean. We hope. - -Mon Jan 15 14:28:04 2007 Arnold D. Robbins <arnold@skeeve.com> - - Use getaddrinfo instead of gethostbyname, to handle IPV6 - format addresses. Based on patch submitted by - Jan Pazdziora <jpazdziora@redhat.com>. - - * configure.ac: Add getaddrinfo to list of checked functions. - * configh.in, configure: Regenerated. - * io.c: Rework includes based on HAVE_GETADDRINFO. - (socketopen): Reworked for getaddrinfo. - (devopen): Modified for new socketopen. - * replace.c: Include getaddrinfo.c if necessary. - -Sun Jan 14 12:19:53 2007 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y: For bad name in array subscripting, build a - valid node anyway to avoid invalid reads reported by valgrind. - * dfa.c (parse_bracket_exp_mb): Remove assignment of NULL - to work_mbc->chars, was losing data malloc'ed earlier. Thanks - to valgrind. - (state_index): Alway initialize d->states[i].mbps elements to zero. - (dfafree): Free allocated d->states[i].mbps.elems if needed. - * regex.c: Try harder to undef alloca. - * regex_internal.h (__mempcpy): Undef before redefinining for - more recent versions of GLIBC. - -Sat Jan 13 22:10:43 2007 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (str2wstr): For count of zero from mbrtowc, set count to 1 - and fall through to code that copies. Originally from Paul Eggert. - - Unrelated: - * configure.ac: Add call to AC_USE_SYSTEM_EXTENSIONS, should help - on Tandem. This lets us remove AC_AIX and AC_MINIX. - - From Matthew Woehlke <mwoehlke@tibco.com> for Tandem: - - * awk.h (_TANDEM_SOURCE): Also define _XOPEN_SOURCE_EXTENDED. - * io.c (_TANDEM_SOURCE): Include more headers. - -Sat Jan 13 21:53:48 2007 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * field.c (set_FIELDWIDTHS): Avoid writing one past the end of - the array. - * node.c (r_force_number): Avoid reading uninitialized variable. - -Sat Jan 13 21:37:15 2007 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.am (valgrind): New target based on idea from - Ralf Wildenhues for running valgrind on test suite. - -Sat Jan 13 21:24:54 2007 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - Enable more `--lint-old' warnings. - * awkgram.y: Warning about multiple BEGIN or END rules, - `index in array' outside of for loops, multidimensional arrays. - * field.c (set_FS): Warn about regex FS. - * node.c (parse_escape): Warn about `\b', `\f', `\r'. - -Sat Jan 13 20:56:56 2007 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (wcasestrstr): Revert use of continue, reinstate goto. - Thanks to Andrew Schorr. - (free_wstr): Move zeroing of wsptr and wslen and clearing of flag - back outside the if. - * field.c (rebuild_record): In loop that copies fields to new record, - add call to `free_wstr'. This ensures that flag values are correct - and avoids double free later. Thanks to Karel Zak for pointing out - the problem. - -Fri Jan 12 14:01:51 2007 Dmitry V. Levin <ldv@altlinux.org> - - * builtin.c (do_match): In addition to "gawk_mb_cur_max > 1" check, - check for positive string length. - -Fri Jan 12 13:57:20 2007 Arnold D. Robbins <arnold@skeeve.com> - - Sync with GLIBC. Bi-annual this time. - - * regexec.c, regex.h, regex_internal.c, regcomp.c: - Reapply any portability patches specific to gawk. - * regex_internal.h (build_wcs_upper_buffer): Fix return type - in declaration. Reapply any portability patches specific to gawk. - * regex.c: Add definitions for `bool', `true' and `false'. - Define `alloca' to something invalid to keep it from linking - in case a usage of `alloca' slipped through. Reapply any portability - patches specific to gawk. - - Base versions: - getopt1.c 1.10 Tue Mar 9 10:35:37 2004 - getopt.c 1.55 Fri Mar 24 10:59:56 2006 - getopt.h 1.21 Fri Mar 19 00:19:32 2004 - getopt_int.h 1.1 Tue Mar 9 10:31:19 2004 - regex.c 1.129 Fri Mar 24 10:59:57 2006 - regexec.c 1.97 Fri Mar 24 10:59:57 2006 - regex.h 1.40 Mon Sep 25 20:03:05 2006 - regex_internal.c 1.67 Mon Sep 25 20:03:05 2006 - regex_internal.h 1.73 Fri Mar 24 10:59:57 2006 - regcomp.c 1.112 Fri Mar 24 10:59:57 2006 - -Fri Jan 12 12:28:51 2007 Arnold D. Robbins <arnold@skeeve.com> - - * ABOUT-NLS, INSTALL, Makefile.in, aclocal.m4, config.guess, - config.rpath, config.sub, configh.in, configure, configure.ac, - depcomp, gettext.h, install-sh, missing, mkinstalldirs, ylwrap: - Updated to current autotools, Autoconf 2.61, Automake 1.10, - gettext 0.16.1. - -Thu Jan 4 18:23:50 2007 Dmitry V. Levin <ldv@altlinux.org> - - * node.c (free_wstr): Zero wstptr and wstlen only if WSTRCUR - flag is set. - (str2wstr): Replace invalid `free' call with `free_wstr' call. - -Thu Jan 4 16:49:21 2007 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_match): Move freeing of wc_indices to outside if. - Thanks to Sven Wegener <swegener@gentoo.org> for the report. - -Thu Dec 21 14:32:13 2006 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (arg_assign): Reassign the '=' only if not initing. - * profile.c (varname): Deleted. - (pp_concat): New function to print concatenations. - (tree_eval): Don't use `varname' anymore. Use `pp_concat'. - -Mon Dec 11 12:43:04 2006 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (sub_common): Clear numeric flags on result - unconditionally. - * node.c (wcasestr): Replace `goto' with `continue'. - -Thu Nov 30 15:54:07 2006 Bruno Haible <bruno@clisp.org>. - - * builtin.c: Change use of HAVE_LC_MESSAGES to defined(LC_MESSAGES). - Bruno suggested only for dcngettext, I did it everywhere (ADR). - -Wed Sep 6 02:04:32 2006 Andrew J. Schorr <aschorr@telemetry-investments.com> - - * awkgram.y (get_src_buf): Adjust `source' and `sourceline' to - correctly handle mixed -f and --source options. - -Mon Aug 28 21:17:20 2006 Arnold D. Robbins <arnold@skeeve.com> - - * AUTHORS, FUTURES, LIMITATIONS, NEWS, POSIX.STD, PROBLEMS, README: - Added FSF copyright for no other reason than to satisfy the flunkies - running Savannah. - * Makefile.am: Removed `ansi2knr' from AUTOMAKE_OPTIONS also. - -Fri Aug 11 15:07:45 2006 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (set_field, rebuild_record, set_record): Remove calls to - `free_wstr' since they're not needed. - -Sat Aug 5 22:04:24 2006 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (unref): Call `free_wstr' for fields also. Thanks to - Andrew Schorr. - -Tue Jul 4 22:43:05 2006 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (interpret): Node_assign_concat case: Turn off NUMBER and - NUMCUR flags in result. Sheesh. Thanks to - <Heiner.Marxen@DrB.Insel.DE> for finding the problem. - -Mon Jul 3 22:49:44 2006 Pat Rankin <rankin@pactechdata.com> - - * main.c (load_environ): When AWKPATH is missing from ENVIRON[], - try to find it with getenv("AWKPATH") before resorting to DEFPATH. - Suggested by Galen Tackett. - -Mon Jul 3 00:27:59 2006 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (INTERNAL_HANDLE): New constant for use by `iop_alloc' - when allocating an internal IOBUF. - (pidopen, useropen): Use it. - (iop_alloc): Add check for it and just return iop. - -Fri Jun 23 15:48:34 2006 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (subn): At end for `do_sprintf' check, verify - that lnode is not NULL before using it to assign through. - -Sun Jun 18 22:27:25 2006 Arnold D. Robbins <arnold@skeeve.com> - - Repair internal names like /dev/user, /dev/pid, as well as /dev/fd/N, - which have been broken for a long time but noone noticed. - - * io.c (is_internal): New macro to check for internal file like - `/dev/user'. - (spec_setup): Reduce to two parameters, allocate logic is always true. - Add IOP_NO_FREE to flag. - (pidopen, useropen): Return `IOBUF *' instead of int. Fix - logic to test if `iop' parameter is NULL and if so to allocate it. - (specfdopen,): Return `IOBUF *' instead of int. Fix - logic to test if `iop' parameter is NULL and if so to allocate it. - Don't set IOP_NO_FREE in flag. - (iop_open): Remove `IOBUF iob' field from `struct internal' and its use - and the use of `spec_setup' from the code here. Change the check in the - call to the open function to look for NULL. - (get_a_record): Use `is_internal' in initial check for filling the - buffer to not try to call `read' on internal files. If true, set - the IOP_AT_EOF in the flag and return EOF. - -Fri Mar 24 13:05:56 2006 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (get_src_buf): Remove function argument types from - declaration of `readfunc' to avoid bugaboos with VMS declaration - of `read' system call. - -Fri Mar 10 06:28:23 2006 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (free_wstr): New declaration if MBS_SUPPORT, empty macro - otherwise. - * node.c (free_wstr): New function, inside MBS_SUPPORT. Frees the wide - string part of a node. Provided so that it can be used consistently - everywhere. - (format_val, r_dupnode, mk_number, make_str_node, unref): Use it. - * builtin.c (sub_common): Call `free_wstr' instead of doing it manually. - * eval.c (r_tree_eval): Same in Node_assign_concat case. - * field.c (set_field, rebuild_record, set_record): Add calls to - `free_wstr'. - -Mon Feb 13 22:45:34 2006 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (r_tree_eval): Node_assign_concat. Release any - wide string value and reset the WSTRCUR flag. Based on - bug report by Karel Zak. - -2006-01-03 Paul Eggert <eggert@cs.ucla.edu> - - * Makefile.am (awkgram.c): Use $(AWK), not awk, so that the rule - works on Solaris too (e.g., Solaris 10). Problem reported by - Andrew J. Schorr. - -Mon Dec 19 05:39:46 2005 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (format_val): Account for overlow of conversion - from double to long. Shows up worse on 64-bit systems. - -Wed Dec 14 18:57:34 2005 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (set_BINMODE): Fix logic of test for no numeric value. - Makes `gawk -v BINMODE=1 ...' work again. Thanks to Eli Zaretskii - <eliz@gnu.org> for pointing out the problem. - -Wed Oct 19 10:58:27 2005 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main, arg_init): Only use the locale's decimal - point if do_posix is set. Too many people the world over - have complained about this. - -Fri Oct 7 13:54:09 2005 Arnold D. Robbins <arnold@skeeve.com> - - Enhancement to fix from 23 Sept 2005, suggested by Pat Rankin. - - * awkgram.y (one_line_close): New function, closes open FILE * used - by `read_one_line'. - (fp): Static FILE * used by `read_one_line' and `one_line_close'. - * awkgram.y (read_one_line): Simplify check for call to `fdopen'. - (get_src_buf): New variable `closefunc' which is a pointer to a - function implementing the `close' system call interface. - -Fri Oct 7 13:23:29 2005 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (set_FIELDWIDTHS): Fix off-by-one error in assignment - of sentinel value at end of FIELDWIDTHS array. - -Fri Sep 23 16:05:13 2005 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (read_one_line): New function, mainly for debugging, - that reads one line of data at a time to pass back as a buffer. - Emulates the variable-length record filesystem of VMS, where - we first saw the problem fixed here. - (get_src_buf): New variable `readfunc' which is a pointer to a - function implementing the `read' system call interface. Based on - an environment variable, use `read_one_line' instead of `read' - for testing. Make the test for expanding the buffer smarter, - so that it doesn't grow unnecessarily. - - Thanks to Galen Tackett (tackett_galen@bah.com) for reporting - the problem and to Anders Wallin and Pat Rankin for help - tracing and reproducing the problem and testing the fix. - -Fri Sep 9 15:06:07 2005 Arnold D. Robbins <arnold@skeeve.com> - - * hard-locale.h (xmalloc): Move declaration to file scope - for non-glibc systems and gcc 4. Thanks to Kito Danya Dietrich - <kito@gentoo.org>. - -Thu Aug 25 22:40:40 2005 Arnold D. Robbins <arnold@skeeve.com> - - * regcomp.c (build_range_exp): Avoid `btowc' for single-byte - characters. Fedora Core 2, maybe others, have a broken version - that can't handle values > 127. - -Fri Aug 19 16:13:28 2005 Arnold D. Robbins <arnold@skeeve.com> - - * regexec.c (proceed_next_node): Added a band-aid check at the - top of the first `if' to make sure that `mctx->state_log[*pidx]' - isn't NULL. - -Fri Aug 12 13:10:33 2005 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (iop_alloc): Only free `iop' if it was malloc'ed in - the first place. - -Tue Jul 26 21:46:16 2005 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.5: Release tar file made. - -Tue Jul 26 21:44:54 2005 Arnold D. Robbins <arnold@skeeve.com> - - Copyright dates on all relevant files updated to 2005. - -Wed Jul 6 17:09:02 2005 Arnold D. Robbins <arnold@skeeve.com> - - Minor cleanups: - - * io.c (do_index): Remove unused variables `mbclen', `mbs1' and `mbs2'. - * node.c (wstrstr): Remove unsed variable `j'. - (dump_wstr): `#ifdef' out, not currently needed. - * eval.c (op_assign): Move decl of `t1' and `t2' into a separate block - for the `! HAVE_FMOD' case. Keeps the compiler quiet. Similar for - `ltemp'. - -Wed Jul 6 16:51:31 2005 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (close_io): Now takes pointer to boolean parameter indicating - if there was a problem closing standard output or standard error. - Update it in the right places. - * awk.h (close_io): Update the declaration. - * main.c (main): New variable `stdio_problem'. Pass it to `close_io'. - Check the result and exit non-zero if there was a problem. - (usage, version): Print warning message if problems with stdout. - - Unrelated: - - * main.c (main): For call to `setlocale' for LC_MESSAGES, just use - `#ifdef LC_MESSAGES'. Per Bruno Haible <bruno@clisp.org>. - -Wed Jul 6 16:44:58 2005 Jim Meyering <jim@meyering.net> - - * main.c (init_fds): If any of the STDIN_FILENO, STDOUT_FILENO, - STDERR_FILENO are initially closed, reopen them with permissions - contrary to common usage so that any reasonable attempt to use - them will evoke the same sort of error as reading or writing to - a closed file descriptor would. - -Mon Jul 4 09:38:29 2005 Arnold D. Robbins <arnold@skeeve.com> - - More multibyte fixes from Kimura Koichi, <kimura.koichi@canon.co.jp>. - - * node.c (format_val, r_dupnode): Spell `wstptr' correctly. - * regex_internal.c (build_wcs_upper_buffer): Label `offsets_needed' - should not be inside `#ifdef _LIBC'. - * regcomp.c (build_charclass): Fix declaration of `class_name' in - prototype to not be unsigned. - -Thu Jun 30 11:52:34 2005 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (tree_eval): Node_not: Remember to print the exclamation - point! Thanks to Dan Nielsen <Dan.Nielsen@corporate.ge.com> - for the bug report. - * mbsupport.h: Fix spelling of HAVE_ISWUPPER. Thanks to - Kimura Koichi, <kimura.koichi@canon.co.jp>. - -Sun Jun 26 16:37:59 2005 Arnold D. Robbins <arnold@skeeve.com> - - Unrelated changes: - - * builtin.c (do_length): Allow array argument to length(). - Returns number of elements in array. - - * awkgram.y (yylex): Ignore carriage returns in source code. Sigh. - -Wed Jun 15 22:12:15 2005 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (isnondecimal): Check loc.decimal_point before using it. - Avoids problems with command line assignment when locale info may - not be set up all the way yet. - -Wed Jun 15 21:59:54 2005 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (make_str_node): If working with multibyte characters, while - parsing string constants, keep multibyte characters together. This - avoids problems in cases where one of the bytes is backslash. Initial - patch supplied by Kimura Koichi, <kimura.koichi@canon.co.jp>. - -Tue Jun 14 21:50:37 2005 Andrew J. Schorr <ajschorr@users.sourceforge.net> - - Use Exponentiation By Squaring for integer powers for ^ and ^=. - - * eval.c (calc_exp, cal_exp_posint): New functions. - (r_tree_eval): Use them. - -Fri Jun 3 12:15:54 2005 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Further change the hack at the end so that - it works on Mac OS X `sed'. Sigh. - -Thu Jun 2 22:44:01 2005 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac (TYPE_SOCKLEN_T): Use `int' as default type if can't - figure one out. - * awkgram.y: Warn that `//' is not a C++ comment. (:-) - -Thu Jun 2 20:55:27 2005 Arnold D. Robbins <arnold@skeeve.com> - - From: Benno Schulenberg <benno@nietvergeten.nl> - - * eval.c (func_call): Take message out of gettext call since it's for - debugging. - * ext.c (get_actual_argument): Fix formatting of message. - -Wed May 25 09:19:37 2005 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Change hack at end that fixes Makefile to keep - version.c to use `sed' and not `ed'. More portable to OS/2, probably - other systems. - -Mon May 23 09:01:26 2005 Arnold D. Robbins <arnold@skeeve.com> - - Portability help from Jim Meyering. - - * io.c: Rework ifdefs for <inttypes.h> and <stdint.h>. Test them - individually. - * configure.ac: Add AC_C_RESTRICT and code for socklen_t from rsync. - Check for isascii and btowc for regex. - -Sat May 14 22:49:54 2005 Arnold D. Robbins <arnold@skeeve.com> - - * wait_any (errno): Remove decl. - * gawk_popen: The pipe-simulated but not VMS or DOS version. Remove - decl/use of `strdup' in favor of `emalloc' and `strcpy'. - -Wed May 11 18:33:30 2005 Arnold D. Robbins <arnold@skeeve.com> - - All files: Updated address of FSF to: - - 51 Franklin Street, Fifth Floor - Cambridge, MA 02110-1301 - -Wed May 11 18:19:03 2005 Jim Meyering <jim@meyering.net> - - * configure.ac: Use AM_GNU_GETTEXT([external]). - Reflect upgrade to gettext-0.14.4. - Reflect renaming of `jm_'-prefixed macros. - (AC_CONFIG_FILES): Remove intl/Makefile. - - * Makefile.am (SUBDIRS): Remove intl. - (AM_CPPFLAGS): Remove -Iintl. - -Wed May 11 11:42:06 2005 Arnold D. Robbins <arnold@skeeve.com> - - Straighten out mess with `isblank' which is C99 <ctype.h> function. - - * configure.ac: Remove check for `isblank' in call to AC_CHECK_FUNCS. - * regex_internal.h: #ifdef out definition of `isblank' and provide - `is_blank' function a la dfa.c. - * field.c: Ditto. - * regcomp.c: #ifdef use of `isblank' and add `is_blank' use instead. - -Mon May 9 08:29:37 2005 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Add type check for `socklen_t', fixes compile - warning on AMD/64 Linux. - * io.c (socketopen): Change type of socket length variables - to `socklen_t' from `size_t'. - -Thu May 5 22:00:03 2005 John E. Haque <j.eh@mchsi.com> - - * io.c (iop_alloc): Let an input processor hook installed via - `register_open_hooks' open its own fd in case gawk does not know - how to open it. - (iop_open): Call `os_close_on_exec' after `iop_alloc'. - ADR: If `iop_alloc' returns NULL but the fd is valid, close - the fd to avoid an fd leak. - -Mon May 2 08:05:59 2005 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (update_ERRNO): Don't use `return' in a `void' function. - * awk.h (AWKNUM): Back out use of `long double' based on LDBL_MANT_DIG. - * builtin.c (tmp_integer): Back out extra ifdefs. - -Fri Apr 29 13:01:05 2005 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Look for `isblank' function. - * field.c: Add define for `isblank' if we don't have it. - -Fri Apr 29 12:01:33 2005 Julian Foad <julianfoad@btopenworld.com> - - From grep. Doesn't seem to affect awk. - - * dfa.c (lex): Fix bug #9519: "echo do^re | grep do^re" was - failing to find a match. [Towards end, set `lasttok' before - returning `c'.] - -Fri Apr 29 00:28:46 2005 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Jump through an amazingly convoluted hoop to get - config.status to keep version.c upon `make distclean'. Seems to - work though. - -Thu Apr 28 23:40:02 2005 Stepan Kasal <kasal@ucw.cz> - - * configure.ac (PRINTF_HAS_F_FORMAT): Some cosmetic changes. - (custom.h): Don't cat custom.h at the end of config.h; instead, use - AH_BOTTOM([#include "custom.h"]) - * awklib/Makefile.am (AM_CPPFLAGS): Add $(top_srcdir) so that - custom.h can be found. - -Thu Apr 28 23:21:22 2005 Jim Meyering <jim@meyering.net> - - * field.c (set_FIELDWIDTHS): Tighten up the code to accept FIELDWIDTHS - values in [1..INT_MAX], e.g., detect overflow and invalid strings, - and reject strings starting with `-'. - -Thu Apr 28 23:05:33 2005 Stepan Kasal <kasal@ucw.cz> - - * dfa.c (parse_bracket_exp_mb): Shorten one part of the code, to get - closer to grep's copy. - -Thu Apr 28 23:00:58 2005 Pat Rankin <rankin@pactechdata.com> - - * builtin.c (format_tree) [#if VAXCRTL]: For floating point - formatting, reject zero_flag if using old VAXCRTL run-time - library to avoid getting erroneous results which appear as if - numerically incorrect (due to an embedded space in some cases, - extra trailing zeroes in others) rather than just misformatted. - `hsprint' test still fails, but not as badly. - -Thu Apr 28 19:12:03 2005 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (reflags2str): Add three new RE_ flags from current regex.h - to bring the table up to date. - - * builtin.c (format_tree): Save 2 spare bytes instead of one. Suggested - by Stepan Kasal. - -Thu Apr 28 18:16:09 2005 Andrew J. Schorr <ajschorr@users.sourceforge.net> - - * awk.h (IOBUF): Add new fields `opaque', `get_record', and - *close_func', to support insertion of an alternate input processor. - This is used by the XML extension. - (register_deferred_variable, register_open_hook, update_ERRNO_saved): - Declare new functions. - (load_environ, load_procinfo): Remove declarations -- these functions - are no longer global, since we use register_deferred_variable instead. - * awkgram.y (register_deferred_variable): New function to allow - calling code to register special variable names that trigger a callback - upon the first reference. This is now used to implement ENVIRON - and PROCINFO. - (variable): Search the list of deferred variables instead of hardcoded - tests for ENVIRON and PROCINFO. - * eval.c (set_BINMODE): Fix spelling of "arbitrary" in warning message. - (update_ERRNO_saved): New function that allows the caller to specify - the errno value instead of using the current value. - (update_ERRNO): Implement by calling update_ERRNO_saved(errno). - * io.c (iop_close): Call `iop->close_func' if non-NULL. - (close_redir): Should save `errno' value, otherwise `lintwarn' messages - might update it. Then use `update_ERRNO_saved' to set ERRNO. - (do_getline): Call `update_ERRNO_saved' to set ERRNO based on the - error code returned by the redirect function (instead of the current - value of errno). Similarly, use `update_ERRNO_saved' to set ERRNO - based on the value returned by `get_a_record'. But add a special - check to avoid updating ERRNO if `get_a_record' returns an error - code value of -1 (this is used by the XML extension which already - sets ERRNO before returning). - (register_open_hook): New function to register a function to be - called whenever a new data file is opened. This can be used to - install a special input processor (as in the XML extension). - (iop_alloc): Call registered open hook. - (get_a_record): If a `get_record' method has been set, call that instead. - * main.c (init_vars): Use `register_deferred_variable' to implement - ENVIRON and PROCINFO. - (load_environ, load_procinfo): Now static instead of global. - * doc/gawk.texi: Document new internal functions `update_ERRNO_saved', - `register_deferred_variable', and `register_open_hook'. - -Thu Apr 28 10:50:10 2005 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (assoc_find, do_delete): Change incorrect uses of STREQN - to memcmp. - * builtin.c (do_index): Same. - * field.c (set_FS): Same. - * io.c (redirect, getredirect, do_close, set_RS): Same. - * re.c (reisstring): Same. - -Wed Apr 27 21:35:57 2005 Arnold D. Robbins <arnold@skeeve.com> - - Allow for long double. Initial changes from Jean-Marc Saffroy - <jean-marc.saffroy@ext.bull.net>. - - * awk.h (AWKNUM): If have long doubles (LDBL_MANT_DIG), define AWKNUM - as long double, otherwise just use double. - * builtin.c (format_tree): Change type of tmpval to double. - (do_strtonum): Same for `d' and types used in casts. - (tmp_integer): Don't do bit shifting if have long doubles. - - Unrelated, from Andrew J. Schorr: - - * io.c (close_one): Check for RED_FILE|RED_WRITE, not just RED_FILE. - -Mon Apr 25 12:23:18 2005 Andrew J. Schorr <aschorr@telemetry-investments.com> - - * eval.c (r_tree_eval): In Node_assign_concat case, when copying string - constants, include the terminating zero byte. - -Fri Apr 1 06:26:31 2005 Arnold D. Robbins <arnold@skeeve.com> - - Update to Automake 1.9.5. - - * INSTALL, aclocal.m4, depcomp, install-sh, missing, - mkinstalldirs, ylwrap: Updated. - - Unrelated: - - * builtin.c (do_tolower, do_toupper): Remove old code - based on 8-bit character table. - -Wed Feb 23 08:23:22 2005 Arnold D. Robbins <arnold@skeeve.com> - - * bisonfix.awk: New file, fixes continued #ifdef for dumb compilers. - * Makefile.am (awkgram.c): Fix rule to use it. - (EXTRA_DIST): Include bisonfix.awk. - -Tue Feb 22 21:18:50 2005 Arnold D. Robbins <arnold@skeeve.com> - - * random.h: Remove include of config.h and move it to ... - * random.c: Here. Move include of random.h back to where it was. - - * regcomp.c, regex.c, regexec.c: NUKED all use of alloca not inside - `_LIBC' ifdef. Hooray! - -Sat Feb 19 20:13:28 2005 Pat Rankin <rankin@pactechdata.com> - - Workarounds for bugs and missing C89 features in old VAX C compiler. - - * regex_internal.h "mbsupport.h": Suppress inclusion if NO_MBSUPPORT - is defined. - [MB_CUR_MAX]: Define as 1 if mbsupport.h hasn't defined it. - [ER_ERRMSG, ERRMSG_TYPE, ERRMSG_OFFSET, ERRMSG_SEPARATOR]: New macros - conditionalized upon gawk's NO_TOKEN_PASTING macro. - * regcomp.c: Use them. - (parse_dup_op): Use alternate initialization of start_token if - RE_TOKEN_INIT_BUG is defined. - * regexec.c (proceed_next_node): Compare push_fail_stack() result - explicitly against REG_NOERROR rather than implicitly against 0. - -Sat Feb 19 20:05:50 2005 Pat Rankin <rankin@pactechdata.com> - - * dfa.c "mbsupport.h": Suppress inclusion if NO_MBSUPPORT is defined. - -Wed Feb 16 20:43:07 2005 Pat Rankin <rankin@pactechdata.com> - - * awk.h "mbsupport.h": Suppress inclusion if NO_MBSUPPORT is defined. - * regex.h <sys/types.h>: Guard inclusion with HAVE_SYS_TYPES_H. - * regex.c <sys/types.h>: Likewise. - * random.c "random.h": Include this first to get config.h setup. - <fcntl.h>: Guard inclusion with HAVE_FCNTL_H. - <unistd.h>: Guard inclusion with HAVE_UNISTD_H. - * io.c [#if defined(MSDOS) ||... defined(__CYGWIN__)]: Splice the - backslash continuation back into one long line. - -Wed Feb 16 10:11:21 2005 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (unref, format_val): Add assertions checking that both - `tmp->wstptr != NULL' and `(tmp->flags & WSTRCUR) != 0' before - freeing `tmp->wstptr'. Thanks to kimura.koichi@canon.co.jp. - - * random.c (HAVE_UNISTD_H): Conditionalize include of <unistd.h>. - Thanks to Scott Deifik <scottd@amgen.com>. - -Sun Feb 13 18:24:50 2005 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (socketopen): Move `#ifdef MSG_PEEK' up to above - declarations too. Thanks to Michal Jaegermann. - - * config.guess, config.sub: Updated from Savannah. - -Thu Feb 10 15:48:48 2005 Arnold D. Robbins <arnold@skeeve.com> - - * regex_internal.c (re_dfa_add_node): Remove variable `type' - and just use `token.type' directly in RE_ENABLE_I18N code below. - Saves a compiler warning, and a good compiler will handle it anyway. - * regexec.c (check_arrival_add_next_nodes): Move decl of `err' - inside #ifdef RE_ENABLE_I18N code where it's used. - * awkgram.y (yylex): Add casts to int before use of `strlen' results - for printf-style precision. Avoid a compiler warning. - * io.c (redirect, do_close): Same for use of tmp->stlen. - - Thanks to Michal Jaegermann <michal@harddata.com>. - -Wed Feb 9 10:19:15 2005 Stepan Kasal <kasal@ucw.cz> - - * Makefile.am (datadir, libexecdir): Removed. - (awkdatadir): Renamed to pkgdatadir. - (pkgdatadir, LDADD): Use the make syntax to refer to other variables, - not @...@. - -Wed Feb 9 10:05:46 2005 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (r_dupnode): Assign NULL to r->wstr after `getnode'. - Fix count of bytes to copy in call to `memcpy'. - Thanks to Kimura Koichi, <kimura.koichi@canon.co.jp>. - -Tue Feb 8 19:26:22 2005 Pat Rankin <rankin@pactechdata.com> - - * regcomp.c (init_dfa): Avoid strcasecmp() since regex.c doesn't - use awk.h and none of the assorted other included header files - are guaranteed to declare it. - (parse_expression): Modify casts for the string arguments passed to - build_charclass_op() to fix char * vs unsigned char * mismatch. - (parse_bracket_exp): Likewise add cast for the string argument - passed to build_charclass(). - -Mon Feb 7 15:04:09 2005 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (make_scalar): Don't use P() macro in definition. - Thanks to Juergen Kahrs <Juergen.Kahrs@barco.com>. - -Wed Feb 2 16:36:19 2005 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main): Call `close_io', without its result affecting - the exit status. Super small, super dark corner. - - See test/exitval2.awk. - -Tue Feb 1 11:58:29 2005 Arnold D. Robbins <arnold@skeeve.com> - - * regex.h (__APPLE_CC__): Removed test and definition of __restrict. - Not needed for current MacOS X compiler. - -Sun Jan 30 13:56:37 2005 Arnold D. Robbins <arnold@skeeve.com> - - Fresh merge with CVS regex routines. Fixes handling of \B. - See tests/gnureop3.awk and also - http://sources.redhat.com/bugzilla/show_bug.cgi?id=693. - - CVS base versions: - - * regcomp.c: Version 1.92, Thu Jan 27 19:05:20 2005. - * regexec.c: Version 1.77, Thu Jan 27 19:06:34 2005. - * regex_internal.c: Version 1.49, Thu Jan 27 19:07:15 2005. - * regex_internal.h: Version 1.60, Wed Jan 26 22:40:50 2005. - * regexec.c: Version 1.77, Thu Jan 27 19:06:34 2005. - -Sat Jan 22 22:30:40 2005 Arnold D. Robbins <arnold@skeeve.com> - - Reinstate patch of 18 Nov 2001, for VMS, at least: - - * random.c (srandomdev): ifdef-out. Lots of compile time - problems on multiple platforms, and gawk doesn't even - use the routine. The heck with fine-grained solutions. - -Thu Jan 20 14:15:32 2005 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (LEX_FOR): Free NAME tokens in transformation of - `for (iggy in foo) delete foo[iggy]' into `delete foo'. - Thanks and a tip of the hatlo to Valgrind. - - * dfa.c (_): Clean up stuff here by just including "gettext.h". - Per Bruno Haible. - -Wed Jan 19 18:29:23 2005 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (yylex): Improve parsing of numeric constants - and hex values, via a push from Paul Eggert. See test/hex.awk. - - * regex_internal.c (re_node_set_alloc): If `size' is 0, just - zero out the structure. From valgrind. - -Tue Jan 18 17:23:25 2005 Arnold D. Robbins <arnold@skeeve.com> - - Make gawk multibyte aware. This means that index(), length(), - substr() and match() all work in terms of characters, not bytes. - - * awk.h (NODE): Add `wsp' and `wslen' elements to value for wide - string. - (WSTRCUR, wstptr, wstlen, force_wstring): New macros. - (str2wstr, wstrstr, wcasestrstr): New declarations. - * builtin.c (do_index, do_length, do_substr, do_match): Handle wide - strings. - * eval.c (flags2str): Add WSTRCUR. - * node.c (format_val, r_dupnode, mk_number, make_str_node, unref): - Add code to deal with wide strings. - (str2wstr, dump_wstr, wstrstr, wcasestrstr): New functions. - -Sun Jan 16 15:10:35 2005 Arnold D. Robbins <arnold@skeeve.com> - - * random.h (int32_t): Define this type. - -Thu Jan 13 14:38:13 2005 Arnold D. Robbins <arnold@skeeve.com> - - Cause `configure --disable-nls' to still allow locale-correct - formating of numeric values. - - * builtin.c (format_tree): Change #ifdefs to only test HAVE_LOCALE_H. - Improve code for ' flag so that extraneous separator is not included if - number of digits is multiple of locale separater count (3, 6, 9, etc.) - * dfa.c (dfaparse): Change ifdef to only test #ifdef LC_COLLATE. - * eval.c (fmt_ok): Remove ENABLE_NLS from #ifdef test. - * gettext.h: Include <locale.h> on both sides of test. Should really - be factored out. - * main.c (loc): Remove ENABLE_NLS from #ifdef test. - (main): Same in call to localeconv(). - * node.c (isnondecimal): Remove ENABLE_NLS from #ifdef test. - - Unrelated: - - * regcomp.c (init_dfa): Change `codeset' to `codeset_name' in two - places. - -Mon Jan 10 11:49:56 2005 Arnold D. Robbins <arnold@skeeve.com> - - Annual sync with glibc. - - * getopt_int.h: New file. - * Makefile.am (base_sources): Add it. - * getopt.h, getopt.c, getopt1.c: Updated. - * regcomp.c, regex.c, regex.h, regex_internal.c, regex_internal.h, - regexec.c: Updated. - - Original versions: - - getopt_int.h, 1.1, Tue Mar 9 10:31:19 2004 - getopt1.c, 1.10, Tue Mar 9 10:35:37 2004 - getopt.h, 1.21, Fri Mar 19 00:19:32 2004 - getopt.c, 1.53, Wed Mar 10 23:13:26 2004 - regcomp.c, 1.87, Mon Dec 6 02:56:42 2004 - regex.c, 1.126, Fri Jan 30 05:19:58 2004 - regex.h, 1.33, Thu Nov 18 23:50:57 2004 - regex_internal.c, 1.46, Thu Jan 6 20:59:49 2005 - regex_internal.h, 1.57, Mon Dec 27 16:29:05 2004 - regexec.c, 1.75, Mon Dec 27 16:29:52 2004 - - * regex.h: Add check for __APPLE_CC__ and definition of __restrict. - * regex.c: Add check for _MSC_VER and include <stdio.h>. - * regex_internal.h (_RE_ENABLE_I18N): Change test. - (re_realloc): Add check/fix for SunOS 4.1.x. - * regex_internal.c (build_wcs_upper_buffer): ifdef label - `offsets_needed', add cast in call to `wcrtomb'. - * regcomp.c (build_charclass, build_charclass_op): Remove `unsigned' - from declarations of `char *' params. - (regerror): Remove use of mempcpy. - (peek_token): Disallow \s and \S for gawk. - (build_charclass): Change decl of `class_name' and use it directly. - Nuke variable `name'. - (build_charclass_op): Change decl of `class_name' and `extra'. - -Thu Jan 6 16:44:32 2005 Arnold D. Robbins <arnold@skeeve.com> - - Improve autoconfiscation stuff for wide character use. - - * builtin.c (do_tolower, do_toupper): Conditionally compile - call to `wide_tolower_toupper'. - (wide_tolower_toupper): Conditionally compile typedefs and function. - * mbsupport.h: Add check for having `wint_t', and `iswlower', - `iswupper', `towlower' and `towupper'. - * configure.ac (HAVE_WINT_T): Add test. - (AC_CHECK_FUNCS): Add `wint_t', `iswlower', `iswupper', `towlower' - and `towupper'. - - Unrelated change: - - * hard-locale.h (hard_locale): Add decl of `xmalloc' to prevent - redeclaration problems on some compilers. - -Wed Jan 5 10:20:17 2005 Arnold D. Robbins <arnold@skeeve.com> - - Update to Bison 2.0. - - * bisonfix.sed: Removed, no longer needed. - * Makefile.am (EXTRA_DIST): Removed bisonfix.sed. - (awkgram.c): Fix build rule. - * awkgram.c: Regenerated. - -Tue Jan 4 18:47:56 2005 Arnold D. Robbins <arnold@skeeve.com> - - Update to Automake 1.9.4. - - * alocal.m4, config.guess, config.sub, install-sh: Updated. - -Mon Jan 3 14:08:27 2005 Arnold D. Robbins <arnold@skeeve.com> - - Update to Automake 1.9.3. - - * INSTALL, alocal.m4, config.guess, config.sub, depcomp, - install-sh, missing, ylwrap: Updated. - -Mon Jan 3 11:23:36 2005 Arnold D. Robbins <arnold@skeeve.com> - - Fix obscure issue. ^ in RS should only match at the very - beginning of the input. Essentially, the file is one long - string. To do this, use the `not_bol' flag in the `struct - pattern_buffer'. Thanks to Stepan Kasal for pointing out the - problem and to Andreas Schwab for pointing out the mechanism - for a solution. - - * awk.h (RE_NEED_START, RE_NO_BOL): New flags for `research'. - (IOP_AT_START): New flag for IOBUF. - (research): Last parameter is now `flags'. - * builtin.c (do_match, sub_common): Change calls to `research'. - * eval.c (interpret, match_op): Same. - * field.c (re_parse_field): Same. - * io.c (spec_setup): Add IOP_AT_START flag. - (iop_alloc): Same. - (rsrescan): Modify logic to check IOP_AT_START and if not on to - add RE_NO_BOL to flags value in call to `research'. - (get_a_record): Clear IOP_AT_START upon return from `*matchrec'. - (iopflags2str): Add IOP_AT_START to table. Also IOP_CLOSED, - which was missing. (Ooops.) - * re.c (research): Last paramater is now flags. Modify logic to - handle RE_NO_BOL case by setting the right bit initially. Clean - up control flow so that it's cleared before returning. If RE_NO_BOL, - don't bother with the dfa matcher, as it doesn't have an analogous - capability. - -Wed Dec 22 12:33:48 2004 Arnold D. Robbins <arnold@skeeve.com> - - For --exec, don't allow x=y assignments where filenames would be. - Do allow -v. This is because we assume --exec is used mainly for - CGI stuff and we don't want var assigns to affect the code. - - Suggested by Stepan Kasal; motivated by reading about web security. - - * main.c (disallow_var_assigns): New variable. - (main): Set the var for --exec. - (arg_assign): Check it appropriately. - -Sun Dec 19 17:27:09 2004 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_gensub): Make `global' flag smarter, such that - a string numeric constant (e.g., "3") acts like a numeric - constant. - * node.c (r_force_number): Not really related: Only set NUMCUR - if we actually convert some digits. - -Sun Dec 19 16:08:50 2004 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.h, dfa.c: Synchronize with what's happening in GNU grep - development. Effectively only minor whitespace changes and some - slight code motion of ifdefs and includes. - * hard-locale.h: New file, extracted from old dfa.c. - * Makefile.am (base_sources): Add hard-locale.h. - -Sun Dec 19 11:13:45 2004 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (socketopen): Change type of `readle' and `namelen' - variables to size_t. For QNX, but a good idea anyway. Thanks - to `Anthony' (rz1a@mail.ru). - -Mon Dec 6 11:11:22 2004 Arnold D. Robbins <arnold@skeeve.com> - - Undid change of Mar 9 2004, to add gofast patch. It gets things - wrong for gawk. This removes the bandaid of ifdef-ing out the - main check. Eventually this'll all get straightened out in the - GNU grep code. - - * dfa.c (buf_offset): Removed. - (SKIP_REMAINS_MB_IF_INITIAL_STATE): Removed use of buf_offset, do - free `mblen_buf', `inputwcs'. - (match_anychar, match_mb_charset, transit_state_consume_1char, - transit_state): Remove use of buf_offset in mblen_buf. - (dfaexec): Use `free' and `malloc', not `realloc'. - -Mon Dec 6 10:55:37 2004 Fumitoshi UKAI <ukai@debian.or.jp> - - Forwarded from james@nocrew.org, the Debian contact. - - * dfa.c (parse_bracket_exp_mb): - 1. Build range correctly when IGNORECASE for [a-a] to also get 'A'. - 2. For [:lower:] and [:upper:], if ignoring case, set type string - to "alpha". This parallels code in the regex routines. - 3. Reset wc1 to EOF when parsing bracket expressions. - -Mon Nov 29 18:36:25 2004 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (redirect): When allocating a new struct redirect, set - rp->pid to -1, not 0, so that code checking for EOF on an - input pipe works correctly. - -Thu Nov 25 14:22:41 2004 Stepan Kasal <kasal@ucw.cz> - - * Makefile.am (MAINTAINERCLEANFILES): Add. - * version.in (version_string): Use PACKAGE_STRING. - -Tue Nov 23 17:27:38 2004 Stepan Kasal <kasal@ucw.cz> - - * re.c: Fix a typo in a comment. - -Mon Nov 22 16:47:00 2004 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (yylex): Add lint check for tawk style modifiers on - regexes, /.../i and /.../s. Not that it'll help anyone. - -Wed Oct 27 14:25:18 2004 Stepan Kasal <kasal@ucw.cz> - - * builtin.c (do_tolower, do_toupper): Fix the wide char handling, - especially when the lowercased char doesn't ocuppy the same - number of bytes as its uppercase equivalent. Make use of ... - (wide_tolower_toupper): ... this new static function. - -Mon Oct 25 11:51:14 2004 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (bchunk, bchunk_one, cksize): Change type of `olen' - to size_t from long. It is the 21st century now, after all... - Thanks to Stepan Kasal. - -Mon Oct 11 10:49:09 2004 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (yylex): Improve lint warnings for non-decimal constants. - * node.c (isnondecimal): Made a little smarter, thanks to Stepan Kasal. - -Thu Oct 7 21:59:38 2004 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (dfamust): Redo fix of 22 Sep to match code from - current GNU grep. - -Sun Oct 3 23:06:00 2004 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (isnondecimal): Made smarter, so that 0xEE does - register as non-decimal. Added parameter to indicate use of - locale's decimal point and changed declaration and callers. - -Tue Sep 28 18:38:17 2004 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (isnondecimal): New function, now smarter. - * awk.h (isnondecimal): Changed from macro to function. - -Wed Sep 22 11:24:46 2004 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (dfamust): At end, check results of `malloc'. - Based on bug report from Sorav Bansal <sbansal@stanford.edu> - for grep. - -Mon Sep 20 13:18:18 2004 Arnold D. Robbins <arnold@skeeve.com> - - New --exec option. Needed for gawk CGI scripts to prevent - arbitrary options and/or source getting passed in from the web. - - * main.c (optab): New long option, --exec. - (main): Catch it. Like -f but end option processing. - (usage): Add it to the usage message. - - Thanks to John DuBois and Don Stokes for their input. - - Unrelated: - - * dfa.c (dfaexec): Disabled caching into buffer that bypasses - multibyte initialization, since it can get things wrong. Thanks - to Andreas Schwab <schwab@suse.de>. - -Mon Sep 20 12:59:42 2004 Andreas Schwab <schwab@suse.de> - - * awkgram.y (nextc): Check for end of lexer buffer before - advancing ring buffer index. - -Wed Sep 8 09:54:53 2004 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main): Force LC_NUMERIC locale to "C" before parsing - the program, since a variable assignment with -v can leave the - locale set incorrectly. - - Thanks to Sirix <sirix@poczta.onet.pl> for reporting the problem. - -Wed Aug 25 18:55:30 2004 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (UPDATE_YEAR): New constant at top of file, where we - won't miss it. - (copyleft): Use it. - -Sun Aug 22 17:26:39 2004 Stepan Kasal <kasal@ucw.cz> - - Define gawk_mb_cur_max even if there is no mbs support, as - ``const int'' and assign 1 to it. - This fixes a bug in re.c where #ifdef MBS_SUPPORT was missing. - - * awk.h (gawk_mb_cur_max): Declare. - * main.c (gawk_mb_cur_max): Define. - * awkgram.y (nextc_is_1stbyte): Without mbs support, define to 1. - * builtin.c (index_multibyte_buffer): Define a dummy function - when there is no mbs support. - * awkgram.y, builtin.c, re.c: Remove some `#ifdef MBS_SUPPORT'. - -Sun Aug 15 22:08:04 2004 Arnold D. Robbins <arnold@skeeve.com> - - Import current FreeBSD random.c. Make it work for gawk. - Needed for cases where long is more than 32 bits. - - * random.c: Imported from FreeBSD. Header includes tweaked. - * random.h: Typdef gawk_uint32_t appropriately and #define uint32_t - to it. - * configure.ac: Add calls to AC_CHECK_SIZEOF for unsigned int - and unsigned long. - - Started with - http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/stdlib/random.c - Thanks to Andreas Schwab <schwab@suse.de> for the pointer. - -Thu Aug 12 13:09:53 2004 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (copyleft): Fix copyright year. - -Mon Aug 2 12:18:15 2004 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.4: Release tar file made. - -Mon Aug 2 12:17:40 2004 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Fix the hack. Do the sed on `Makefile', - not `Makefile.in'. Sigh. - -Sun Aug 1 14:48:30 2004 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: MAJOR HACK: At end, remove version.c from Makefile.in - variable `CONFIG_CLEAN_FILES' so that `make distclean' doesn't - remove version.c. - -Mon Jul 19 17:07:27 2004 Arnold D. Robbins <arnold@skeeve.com> - - * config.guess, config.sub: Updated from Savannah CVS. - -Fri Jul 16 10:59:07 2004 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (make_regexp): Bracket code using `gawk_mb_cur_max' - inside `#ifdef MBS_SUPPORT'. - -Thu Jul 15 12:36:25 2004 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (parse_bracket_exp_mb): If doing case folding, - include the other case for regular characters inside [...]. - - * re.c (make_regexp): Smarten up handling of IGNORECASE, - particularly for multibyte character sets. Sigh. - -Wed Jul 14 16:25:23 2004 John Haque <mary1john8@earthlink.net> - - * eval.c (interpret): For `Node_K_return', use `copynode' - and not `dupnode' for non-PERM, non-TEMP values. - (func_call): Don't add TEMP flag to returned value. - - These two fix a problem uncovered by the July 8 change in - `assoc_lookup'. - -Wed Jul 14 16:14:09 2004 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (node_common): Add check `lexeme >= lexptr_begin', - from valgrind run. - -Wed Jul 14 16:00:51 2004 John Haque <mary1john8@earthlink.net> - - * io.c (rsrescan): Fix off by one error at end of record. - -Thu Jul 8 16:59:51 2004 Stepan Kasal <kasal@ucw.cz> - - * awkgram.y (output_redir): Make sure not to dereference NULL - pointer. The bug was triggered by the following code: - - gawk 'BEGIN{print "date" |& getline}' - - No test case created, beacuse of the following: - Correct interpretation involves executing "1" or "0" -- as the user - may have defined this, we would have to override this in the test - script. It's not worth the hassle. - -Thu Jul 8 12:59:49 2004 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (load_casetable): Name changed from `load_ignorecase'. - * eval.c (load_casetable): Name changed from `load_ignorecase'. - Fix all uses. - -Thu Jul 8 12:32:13 2004 John Haque <mary1john8@earthlink.net> - - * awkgram.y (get_src_buf): Fix off-by-one error to avoid "does not end - in newline" messages. - * array.c (assoc_lookup): Small performance hack: for TEMP subs nodes, - use its string memory for ahname. - * ext.c (get_actual_argument): Minor code cleanup. - * builtin.c (do_lshift, do_rshift, do_and, do_or, do_xor, do_compl): - fixed to issue "non-numeric argument" lint warnings before using - `force_number'. - -Mon Jun 21 16:53:35 2004 Arnold D. Robbins <arnold@skeeve.com> - - More changes from John Haque to rationalize extension functions. - - * awk.h (get_curfunc_arg_count): Name changed from - `get_curfunc_parm_count'. - * eval.c (get_curfunc_arg_count): Ditto, body redone to count actual - args passed at call time. - * ext.c (get_argument): Update range check. - (get_actual_argument): Simplify the code. - -Mon Jun 14 14:01:16 2004 Arnold D. Robbins <arnold@skeeve.com> - - Changes from John Haque and ADR to rationalize extension functions. - - * awk.h (check_special, get_curfunc_parm_count, get_actual_argument): - new function declarations. - (get_scalar_argument, get_array_argument): New macros. - * awkgram.y (check_special): New function. - (yylex): Use `check_special' to search `tokentab'. - (dump_funcs): Always count functions, in order to get dynamic ones. - Removed bogus use of `static' on `tab' variable. - * eval.c (struct fcall): Change type of `count' to `size_t'. - (get_curfunc_parm_count): New function. - (push_args): Set `r->rnode' to NULL for local variable. - * ext.c (make_builtin): Add sanity checking for presence and - name of new function, and that it's not a redefinition. - (get_argument): Check that requested arg is within range of actual - number of parameters. Also clean up logic for Node_var_new, - Node_var_array, Node_array_ref. - (get_actual_argument): New function. - * profile.c (pp_builtin): Better handling of dynamic extension function. - -Sun Jun 13 14:32:22 2004 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (redirect): Conditionalize checking for process recovery - on `#ifdef PIPES_SIMULATED'. Needed for MS-DOS and VMS. - * builtin.c (tmp_integer): Change bracketing of magic test to - `#ifdef HAVE_UINTMAX_T' which is more general and more correct. - -Wed Jun 9 21:36:01 2004 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (make_regexp): Add dfa matching into IGNORECASE handling. - -Tue Jun 8 15:38:56 2004 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (casetable): Remove `const'. - * eval.c (casetable): Remove `const'. - (load_ignorecase): New function. Loads locale-correct values in - upper 128 bytes. - (set_IGNORECASE): Call `load_ignorecase'. - -Tue Jun 8 14:04:19 2004 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (get_src_buf): Make sure that value from - `optimal_bufsize' is reasonable. Increase it if not. - -Tue Jun 8 13:54:28 2004 John E. Haque <mary1john8@earthlink.net> - - * awkgram.y (statement:LEX_FOR): Fix bug in loop to `delete a' - optimization. - * io.c (format_tree): Check for out of range values for - positional specifiers. - -Mon Jun 7 17:02:48 2004 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (tmp_integer): Bracket the magic test inside - `#ifndef VMS'. - - * awk.h (child_catcher): Remove declaration. - * main.c (main): Remove `signal' calls for SIGCLD, SIGCHLD. - * io.c (child_died, child_signo, child_catcher): Removed. - (get_a_record): Remove code checking for death of child. - (redirect): If `rp' matches and is at EOF and type is input - pipe, and `rp->pid' is not -1, call `wait_any' to reap the - child. This is a heuristic, but it works pretty well. - -Sun Jun 6 18:35:17 2004 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (get_a_record): Restore use of `memmove' instead of - memcpy. Otherwise some tests break on some systems. We think. - (child_died): Don't reset signal handler; breaks on some S5 systems. - (get_a_record): Reset handler if child_died. Still flaky on Solaris. - * configure.ac (version.c): Made from version.in again, for - non-Unix systems. - * Makefile.am (base_sources): Add version.c back. - * version.in: Include config.h for definition of const. - * main.c (version_string): Add back declaration, don't - include "version.i". - (main): Don't install child_catcher on Sun. (HACK) - -Thu Jun 3 14:06:06 2004 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (version_string): Removed declaration, since - version.i is included directly. - * version.in: Removed test for definition of const. - -Tue Jun 1 19:23:53 2004 Stepan Kasal <kasal@ucw.cz> - - * Makefile.am (base_sources): Don't mention version.c, so that - it doesn't get distributed. - * po/POTFILES.in: Remove version.c - * configure.ac: Create version.i from version.in. - * main.c: Include version.i. - -Tue Jun 1 18:33:32 2004 Arnold D. Robbins <arnold@skeeve.com> - - Fix problem reported by Stephen Marchant <Stephen.Marchant@Cognex.com> - on Thu, 30 Oct 2003 13:11:42 -0500. - - * regex_internal.h (re_realloc): Allow for SunOS pre-Standard C - `realloc' which doesn't accept NULL pointers. - * awk.h (erealloc): Same. - - Unrelated. Change suggested by Peter Sobisch <petersob@gmx.net>, have - PROCINFO["version"] be the version of gawk: - - * main.c (load_procinfo): Add in version. - - Unrelated: Avoid warning: - - * main.c (main): Cast calls to `bindtextdomain' and `textdomain' to - void. Avoids diagnostic with `configure --disable-nls'. - * dfa.c (check_matching_with_multibyte_ops): Remove unneeded nested - #ifdef, per Scott Deifik (scottd@amgen.com). Also fix some spelling - errors in comments. - -Tue Jun 1 18:26:45 2004 Paul Eggert <eggert@twinsun.com> - - Fix a bug reported by Mike Romaniw <msr@micromonumental.com> - to bug-gnu-utils on 2003-09-27: compl(compl(0xf0f)) returned 0xfff - on hosts with 64-bit uintmax_t and 64-bit IEEE-764 double, due to - rounding errors. - - * doc/gawk.texi (Bitwise Functions): Leading nonzero bits are - removed in order to fit the result into a C 'double' without rounding - error. - * builtin.c: Include <float.h> if available. - (FLT_RADIX, FLT_MANT_DIG, DBL_MANT_DIG): Define if not already defined. - (AWKSMALL_MANT_DIG, AWKNUM_MANT_DIG, AWKNUM_FRACTION_BITS): New macros. - (tmp_integer): New function. - (do_lshift, do_rshift, do_and, do_or, do_xor, do_compl): Use them. - -Tue Jun 1 17:40:47 2004 Stepan Kasal <kasal@ucw.cz> - - * eval.c (push_args): Set var_value to Nnull_string for - local variables. - -Mon May 31 11:49:20 2004 Stepan Kasal <kasal@ucw.cz> - - * replace.c: #undef DEBUG before including mktime.c, it has - different meaning there. - -Mon May 31 08:25:30 2004 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (get_actual): Add extra error message for `delete f' - inside body of function `f'. - -Mon May 3 09:53:34 2004 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.in, */Makefile.in: Updated to automake 1.8.4. - * config.guess, config.sub: Same. - * aclocal.m4, depcomp, install-sh: Same. - -Mon May 3 09:24:45 2004 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Look for missing `strtoul'. - * replace.c: Include missing_d/stroul.c if not HAVE_STRTOUL. - * io.c (devopen): Use `strtoul' instead of `strtod' for - extracting fd number from "/dev/fd/N". (Thanks to Jim Meyering.) - * field.c (set_FIELDWIDTHS): Use `strtoul' instead of `strtod' - when parsing FIELDWIDTHS values. (Thanks to Jim Meyering.) - -Mon Apr 19 20:12:57 2004 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.in, */Makefile.in: Updated to automake 1.8.3. - * config.guess, config.sub: Same. - -2004-03-18 Stepan Kasal <kasal@ucw.cz> - - * eval.c (make_scalar): Comment clarification. - - * array.c (get_actual): Remove the condition ``canfatal'' - before ``cant_happen()''; if the data are consistent, we - simply cannot get there with a non-func Node_param_list, - no matter whether we are called via get_array or not. - - * awkgram.y (variable): Make one longer message, to help translators. - -Tue Mar 9 17:34:10 2004 Arnold D. Robbins <arnold@skeeve.com> - - Adapted `gofast' patch from Redhat Enterprise version of grep - to current dfa.c. - - * dfa.c (buf_offset): New variable. - (SKIP_REMAINS_MB_IF_INITIAL_STATE): Modified to use it, don't - free `mblen_buf', `inputwcs'. - (match_anychar, match_mb_charset, transit_state_consume_1char, - transit_state): Use buf_offset in mblen_buf. - (dfaexec): Realloc things instead of free and malloc. - -Thu Mar 4 16:46:55 2004 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac (AC_FUNC_MBRTOWC): Added. - (AC_CHECK_FUNCS): Removed `mbrtwoc'. - (REGEX_MALLOC): Removed. Not needed for new regex* routines. - - * re.c (research): Removed comment and check for return of -2 - since that was for old regex using alloca or REGEX_MALLOC. - -Wed Mar 3 17:10:16 2004 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (close_one): Don't close stdout or stderr; can happen if - /dev/stdout or /dev/stderr are used in redirection and all the - open files get used. - -Sun Feb 29 12:17:37 2004 Arnold D. Robbins <arnold@skeeve.com> - - * regcomp.c (build_charclass, build_charclass_op): Change type of - `class_name' parameter to `const char *' from `const unsigned char *' - and adjust callers. - -Thu Feb 26 15:20:22 2004 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (get_src_buf): Rewritten to better manage input and - supplying newlines on command line programs. Fixes problems reading - source files on Cygwin. - - Unrelated fixes from mary1john8@earthlink.net: - - * node.c (format_val): For no malloc case, free s->stptr if necessary. - * io.c (nextfile): Add missing call to `unref(FILENAME_node->var_value)' - for no files case. - (close_redir): Remove file from redirection list even if fp is - stdout or stderr. - -Tue Feb 24 12:11:34 2004 Arnold D. Robbins <arnold@skeeve.com> - - * regex_internal.c (build_wcs_upper_buffer): Enclose `offsets_needed' - label in `#ifdef _LIBC' to silence `unused label' compiler warning. - -Tue Feb 24 11:57:18 2004 Nelson H.F. Beebe <beebe@math.utah.edu> - - * regcomp.c (parse_expression): Add cast to (unsigned char *) in calls - to `build_charclass_op'. - * regex_internal.c (build_wcs_buffer): Add cast to char* in call to - `wcrtomb'. - * regex_internal.h (bitset_not, bitset_merge, bitset_not_merge, - bitset_mask, re_string_char_size_a, re_string_wchar_at, - re_string_elem_size_at): Change to use prototypes. - (re_string_char_size_at, re_string_wchar_at, re_string_elem_size_at): - Declare as `internal_function'. - - * Makefile.am: Add rule to make .i files. This assists in debugging. - * awk.h (m_tree_eval): Add casts to NULL. (Some compilers are just - dumb. ADR) - -Mon Feb 23 15:58:39 2004 Arnold D. Robbins <arnold@skeeve.com> - - Clean up occupied process slots of children that have died: - - * awk.h (child_catcher): New function, declare it. - * main.c (main): Catch SIGCHLD/SIGCLD with `child_catcher'. - * io.c (child_died): New static variable. - (child_catcher): New function, sets `child_died', reinstalls self - as signal handler. - (close_rp): New function: isolates actual fp/iop closing logic. - (close_redir): Call `close_rp'. - (get_a_record): Check `child_died' and call `wait_any(0)' if so. - Add descriptive comment. - - Unrelated clean up: - - * eval.c (fcalls): Renamed from `fcall_list'. All uses changed. - (pop_fcall, push_args, dump_fcall_stack): Adjusted to use indexing - on `fcalls' instead of a pointer into it. Avoids hassles if `fcalls' - is realloc-ed during recursive tree_evals. Thanks to BWK. - - * config.guess, config.sub: Updated from Savannah. - -2004-02-19 gettextize <bug-gnu-gettext@gnu.org> - - * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.14.1. - -Wed Feb 18 12:40:09 2004 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (rule): Use `msg' not `warning' for `must have an - an action part' message. `warning' is wrong, since it's a real error. - -Mon Feb 16 12:17:39 2004 Arnold D. Robbins <arnold@skeeve.com> - - * main.c, eval.c, builtin.c: Change test for `#ifdef HAVE_LOCALE_H' - to `#if ENABLE_NLS && defined(HAVE_LOCALE_H)' so that builds with - `configure --disable-nls' will actually work on non-glibc systems. - -Thu Feb 12 02:05:34 2004 Stepan Kasal <kasal@ucw.cz> - - Lots of misc changes from Stepan Kasal integrated. - - * array.c: Various variables and parameters of static functions - changed from int to long, in order to prevent overflow. - - * eval.c (make_scalar): New function; takes care of everything - that has to be done when a node of type Node_var_new or - Node_array_ref changes to a scalar variable. - (tree_eval, get_lhs): Call it. - (tree_eval): From now on, tree_eval(NULL) doesn't work; - it reports an internal error. - * awk.h (m_tree_eval): Likewise for the two macro versions. - * awkgram.y (statement): Make sure the Node_K_return's lnode is - always the return value, never NULL. - - * Makefile.am (install-exec-hook, uninstall-links): Make use of - $(VERSION). - (INCLUDES): Renamed to AM_CPPFLAGS. - (AM_CPPFLAGS): The file libintl.h is generated in the - build subdirectory intl, not in the directory $(srcdir)/intl. - (diffout): New target is an alias for ``make -C test diffout.'' - * awklib/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS. - - * README_d/README.hpux: Change the whitespace in the appended patch, - so that it applies to the current source. - * posix/gawkmisc.c: Change a tab to a space (needed for the above). - - Make version control more in the style of current autotools: - - * configure.ac: Remove obsolete versions of macros: - AM_INIT_AUTOMAKE doesn't need any parameters. - AC_OUTPUT shouldn't have any parameters either. - Its parameters go to a new macro: AC_CONFIG_FILES. - AC_CONFIG_HEADERS moved near the end of the file. - * configure.ac: Add [version.c:version.in] to AC_CONFIG_FILES - * version.in: Modify for autoconf substitutions. - * version.c: Remove, it's generated at configure time now. - * fixvers, patchlev.h, unsupported/tandem/ptchlvl.h: Nuke and ... - * Makefile.am, main.c: ... forget them. - -Mon Feb 9 12:57:00 2004 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h builtin.c eval.c field.c (HUGE): Changed to `UNLIMITED'. - Avoids possible conflict with constant in svid-mode math.h. Thanks to - Roman.Putanowicz@iecn.u-nancy.fr for pointing out the problem. - -Fri Feb 6 12:09:55 2004 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Check for `wctype', `wcscoll' and `iswctype'. - * mbsupport.h: New file. Merges and centralizes testing for MBS support. - * Makefile.am (base_sources): Add mbsupport.h to list. - * dfa.c, dfa.h, awk.h (MBS_SUPPORT): Include "mbsupport.h" and use the - test there. - * regex_internal (RE_ENABLE_I18N): Same. - - * Makefile.am (CLEANFILES): Added. - -Thu Feb 5 18:05:12 2004 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac (HAVE_WCTYPE_T): New test code added. - * dfa.h (wctype_t): Define if system doesn't. Needed here too - for other files that include dfa.h. - * dfa.c (wctype_t): Define if system doesn't. - (lex): Manually fill in arrays used for char class range testing - so will work on c89 and older compilers. - (parse_bracket_exp_mb): Split up an assignment to avoid type complaints. - - * main.c (main): When checking for `close_io' failure, only set - `exit_val' to 1 if not already exiting. - - * regcomp.c (regerror): Remove use of mempcpy. Generates too - many compiler warnings. - * configure.ac (AC_CHECK_FUNCS): Don't bother checking for it. - -Wed Feb 4 17:34:47 2004 Arnold D. Robbins <arnold@skeeve.com> - - * getopt.h (__THROW): Only define it if C++. The __GNU_PREREQ - macro is a major headache. - -2004-02-02 Paolo Bonzini <bonzini@gnu.org> - - * regexec.c (check_matching): Add P_MATCH_FIRST parameter. - (re_search_internal): Pass new parameter to check_matching. - (check_matching): Unless a parenthesized group is found at the - beginning of the regexp, advance P_MATCH_FIRST until we entered - a state different from the initial state. - -Mon Feb 2 15:52:37 2004 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (research): Change last param to re_search to pass - NULL if `need_start' is false. May give us a marginal speed gain. - -Thu Jan 29 17:04:51 2004 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (sub_common): Fix logic for `&' in replacement for - multibyte case. Simplify code a bit. - -Tue Jan 20 10:41:45 2004 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Add check for `memmove'. - * replace.c: Include missing_d/memmove.c if don't have `memmove'. - -Sun Jan 18 12:01:29 2004 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (sub_common): Add comment and support for 2001 POSIX - behavior when --posix in effect. The masses have been - clamoring for this one. - -2004-01-16 gettextize <bug-gnu-gettext@gnu.org> - - * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.13.1. - * intl/*: Updated to 0.13.1. - -Fri Jan 16 08:16:38 2004 Arnold D. Robbins <arnold@skeeve.com> - - * getopt.h, getopt.c, getopt1.c: Synced to GLIBC version: - getopt.c: 1.51 - getopt.h: 1.18 - getopt1.c: 1.9 - -Thu Jan 15 15:28:48 2004 Arnold D. Robbins <arnold@skeeve.com> - - Here we go again: - - * regcomp.c, regex.h, regex.c, regex_internal.h, regex_internal.c, - regexec.c: Sync to GLIBC version, but with bug fixes. GLIBC - CVS versions: - - regcomp.c: 1.76 - regexec.c: 1.55 - regex.c: 1.125 - regex.h: 1.30 - regex_internal.c: 1.39 - regex_internal.h: 1.45 - regexec.c: 1.55 - - * acinclude.m4: Removed, not needed for automake 1.8.x. - * configure.ac: Updated to autoconf 2.59. - - Everything else updated to automake 1.8x and autoconf 2.59. - -Wed Jan 14 14:26:36 2004 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c, dfa.h: Updated manually with most of the changes in - grep 2.5.1. That version lost the ability to match newlines - in the data, so the merge had to be done by hand. Sigh. - -2004-01-12 Paolo Bonzini <bonzini@gnu.org> - - ALLOCA patch from - http://sources.redhat.com/ml/libc-alpha/2004-01/msg00099.html - added. - - * regcomp.c [_LIBC && !RE_ENABLE_I18N]: - Drop code to support this, it is never true. - (build_range_exp) [!_LIBC]: Do not create a range - in MBCSET for a single-byte character set. - (build_range_exp) [_LIBC]: Do not create a range - in MBCSET for a single-byte character set without - collation elements. - (init_dfa): Do not conditionalize on _LIBC, it - just makes the code less clear. - (parse_bracket_exp): Use NON_MATCH variable in - addition to "mbcset->non_match", not as an - alternative. - (build_charclass_op): Rename NOT parameter to - NON_MATCH, use it instead of declaring a variable. - (parse_bracket_exp) [!_LIBC]: Pass NULL for MBCSET - if the character set is single-byte. - -Wed Jan 7 15:23:04 2004 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (mk_rexp): Set n->re_cnt to 1. Makes reinstated - dfa code actually take effect! Don't know how I missed this. - - Unrelated: sync regex code to glibc. - - * regcomp.c, regex.h, regex.c, regex_internal.h, regex_internal.c, - regexec.c: Sync to GLIBC version, but with bug fixes. GLIBC - CVS versions: - - regcomp.c: 1.74 - regex.c: 1.124 - regex.h: 1.30 - regex_internal.c: 1.39 - regex_internal.h: 1.43 - regexec.c: 1.55 - - * regcomp.c (peek_token): Temporarily, we hope, disable \s and \S - operators. Too much trouble to document right now. - * dfa.c (lex): Add code for \s and \S but disable it until - next release. - -Wed Dec 24 15:28:57 2003 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (r_tree_eval): For Node_assign_concat, add - call `free_temp(r)'. Thanks to mary1john8@earthlink.net. - -Mon Dec 1 10:25:52 2003 Arnold D. Robbins <arnold@skeeve.com> - - CONSTVAL not needed if we test PERM instead. Thanks to - mary1john8@earthlink.net. See test/concat3.awk. - - * awk.h [CONSTVAL]: Removed. - * eval.c (flag2str): Removed CONSTVAL from table. - (r_tree_eval): For Node_assign_concat, it's enough to check - if l->flags has PERM clear. - * awkgram.y (yylex): Removed use of CONSTVAL for YSTRING and YNUMBER. - -Mon Nov 3 16:33:26 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (get_src_buf): Replace `memmove' with `memcpy' for - marginal portability gain to older systems. - * io.c (get_a_record): Ditto. - -Sun Nov 2 15:59:27 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h [CONSTVAL]: Renamed from `STRCONST'. - * eval.c (flags2str): Fix in table. - (r_tree_eval): For Node_assign_concat, check for the flag for - both left and right hand sides. Also add a `force_string' call - for the right hand side and the left hand side. - * awkgram.y (yylex): Change flag value for YSTRING and add use - of flag for YNUMBER. - -Wed Oct 29 14:23:29 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h [STRCONST]: New flag value. - * eval.c (flags2str): Add it to table. - (r_tree_eval): For Node_assign_concat, check for the flag so that - we don't clobber string constants given: - s = "" - s = s something - * awkgram.y (yylex): For YSTRING, set STRCONST flag. - -Tue Oct 28 18:00:00 2003 Arnold D. Robbins <arnold@skeeve.com> - - Force SUBSEP to always have a string value. Per bug report - from mary1john8@earthlink.net. - - * awk.h (NODETYPE): New type, Node_SUBSEP. - (set_SUBSEP): Add declaration. - * awkgram.y (isnoeffect, isassignable): Add Node_SUBSPEP case. - * array.c (set_SUBSEP): New function. - * eval.c (nodetypes): Add Node_SUBSEP. - (r_tree_eval, r_get_lhs): Add code for Node_SUBSEP. - * main.c (varinit): Use Node_SUBSEP as type for SUBSEP. - * profile.c (tree_eval, pp_lhs, is_scalar, prec_level): Handle - Node_SUBSEP. - -Tue Oct 7 09:26:33 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (NODETYPE): New member `Node_assign_concat'. - * awkgram.y (exp): Look for case of `x = x y' and if so, create a - Node_assign_concat. - * eval.c (interpret): Add case for Node_assign_concat. - * profile.c (prec_level): Ditto. - (tree_eval): Ditto. For variables, call new function `vname' to - print name; handles varname field for -v variables, which end up - including the value. - (vname): New function. - -Wed Sep 24 17:32:31 2003 Arnold D. Robbins <arnold@skeeve.com> - - Speed up `avoid_dfa' kludge, at least a little: - - * awk.h (struct Regexp): Add `has_anchor' member. Make it and - `dfa' member shorts; keeps space the same. - * re.c (make_regexp): Set `has_anchor' member correctly. - (avoid_dfa): Test for `has_anchor' member instead of searching - for it each time. - -Sun Sep 21 18:34:32 2003 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (state): Only needs to be 256 bytes, initstate() can't - use any more than that. Well whadayaknow. - (do_rand, do_srand): Call `setstate' after calling `initstate'. - -Tue Sep 16 15:44:29 2003 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (interpret): For Node_K_switch, add kludge_need_start stuff - as used in `match_op'. Sigh. - * re.c (make_regexp): Add `no_dfa' variable, which is true if - GAWK_NO_DFA exists in the environment. This enables run time - testing of things with/without the dfa matcher. - -Mon Sep 15 18:36:38 2003 Arnold D. Robbins <arnold@skeeve.com> - - After much soul searching, reinstated old dfa code. The performance - of the new regex is just disastrous. Sigh. - - * awk.h (re_cnt): Reinstated old definition. - (struct Regexp): Added `dfareg' and `dfa' members. - (make_regexp): New last parameter in function, changed decl. - (avoid_dfa): Added declaration. - * awkgram.y (regexp, mk_rexp): Added use of `re_cnt'. Fixed call - to `make_regexp'. - * Makefile.am: Add dfa.h and dfa.c. - * eval.c (match_op): Complexified: added call to `avoid_dfa' and - `kludge_need_start' variable where used to pass FALSE as last parameter - of research(). - * field.c (set_FS): Fixed call to `make_regexp'. - * io.c (get_a_record, set_RS): Fixed calls to `make_regexp'. - * re.c (make_regexp): Added last paramter (`dfa') to function. - Complexified the code. - (re_update): Fixed call to `make_regexp'. - (research): Complexified the code, added calls to dfa stuff. - (dfaerror): New function. - (re_update): Fixed call to `make_regexp'. - (avoid_dfa): New function. - -Tue Sep 9 15:57:38 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (get_src_buf): Fix calculation of `offset' when shifting - source lines around. In general, improve handling of things when - moving the source code line around. What a mess this code is. - -Mon Sep 8 19:08:55 2003 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (fmt_ok): Make provision for %F format and printf %'f flag - here too. - -2003-07-23 Christophe Bisiere <bisiere@univ-tlse1.fr> (tiny change) - - * posix/regex.h (RE_TRANSLATE_TYPE): Define it to "unsigned char," - to avoid problems at hosts with signed char. - * posix/regexec.c (re_search_internal): Don't say - "unsigned RE_TRANSLATE_TYPE." - -Thu Aug 28 11:09:41 2003 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (nextfile): Change use of variable `files' to make it - clearer that it's a boolean flag. - -Tue Aug 26 22:58:15 2003 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (useropen): Add `defined (HAVE_GETGROUPS)' as first test - in `#ifdef'. Brings things in sync with same test in main.c and awk.h. - -Tue Aug 26 22:49:37 2003 Arnold D. Robbins <arnold@skeeve.com> - - * dbug.h: New file. - - * array.c, awkgram.y, builtin.c, eval.c, ext.c, field.c, io.c, - main.c, msg.c, node.c, profile.c, re.c: Converted to use - Fred Fish's `dbug' library. By default compiled out, thus - not affecting speed. - - For the nonce, the `dbug' library itself is not shipped with - gawk, since I expect no-one else but me to be using it. - -Thu Aug 21 23:15:36 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (numfiles): Change extern decl to long, to match what's - in main.c. Keeps things working on 64-bit systems. Thanks to bug - report from Jan Oravec <jan.oravec@6com.sk>. - -Wed Aug 20 14:53:47 2003 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (genflags2str): Move test for out-of-space inside test - for is the bit set. - -Mon Aug 11 11:26:51 2003 Arnold D. Robbins <arnold@skeeve.com> - - * regcomp.c (parse_bracket_exp): If `build_charclass' fails, just pass - its value on as the return value. - -Sun Aug 10 16:59:14 2003 Arnold D. Robbins <arnold@skeeve.com> - - * regcomp.c (build_range_exp): Make sure we don't - get WEOF on range characters. - -Tue Aug 5 21:49:32 2003 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (get_actual): In `case Node_param_list' add test for - `&& (symbol->flags & FUNC) == 0' to the if. - -Sun Jul 13 18:28:38 2003 Arnold D. Robbins <arnold@skeeve.com> - - Further bug fix: - - * awkgram.y (variable): Give the new variable an lnode - of Nnull_string if it's not an array, even if it is - a Node_var_new. - -Fri Jul 11 09:32:21 2003 Arnold D. Robbins <arnold@skeeve.com> - - Bug fix: - - * eval.c (r_tree_eval): For Node_array_ref, set - tree->orig_array->var_value to Nnull_string too. - - Unrelated i18n and POSIX change: - - * configure.ac: Add check for local printf supporting %F format. - * awk.h (loc): New variable declaration. - * main.c (loc): Defined. - (main): Call `localeconv' to set loc. - * io.c (format_tree): Add support for printf quote flag, %'d for - decimal formats (not %e, %E), adds thousand separator into value. - -2003-07-10 Paul Eggert <eggert@twinsun.com> - - * io.c (two_way_open): If /bin/sh cannot be executed, exit - with status 126 consistently. - -Mon Jul 7 11:01:43 2003 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.3: Release tar file made. - -Mon Jul 7 09:55:49 2003 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (copyleft, usage): Make sure to fflush output fp. Per Jim - Meyering, if error, exit non-zero. - * ext.c (get_argument): Fix array paramater handling. - -2003-07-06 Paul Eggert <eggert@twinsun.com> - - * builtin.c (do_substr): Issue better diagnostics when - d_substr and d_length are NaN, or when 0 < d_length < 1. - Be careful when comparing double to SIZE_MAX, as - the comparison might return the "wrong" answer when - `(double) SIZE_MAX' is a number that is not equal to - SIZE_MAX. - (do_gensub): Watch out for HOW values that are out of range - or are NaN. - (do_dcngettext): dcngettext wants an argument of type - unsigned long, not long, so use a value of that type. - -Fri Jul 4 10:58:02 2003 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main): Make option letter 'D' fall through into default - unknown case if not debugging. Let's us have just one version of - `optlist'. - -Thu Jun 26 15:25:57 2003 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (get_actual): Undo Stepan Kasal change of 2003-06-17. - See test/match2.awk. - -Wed Jun 25 15:26:08 2003 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_rand): Change calculation so that result - obeys constraint: 0 <= N < 1. This is per history and POSIX. - Thanks to Nelson Beebe (beebe@math.utah.edu) for reporting - this issue. - -Mon Jun 23 15:13:39 2003 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (rs1scan): Per advice from Bruno Haible, it's safe - to skip the multibyte checking code if RS is '\n'. See - the comment in the code. Big performance improvement for - multibyte locales. - -2003-06-20 Stepan Kasal <kasal@ucw.cz> - - * eval.c (comp_func): If memcmp returns 0, we have to compare - the lengths. - -2003-06-19 Stepan Kasal <kasal@ucw.cz> - - * eval.c (interpret) <Node_K_arrayfor>: Use NULL, not 0, to - initialize the variable list. - (comp_func): Array indices no longer are string values, - you have to use ahname_str, ahname_len. - -Tue Jun 17 11:53:46 2003 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (get_actual): Make check for isparam - smarter: also check for FUNC flag. - -2003-06-17 Stepan Kasal <kasal@ucw.cz> - - * array.c (get_actual): Even if canfatal is FALSE, don't - tolerate existence of things which can't happen. - -Mon Jun 16 16:21:44 2003 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Removed m4/Makefile. - * m4/Makefile.am: Removed. - -2003-06-16 gettextize <bug-gnu-gettext@gnu.org> - - * configure.ac (AC_OUTPUT): Add m4/Makefile. - (AM_GNU_GETTEXT_VERSION): Bump to 0.12.1. - -Sun Jun 15 20:45:43 2003 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (get_a_record): Enhance logic to fill buffers to include - `|| no_data_left(iop)'. - (rs1scan): Fix logic for setting recm fields for multibyte - character case. - -2003-06-10 Stepan Kasal <kasal@ucw.cz> - - * awkgram.y (release_all_vars): Do not try to release a value of - Node_var_new; after get_lhs, use the lhs directly, do not try - to do (*lhs)->var_value; the Node_var case doesn't need - special treatment. - * builtin.c (do_match): `get_param' is successful iff it returns - Node_var_array---if the variable was new, get_param has already - changed the type. - * field.c (do_split): Likewise. - -Sun Jun 15 19:36:35 2003 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (r_dupnode): Typo fix in hash tables: stptr -> ahname_str. - Thanks to mary1john8@earthlink.net. - * array.c (get_actual): Add `if (canfatal)' before call to - `cant_happen'. - -Sun Jun 15 19:25:49 2003 Patrick T.J. McPhee <ptjm@interlog.com> - - * awk.h (memcpy_ulong): Add ! WIN32 to ifdefs. - -Mon Jun 9 18:38:20 2003 Arnold D. Robbins <arnold@skeeve.com> - - * custom.h (hpux): Added stuff to (hopefully) get `tzset' - declared on HP/UX 10 and up. - -Mon Jun 9 17:12:24 2003 Patrick T.J. McPhee <ptjm@interlog.com> - - * awk.h (ATTRIBUTE_EXPORTED): New macro for dynamic libs on Windows32. - * CONVMFTidx, stack_ptr, do_lint, lintfunc: Now have this attribute. - -Mon Jun 9 13:11:33 2003 Arnold D. Robbins <arnold@skeeve.com> - - Clean up of Stepan's patches. - - * array.c (get_actual): Renamed from r_get_array. Added second - param canfatal if routine should print fatal message when not an array. - (get_actual): Renamed 'prm' to `isparam'. - (array_vname): Add static msglen var; only realloc string if it grows. - Don't use `s += sprintf(...)'. No good on old systems where sprintf - returns char *. Minor formatting cleanups. - (do_adump): Restored separate `a' and `r' variables; helps for debugging. - - * awk.h (SCALAR, UNINITIALIZED): Removed entirely, renumbered other flags. - (get_array, get_param): New macros, calls get_actual. - (get_actual): Declaration changed from that of r_get_array. - - * awkgram.y (release_all_vars): Restored previous version of code; new - version isn't right for Node_xx variables. - (variable): Minor code cleanup for readability. - - * builtin.c (do_match): Use get_param and print our own message when - third parameter is not an array. - - * eval.c: Added a few comments here and there, removed some no longer - needed comments. - - * field.c (do_split): Use get_param and print our own message when - second parameter is not an array. - -Mon Jun 9 11:46:21 2003 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (do_delete): Initialize hash1 and last to keep gcc -Wall happy. - * io.c (rsnullscan): Comment out label skip_leading for same reason. - -Wed May 28 08:31:23 CEST 2003 Stepan Kasal <kasal@math.cas.cz> - - * eval.c (forloops_active, in_function): Nuked. - (pop_all_forloops, pop_fcall_stack): Are now inline. - -Wed May 28 07:58:35 2003 Stepan Kasal <kasal@math.cas.cz> - - * field.c, awk.h (Null_field): No longer static. - * field.c (init_fields): Initial value of $0 can be Nnull_string, - no need to copy it. - * eval.c (r_get_lhs) <Node_field_spec>: Test for uninitialized field, - which is Nnull_string for $0 and Null_field for $(>0). - * builtin.c (do_print_rec): Test for uninitialized $0. - -Tue May 27 17:03:02 2003 Stepan Kasal <kasal@math.cas.cz> - - * awk.h (Node_var_new): New node type for variables which can be - either scalar or array. From now on, Node_var is always scalar. - (Node_gvar_ref): Nuked, its role can be taken by Node_array_ref. - (orig_var): Removed, orig_array is enough. - (SCALAR, UNINITIALIZED): Flags nuked. - (var_uninitialized): New macro to distinguish uninitialized vars; - used in several other macros. - * array.c (r_get_array, array_vname, do_adump): Adapt to the - above changes. - * awkgram.y, eval.c, field.c, main.c, node.c, profile.c: Ditto. - -Tue May 27 14:27:50 2003 Stepan Kasal <kasal@math.cas.cz> - - * array.c (r_get_array): New function, which goes all the way - through Node_param_list to actual Node_var_array; if it encounters - non scalar Node_var, it changes it to Node_var_array. - (in_array, do_delete, do_delete_loop, do_adump, assoc_sort_inplace): - Use get_array. - (assoc_lookup): The parameter must be a Node_var_array. - * awk.h (get_array, r_get_array): Declare the new function and define - a macro to speed it up. - * builtin.c (do_match): Use get_array. - * eval.c (interpret) <Node_K_arrayfor>: Ditto. - (r_get_lhs) <Node_K_arrayfor>: Ditto. - * field.c (do_split): Ditto. - -Tue May 27 08:23:51 2003 Stepan Kasal <kasal@math.cas.cz> - - Changed node->vname meaning for type Node_array_ref and Node_gvar_ref. - It contains only the reference name; one has to (recursively) follow - node->prev_array to find out the call history for the array. - - * array.c (array_vname): New function to print the array name. - (assoc_lookup, do_delete): Use array_vname. - * eval.c (interpret, r_tree_eval, r_get_lhs): Use array_vname. - (push_args, pop_fcall): Things have simplified. - * awk.h (array_vname): Declare. - (prev_array): Define. - -Sun Jun 8 11:25:36 2003 Stepan Kasal <kasal@ucw.cz> - - * awkgram.y (append_right): When using savetail, remember that it - is not necessarily the tail of the list---it's just a pointer to - the last chunk appended. - -Thu Jun 5 12:01:41 2003 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_strtonum): Make `strtonum(13)' work. - -Wed Jun 4 17:07:06 2003 Corinna Vinschen <vinschen@redhat.com> - - * io.c (binmode): Include function for __CYGWIN__ too. - -Tue Jun 3 12:40:50 2003 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (interpret): Node_K_switch. For regex case, don't - call `free_temp' on the result of `force_string' if it's equal to - switch_value. Thanks to John DuBois <spcecdt@armory.com> - for finding the problem. - -Sun Jun 1 13:08:22 2003 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): For %c, force precision to 1. - -Wed May 28 11:55:48 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (isnoeffect, isassignable): Add Node_TEXTDOMAIN to - switches in both functions. - -Wed May 28 11:38:59 2003 Stepan Kasal <kasal@math.cas.cz> - - * awkgram.y (switch_body): Remove rule ``switch_body:/*empty/'' - as ``switch_body:case_statements'' covers it---this disambiguation - fixes a reduce/reduce conflict. - -Sun May 25 16:23:43 2003 Corinna Vinschen <vinschen@redhat.com> - - * configure.ac: Remove linking against /usr/lib/automode.o. - * configure: Regenerate. - -Sun May 25 15:19:19 2003 Stepan Kasal <kasal@math.cas.cz> - - * awk.h (get_lhs): For an initialized Node_var, you may return - the address of var_value pointer, no matter whether reference - bit was set or not. We were silly slowing down most of the - assignements. - - * (get_a_record): After grow_iop_buffer, move recm.rt_start even - if recm.len == 0. - -Mon May 19 16:55:59 2003 Arnold D. Robbins <arnold@skeeve.com> - - Code for C-style switch statements. Initial version contributed by - Michael Benzinger <Michael.Benzinger@sabre-holdings.com>. - - Disabled by default, use `configure --enable-switch' to turn it on. - - * configure.ac: New AC_ARG_ENABLE for switch statements. - * awk.h (NODETYPE): New types for switch, case, default keywords - and respective lists. - * awkgram.y: New productions for switch statement. Does checking to - avoid duplicate cases. - * eval.c (nodetypes): New entries for new NODETYPEs. - (interpret): New code to do switch execution. - * profile.c (pprint): New code to print switch statements. - -Mon May 19 15:05:43 2003 Arnold D. Robbins <arnold@skeeve.com> - - * configure.ac: Renamed from configure.in. - * fixvers: Now looks in configure.ac. - * Makefile.am: Now cites configure.ac. - - * Misc other: Updated to Automake 1.7.5. - -Sun May 18 12:03:56 2003 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (do_delete_loop): Fix bracing of logic for - tests. - -Wed May 14 09:01:16 2003 Stepan Kasal <kasal@math.cas.cz> - - Misc patches: - - * builtin.c (do_match): If third parameter to `match' is supplied, - store all subexpressions which are applicable, even though there - are some unused between them. - - * awkgram.y (yylex): When returning from unterminated REGEXP - (which is /* kludge */), take care to fake a yylval, to - prevent ``internal error'' later. - -Sun May 11 15:51:00 2003 Stepan Kasal <kasal@math.cas.cz> - - * io.c (rsnullscan, get_a_record): Boundary condition bug fixes. - -Sun May 11 15:15:20 2003 Scott Deifik <scottd@amgen.com> - - * awk.h: Add decls for `memcpy_ulong', `memset_ulong', and - MSC defines. - * regex.c: Include <stdio.h> if MSC for size_t. - -Mon May 5 15:11:06 2003 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (get_a_record): Only tweak RT's value in place if the current - RS scanner is the same as the last one. Bug report submitted by - John DuBois (<spcecdt@armory.com>). - -Fri May 2 14:39:48 2003 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (get_a_record): Add logic at end to be smart about setting - RT. Saves considerable time, esp for default case where RS = "\n". - -Wed Apr 30 11:44:38 2003 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (do_split): Add check and code for Node_gvar_ref. - * array.c (in_array, do_delete, asort_actual): Same. - * builtin.c (do_split): Same for 3rd arg array parameter. - * eval.c (interpret): Same for Node_K_array_for. - (push_args): Same for evaluating extra args. - -Tue Apr 29 15:54:28 2003 Arnold D. Robbins <arnold@skeeve.com> - - Record reading code redone/simplified considerably. - - * awk.h (IOBUF): Removed total field, no longer used. - * io.c (at_eof, has_data, no_data_left): New macros. - (RECVALUE, SCANSTATE): New enumerated types. - (rs1get_a_record, rsnull_get_a_record, rsre_get_a_record): Removed. - (get_a_record): Rewritten, again. Now contains just buffer and - record code; searching code moved into these functions: - (rs1scan, rsnullscan, rsrescan): New functions to scan a buffer - for record contents and terminator. Fill in values in: - (struct recmatch): Holds found record and terminator. - (spec_setup): Set iop->dataend to indicate data is already in buffer. - (nextfile, inrec): Use new macros instead of flag and pointer tests. - (set_RS): Set scanning function instead of record function. - - FWIW, it all passes `make test'. - -Sun Apr 27 21:02:39 2003 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (do_close): At end, if do_posix return 0. See comment in code. - -Tue Apr 15 09:56:03 2003 Isamu Hasegawa <isamu@yamato.ibm.com> - - * configure.in: Check existence of wcrtomb, and wcscoll. - * configh.in: Likewise. - * configure: Re-generate. - Thanks to Kimura Koichi <kimura.koichi@canon.co.jp> for reporting. - -Sun Apr 13 16:02:10 2003 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main): Add call to `setlocale' for LC_NUMERIC after program is - parsed. - (arg_assign): Switch back to "C" locale for LC_NUMERIC for command - line assignments; this is per POSIX that period is decimal point for - program and command line assignments and the locale's separator - applies for input, output, and string to number conversion. - -2003-03-26 Paul Eggert <eggert@twinsun.com> - - * builtin.c [HAVE_INTTYPES_H]: Include <inttypes.h>. - [!HAVE_INTTYPES_H && HAVE_STDINT_H]: Include <stdint.h>. - (CHAR_BIT, INTMAX_MIN, UINTMAX_MAX): Define if the system does not. - (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): New macros, taken from - coreutils and many other GNU utilities. - (format_tree): When formatting, use widest possible integers - rather than settling with 'long'. - (do_lshift, do_rshift, do_and, do_or, do_xor, do_compl): Likewise, - when doing bitwise operations. - * configure.in (jm_AC_TYPE_LONG_LONG, jm_AC_TYPE_UNSIGNED_LONG_LONG, - jm_AC_TYPE_INTMAX_T, jm_AC_TYPE_UINTMAX_T): Add, since the mainline - code now needs this. - * doc/gawk.texi (Control Letters, Bitwise Functions): Document this. - * m4/intmax_t.m4: New file, taken from coreutils (but renamed to - avoid collision with our m4/inttypes.m4). - * m4/longlong.m4: New file, taken from coreutils. - * m4/uintmax_t.m4, m4/ulonglong.m4: Remove; superseded by the above - new m4 files. - - * builtin.c (BITS_PER_BYTE): Remove; use CHAR_BIT instead, since - it's the standard name. - (do_lshift, do_rshift): Complain if the shift width is exactly equal - to the word size, too. - -Thu Mar 27 10:44:11 2003 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (rs1_get_a_record, rsnull_get_a_record, rsre_get_a_record): - Enhance check for no data left in file to be only if file has - non-zero size. Linux files such as /proc/filesystems stat as a - regular file of size 0, but actually have contents. Ugh. - Thanks to Martin Schlemmer <azarah@gentoo.org> for the bug report. - -Wed Mar 26 12:19:32 2003 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): Add a lint warning at label `out_of_range'. - -Tue Mar 25 12:24:38 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (variable): For array subscript, if NAME is in the - symbol table, but not a variable, array, or parameter, generate - a syntax error. - (isarray): New function, tests if a symbol can be an array. - - * custom.h: Add check for HP/UX, needed for GCC. - -Mon Mar 17 09:21:09 2003 Arnold D. Robbins <arnold@skeeve.com> - - Allow simultaneous manipulation of a global array directly - and when passed as a parameter. - - * awk.h (Node_gvar_ref): New nodetype. - [orig_var]: New macro. - * array.c (do_delete_loop, do_delete): Add logic to handle - seeing Node_gvar_ref. - * eval.c (nodetypes): Add Node_gvar_ref. - (r_tree_eval, r_get_lhs): Add Node_gvar_ref case. - -Wed Mar 19 14:10:31 2003 Arnold D. Robbins <arnold@skeeve.com> - - This time for sure. - -- Bullwinkle - - * Release 3.1.2: Release tar file made. - -Wed Mar 19 14:08:11 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y: Production `program --> program error'. Add a return so - that we don't produce an infinite stream of error messages. - Thanks to Michael Mauch <michael.mauch@gmx.de> for pointing this out. - -Wed Mar 19 13:45:50 2003 Corinna Vinschen <vinschen@redhat.com> - - * regex.c [RE_ENBABLE_I18N]: Remove definition; the one in - regex_internal.h is better and makes things work with Cygwin. - -Tue Mar 11 11:54:20 2003 Arnold D. Robbins <arnold@skeeve.com> - - * regex_internal.h: Don't include <limits.h> after <regex.h> was - included in regex.c, since it could redefine RE_DUP_MAX to a lower - value. - (bitset_set, bitset_clear, bitset_contain): Use 1UL instead of 1 in - left shift operations. - * regex.c: Include <limits.h> before <regex.h> - * regcomp.c (re_compile_fastmap_iter, init_word_char, parse_expression): - Use 1UL instead of 1 in left shift operations. - -Mon Mar 10 15:45:37 2003 Corinna Vinschen <vinschen@redhat.com> - - * configure.in: Update CYGWIN case to add /usr/lib/automode.o. - -Thu Mar 6 11:07:36 2003 Arnold D. Robbins <arnold@skeeve.com> - - Updated to automake 1.7.3. - - * config.guess, config.sub: Updated from prep. - * Makefile.am (AUTOMAKE_OPTIONS): Add dist-bzip2 to get .bz2 files. - -Tue Mar 4 10:40:46 2003 Arnold D. Robbins <arnold@skeeve.com> - - * version.in: Added goop for K&R compilers; forgot that I have to fix - this file which then is used to create version.c. - -Mon Mar 3 17:00:44 2003 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: New option --disable-lint. - * awk.h (do_lint, do_lint_old): Conditionally declare based on NO_LINT. - * eval.c (set_LINT): Ifdef out body if NO_LINT. - * main.c (do_lint, do_lint_old): Conditionally compile properly. - (main): Handle --lint argument code. - -Fri Feb 28 10:43:07 2003 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main): Add LC_TIME to the things that get set with - setlocale(). - * builtin.c (format_tree): Change test of `n0-- <= 0' to ==, avoids - VMS diagnostic. - -Thu Feb 27 17:48:29 2003 Pat Rankin <rankin@pactechdata.com> - - * regexec.c (proceed_next_node): Cast re_string_get_buffer to char *. - (get_subexp): Likewise. - -Tue Feb 25 12:33:41 2003 Arnold D. Robbins <arnold@skeeve.com> - - * regex_internal.h, regex_internal.c, regcomp.c, regexec.c: - Make MB_CUR_MAX into thread local variable re_mb_cur_max. - - Unrelated, from Scott Deifik: - - * io.c (grow_iop_buffer): Add checks for overflow of new buffer size. - -Mon Feb 24 13:30:59 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (gawk_mb_cur_max): Declared: - * main.c (gawk_mb_cur_max): Defined, init to 1. - (main): Initialize gawk_mb_cur_max. - * awkgram.y, builtin.c, eval.c, field.c, io.c, re.c (mb_cur_max): - Replaces all instances of MB_CUR_MAX, which is a function call (!) - in glibc. Big speed up, especially for -Fx case, where x is a - single character. - - Unrelated: - - * awkgram.y (rule): For non-existent action, use a Node_K_print_rec - node. - -Sun Feb 23 15:45:20 2003 Arnold D. Robbins <arnold@skeeve.com> - - Speed up plain `print' and `print $0': - - * awk.h (Node_K_print_rec): New node type. - (do_print_rec): Declare function. - * awkgram.y (simple_stmt): Create humongous test for plain `print' - or `print $0', and if so, use a Node_K_print_rec for it. Modify - test for lint message. - * builtin.c (redirect_to_fp): New function for common code to get fp - and rp for do_print{,f,_rec} functions. - (do_print): Use redirect_to_fp(). - (do_printf): Use redirect_to_fp(). - (do_print_rec): New function to just print $0 from field_arr[0] - directly; will rebuild the record first if necessary. - * eval.c (nodetypes): Add Node_K_print_rec. - (interpret): Add Node_K_print_rec case. - * profile.c (pprint): Add Node_K_print_rec case. - (pp_print_stmt): If null lnode, print "$0" else print the lnode. - - Unrelated: - - * regex_internal.h: Add ENABLE_NLS to the condition for using - gettext so that --disable-nls really disables it. - -Sat Feb 23 22:46:00 2003 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (rs1_get_a_record, rsnull_get_a_record, rsre_get_a_record): - Modify buffer-filling algorithm to always read one or more multiples - of the blocksize (iop->readsize). - (grow_iop_buffer): Make sure there's room for the current partially - read record and one disk block buffer. - -Thu Feb 20 22:02:00 2003 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (research): Fix typo in cast of precision value to int. - * regex.h, regex.c, re_internal.h, re_internal.c, regcomp.c, regexec.c: - synced to GLIBC source, maintaining K&R portability changes, and bug - fixes, although losing ability to compile each file separately. - * Makefile.am (SOURCES): Moved placement of regex source files from here ... - (EXTRA_DIST): ... to here. - -Tue Feb 18 14:17:33 2003 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (research): Cast precision value to int. - * builtin.c (format_tree): For toofew, cast field width value to int. - * io.c (rsre_get_a_record): Initialize restart and reend. Add a variable - to make sure they're set before used at end of function. - (iopflags2str): Removed decl at top and made not static so that GCC - stops complaining that it's defined but not used. Bleah. - -Mon Feb 17 11:02:34 2003 Arnold D. Robbins <arnold@skeeve.com> - - * config.guess, config.sub: Updated from prep. - -Sun Feb 16 15:47:15 2003 Scott Deifik <scottd@amgen.com> - - * awk.h (format_tree, make_str_node): Changed decls to match how - they are called. - * builtin.c (format_tree, sub_common): Same. - * node.c (make_str_node): Same. - -Wed Feb 5 14:18:01 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h: Removed duplicate decl of set_prof_file(). Removed - undef of const for non-ANSI C; config.h should handle it. - * msg.c (set_loc): Use srcfile and srcline in regular code to shut up - stupid SGI compiler. - -Tue Feb 4 14:28:06 2003 Arnold D. Robbins <arnold@skeeve.com> - - All relevant files: Copyright year updated to 2003. - -Tue Feb 4 13:40:41 2003 Martin C. Brown <mc@whoever.com> - - * intl/libgnuintl.h: Preprocessor fixes for MacOS X. - * regex.h: Ditto. - -Tue Feb 4 13:39:37 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (builtin_func): New string for use in rationalizing - function parsing and installation code. - -Sun Feb 2 16:00:55 2003 Arnold D. Robbins <arnold@skeeve.com> - - Cache function body code pointer so that only have to find it the - first time a function is called. This potential for optimization - brought to my attention by Stepan Kasal. - - * awk.h [funcbody]: New macro. - * awkgram.y (FUNC_CALL): Set $$->funcbody to NULL. - * eval.c (func_call): Changed to take top-level Node_func_call as the - single parameter. Do the lookup and caching. - (r_tree_eval): Change how func_call() is called in switch. - * profile.c (pp_func_call): Similar changes. - (tree_eval): Ditto. - -Sun Feb 2 15:32:42 2003 Stepan Kasal <kasal@math.cas.cz> - - ADR: More grammar rationalization/repair from Stepan. - - * awkgram.y (common_exp, simp_exp): The rule from getline (without - pipe) has been moved from common_exp to simp_exp. - - The redirection of print statements reworked. The idea comes from - mawk-1.3.3; much thanks to Michael Brennan! - - * awkgram.y (IO_OUT, IO_IN): New tokens. - (APPEND_OP, TWOWAYIO): Swallowed by the above ones. - (in_print, in_parens): New static variables, to trace whether - IO_OUT is expected. - (yylex): Emit the new tokens, update in_parens on '(' and ')'. - (exp): The print command(s) reworked. - (oputput_redir): Reworked. - (print_expression_list): New non-terminal. - (rexp, rexpression_list opt_rexpression_list): Nuked. - (exp, simp_exp): ``cmd|getline'' rule changed to - ``cmd IO_IN getline'' and moved from exp to simp_exp. - - Unrelated: - - * awkgram.y (variable): Don't return Node_func, issue a fatal - error instead. - * eval.c (r_tree_eval, r_get_lhs): Omit special checks for Node_func, - nodes of this type cannot get into the program tree. - * profile.c (tree_eval, pp_lhs): Likewise. - -Thu Jan 30 17:42:05 2003 Stepan Kasal <kasal@math.cas.cz> - - ADR: Applied lots of patches from Stepan. - - * array.c (do_delete_loop): Call after_assign for the loop index. - * field.c (do_split): The third argument to split(), sep, has to be - evaluated and the result dupnoded before assoc_clear is called, - similarily as src. And we needn't to evaluate the third argument - if it's CONSTant regex and the first parameter is null string. - * awk.h (dupnode): Changed to macro, function renamed to r_dupnode. - * node.c (dupnode, r_dupnode): Rename. - * awkgram.y (parms_shadow): Return bool value, ... - (shadow_funcs): ... which will enable us to end the program if - lintfunc is fatal. - (program): Cleanup of the rules defining the ``program'' non-terminal. - (start, program, rule): No value associated, - expression_value is now treated similarily as begin_block and end_block. - (pattern, rule): Bison actions for non-terminal `pattern' now - add a new rule to the appropriate Node_rule_list, action for - non-terminal `rule' now only adds the associated code block - to the rnode of Node_rule_node. - (io_allowed): Renamed to !begin_or_end_rule. - (append_pattern): New function, adds new Node_rule_node to a rule_list. - (mkrangenode): Deleted, this tiny function was called only once. - (function_body): Non-terminal replaced by `action'. - (statements, action, statement): `statements' can now be empty; - both callers had to accomodate to this. - (statements): Don't call isnoeffect($2->type) if - $2 happens to be NULL. - -Mon Jan 27 14:12:19 2003 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (iop_close): Based on report by Stepan Kasal and because of - his changes, don't call reset_record() when saving a copy of contents - of $0. - * awkgram.y: Improved function parsing error messages for case where - user uses a builtin name as a function name. Based on error report - by Stepan Kasal. - * ext.c (make_builtin): Set FUNC flag for new function. Based on error - report by Stepan Kasal. - -Mon Jan 27 14:06:20 2003 Stepan Kasal <kasal@math.cas.cz> - - * field.c (reset_record): No longer call set_record(), the code is - moved to the function body. Do not set MAYBE_NUM. - (set_record): Call reset_record() to perform the common tasks. - The prototype has changed, change awk.h and all callers. - -Mon Jan 27 10:50:03 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (NODE): `proc' renamed to `builtin,' to fix a conflict - on some systems. Replaced on all spots where it was used. - -Sun Jan 26 11:52:01 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h [NUMSUBPATS]: New macro. - * builtin.c (do_match): Use it in loop that fills in subpattern info. - * eval.c (r_tree_eval): For Node_assign, don't call free_temp(), - as assign_val() contains dupnode(), which would clear the TEMP - flag. From Stepan Kasal <kasal@math.cas.cz>. - * config.sub: Updated from prep. - -Sun Jan 19 22:34:01 2003 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (do_asorti): Add declaration. - * awkgram.y (tokentab): Add asorti() function to table. - * array.c (ASORT_TYPE): New enumerated type for VALUE or INDEX array - sorting. - (assoc_sort_inplace): New second arg of type ASORT_TYPE. Additional code - to rearrange array so rest of merge-sorting works; basically values are - tossed and index moved into value spot. - (asort_actual): Renamed from do_asort(). Takes new ASORT_TYPE argument. - (do_asort): Calls asort_actual(tree, VALUE). - (do_asorti): Calls asort_actual(tree, INDEX). - - * main.c (load_procinfo): Free groupset array when done with it. - -Thu Jan 16 18:30:50 2003 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_match): Revised to provide start and length - indices in array 3rd parameter. - * config.guess, config.sub: Updated from prep. - -Thu Jan 2 11:09:12 2003 Arnold D. Robbins <arnold@skeeve.com> - - Updated to bison 1.875. - -Tue Dec 31 17:14:45 2002 Arnold D. Robbins <arnold@skeeve.com> - - Updated things to automake 1.7.2 and autoconf 2.57. - -Tue Dec 31 16:54:44 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h [IOP_CLOSED]: New flag. - * io.c (iop_close): Set IOP_CLOSED flag. - (inrec): Check for IOP_CLOSED; if set return EOF. - (rs1_get_a_record, rsnull_get_a_record): Check for EOF before - refilling buffers. - (rsre_get_a_record): Ditto. Also, set RT before updating pointers in IOP. - * Makefile.am (efence): New target to compile with Electric Fence. - -2002-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * awk.h (catchsig): Delete prototype. - * main.c (catchsig): Make static and remove excess argument. - (main): Delete unnecessary casts. - * io.c (rs1_get_a_record, rsnull_get_a_record): Mark parameter - with ATTRIBUTE_UNUSED. - -Mon Dec 23 11:54:07 2002 Arnold D. Robbins <arnold@skeeve.com> - - * regex_internal.h, regex_internal.c, regcomp.c, regexec.c, version.c: - Fixed to compile, once again, under K&R compilers. - * io.c (grow_iop_buffer): Fix calculation of new size to - first subtract 2, double, then add 2 back in. - -Fri Dec 20 11:48:42 2002 Arnold D. Robbins <arnold@skeeve.com> - - get_a_record split into three routines. - - * awk.h (IOBUF): Structure reworked for new code. - * io.c (get_a_record): Now a pointer to different functions. - (rs1_get_a_record, rsnull_get_a_record, rsre_get_a_record): New functions. - (iop_alloc, iop_close): Reworked for new structure. - (do_getline, inrec): Modifiend for new EOF condition. - (iopflags2str): New routine. - -Fri Dec 20 11:05:50 2002 Isamu Hasegawa <isamu@yamato.ibm.com> - - * regex.c, regex_internal.c, regex_internal.h: Changes to allow separate - compilation of the reg*c files. - * regcomp.c: Fix bug in using translation tables with [[:upper:]] etc. - * Makefile.am: Move regex files into sources from EXTRA_DIST. (ADR) - -Mon Dec 9 14:20:42 2002 Stepan Kasal <kasal@math.cas.cz> - - * main.c (main): When processing option '-f' don't ignore spaces - if optarg points at the beginning of the current argument - (like ``gawk -f " " file''). - -2002-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * awkgram.y (stopme): Mark parameter with ATTRIBUTE_UNUSED. - (yyerror): Add ATTRIBUTE_PRINTF_1. - * builtin.c (do_systime, do_rand): Likewise. - * field.c (set_field, re_parse_field, def_parse_field, - posix_def_parse_field, null_parse_field, sc_parse_field, - fw_parse_field): Likewise. - * io.c (pidopen, useropen): Likewise. - * main.c (catchsig): Likewise. - * profile.c (init_profiling): Likewise. - * awk.h (err): Add ATTRIBUTE_PRINTF. - * msg.c (err): Delete redundant prototype. Fix format specifier. - -Wed Nov 27 06:04:20 2002 Pat Rankin <rankin@pactechdata.com> - - * ext.c [#if !DYNAMIC] (do_ext): Cast string value for error node. - -Sun Nov 24 18:23:29 2002 Arnold D. Robbins <arnold@skeeve.com> - - From Paul Eggert, with some edits by me. - - * builtin.c (do_substr): Consistently use floating point - values for lint messages, so they should be printed pretty - much as the user saw them. Check for overflow before - converting floating point to integer. Do the right thing with - NaNs. - - Check for index out-of-range before checking for length - out-of-range, to avoid some nasty effects if address - arithmetic overflows (e.g., indx + length < index). - - Allow zero-length substrings when checking for lint if - do_lint == LINT_INVALID. - -Sun Nov 24 18:21:06 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (LINT_ALL, LINT_INVALID): New constants. - * main.c (main): Allow --lint=invalid which restricts warning to - things that aren't valid. - * eval.c (set_LINT): Update setting logic. - -Wed Nov 20 13:14:58 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (lintfunc): Improve ifdef for attribute to only - work for GCC 3.2 and later. - * io.c (PIPES_SIMULATED): Don't define if on AIX, which - does define TANDEM in one of its header files. Ugh. - -Tue Nov 19 15:33:55 2002 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_substr): Use %lu in warnings instead of %d. - -Mon Nov 18 14:42:53 2002 Arnold D. Robbins <arnold@skeeve.com> - - * config.guess: Synced from ftp.gnu.org. - * config.sub: Ditto. - -Sun Nov 17 21:32:49 2002 Arnold D. Robbins <arnold@skeeve.com> - - Updated things to automake 1.7.1. - -Sun Nov 3 14:33:30 2002 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (r_get_lhs): For variables, always clear UNINITIALIZED, - since the variable is about to be assigned to. From Stepan Kasal. - -Fri Nov 1 11:19:01 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (lintfunc): Can only supply attributes for a function - pointer if GCC >= 3. Added ifdefs. Bah, humbug. - -2002-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * array.c (array_init, concat_exp, assoc_find, do_delete): - Const-ify. - * awk.h (redirect, set_record, pp_func, pp_string_fp, format_val, - parse_escape, make_regexp, research, reisstring, remaybelong): - Likewise. - * awkgram.y (dumpintlstr, dumpintlstr2, func_use, dup_parms, - var_comp, finfo, fcompare, func_use, dumpintlstr, dumpintlstr2): - Likewise. - * builtin.c (stdfile, do_fflush, do_index, category_table): - Likewise. - * eval.c (push_forloop, push_args, PUSH_BINDING, RESTORE_BINDING, - cmp_nodes, op_assign, loop_info, fcall, fmt_ok, set_LINT, - comp_func): Likewise. - * ext.c (do_ext): Likewise. - * field.c (set_record): Likewise. - * io.c (gawk_popen, two_way_open, binmode, redirect, getredirect, - fatal): Likewise. - * node.c (values, format_val, make_str_node, parse_escape): Likewise. - * profile.c (pp_string, pp_match_op, pp_func, pp_string, - pp_string_fp): Likewise. - * re.c (make_regexp, research, reisstring, remaybelong): Likewise. - -2002-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * awk.h (__attribute__, ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, - ATTRIBUTE_PRINTF, ATTRIBUTE_PRINTF_1, __extension__): Define. - (emalloc, erealloc): Fix format specifier warnings. - (do_nextfile):Mark with ATTRIBUTE_NORETURN. - (getredirect): Const-ify. - (msg, error, warning, r_fatal, lintfunc): Mark with - ATTRIBUTE_PRINTF_1. - (r_fatal): Mark with ATTRIBUTE_NORETURN. - * builtin.c (format_tree): Fix format specifier warning. - * eval.c (interpret): Likewise. - * main.c (usage, copyleft, catchsig, nostalgia, version): Mark - with ATTRIBUTE_NORETURN. - * profile.c (dump_and_exit): Likewise. - -2002-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * array.c (array_init): Use ISDIGIT, not isdigit. - * awk.h (m_tree_eval, force_number, force_string): Use - __extension__ in statement expressions. - * main.c (lintfunc): Fix !__SDTC__ case. - * regex_internal.c (calc_state_hash): Fix inline declaration. - * regexec.c (proceed_next_node): Cast assignment to correct type. - -2002-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * awk.h (exp_node, Func_ptr): Add prototype arguments. - * awkgram.y (yystype, token, getfname, nextc, pushback, - allow_newline, yylex): Likewise. - * io.c (wait_any): Likewise. - * profile.c (indent_in, indent_out): Likewise. - * random.h (random): Likewise. - -2002-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> - - * array.c (grow_table): Const-ify. - * awk.h (RE_TRANSLATE_TYPE): Define. - (flagtab, casetable): Const-ify. - (getfname, shadow_funcs, redflags2str): Prototype. - (flags2str, genflags2str, nodetype2str, redflags2str, set_loc, - msg, error, warning, r_fatal): Const-ify. - * awkgram.y (tokentab, snode): Likewise. - * builtin.c (format_tree, do_strftime, - localecategory_from_argument): Likewise. - * eval.c (casetable, nodetypes, nodetype2str, flags2str, - genflags2str): Likewise. - * io.c (redflags2str, socketopen): Likewise. - * main.c (varfile, version_string, lintfunc, optab, copyleft, - varinit, init_vars): Likewise. - * msg.c (srcfile, msg, warning, error, set_loc, r_fatal): - Likewise. - * profile.c (pp_op_assign, pp_match_op, pp_redir): Likewise. - * random.c (sccsid): Likewise. - * version.c, version.in (version_string): Likewise. - -Tue Oct 29 10:50:52 2002 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: Update version in AC_INIT and AM_INIT_AUTOMAKE - * fixvers: Make grep for pattern a little smarter. - -Mon Oct 28 16:35:39 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (hash): Now a function pointer. - * array.c (gst_hash_string, scramble): New functions. - (awk_hash): Renamed from hash. - (hash): Now a function pointer. - (array_init): Change hash function based on environment for - experimentation. - -Mon Oct 28 13:21:20 2002 Arnold D. Robbins <arnold@skeeve.com> - - Applied lots of patches from Stepan Kasal, tweaked as needed - for current code base. - - * node.c (dupnode): When n->stref overfows, flag the node as PERM. - Same for n->ahname_ref. - (unref): Remove the check for n->stref == LONG_MAX and - n->ahname_ref == LONG_MAX. - * awk.h (make_string): The third argument to make_str_node changed - from FALSE to 0, it's not Boolean. - (free_temp): Evaluate the argument only once, so that we - can call free_temp(tree_eval(n)) for achieving side effects. - (load_environ, load_procinfo): Changed return type to NODE *. - * main.c (load_environ): The ENVIRON_node should be created with type - Node_var_array and lnode set to NULL. Return pointer to the created node - and create an empty hash even on TANDEM. - (load_procinfo): Same mods for PROCINFO_node. - (init_args): ARGV_node should also have lnode set to NULL. - * eval.c (r_tree_eval): case Node_assign moved just above the other - assignment cases. - (op_assign): ++ and -- cases merged with += and -=, respectively. - (push_args): Evaluate all args, even in cases where more args are - supplied then required. - (interpret): In case Node_K_forarray, flag the variable - num_elems also as volatile, so that it survives longjmp() and - can be trusted when linting code. - (r_get_lhs): Case Node_param_list was unreachable (unless - something breaks really badly), remove it; - (r_tree_eval): Case Node_var_array removed from the last switch, - it was caught in the first switch above. - * profile.c (tree_eval): Again, case Node_var_array was caught above. - * awkgram.y (variable): Code simplified, making use of the above - changes. - * field.c (sc_parse_field): IGNORECASE only applies to regex based - field-splitting, so remove code that pays attention to it. - (do_split): Don't use parse_field if RS_is_null. - (set_FS): Beware of FS == "\\" even if RS_is_null. - - Code changes to make things work better: - * field.c (set_FS): Don't use cmp_nodes() to compare old and new - value of FS, that uses IGNORECASE, which is a bad idea. Improve - logic for choosing sc_parse_field. Ensure that when RS_is_null - but using a single character, that we do pay attention to - case when doing regex splitting. - * io.c (set_RS): Don't use cmp_nodes() to compare old and new - value of RS, that uses IGNORECASE, which is a bad idea. - -Mon Oct 28 09:43:14 2002 Arnold D. Robbins <arnold@skeeve.com> - - * recomp.c (parse_expression): Change return statement into - two so it'll compile for SGI cc. - - * awk.h (STR, CUR): Changed to STRCUR and NUMCUR respectively, - to avoid conflict with STR on some System V systems. Changed - in all source files. - -Thu Oct 24 16:14:34 2002 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (AVG_CHAIN_MAX): Now a variable, to allow easy experimentation. - (array_init): Pulls a new value from env var AVG_CHAIN_MAX if it - exists and sets the variable. - * awk.h: Add declaration for array_init(). - * main.c (main): Call array_init(). - -Tue Oct 22 11:23:56 2002 Arnold D. Robbins <arnold@skeeve.com> - - * bisonfix.sed: Updated for current bison. Death to alloca! - -2002-10-21 Isamu Hasegawa <isamu@yamato.ibm.com> - - * builtin.c (tolower, toupper): Add casts to char* to fix some - compiler warnings. - * eval.c (cmp_nodes): Ditto. - * regcomp.c (peek_token_bracket): Skip the byte already read. - -Wed Oct 16 15:02:09 2002 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (set_RS): Make sure to always call set_FS(). - -2002-10-11 Isamu Hasegawa <isamu@yamato.ibm.com> - - * regcomp.c (re_compile_fastmap_iter): Remove the handling - OP_CONTEXT_NODE. - (regfree): Likewise. - (create_initial_state): Likewise. - (analyze): Remove the substitutions which became useless. - (calc_first): Likewise. - (calc_epsdest): Use edests of OP_BACK_REF in case that it has - epsilon destination. - (duplicate_node_closure): New function. - (duplicate_node): Remove the handling OP_CONTEXT_NODE. - (calc_inveclosure): Likewise. - (calc_eclosure): Likewise. - (calc_eclosure_iter): Invoke duplicate_node_closure instead of - direct invocation of duplicate_node. - (parse): Don't use comma operator in the return to avoid compiler - warning. - (parse_reg_exp): Likewise. - (parse_branch): Likewise. - (parse_expression): Likewise. - (parse_sub_exp): Likewise. - (parse_dup_op): Likewise. - * regex_internal.c (re_dfa_add_node): Remove the substitutions - which became useless. - (create_ci_newstate): Remove the handling OP_CONTEXT_NODE. - (create_cd_newstate): Likewise. - * posix/regex_internal.h (re_token_type_t): Remove the obsolete type. - (re_token_t): Likewise. - (re_dfa_t): Likewise. - (re_node_set_remove): New macro. - * regexec.c (check_matching): Remove the handling - OP_CONTEXT_NODE. - (check_halt_node_context): Likewise. - (proceed_next_node): Likewise. - (pop_fail_stack): Fix the memory leak. - (set_regs): Likewise. - (free_fail_stack_return): New function. - (sift_states_backward): Fix the memory leak. Remove the handling - OP_CONTEXT_NODE. - (update_cur_sifted_state): Append some if clause to avoid redundant - call. - (sub_epsilon_src_nodes): Use IS_EPSILON_NODE since it might be a - back reference. - (check_dst_limits): Remove the handling OP_CONTEXT_NODE. - (check_subexp_limits): Likewise. - (search_subexp): Likewise. - (sift_states_bkref): Likewise. - (transit_state_mb): Likewise. - (transit_state_bkref_loop): Likewise. - (transit_state_bkref_loop): Likewise. - (group_nodes_into_DFAstates): Likewise. - (check_node_accept): Likewise. - (sift_ctx_init): Add initializing. - -Tue Oct 15 14:18:53 2002 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (set_IGNORECASE): Call set_RS() instead of - set_FS_if_not_FIELDWIDTHS(). The former calls the latter - for us, and also makes IGNORECASE affect RS like it's supposed to. - * field.c (FS_re_yes_case, FS_re_no_case): New variables. - (set_FS): Smarten up routine to not recompile FS_regexp if all - that's changed is IGNORECASE or if switching back to FS from - FIELDWIDTHS. Significant speed-up for cases where IGNORECASE - is assigned to for every record. - * io.c (RS_re_yes_case, RS_re_no_case): New variables. - (set_RS): Similar changes as to set_FS(). In particular, - IGNORECASE changing now affects record splitting too. - * re.c (refree): Set rp->pat.tranaslate to NULL. It comes - from casetable and shouldn't be freed. (Strictly necessary - only for old regex, but a good idea anyway). - Also, call regfree(& rp->pat) instead of manually free()ing - things, since there's dynamically allocated stuff hiding in - the buffer. Avoids a memory leak. - -Mon Oct 14 12:02:39 2002 Arnold D. Robbins <arnold@skeeve.com> - - Major space reduction in array management. Overhead reduced - to two NODE's per element from three. - - * awk.h (ahash): Union is gone. - (hash.ref): New union member. - (ahnext): New definition into hash union. - (ahvalue): New definition into hash union. - (ahname_str): New member, points into hash union. - (ahname_len): New member, points into hash union. - (ahname_ref): New member, points into hash union. - * array.c: Replaces uses of ahname member with string and - length. Set the reference count correctly to 1 on new nodes. - * eval.c (interpret): Case for Node_K_arrayfor. dupnode() the - array indices, and set loop variable to new value made via - make_string(). - * node.c (unref, dupnode): Node_ahash nodes are now also - reference counted, a la strings. Similar code is used to - increment/decrement the counts, and/or copy nodes as - needed. - - Unrelated: - * awk.h (forsub): Removed. Not used. - -Sun Oct 13 16:58:27 2002 Stepan Kasal <kasal@math.cas.cz> - - * profile.c (pprint): #undef the temporary defines at the end - of the case. - * eval.c (interpret): Likewise. - (assign_val): We can unref() before doing dupnode(). - Also, move the check for NF < 0 from here ... - * field.c (set_NF): ... to here. - * main.c (varinit): No need to call set_NF(). - * awkgram.y (statements): Don't be so generous when concatenating - `statements' with a `statement'. - - -2002-10-13 Isamu Hasegawa <isamu@yamato.ibm.com> - - * regcomp.c: Synced with development sources. - * regex_internal.c: Synced with development sources. - * regex_internal.h: Synced with development sources. - * regexec.c: Synced with development sources. - -Sun Oct 13 21:35:35 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (NODE): Reflags is now unsigned long for: - (exec_count): Defined to be sub.nodep.reflags. Using `number' - broke pgawk. - * profile.c (Node_K_delete_loop): Print out as a for loop - with a comment that it's internally the same as `delete array'. - * eval.c (Node_K_delete_loop): Increment the exec_count. Ooops. - * configure.in (AM_GNU_GETTEXT_VERSION): New macro call. - * custom.h: Updated description of the file at the top. - -Thu Oct 10 16:39:51 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (vname, exec_count): Now macros into different - parts of the NODE structure that can be safely used for them. - Saves 16 bytes per NODE. - * eval.c: Changed use of `vname' to `varname' to avoid new - macro. - * main.c (lintfunc): Made ifdefed decls match awk.h. - * eval.c (comp_func): Use memcmp instead of strcmp. - * configure.in (AC_CONFIG_HEADER): Physically append custom.h - to config.h to avoid subdir compiliation problems. - -Sun Oct 6 17:36:15 2002 Arnold D. Robbins <arnold@skeeve.com> - - Updated to automake 1.7 and bison 1.50. - - * INSTALL: Replaced with current version from automake 1.7. - * config.guess: Replaced with current version from automake 1.7. - * config.sub: Replaced with current version from automake 1.7. - * depcomp: Replaced with current version from automake 1.7. - * doc/texinfo.tex: Replaced with current version from automake 1.7. - * install-sh: Replaced with current version from automake 1.7. - * missing: Replaced with current version from automake 1.7. - * mkinstalldirs: Replaced with current version from automake 1.7. - * ylwrap: Replaced with current version from automake 1.7. - - * configure.in (DYNAMIC): Updated AC_DEFINE(DYNAMIC) to - three-argument form for autoheader. - * acinclude.m4: Removed includes of jm-mktime.m4 and - largefile.m4, which are now standard parts of Autoconf. - - * Makefile.in: Regenerated. - * aclocal.m4: Regenerated. - * awkgram.c: Regenerated. - * awklib/Makefile.in: Regenerated. + * configure.ac: Update version to 4.0.0. * configure: Regenerated. - * doc/Makefile.in: Regenerated. - * test/Makefile.in: Regenerated. - -Sun Sep 29 16:47:49 2002 Arnold D. Robbins <arnold@skeeve.com> - - * custom.h (__WIN32__): Added from gnuwin32 project, via - Stepan Kasal. - - * awkgram.y: For tawk compatibility, added `delete(array)'. - To remain undocumented, since it's WAY non-standard. - -Sun Sep 22 22:23:50 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (re_cnt): Removed, not needed since no dfa code. - * awkgram.y (regexp, a_regexp): Removed use of re_cnt. - * re.c (re_update): Ditto. - -Thu Sep 19 10:55:37 2002 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (binmode): Create function if defined(WIN32) also. - - Updated to gettext 0.11.5, autoconf 2.54 and automake 1.6.3. - - * aclocal.m4: Regenerated. - * m4/codeset.m4: Updated. - * m4/gettext.m4: Updated. - * m4/glibc21.m4: Updated. - * m4/iconv.m4: Updated. - * m4/lcmessage.m4: Updated. - * m4/lib-ld.m4: Updated. - * m4/lib-link.m4: Updated. - * m4/lib-prefix.m4: Updated. - * m4/progtest.m4: Updated. - * po/Makefile.in.in: Updated. - * po/Rules-quot: Updated. - * po/boldquot.sed: Updated. - * po/en@boldquot.header: Updated. - * po/en@quot.header: Updated. - * po/insert-header.sin: Updated. - * po/quot.sed: Updated. - * po/remove-potcdate.sin: Updated. - -Tue Sep 17 23:46:01 2002 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: Moved override of INSTALL to just after - AC_INIT so that it takes effect. Necessary for Autoconf 2.5x. - -Mon Sep 16 16:40:57 2002 Stepan Kasal <kasal@math.cas.cz> - - * awkgram.y (want_assign): Removed. - (SLASH_BEFORE_EQUAL, ASSIGN): New terminals; ``/='' is now - formed from these two. - (a_slash): New non-terminal, representing either '/' or - SLASH_BEFORE_EQUAL. - (assign_operator): New non-terminal, replaces ASSIGNOP. - (REGEXP): yylex now eats the terminating '/' before - returning REGEXP token. - (exp): The check for C-like comments moved from here - (regexp): ... to here. - (common_exp): New non-terminal; contains common parts of exp - and rexp. (a_relop, relop_or_less): New non-terminals. - (rexp): Some rules updated to be analogous to exp. - (output_redir): Can contain only common_exp, not exp in general. - -Mon Sep 16 22:51:51 2002 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (two_way_open): Move label use_pipes outsidef of ifdef, - just in case. - -Thu Sep 12 15:11:28 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (getfname): Return NULL if not found, remove - fatal error. Could be an extension function. - (dump_funcs): Walk symbol table counting functions before - mallocing table, since there could be extension functions, - func_count could be too small. - * profile.c (pp_builtin): Handle NULL return from getfname(). - Print it as "extension_function()" if so. - -Tue Sep 10 17:33:48 2002 Arnold D. Robbins <arnold@skeeve.com> - - Minor code simplification. - - * awk.h (in_array): Change return type to NODE*. - (assoc_exists): Remove declaration. - * array.c (in_array): Change return type to NODE *. - Return value is pointer to element value or NULL. - (assoc_exists): Removed function. - * eval.c (r_tree_eval): Case Node_in_array, change value - to test return of in_array() against NULL. - * io.c (pty_vs_pipes): Change test to make a tmp_string() - of the index and call in_array(). Add free_temp() of - subscript and free() of full_index (oops). - -2002-09-10 Isamu Hasegawa <isamu@yamato.ibm.com> - - * posix/regcomp.c: Wrap #include wchar.h and wctype.h in #if. - (build_range_exp): Add castings to strlen invocations. - (build_collating_symbol): Restore the type of characters from "char" - to "unsigned char", and supplement castings. - (build_collating_symbol): Likewise. - (build_equiv_class): Likewise. - (build_charclass): Likewise. - (seek_collating_symbol_entry): Likewise. - (parse_bracket_exp): Likewise. - (build_word_op): Supplement a casting. - * posix/regex_internal.c: Wrap #include wchar.h and wctype.h in #if. - (re_string_allocate): Fix castings. - (re_string_construct): Likewise. - (re_string_construct_common): Likewise. - (re_string_realloc_buffers): Likewise. - (build_wcs_buffer): Likewise. - (build_wcs_upper_buffer): Likewise. - (re_string_skip_chars): Likewise. - (re_string_reconstruct): Likewise. - * posix/regex_internal.h: Restore the type of characters in - re_string_t and bracket_elem_t from "char" to "unsigned char". - (re_string_elem_size_at): Fix castings. - * posix/regexec.c: Wrap #include wchar.h and wctype.h in #if. - (transit_state_bkref_loop): Restore the type of characters from - "char" to "unsigned char", and append a cast to "char*" pointer in - array subscript. - (check_node_accept_bytes): Likewise. - (find_collation_sequence_value): Likewise. - -Thu Sep 5 13:15:09 2002 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (remaybelong): New routine. - (reisstring): Simplified the code a bit. - * awk.h (remaybelong): Declaration added. - * io.c (get_a_record): Change fourth grungy special case to - use remaybelong() instead of strchr() on last character. - -Wed Sep 4 13:20:26 2002 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (do_input): Recode guts of main loop to be easier - to trace with a debugger. - (get_a_record): Fourth grungy special case for RE-based - record splitting added. See explanatory comments there - and test/rebuf.awk. - -2002-09-03 Isamu Hasegawa <isamu@yamato.ibm.com> - - * posix/regcomp.c (regcomp): Append "__restrict" modifier to avoid - warnings of some compilers. - (build_collating_symbol): Change the type of characters from - "unsigned char" to "char", and append a cast to "char*" pointer in - array subscript. - (build_collating_symbol): Likewise. - (build_equiv_class): Likewise. - (build_charclass): Likewise. - (re_compile_pattern): Remove incorrect cast. - (re_compile_fastmap_iter): Change the type of characters from - "unsigned char" to "char", and append a cast to "char*" pointer - in array subscript. - (parse_bracket_exp): Likewise. - * posix/regex_internal.c (re_string_construct_common): Likewise. - (re_string_allocate): Likewise. - (re_string_construct): Likewise. - (re_string_realloc_buffers): Likewise. - (build_wcs_buffer): Likewise. - (re_string_reconstruct): Likewise. - * posix/regex_internal.h: Change the type of characters in - re_string_t and bracket_elem_t from "unsigned char" to "char". - * posix/regexec.c (regexec): Append "__restrict" modifier to avoid - warnings of some compilers. - (transit_state_bkref_loop): Change the type of characters from - "unsigned char" to "char", and append a cast to "char*" pointer in - array subscript. - (check_node_accept_bytes): Likewise. - (find_collation_sequence_value): Likewise. - -Wed Aug 21 15:40:36 2002 Corinna Vinschen <vinschen@redhat.com> - - * configure.in: Define --without-libintl-prefix and - --without-libiconv-prefix for Cygwin by default. - * Makefile.am: Call fixvers from $(srcdir). - * awk.h: Don't define O_BINARY on Cygwin. - -Wed Aug 21 15:31:57 2002 Andreas Buening <andreas.buening@nexgo.de> - - * configure.in (AC_OBJEXT, AC_EXEEXT): Added. Removed OS/2 goo. - * Makefile.am (check-local): Add $(EXEEXT) suffixes, remove OS/2 goo. - * regcomp.c, regex_internal.c, regexec.c: Conditionalize include of - <wchar.h> and <wctype.h> on RE_ENABLE_I18N. - -Wed Aug 21 14:43:57 2002 Arnold D. Robbins <arnold@skeeve.com> - - * gettext.h (ENABLE_NLS): Add include of locale.h so that things - compile even without optimization. Sheesh. - * io.c (two_way_open, pty_vs_pipes): Conditionalize pty code on - HAVE_TERMIOS_H. - -Thu Aug 8 22:16:10 2002 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (main): Force LC_NUMERIC locale to "C", esp. for - M$ systems. Ugh. - -Wed Aug 7 13:42:01 2002 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (get_a_record): Improve test for newlines at beginning of - record but with nothing following it. See test/nulrsend. - -Mon Aug 5 10:12:39 2002 Arnold D. Robbins <arnold@skeeve.com> - - Add option to use ptys instead of pipes for |&. - Basic plumbing originally from Paolo Bonzini <bonzini@gnu.org>. - - * awk.h (RED_PTY): New flag. - (assoc_exists): Add declaration. - * array.c (in_array): Use FALSE not zero for return value. - (assoc_exists): New routine to find and return value for an index - in an array. - * configure.in: Test for termios.h and stropts.h, and grantpt function. - * io.c: Include termios.h and stropts.h if available. - (redflags2str): Add RED_PTY to table. - (redirect): Add RED_PTY to flags turned off when searching. - (close_redir): Close write channel for two-way pipes - that use ptys by sending an EOF. - (two_way_open): If pty_vs_pipe(), use pty's to open two-way pipes as - they are line-buffered by default --> alleviates deadlock problems. - If fails, fall back to using pipes. - (pty_vs_pipe): New function. - * main.c (arg_assign): Clean up English in some of the error messages. - -Sun Aug 4 00:37:38 2002 Stepan Kasal <kasal@math.cas.cz> - - * re.c (make_regexp): Don't pass the error message returned by - re_compile_pattern() to gettext(); it's already gettextized. - (make_regexp): Minor reformat of code. - -Wed Jul 31 23:50:31 2002 Arnold D. Robbins <arnold@skeeve.com> - - Removed dfa code from gawk since not really needed with new regex. - - * Makefile.am: Removed dfa.h and dfa.c. - * awk.h (struct Regexp): Removed `dfareg' and `dfa' members. - (make_regexp): Last parameter in function went away, changed decl. - (avoid_dfa): Removed declaration. - * awkgram.y: Fixed call to make_regexp(). - * eval.c (match_op): Simplified: removed call to avoid_dfa() and - `kludge_need_start' variable. Instead, pass FALSE as last parameter - of research(). - * field.c (set_FS): Fixed call to make_regexp(). - * io.c (get_a_record, set_RS): Fixed calls to make_regexp(). - * re.c (make_regexp): Removed last paramter (`dfa') from function. - Simplified the code. - (research): Simplified the code, removed calls to dfa stuff. - (dfaerror): Removed function. - (re_update): Fixed call to make_regexp(). - (avoid_dfa): Removed function. - -Thu Jul 25 21:55:45 2002 Arnold D. Robbins <arnold@skeeve.com> - - * regcomp.c, regex_internal.c, regex_internal.h, regexec.c: Bug - fixes from Isamu Hasegawa <isamu@yamato.ibm.com> and Stepan Kasal - <kasal@math.cas.cz> applied. - -Sat Jul 6 23:28:37 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (yyerror): Change text of unexpected newline message to - include end of string. - -Mon Jun 17 17:58:55 2002 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (do_split): Per Michal Jaegermann, move free_temp(fs) - above label `out'. - -Tue Jun 11 23:26:09 2002 Paul Eggert <eggert@twinsun.com> - - Update to autoconf 2.53 and automake 1.6.1. - - * acconfig.h: Removed. - * m4/isc-posix.m4: Removed. - * m4/jm-mktime.m4: Removed. - * m4/largefile.m4: Removed. - * m4/ssize_t.m4: Removed. - * ansi2knr.c: Updated. - * depcomp: Updated. - * install-sh: Updated. - * missing: Updated. - * mkinstalldirs: Updated. - * ylwrap: Updated. - - * configure.in: Improved quoting. - * acinclude.m4: Use `m4_sinclude', not antiquated `sinclude'. - -Tue Jun 11 23:08:40 2002 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: Add `getgrent' to list of functions checked - so that awklib/grcat is compiled correctly. - -Tue Jun 11 22:18:42 2002 Stepan Kasal <kasal@math.cas.cz> - - Improve argument parsing and -v assignment. - - * awk.h (struct src): Add additional enum values. - (arg_assign): Return type and arg list changes. - * io.c (nextfile): Add extra arg in call to `arg_assign'. - * main.c (pre_assign): Nuked. - (allocfiles): New variable. - (srcfiles_add, preassigns_add): New macros. - (main): Logic cleaned up. - (add_src): New function. - - Use `size_t' for optimal_bufsize function. - - * awkgram.y (yylex): `len' is now size_t. - * pc/gawkmisc.pc (optimal_bufsize): Change return type to size_t. - * posix/gawkmisc.c (optimal_bufsize): Change return type to size_t. - * unsupported/atari/gawkmisc.atr (optimal_bufsize): Change return type - to size_t. - * unsupported/tandem/tmisc.c (optimal_bufsize): Change return type to size_t. - * vms/gawkmisc.vms (optimal_bufsize): Change return type to size_t. - * README_d/README.hpux: New file. - -Fri May 24 12:23:01 2002 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (init_profiling): Remove default initialization - of `prof_fp' to stderr. Per Stepan Kasal <kasal@math.cas.cz>. - -Wed May 15 15:39:17 2002 Arnold D. Robbins <arnold@skeeve.com> - - Work through builtin operations to make sure that - anything that might have side effects gets dealt with. - - * array.c (do_delete): Evaluate subscript first before - checking if something is or isn't an array. - * builtin.c (sub_common): Evaluate replacement text, and - free it if no match of regex in source text. - -Wed May 15 15:30:34 2002 Arnold D. Robbins <arnold@skeeve.com> - - Switch to new version of regex from IBM Japan. - - * regcomp.c: New file. - * regex.c: Replaced with new version. - * regex.h: Replaced with new version. - * regex_internal.c: New file. - * regex_internal.h: New file. - * regexec.c: New file. - * Makefile.am (EXTRA_SOURCES): New files added. - -Tue May 14 17:04:05 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (<locale.h>): Move check and include into gettext.h. - * gettext.h (<locale.h>): Add check and include per patch from - Bruno Haible. - - * field.c (do_split): When checking for split of null string, - evaluate seperator if it's not FS, since could have side effects. - At end, free_temp(fs), not free_temp(sep). - Both of these thanks to Stepan Kasal <kasal@math.cas.cz>. - -Mon May 13 00:41:31 2002 Arnold D. Robbins <arnold@skeeve.com> - - * custom.h (ultrix): Add define GETGROUPS_NOT_STANDARD. - * main.c (init_groupset): For GETGROUPS_NOT_STANDARD, use old way - to set `ngroups'. - -2002-05-10 Andreas Schwab <schwab@suse.de> - - * dfa.c (parse_bracket_exp_mb): Fix warning. - -Thu May 9 22:28:32 2002 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (sub_common): Fix logic for match of null strings to - get correct semantics. See test/gsubtst2.*. - * field.c (do_split): Minor code cleanup; the third arg to split() - is set to be FS by the grammar, so don't need to check it for NULL. - Thanks to Stepan Kasal <kasal@math.cas.cz>. - * awk.h (locale.h): Move include before that of "gettext.h" for systems - that define functions that gettext.h would use when NLS is disabled. - Per bug report from Ayamura Kikuchi <ayamura@ayamura.org>. - -Tue May 7 17:31:01 2002 Arnold D. Robbins <arnold@skeeve.com> - - Miscellanious patches courtesy of Stepan Kasal <kasal@math.cas.cz>. - - * field.c, main.c: Tidy up some comments. - * field.c (set_FIELDWIDTHS): Init fw_alloc to 4 so it isn't - immediately realloced. - * main.c (load_procinfo): Check value of FS/FIELDWIDTHS for - value of PROCINFO["FS"]. - * awk.h (set_FS_if_not_FIELDWIDTHS): Removed decl. - * field.c (set_FS_if_not_FIELDWIDTHS): Removed function. - * eval.c (set_IGNORECASE): Use inline code checking `using_fieldwidths()'. - * io.c (set_IGNORECASE): Ditto. - -Sun May 5 14:28:34 2002 Arnold D. Robbins <arnold@skeeve.com> - - Fix a memory leak in array for loops if the body contains a - `next' or `nextfile' statement. The changes maintain a stack - of active for loops that is pushed and popped for each loop, - and popped entirely for `next', `nextfile', etc. - - * eval.c (forloops_active, pop_forloop, pop_all_forloops, push_forloop): - new functions. - (interpret): Case Node_K_arrayfor, call push and pop functions. - Case Node_rule_list: Pop loops and pop fcalls after longjmp. - Cases Node_K_next, Node_K_nextfile, Node_K_break and - Node_K_continue, removed check before longjmp. - Case Node_K_exit: Add loop check. - (loop_stack, nloops, nloops_active): New variables that implement - the stack. - -Wed May 1 16:41:32 2002 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.1: Release tar file made. - -Wed May 1 16:07:49 2002 Arnold D. Robbins <arnold@skeeve.com> - - * getopt.c: Installed latest version from glibc. - -Sun Apr 28 17:19:07 2002 Arnold D. Robbins <arnold@skeeve.com> - - * fixvers: Changed patterns to allow test versions of the - form `gawk-3.1.1a'. - * patchlev.h: Patchlevel is now a string constant. - * main.c (version): Print patchlevel using %s, not %d. - * Makefile.am: Rework DEFPATH stuff and datadir stuff yet again. - - * config.sub: Updated with current version from ftp.gnu.org. - * config.guess: Ditto. - - Upgrade to gettext-0.11.2: - - * ABOUT-NLS: Replaced with version from gettext 0.11.2. - * config.rpath: Replaced with version from gettext 0.11.2. - * intl/*: Replaced with version from gettext 0.11.2. - * po/Makefile.in.in: Replaced with version from gettext 0.11.2. - * po/Makevars.template: Replaced with version from gettext 0.11.2. - * po/Rules-quot: Replaced with version from gettext 0.11.2. - * po/boldquot.sed: Replaced with version from gettext 0.11.2. - * po/en@boldquot.header: Replaced with version from gettext 0.11.2. - * po/en@quot.header: Replaced with version from gettext 0.11.2. - * po/insert-header.sin: Replaced with version from gettext 0.11.2. - * po/quot.sed: Replaced with version from gettext 0.11.2. - * po/remove-potcdate.sin: Replaced with version from gettext 0.11.2. - * m4/codeset.m4: Replaced with version from gettext 0.11.2. - * m4/gettext.m4: Replaced with version from gettext 0.11.2. - * m4/glibc21.m4: Replaced with version from gettext 0.11.2. - * m4/iconv.m4: Replaced with version from gettext 0.11.2. - * m4/isc-posix.m4: Replaced with version from gettext 0.11.2. - * m4/lcmessage.m4: Replaced with version from gettext 0.11.2. - * m4/lib-ld.m4: Replaced with version from gettext 0.11.2. - * m4/lib-link.m4: Replaced with version from gettext 0.11.2. - * m4/lib-prefix.m4: Replaced with version from gettext 0.11.2. - * m4/progtest.m4: Replaced with version from gettext 0.11.2. - -Wed Apr 17 15:09:45 2002 Arnold D. Robbins <arnold@skeeve.com> - - * regex.c (PREFIX): Change test for token concatenation ability - to `#ifdef HAVE_STRINGIZE'. If a cpp has one, it ought to have - the other. - -Tue Apr 16 12:26:06 2002 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (tree_eval): Make unary minus case smarter, - use is_scalar test and if false parenthesize expression. - Add Node_TEXTDOMAIN case. - (pp_lhs, is_scalar, prec_level): Add Node_TEXTDOMAIN cases. - -Thu Apr 11 21:28:33 2002 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (do_adump): Spelling fix in output message. - * builtin.c: Ditto, in multiple routines. - (do_toupper, do_tolower): Add cast to size_t in assigment to mbclen - for some compilers. - * re.c (research): Fix way returning is done to silence some - compiler diagnostics. - -Wed Apr 10 19:30:51 2002 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.am (datadir): Set directly to have `/awk'. - (DEFPATH): Go back to using $(datadir) for path. - -Tue Apr 9 17:34:09 2002 Arnold D. Robbins <arnold@skeeve.com> - - Upgraded to gettext 0.11.1. - - * Makefile.am (LDADD): Use @LIBINTL@ instead of @INTLLIBS@. - * ABOUT-NLS: Version from 0.11.1. - * config.rpath: Version from 0.11.1. - * aclocal.m4: Regenerated based on new files. - * intl/*: Replaced with version from 0.11.1. - * m4/ChangeLog: New file. - * m4/codeset.m4: New file. - * m4/gettext.m4: Version from 0.11.1. - * po/ChangeLog: New file. - * po/Makefile.in.in: Version from 0.11.1. - * po/remove-potcdate.sin: New file. - -Mon Apr 8 22:22:58 2002 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.am (libexecdir): Set directly to have `/awk'. - (DEFPATH): Use $(pkgdatadir) for path. - (install-exec-hook): Add version link for pgawk. - (uninstall-links): Remove pgawk version link. - -Wed Mar 20 13:44:21 2002 Isamu Hasegawa <isamu@yamato.ibm.com> - - * regex.c (__alignof__): Definition for non-GCC compilers. - -Sun Mar 17 17:41:55 2002 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (do_pathopen): Malloc buffers to hold constructed - filenames: No Arbitrary Limits! Thanks to keoki@techie.com - for the bug report. - -Sun Mar 10 16:59:06 2002 Scott Deifik <scottd@amgen.com> - - * awk.h (LOCALEDIR): Provide a definition in case not using - i18n stuff. - -Wed Mar 6 18:14:44 2002 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (usage): Add some explanatory text and examples at end. - -Sun Mar 3 16:42:50 2002 Arnold D. Robbins <arnold@skeeve.com> - - * getopt.h, getopt.c, getopt1.c: Update to current version - from glibc CVS. - -Fri Feb 22 15:53:38 2002 Isamu Hasegawa <isamu@yamato.ibm.com> - - * dfa.c (fetch_wc): Fix type from wchar_t to wint_t. - (parse_bracket_exp_mb): Likewise. - * regex.c (extract_number): Retrieve the sign information from - byte-code in case of AIX. - -Thu Feb 21 16:44:24 2002 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (resetup): Moved setting re_max_failures into regex.c. - * regex.c (re_max_failures): Set to really big if REGEX_MALLOC - defined. Do this in both places that define re_max_failures. - -Thu Feb 21 19:02:22 2002 Isamu Hasegawa <isamu@yamato.ibm.com> - - * builtin.c (sub_common): Avoid index_multibyte_buffer invocation - in single byte character environments. - -Thu Feb 21 10:08:56 2002 Isamu Hasegawa <isamu@yamato.ibm.com> - - * dfa.c (parse_bracket_exp_mb): For ':', use wctype_t in MALLOC, - not wchar_t. - -Thu Feb 21 09:52:16 2002 Arnold D. Robbins <arnold@skeeve.com> - - Upgraded to automake 1.5 and gettext-0.11. - Also bug fix to multibyte code. - - * ABOUT-NLS: Upgraded. - * config.guess, config.sub, config.rpath, gettext.h, ylwrap: New files. - * Makefile.am: Added above to appropriate places. - * awk.h: Replace libintl.h and macros with include of gettext.h. - (emalloc, erealloc): Add num bytes to error message, put string inside _(). - (index_multibyte_buffer): Removed decl. - * awklib/Makefile.am: Use $(EXEEXT) for grcat and pwcat targets. - * builtin.c (index_multibyte_buffer): Made static to this file. - (sub_common): Add checks that replacement string is length > 0 so - that we don't try to malloc(0): this fails on some systems. - * configure.in (AM_GNU_GETTEXT): Update macro for gettext 0.11. - (ALL_LINGUAS): Removed. - * m4/codeset.m4: New file. - * m4/gettext.m4: Updated. - * m4/glibc21.m4: New file. - * m4/iconv.m4: New file. - * m4/isc-posix.m4: New file. - * m4/lcmessage.m4: Updated. - * m4/lib-ld.m4: New file. - * m4/lib-link.m4: New file. - * m4/lib-prefix.m4: New file. - * m4/progtest.m4: Updated. - * intl/*: Replaced with version from gettext 0.11. - * po/*: Revised for gettext 0.11. - -Mon Feb 18 14:42:39 2002 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (nondec2awknum): Change assert to runtime check - in case user passed in bad data. - -2002-02-17 Paul Eggert <eggert@twinsun.com> - - * re.c (resetup): Try to avoid silly limitation of regex.c by - setting re_max_failures to the largest reasonable value. - -Sun Feb 17 14:57:43 2002 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (research): If re_search() returns -2, the - match failed since regex couldn't allocate enough memory - for what it needed. Fail with a fatal message instead. - This is a workaround, not a fix, but I don't mess with - regex.[ch]. - -Fri Feb 8 16:01:11 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (LEX_FOR): Fix case of array loop with body of single - delete statement to actually check the right things to make the - optimization. - * profile.c (tree_eval): Add case for Node_K_delete_loop. - (prec_level): Ditto. - -Mon Feb 4 10:38:00 2002 Bruno Haible <bruno@clisp.org> - - * awk.h (dcngettext): New macro. - (do_dcngettext): New declaration. - * awkgram.y (tokentab): Add dcngettext. - (snode): Add a warning for incorrect use of dcngettext. - (dumpintlstr): fflush at the end, not in the middle. - (dumpintlstr2): New function. - * builtin.c (localecategory_from_argument): New function, extracted - from do_dcgettext. - (do_dcgettext): Call it. - (do_dcngettext): New function. - -Sun Feb 3 17:56:20 2002 Bruno Haible <bruno@clisp.org> - - * builtin.c (do_bindtextdomain): Don't free the same variable twice. - * main.c (main): Call setlocale for LC_MESSAGE, to make dcgettext - function work on glibc systems. - -Wed Jan 23 15:03:36 2002 Andreas Buening <andreas.buening@nexgo.de> - - * configure.in (PATH_SEPARATOR): Code added for OS/2. - Makefile.am (PATH_SEPARATOR): Added. - (DEFPATH): Make use of PATH_SEPARATOR. - -Wed Jan 23 14:46:04 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (yylex): Add test for lasttok != '$' when looking - at _"...". See comments in code. - -Wed Aug 15 07:43:10 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - * regex.c : Implements the codes for exactn_bin to work correctly - in multibyte environments, in case of invalid multibyte sequence. - -Wed Aug 15 07:36:56 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - * regex.c : Implements the codes for charset/charset_not to - work in multibyte environments. - -Wed Aug 15 05:04:34 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - * regex.c : Add some comments. - -Wed Aug 15 05:04:15 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - * regex.c (count_mbs_length): New function, check the mutibyte - strings and count how many wchar_t the substring occupy. - (CHAR_T): New macro, character type depending on - environments(singlebyte/multibyte). - (UCHAR_T): New macro, unsigned character type. - (COMPILED_BUFFER_VAR): New macro, the buffer containing - the compiled buffer. - Adapt singlebyte/multibyte environments with CHAR_T, UCHAR_T, - and COMPILED_BUFFER_VAR. - -Mon Jun 25 09:00:41 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - * regex.c : Reorganize code to build code twice. byte_* are - for single byte, wcs_* are for multibyte character sets. - Chose functions according to current locale dynamically. - * regex.c (convert_mbs_to_wcs): New function, convert multibyte - strings to wide character strings for multibyte environments. - -Fri Jun 22 05:43:50 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - * regex.c (MBS_SUPPORT): New macro, defined if the environment - can handle multibyte characters. - (OFFSET_ADDRESS_SIZE): Offset address size in the - compiled buffer. - Rewrite offset addresses with OFFSET_ADDRESS_SIZE. - -Thu Apr 26 08:03:17 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - * builtin.c (index_multibyte_buffer): Inspect the buffer and write - the index. - (sub_common): In multibyte environment, skip multibyte characters - when we check special characters. - * awk.h (index_multibyte_buffer): Add prototype. - * eval.c (cmp_nodes): In multibyte environment, compare per character. - * field.c (re_parse_field): In multibyte environment, avoid to - call research() on invalid boundary. - (sc_parse_field): In multibyte environment, avoid to compare on - invalid boundary. - (null_parse_field): In multibyte environment, split per - character, not per byte. - * io.c (get_a_record): In multibyte environment, avoid to compare - on invalid boundary. - -Wed Apr 25 08:29:47 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - * awk.h (strncasecmpmbs): Add prototype. - * builtin.c (strncasecmpmbs): New function like strncasecmp but for - multibyte strings. - (do_index): In multibyte environment, compare per character. - * builtin.c (do_tolower): In multibyte environment, user towlower - instead of TOLOWER. - (do_toupper): In multibyte environment, user towupper instead - of TOUPPER. - -Tue Apr 24 10:38:06 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - In multibyte environments, handle multibyte characters as single - characters in bracket expressions. - - * dfa.h (mb_char_classes): New structure. - (mbcsets): New variable. - (nmbcsets): New variable. - (mbcsets_alloc): New variable. - * dfa.c (prtok): Handle MBCSET. - (fetch_wc): New function to fetch a wide character. - (parse_bracket_exp_mb): New function to handle multibyte character - in lex(). - (lex): Invoke parse_bracket_exp_mb() for multibyte bracket expression. - (atom): Handle MBCSET. - (epsclosure): Likewise. - (dfaanalyze): Likewise. - (dfastate): Likewise. - (match_mb_charset): New function to judge whether a bracket match - with a multibyte character. - (check_matching_with_multibyte_ops): Handle MBCSET. - (dfainit): Initialize new variables. - (dfafree): Free new variables. - -Mon Apr 23 01:40:09 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - Implement the mechanism to match with multibyte characters, - and use it for `period' in multibyte environments. - - * dfa.h (mbps): New variable. - * dfa.c (prtok): Handle ANYCHAR. - (lex): Use ANYCHAR for `period' in multibyte environments. - (atom): Handle ANYCHAR. - (state_index): Initialize mbps in multibyte environments. - (epsclosure): Handle ANYCHAR. - (dfaanalyze): Handle ANYCHAR. - (dfastate): Handle ANYCHAR. - (realloc_trans_if_necessary): New function. - (transit_state_singlebyte): New function. - (match_anychar): New function. - (check_matching_with_multibyte_ops): New function. - (transit_state_consume_1char): New function. - (transit_state): New function. - (dfaexec): Invoke transit_state if expression can match with - a multibyte character in multibyte environments. - (dfamust): Handle ANYCHAR. - -Fri Apr 20 11:31:24 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - Avoid incorrect state transition in multibyte environments. - - * dfa.h (nmultibyte_prop): New variable. - (multibyte_prop): New variable. - * dfa.c (addtok): Set inputwcs. - (dfastate): Avoid incorrect state transition in multibyte - environments. - (dfaexec): Likewise. - (dfainit): Init multibyte_prop. - (dfafree): Free multibyte_prop. - (inputwcs): New variable. - (mblen_buf): New variable contains the amount of remain byte - of corresponding multibyte character in the input string. - -Fri Apr 20 06:28:59 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - Handle a multibyte character followed by '*', '+', and '{n,m}' - correctly. - - * dfa.c (update_mb_len_index): New function. - Support for multibyte string. - (FETCH): Call update_mb_len_index. - (lex): Check cur_mb_index not to misunderstand multibyte characters. - (atom): Make a tree from a multibyte character. - (dfaparse): Initialize new variables. - (mbs): New variable. - (cur_mb_len): New variable. - (cur_mb_index): New variable. - -Thu Apr 19 09:32:47 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - * awkgram.y (cur_mbstate): New varialble containing means current - shift state. - (cur_char_ring): New varialbe reffering the buffer which contains - last some character from the buffer. - (cur_ring_idx): New variable containing the current index on - cur_char_ring. - (nextc_is_1stbyte): New macro, means that last nextc() return a - singlebyte character or 1st byte of a multibyte character. - (nextc): Check the buffer and update cur_ring_char in multibyte - environments. - (pushback): Adjust cur_ring_idx in multibyte environments. - (yylex): Add check whether nextc() returned 1st-byte in multibyte - environments. - * re.c (make_regexp): In multibyte environment, skip multibyte - characters when we check special characters. - -Wed Apr 18 07:58:20 2001 Isamu Hasegawa <isamu@yamato.ibm.com> - - * awk.h (MBS_SUPPORT): New flag, means supporting multibyte strings. - * configure.in : Add check for wchar.h, wctype.h, mbrtowc, and mbrlen. - -Wed Jan 16 16:32:40 2002 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_strtonum): Simplified. Check first if the - value matches a non-decimal number, and if so convert it. - Otherwise do a regular force_number. - -Mon Jan 7 22:12:15 2002 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (statement): Moved delete, print, and expressions into - new non-terminal `simple_stmt'. Allow opt_simple_stmt in the - first and third part of a for loop, per latest POSIX, which documents - an otherwise undocumented historical oddity in Unix awk. This has - the pleasant side effect of making line numbers more accurate for - messages involving delete statements. - (opt_simple_stmt, simple_stmt): New non-terminals. - - Based on bug report from drj@pobox.com. - -Mon Dec 24 14:04:02 2001 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: Changes for VMS with new strftime: - (AC_HEADER_TIME): Added. - (AC_CHECK_HEADERS): Check for sys/time.h. - (TIME_T_IN_SYS_TYPES_H): Add header check. - * acconfig.h (TIME_T_IN_SYS_TYPES_H): Added. - -Wed Dec 19 16:01:58 2001 Peter J. Farley III <pjfarley@dorsai.org> - - * configure.in: Add MS-DOS to getpgrp special case. - * dfa.c, getopt.c, regex.c: Fix code to work with --disable-nls. - -Wed Dec 19 15:59:25 2001 Eli Zaretskii <eliz@is.elta.co.il> - - * profile.c (init_profiling_signals) [__DJGPP__]: Use SIGINT - instead of SIGHUP and SIGQUIT instead of SIGUSR1. - -Tue Dec 18 20:56:07 2001 Andreas Buening <andreas.buening@nexgo.de> - - More OS/2 stuff. - - * awk.h (O_BINARY): Don't redefine for EMX. - * io.c (gawk_popen): Add __EMX__ in case compiling DOS executable. - * configure.in: Add OS/2 to case for manual GETPGRP_VOID. - -Tue Dec 4 17:54:30 2001 Arnold D. Robbins <arnold@skeeve.com> - - New configure time option, --with-whiny-user-strftime. - - * configure.in (AC_ARG_WITH): Add appropriate code for autoconf. - * accondig.h (USE_INCLUDED_STRFTIME): Add #undef for it. - * custom.h (USE_INCLUDED_STRFTIME): Set things up write. - -Tue Dec 4 16:44:07 2001 Andreas Buening <andreas.buening@nexgo.de> - - Mongo patch for updated OS/2 support. - - * awk.h (TOUPPER, TOLOWER): Define only if not already defined. - * awkgram.y (extproc feature): Add ifdef for __EMX__. - * gawkmisc.c (__EMX__): Include pc/gawkmisc.c directly. - * io.c (__EMX__): Added for a number of places in addition to OS2 def. - (two_way_open): Added OS/2 specific code added that uses spawn. - (gawk_popen): Ditto. - -Mon Dec 3 14:07:56 2001 Arnold D. Robbins <arnold@skeeve.com> - - Fix use of getgroups to use dynamic memory, solves - problem of systems where NGROUPS_MAX lies. - - * awk.h (groupset, ngroups): New extern variables. - * configure.in (AC_CHECK_FUNCS): Add getgroups to list. - * io.c (user_open): Use global ngroups and groupset variables, - don't call getgroups here. - * main.c (init_groupset): New function to init global - vars using malloc. Declare it at top. - (main): Call init_groupset(). - (load_procinfo): Use global ngroups and groupset variables. - -Sun Nov 18 11:56:01 2001 Arnold D. Robbins <arnold@skeeve.com> - - * random.c (srandomdev): ifdef-out. Lots of compile time - problems on multiple platforms, and gawk doesn't even - use the routine. The heck with fine-grained solutions. - -Wed Nov 14 16:12:40 2001 Pat Rankin <rankin@eql.caltech.edu> - - * builtin.c (bchunk_one): Use `ofre < 1' instead of `ofre <= 0' - to avoid compiler complaint about suspicious comparison for - unsigned variable. (`ofre == 0' ought to suffice...) - -Tue Nov 13 17:27:52 2001 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (yyerror): Fix the code to behave like it - used to. Keep "no arbitrary limits" by mallocing the - buffer and freeing it. - -Wed Nov 7 16:46:20 2001 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (yyerror): Remove dependency upon buf[] to - hold prepended space and `^' pointer. Avoids core dumps - for long source lines. - -Sat Nov 3 22:27:21 2001 Arnold D. Robbins <arnold@skeeve.com> - - * m4/strtod.m4: Add missing `#endif'. Oops. - -Mon Oct 29 14:53:57 2001 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y: Add semicolons in calls to count_args(). - Apparently bisoon adds a semicolon to each body - automatically and byacc doesn't. - -Sun Oct 28 16:53:18 2001 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): Fix off-by-one error in "ran out - for this one" diagnostic. Also fix lint check for too many - arguments vs. count in format string. - -Wed Oct 10 11:01:47 2001 Arnold D. Robbins <arnold@skeeve.com> - - * fixvers: Check that files exist before doing `cmp', in - case they're in a source code system and aren't there. - Fix from Grant Erickson (gerickson@brocade.com). - -Thu Oct 4 18:20:36 2001 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (r_tree_eval): For comparison, dupnode() results of - evaluation so that we can hang on to them and avoid memory - corruption. Change calls to free_temp() to unref(). - -Tue Sep 25 15:19:53 2001 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (iop_open): Only call os_close_on_exec() for - fd > fileno(stderr). - -2001-09-07 Paul Eggert <eggert@twinsun.com> - - * io.c (redirect): When deciding to use the fdopen bug hack, - use "__sun" rather than "solaris". No compilers predefine - "solaris", but both GCC and Sun C predefine "__sun". - -Thu Aug 30 15:17:12 2001 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (copyleft): Use a printf %d for last year of update - to avoid translation strings changing when the file - is updated from now on. Suggestion from Ulrich Drepper. - -Thu Aug 23 14:01:14 2001 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (unary minus production): Add check that value - isn't a string. Based on bug report from drj@pobox.com. - * profile.c (tree_eval): For node_val, only test NUMBER - to see if value is numeric, not NUM|NUMBER. - -Thu Aug 16 12:21:28 2001 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in (ALL_LINGUAS): Added `fr' and `tr'. - * po/fr.po, po/tr.fo: New files. - -2001-08-13 Paul Eggert <eggert@twinsun.com> - - This patch fixes a bug that causes gawk to rewind standard - input incorrectly. It also removes all instances of fseek, - from the gawk source proper, which should make gawk a bit - more portable. - - (The original patch removed off_t & lseek too, but I need - that for something else. ADR.) - - * posix/gawkmisc.c (optimal_bufsize): - Don't use lseek on the input, because that might change - its state. Instead, just check whether it is a regular file. - This obviates the need to invoke isatty. - (Also, fix a spelling error in the first line of the source.) - * pc/gawkmisc.pc, unsupported/atari/gawkmisc.atr: Likewise. - - * awk.h (S_ISREG): Move this macro here ... - * io.c (S_ISREG): from here. - - * protos.h (fseek): Remove prototype; no longer used. - -Fri Aug 3 13:38:54 2001 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (assoc_lookup): Change assert test on type to real test - to protect against FS[1] = "x" kinds of things. It'd be better - to do this in the grammar, but this is easier and just as - effective. - - Undid BECAMEARRAY changes of 25 June 2001 in favor of correct code: - * eval.c (pop_fcall): Change test and comment for freeing n->vname. - (flags2str): Removed BECAMEARRAY entry. - * awk.h (BECAMEARRAY): Removed define. - * array.c (assoc_lookup): Removed setting of BECAMEARRAY flag. - -Mon Jul 23 17:33:13 2001 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (get_a_record): Handle case where RS = "" and input file - is only newlines. See test/onlynl. Bug report by - Michel Jouvin <jouvin@lal.in2p3.fr>. - -Wed Jul 4 18:34:19 2001 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (assign_val): Don't allow negative values for NF. - * field.c (set_NF): Robustify field-freeing code to make sure - values are always positive. - -Sun Jul 1 19:15:01 2001 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_index): If second string is "", return 1. - -Mon Jun 25 19:34:24 2001 Arnold D. Robbins <arnold@skeeve.com> - - Further rationalization of treatment of dynamic regexes, - so that profiling code works correctly. - - * awk.h (NODETYPE): New type, Node_dynregex. - * awkgram.y (mk_rexp): Use Node_dynregex. - * eval.c (nodetypes): Add Node_dynregex. - (r_tree_eval): Add Node_dynregex to case for match_op(). - * profile.c (tree_eval): Add Node_dynregex to case for pp_match_op(). - (pp_match_op): Handle Node_dynregex, simplify cases for ~ and !~. - * re.c (re_update): Add assertion that type is Node_regex when flags - indicate CONST. - - New lint warning. - - * awkgram.y (yylex): Added lint warning that constant with leading - zero is treated as octal or hex. - - Generalized code for those who are Strong In The Ways of the Source. - - * awk.h: New boolean variable. - * main.c (main): Set it. - * eval.c (interpret): For arrays, check it. Remove variable 'first', - not needed anymore. - * profile.c (pp_string_fp): Enable printing of non-ASCII characters - verbatim if variable set. - - Fix memory corruption on SCO for array vars as params changed globally. - - * awk.h (BECAMEARRAY): New flag. - * array.c (assoc_lookup): Set the flag as appropriate. - * eval.c (flags2str): Add the flag. - (pop_fcall): Check the flag, don't free memory if set. - -Wed Jun 13 18:07:06 2001 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (fmt_index): Actually call erealloc() to grow fmt_list - if that's really necessary. Bug report from David Jones, - djones@zoonami.com. - -Sun Jun 10 14:24:48 2001 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (pp_match_op): Rationalized the code. - -Thu Jun 7 11:54:36 2001 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (O_BINARY): Don't define if already defined - (as is true for cygwin/gcc --- oops). - -Sun Jun 3 13:04:44 2001 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.1.0: Release tar file made. And there was - rejoicing. - -Wed Apr 25 11:44:07 2001 Arnold Robbins <arnold@skeeve.com> - - * Makefile.am (AM_MAKEFLAGS): Add definition per advice from - Nelson Beebe. - -Tue Apr 24 14:28:00 2001 Arnold Robbins <arnold@skeeve.com> - - * io.c (devopen): Patch from Jeurgen to robustify pulling - out hostname, port numbers, etc, to avoid any buffer overrun - problems. - -Mon Apr 23 10:26:38 2001 Arnold Robbins <arnold@skeeve.com> - - * awkgram.y: Fix grammar so that `print ... |& ".." |& getline' - dies with a parse-time error message. - -Sun Apr 22 16:46:48 2001 Arnold Robbins <arnold@skeeve.com> - - * io.c (socketopen): Fix from Juergen in recursive call. - -Thu Apr 19 18:39:20 2001 Pat Rankin <rankin@eql.caltech.edu> - - * awk.h: Really fix logic around include of <sys/types.h>. - - * awk.h (callresult): New name for `result' macro. - * eval.c (r_get_lhs, case Node_builtin): Use it. - -Thu Apr 19 16:31:09 2001 Pat Rankin <rankin@eql.caltech.edu> - - * io.c: Move code around to allow compilation with DEC C. - -Thu Apr 19 16:21:56 2001 Arnold D. Robbins <arnold@skeeve.com> - - * random.h: Move decl of random() here. - * random.c: Remove decl of random(). - -Mon Apr 9 11:41:58 2001 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c (dfainit): Initialize more members in the structure, - based on bug report in bug.gnu.utils by aaronl@vitelus.com - (Aaron Lehmann). - * awk.h: Fix logic around include of <sys/types.h>. - -Thu Apr 5 20:12:05 2001 Pat Rankin <rankin@eql.caltech.edu> - - * dfa.c: For VMS, #include <stddef.h> instead of <sys/types.h>. - * missing_d/mktime.c: Likewise. - - * random.c: Reorder include directives to get gawk config info - from random.h sooner. - [fcntl.h]: Guard #include with HAVE_FCNTL_H test. - [unistd.h]: Guard #include with HAVE_UNISTD_H test. - - * random.c (srandomdev): Skip /dev/urandom usage if O_RDONLY - is not defined. - -Tue Mar 20 11:07:11 2001 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (function_body): Add opt_nls to end of production. - -Tue Mar 20 09:30:32 2001 Pat Rankin <rankin@eql.caltech.edu> - - * awk.h (BROKEN_STRNCASECMP): Add decl of strcasecmp. - * io.c (two_way_open): Add `return FALSE;' for fussy compilers. - -Sun Mar 18 15:10:56 2001 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (gawk_pclose): Set the exit value for close correctly - if the pipe died with a signal. - -Wed Mar 7 11:28:52 2001 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (get_a_record): Correctly handle the case of a leading - single newline at the front of the file when RS = "". - -2001-02-26 Paul Eggert <eggert@twinsun.com> - - * COPYING: Incorporate latest version from FSF, which fixes a Y2k bug. - - * builtin.c (do_mktime): Allow the user to specify the - tm_isdst member as an optional trailing integer, and to - specify "out-of-range" members. Check for overflow when - subtracting 1 from month or 1900 from year. Allow years just - past INT_MAX, as they work on some hosts when INT_MAX - 1900 - is representable as an int. - - * doc/gawk.1, doc/gawk.texi: Document the above changes. - Also, document that the origin-zero Gregorian calendar is used. - Fix confusing wording about "midnight" by replacing it with 00:00 - ("midnight" is also 24:00, the end of the day). - Mention the typical range for time stamps. - Do not assume that years are nonnegative and are less than 10,000. - Suggest TZ=UTC0 instead of TZ=GMT0, as that's how recent versions - of GNU date behave. - GMT is not always the time of day in Greenwich these days. - Fix typos: "Emporer/Era", "1980's", "1970's". - - * m4/largefile.m4: Synchronized with latest version. - -Tue Feb 27 12:10:11 2001 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (pp_in_array): Change test to tree->type == Node_expression_list. - -Wed Feb 7 14:46:50 2001 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (LEX_FOR): Allow newline after `;' in for loops. - Per bug report from Brian Kernighan, bwk@research.bell-labs.com. - -Tue Feb 6 18:35:27 2001 Martin C. Brown <mc@whoever.com> - - * io.c (socket_open): Conditionalize various options based on - ifdef. Needed for BeOS port. - -Tue Feb 6 18:17:13 2001 Michal Jaegermann <michal@ellpspace.math.ualberta.ca> - - * regex.c (re_match_2_internal): Case maybe_pop_jump, for - charset and not_charset: Change cast from (unsigned char) - to (unsigned). Catches last 8 chars with high bit set - if backtracking. See test/rebt8b1.awk, test/rebt8b2.awk. - -Tue Feb 6 11:20:21 2001 Arnold D. Robbins <arnold@skeeve.com> - - Have `for (iggy in foo)' save the elements and loop over them. - Make sorted for loops a dynamic test instead of a compile time test. - Still requires being Strong In The Ways Of The Source. - - * awk.h: (struct search): Removed. - (assoc_scan, assoc_next): Removed declarations. - * array.c (assoc_scan, assoc_next): Removed functions. - * eval.c (interpret): Remove Node_K_array_sorted_for. Change code - at Node_K_arrayfor. - (nodetypes): Remove Node_K_array_sorted_for. - * configure.in: Removed array sorting test. - * awkgram.y: Removed sorted_in keyword and associated code. - -Sun Feb 4 14:57:49 2001 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (interpret): Use tree->rnode->exec_count to hold count of - times if was true. - profile.c (interpret): Ditto. - * main.c (pre_assign): Gross hack. malloc fresh copy of assign so can - clear the '=', otherwise screws up profiling print out. - -Sun Jan 28 16:16:02 2001 Arnold D. Robbins <arnold@skeeve.com> - - Per request from Nelson Beebe, SIGHUP to pgawk dumps profile - and function call stack and exits, SIGUSR1 dumps and continues - running. - - * eval.c (dump_fcall_stack): New function, dumps awk function call - stack. - * awk.h (dump_fcall_stack): Add declaration. - (init_profiling_signals): Ditto. - * main.c (main): Call init_profiling_signals. - * profile.c (init_profiling_signals, dump_and_exit, just_dump): New - functions. - -Sun Jan 28 15:50:02 2001 Eli Zaretskii <eliz@is.elta.co.il> - - * io.c (gawk_popen): Restore the mode of stdin before running the - child process and switch it back if BINMODE is in effect after the - child returns. - (redirect): Restore the mode of stdin before running the child - process. - (close_redir): Switch mode of stdin back to binary if BINMODE is - in effect, after the child returns. - - * builtin.c (do_system): Restore the mode of stdin before running - the child process and switch it back if BINMODE is in effect after - the child returns. - - * awk.h (os_restore_mode): Add prototype. - -Thu Jan 18 14:03:06 2001 Arnold D. Robbins <arnold@skeeve.com> - - * custom.h, README_d/README.ultrix: Fixes for Ultrix - from Juergen Kahrs. - -Wed Jan 17 11:03:40 2001 Eli Zaretskii <eliz@is.elta.co.il> - - * io.c (redirect) [F_GETFL && O_APPEND]: Use binmode in the call - to fdopen. - -Mon Jan 15 16:29:52 2001 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (prec_level): Made Node_K_getline higher than < - but lower than others. Allows use of getline with redirection - inside an if. - -Wed Jan 10 15:35:06 2001 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (set_BINMODE): Rationalized string assignment. - -Sun Jan 7 15:26:16 2001 Arnold D. Robbins <arnold@skeeve.com> - - * getopt.h: Removed names in prototypes for getopt_long - and getopt_long_only, fixes problems on MINGW32. - -Thu Jan 4 10:13:46 2001 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: Add check for mcheck.h - * main.c: Include mcheck.h if have it. - (main): If TIDYMEM turned on in environment, also call mtrace(). - -Wed Jan 3 16:41:33 2001 Arnold D. Robbins <arnold@skeeve.com> - - Fixed minor memory leaks. - * re.c (re_update): When IGNORECASE changed, unref(t->re_text). - * eval.c (pop_fcall): Fix the logic to correctly free the vname - when copying array args back to their underlying source. - - Fixed massive memory leaks. - * node.c (dupnode): If PERM is set, do nothing. - (unref): Fix logic. Always turn off TEMP. Check just for MALLOC - when incrementing the stref. - * array.c (assoc_lookup): Turn off PERM also when saving subscript. - * builtin.c (sub_common): Turn off PERM also when making private copy - of string. - - Add a minor memory cleanup facility (undocumented): - * awk.h (do_tidy_mem, release_all_vars): Add declarations. - * main.c (do_tidy_mem): Add declaration. - (main): If $TIDYMEM exists, do_tidy_mem is true, and call mtrace(). - * awkgram.y (release_all_vars): New function. - -Sun Dec 31 10:47:37 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (in_end_rule): Renamed `parsing_end_rule' to avoid - conflict with global var of same name. - -Sun Dec 24 10:36:54 2000 Eli Zaretskii <eliz@is.elta.co.il> - - * awkgram.y (snode): Reword the error message about the number of - arguments for a builtin, so as not to use the English `s' as a - plural suffix. - -Tue Dec 12 08:38:03 2000 Arnold D. Robbins <arnold@skeeve.com> - - * ext.c (do_ext): ifdef out use of `dummy'. Duh. - * regex.c (re_error_msgid): Revert to array of `char *' so that can - compile on K&R compilers. Fix all uses appropriately. - (re_error_msgid_idx): Removed. - -Fri Dec 8 11:47:26 2000 Arnold D. Robbins <arnold@skeeve.com> - - * ext.c (dummy): Make gcc specific via ifdef. - * builtin.c (do_dcgettext): Make conditional compilation smarter. - * msg.c (warning, error, r_fatal): Finish switching back to - multi-version function header. - -Wed Dec 6 13:28:58 2000 Arnold D. Robbins <arnold@skeeve.com> - - * random.h: Include <config.h> to get ssize_t definition. - * awkgram.y (yyerror): Restore multi-version function header, - it seems that what ansi2knr produces doesn't quite do the - job on old compilers. - msg.c (msg): Ditto. - -Tue Dec 5 15:05:35 2000 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in (AC_C_INLINE): Added macro call. - * Makefile.am (LN): Define it for install hooks. - -Sun Dec 3 17:28:53 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (os_setbinmode): Declare new function. - (setmode): Remove definition: conflicts with MacOS X. - * main.c (main): Change call of setmode to os_setbindmode. - - * builtin.c (do_dcgettext): Improve ifdef for code, fixes MacOS X. - * custom.h (__APPLE__): Force definition of HAVE_MKTIME, won't - link otherwise. Harumph. - -Sun Nov 26 11:58:52 2000 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_dcgettext, do_bindtextdomain): Add calls to - free_temp the various arguments. Sigh. - * io.c (yylex): Nuked bstart variable, put all uses of mend variable - into TANDEM ifdef. - * main.c (load_environ): Removed cp variable, value never used. - * random.c: Remvoed uses of `inline' keyword. - * Makefile.am (install-exec-hook, uninstall-local): New targets. - Adds creation of gawk-X.Y.Z and awk links, as in 3.0.x. - * configure.in (GAWK_AC_TYPE_SSIZE_T): Added. - m4/ssize_t.m4: New file. - -Wed Nov 22 14:47:18 2000 Arnold D. Robbins <arnold@skeeve.com> - - After consultation with Brian Kernighan and Michael Brennan, - nuked the abort keyword. - - * awk.h (Node_K_abort): Removed. - * eval.c (aborting): Removed decl. - (interpret): Removed Node_K_abort case. - * io.c (do_input): Removed checks for aborting. - * main.c (aborting): Removed. - (main): Removed checks for aborting. - * profile.c (pprint): Removed Node_K_abort case. - * awk.y (LEX_ABORT): All stuff removed. - -Wed Nov 22 10:45:57 2000 Arnold D. Robbins <arnold@skeeve.com> - - * ext.c (dummy): Move inside #ifdef DYNAMIC. Helps on - PCs and other platforms that don't do dynamic loading. - * awk.h (RED_TCP): New flag, means use shutdown. - io.c (redflags2str): Add RED_TCP. - (SHUT_RD, SHUT_WR, SHUT_RDWR): Add conditional defines. - (redirect): Add RED_TCP to tflag if appropriate. Add more - #ifdef HAVE_SOCKETS as needed. - (close_redir): If RED_TCP set, shutdown(2) on each end of the socket. - -Tue Nov 21 16:25:41 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awk.y: for (iggy in foo) loops: Add test that index - in delete statement is a simple variable. - -Tue Nov 14 16:11:39 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h: Add appropriate conditional versions of the gettext - functions if we don't have <libintl.h> or if ENABLE_NLS - is not defined or zero. - * configure.in: Add check for libintl.h header. - - From Scott Deifik for PCs. - * awk.h (lintwarn): Call set_loc unconditionally, makes - compilation work on PCs. - * builtin.c (do_dcgettext): Compile out cat_tab and code - if not ENABLE_NLS. - * ext.c: For MSC, no long long variable. - * random.c: Use clock() instead of gettimeofday(). - * builtin.c: Fixed prototypes for new random functions (ADR). - -Sun Nov 12 17:45:44 2000 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (parse_next_arg): Fix call to >= num_args so - running out of args check is correct, instead of core dumping. - (format_tree): Save and restore `the_args' and `args_size' - if a nested call is in progress, see explanatory comment. - See also tests/addcomma. - * Makefile.am: Fix things so that gawk/pgawk built first, - even if `make check' called before make. Add some - commentary. - -Wed Nov 8 14:39:20 2000 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: Only add -rdynamic for Linux. - * dfa.h, dfa.c: Upgraded to versions in grep 2.4.2. - -Tue Nov 7 18:17:17 2000 Arnold D. Robbins <arnold@skeeve.com> - - * All: Switched to ANSI function headers and added - `ansi2knr' automake option. Really cool. - -Tue Nov 7 16:57:49 2000 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (redirect): Check for O_APPEND in flags when doing - fdopen() of /dev/fd/N. Thanks to bug report from - "John H. DuBois III" <spcecdt@armory.com>. - -Tue Nov 7 14:09:14 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (os_is_setuid): Declare function. - * main.c (main): Call it if do_lint and warn if true. - * awkgram.y (tokentab): - - Made sure all extensions are actually marked as such. Ouch. - - Changed "sort" to "asort". Potential to break too much old code. - * getopt.h, getopt.c, getopt1.c: Replaced with current versions - from glibc CVS archive. - -Mon Nov 6 18:14:33 2000 Arnold D. Robbins <arnold@skeeve.com> - - * random.c: Replaced with recent version from FreeBSD. - -Mon Nov 6 15:37:12 2000 Arnold D. Robbins <arnold@skeeve.com> - - Major simplification of automake machinery. - - * configure.in: - - INSTALL is forced only if not provided in environment - - lots of Makefile.in files removed since move to automake 1.4a - * Makefile.am, */Makefile.am: Moved directories that don't need - the automake machinery into EXTRA_DIST as appropriate and - removed the Makefile{,.am,.in} files as needed. - * eval_p.c, profile_p.c: New files to make it easier with automake - to compile pgawk. - -Tue Oct 24 12:20:18 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (valinfo, var_comp, dump_vars): New functions to dump - the list of global variables. - * awk.h: Declare dump_vars. - * main.c (optab): New option "dump-variables". - (main): Code to handle it, set the output file and then call - dump_vars() at the end. - (usage): New option added to usage message. - -Sat Oct 21 22:59:59 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (parms_shadow): For a function, check if any - parameters shadow global variables and print a warning. - (shadow_funcs): Go through all functions and call parms_shadow(). - (isnoeffect, isassignable): Add Node_LINT and NODE_BINMODE. - * main.c (main): If do_lint, call shadow_funcs(). - * awk.h: Add declaration of shadow_funcs(). - * configure.in: Added m4/Makefile and awklib/eg/network/Makefile - to list of generated makefiles. - -Tue Oct 17 10:47:35 2000 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (assoc_lookup): Reverted change that did dupnode of - array indices. Creates significant problems if index is - numeric value and CONVFMT changes. Added fix to set - bucket->ahname->stfmt to -1 so that force_string never recalculates - the string value, and also turned off NUM and turned on STR. - See test/arynasty.awk. - -Mon Oct 16 12:21:26 2000 Arnold D. Robbins <arnold@skeeve.com> - - * All: Cleaned up various lint warnings for consistent phrasing. - * awk.y (in_end_rule): New variable for warning about unredirected - getline. It's ok in a BEGIN, but not in an END. - -Sun Oct 15 14:14:05 2000 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (set_FS): Add lint warning for FS = "". - (do_split): Ditto for 3rd arg = "". - -Fri Oct 13 09:17:04 2000 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (close_redir): Clear rp->fp on all closes. Remove - rp from list if either closing both ends or both ends - have been closed separately. Add exitwarn message for - co-process. - (flush_io): Add warning message if fflush of co-process - fails. Rationalize return value to either 0 or -1. - * builtin.c (do_gensub): 3rd arg of zero generates a - warning. - (do_fflush): Rationalize return value: -1 for unopen or read-only - redirection, status of fflush otherwise. - -Wed Oct 11 22:11:19 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awk.y (for loop): Check that there is a body as - part of the `is it a delete statement' check. - -Thu Oct 5 11:56:42 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h, awkgram.y, configure.in, eval.c: Enabled - `for (i in_sorted array)' loops for those who - are Strong In The Way Of The Source. So there. - -Mon Oct 2 10:09:32 2000 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (do_close): Make close(x) for non-open x return -1 - and update ERRNO. close(FILENAME) no longer does anything - magic; this is all for better consistency with other awks - and is more logical, anyway. - -Thu Sep 28 17:27:16 2000 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (close_one): Added a lint warning if it becomes - necessary to start multiplexing fd's, per ancient suggestion - from Scott Deifik, <scottd@amgen.com>. - -Tue Sep 26 14:41:41 2000 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c: Move enum for redirection placement to top - of file, and make the value a parameter to pp_redir. - Fix all the calls. This gets `|&' right everywhere. - -Sun Sep 24 16:38:04 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (freenode): Set the flags straight to UNINITIALIZED. - * node.c (unref): Fix test for MALLOC|TEMP to test the - actual flags, not zero. - * builtin.c (format_tree): ala print and concat, dupnode - the temp nodes from tree_evaling the arguments. See - test/nasty2.awk. - -Mon Sep 18 10:16:58 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (snode): Make match 3rd arg and close 2nd arg fatal - errors if --tradtional. - -Thu Sep 14 12:22:42 2000 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (update_ERRNO): Call gettext on result of strerror. - i18n rules. - -Wed Sep 13 14:56:11 2000 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (r_tree_eval): Case for Node_concat. Dupnode the - strings ala do_print to get more consistent results. - Compare gawk 3.0.6 to nawk/mawk on test/nasty.awk. - Thanks to Andrew Sumner (andrewsumner@yahoo.com) for - pointing this one out. - -Wed Sep 13 10:06:47 2000 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (two_way_close_type): New enumerated type. - (close_redir): New third param of type two_way_close_type. - Add smarts to two-way case for different close types. - Only remove it from the redir list if closing is for both ends. - (gawk_pclose): Check that rp->iop != NULL before closing, - all three versions. - * awkgram.y (tokentab): Allow 2nd argument to close. - (snode): Add lint warning. - -Sun Sep 10 14:16:10 2000 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (set_FIELDWIDTHS): Generate a fatal error upon - encountering a negative width. - -Sun Sep 10 10:37:35 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awkgram.y (snode): If first argument to dcgettext is a - string constant and --gen-po, dump the string constant to - the .po file too. - * main.c (nostalgia): Add call to fflush(stderr). - * eval.c (r_tree_eval): Add entries for Node_LINT and for - NODE_TEXTDOMAIN. - -Thu Sep 7 10:46:20 2000 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_dcgettext): Per suggestion from Ulrich Drepper, - make the awk interface: - - str = dcgettext(string [, domain [, category]]) - -Wed Sep 6 16:28:12 2000 Arnold D. Robbins <arnold@skeeve.com> - - Bring gettext features out to the awk level! - - * awk.h: Add declarations of new functions `do_dcgettext' - `do_bindtextdomain', `set_TEXTDOMAIN' and variables - `TEXTDOMAIN', `TEXTDOMAIN_node'. New NODETYPE enum - `Node_TEXTDOMAIN'. - * eval.c (nodetypes): Add Node_TEXTDOMAIN at end. - (set_TEXTDOMAIN): New function. - (r_get_lhs): Add case for Node_TEXTDOMAIN. - * main.c (varinit): Add entry for TEXTDOMAIN. - * node.c (format_val): If INTLSTR use dcgettext of string - and TEXTDOMAIN. - * awkgram.y (tokentab): Add entries for "dcgettext" and - "bindtextdomain". - * builtin.c (do_dcgettext, do_bindtextdomain): New functions. - -Tue Sep 5 17:01:34 2000 Arnold D. Robbins <arnold@skeeve.com> - - * profile.c (pp_string_fp): Use lower case versions of - isascii and isprint to avoid printing high-bit-set - characters. Make it smarter to break strings at 70 - chars or after embedded newline, for --gen-po. - Fix the calls to it everywhere for new boolean option - to yes/no break lines. - * m4/strtod.m4: New file, defines GAWK_AC_FUNC_STRTOD_C89. - * configure.in: GAWK_AC_FUNC_STRTOD_C89 call added - * acinclude.m4: Include strtod.m4. - * acconfig.h: Add entry for STRTOD_NOT_C89. - Remove entries for BITOPS and NON_DEC_DATA. - * missing/missing.c: Add check for STRTOD_NOT_C89, use ours - if set. - * missing/strtod.c: Make smarter for input like 0x345. - * awk.h: [STRTOD_NOT_C89]: Define strtod gawk_strtod to get - our version. Avoids linker weirdness. - -Mon Sep 4 09:16:43 2000 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (set_record): Fix from Utz-Uwe Haus - <haus@saturn.Math.Uni-Magdeburg.DE> to make sure there's - always enough room in the record. - * builtin.c (nondec2awknum): Fix octal conversions to exit - when hitting a non-digit, and not go to decimal. Make - check for non-octal better. Based on bug report from - Morris_Lee@tvratings.com. - -Sun Sep 3 13:52:11 2000 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): Allow positional parameters for - %*.* kinds of things. - - Made octal/hex constants and strtonum on by default. Made - --enable-non-decimal-data a runtime switch `--non-decimal-data'. - - * configure.in: Removed AC_ARG_ENABLE for --enable-bitops and - --enable-non-decimal-data. - In .developing check, remove the AC_DEFINEs. - * awk.h: Decls for bitwise functions now there by default. - Add decl of `do_non_decimal_data'. - * main.c (do_non_decimal_data): New variable - (optlist): Add new entry for `--non-decimal-data'. - (main): Turn off `do_non_decimal_data' if `do_traditional'. - (usage): Add the new option. - * node.c (r_force_number): Make check for non-decimal data a - runtime check based on do_non_decimal_data. - * awkgram.y (yylex): Make non-decimal constants a runtime check. - * builtin.c: Remove the ifdefs around the bit functions and - nondec2awknum. - -Tue Aug 29 18:45:56 2000 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: Go back to ARRAYDEBUG if .developing set. - * awkgram.y: Use ARRAYDEBUG for adump(), use multiple tests - for stopme(). - -Mon Aug 28 17:09:06 2000 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (do_split): Add check for first arg is null string, - if so, skip the work and return zero. - -Mon Aug 14 23:01:55 2000 Arnold D. Robbins <arnold@skeeve.com> - - Add %COUNT$... handling to printf. - - * awk.h (printf_count): New define in NODE structure. - (format_tree): Added decl. - * awkgram.y (count_args): New function to set printf_count in - a node. - [print productions]: Call the function. - * (snode): For do_sprintf, call count_args, set the count - in the lnode. - * builtin.c (format_tree): New fourth arg is argument count. - Add smarts to handle the `$' in a format. - * (do_sprintf): Use new argument to format_tree. - node.c (format_val): Ditto. - -Sun Aug 13 11:10:41 2000 Arnold D. Robbins <arnold@skeeve.com> - - Changes from Alan J. Broder (ajb@woti.com): - - Array third arg to match puts subtexts into the array: - - * awk.y (tokentab): "match" gets third arg, and lint warning - * builtin.c (do_match): If third arg there, fill it with subtexts - - - New builtin sort function: - - * awk.h (do_sort): Declared. - * array.c (do_sort, dup_table, merge, merge_sort, assoc_from_list, - assoc_sort_inplace): New functions. - - * eval.c (tree_eval): In debug code, make uninitialized var - a warning, not a fatal error. Breaks too many things. - -Wed Aug 9 10:51:41 2000 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (func_call): Increment the exec_count on the - function's node; this allows printing a call count for - functions. - profile.c (pp_func): Print the count for functions. - * ALL: Changed DEBUG to GAWKDEBUG in all gawk files, so that - I don't get regex/dfa debugging. In some cases, changed - memory-related stuff to MEMDEBUG. Still have work to do. - * awk.h, node.c, profile.c: Removed exec_count_init variable; - code has been cleaned up to not need different values for - profiling/not profiling. - -Thu Jul 5 21:10:59 2000 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (casetable): Removed the USE_PURE_ASCII stuff; it - was never documented. Latin 1 forever. - * main.c (main): Only call `init_profiling' after arg parsing - if `do_profiling' is still false. Avoids resetting `prof_fp' - back to stderr. - -2000-02-17 Akim Demaille <akim@epita.fr> - - * m4: New directory. - * acinclude.m4: Removed, replaced by m4/*.m4. - * Makefile.am: Adjusted. - Added ACLOCAL_AMFLAGS. - * configure.in Adjusted. - Use AC_SYS_LARGEFILE not GAWK_AC_SYS_LARGEFILE, jm_FUNC_MKTIME, - not GAWK_FUNC_MKTIME. - * acconfig.h: Removed _FILE_OFFSET_BITS, _LARGEFILE_SOURCE and - _LARGE_FILES now templated by m4/largefile.m4. - -2000-02-15 Arnold Robbins <arnold@skeeve.com> - - * MOVED TO AUTOMAKE AND GETTEXT. - Just about every file touched. Work done by Arno Peters. - -Sun Jan 2 14:48:23 2000 Arnold D. Robbins <arnold@skeeve.com> - - First edit of the new millenium! - * awk.y (yylex): If lint checking, be obnoxious about gotos. - -Mon Oct 25 19:12:02 1999 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h: Remove C_ALLOCA ifdef. - * main.c (main): Remove C_ALLOCA code. - * io.c (do_input): Ditto. - -Mon Aug 9 17:36:24 1999 Arnold D. Robbins <arnold@skeeve.com> - - * bisonfix.sed: Unconditionally #undef YYSTACK_USE_ALLOCA. - * configure.in: Remove all alloca and ALLOCA related stuff. - * Makefile.in: Ditto. - -Thu Jul 29 18:32:05 1999 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (NODE): exec_count now in #ifndef NO_PROFILING. - * Makefile.in: Changes to only recompile eval.c and profile.c to a - special version for profiling. - * custom.h [MSC_VER]: Turn on NO_PROFILING to omit the exec_count - and save space. - * node.c (more_nodes): Move setting of exec_count to - #ifndef NO_PROFILING. - -Thu Jul 1 12:12:05 1999 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in (AC_PREREQ): Update to 2.13. - GAWK_AC_C_STRINGIZE: convert to AC_C_STRINGIZE. - * aclocal.m4 (GAWK_AC_C_STRINGIZE): Remove definition, now - part of autoconf. - * acconfig.h (HAVE_STRINGIZE): Ditto. - -Wed Apr 28 11:08:05 1999 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (assoc_lookup): Fix call to free_temp(subs) to after - last use of subs. - -Sun Apr 25 16:48:06 1999 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (redirect): Add lint warning when same file is used for - > and >>. - -Thu Apr 22 15:05:30 1999 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (assoc_lookup): Fix call to fatal to lintwarn instead. - * node.c (r_force_number): Use `0 &&' to disable warnings about - conversions: they're overzealous, methinks. - -Thu Apr 8 14:27:58 1999 Arnold D. Robbins <arnold@skeeve.com> - - New features for profiling: - - * awk.h (NODE): Add `exec_count' member. - (freenode): Clear `exec_count' upon free. - * awk.y (func_count): New variable, counts total number of functions. - (func_install): Increment func_count. - (struct finfo): Information for use in sorting functions when - pretty printing. - (fcompare): Compare two finfo structures. - (dump_funcs): Print the functions in sorted order for profiling. - (getfname): Return the name of a builtin function. - * eval.c (INCREMENT): New macro for counting execution of nodes. - (interpret): Call INCREMENT() appropriately. - * main.c (do_profiling): New flag if doing profiling. - `--profiling': New option added to getopt_long machinery. - (main): For profiled version, set do_profile and output file. - Call `dump_prog' and `dump_funcs' if do_profiling at end. - (usage): Add new argument. - * node.c (more_nodes, freenode): Set exec_count to zero. - * profile.c: New file, does pretty printing and prints counts. - * Makefile.in: Update to create two versions of gawk, regular - and `pgawk' which does profiling. - -Wed Mar 10 21:38:14 1999 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (close_redir): Use update_ERRNO() instead of manually - doing it. - -Mon Dec 21 15:58:21 1998 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: Add BeOS to list of cases where we hardwire - GETPGRP_VOID. - custom.h: Remove the #define from __be_os case. Cleaner to - do it all in configure. Based on email from Martin C. Brown, - mc@whoever.com. - -Mon Nov 30 20:52:52 1998 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (update_ERRNO): New function, mainly for use by - extension functions. - * awk.h: Add decl. - -Tue Nov 24 18:13:29 1998 Arnold D. Robbins <arnold@skeeve.com> - - * Changes based on submission from Christos Zoulas at D.E. Shaw - that adds the following features: - - checking for use of uninitialized variables - - checking if a string that's not a number converts to 0 - - ability to load a dynamic library to add built-ins - - VERSION variable (may or may not stay) - Additional change: - - --lint=fatal makes lint errors become fatal - - LINT="fatal" has the same effect, any other positive - value makes lint errors be just warnings - * Makefile.in (includedir): New variable for gawk header files - (ext.c, ext.o): New source and object files - (OTHERS, extension): New directory for macro with example extension - (install): Install header files - * acconfig.h (DYNAMIC): New macro, true if can do dynamic loading - * array.c (assoc_lookup): New parameter `reference' is true if we - want to do reference checking. Add appropriate reference checking - code. - * awk.h (UNITITIALIZED): New flag - (lintfunc): Function pointer for correct function to use - (lintwarn): New macro to produce warnings - (result): New macro for func call result, used in commented out - code in eval.c. - (getnode, freenode): Revised to set UNINITIALIZED. - (get_lhs): Third arg for reference checking, change all calls - -- Add appropriate decls of new/changed functions - * awk.y (tokentab): New builtin "extension" for adding extensions - (node_common): Set flags to UNINITIALIZED for Node_var. - * configure.in (dynamic linking): New check. Probably should - be a separate macro. - * eval.c (flag2str): Add UNINITIALIZED to the table. - (r_tree_eval): Add checks for UNINITIALIZED. - (push_args): Appropriate changes for UNINITIALIZED to work. - (r_get_lhs): New third argument for reference checking. - (set_LINT): Add code to handle setting `lintfunc' appropriately. - * ext.c: New file, for doing dynamic library extensions. - * extension/*: New directory with simple example code. - * main.c (VERSION_node, EXTENSION_node): New nodes for new vars. - (optab): Change for "lint" to allow optional argument. - (lintfunc): Definition. - (main): Add case in option processing for --lint. - (varinit): Add entries for VERSION and EXTENSION. - * node.c (r_force_number): Checks that string really is a number. - (morenodes): Set UNITIALIZED in the flags. - * re.c (all): Change `result' to `res' globally to avoid conflict - with new macro. - * GLOBAL: Change lint calls to warning() to lintwarn(). - * GLOBAL: Change all calls to get_lhs() to have 3rd arg. - * GLOBAL: Change all calls to assoc_lookup() to have 3rd arg. - -Sun Nov 22 17:07:39 1998 Arnold D. Robbins <arnold@skeeve.com> - - * patchlev.h: Renamed from patchlevel.h to make life - easier for the PC guys. - (main.c): Changed to include patchlev.h. - (Makefile.in): Changed to ref patchlev.h where needed. - -Sat Nov 7 21:29:52 1998 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (r_get_lhs): case Node_field_spec. Fix the lint - warnings for field reference of null string or non-numeric value. - When turned on, $0 generated a warning! Oops. - -Thu Nov 5 16:58:38 1998 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (init_fds): New function to pre-open 0, 1, and 2 on - /dev/null if they're not open. Robustness, more or less. - (main): Call init_fds. - * io.c (str2mode): Add smarts for two-letter strings - such as "rw", "r+", "wr", "w+" and "a+". - -Mon Nov 2 16:55:46 1998 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_*): Added lint checks for non-numeric - and/or non-string arguments, as appropriate. This should - have been done long ago. - -Tue Oct 20 21:56:06 1998 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (LINT_node): New variable for LINT special var - (Node_LINT): New node type. - (set_LINT): Declare function. - * main.c (varinit): Add LINT variable. - (usage): Print an emphatic pointer to the manual for bug reports. - * eval.c (nodetypes): New entry for Node_LINT. - (r_get_lhs): Case added for Node_LINT. - (set_LINT): Set do_lint from LINT variable. - -Mon Oct 19 22:35:46 1998 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: For GCC, add -Wall to get warnings for development. - * Makefile.in (awktab.c): Move sed stuff to separate script. - * bisonfix.sed: New script, with old fix and Solaris x86 fix. - * awk.h (nodetype2str): Add declaration. - (load_procinfo): Add declaration. - -Tue Oct 13 22:28:56 1998 Arnold D. Robbins <arnold@skeeve.com> - - Changes to make PROCINFO["FS"] reflect the use of FIELDWIDTHS or FS. - - * eval.c (assign_val): New function that does the mechanics of - assignment - * main.c (load_procinfo): Add setting of PROCINFO["FS"] to "FS". - * field.c (update_PROCINFO): New function to update the array. - (set_FS): Call update_PROCINFO. - (set_FIELDWIDTHS): Ditto. - -Sun Sep 27 10:18:05 1998 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (reisstring): New prototype. - * re.c (reisstring): New function, returns true if the re did - a simple string match. This is rather simplistic in its logic. - * io.c (get_a_record): In the case that RS is a regexp, AND - the re matched at the exact end of the buffer, add a call to - `reisstring' in case it's a simple string match. If so, we - don't need to read more into the buffer because we don't - have a regex like `x.*y' that might extend longer. - This should be very helpful for interactive /inet clients - where something like `RS = "\r\n"' happens. - -Thu Aug 13 22:07:40 1998 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (socketopen): Fixes from Juergen Kahrs to socket - opening code for "any host". - -Tue Jul 14 19:02:33 1998 Arnold D. Robbins <arnold@skeeve.com> - - * aclocal.m4 (GAWK_AC_LIB_SOCKETS): Removed the caching; - configure gave different results the second time it was run! - -Fri Jul 10 09:11:06 1998 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (interpret): Minor cleanups: add variable name to - fatal error Node_K_array_for and other minor changes. - -Mon Jun 22 16:53:34 1998 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.in (tags, TAGS): Add $(LIBSRC). - -Tue Jun 2 15:23:05 1998 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (devopen): Relax previous change, don't require "any", - just that a port be there. The user can put 0 if they - don't care. - -Wed May 27 21:33:45 1998 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (devopen): For /inet, require that local and remote - ports and the remote hostname be there, and that `any' - be used for a port if they don't care. - -Thu May 21 14:13:46 1998 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (parse_escape): Add warning that is always on - for \q for any unknown q inside string or regex constant. - I got bit by this myself once too often. Or else I'm - just getting old and senile. - -Mon May 4 12:42:49 1998 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (NODETYPE): Sorted the Node_xxx entries for the - builtin variables. Gotta look nice, don't we? - * eval.c (nodetypes): Ditto. - (genflags2str): Added code to check that we don't - overflow the static buffer. This is just a debugging - routine, not worth the hassle of dynamic allocation. - -Mon Mar 2 16:06:16 1998 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.in (dist): Remove any embedded copied RCS or CVS - directories. - -Mon Feb 23 00:09:52 1998 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (genflags2str): Add declaration. - * eval.c (genflags2str): New function. - (flags2str): Use new general purpose function. - * io.c (redflags2str): Same. - -Sun Feb 22 23:57:29 1998 Arnold D. Robbins <arnold@skeeve.com> - - Significant changes to add two-way i/o and sockets!!! - - * Makefile.in: Add @SOCKET_LIBS@ to LIBS variable. - * acconfig.h: Add HAVE_SOCKETS and HAVE_PORTALS defs. - * aclocal.m4: New macro GAWK_AC_LIB_SOCKETS. - * awk.h: New node type, Node_redirect_twoway, and new redirection - flags: RED_TWOWAY, and RED_SOCKET. - * awk.y (parser): Add TWOWAYIO token and appropriate productions. - (yylex): Recognize `|&' token if not traditional. - * builtin.c (do_print, do_printf): Flush buffer if TWOWAYIO. - * configure.in: Add header checks for networking header files, - add --enable-portals switch, call GAWK_AC_LIB_SOCKETS - * eval.c (nodetypes): Add string constant for Node_redirect_twoway. - * io.c (redflags2str): New function. - (redirect): Better error message in default case, add code for - Node_redirect_twoway. - (socketopen): New function. - (iop_open, devopen): Add recognition of `/inet/...'. - (two_way_open): New function. - -Sat Dec 13 21:15:07 1997 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (struct node): New member, `param_list' in union `x', becomes - `node->parmlist' in the code. - * awk.y (func_install): Rearranged a bit, to build up a list of - the function parameter names and to save it in the `parmlist' field. - * eval.c (push_args): New parameter, `varnames', which is the list - of variable names. Use this to set the vname field of each - parameter's value as it's created. Special case arrays to include - where they came from, mainly for array vs. scalar diagnostics. - (r_tree_eval): Don't set the `vname' field for parameters. - (pop_fcall): Free the `vname' field if it's an array. - (func_call): Pass in the `parmlist' field to call of push_args(). - (r_get_lhs): For Node_subscript, change error message to use - the `vname' field. - (stopme): New do-nothing function for use with debugging code - and setting breakpoints. - -Thu Dec 4 15:18:17 1997 Arnold D. Robbins <arnold@skeeve.com> - - * awk.y: Fixed several lint checks and moved some into - test for do_lint_old. - * eval.c (fmt_index): Add value of bad format spec to - error message. - -Tue Nov 18 22:19:02 1997 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.in (install): Strip the installed binary. - From Anatoly A. Orehovsky (tolik@mpeks.tomsk.su). - -Sun Nov 16 22:12:39 1997 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (in_array, assoc_lookup): Add symbol->vname to - fatal calls for scalar in array context. - -Wed Nov 12 22:18:33 1997 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h [ISASCII]: On all IS* macros, add cast to unsigned char. - [TOUPPER, TOLOWER]: New macros using unsigned char. - * awk.y: Change to use of IS* vs. is* macros. - * builtin.c (nondec2awknum): Change to use of IS* vs. is* macros, - change casts for casetable[] from int to unsigned char. - use new TOLOWER, TOUPPER macros - * dfa.c [ISASCII]: On all IS* macros, add cast to unsigned char. - (lex): Change isdigit to ISDIGIT. - [TOUPPER, TOLOWER]: New macros using unsigned char, now used. - * eval.c (fmt_ok): Change to use of IS* vs. is* macros. - * field.c (sc_parse_field): Change to use of IS* vs. is* macros, - change casts for casetable[] from int to unsigned char. - (set_FS): Change to use of IS* vs. is* macros. - * io.c (get_a_record): Change to use of IS* vs. is* macros, - change casts for casetable[] from int to unsigned char. - * main.c (main): Change to use of IS* vs. is* macros. - * node.c (r_force_number, parse_escape): Change to use of IS* vs. - is* macros. - * re.c (make_regexp): Change to use of IS* vs. is* macros. - * regex.c [ISASCII]: On all IS* macros, add cast to unsigned char. - -Sun Oct 19 12:36:47 1997 Arnold D. Robbins <arnold@skeeve.com> - - * ALL: Change email address to arnold@gnu.org in all relevant places. - -Wed Oct 15 03:38:12 1997 Arnold D. Robbins <arnold@skeeve.com> - - * awk.y (yylex): Don't allow newlines after ? or : if do_posix. - -Thu Oct 9 19:28:39 1997 Arnold D. Robbins <arnold@skeeve.com> - - * custom.h [SEQUENT]: Removed; not needed any more since the - mmap code was ripped out. - -Wed Oct 8 17:22:03 1997 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in: Remove check for madvise; don't need it any more - after nuking use of mmap. - -Tue Oct 7 11:14:21 1997 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (flags2str): Made the code table driven. Shortened a lot. - -Tue Sep 30 20:59:17 1997 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (r_get_lhs): case Node_field_spec. Add lint warnings - for field reference of null string or non-numeric value. - Based on patch submitted by Alan Broder, ajb@dtmr.com. - -Wed Sep 24 20:47:59 1997 Arnold D. Robbins <arnold@skeeve.com> - - * custom.h [TANDEM]: New changes. Finishes up Tandem - integration. - -Mon Sep 22 00:42:34 1997 Arnold D. Robbins <arnold@skeeve.com> - - * custom.h [__be_os]: Remove BROKEN_TOKEN definition. - * dfa.c, dfa.h: Change `token' to `dfa_token' to avoid BeOS - compile problems. - -Thu Aug 7 22:35:17 1997 Arnold D. Robbins <arnold@skeeve.com> - - Changes for BeOS from mc@whoever.com - - * awk.h (strncasecmp): Bracket prototype. - custom.h [__be_os]: New stuff. - dfa.h, dfa.c [BROKEN_TOK]: New ifdefs to use dfa_token, not token. - -Fri Aug 1 13:32:49 1997 Arnold D. Robbins <arnold@skeeve.com> - - Tandem changes: - - * awk.h [TANDEM]: Misc additions, as needed. - * io.c (get_a_record): Changes for fixed length records; not used - on other systems. - * main.c (MRL): New variable, TANDEM specific. - (main): Update handling -mr option for TANDEM. - (load_environ): Comment out whole routine if TANDEM. - missing.c [TANDEM]: New includes. - gawkmisc.c [TANDEM]: Include `tmiscc'. - -Wed Jul 30 19:53:52 1997 Arnold D. Robbins <arnold@skeeve.com> - - Close-on-exec changes: - - * awk.h: (os_close_on_exec, os_isdir): New functions. - * gawkmisc.c: Add include fcntl.h. - * configure.in [AC_CHECK_HEADERS]: Add fcntl.h. - * io.c (devopen, iop_open): Change to use os_isdir(), not S_IFDIR(). - (redirect, devopen, iop_open, gawk_popen): Change all calls to - fcntl() to os_close_on_exec(). - -Tue Jul 29 11:09:45 1997 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (set_BINMODE): Fixed check for digits to use isdigit() - instead of looping over digits and using strchr(). Duh. - -Sat Jul 26 22:52:08 1997 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (set_BINMODE): Fix so that `-v BINMODE=w' works. - * node.c (r_force_number): Add decl of strtod(); makes things - work on MIPS. - * Makefile.in (install-strip): New target. - -Fri Jul 18 13:28:05 1997 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (redirect, devopen, iop_open, gawk_popen): Set the - close-on-exec flag on all files and pipes opened for I/O. - Keeps children run via system() or other pipes from running out - of file descriptors. - - (Reported by Kenny McCormack, gazelle@yin.interaccess.com.) - -Tue Jul 8 22:18:00 1997 Arnold D. Robbins <arnold@skeeve.com> - - * awk.y [LEX_NEXT]: Removed support for `next file' as two words. - -Tue Jul 8 06:46:32 1997 Arnold D. Robbins <arnold@skeeve.com> - - * dfa.c: Changes from pjr@jet.UK (Paul J Rippin) from an old - bug report against 2.14.0 that speed up initialization and - rewrite the inner loop into readable code. - -Thu Jul 3 11:44:50 1997 Arnold D. Robbins <arnold@skeeve.com> - - * Atari support moved into new `unsupported' directory. - awk.h, Makefile.in, gawkmisc.c, and missing.c modified. - -Sun Jun 29 14:17:37 1997 Arnold D. Robbins <arnold@skeeve.com> - - * awk.y (exp): Fixed warning about `x = /foo/'. - -Wed Jun 25 09:07:57 1997 Arnold D. Robbins <arnold@skeeve.com> - - * PORTS: Removed from distribution. - * Makefile.in (MISC): Removed PORTS. - -Sun Jun 22 11:52:57 1997 Arnold D. Robbins <arnold@skeeve.com> - - BINMODE changes. - - * awk.h (Node_BINMODE): Added. - (struct redirect): Added mode field to save for io.c:close_one(). - (BINMODE, BINMODE_node, set_BINMODE): Add declarations. - * awk.y (isnoeffect): Add Node_BINMODE. - * eval.c (nodetypes): Add Node_BINMODE string. - (r_tree_eval, r_get_lhs): Add cases for Node_BINMODE. - (set_BINMODE): New function. - * io.c (binmode): New function. - (nextfile, redirect, gawk_popen): Add calls to binmode(). - * main.c (BINMODE, BINMODE_node): Add decls. - (main): Add call to setmode() if BINMODE is set. - (varinit): Add entry for BINMODE. - -Wed Jun 4 21:52:25 1997 Arnold D. Robbins <arnold@skeeve.com> - - * configure.in [AC_FUNC_MMAP]: Removed call. - * awk.h [struct iobuf]: Removed IOP_MMAPED flag and `getrec' member. - * io.c: Removed all mmap related code. - -Sun Apr 27 16:23:56 1997 Arnold D. Robbins <arnold@skeeve.com> - - * aclocal.m4 [GAWK_AC_FUNC_MKTIME]: New macro. - * configure.in (GAWK_AC_FUNC_MKTIME): Call it. - -Thu Apr 24 23:25:06 1997 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (devopen): Remove stat test for /dev/foo files. Finally. - -Fri Jul 26 09:23:15 1996 Arnold D. Robbins <arnold@skeeve.com> - - Changes to add an abort statement, a la tawk. - - * awk.h (Node_K_abort): New enum value for NODETYPE. - * main.c (aborting): New flag variable. - (main): Add logic to handle aborting. - * eval.c (interpret): Add case for Node_K_abort. - * io.c (do_input): If aborting, break loop. - * awk.y (tokentab): Add entry for "abort" keyword - (PRODUCTIONS): Add production for LEX_ABORT. - -Wed Jul 24 12:49:52 1996 Arnold D. Robbins <arnold@skeeve.com> - - First cut at changes for i18n. - - * awk.h (do_intl): Declare new flag variable. - [INTLSTR]: New flag def. - (m_tree_eval): Fix definitions for INTLSTR. - (force_string): Fix definitions for INTLSTR. - * awk.y (yylex): Add _"..." for international strings. - (dumpintlstr): New function. - * main.c (do_intl): Define new flag variable. - (optab): Add "gen-po" entry. - (main): If do_intl, exit, don't run the program. - (gawkoption): Add "gen-po" entry. - * node.c (r_force_string): Call gettext if flags indicate INTLSTR. - -Thu Mar 14 06:29:42 1996 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (do_mktime): Added declaration of new function. - * builtin.c (do_mktime): New function. - * awk.y (tokentab): Added "mktime" to list of gawk extensions. - * missing.c [HAVE_MKTIME]: Added include of mktime.c if needed. - -Mon Feb 26 22:32:19 1996 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (pidopen, useropen): Added warnings to use PROCINFO[], - not special files. - * main.c (load_procinfo): New function. - * awk.y (variable): Added call to load_procinfo() function. - -Mon Aug 7 15:23:00 2000 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.0.6: Release tar file made. - -Thu Aug 3 17:47:53 2000 Greg McGary <greg@mcgary.org> - - * regex.c: Patches for gcc bounded pointer handling. - -Thu Aug 3 13:09:09 2000 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (in_array, do_delete): Fix tests for index equality - when searching through the array to work correctly when - index is "". - -Fri Jul 14 21:40:17 2000 Pat Rankin <rankin@eql.caltech.edu> - - * builtin.c (format_tree): Workaround a DEC C V5.7 bug by - splitting `strcpy() + 3' into two expressions (the builtin - inline strcpy evidently has erroneous return type of void * - instead of char *; reputedly fixed in V6.1). - - * eval.c (C): New macro. - [casetable]: Use it to add explicit casts for the character - values outside the range of 0 to 127. - * missing/strncasecmp.c [C, charmap]: Likewise. - - * io.c (redirect): Add EIO check on failed open for VMS. - -Fri Jul 14 11:57:23 2000 Arnold D. Robbins <arnold@skeeve.com> - - Efficiency hack: turn `for (iggy in foo) delete foo[iggy]' - into moral equivalent of `delete foo'. - - * array.c (do_delete_loop): New routine. - * awk.h [NODETYPE]: New Node_K_delete_loop value. - Add declaration of do_delete_loop. - * awk.y [LEX_FOR]: Fix code to recognize special case. - * eval.c (nodetypes): New entry for Node_K_delete_loop. - (interpret): Add case for Node_K_delete_loop, add more - diagnostic info in default (cant_happen) case. - -Tue Jul 11 22:15:10 2000 Pat Rankin <rankin@eql.caltech.edu> - - * awk.y (nextc): Recast unsigned char values back to int to - prevent VAX C from truncating EOF to 255. - -Tue Jul 11 14:08:23 2000 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (do_delete): Switch to string comparison, not - cmp_nodes. - (assoc_find): Add call to force_string on subscript. - * eval.c (interpret): Case Node_K_arrayfor: check for - Node_array_ref and fetch original_array. Yowser. - -Fri Jun 30 21:57:00 2000 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (assoc_lookup): Don't force the subscript - to be a string. Not a good idea after the change - to using dupnode. - -Sun Jun 25 15:08:19 2000 Arnold D. Robbins <arnold@skeeve.com> - - * Release 3.0.5: Release tar file made. - -Wed Jun 14 13:03:45 2000 Arnold D. Robbins <arnold@skeeve.com> - - * field.c (set_record): Manage a private buffer for $0. - Keeps things safe in case `getline var' rearranges the - IOBUF's contents that $0 is still pointing into. - -Tue Jun 13 16:27:55 2000 Paul Eggert <eggert@twinsun.com> - - Upgrade to latest and greatest version of largefile code. - - * configure.in (AC_CANONICAL_HOST): Remove. - (GAWK_AC_SYS_LARGEFILE): Defer until after AC_MINIX, - to avoid autoconf warnings. - - Rewrite largefile configuration so that we don't need to run - getconf and don't need AC_CANONICAL_HOST. - * config.guess, config.sub: Remove these files. - * Makefile.in (MISC): Remove config.guess, config.sub. - * m4/largefile.m4 (GAWK_AC_SYS_LARGEFILE_FLAGS, - GAWK_AC_SYS_LARGEFILE_SPACE_APPEND): Remove. - (GAWK_AC_SYS_LARGEFILE_TEST_INCLUDES): New macro. - (GAWK_AC_SYS_LARGEFILE_MACRO_VALUE): Change arguments from - CODE-TO-SET-DEFAULT to VALUE, INCLUDES, FUNCTION-BODY. - All uses changed. - Instead of inspecting the output of getconf, try to compile the - test program without and with the macro definition. - (GAWK_AC_SYS_LARGEFILE): Do not require AC_CANONICAL_HOST or check - for getconf. Instead, check for the needed flags by compiling - test programs. - - (GAWK_AC_SYS_LARGEFILE): Define _XOPEN_SOURCE to be 500 to - work around glibc 2.1.3 bug. - - (GAWK_AC_SYS_LARGEFILE_FLAGS): Don't use -n32 on IRIX if the - installer said otherwise. - - (GAWK_AC_SYS_LARGEFILE_FLAGS): Work around a bug in the QNX shell, - which doesn't propagate exit status of failed commands inside - shell assignments. - -Wed Jun 7 13:23:09 2000 Arnold D. Robbins <arnold@skeeve.com> - - * Updated copyright dates in appropriate files. - -Mon May 22 17:29:43 2000 Arnold D. Robbins <arnold@skeeve.com> - - * Makefile.in (clean): Get `*/core' too. - -Sun May 7 16:33:05 2000 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (concat_exp): Change ref to `lnode->stlen' and - `lnode->stptr' for SUBSEP to use `var_value->...'. - -Tue May 2 09:54:29 2000 Arnold D. Robbins <arnold@skeeve.com> - - Fix referencing freed memory as shown by test/arynocls.* tests. - * awk.h [Node_array_ref]: New node type. - [orig_array]: New macro element in NODE structure. - * field.c (do_split): Handle case for Node_array_ref, fetch - the original array. - * array.c (in_array, do_delete): Ditto. - * eval.c (nodetypes[]): Add Node_array_ref string. - (r_tree_eval): Handle case for Node_array_ref. - (push_args): Push arrays as Node_array_ref, and pass them on. - (pop_fcall): Don't unref lnode if it's an array when releasing - local arguments. Check for both Node_array and Node_array_ref. - (r_get_lhs): Choke on Node_array_ref as for Node_array. - For Node_subscript, handle Node_array_ref. - -Tue May 2 09:52:12 2000 Bruno Haible <haible@clisp.cons.org> - - * io.c (redirect): After reopening a `struct redirect', move it to - the head of the list. - -Sun Apr 2 17:51:40 2000 Arnold D. Robbins <arnold@skeeve.com> - - * re.c (re_update): Check if IGNORECASE has changed, and - if so recompute the re. See test/igncdym.awk. - -Mon Mar 20 16:18:34 2000 Arnold D. Robbins <arnold@skeeve.com> - - * io.c (set_RS): Added a lint warning about multicharacter RS, - per suggestion from Akim DeMaille (akim@epita.fr). - -Sun Feb 13 14:40:32 2000 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (push_args): Fix from Nide Naoyuki <nide@ics.nara-wu.ac.jp>, - re-assign `f' in case tree_eval moved fcall_list around. - -Sun Feb 6 11:39:33 2000 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (op_assign): Fix it right. For ++ and --, get the lhs - in the operations, do the op, and then return. For += etc, - get the rhs FIRST, since the lhs can move around as a result, - *then* get the lhs and do the operation. See test/opasnidx.awk. - -Tue Feb 1 18:41:40 2000 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (op_assign): Reget the rval after regetting - the left hand side. See test/opasnslf.awk for why. - -Thu Jan 27 18:06:31 2000 Arnold D. Robbins <arnold@skeeve.com> - - * awk.y (yylex): Made ']' not one of the characters - that sets `want_assign' to false. `a[i] /= 2' was - broken. Per bug report from Kristofer T. Karas - <ktk@ktk.bidmc.harvard.edu>. - -Wed Dec 22 15:06:37 1999 Arnold D. Robbins <arnold@skeeve.com> - - * awk.y: Removed declarations of functions before - definition of `tokentab[]'. They're redundant with - what's in awk.h. - -Thu Dec 9 17:01:07 1999 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (parse_escape): Add lint warning for unrecognized - escape sequences. - -Mon Dec 6 15:17:34 1999 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (usage): Changed bug reporting email addresses to - be a reference to `Bugs' node in the online and printed - doc, instead. - -Thu Dec 2 13:08:18 1999 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (do_compl): Test `d' for negative inside the do_lint - test, not uval. Ooops. - -Fri Nov 26 10:58:36 1999 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (assoc_find): ALWAYS compare indexes as strings, - don't use cmp_nodes in case they are numeric. Oh my. - Talk about a Day 1 bug! - -Tue Nov 23 11:58:53 1999 Arnold D. Robbins <arnold@skeeve.com> - - * regex.c (SYNTAX): Cast argument to `unsigned char' instead of - &-ing with 0xFF. Hopefully somewhat more portable, ala 21 Nov 99 - changes to awk.y. - -Sun Nov 21 22:25:27 1999 Paul Eggert <eggert@twinsun.com> - - * aclocal.m4 (AC_SYS_LARGEFILE_FLAGS): Work around a - problem with the QNX 4.25 shell, which doesn't propagate exit - status of failed commands inside shell assignments. - -Sun Nov 21 20:33:35 1999 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h (nextc): Remove declaration, don't need it here. - awk.y (nextc): Cast values to unsigned char so that latin-1 - characters in strings don't turn themselves into EOF. - Most notably y-umlaut, which is decimal 255. - -Mon Nov 1 20:00:25 1999 Arnold D. Robbins <arnold@skeeve.com> - - * regex.c (init_syntax_once): Move below definition of - ISALNUM etc., then use ISALNUM to init the table, so that - the word ops will work if i18n'ed. - (SYNTAX): And subscript with 0xFF for Latin-1 characters. - -Mon Oct 25 18:37:13 1999 Arnold D. Robbins <arnold@skeeve.com> - - * awk.h, main.c, io.c: Undo previous changes (22 Oct 1999). - * main.c (main): Move call to `init_fields()' to before - arg parsing. This allows `-v NF=blah' to work ok. - -Fri Oct 22 17:43:40 1999 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (arg_assign): Add new arg, `initing' for icky special - casing of -v of special variables. Use it to check for NF. - May need to add other cases later. - (pre_assign): Change call arg_assign, passing initing=TRUE; - io.c (nextfile): Change call arg_assign, passing initing=FALSE; - awk.h: Change prototype for arg_assign. - -Tue Oct 19 16:06:48 1999 Paul Eggert <eggert@twinsun.com> - - * io.c (close_redir): Don't munge errno between setting it and - using it. - -Wed Oct 6 17:47:47 1999 Arnold D. Robbins <arnold@skeeve.com> - - * main.c (arg_assign): Return NULL on bad variable. Allows - things like `./3x=stuff' to work as a filename. - -Thu Sep 23 21:35:46 1999 Paul Eggert <eggert@twinsun.com> - - * aclocal.m4 (GAWK_AC_SYS_LARGEFILE_FLAGS): Work around GCC - 2.95.1 bug in HP-UX 10.20 or later. (Had to fix the fix. ADR. :-) - -Tue Sep 21 13:31:36 1999 Arnold D. Robbins <arnold@skeeve.com> - - * builtin.c (format_tree): For '0', only set zero_flag if we - haven't seen the field width or precision yet. - -Mon Aug 9 13:06:01 1999 Arnold D. Robbins <arnold@skeeve.com> - - * array.c (assoc_lookup): Removed code that gave each array - a private copy of each index. Balloons memory usage for - no good reason that I can see. Just use dupnode in all - cases. - * configure.in: Check for $srcdir/.developing adds extra - defines for my testing/debugging use. Yes, hack alert. - -Sun Aug 1 11:02:02 1999 Arnold D. Robbins <arnold@skeeve.com> - - * node.c (dupnode): Turn off FIELD when copying nodes. - * array.c (do_adump, assoc_dump): New functions for array debugging. - * awk.y (tokentab): Conditionally add "adump" function for debugging. - * awk.h: Delcare new functions. - -Thu Jul 29 23:26:40 1999 Arnold D. Robbins <arnold@skeeve.com> - - From wsanchez@apple.com: - * Makefile.in (install-strip): New target, coding stds. compatibility. - * config.guess, config.sub: Add MacOS X recognition. - -Thu Jul 29 19:09:19 1999 Arnold D. Robbins <arnold@skeeve.com> - - * awk.y (func_install): Make `function foo(foo)' a fatal error. - eval.c (r_tree_eval): Diagnose use of a function name as a - variable inside the function. - -Sun Jul 4 16:53:14 1999 Arnold D. Robbins <arnold@skeeve.com> - - * eval.c (eval_condition): Add extra braces to avoid - gcc warning. I'm not going to bother for the library - code like dfa and regex. - -Wed Jun 30 16:14:36 1999 Arnold D. Robbins <arnold@gnu.org> - - * Release 3.0.4: Release tar file made. This time for sure. - -Wed Jun 30 16:10:11 1999 Arnold D. Robbins <arnold@gnu.org> - - * awk.h: Add include of <assert.h>, and comment about config.h - having to be included before any system headers. Otherwise, - with egcs-2.91.66 and later on Linux systems, and possibly - others, things break badly, due to the LFS macros. - * awk.y, builtin.c, eval.c, field.c, io.c: Removed include - of assert.h - -Wed Jun 9 11:39:19 1999 Paul Eggert <eggert@twinsun.com> - - Port the large-file code to AIX, HP-UX, and IRIX. - Add cross-compilation support for large files. - - * config.guess, config.sub: New files. - - * configure.in (AC_CANONICAL_HOST): - Add; GAWK_AC_SYS_LARGEFILE needs this. - (GAWK_AC_SYS_LARGEFILE): Renamed from GAWK_AC_LARGE_FILES. - - * aclocal.m4 (GAWK_AC_SYS_LARGEFILE): Renamed from GAWK_AC_LARGE_FILES. - Add support for AIX and HP-UX. - (GAWK_AC_SYS_LARGEFILE_FLAGS, GAWK_AC_SYS_LARGEFILE_SPACE_APPEND, - GAWK_AC_SYS_LARGEFILE_MACRO_VALUE): New macros. - - * acconfig.h (_FILE_OFFSET_BITS, _LARGEFILE_SOURCE, _LARGE_FILES): - New macros. - - * Makefile.in (MISC): Add config.guess and config.sub so they get - included in the distribution. - -Wed Jun 9 11:29:29 1999 Paul Eggert <eggert@twinsun.com> - - * io.c (iop_alloc): Don't mmap files whose sizes don't fit in `int'. - [ This isn't really needed, as HAVE_MMAP is #undef'ed at the top, - but it's there in case people want to take their life in their hands. ] - -Sun Jun 6 11:28:07 1999 Arnold D. Robbins <arnold@gnu.org> - - * BETA Release 3.0.46: Release tar file made. - -Wed Jun 2 14:36:24 1999 Arnold D. Robbins <arnold@gnu.org> - - * PORTS: Updated with a more recent list of systems - that gawk compiles and tests ok on. - -Tue Jun 1 14:24:59 1999 Arnold D. Robbins <arnold@gnu.org> - - * BETA Release 3.0.45: Release tar file made. - -Tue May 25 16:32:37 1999 Arnold D. Robbins <arnold@gnu.org> - - * builtin.c (format_tree): More smarts for weird cases, such as - zero precisions and zero values used with the `#' flag. - Thanks to Andreas Schwab (schwab@gnu.org) for pointing these out. - -Wed May 19 14:02:54 1999 Arnold D. Robbins <arnold@gnu.org> - - * io.c (do_close): Move test for `close(FILENAME)' to after - loop through all open redirections. Fixes problems in obscure - cases with redirections in END rules. - -Sun May 16 14:08:39 1999 Arnold D. Robbins <arnold@gnu.org> - - * awk.y (yylex): Fix group of characters including ',' to - set want_assign = FALSE. Fixes bizarre parsing problems in - function call lists, for example. - * io.c (get_a_record): Repair logic for single-leading-newline - case. - -Tue May 11 16:48:11 1999 Arnold D. Robbins <arnold@gnu.org> - - * aclocal.m4 (GAWK_AC_AIX_TWEAK): New macro. - * configure.in: Call it - * Makefile.in: (awklib/all): Pass CFLAGS on to sub-make so - that password programs will get AIX magic defines. Avoids - having to tweak program code for those in doc/gawk.texi. - -Mon May 3 16:56:23 1999 Arnold D. Robbins <arnold@gnu.org> - - * array.c (do_delete): Don't free_temp(subs) until after all - references to it are finished. - -Mon May 3 13:41:16 1999 Arnold D. Robbins <arnold@gnu.org> - - * BETA Release 3.0.44: Release tar file made. - -Sun May 2 18:25:43 1999 Arnold D. Robbins <arnold@gnu.org> - - * io.c (get_a_record): Do a really good job of stripping newlines - from the front of records when RS = "" and there's only one - newline at the front of the file, which the regex didn't catch. - -Wed Apr 28 12:27:49 1999 Arnold D. Robbins <arnold@gnu.org> - - * configure.in: More HP stuff: fix the manual alloca code so that - gawk will compile and link on HP systems. See the comments. - -Sun Apr 25 13:39:16 1999 Arnold D. Robbins <arnold@gnu.org> - - * Makefile.in (gawk): Add $(CFLAGS) to linking step. - * configure.in: Correctly do AC_FUNC_GETPGRP on HP systems too. - -Tue Apr 13 20:21:00 1999 Arnold D. Robbins <arnold@gnu.org> - - * BETA Release 3.0.43: Release tar file made. - -Tue Apr 13 19:02:20 1999 Arnold D. Robbins <arnold@gnu.org> - - * io.c (useropen, pidopen): Add casts to int on arguments to - silence gcc warnings. - * regex.c (regcomp,regexec,regfree): Add ifdef for APPLE. - -Thu Feb 4 10:38:02 1999 Arnold D. Robbins <arnold@gnu.org> - - * custom.h: Hacks for BeOS. Not documented in the manual right now. - * configure.in: Hacks for BeOS. Check for HP-UX and define C_ALLOCA - if not using gcc. I wish they'd just fix bison already. - -Sun Dec 20 16:57:38 1998 Arnold D. Robbins <arnold@gnu.org> - - * BETA Release 3.0.42: Release tar file made. - -Sun Nov 15 21:05:39 1998 Arnold D. Robbins <arnold@gnu.org> - - * io.c (gawk_popen): Add WIN32 to list of systems that use - the non-real-pipe version. From the PC gawk guys. - -Wed Nov 4 11:32:24 1998 Arnold D. Robbins <arnold@gnu.org> - - * BETA Release 3.0.41: Release tar file made. - -Tue Nov 3 16:24:35 1998 Arnold D. Robbins <arnold@gnu.org> - - * eval.c (r_get_lhs): Fix the cases for the special variables, - don't unref their current value if it's the same as the internal - copy; perhaps the current one is used in a concatenation or some - other expression somewhere higher up in the call chain. Ouch. - See test/getnr2tm.awk. - -Sun Nov 1 15:24:52 1998 Arnold D. Robbins <arnold@gnu.org> - - * builtin.c (format_tree): Improve handling of zero-fill - when a precision is present. See test/zeroflag.awk. - -Wed Oct 28 20:40:17 1998 Arnold D. Robbins <arnold@gnu.org> - - * eval.c (r_tree_eval): Case for Node_concat. Get lengths - separately, in case one expression has a side effect that - that changes another. Ugly, but it keeps gawk from core - dumping. See test/nasty.awk. - -Sun Oct 18 21:27:24 1998 Arnold D. Robbins <arnold@gnu.org> - - * awk.y (append_right): Bug fix, if `list' or `new' are NULL, - return `list', so that things don't break too badly. - * regex.c (re_compile_fastmap): Remove unused variable `num_regs'. - -Thu Oct 8 19:36:57 1998 Arnold D. Robbins <arnold@gnu.org> - - * BETA Release 3.0.40: Release tar file made. - -Mon Jul 27 10:14:33 1998 Arnold D. Robbins <arnold@gnu.org> - - * node.c (parse_escape): Remove assignment with side effects - from ISXDIGIT test. Thanks to "Mihai T. LAZARESCU" - <mihai@ccmserv.polito.it> for pointing this out. - -Mon Apr 27 11:31:32 1998 Arnold D. Robbins <arnold@gnu.org> - - * main.c (usage): Fix the email address for the bug list. - (copyleft): Update the copyright year. - -Mon Mar 23 21:22:32 1998 Arnold D. Robbins <arnold@gnu.org> - - * eval.c (r_get_lhs): Make sure that values of type - Node_param_list don't have the FUNC flag set. This means - we don't allow the use of a function name as a variable or - array from within the function. - -Sun Mar 22 19:12:32 1998 Paul Eggert <eggert@twinsun.com> - - * aclocal.m4 (GAWK_AC_LARGE_FILES): New macro that checks for - large file support, and updates CPPFLAGS, LDFLAGS, LIBS as - needed. - * configure.in: Call GAWK_AC_LARGE_FILES. - * Makefile.in (CPPFLAGS, LDFLAGS): Let autoconf configure. - (COMPFLAGS): Add $(CPPFLAGS). - -Mon Mar 16 14:06:41 1998 Arnold D. Robbins <arnold@gnu.org> - - * field.c (using_FIELDWIDTHS): New macro. - (using_fieldwidths): Use new macro. - (do_split): In case for FS_DFLT, also check that - we're not using FIELDWIDTHS. Otherwise, split() would use - FIELDWIDTHS, not current value of FS. Oops. - -Sun Nov 16 20:08:59 1997 Arnold D. Robbins <arnold@gnu.org> - - * builtin.c (sub_common): Fix for count of matches in gsub - from Geert.Debyser@esat.kuleuven.ac.be. - -Wed Oct 15 03:38:12 1997 Arnold D. Robbins <arnold@gnu.org> - - * field.c (set_FS): Use `sc_parsefield' if the value of FS is not - alphabetic OR if not ignoring case. Bug fix if IGNORECASE - is true and FS happens to be '^'. Sheesh, talk about obscure. - (rebuild_record): Add more smarts to the code that sets up the - fields. Thanks to Alan J. Broder (ajb@dtmr.com). - -Sun Oct 5 11:56:52 1997 Arnold D. Robbins <arnold@gnu.org> - - * configure.in: If ISC add -D_SYSV3 to CFLAGS, per email from - Mario Vanoni (vanonim@dial.eunet.ch). - -Fri Sep 26 00:57:49 1997 Arnold D. Robbins <arnold@gnu.org> - - * awk.y (append_right): Return if either list is NULL. Prevents - syntax errors from causing core dumps. - -Wed Sep 17 15:34:15 1997 Arnold D. Robbins <arnold@gnu.org> - - * field.c (rebuild_record): Set things up so that all fields point - into the new record and release any changed fields without - causing memory leaks. Avoids problems when fields are extended - with the value of $0 or other fields and then $0 is assigned to. - -Mon Sep 15 16:12:55 1997 Arnold D. Robbins <arnold@gnu.org> - - * builtin.c (do_print): When testing for NUMBER, make sure - it's not a string too. Thanks to Michael Brennan for - clarifying the semantics. - -Sun Sep 14 19:55:12 1997 Arnold D. Robbins <arnold@gnu.org> - - * node.c (format_val): Always format values ourselves: avoids - problems if OFMT is bizarre, like %s. - -Sun Sep 14 00:08:53 1997 Arnold D. Robbins <arnold@gnu.org> - - * io.c (get_a_record): Replace all occurrences of the test - `grRS == FALSE' with `RS_is_null' which makes ` RS = "\0" ' - actually work, is clearer code, and actually makes use of - the `RS_is_null' variable! - -Sun Aug 17 07:15:12 1997 Arnold D. Robbins <arnold@gnu.org> - - * field.c (set_FS): Change logic to always set parse_field, even - if FS hasn't changed. Thanks to Igor Sheyn for catching this. - -Wed Aug 6 21:04:37 1997 Arnold D. Robbins <arnold@gnu.org> - - * io.c (VMS et al gawk_popen): Use pclose, not fclose, if - iop_alloc fails. - -Wed Jul 30 19:53:52 1997 Arnold D. Robbins <arnold@gnu.org> - - * awk.y [variable]: Fix case for subscript if $3 == NULL. - -Sun Jul 27 22:47:30 1997 Arnold D. Robbins <arnold@gnu.org> - - * awk.y (get_src_buf): Don't close file if it's stdin. - -Sun Jul 27 22:47:15 1997 Pat Rankin <rankin@eql.caltech.edu> - - * io.c (#if VMS: vmsrtl_fileno): New routine. - (#if VMS: fileno): New macro substituted for stdio one. - -Thu Jul 17 20:05:59 1997 Arnold D. Robbins <arnold@gnu.org> - - * builtin.c (do_print): When OFMT != CONVFMT, create a new - temporary node with just the numeric value valid and format it, - and use that for printing. Avoids memory corruption. - -Wed Jul 16 10:01:16 1997 Arnold D. Robbins <arnold@gnu.org> - - * regex.c: When SYNTAX_TABLE is defined, but not emacs, then - CHAR_SET_SIZE is not defined, though used in regcomp. It should - be taken out of #ifdef SYNTAX_TABLE. Fix from bug group, from - Akim Demaille, demaille@inf.enst.fr. - * awk.h (isnondecimal): Make test a little smarter. - * builtin.c (nondec2awknum): Add bailout for decimal numbers, e.g. - `00.1'. Fix from Larry Schwimmer <rosebud@cyclone.Stanford.EDU>. - -Thu Jun 19 19:00:40 1997 Arnold D. Robbins <arnold@gnu.org> - - * eval.c (interpret): case Node_K_next, Node_K_nextfile: fatal - error if called from BEGIN or END. - (Fixed completely Mon May 3 13:31:42 1999.) - -Mon Jun 9 22:40:04 1997 Arnold D. Robbins <arnold@gnu.org> - - * builtin.c (nondec2awknum): Allow `f' and `F' in hexadecimal numbers. - Gotta get more sleep... - * array.c (assoc_lookup): Fix from Tom Karzes (karzes@equator.com) - for memory leak when forcing type to Node_var_array. - -Thu May 15 12:49:08 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Release 3.0.3: Release tar file made. - -Wed May 14 08:06:08 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (do_close): Add lint warning if closing something that - isn't open. - -Tue May 13 12:14:12 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * random.c, builtin.c: Remove __GLIBC__ tests, since it breaks - `make test'. I prefer consistency across platforms. - * Makefile.in (gawk): Undid April 25 changes and added comment. - Putting COMPLAGS in breaks with -g on VMS POSIX. - -Sun May 11 14:48:04 1997 Darrell Hankerson <hankedr@mail.auburn.edu> - - * io.c [MSC_VER]: Add cases for WIN32. - * regex.c [MSC_VER]: Add cases for WIN32. - -Sun May 11 07:04:01 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (do_print): In the loop that evaluates each expression - to be printed, do a dupnode to avoid bizarre output. Thanks to - Michal for finding this problem. - * awk.y (yylex): Fix scanning of hexadecimal constants. - -Wed May 7 15:09:25 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (get_a_record): Fix casetable indexing with cast to int. - Keeps Michal happy. - -Tue May 6 16:40:19 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * eval.c (func_call): Removed unneeded variables. - -Mon May 5 21:17:37 1997 Pat Rankin <rankin@eql.caltech.edu> - - * missing/strftime.c [case 'v', VMS_EXT]: For VMS date format, two - digit day of month should not be zero padded on the 1st through - the 9th. - -Mon May 5 06:33:47 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * regex.h, regex.c: Merge with current GLIBC version. - -Mon May 5 06:33:47 1997 Pat Rankin <rankin@eql.caltech.edu> - - * io.c (nextfile): Move the check for null return from iop_open - in the normal case and add one for the "no args" case. - -Fri Apr 25 16:52:33 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * array.c (grow_table): Add a bunch more large primes so arrays - can get really big. Thanks to christos@deshaw.com. - * all files: Remove ifdef'ed out code and update copyrights. - * Makefile.in (gawk): Add $(COMPFLAGS) to command line. - * eval.c (flags2str): Added case for FIELD. - -Thu Apr 24 22:39:23 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * COPYING: Changed to current official version from FSF. - * regex.c: Merge with GLIBC version. - * awk.h [_GNU_SOURCE]: Bracket definition inside ifdef. - (NODE.source_line): Move name member out of `x' union and - into `nodep'; avoids problems doing diagnostics. - (nondec2num): Put decl into #if BITOPS || NONDECDATA - * posix/gawkmisc.c, missing/system.c, missing/strtod.c, - missing/strerror.c: Move to generic GPL statement at top. - * builtin.c (nondec2num): Put into #if BITOPS || NONDECDATA - -Wed Apr 23 22:14:14 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * dfa.c: Misc changes for really pedantic SGI compilers. - * builtin.c: Bracket defs of random() etc for GLIBC. - * random.c: Bracket whole file for GLIBC. - * configure.in: Extra goop for GETPGRP test for VMS POSIX. - * custom.h [VMS]: Remove hard definition of GETPGRP_VOID. - -Fri Apr 18 07:55:47 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * BETA Release 3.0.34: Release tar file made. - -Tue Apr 15 21:35:45 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - NEW UNDOCUMENTED FEATURE. USE THE SOURCE LUKE! - * acconfig.h [NONDECDATA]: New macro. - * awk.h: Add decl of do_strtonum. - * awk.y (tokentab): Add entry for strtonum function. - * builtin.c (do_strtonum): New function. - * configure.in (non-decimal-data): New --enable-* option. - * node.c (r_force_number): Change to allow non-decimal data inside - ifdef NONDECDATA. - -Tue Apr 15 06:32:50 1997 Pat Rankin <rankin@eql.caltech.edu> - - * missing/strftime.c (malloc, realloc, getenv, strchr): Only - declare these when STDC_HEADERS is not defined. - <stdlib.h, string.h>: Include these when STDC_HEADERS is defined. - * awk.h (freenode, tree_eval, m_tree_eval): Reorganize definitions. - * alloca.c (malloc): If malloc is already defined as a macro, - presumeably by config.h, don't define or declare it. - -Wed Apr 9 22:45:27 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Makefile.in [COMPFLAGS]: Per suggestion from Karl Berry, put - $(CFLAGS) last. - -Tue Apr 8 23:54:46 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * eval.c (interpret): For Node_K_break and Node_K_continue, if - treating them like `next', also check the function call stack - and pop it if necessary. - -Mon Apr 7 18:22:37 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.h: Add decls of new routines do_compl() and set_loc(). - * awk.y (tokentab): Add entry for "compl" function. - * builtin.c (do_compl): New function to do ones complement. - (do_substr): Rationalized yet again, now notices negative start - and length parameters. - * eval.c (push_args): Fix if call_list gets realloc'ed in the - middle of things. Avoids crash for deeply nested function calls. - * main.c (catch_sig): Add call to set_loc(). - * msg.c (set_loc, srcfile, srcline): New function and private - variables to help out in tracing down source of error messages. - -Fri Mar 28 08:42:27 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (iop_alloc, iop_close): Undo changes of Feb 11, apparently - other cleanups in io.c made mmap stuff start working again. - BAH! It's a mess, the test suite still fails. I'm leaving the - mmap stuff undefined for now. It'll probably get ripped out in 3.1. - -Thu Mar 27 08:48:57 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * custom.h [_SEQUENT_]: Undef HAVE_MMAP. - -Wed Mar 26 09:08:16 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (iop_alloc): Fix definition to make it static. - -Mon Mar 24 23:09:07 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * field.c (init_fields, etc..): More clean up use of Null_field - and the various flags. - * node.c (unref): If a field, free the node itself. Fixes - memory leak problems. - -Sun Mar 23 22:51:09 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.h [FIELD]: New flag for node->flags field. - * builtin.c (sub_common): If FIELD is set, dup the string. - * field.c (init_fields): Set up a new Null_field global var. - (init_fields, set_field, set_record) use the FIELD flag. - (getfield): Use Null_field instead of private variable. - * io.c (wait_any): Comment out calls to pclose and iop_close, - caused weird race conditions. See test/pipeio1.awk. Thanks - to Darrell Hankerson for tracing this one down. - -Tue Mar 18 20:57:18 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * dfa.c (inboth): Free templist; plugs memory leak. - * field.c (init_fields, grow_fields_arr, set_field, rebuild_record, - set_record): Remove PERM flag from entries in fields_arr[]. Fixes - nasty memory leak. - -Tue Mar 18 06:33:00 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.y (dup_parms): Robustified against parameter errors. - -Sun Mar 16 21:31:40 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - NEW UNDOCUMENTED FEATURE. USE THE SOURCE LUKE! - * acconfig.h [BITOPS]: New macro. If set, do octal & hex and bit ops. - * awk.h [isnondecimal]: New macro, and decl of new functions. - * awk.y (yylex): Add recognition of octal and hex constants. - * builtin.c (do_and, do_or, do_xor, do_lshift, do_rshift): New - functions that do bit operations. - (nondec2awknum): New function to convert octal or hex to double. - * configure.in: Add AC_ARG_ENABLE for bit operations. - * node.c (r_force_number): Add octal and hex conversion. - -Sun Mar 16 21:28:56 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.h [IOP_NOFREE_OBJ]: New macro. - * io.c (iop_open, iop_alloc): Add new third parameter, which is - either NULL, meaning allocate a new IOP, or the address of one - already allocated. Have a static one in the `nextfile' - routine, and use the IOP_NOFREE_OBJ flag for it. All of this - keeps us from reading freed memory. The `swaplns' test fails - otherwise. - (iop_close): If IOP_NOFREE_OBJ is set, don't free the IOBUF. - -Wed Feb 26 06:21:02 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * eval.c (in_function, pop_fcall_stack, pop_fcall, push_args): - New functions. These manage "frames" of awk function call arguments. - The problem is that a `next' or a `nextfile' from a function - leaks memory. These changes allow us to free up that memory. - (interpret): for Node_K_next and Node_K_nextfile, check if in - a function call and free all function call frames. - -Fri Feb 21 06:23:19 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - Misc changes from Katsuyuki Okabe <HGC02147@niftyserve.or.jp>: - - * builtin.c (do_substr): Change a %d to %ld in warning message. - * eval.c (op_assign): Fix format string for warning about %=. - -Wed Feb 19 23:29:02 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * main.c (main): Add do_intervals to condition that causes - resetup() to be called again. Makes the --re-interval option - actually work. What a concept. - -Fri Feb 14 09:47:31 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c [#include "awk.h"]: Undef HAVE_MMAP to just use the old code. - Something is causing a file descriptor leak, and this is getting to - be just too much hair. I reserve the right to rip out the mmap - code entirely at a future date. - -Tue Feb 11 06:28:29 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (iop_alloc): For an mmap'ed file, close the file descriptor, - and then touch each page to get a private copy. Fixes nasty case - of truncating our input file. - (iop_close): Don't call close on mmap'ed file. - -Wed Feb 5 17:59:04 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * eval.c (interpret): For Node_K_delete, just call do_delete; let - it handle the case of `delete array'. - * array.c (do_delete): Changed to handle case of `delete array', - and made smarter if the array is actually an uninitialized - parameter. - -Sun Jan 26 22:58:29 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * getopt.h, getopt.c, getopt1.c: Replaced with new versions from - GLIBC 2. - -Sun Jan 19 23:37:03 1997 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * eval.c (nodetype2str): Not static, for debugging. - (flags2str): New function for debugging. - * field.c (get_field): Add new var that is like Nnull_string but - does not have numeric attributes, so that new fields are strings. - (set_record): Turn off PERM flag before unrefing fields and field 0. - * array.c (in_array): Always evaluate subscript, could have - side effects. - * builtin.c (do_strftime): Way increase size of buffer to make sure - we don't have overflow problem. Keeps Paul Eggert happy. - * custom.h [__amigaos__]: Define fork to vfork. From Fred Fish. - * dfa.c: Move include of config.h to top, for RSXNT. From Kai - Uwe Rommel. - (ISALPHA, etc): Change from Jacob Engelbrecht (jaen@novo.dk) - to better handle non-ASCII environments. - * gawkmisc.c: Remove amigados case, posix should now work fine. - * amiga/*: Nuked per previous entry. - * Makefile.in: Removed all references to amiga - * io.c [HAVE_SYS_PARAM_H]: Add #undef RE_DUP_MAX to avoid - spurious conflict with regex.h. - (flush_io): Remove amiga ifdefs, not needed anymore. - (spec_setup): Set getrec field for special files. Fix from - Mark Gray (markgray@pdt.net). - * node.c (more_nodes): Fix to get the last entry in the array. - -Wed Jan 8 17:42:37 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * io.c (mmap_get_record): Fix return value if file ends without - record separator. - -Fri Jan 3 19:57:16 1997 Pat Rankin <rankin@eql.caltech.edu> - - * awk.y (get_src_buf): Test for an empty source file by detecting - an initial read of 0 bytes rather than by relying on info from - stat(). - -Wed Dec 25 11:25:22 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Release 3.0.2: Release tar file made. - -Wed Dec 25 11:17:32 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Makefile.in (install, uninstall): Use $(srcdir)/patchlevel.h. - Thanks to Richard Levitte, LeViMS@stacken.kth.se. - (install): Remove chmod command; let $(INSTALL_PROGRAM) use -m. - -Mon Dec 23 20:36:59 1996 Pat Rankin <rankin@eql.caltech.edu> - - * custom.h (#if VMS_POSIX): Define GETPGRP_VOID. - -Fri Dec 20 08:59:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * getopt.c, getopt1.c: Comment out the `#if defined (_LIBC) || - !defined (__GNU_LIBRARY__)' and `#endif' to force use of this - getopt, even on systems like Linux. This will be handled - better in 3.1 / glibc 2. - -Thu Dec 19 22:52:39 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.y (yylex): In several places, after yyerror(), add call to - exit(). Otherwise, infinite messages. This should probably - be handled better. - -Wed Dec 18 22:42:10 1996 Darrel Hankerson <hankedr@mail.auburn.edu> - - * getopt.c (_getopt_internal): If 'W' and ';', if optind == argc, - return c, don't fall through. - -Wed Dec 18 10:09:44 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * configure.in [AC_PREREQ]: Update to 2.12 in order to switch to - autoconf 2.12. Lots of other files will be rebuilt automatically. - [AM_SANITY_CHECK_CC]: Removed, autoconf does it now. - * aclocal.m4 [AM_SANITY_CHECK_CC]: Removed, autoconf does it now. - -Tue Dec 17 22:23:16 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (do_strftime): Fix case if format string is "". - Also fix it if format is not "" but result of strftime is "". - See comments in code. - -Tue Dec 10 23:09:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Release 3.0.1: Release tar file made. - -Tue Dec 10 22:39:41 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Makefile.in (dist): Add dependency on `info'. Remove line that - does makeinfo. - (install): Use $(LN) not $(LN_S) to link gawk gawk-version. - -Sun Dec 8 07:53:44 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Makefile.in (gawk): Took COMPFLAGS out of link line for help - on VMS posix. Shouldn't (I hope) affect anything else. - -Thu Nov 28 11:52:24 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * configure.in (AC_PROG_INSTALL): Set INSTALL to install-sh. - -Tue Nov 26 22:42:00 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * PORTS: Updated list of systems. - * Makefile.in (install): Fix some typos and add some improvements - for Ultrix. - -Sun Nov 24 22:16:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (do_printf): If no args, fatal error. Return silently - if --traditional. - -Thu Nov 7 20:54:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (inrec): Make sure EOF hasn't already happened before - trying to read; prevents accessing freed buffer. Thanks to - Michal Jaegermann. - * Makefile.in [AWKSRC]: Add random.h. - * random.h: New file, redefines names of the `random' functions. - * random.c, builtin.c: Add include of random.h. - -Thu Nov 7 09:06:21 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.y (snode): Undo 4 Oct change, put do_split code back. - * field.c (do_split): Restore old code; add test for CONST, so - that re_parse_field is used if third arg to split is a regexp - constant. - -Mon Nov 4 12:57:11 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * main.c (main): Research -m[fr] options don't need literal '=' - characters. Brian's documentation was confusing. Fixed, not - that anyone actually uses these options with gawk. - -Sun Nov 3 11:23:21 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * field.c (def_parse_field): Add \n to list of acceptable white space. - (posix_def_parse_field): New routine, just like def_parse_field(), - but only allows space and tab as separators. - (do_split, set_FS): Make appropriate choice between the two - *def_parse_field() routines. - -Fri Oct 25 10:13:06 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * configure.in: Remove test for random. - * Makefile.in: Add random.c to list of files always compiled. - * missing.c: Remove HAVE_RANDOM test. - * builtin.c: Remove ifdef's for HAVE_RANDOM. - [GAWK_RAND_MAX]: Use constant we know works with our random(). - * random.c: New file - moved from missing/ directory. - -Wed Oct 23 19:46:01 1996 Pat Rankin <rankin@eql.caltech.edu> - - * builtin.c (do_tolower, do_toupper): Add `unsigned char *' casts. - -Tue Oct 22 21:27:52 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c [GAWK_RANDOM_MAX]: Try to make definition a bit - smarter; don't use RAND_MAX if it's equal to SHRT_MAX, blows - things up. - -Tue Oct 22 08:49:20 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * main.c (copyleft): Update copyright date to 1996. - * Too many files to list: Update copyright date to 1996. - -Sun Oct 20 12:21:09 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.y, dfa.c, eval.c, io.c, re.c: Added various FIXME comments. - -Sat Oct 19 22:06:42 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * eval.c (nodetype2str): Make static, add prototype. - * field.c (sc_parse_field): Cast array subscripts to int to - shut up gcc warnings. - * gawkmisc.c: Add prototype for xmalloc. - * awk.h: Add prototype for getredirect. - * builtin.c (do_fflush): Remove extern decl of getredirect. - * io.c (get_a_record, mmap_get_record): Change decl of rs to int, - to shut up gcc warnings. - * awk.y (isassignable): Add a default to switch to quiet gcc. - * getopt.c (_getopt_internal): Give default value to `indfound'. - -Fri Oct 18 09:00:49 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * regex.h [RE_SYNTAX_AWK]: Add RE_CONTEXT_INDEP_ANCHORS. - -Thu Oct 17 22:32:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * aclocal.m4 [AM_SANITY_CHECK_CC]: Added. - * configure.in: Use it. - -Thu Oct 17 21:43:25 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * configure.in: Add checks for locale.h and setlocale(). - * awk.h: Include locale.h and define out setlocale() if not available. - * main.c (main): Call setlocale(). - * builtin.c (do_tolower, do_toupper): Use unsigned char pointers, - to get other charsets right in different locales. - -Wed Oct 16 21:32:53 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (format_tree): Change initial buffer size to 512 - and use a constant. Allows large values of %f per bug report - from sheyn@cs.bu.edu. - -Wed Oct 16 21:22:08 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Makefile.in [MISC]: Removed TAGS and tags. - (local-distclean): Added TAGS and tags. - (maintainer-clean): Removed TAGS and tags. - -Wed Oct 16 12:28:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * main.c (version): Add call to copyleft(), per new standards. - version.c: Fix text of version string to match new standards. - -Sun Oct 6 22:19:45 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * regex.c: Updated to Emacs 19.34b base. - -Sun Oct 6 21:57:34 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * re.c (make_regexp): Fixed to handle \8 and \9 in the middle - of a regexp. - -Fri Oct 4 10:26:16 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.y (snode): Remove case for do_split; always making the - third arg a Node_regex is wrong. - * field.c (do_split): Rationalized to distinguish `/ /' from `" "'. - Generally fixed up. - * node.c (parse_escape): Allow single digit \x escapes. - -1996-10-02 Paul Eggert <eggert@twinsun.com> - - * builtin.c (format_tree): Fix bug in %d and %i format: NaNs, and - values in the range LONG_MAX+1 .. ULONG_MAX, were mishandled. - Don't assume that double values <= -1 are converted to unsigned - long in the expected way; the C Standard doesn't guarantee this. - -1996-10-02 Paul Eggert <eggert@twinsun.com> - - * awk.h (INT_MAX): Remove unused symbol. - -Mon Sep 30 22:19:11 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * getopt.c (_getopt_internal): If 'W' is in the optstring followed - by a ';' then search through the long opts table. This makes - `-W foo=bar' same as `--foo=bar'. - * main.c (main): 'W' now prints an error message. - (gawk_option): Deleted the routine. - -Sun Sep 29 23:04:54 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (sub_common): Fix several bugs with gsub when - matching null strings. See test/gsubtest.awk. - -Fri Sep 20 17:35:54 1996 Pat Rankin <rankin@eql.caltech.edu> - - * alloca.c (NULL): Don't define if <config.h> has already done so. - -Fri Sep 20 11:54:31 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (do_print): Evaluate all the expressions first and - then print them. Avoids surprising behavior. See test/prtoeval.awk - for an example. - -Tue Sep 10 06:21:40 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.h [FUNC]: New flag, marks a Node_parameter_list as really - being the function name; allows more checking in awk.y. - * awk.y (isassignable): Now takes a NODE * instead of a type, to - check if a function parameter is marked FUNC, then it's the function - name, which is not assignable. Fix call from snode(). - (function_prologue): Mark function name as FUNC. - (yyerror): Don't call exit() anymore; gawk will now report - all syntax errors. - -Sun Sep 1 19:36:30 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * field.c (rebuild_record): After building new field 0, go through - all old fields, and if they used to point into the old one, - have them point into the new one. Then turn off PERM flag before - unref-ing field 0. - -Wed Aug 28 19:13:34 1996 Arnold D. Robbins <arnold@math.utah.edu> - - * eval.c (set_IGNORECASE): Correctly parenthesize bit operations - in test and fix logic for string value. - -Wed Aug 28 22:06:33 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * main.c (usage): Add email addresses for bug reporting, per - change in GNU Coding Standards from RMS. - -Sun Aug 11 23:13:22 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Makefile.in (install): Correct use of $(INSTALL_PROGRAM). - -Thu Aug 8 23:29:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * parse.y (isassignable): New function, checks in type can - be assigned to. - (snode): Changed checking for 3rd arg of gsub to be more - general, supersedes earlier change. - -Thu Aug 8 13:58:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * parse.y (snode): If third arg to sub or gsub is builtin - function, complain, since can't substitute into result. - * eval.c (r_get_lhs): Diagnose Node_builtin as an error, instead - of falling through into default case and using cant_happen(). - -Thu Aug 1 07:13:14 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * regex.h [RE_DEBUG]: New macro. - [RE_SYNTAX_GNU_AWK]: Add RE_DEBUG. - [RE_SYNTAX_POSIX_AWK]: Add RE_INTERVALS. - * regex.c (re_set_syntax): Add #ifdef DEBUG code to turn on `debug' - flag if RE_DEBUG set, and turn off debug if not set and debug - was on. - * main.c (main): Remove `do_intervals = TRUE' from `if (do_posix)', - it's now handled in the definition of RE_SYNTAX_POSIX_AWK. - -Mon Jul 29 17:49:07 1996 Pat Rankin <rankin@eql.caltech.edu> - - * io.c (O_ACCMODE): Define it if <fcntl.h> doesn't. - -Mon Jul 29 12:02:48 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * eval.c (set_IGNORECASE): Made somewhat smarter. gawk -v IGNORECASE=0 - was acting the same as -v IGNORECASE=1. Thanks to Darrell Hankerson - for the bug report. - -Fri Jul 26 12:04:43 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.h (format_val): Add declaration of new routine. - * node.c (format_val): New routine, abstracts old guts of - r_forcestring; accepts format string and index as additional params. - (r_force_string): Changed to call format_val. - * builtin.c (do_print): Don't tree_eval the tree twice in case - OFMTidx != CONVFMTidx; doing so could cause side effects - (from bug report by Tobias Rettstadt, xassp@ipds.uni-kiel.de). - Instead, call format_val. - -Mon Jul 22 21:59:15 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (iop_close): Change check for "is $0 in the input buffer" - to use `< (iop->buf + iop->secsiz + iop->size)' instead of - `< iop->end'. The latter is bogus if EOF has been hit on the - file. Fix from Darrel Hankerson based on bug report by - Charles Howes (howes@grid.direct.ca). See test/eofsplit.awk. - -Thu Jul 18 19:43:20 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (sub_common): Backed out change of Feb 14 in favor of: - (do_gensub): Changed to use make_string and then to |= TEMP - flag, based on bug report and patch from Katsuyuki Okabe, - hgc02147@niftyserve.or.jp. - -Thu Jul 18 19:23:53 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * custom.h: Added ifdef for QNX, based on bug report from - Michael Hunter, mphunter@qnx.com. - -Mon Jul 15 09:31:01 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (redirect): When finding the rp pointer, if it's not - NULL, set str = rp->value. This gets the '\0' terminated - version. Motivated by bug report from John Hawkinson - (jhawk@bbnplanet.com). - -Sun Jul 14 18:40:26 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * configure.in: Added call to AC_CHECK_LIB(m, fmod), since - apparently some systems have fmod in the math library. - Portability: The Holy Grail. Sigh. - -Sun Jul 14 18:08:01 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.h: Add Jim Meyerings ISASCII etc hacks for ctype macros. - * builtin.c (do_toupper, do_tolower, sub_common): Changed to use - upper-case versions of ctype macros. - * main.c (main): Ditto. - * node.c (r_force_number, parse_escape): Ditto. - -Sun Jul 14 06:34:18 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * field.c (set_record): Made it always do the PERM flag. - Fixes cases where $0 is assigned to, e.g. by gsub, keeps - the fields valid. - (get_field): Removed the call to reset_record in - case where ! field0_valid. We want to leave the fields alone - if they've been changed. - -Thu Jul 11 23:04:20 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (devopen): Change tests of (flag & O_fooONLY) to - (flag & O_ACCMODE) == O_fooONLY. Per (long standing) bug - report from Chapman Flack. - (close_redir): Change final conditional to just (status != 0) - so that ERRNO always set; the warning had its own `if (do_lint)' - anyway. - * eval.c (do_split): Force type of array to be Node_var_array - instead of Node_var. Per (long standing) bug report from - Chapman Flack. - -Thu Jul 11 22:17:14 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Makefile.in (install): Added symlink of gawk to awk if - no awk in $(bindir). - (LN_S): New variable for symlinking. - (uninstall): Remove awk if it's the same gawk. - * Configure.in: Added call to AC_PROG_LN_S for Makefile.in. - -Sun Jul 7 15:47:13 1996 Arnold D. Robbins <arnold@infographix.com> - - * main.c (main): Made `--posix' turn on interval expressions. - Gawk now matches its documentation. (What a concept!) - -Wed Jul 3 15:02:48 1996 Arnold D. Robbins <arnold@infographix.com> - - * regex.h, regex.c: Upgraded to changes from Emacs 19.31. - -Fri May 17 08:46:07 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (get_a_record): Added `continued' flag. Fix from - Darrell Hankerson for when RS = "\n|something". - -Wed May 15 02:34:55 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Makefile.in (awklib/all): Now depends on gawk, fixes problem - with parallel make. - -Tue May 14 15:02:52 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (format_tree): Fix handling of '*' to deal with - negative value for fieldwidth -- make positive and turn on - left justify. Per bug report from Michael Brennan. - -Sun May 12 20:42:06 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * eval.c (r_get_lhs): case Node_subscript. Check if array name - is actually a function, fatal error if so. - -Sun May 5 10:11:52 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (redirect): Call flush_io() before creating a new output pipe, - per bug report from Brian Kernighan (bwk@research.bell-labs.com). - -Fri Mar 15 06:38:33 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Makefile.in (install): Use $(INSTALL_PROGRAM), not $(INSTALL). - (local-distclean): Add `*~' to list of files to be removed. - (CFLAGS): Now contains just @CFLAGS@. - (COMPFLAGS): Replaces use of CFLAGS, has CFLAGS plus all the - other stuff. - -Wed Mar 13 14:19:38 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (mmap_get_record): Fixed to not place sentinel at end - of mmap'ed object. Won't work if file is exact multiple of - disk block size. See comments in code for more info. - Thanks to Rick Adams (rick@uunet.uu.net) for help in testing. - -Sun Mar 10 22:50:23 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * io.c (do_close): Notice if we were called as `close(FILENAME)' - and arrange to close the current input file. This turns out - to be easy to do, just call `nextfile(TRUE)'. Based on bug report - from Pascal A. Dupuis, <dupuis@lei.ucl.ac.be>. - -Thu Mar 7 08:08:51 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * field.c (init_fields, grow_fields, set_field, rebuild_record): - Nuke the `nodes' array everywhere. Anytime a field is unref'ed, - allocate a new node that is a copy of Nnull_string. This avoids - subtle memory management problems when doing a lot of assignment - to fields, and tweaking of NF. Make sure that fields_arr[0] always - has a type of Node_val! - * field.c (set_NF): If NF is decremented, clear fields between - NF and parse_high_water, otherwise if NF incremented, clear - fields between parse_high_water and NF. - * eval.c (nodetype2str): New function, used for diagnostics. - (interpret): Use nodetype2str when finding invalid node. - -Mon Mar 4 09:02:28 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (do_toupper, do_tolower): Use isascii along with - isupper/islower before changing case, in case characters have - the high bit set. This is a hack. - -Mon Feb 26 22:24:44 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (sub_common): If no match, and called from gensub, - don't free the temporary string, since the tmp_number then - writes over it. - -Sun Feb 25 23:13:01 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (format_tree): Fixed %c to treat user input as - numeric also by adding test for MAYBE_NUM. - -Tue Feb 20 12:25:50 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * configure.in: Added AC_FUNC_MMAP call and add madvise to - list of functions to look for. - * awk.h [IOP_ISMAPPED]: New flag value for mmap support and new - `getrec' structure member in struct iobuf. - * io.c (iop_alloc, iop_close): Changed to map/unmap input file - into memory if possible. - (mmap_get_record): New function to actually retrieve the - record from mmaped file. - -Thu Feb 1 08:56:46 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (do_substr): Fixed lint message to use indx+1 when - start position is past end of string. - -Sun Jan 28 07:00:56 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (do_substr): Rationalized handling of missing length - argument, as well as various accompanying lint warnings. Previous - code was slightly bogus. Talk about your Day 1 bugs. - -Thu Jan 25 14:09:11 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * builtin.c (do_substr): If length exceeds length of actual - string, do computation of needed substring length *after* - the lint warning. - -Wed Jan 24 10:06:16 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * Makefile.in (gawk): Add $(CFLAGS) to link line. - (Makefile): Target depends on the Makefile.in files. - (OTHERS): Added TAGS and tags to the distribution. - (local-distclean): New rule. - (distclean): Use it. - (maintainer-clean): Don't `make distclean' before running submakes, - since that removes makefiles needed for the submakes. - * builtin.c (do_strftime): Remove hard coded limit on length of result. - Based on code from Paul Eggert (eggert@twinsun.com). - -Mon Jan 22 13:16:37 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * main.c (usage): Takes new fp parameter which is either - stdout for `--help' (per the GNU Coding Standards) or stderr - if an error occurs. Fix all calls. - (version): Prints to stdout per the coding stds. - (copyleft): Prints to stdout now, not stderr, and exits. - -Fri Jan 19 08:10:29 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * regex.h [RE_GNU_AWK]: Added RE_CONTEXT_INDEP_OPS to set of - bits we turn off for regular operation. Breaks things like - /^+[0-9]+/ to match a literal `+' at the beginning of, say, - a phone number. - -Wed Jan 10 23:19:36 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * 3.0.0 polished up and release tar file made. - -Wed Dec 27 11:46:16 1995 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * 2.94.0 released to porting group (no, I haven't been good - about this file; I'll do better once 3.0 is released). - -Mon Aug 28 23:04:30 1995 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * awk.h updated for NeXT - bracket TRUE/FALSE - * io.c (get_a_record): Removed shadowing of 'start' in - * Makefile.in and doc/Makefile.in: Fixed to use gawk.1 and gawk.texi, - instead of gawk.1.in and gawk.texi.in. - -Mon Aug 25 11:04:30 1995 Arnold D. Robbins <arnold@skeeve.atl.ga.us> - - * 2.90.0 released to porting group. - -Fri Aug 18 12:43:31 1995 Arnold D. Robbins <arnold@puny.ssc.com> - - * ChangeLog created. + * ChangeLog.0: Rotated ChangeLog into this file. + * ChangeLog: Created anew for gawk 4.0.0 and on. + * 4.0.0: Release tar ball made. |