#! /bin/sh # # This is patch #1 to gawk 5.0. cd to gawk-5.0.0 and sh this file. # Then remove all the .orig files and rename the directory gawk-5.0.1 # Changes to files that are automatically recreated have been omitted. # They will be recreated the first time you run make. # This includes all the extracted example files in awklib. # First, slight rearranging # Now, apply the patch patch -p1 << \EOF diff -urN gawk-5.0.0/awkgram.y gawk-5.0.1/awkgram.y --- gawk-5.0.0/awkgram.y 2019-04-08 21:49:23.000000000 +0300 +++ gawk-5.0.1/awkgram.y 2019-06-02 21:53:18.000000000 +0300 @@ -154,7 +154,7 @@ static char *tokstart = NULL; static char *tok = NULL; static char *tokend; -static int errcount = 0; +int errcount = 0; extern char *source; extern int sourceline; @@ -4379,7 +4379,7 @@ } if (do_lint) { - if ((tokentab[mid].flags & GAWKX) != 0 && (warntab[mid] & GAWKX) == 0) { + if (do_lint_extensions && (tokentab[mid].flags & GAWKX) != 0 && (warntab[mid] & GAWKX) == 0) { lintwarn(_("`%s' is a gawk extension"), tokentab[mid].operator); warntab[mid] |= GAWKX; @@ -4702,7 +4702,7 @@ (void) mk_rexp(arg); if (nexp == 3) { /* 3rd argument there */ - if (do_lint && ! warned) { + if (do_lint_extensions && ! warned) { warned = true; lintwarn(_("match: third argument is a gawk extension")); } @@ -4759,7 +4759,7 @@ } else if (r->builtin == do_close) { static bool warned = false; if (nexp == 2) { - if (do_lint && ! warned) { + if (do_lint_extensions && ! warned) { warned = true; lintwarn(_("close: second argument is a gawk extension")); } diff -urN gawk-5.0.0/awk.h gawk-5.0.1/awk.h --- gawk-5.0.0/awk.h 2019-04-10 22:06:47.000000000 +0300 +++ gawk-5.0.1/awk.h 2019-06-17 09:04:54.000000000 +0300 @@ -1116,6 +1116,7 @@ extern NODE **fields_arr; extern int sourceline; extern char *source; +extern int errcount; extern int (*interpret)(INSTRUCTION *); /* interpreter routine */ extern NODE *(*make_number)(double); /* double instead of AWKNUM on purpose */ extern NODE *(*str2number)(NODE *); @@ -1138,21 +1139,22 @@ extern SRCFILE *srcfiles; /* source files */ enum do_flag_values { - DO_LINT_INVALID = 0x0001, /* only warn about invalid */ - DO_LINT_ALL = 0x0002, /* warn about all things */ - DO_LINT_OLD = 0x0004, /* warn about stuff not in V7 awk */ - DO_TRADITIONAL = 0x0008, /* no gnu extensions, add traditional weirdnesses */ - DO_POSIX = 0x0010, /* turn off gnu and unix extensions */ - DO_INTL = 0x0020, /* dump locale-izable strings to stdout */ - DO_NON_DEC_DATA = 0x0040, /* allow octal/hex C style DATA. Use with caution! */ - DO_INTERVALS = 0x0080, /* allow {...,...} in regexps, see resetup() */ - DO_PRETTY_PRINT = 0x0100, /* pretty print the program */ - DO_DUMP_VARS = 0x0200, /* dump all global variables at end */ - DO_TIDY_MEM = 0x0400, /* release vars when done */ - DO_SANDBOX = 0x0800, /* sandbox mode - disable 'system' function & redirections */ - DO_PROFILE = 0x1000, /* profile the program */ - DO_DEBUG = 0x2000, /* debug the program */ - DO_MPFR = 0x4000 /* arbitrary-precision floating-point math */ + DO_LINT_INVALID = 0x00001, /* only warn about invalid */ + DO_LINT_EXTENSIONS = 0x00002, /* warn about gawk extensions */ + DO_LINT_ALL = 0x00004, /* warn about all things */ + DO_LINT_OLD = 0x00008, /* warn about stuff not in V7 awk */ + DO_TRADITIONAL = 0x00010, /* no gnu extensions, add traditional weirdnesses */ + DO_POSIX = 0x00020, /* turn off gnu and unix extensions */ + DO_INTL = 0x00040, /* dump locale-izable strings to stdout */ + DO_NON_DEC_DATA = 0x00080, /* allow octal/hex C style DATA. Use with caution! */ + DO_INTERVALS = 0x00100, /* allow {...,...} in regexps, see resetup() */ + DO_PRETTY_PRINT = 0x00200, /* pretty print the program */ + DO_DUMP_VARS = 0x00400, /* dump all global variables at end */ + DO_TIDY_MEM = 0x00800, /* release vars when done */ + DO_SANDBOX = 0x01000, /* sandbox mode - disable 'system' function & redirections */ + DO_PROFILE = 0x02000, /* profile the program */ + DO_DEBUG = 0x04000, /* debug the program */ + DO_MPFR = 0x08000 /* arbitrary-precision floating-point math */ }; #define do_traditional (do_flags & DO_TRADITIONAL) @@ -1178,6 +1180,7 @@ #else #define do_lint (do_flags & (DO_LINT_INVALID|DO_LINT_ALL)) #define do_lint_old (do_flags & DO_LINT_OLD) +#define do_lint_extensions (do_flags & DO_LINT_EXTENSIONS) #endif extern int gawk_mb_cur_max; @@ -1401,6 +1404,7 @@ extern NODE *do_asorti(int nargs); extern unsigned long (*hash)(const char *s, size_t len, unsigned long hsize, size_t *code); extern void init_env_array(NODE *env_node); +extern void init_argv_array(NODE *argv_node, NODE *shadow_node); /* awkgram.c */ extern NODE *variable(int location, char *name, NODETYPE type); extern int parse_program(INSTRUCTION **pcode, bool from_eval); diff -urN gawk-5.0.0/awklib/ChangeLog gawk-5.0.1/awklib/ChangeLog --- gawk-5.0.0/awklib/ChangeLog 2019-04-12 12:18:00.000000000 +0300 +++ gawk-5.0.1/awklib/ChangeLog 2019-06-18 20:52:21.000000000 +0300 @@ -1,3 +1,11 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + +2019-04-18 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add ChangeLog.1 to the list. Ooops. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/awklib/ChangeLog.1 gawk-5.0.1/awklib/ChangeLog.1 --- gawk-5.0.0/awklib/ChangeLog.1 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/awklib/ChangeLog.1 2019-06-18 20:09:27.000000000 +0300 @@ -0,0 +1,103 @@ +2018-12-18 Arnold D. Robbins + + * Makefile.am (distclean-local): Remove .deps directory. + +2018-09-16 Arnold D. Robbins + + * Makefile.in: Regenerated, using Automake 1.16.1. + +2018-05-27 Arnold D. Robbins + + * extract.awk: Updated after changes. + +2018-04-11 Arnold D. Robbins + + * .gitignore: Add pwcat.c and grcat.c. Remove igawk. Sort the list. + +2018-02-25 Arnold D. Robbins + + * 4.2.1: Release tar ball made. + +2017-10-19 Arnold D. Robbins + + * 4.2.0: Release tar ball made. + +2016-08-25 Arnold D. Robbins + + * 4.1.4: Release tar ball made. + +2015-08-28 Daniel Richard G. + + * Makefile.am: Build pwcat.c and grcat.c with (copied) + source in the current directory, so that (1) we can use + Automake-generated build rules instead of rolling our own, and + (2) Automake doesn't then admonish us to enable subdir-objects + due to the source files being in another directory. + * Makefile.am: Make the $(srcdir)/stamp-eg rule depend + on gawktexi.in instead of the gawk.texi file that is generated + from same, so that the build doesn't break if the latter is + missing. + +2015-06-19 Arnold D. Robbins + + * extract.awk: Sync with current version in the doc. Thanks to + Antonio Columbo for pointing this out. + +2015-05-19 Arnold D. Robbins + + * 4.1.3: Release tar ball made. + +2015-04-29 Arnold D. Robbins + + * 4.1.2: Release tar ball made. + +2014-11-05 Juergen Kahrs + + * Makefile.am (AWKPROG): Add quotes around the name in case the + build dir has spaces in it. + +2014-10-17 Andrew J. Schorr + + * Makefile.am (stamp-eg): Use explicit ./extract.awk to avoid + assumptions about AWKPATH in the environment. + +2014-04-08 Arnold D. Robbins + + * 4.1.1: Release tar ball made. + +2014-03-17 Arnold D. Robbins + + * Makefile.am (clean-local): Clean up .dSYM directories for Mac OS X. + Thanks to Hermann Piefer for the suggestion. + +2013-05-09 Arnold D. Robbins + + * 4.1.0: Release tar ball made. + +2013-02-03 Arnold D. Robbins + + * Makefile.am (AWKPROG): Add definition and conditional for + cross compiling. Thanks to Juergen Kahrs. + +2013-01-08 Andrew J. Schorr + + * eg/lib/inplace.awk: Add new file generated from doc/gawk.texi. + +2012-12-24 Arnold D. Robbins + + * 4.0.2: Release tar ball made. + +2012-03-28 Arnold D. Robbins + + * 4.0.1: Release tar ball made. + +2011-06-24 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add ChangeLog.0. + * 4.0.0: Remake the tar ball. + +2011-06-23 Arnold D. Robbins + + * ChangeLog.0: Rotated ChangeLog into this file. + * ChangeLog: Created anew for gawk 4.0.0 and on. + * 4.0.0: Release tar ball made. diff -urN gawk-5.0.0/awklib/Makefile.am gawk-5.0.1/awklib/Makefile.am --- gawk-5.0.0/awklib/Makefile.am 2019-04-12 12:02:31.000000000 +0300 +++ gawk-5.0.1/awklib/Makefile.am 2019-06-18 20:09:27.000000000 +0300 @@ -23,7 +23,8 @@ ## process this file with automake to produce Makefile.in -EXTRA_DIST = ChangeLog ChangeLog.0 extract.awk eg $(srcdir)/stamp-eg +EXTRA_DIST = ChangeLog ChangeLog.0 ChangeLog.1 \ + extract.awk eg $(srcdir)/stamp-eg # With some locales, the script extract.awk fails. # So we fix the locale to some sensible value. diff -urN gawk-5.0.0/awklib/Makefile.in gawk-5.0.1/awklib/Makefile.in --- gawk-5.0.0/awklib/Makefile.in 2019-04-12 12:03:05.000000000 +0300 +++ gawk-5.0.1/awklib/Makefile.in 2019-06-18 20:09:32.000000000 +0300 @@ -327,7 +327,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = ChangeLog ChangeLog.0 extract.awk eg $(srcdir)/stamp-eg +EXTRA_DIST = ChangeLog ChangeLog.0 ChangeLog.1 \ + extract.awk eg $(srcdir)/stamp-eg + @TEST_CROSS_COMPILE_FALSE@AWKPROG = LC_ALL=C LANG=C "$(abs_top_builddir)/gawk$(EXEEXT)" # With some locales, the script extract.awk fails. # So we fix the locale to some sensible value. diff -urN gawk-5.0.0/builtin.c gawk-5.0.1/builtin.c --- gawk-5.0.0/builtin.c 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/builtin.c 2019-05-22 21:00:52.000000000 +0300 @@ -529,7 +529,7 @@ if (do_posix) fatal(_("length: received array argument")); - if (do_lint && ! warned) { + if (do_lint_extensions && ! warned) { warned = true; lintwarn(_("`length(array)' is a gawk extension")); } diff -urN gawk-5.0.0/ChangeLog gawk-5.0.1/ChangeLog --- gawk-5.0.0/ChangeLog 2019-04-12 12:19:36.000000000 +0300 +++ gawk-5.0.1/ChangeLog 2019-06-18 20:52:47.000000000 +0300 @@ -1,3 +1,92 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + +2019-06-06 Arnold D. Robbins + + * main.c (usage): Update comment for translators. + +2019-06-02 Arnold D. Robbins + + * awkgram.c, command.c: Update to Bison 3.4. + * NEWS: Updated. + +2019-05-22 Arnold D. Robbins + + Add --lint=no-ext. Suggest by Mark Krauze . + + * NEWS: Updated. + * awk.h (DO_LINT_EXTENSIONS): New enum. + (do_lint_extensions): New macro. + * awkgram.y (yylex, snode): Use do_lint_extensions instead of + do_lint where appropriate. + * builtin.c (do_length): Ditto. + * eval.c (set_IGNORECASE, set_BINMODE): Ditto. + (set_LINT): Revise logic. + * field.c (do_split, set_FIELDWIDTHS, chose_fs_function, set_FPAT): + Ditto. + * io.c (set_RS): Ditto. + * main.c (usage): Updated. + (parse_args): Revise the code to handle --lint=no-ext. + +2019-05-10 Arnold D. Robbins + + * NEWS: Updated. + +2019-05-06 Arnold D. Robbins + + In sandbox mode, disallow assigning filenames that weren't + there initially. Thanks to Nolan Woods for + pointing out the gap. + + * awk.h (init_argv_array): Add declaration. + * cint_array.c (argv_store): New vtable for ARGV. + (argv_shadow_array): New file static variable + (argv_store, init_argv_array): New functions. + * main.c (init_args): If in sandbox mode, build shadow array of + initial argv values. Call init_argv_array. + +2019-05-05 Arnold D. Robbins + + * ext.c (load_ext): Fix the message in the version for when + extensions are not available. + +2019-04-24 Arnold D. Robbins + + * msg.c (msg): Use %ld for the line number value. Thanks to + Michal Jaegermann for the report. + +2019-04-23 Arnold D. Robbins + + * config.sub: Updated from GNULIB. + +2019-02-21 Andrew J. Schorr + + * interpert.h (Op_store_field): Move call to force_string to + here from unfield. Speeds up work with fields that are numeric + only. Thanks to Tom Gray for the report. + +2019-04-21 Arnold D. Robbins + + * POSIX.STD: Updated. + * field.c (get_field): If NF == -1, check parse high water to + set in_middle correctly. Thanks to + for the report. + +2019-04-18 Arnold D. Robbins + + * msg.c (msg): Add an undocumented feature. "Use the Source, Luke." + * Makefile.am (EXTRA_DIST): Add ChangeLog.1 to the list. Ooops. + * CheckList: Updated. + + Fix core dump reported by Steve Kemp : + + * awk.h (errcount): Declare. + * awkgram.y (errcount): No longer static. + * command.y (dbg_errcount): Renamed from errcount.j + * main.c (catchsig, catchsegv): If errcount > 0, just exit, + don't abort. + 2019-04-12 Arnold D. Robbins * configure.ac: Update version to 5.0.0. diff -urN gawk-5.0.0/ChangeLog.1 gawk-5.0.1/ChangeLog.1 --- gawk-5.0.0/ChangeLog.1 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/ChangeLog.1 2019-04-21 18:03:57.000000000 +0300 @@ -0,0 +1,8919 @@ +2019-04-12 Arnold D. Robbins + + * README: Updated in preparation for a release. + +2019-04-07 Arnold D. Robbins + + * config.sub: Updated from GNULIB. + +2019-04-05 Arnold D. Robbins + + * eval.c (load_casetable): Always use the locale's settings. + (set_IGNORECASE): Don't call load_casetable. + * main.c (main): Call load_casetable if in a single-byte locale. + +2019-03-22 Arnold D. Robbins + + * config.guess: Updated from GNULIB. + +2019-03-17 Arnold D. Robbins + + * configure.ac: Fix test for ZOS_FAIL. + +2019-03-15 Arnold D. Robbins + + * Makefile.am (pc/Makefile.tst): Yet another fix for out- + of-tree builds. Thanks to `make distcheck'. + * configure.ac: Update version for next tar ball. + +2019-03-03 Arnold D. Robbins + + * main.c (usage): Fix help message. + +2019-03-01 Arnold D. Robbins + + * Makefile.am (pc/Makefile.tst): Make sure pc/ directory exists + first. Needed for `make distcheck'. Not sure what changed such + that this is only showing up now. + * configure.ac: Update version for next test tarball. + +2019-02-28 Arnold D. Robbins + + * README.cvs: Removed. Six years is long enough. + +2019-02-25 Arnold D. Robbins + + * config.guess: Updated from GNULIB. + +2019-02-25 Arnold D. Robbins + + * NEWS: Updated. + +2019-02-25 Arnold D. Robbins + + Small profiling improvements. Suggested by mukti + . + + * main.c (parse_args): Add warnings that --profile overrides + --pretty-print. + (main): Move setuid warning to after all the warnings for conflicting + arguments. + * profile.c (pprint): Don't print extra trailing space after return + and exit if no value associated with the statement. + +2019-02-25 Arnold D. Robbins + + * configure.ac: Set ZOS_FAIL if on ZOS to improve test suite on that + platform. + * awk.h (is_valid_identifier): Move declaration outside ifdef DYNAMIC. + * command.y: Fix test for EBCDIC to use USE_EBCDIC. + * custom.h: Remove definitions of __builtin_expect. + * eval.c (update_ERRNO_string): Add untested and disabled code for z/OS + to remove leading IBM error codes. This might one day make more of the + tests pass on z/OS. + +2019-02-20 Arnold D. Robbins + + * awk.h (is_valid_identifier): Move declaration outside of + `#if DYNAMIC'. Thanks to Daniel Richard G. + * custom.h (builtin_expect): Remove definitions, now + handled by support/cdefs.h. + +2019-02-17 Arnold D. Robbins + + Fix debugger eval command so that return from a called + user-defined function works. Thanks to Lothar Langer + for the report. + + * awk.h (Op_K_return_from_eval): New opcode. + (parse_program): Add boolean second parameter, `from_eval'. + * awkgram.y (called_from_eval): New variable + (Grammar): Check it for return statements. If true, change the + opcode to Op_K_return_from_eval. + (parse_program): Set called_from_eval to value of from_eval parameter. + * debug.c (pre_execute_code): Change test for Op_K_return to test + for Op_K_return_from_eval. + (do_eval): Call parse_program with second parameter true. + * eval.c (optypetab): Add entry for Op_K_return_from_eval. + * interpret.h (r_interpret): Ditto: can't-happen error. + * main.c (main): Call parse_program with second parameter false. + * NEWS: Updated. + +2019-02-15 Arnold D. Robbins + + * awkgram.y: If profiling, correctly turn `print' into `print $0'. + Thanks to Hermann Peifer for the bug report. + * TODO: Updated. + +2019-02-11 Arnold D. Robbins + + * configure.ac: Update version for next test tarball. + +2019-02-07 Arnold D. Robbins + + * NEWS: Updated. + * config.guess, config.rpath, config.sub: Updated from GNULIB. + +2019-02-05 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add NEWS.1. + +2019-02-04 Arnold D. Robbins + + * NEWS.1: Rotated in from NEWS. + * NEWS: Shortened to start over again with 5.0 changes. + * ext.c (is_valid_identifier): Move outside of ifdefs so that + DJGPP (and other code) can find it. + +2019-02-03 Arnold D. Robbins + + * awkgram.y (snode): Disallow @/.../ as second param of index, also. + * TODO: Updated. + +2019-02-02 Arnold D. Robbins + + * awkgram.c, command.c: Regenerated with Bison 3.3. + * NEWS: Updated. + +2019-02-02 Eli Zaretskii + + * debug.c (execvp) [__MINGW32__]: Redirect to w32_execvp. + (restart): No need for MinGW-specific code anymore. + + * nonposix.h: If setlocale is already a defined macro, #undef it + before redefining. This avoids compilation warnings if someone + tries to compile Gawk with Gettext's libintl.h, which redirects + setlocale to its own function. + Reported by Budi . + + * debug.c [__MINGW32__]: Prototype for w32_execvp. + (restart) [__MINGW32__]: Call w32_execvp instead of execvp. Don't + type-cast d_argv anymore. + +2019-01-27 Arnold D. Robbins + + * awkgram.y (qualify_name): Return duplicated strings. + (yylex): Qualify names before returning either NAME or FUNC_CALL. + (Grammar): Replace qualified_name non-token with NAME, remove + `qualified_name' production. + +2019-01-27 Arnold D. Robbins + + * Makefile.am, NEWS, awkgram.y, cint_array.c, custom.h, debug.c, + eval.c, ext.c, gawkapi.c, int_array.c, interpret.h, nonposix.h, + profile.c, re.c, replace.c, str_array.c, symbol.c: Update + copyright year. + +2019-01-26 Arnold D. Robbins + + * Makefile.am (pc/Makefile.tst): Fix to work for out of tree builds. + +2019-01-25 Arnold D. Robbins + + * main.c (UPDATE_YEAR): Bump to 2019. + (usage): Revise help message a little bit. + * configure.ac: Bump version to start a release spiral. + * NEWS: Updated. + +2019-01-24 Arnold D. Robbins + + * awkgram.y (Grammar): Add new production `qualified_name' which + is NAME + qualification call. Use it everywhere that NAME was + used, except for function parameters. + +2019-01-23 Arnold D. Robbins + + * profile.c (adjust_namespace): Check for all upper case + identifiers so we don't get things like awk::NF. + +2019-01-23 Arnold D. Robbins + + * symtab.c (lookup): Remove second `do_qualify' parameter. + Remove calls to `fix_up_namespace'. If name starts with + "awk::" just lookup the compnent name. + Adjust all calls to `lookup' in other files. + (install): Don't use `fix_up_namespace'. + (fix_up_namespace): Remove function. + * awk.h (lookup): Adjust declaration. + +2019-01-23 Arnold D. Robbins + + * awkgram.y (qualify_name): Don't qualify a name if it's + a parameter. + +2019-01-21 Arnold D. Robbins + + * awkgram.y (Grammar): Use qualify_name for array subscript + expressions. Fixes the last leak in the test suite. + * awk.h (is_all_upper): Declare. + * symbol.c (is_all_upper): Remove static. + * awkgram.y (is_all_upper): Remove. + (Grammar): Clean up `#if 0' code. + +2019-01-20 Arnold D. Robbins + + Restore functionality. + + * awkgram.y (qualify_name): Remove `is_var' param, always check + for all upper case. Adjust all calls. + (Grammar): Do qualify_name for function calls also. + +2019-01-19 Arnold D. Robbins + + Continue fixing memory leaks. + + * awk.h (set_current_namespace): Declare function. + * awkgram.y: Change all assignments of current_namespace to calls + to set_current_namespace. + (is_all_upper, qualify_name): New functions. + (in_function): Change type to bool, and fix usages. + (Grammar): Use qualify_name on variables and function names. + * main.c: Change all assignments of current_namespace to calls + to set_current_namespace. + (set_current_namespace): New function. + * profile.c (pp_namespace): Don't free old current_namespace. Add + comment explaining why. + +2019-01-18 Arnold D. Robbins + + Start fixing memory leaks related to namespaces. + + * awkgram.y (Grammar): At simple_variable -> NAME, qualify names + before lookup/install. + (next_sourcefile): Check if need to free current_namespace before + assigning to it. + (yylex): Fix length of string to be dup'ed before returning + NAME or FUNC_CALL. + (set_namespace): Always free ns->lextok, adjust memory allocations + appropriately. + * main.c (main): Check if need to free current_namespace before + assigning to it. + * profile.c (pp_namespace): Ditto. (This may not be necessary.) + +2019-01-18 Arnold D. Robbins + + * debug.c (do_set_var): Add comments before calls to assoc_set. + * interpret.h (r_interpret): For Op_sub_array, deref the subscript + appropriately. Thanks to Andy Schorr for the catch. + +2019-01-15 Arnold D. Robbins + + * array.c (asort_actual): Use assoc_set in 2 places. + * awk.h (assoc_set): Improve leading comment. + * debug.c (do_set_var): Use assoc_set in 2 places. + * field.c (set_element, update_PROCINFO_str, update_PROCINFO_num): + Use assoc_set in each. + * gawkapi.c (api_set_array_element): Use assoc_set. + * interpret.h (r_interpret): Use assoc_set. + * main.c (init_args, load_environ, load_procinfo_argv): + Use assoc_set in each. + * mpfr.c (do_mpfr_intdiv): Use assoc_set in 2 places. + * str_array.c (str_lookup): Fix leading comment. + * symbol.c (install): Use assoc_set. + +2019-01-15 Andrew J. Schorr + + * builtin.c (do_match, do_intdiv): Remove unused `sub' and `lhs' + variables, since assoc_set is now doing all of the work. + +2019-01-15 Andrew J. Schorr + + * awk.h (assoc_set): Move the definition lower down because it + needs to be after unref is declared. + * builtin.c (do_match): Use assoc_set in 3 places. + (do_intdiv): Use assoc_set in 2 places. + (do_typeof): Use assoc_set in 2 places. + +2019-01-14 Andrew J. Schorr + + * awk.h (assoc_set): Add new inline function to set an array element + to eliminate code duplication and reduce the chance of memory leaks. + +2019-01-14 Andrew J. Schorr + + * builtin.c (do_typeof): Fix memory leak when populating the + optional array, and make sure to call the astore method. + +2019-01-14 Arnold D. Robbins + + * builtin.c (do_intdiv): Add unref of subscripts. + * mpfr.c (do_mpfr_intdiv): Ditto. + Thanks to Andy Schorr for noticing. + +2019-01-09 Andrew J. Schorr + + * awkgram.y (tokentab): Indicate that typeof may take 2 arguments. + (snode): Add support for typeof's optional 2nd array argument. + * builtin.c (do_typeof): Add support for optional 2nd array arg, + returning flag info for scalars and backend array type for arrays. + +2019-01-09 John E. Malmberg + + * awk.h: For non GCC, have __attribute__ definition match + support/regex_internal.h exactly. + +2019-01-08 Arnold D. Robbins + + * interpret.h (r_interpret): For a translatable string, only copy + the gettext return value if it's different from the original. + Otherwise, use the original. + +2019-01-07 Andrew J. Schorr + + Use a struct instead of an array to contain the array methods + for improved code clarity and flexibility. + + * awk.h (array_funcs_t): Define new struct to contain the array + methods. + (NODE): Change type of array_funcs (sub.nodep.l.lp) from `afunc_t *' + to `const array_funcs_t *' (from a pointer to an array of function + methods to a pointer to a struct containing the methods). + (a*_ind): Remove obsolete method array index defines. + (a*): Redefine array methods to use struct members instead of + array elements. + (str_array_func, cint_array_func, int_array_func): Change type + from array of afunc_t to 'const array_funcs_t'. + (register_array_func): Remove global declaration, since this function + is called only inside array.c. + * array.c (null_array_func): Change from array of methods to a struct. + (array_types): Now an array of pointers to array_funcs_t. + (AFUNC): Remove obsolete macro. + (register_array_func): Change scope to static, and change argument + to a pointer to array_funcs_t instead of a pointer to an array of + methods. + (array_init): Modify calls to register_array_func to pass the address + of the new array method structs. + (make_array): Set array_funcs to & null_array_func. + (null_lookup): Modify to use new array method structs. + (assoc_list): Update cint check to use & cint_array_func. + * str_array.c (str_array_func, env_array_func): Change from array of + methods to an array_funcs_t struct. + (env_clear, init_env_array): Set array_funcs to & env_array_func. + * int_array.c (int_array_func): Change from array of methods to an + array_funcs_t struct. + * cint_array.c (cint_array_func): Ditto. + (cint_lookup): When setting xn->array_funcs, must now use &. + (cint_dump): Compare xn->array_funcs to & int_array_func. + +2019-01-06 Andrew J. Schorr + + * array.c (do_delete): If the array is now empty, reset it to the + null implementation to avoid being locked into the backend + optimization previously selected. + +2019-01-06 Andrew J. Schorr + + Remove pointless alength macro/method that uses a needless + function call indirection to access the table_size value. + + * awk.h (alength, alength_ind): Remove these defines, and also renumber + the array_funcs items after that, and use the _ind define to + define instead of repeating the hardcoded numeric value. + (NUM_AFUNCS): Remove unused define. + (assoc_length): Redefine to access table_size directly. + (null_length): Remove prototype. + * array.c (null_array_func): Remove null_length entry. + (null_length): Remove obsolete function. + * cint_array.c (cint_array_func): Remove null_length entry. + * int_array.c (int_array_func): Remove null_length entry. + * str_array.c (str_array_func, env_array_func): Remove null_length + entry. + * gawkapi.c (api_flatten_array_typed): Use the assoc_empty macro to + check for an empty array instead of comparing table_size to 0. + * symbol.c (lookup, check_param_names): Ditto. + +2018-12-31 Arnold D. Robbins + + Clean up namespace handling for the profiler. + + * awkgram.y (make_pp_namespace): Remove function, not needed. + (set_namespace): Use estrdup to save the current namespace. + * main.c (main): Before dumping the program, set current_namespace + to awk_namespace. + * profile.c (pprint): Use "awk" for comparison, not "awk::". + (pp_namespace): Just print the name in the @namespace line. + (adjust_namespace): Adjust for the fact that namespaces no longer + have the trailing "::". + +2018-12-30 Arnold D. Robbins + + * awk.h (check_qualified_name): Remove declaration. + * awkgram.y (check_qualified_special): Renamed from + check_qualified_name and made static. + * profile.c (pprint): Improve comment on namespace list. + +2018-12-21 Arnold D. Robbins + + * configure.ac: Remove -O only if .developing has 'debug' in it. + +2018-12-18 Arnold D. Robbins + + * Makefile.am (distclean-local): Remove .deps directory. + +2018-12-14 Arnold D. Robbins + + * config.guess: Updated from GNULIB. + +2018-12-12 Arnold D. Robbins + + * TODO: Updated. + +2018-12-12 Andrew J. Schorr + + * configure.ac (AC_CHECK_FUNCS): Check for timegm. + * builtin.c (mktime_tz): Remove function; we will use timegm instead. + (do_mktime): Replace 'mktime_tz(& then, "UTC+0")' with 'timegm(& then)'. + * protos.h (timegm): Add timegm proto on systems lacking it. + * replace.c (timegm): Include missing_d/timegm.c if needed. + +2018-12-12 Arnold D. Robbins + + * NEWS: Updated some. + +2018-12-12 Arnold D. Robbins + + * awk.h: Add new Op_K_namespace opcode for pretty printing. + * awkgram.y (namespace_chain): New variable, list of successive + @namespace directives seen, for the pretty printer. + (namespace_comment): Removed. + (set_namespace): Takes comment as second argument, builds the chain. + (mk_function, append_rule): Adjust to store the chain. + * debug.c (print_ns_list): New function. + (print_instruction): Adjust Op_rule and Op_func to use print_ns_list. + Add case for Op_K_namespace. + * eval.c (optable): Add entry for Op_K_namespace. + (opcode2str, op2str): Edit / add leading comments, respectively. + * profile.c (pp_namespace_list): New function. + (pprint): Adjust code to call pp_namespace_list. + +2018-12-06 Arnold D. Robbins + + * configure.ac: Add -ggdb3 to CFLAGS if developing and remove + -O2 from Makefile, extension/Makefile, and support/Makefile. + * config.guess, config.sub: Updated from GNULIB. + +2018-12-06 Arnold D. Robbins + + * awkgram.y (namespace_comment): New variable. + (Grammar): Handle comments after @namespace statements. + (mk_function): Add any comment onto the saved namespace. + (append_rule): Ditto. + * profile.c (pp_namespace): Add second argument for a comment. + Adjust all calls. + +2018-12-02 Arnold D. Robbins + + * awkgram.y (mk_program): Add in leading and trailing comments + when program block is empty. + +2018-11-29 Arnold D. Robbins + + * awkgram.y (first_rule, func_first): Remove unused variables. + (Grammar): Simplify rule for range pattern. + +2018-11-28 Arnold D. Robbins + + * awkgram.y (debug_print_comment): New macro and function. + (load_library): Rework to not try to open the file if pretty printing. + (append_rule): Adjust handling of interblock_comment. + +2018-11-27 Arnold D. Robbins + + * awkgram.y (Grammar): In rule for function, set interblock_comment. + (mk_function): Hook interblock_comment onto fi->comment, merge it + with the existing one first, if any. Append trailing_comment. + +2018-11-26 Arnold D. Robbins + + * main.c (platform_name): Add os390. Treat Cygwin and Mac OS X + as POSIX, per discussion with the dev team. + + Unrelated: + + * profile.c (print_comment): Indent for chained comment. + * awkgram.y (load_library): Return early if just pretty printing. + (yylex): Fix handling of ?: and allow_newline etc. + +2018-11-25 Arnold D. Robbins + + * main.c (platform_name): New function returning platform name. + (load_procinfo): Use `platform_name()' to add "platform" element. + Thanks to Eli Zaretskii for the suggestion. + * NEWS: Updated with info about PROCINFO["platform"]. + +2018-11-25 Arnold D. Robbins + + * config.sub: Updated from GNULIB. + +2018-11-24 Arnold D. Robbins + + * awkgram.y (interblock_comment, pending_comment): New variables. + (Grammar, mk_program, add_rule): Adjust to use them. Changes + handle comments at the outermost level, between blocks and functions. + +2018-11-24 Arnold D. Robbins + + * main.c (arg_assign): Allow assigning strongly typed regexp + constants to variables on the command line and with -v. + Thanks to Peng Yu for the report. + +2018-11-17 Arnold D. Robbins + + * awkgram.c, command.c: Updated to Bison 3.2.1. + * NEWS: Updated. + * Makefile.am (pc/Makefile.tst): Make it work for out-of-tree + builds. Thanks to `make distcheck' for the report. + +2018-11-17 Arnold D. Robbins + + * config.guess: Updated from GNULIB. + +2018-11-11 Arnold D. Robbins + + * main.c (usage): Improve output for -Z in the help. +2018-11-11 Arnold D. Robbins + + * awkgram.y (outer_comment): New variable. + (Grammar): More changes. We now get the simple case of leading + and trailing comments, but not all the cases. + +2018-11-11 Arnold D. Robbins + + * awkgram.y (trailing_comment): New variable. + (Grammar): For `action', append both trailing comments. This may + change. For `statements', append the value of `trailing_comment' + if set. At `statement := l_brace statements rbrace' save + trailing_comment from r_brace. + (make_braced_statements): Don't append the comment from r_brace + to the statement list. + +2018-10-30 Arnold D. Robbins + + * awk.h (NODE): New field: sub.nodep.x.cmnt, holds comment for + expressions being pretty-printed. + * awkgram.y (Grammar): For expression lists, save any comment + that came after a comma in the list. + * profile.c (pp_push): Accept a fourth argument which is any + comment associated with the expression. Either it's there or + it's NULL. Save it in the pp_comment field of the node being pushed. + (tabs, tabs_len, check_indent_level): Made into static globals. + (pprint): Adjust all calls to pp_push(). Fix parenthesization + for casts in string lengthes when indenting. + (pp_list): If a popped item has a comment, include it and the + following indentation in the formatted result. + +2018-10-28 Arnold D. Robbins + + * awkgram.y (include_source): Add second parameter to return + SRCFILE pointer. + (Grammar): For @include, save the comment for later dumping + along with the list of include files. + (make_include_comment): Removed. No longer used. + * profile.c: Update copyright year. + (print_include_list): New function. + (dump_prog): Call it. + +2018-10-24 Arnold D. Robbins + + * main.c (usage): Improve output for -Y and add -Z in the help. + +2018-10-23 Arnold D. Robbins + + * config.sub: Updated from GNULIB. + +2018-10-20 Arnold D. Robbins + + * awk.h (SRCFILE): Add comment field for comments on @load statements. + * awkgram.y (include_source): Type change to boolean. + (load_library): Type change to boolean, additiona parameter to + bring the SRCFILE struct up to where we can add the comment into it. + (make_include_comment): New function. Not used yet. + (Grammar): Add comment for @load statements. Start on preserving + @include statements and their comments for eventual inclusion + into the pretty-printed code. + * profile.c (print_lib_list): Made a little smarter about printing + the header and indentation. Print the comment if there is one. + +2018-10-17 Arnold D. Robbins + + * awk.h (commenttype): Add FOR_COMMENT. + * awkgram.y (Grammar): Handle all the opt_nls cases in + regular for statements. + * debug.c (print_instruction): Print the comments in Op_K_for. + * profile.c (pprint): Handle printing comments. + +2018-10-17 Arnold D. Robbins + + * NEWS: Updated. + * awkgram.y (Grammar): Distinguish `print' and `print $0' in + what gets profiled / pretty-printed. + * profile.c (pprint): For case and default, add final newline + if there is no comment to print. + +2018-10-16 Arnold D. Robbins + + * awkgram.y (Grammar): Improve comment handling for many plain + statements. Improve handling for case and default. + Handle comments in `for (iggy in foo)' loops. + (yylex): After a colon, only allow newline if was part of ?:. + (merge_comments): Improve coding so we don't get two newlines + at the end of a merged comment. + * debug.c (print_instruction): Handle comments for case and default. + Simplify printing of comments. + * profile.c (pprint): Handle comments for case and default. + Remove compiler warning in Op_and/Op_or handling. + +2018-10-14 Arnold D. Robbins + + * awkgram.y (Grammar): Add comment handling for do...while. + Regularize comments about `else ...'. + * debug.c (print_instruction): Improve handling of comments for + do-while and switch, and in general. + * profile.c (pprint): Revise for do...while. + +2018-10-10 Arnold D. Robbins + + * awkgram.y (make_braced_statements): New function. + (Grammar): Use it in the right places instead of inline code. + * debug.c (print_instruction): For Op_comment, fix type string. + * profile.c (pprint): Move tabs and tabs_len to top of function. + For Op_and and Op_or, handle comments. Use new check_indent_level + for Op_and, Op_or and Op_cond_exp. + +2018-10-10 Arnold D. Robbins + + * debug.c (print_instruction): For Op_comment, use print_func + instead of fprintf to print the comment type. + +2018-10-10 Arnold D. Robbins + + * awkgram.y (Grammar): For statement -> { statements }, fix comment + handling. For `if' statement add comment support. + * profile.c (pp_print): Print comments associated with `if' and `else'. + +2018-10-09 Arnold D. Robbins + + * awkgram.y (Grammar): Fix handling of empty statement (just a semi- + colon). + (merge_comments): If no chained comment and no second comment, + just return early. + +2018-10-09 Arnold D. Robbins + + * awk.h (enum commenttype): New enum. + (NODE): Add it to sub.val. + (EOL_COMMENT, FULL_COMMENT): Replaced with above enum values. + * awkgram.y (Grammar): Finish up handling comments in function headers + and bodies. Get trailing comments at end of program + (get_comment): When doing comments, if we got EOF, push it back so that + multiple comments get merged together. + (merge_comments): Allow second parameter to be NULL. + * profile.c (pp_print): Change to use above enum everywhere. For + Op_K_print_rec produce plain `print' instead of `print $0'. Handle + comments in ?:. Handle printing function comments. + (print_comment): Simplify `after_newline' assignment. Add assertion + that chaining is only two deep. + +2018-10-06 Arnold D. Robbins + + * awkgram.y (action): Improve handling of comments attached + to braces. Helps with function bodies. + +2018-10-04 Arnold D. Robbins + + * awkgram.y (merge_comments): Change return type to void. Adjust calls. + (Grammar): For action, pull comments out of braces and stick + into the list. For function_prologue, get comments from parameters + and ending newline, merge, and save. Wherever nls and opt_nls + are used, be sure to pass their values up via $$. For various + cases that can be empty, explicitly set $$ = NULL. + * profile.c (pprint): Get switch working. Get ?: working. + (print_comment): Print any chained comment. + (pp_func): Start revising. + +2018-10-03 Arnold D. Robbins + + * awkgram.y: Range expressions, enable comment stuff. + Switch statement: start on comment handling. + +2018-10-01 Nelson H.F. Beebe + + * custom.h (__builtin_expect): Define for non-GNU compilers. + +2018-09-27 Andrew J. Schorr + + * mpfr.c (force_mpnum): Check that base is 10 also before + computing MPG integer. Found based on bug report from + Luu Vinh Phuc . + +2018-09-26 Arnold D. Robbins + + Add more lint checks. + + * awk.h (POP_ARRAY): Add boolean parameter to check for untyped + value and include lint warning. + * interpret.h (r_interpret): Adjust all calls to POP_ARRAY. + * field.c (do_split): Improve lint warning text for empty + third argument. + * re.c (make_regexp): Add lint check for '\0' in contents of + regexp to be matched (dynamic or otherwise). + +2018-09-23 Steven Packard + + * awk.h: Add `#if !defined(__SUNPRO_C)' around check for non-ANSI + compilers. Needed for some Solaris systems. + +2018-09-21 Arnold D. Robbins + + * awk.h (INSTRUCTION): Add comment field to carry + comment around during parsing. + * awkgram.y (merge_comments): New function. + (split_comment, check_comment, comment, prior_comment, + comment_to_save, program_comment, function_comment, + block_comment): Removed. + (grammar): Remove old code and start passing the comment + up via yylval and the newlines in the grammar. + +2018-09-21 Arnold D. Robbins + + * awkgram.y: Undo change of 2016-11-28 to make switch + head a separate production, in preparation for revamping + comment handling. + +2018-09-21 Arnold D. Robbins + + * re.c (make_regexp): Handle backslash at end of + input string. Thanks to Anatoly Trosinenko + for the report. + Also, improve the error message when compilation of + the regexp fails. + +2018-09-21 Arnold D. Robbins + + * io.c (fork_and_open_slave_pty): Move an errant close brace + inside the #endif so that gawk will compile on AIX. Thanks to + Fredrik Laurin for the report. + +2018-09-18 Arnold D. Robbins + + * NEWS: Fix typo in gettext version. + + Unrelated: + + * field.c (get_field): Move lint check for field access in an + END rule to top level, make wording more general. + * builtin.c (do_print_rec): Restore check before calling get_field() + and add do_lint to the condition. + + Unrelated: + + * field.c (set_NF): Add lint warning if decrementing NF, which + doesn't work on older Unix awks. + + Unrelated: + + * config.rpath: Sync to GNULIB. + +2018-09-16 gettextize + + * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.19.8. + * ABOUT-NLS, config.rpath: Updated by gettext 0.19.8.1. + +2018-09-16 Arnold D. Robbins + + * field.c (get_field): Add lint check if accessing $0 inside + an END rule, print a "may not be portable" warning. + * builtin.c (do_print_rec): Call get_field() unconditionally + in order to do lint check. + + Unrelated: + + * awkgram.c, command.c: Updated to Bison 3.1. + * NEWS: Updated. + + Unrelated: + + * Makefile.in, aclocal.m4, configure: Regenerated, using + Automake 1.16.1. + + Unrelated: + + * gettext.h: Synced with that from Gettext 0.19.8.1. + +2018-09-14 Adrian Bunk + + * awk.h (init_debug, debug_prog): Move prototypes to here from ... + * main.c: ... here. + Thanks to Michael Tautschnig for noticing the type mismatch. + +2018-09-07 Arnold D. Robbins + + * awkgram.y, debug.c, ext.c, gawkapi.c, gawkapi.h, + io.c: Remove unneeded \n in calls to warning(), fatal(), + and lintwarn(). + * config.guess, config.sub: Updated from GNULIB. + +2018-08-24 Arnold D. Robbins + + * NEWS: Updated w.r.t. GNULIB regex routines. + * config.sub: Updated from GNULIB. + +2018-08-17 Arnold D. Robbins + + * config.sub: Updated from GNULIB. + +2018-08-10 Arnold D. Robbins + + * config.guess, config.sub: Updated from GNULIB. + +2018-08-05 John E. Malmberg + + * custom.h: Define macros needed for building with gnu regex. + +2018-08-02 Arnold D. Robbins + + * awkgram.y (yylex): Add lint warning upon encountering escaped + physical newlines in a string. + * node.c (make_str_node): Ditto. + +2018-08-01 John E. Malmberg + + * custom.h: Include fp.h on OpenVMS. + Workaround for bug in math.h missing some declarations. + +2018-07-31 Arnold D. Robbins + + * interpret.h (unfield): Add a call to force_string() on + new value. See test/assignnumfield.awk. Thanks to + Ralph Corderoy for the bug report. + +2018-07-31 Arnold D. Robbins + + Handle newlines in -v and fix \-. Thanks to + Samy Mahmoudi for the report. + + * awk.h [ELIDE_BACK_NL]: New constant. + * awkgram.y (yylex): Disallow any physical newlines in a string + even if escaped, in POSIX mode. + * main.c (arg_assign): In POSIX mode disallow physical newline + in a -v value. Otherwise call make_str_node() with ELIDE_BACK_NL. + * node.c (make_str_node): Handle ELIDE_BACK_NL. + +2018-07-31 Arnold D. Robbins + + * array.c (cmp_strings): Preserve value of lmin so it can be passed + to memcmp() if IGNORECASE comparison failed. Thanks to + M. Rashid Zamani for the report. + +2018-07-27 Arnold D. Robbins + + * re.c (make_regexp): Add warnings for unknown escape sequences, + similar to what we already do for strings. + * awkgram.y: Add lint warning about concatenation as target + of `>' redirection. Always use Op_parens so that + print "foo" > ("foo" 1) does not warn. + +2018-07-26 Arnold D. Robbins + + * awk.h (_GNU_SOURCE): Don't define it here, it's already + done in config.h. + +2018-07-13 Arnold D. Robbins + + * builtin.c (format_nan_inf): New function to generate +nan, -nan, + +inf, -inf, so that gawk output for NaN and INF always has a sign. + Handles regular and MPFR. + (out_of_range): New function to check if a value is out of range, + both regular and MPFR. + (format_tree): Use them in out of range calculation. Check for out + of range in floating point formats also. Allow new *undocumented* + 'P' flag to not do out of range formantting. Used mainly for + the test program. + * awk.h (out_of_range, format_nan_inf): Declare functions. + * mpfr.c (mpg_format_val): Check for out of range and format the + the result appropriately if so. + * node.c (r_format_val): Ditto. + +2018-06-27 Arnold D. Robbins + + * config.guess, config.sub: Updated from GNULIB. + +2018-06-22 Andrew J. Schorr + + * node.c (r_force_number): If strtod returns ERANGE, accept the + value as being numeric instead of forcing it to zero. The impact + is that huge string values that overflow IEEE 754 limits will now + be converted to inf or -inf instead of 0. Thanks to Daniel + Pettet for reporting this issue. + +2018-06-17 Arnold D. Robbins + + Fix a corner case with EPIPE to stdout/stderr. + Thanks to Peng Yu for the report. + + * io.c (close_io): Add new parameter for indicating EPIPE happened, + update the code to set it if so. + * awk.h (close_io): Revise declaration. + * debug.c (close_all): Change call to close_io(). + * interpret.h (interpret): For Op_atexit, if got an EPIPE, call + die_via_sigpipe(). + +2018-05-24 Arnold D. Robbins + + * awkgram.y (add_lint): For no-effect case, also check for + Op_push_i. Makes statements consisting of a single constant + trigger the warning. + +2018-05-23 Arnold D. Robbins + + * config.guess, config.sub: Updated from GNULIB. + +2018-05-14 Arnold D. Robbins + + * NEWS: Minor edits. + +2018-05-13 Arnold D. Robbins + + * config.sub: Update from GNULIB. + +2018-05-03 Arnold D. Robbins + + * Makefile.am (pc/Makefile.tst): New target. + (dist-hook): Now depends upon pc/Makefile.tst. + +2018-04-30 Arnold D. Robbins + + * gawkapi.h [dl_load_func]: Minor improvement in version mismatch + message as suggested by Manuel Collado + . + +2018-04-18 Arnold D. Robbins + + * config.sub: Updated from GNULIB. + +2018-04-14 Manuel Collado + + * field.c (reset_record): Disable fieldwidth from API + get_record() if $0 is explicitly assigned a new value. + +2018-04-02 Arnold D. Robbins + + * config.guess, config.sub, install-sh: Updated from GNULIB. + +2018-04-01 Arnold D. Robbins + + Fix a nasty MPFR bug in r_dupnode. If the value being copied + is MPFN / MPFR, copy those bits over too. Thanks to + Noah Dean for the report. + + * node.c (r_dupnode): Check for MPFN / MPFR and copy the bits + over as needed. + + Unrelated: + + * interpret.h (UNFIELD): Turn into an inline function and + let UNFIELD macro call it, allows stepping in with a debugger. + (unfield): Function holding former body of UNFIELD macro. + +2018-03-26 Arnold D. Robbins + + Remove the tail recursion optimization. It's fundamentally + broken, in the case where a local var becomes a parameter. + Thanks to Denis Shirokov for the report. + See test/tailrecurse.awk. + + * awk.h [num_tail_calls, tail_call]: Remove definitions. + * awkgram.y (grammar, mk_function): Remove code related to + the tail recursion optimization. + * eval.c (dump_fcall_stack): Adjust dumping code since no longer + looping through tail call recursion. + (setup_frame): Remove code related to the tail recursion optimization. + (init_interpret): Ditto. + +2018-03-22 Arnold D. Robbins + + * configure.ac: Check for %a support in system printf. + * builtin.c (format_tree): Add support for %a and %A, including + a lint warning. + * NEWS: Add a note about %a support. + +2018-03-13 Arnold D. Robbins + + * debug.c, nonposix.h: Update copyright year. + +2018-03-11 Arnold D. Robbins + + * compile, config.guess, config.sub, configure.ac, depcomp, + install-sh, mkinstalldirs: Updated. + +2018-03-05 Arnold D. Robbins + + * awk.h [PUSH_BINDING, POP_BINDING]: Moved to ... + * debug.c: here. + * awkgram.y (yylex): Make do_etoa_init into a boolean. + * io.c (rs1scan): Make found into a boolean. + +2018-02-25 Arnold D. Robbins + + * 4.2.1: Release tar ball made. + +2018-02-25 Arnold D. Robbins + + * config.guess, config.sub: Updated. + +2018-02-23 Arnold D. Robbins + + * configure.ac: Restore checking for PPC Macintosh before + checking for MPFR. See README_d/README.macosx for info. + +2018-02-21 Arnold D. Robbins + + * configure.ac: Remove checking for PPC Macintosh before + checking for MPFR. Installing a newer compiler on that + system allows things to work. + +2018-02-19 Arnold D. Robbins + + * gawkapi.h, io.c, msg.c: Update copyright year. + +2018-02-10 Arnold D. Robbins + + * main.c, msg.c: Add a call to fflush(NULL) before each call + to abort(), since GLIBC 2.27 doesn't necessarily flush before + aborting. Thanks to Nelson H.F. Beebe for the report. + +2018-02-09 Arnold D. Robbins + + * io.c (socketopen): Rearrange assigning the flags to use + AI_ADDRCONFIG only if family is AF_UNSPEC. Thanks to + Houder for the report and initial + code suggestion. + +2018-02-07 Andrew J. Schorr + + Print +"01" should print "1", not "01". + * interpret.h (Op_unary_plus): Need to make a new number node that does + not contain the original string representation. The logic is copied + from Op_unary_minus. + * mpfr.c (mpg_interpret): Add new case for Op_unary_plus based on + the Op_unary_minus logic. We need a fresh number node that does not + contain the string. + +2018-01-28 Arnold D. Robbins + + * config.guess, config.sub: Updated. + +2018-01-25 Arnold D. Robbins + + * main.c (main): Add explanatory comment about O_APPEND stuff. + * NEWS: Updated. + +2018-01-22 Arnold D. Robbins + + Fix the inplace tests on *BSD systems. + + * main.c (main): Add O_APPEND flag to fileno(stderr). + +2018-01-17 Arnold D. Robbins + + * builtin.c (do_isarray): Check that tmp is Node_var + before calling DEREF. Thanks to Denis Shirokov + for the report. + +2018-01-15 Arnold D. Robbins + + * NEWS: Small typo fix. + * config.sub: Updated. + * io.c (fork_and_open_slave_pty): Rationalize down to one + function with two bodies. + (set_slave_pty_attributes, push_pty_line_disciplines): Move + into #ifdef for TERMIOS_H. Helps out with VMS compiling. + +2018-01-12 Arnold D. Robbins + + * gawkapi.h: Remove extraneous '*' on parameters of + type awk_ext_id. Thanks to Andrew Schorr for the report. + +2018-01-11 Arnold D. Robbins + + * compile, config.guess, config.rpath, config.sub, + depcomp: Updated from GNULIB. + +2018-01-08 John E. Malmberg + + * io.c (set_slave_pty_attributes): Currently no termios on VMS. + (set_slave_pty_attributes): No fork on VMS. + +2018-01-04 Arnold D. Robbins + + Refactor handling of slave pty. On AIX and HP-UX open + slave in the child. Otherwise open slave in the parent + before forking (restoring code mostly from 4.1.3). Thanks + to Andrew Schorr for the bug report. + + * io.c (fork_and_open_slave_pty): New routine. Two versions. + (set_slave_pty_attributes): New routine. Common code used by + both versions of fork_and_open_slave_pty. + (push_pty_line_disciplines): New routine. Common code used by + both versions of fork_and_open_slave_pty. + (two_way_open): Call fork_and_open_slave_pty instead of + doing it inline. + +2018-01-03 Arnold D. Robbins + + * main.c (UPDATE_YEAR): Move to 2018. Revise copyright year. + * NEWS: Bring up to date. + +2018-01-02 Arnold D. Robbins + + If ROUNDMODE changes, cause cached string conversions + to become invalid. Thanks to Nethox + for the report. Day 1 bug from 4.1.0 release. + + In all the below files, bump copyright year, too. + + * array.c (value_info): Include strndmode in the output. + * awk.h (NODE): New member, strndmode. + (MPFR_round_mode): Add extern declaration. + (force_string_fmt): Check s->strnmode against MPFR_round_mode. + * awkgram.y (set_profile_text): Set n->strndmode to MPFR_round_mode. + * builtin.c (do_print): Remove tests and just call force_string_fmt. + * field.c (set_record): Set n->strndmode to MPFR_round_mode. + * gawkapi.c (api_sym_update_scalar): Set r->strndmode to + MPFR_round_mode. + * interpret.h (r_interpret): For Op_assign_concat, set t1->strndmode + to MPFR_round_mode. + * mpfr.c (MPFR_round_mode): Define and initialize. + (mpfr_format_val): Set s->strndmode to MPFR_round_mode. + (set_ROUNDMODE): Update MPFR_round_mode when ROUNDMODE changes + successfully. + * node.c (r_format_val): Set s->strndmode to MPFR_round_mode. + (make_str_node): Set r->strndmode to MPFR_round_mode. + * str_array.c (str_kilobytes): Update a comment. + * symbol.c (check_param_names): Set n.strndmode to MPFR_round_mode. + +2017-12-24 Arnold D. Robbins + + Avoid some compiler warnings. Thanks to Michal Jaegermann + for the report. + + * builtin.c (do_strftime): Initialize save. + (do_dcgetttext): Initialize save and save2. + (do_dcngettext): Ditto. + (do_bindtextdomain): Initialize save and save1. + + Unrelated: + + * main.c (optlist): Make 'L' option's argument optional, to + match --lint. Thanks to Manuel Collado + for the report. + +2017-12-22 Arnold D. Robbins + + * config.guess, config.sub, depcomp, install-sh: Updated + from GNULIB. + +2017-12-20 Arnold D. Robbins + + * configure.ac: Add --enable-versioned-dir option for a + directory with API version in it to hold extensions. + +2017-12-19 Arnold D. Robbins + + * configure.ac: Remove x's from `test "x$something" = "xyes" + kinds of things. With correct quoting, the x isn't needed. + (DYNAMIC): Remove use of -Wl,-export-dynamic on Linux + and FreeBSD. It was needed for old-style extensions, which are + no longer supported. + +2017-12-10 Arnold D. Robbins + + * awkgram.y: For '!' optimization on a string constant, don't + apply the optimization if it's a translatable string. Thanks + to Jeremy Feusi for the report. + +2017-11-25 Andrew J. Schorr + + * debug.c (do_set_var): As in interpret.h (Op_store_field), we should + call the assign function before unref to give it a chance to copy + any non-malloced $n string values before freeing $0. + +2017-11-14 Andrew J. Schorr + + * mpfr.c (get_rnd_mode): Fix MPFR_RNDA comment. + +2017-11-14 Andrew J. Schorr + + Fix corruption when $0 is reassigned while other NODEs have open + references to $n. Thanks to Eric Pruitt for + the bug report. + + * field.c (purge_record): For each $n field variable, if valref > 1 + and it has not already been malloced, make a copy of the string, since + $0 is about to be reset. + * interpret.h (Op_store_field): We must call the assign function + before unref, since we must copy any non-malloced $n string values + before freeing $0. + +2017-11-09 Arnold D. Robbins + + * main.c (usage): Add a note to not post bugs in comp.lang.awk. + So there. + +2017-11-08 Arnold D. Robbins + + * gawkapi.h (AWK_NUMBER_TYPE): Move this enum out to the + top level so that it works correctly with C++. + +2017-10-24 Arnold D. Robbins + + * NEWS: Updated with info about OS/2. + +2017-10-21 Arnold D. Robbins + + * awkgram.y: For string concatenation, don't fold constants + if one or the other is translatable. Thanks to Harald van Dijk + for the report. + +2017-10-21 KO Myung-Hun + + * nonposix.h [__KLIBC__]: Include dlfcn.h, declare os2_dlsym, and + redirect dlsym to os2_dlsym. Declare os2_fixdllname. Declare + os2_dlopen and redirect dlopen to os2_dlopen. + * io.h (find_source) [__EMX__]: Truncate extension file basename + to 8 characters. + +2017-10-19 Arnold D. Robbins + + * 4.2.0: Release tar ball made. + +2017-10-17 Andrew J. Schorr + + * NEWS: Actually, isarray is not deprecated in this release. + * builtin.c (do_isarray): Remove lint warning deprecating isarray. + +2017-10-14 Arnold D. Robbins + + * field.c (do_split): Simplify the lint warnings. + Based on suggested code by Eric Pruitt . + + Unrelated: + + * awkgram.y (check_funcs): Remove the REALLYMEAN ifdef and + simplify the lint checking code for function defined but not + called or called but not defined. + +2017-10-13 Arnold D. Robbins + + Assume a more C99 environment: + + * awk.h: Assume we have limits.h, stdarg.h and stdbool.h. + * configure.ac: Remove checks for limits.h and stdarg.h. + +2017-10-10 Arnold D. Robbins + + * configure.ac: Remove --with-whiny-user-strftime option. + * NEWS: Updated. + * ChangeLog.0: Fix a typo. :-) + +2017-10-08 Arnold D. Robbins + + * command.y: Fix the FSF's address. + +2017-10-08 Arnold D. Robbins + + * NEWS: Rationalized with respect to stuff on the API. + Also rationalized with respect to the pretty printer changes. + +2017-10-04 Andrew J. Schorr + + * README: Fix grammar by removing a stray word. + +2017-10-04 Arnold D. Robbins + + * NEWS: Add a note about OS/2 not working. + +2017-10-02 Arnold D. Robbins + + Undo change of 2014-09-07: + + * configure.ac: Remove the undocumented option to enable locale + letters in identifiers. + * awkgram.y (is_alpha): Remove related code. + +2017-10-02 Arnold D. Robbins + + * config.guess, config.sub: Updated. + +2017-09-28 Arnold D. Robbins + + * io.c (devopen): Move declaration of `cp' to where it's first used. + +2017-09-18 Arnold D. Robbins + + * README: Update required version of texinfo.tex. + * compile, config.guess, config.sub, depcomp: Updated. + +2017-09-17 Arnold D. Robbins + + * gawkapi.h: Small changes to make it usable with C++. + +2017-09-13 Arnold D. Robbins + + * Makefile.am (command.c): Don't need the dependency on awkgram.c + anymore. + * bisonfix.awk: Removed. + * README: Revised to describe use of Bison exclusively. + +2017-09-13 Andrew J. Schorr + + * Makefile.am (awkgram.c): Use -o option to bison. Get rid of + messing with y.tab.h, that was obsolete. + (EXTRA_DIST): Don't need bisonfix.awk anymore. + +2017-09-12 Petr Ovtchenkov + Andrew J. Schorr + + * Makefile.am (command.c): Make dependant on awkgram.c so + that bison is run serially with make -j. Use -o option so + that we no longer need bisonfix.awk in this rule. + +2017-08-28 Arnold D. Robbins + + * interpret.h (r_interpret): Add some casts to avoid warning + messages in printf statements. + + Unrelated: + + * configure.ac: Add check for gai_strerror. + * io.c (socketopen): Use gai_strerror to add more information + if getaddrinfo fails. + +2017-08-25 Pat Rankin + + * builtin.c (TYPE_MINIMUM): Use type uintmax_t for the calculation, + deferring the cast to the target type until the final result. + +2017-08-27 Juan Manuel Guerrero + + * mbsupport.h [__DJGPP_]: Provide multi-byte specific declarations + and definitions for DJGPP. + +2017-08-23 Arnold D. Robbins + + * README.git: Minor edits to make build steps clearer. + +2017-08-21 Daniel Richard G. + + * awk.h (c_func): Renamed to c_function to avoid conflict. + with z/OS headers. + * ext.c, interpret.h: Ditto. + * configure: Regenerated after update to m4/arch.m4. + +2017-08-18 Arnold D. Robbins + + * debug.c (do_set_var): Fix typos in error messages. + Thanks to Jean-Philippe Guerard + for the report. + +2017-08-17 Arnold D. Robbins + + * field.c (rebuild_record): Set new fields valref to 1 if + original field's valref was > 1. Update the comment. Found + by running chem. + * mpfr.c (do_mpfr_compl): Fix typo in warning message. + Thanks to Jean-Philippe Guerard + for the report. + * NEWS: Mention the Italian translation of the manual. + +2017-08-16 Arnold D. Robbins + + * gawkapi.c (assign_number): Clean up the code a bit. + (api_get_mpfr, api_get_mpz): Add return NULL in non-MPFR case + to avoid compiler warnings. + +2017-08-16 Arnold D. Robbins + + * config.guess: Update from GNULIB. + * NEWS, README: Updated in preparation for release. + +2017-08-16 Andrew J. Schorr + + * gawkapi.c (assign_number): Add 'ifdef HAVE_MPFR' tests to get this + to build in the absence of MPFR. + +2017-08-13 Arnold D. Robbins + + * gawkapi.h (gawk_api_major_version): Reset to 2 after merging + in feature/api-mpfr branch. + * NEWS: `intdiv' is not built-in; remove the entry for up and update + numbering. Add note about API supporting GMP and MPFR values. + +2017-08-09 Arnold D. Robbins + + * gawkapi.h (check_mpfr_versions): Define differently based on if + MPFR version macro is defined. Enhance body to use do/while(0). + (dl_load): Call check_mpfr_versions unconditionally. + +2017-08-09 Arnold D. Robbins + + * main.c (usage): Add URL for Bug reporting info to the help message. + + Unrelated: + + * str_array.c (str_lookup): Make a copy of the string if it + came from Nnull_string or a null field. Thanks to + Daniel Pettet for the report. + +2017-08-04 Arnold D. Robbins + + * array.c, awk.h, awkgram.y, builtin.c, cint_array.c, + cmd.h, debug.c, eval.c, ext.c, field.c, gawkapi.c, gawkmisc.c, + gettext.h, int_array.c, main.c, mpfr.c, msg.c, node.c, profile.c, + re.c, str_array.c, symbol.c: Update copyright years. + +2017-08-04 Arnold D. Robbins + + * config.guess, mkinstalldirs: Updated from GNULIB. + +2017-08-01 Juan Manuel Guerrero + + Bring DJGPP support up to speed. + + * awk.h: Add DJGPP in #if for include of nonposix.h + * nonposix.h (btowc, putwc): Add declarations for DJGPP. + +2017-07-26 Arnold D. Robbins + + * awk.h (validate_qualified_name): Return type back to bool. + * awkgram.y (validate_qualified_name): Return type back to bool. + (lookup_builtin): Make allowances for `awk::' prefix on name. + * interpret.h (r_interpret): For indirect call, always pass true + for do_qualify argument of lookup. + * main.c (main): Make note of errors in -v values, use this + to exit failure if any happen. Only change current_namespace + to 'awk::' if doing pretty printing. + (arg_assign): If validate_qualified name returns false, error out. + +2017-07-26 Arnold D. Robbins + + * awkgram.y (set_namespace): Change return type void, adjust + all return statements. + [@namespace]: Don't YYABORT on bad namespace so that we can check + the rest of the program. + (validate_qualified_name): Check traditional / posix first. Return + after printing an error message; we don't want to print multiple + messages for the same identifer. + * interpret.h (r_interpret): For indirect call, set do_qualify + parameter of lookup based on presence of a colon. + +2017-07-20 Arnold D. Robbins + + Make qualified names work with -v and command-line assignments. + + * awk.h (validate_qualified_name, check_qualified_name): Declare. + * awkgram.y (validate_qualified_name): No longer static. + (check_qualified_name): Ditto. + * main.c (arg_assign): Allow colons in identifiers. If not a + bad identifier, call validate_qualified_name and instead of + check_special use check_qualified_name. + +2017-07-17 Arnold D. Robbins + + Allow identifiers that are gawk extensions to be used as plain + identifiers outside the "awk" namespace. Make the real + builtins available via awk::builtin_name(). Standard awk reserved + words and builtin functions remain reserved. + + * awk.h (getfname): Add boolean parameter to prepend namespace + or not. + * awkgram.y (check_qualified_name): New function. Enforces that + standard awk reserved words and functions aren't allowed, and + allows awk::gawk_extension from non-"awk" namespace. + [direct_func_call]: Always convert name to fully qualified. + (getfname): Add boolean parameter to prepend namespace + or not. Adjust code. + (yylex): Separate out validation code from code building the + NAME token. Use check_qualified_name to decide if token is + special instead of check_special. + (validate_qualified_name): Just checks the form of the fully + qualified name. + * debug.c (print_instruction): Update call to getfname. + * profile.c (pprint): Update call to getfname. + +2017-07-17 Arnold D. Robbins + + * awkgram.y [direct_func_call]: Save full variable name for + indirect calls too. + +2017-07-17 Arnold D. Robbins + + * awkgram.y [non_post_simp_exp]: Merge LEX_BUILTIN and + LEX_LENGTH expansions. + (lookup_builtin): Move MPFR test to after test for sub builtin. + + * awkgram.y [non_post_simp_exp]: Unmerge LEX_BUILTIN and + LEX_LENGTH expansions. This introduced a reduce/reduce + conflict, and those are bad. I don't know why I didn't + notice this earlier. Sigh. + +2017-07-15 Arnold D. Robbins + + Revert change of 2016-07-24 that always runs the dfa + matcher. Based on a bug report from Alexandre Oliva + , DFA can cause gawk to hang, even + in the C locale. + + * re.c (research): Don't use dfa if need_start is true. + +2017-07-13 Arnold D. Robbins + + More rationalization of the namespace code. + + * awk.h (is_valid_identifier): Declare. + * awkgram.y (grammar: direct_func_call): Store the fully qualified + name in the op code. + (yylex): Disallow reserved words and functions as namespace name. + (check_params): Small code edit + (validate_qualified_name): Use is_lsetter. + (set_namespace): Check for NULL pointer first! Use is_valid_identifier + instead of inline code. Disallow using reserved words as namespace + names. + * ext.c (is_valid_identifier): No longer static. + (make_builtin): Check name and namespace against reserved words and + fatal error if found. + * gawkapi.c (ns_lookup): New function to look for variables + in namespaces. + (api_sym_lookup): Check namespace for validity and use ns_lookup. + (api_sym_update): Ditto. + * profile.c (pp_print): Correctly print full function name + in a function call. + +2017-07-11 Arnold D. Robbins + + Continue adding namespace support to the extension API. + + * awk.h (make_builtin): Add leading name_space parameter. + * ext.c (make_builtin): Add leading name_space parameter. + Do the appropriate checking and building of a name before + installing in the symbol table. + * gawkapi.c (add_ext_func): Use name_space, not namespace. + Check that the parameter isn't NULL. + (api_sym_lookup, api_sym_update): Use name_space, not namespace. + * gawkapi.h: Use name_space, not namespace, everywhere. + +2017-07-11 Arnold D. Robbins + + * awk.h (is_letter): Add declaration. + * ext.c (is_valid_identifier): New function. + (make_builtin): Use is_valid_identifier instead of inline code. + (is_letter): Moved from here ... + * awkgram.y (is_letter): ... to here. + (yylex): Use is_letter instead of a test. + * command.y (yylex): Ditto. + * main.c (arg_assign): Ditto. + +2017-07-07 Arnold D. Robbins + + Remove warnings from GCC 7.1 compilation. + + * awk.h (fatal_tag_valid): Change type to int. + * awkgram.y (yylex): Set did_newline to true instead of using ++. + * builtin.c (format_tree): Set lj to true instead of using ++. + * cmd.h (pager_quit_tag_valid): Change type to int. + * debug.c (pager_quit_tag_valid): Change type to int. + (do_clear): Make bp_found an int, change uses. + (do_run): Treat fatal_tag_valid as an int. + * msg.c (fatal_tag_valid): Change type to int. + +2017-07-07 Arnold D. Robbins + + * awkgram.y (yyerror): Produce better diagnostics for source + files that are not whole syntactic units. + + * gawkapi.c (api_sym_lookup, api_sym_update): Add namespace parameter. + Currently unused. + * gawkapi.h (api_sym_lookup, api_sym_update): Add namespace parameter. + (api_sym_lookup_ns, api_sym_update_ns): New macros. + (api_sym_lookup, api_sym_update): Adjust macro bodies. + +2017-07-07 Arnold D. Robbins + + * gawapi.h: Bring descriptive comments up to date, minor edits. + * io.c: Add some initial comments to functions where they were missing. + +2017-07-03 Arnold D. Robbins + + * gawkapi.h, gawkapi.c: Typo fixes in comments. + +2017-07-01 Arnold D. Robbins + + * symbol.c (install): Don't call fix_up_namespace if + installing parameters. + * profile.c (remove_namespace): Renamed to + (adjust_namespace): Make smarter and add boolean parameter for + if return was mallc'ed. Adjust calls. + +2017-06-30 Arnold D. Robbins + + Add namespace info into Op_Rule and Op_Func. + Fix memory management problem. + The changes temporarily break the test suite. + + * awk.h (MAX_INSTRUCTION_ALLOC): Increase to 4. + (Op_K_namespace): Remove, not needed. + * eval.c (optypetab): Remove Op_K_namespace. + * awkgram.y (make_pp_namespace): New function. + (yylex): For BEGIN etc, allocate 4 in the instruction. + (install_func): Save namespace name for Op_rule. + (append_rule): Save namespace name for Op_rule. + * debug.c (print_instruction): Print namespace for Op_rule, Op_func. + Remove Op_K_namespace. + * profile.c (pp_namespace, remove_namespace): New functions. + (pprint): Call `pp_namespace'. Use `remove_namespace' on variable + names. + (pp_func): Ditto on both. + * symbol.c (lookup): Initialize `malloced' to false. + (install): Ditto. + + Unbreak the test suite: + + * awk.h (namespace_changed): Declare new boolean variable. + * awkgram.y (namespace_changed): Define new boolean variable. + (set_namespace): Set it to true when the namespace is changed. + * main.c (main): Set current_namespace to "awk::" for the pretty + printer. + * profile.c (pp_namespace): If namespace_changed is false, return. + +2017-06-28 Arnold D. Robbins + + * awk.h [ns_name]: Add macro in preparation for use. + * debug.c (print_instruction): Add case for Op_K_namespace. + Not really used yet. + * symbol.c (fix_up_namespace): Bug fix to always allocate + memory for a full name. Add boolean parameter to indicate + if memory was malloc'ed or not. + (lookup): Adjust call to fix_up_namespace and use make_str_node + if the string was malloced. + (install): Ditto. + +2017-06-26 Arnold D. Robbins + + * configure.ac: Turn a tab into a space in AC_DEFINE(SUPPLY_INTDIV). + +2017-06-25 Andrew J. Schorr + + * gawkmisc.c (xmalloc): Remove function now in support/xalloc.h. + +2017-06-22 Arnold D. Robbins + + Make pretty-printing include parentheses that were explicitly + in the source code. Thanks to Hermann Peifer for the bug report. + + * awk.h (OPCODE): Add Op_parens. + * awkgram.y [Grammar]: If pretty-printing, add Op_parens ot end of + list for parenthesized expression. + * eval.c (optypetab): Add Op_parens. + * interpret.h (r_interpret): Ditto. + * profile.c (pprint): Ditto. For ?:, don't parenthesize it. + (pp_parenthesize): If string starts with left paren, return early. + (parenthesize): Don't call div_on_left_mul_on_right. + (div_on_left_mul_on_right): Remove function. + (pp_concat): Don't add parentheses if expressions already have them. + * NEWS: Updated. + +2017-06-21 Andrew J. Schorr + + Replace malloc/memset combinations with calloc by using the new ezalloc + macro. + * awkgram.y (yyerror, do_add_srcfile, funcuse): Replace emalloc+memset + with ezalloc. + * cint_array.c (cint_lookup, cint_copy, tree_lookup, tree_copy, + leaf_lookup, leaf_copy): Ditto. + * command.y (mk_cmdarg): Ditto. + * debug.c (add_item): Ditto. + * eval.c (setup_frame): Ditto. + * field.c (set_record): Ditto. + * gawkapi.c (api_flatten_array_typed): Ditto. + * int_array.c (int_copy, grow_int_table): Ditto. + * io.c (init_awkpath, iop_alloc): Ditto. + * node.c (str2wstr): Ditto. + * re.c (make_regexp): Ditto. + * str_array.c (str_copy, grow_table): Ditto. + * symbol.c (make_params, new_context): Ditto. + +2017-06-19 Andrew J. Schorr + + * awk.h (ezalloc): Add new macro to allocate memory initialized to zero. + (ezalloc_real): New inline function to call calloc. + * gawkapi.h (ezalloc): Add new API macro to allocate memory initialized + to zero. + +2017-06-18 Arnold D. Robbins + + * builtin.c (mbc_char_count): Fix code to correctly traverse + the string. Thanks to Hermann Peifer for the bug report. + * config.guess, config.sub: Update to latest from GNULIB. + * gettext.h: Pull in a few nice changes from GNULIB version. + +2017-06-16 Arnold D. Robbins + + * awk.h (lookup): Add second parameter. + * array.c (assoc_list): Adjust call to lookup. + * awkgram.y (grammar, parms_shadow, install_function, variable): + Ditto. + * command.y [Grammar]: Ditto. + * debug.c (find_symbol): Ditto. + * ext.c (make_builtin): Ditto. + * gawkapi.c (api_sym_lookup, api_sym_update): Ditto. + * interpret.h (r_interpret): Ditto. + * main.c (arg_assign): Ditto. + (main): Reset current_namespace after parsing. + * symbol.c (lookup): New second parameter, do_qualify. Use it + to qualify names or not. + (install): Call fix_up_namespace. + (is_all_upper): New helper routine. + (fix_up_namespace): New function. + +2017-06-13 Arnold D. Robbins + + * awk.h (awk_namespace, current_namespace): Move to const char. + (SRCFILE): Add namespace element. + * awkgram.y (awk_namespace, current_namespace): Move to const char. + (set_namespace): New function. + [Grammer]: Call it. + (tokentab): Add "namespace" entry. + (include_source): Push the current namespace. + (next_sourcefile): Pop the current namespace. + (yylex): Add lint warning if a reserved word is used as a namespace + name. + (validate_qualified_name): Make it an error to use a reserved + word as the second part of a fully qualified name. + +2017-06-11 Arnold D. Robbins + + * awk.h (awk_namespace, current_namespace): Declare. + (opcodeval): Add Op_K_namespace. + * awkgram.y (awk_namespace, current_namespace): Define. + (LEX_NAMESPACE): Add lexing and parsing of `@namespace directive'. + (tokentab): Add "namespace" entry. + (yylex): Check if first part of qualified identifier is + a reserved word or function. + * eval.c (optypetab): Add Op_K_namespace. + +2017-06-06 Arnold D. Robbins + + * awkgram.y (yylex): Allow :: in identifiers (the "NAME" token). + Use validate_qualified_name to check it. + (validate_qualified_name): New function. + +2017-05-30 Arnold D. Robbins + + * awkgram.y (nextc): Force -e chunks to be syntactic units. + Needed for namespaces to work correctly. + +2017-05-30 Arnold D. Robbins + + * NEWS: Mention PROCINFO["argv"]. + +2017-05-24 Andrew J. Schorr + + * field.c (set_FIELDWIDTHS): Add check to protect against blank + characters after a `:' skip separator. + Fix field number in error message, thanks to a bug report + from Michal Jaegermann. + +2017-05-23 Andrew J. Schorr + + * field.c (set_FIELDWIDTHS): Simplify the logic and consistentify + use of UINT_MAX. Make sure that negative value after : is caught. + +2017-05-23 Arnold D. Robbins + + * field.c (fw_parse_field): Stop upon hitting the end of the + record; this enables correct counting of the number of fields. + (set_FIELDWIDTHS): Add `*' at end as meaning ``all the rest + of the data on the line.'' Allow skip:* as well. + * NEWS: Update information about FIELDWIDTHS. + +2017-05-20 Arnold D. Robbins + + * awkgram.y (add_lint): Make ``no effect'' check smarter about + reporting line numbers. + +2017-05-01 Arnold D. Robbins + + * awkgram.y (nextc): Fix to change of 2017-04-24 such that + @include works in multibyte locales. Thanks to Hermann + Peifer for the bug report. + +2017-04-26 Andrew J. Schorr + + * awkgram.y (make_regnode): Fix bug -- we should not set valref to 1 + when creating a node of type Node_regex, since valref is appropriate + only for Node_val nodes. This fixes a bug introduced in commit + 687e6594. Also, add an assert to make it clear that this function + supports only Node_regex and Node_dynregex. + * awk.h (NODE): Restore sref to the `val' subportion, since it is not + really needed for Node_regex, now that the bug in make_regnode has + been fixed. + (valref): Restore macro definition. + +2017-04-24 Arnold D. Robbins + + * awk.h (NODE): Additional cleanups. Removed `aq' and `param_list' + elements from various unions and removed 'nextp' and + `a_opaque' defines. None of these were in use. + Rework the comment for valref, per suggestion from + Andrew Schorr. + +2017-04-23 Arnold D. Robbins + + * awkgram.y (nextc): Adjust so that 3.1.x behavior is restored + whereby --source arguments are concatenated. Thanks to + "Neil R. Ormos" for the report. + +2017-04-21 Arnold D. Robbins + + * awk.h (NODE): Put the `val' subportion back the way it + was and move valref (formerly sref) out of the unions + entirely. This was the real problem. Rework the corresponding + commentary. + [valref]: Removed the macro definition. + +2017-04-20 Arnold D. Robbins + + * configure.ac: Make letter case usage in the various + AC_ARG_ENABLE messages consistent with the rest of configure + output. + (--disable-mpfr): Add this option to make it easier + to check compiles without MPFR. Motivated by: + * awk.h (NODE): Rearrange the layout of the 'val' subportion + of the union to fix alignment problems when compiling without + MPFR. The problem only happened on 64-bit compiles, not + 32-bit compiles. + +2017-04-16 Arnold D. Robbins + + Rename intdiv it intdiv0 and require enabling at configure time. + + * awkgram.y (tokentab): Bracket intdiv0 in #ifdef SUPPLY_INTDIV. + (snode): Similar. + * builtin.c (do_intdiv): Bracket in #ifdef SUPPLY_INTDIV. + * mpfr.c (do_mpfr_intdiv): Bracket in #ifdef SUPPLY_INTDIV. + * configure.ac: Add --enable-builtin-intdiv0 option. If enabled, + also revise doc/gawktexi.in. + +2017-04-16 Arnold D. Robbins + + * builtin.c (do_intdiv): Use DEREF on the arguments. + Thanks to Andrew Schorr for finding the problem. + * mpfr.c (do_mpfr_intdiv): Return -1 if numerator or denominator + are not valid numbers. Unref various bits first. + +2017-04-13 Arnold D. Robbins + + * awk.h (make_number_node): Simplify. + * mpfr.c (mpg_node): Change parameter name to `flags'. + +2017-04-12 Arnold D. Robbins + + * mpfr.c (mpg_format_val): Set STRCUR flag when we're done. + Fixes a memory leak. Thanks to valgrind for the report. + + * builtin.c (do_dcgettext): Move declaration of reslen to + outside the ifdefs. Thanks to Hermann Peifer for the report. + + * gawkapi.c (awk_value_to_node): Initialize ext_ret_val to NULL + to avoid compiler warnings. + +2017-04-12 Manuel Collado + + Fix the FPAT bug reported by Ed Morton in the gawk-bug mailing list. + + * awk.h (Regexp): Remove the non_empty flag. + * field.c (fpat_parse_field): Restructure the code to reduce complexity + and document the new structure. + + * field.c (fpat_parse_field): Further restructuring to avoid + invalid reads as reported by valgrind. + +2017-04-10 Andrew J. Schorr + + * awk.h (enum opcodeval): For the avoidance of doubt, specify that + Op_illegal must equal zero. + * symbol.c (bcfree): Improve clarity by setting opcode to Op_illegal + instead of 0. + (free_bc_mempool): Improve clarity by comparing opcode to Op_illegal + instead of to 0. + + * field.c (set_FIELDWIDTHS): Set use_chars to awk_true, since its + type is awk_bool_t. + +2017-04-10 Arnold D. Robbins + + * symbol.c (free_bc_mempool): Change `first' from int to bool. + +2017-04-09 Andrew J. Schorr + + * field.c (fw_parse_field): Edit comment about resetting shift state. + * gawkapi.h (awk_fieldwidth_info_t): Make white space more uniform. + +2017-04-08 Eli Zaretskii + + * main.c (usage, copyleft) [__MINGW32__]: + * io.c (non_fatal_flush_std_file, close_io) [__MINGW32__]: Call + w32_maybe_set_errno to correctly set errno to EPIPE when appropriate. + + * awk.h (die_via_sigpipe) [__MINGW32__]: MinGW-specific definition. + +2017-04-07 Andrew J. Schorr + + * awk.h (INSTRUCTION_POOL): Redefine as an array of structures so we + can track allocated blocks. + * symbol.c (pools): Make it a pointer to avoid copying. + (struct instruction_block): Define structure to hold a block of + allocated instructions. + (bcfree): Update to use new INSTRUCTION_POOL definition. + (bcalloc): Allocate an instruction by searching first on the free + list, second for free space in the current block, or third by + allocating a new block. + (set_context): Update to reflect that pools is now a pointer. + (free_bc_mempool): New helper function to free a pool of a certain size. + (fre_bcpool): Call free_bc_mempool for each pool. + +2017-04-04 Arnold D. Robbins + + * awk.h (INSTRUCTION): Add pool_size member. + [MAX_INSTRUCTION_ALLOC]: New macro. + (INSTRUCTION_POOL): New type. + (struct context): Use INSTRUCTION_POOL. + * array.c (assoc_list): Reorg the code a bit to make sure + to always free the INSTRUCTIONs allocated for calling a + user-supplied sorting function. Based on code by + Andrew Schorr. + * symbol.c (free_bcpool): Rework to use an INSTRUCTION_POOL. + (bcfree, bcalloc): Rework to use separate chains in + the instruction pool. + (set_context): Update appropriately. + +2017-03-27 Arnold D. Robbins + + * field.c (parse_field_func_t): New typedef. Used as needed. + (fw_parse_field): Edit comment about resetting shift state. + (set_parser): Fix leading comment's style and type of argument. + (set_FIELDWIDTHS): Improve the fatal error message. + * gawkapi.h: Minor edits in some comments. + +2017-03-27 Arnold D. Robbins + + Cause EPIPE errors to stdout to generate a real SIGPIPE. + + * awk.h (die_via_sigpipe): New macro. + * builtin.c (efwrite): Use it. + * io.c (non_fatal_flush_std_file): Ditto. + * main.c (usage): Ditto. + +2017-03-25 Arnold D. Robbins + + * io.c (flush_io): Use r_fatal and r_warning for messagefunc + in the loop. + +2017-03-24 Arnold D. Robbins + + * builtin.c (efwrite): Exit successfully upon EPIPE, as SIGPIPE + done. Improve error messages upon failure to write. + (do_fflush): Update ERRNO for non-fatal flush failures. + * io.c (non_fatal_flush_std_file): Update ERRNO when flush is + non-fatal. + (flush_io): If a redirect is marked non-fatal, only warning, + not fatal message. + +2017-03-23 Arnold D. Robbins + + * config.sub: Updated again. + +2017-03-22 Andrew J. Schorr + + * NEWS: Document new PROCINFO["FS"] value of "API". + +2017-03-22 Andrew J. Schorr + + * NEWS: Document new FIELDWIDTHS skip capability and API input parser + field parsing enhancement. + +2017-03-22 Andrew J. Schorr + + * gawkapi.h (awk_input_buf_t): Update get_record comment regarding the + new field_width argument. + +2017-03-21 Andrew J. Schorr + + * gawkapi.h (awk_fieldwidth_info_t): Define new structure to contain + API field parsing info, replacing the previous awk_input_field_info_t + array. + (awk_fieldwidth_info_size): Define macro to calculate size of the + variable-length awk_fieldwidth_info_t structure. + (awk_input_buf_t): Update get_record prototype to update the type + of the final field_width argument from 'const awk_input_field_info_t **' + to 'const awk_fieldwidth_info_t **'. + * awk.h (set_record): Change 3rd argument from + 'const awk_input_field_info_t *' to 'const awk_fieldwidth_info_t *'. + * io.c (inrec, do_getline_redir, do_getline): Change field_width type + from 'const awk_input_field_info_t *' to + 'const awk_fieldwidth_info_t *'. + (get_a_record): Change field_width argument type from + 'const awk_input_field_info_t **' to 'const awk_fieldwidth_info_t **'. + * field.c (api_parser_override): Define new boolean to track whether + API parsing is currently overriding default parsing behavior. + (api_fw): Change type from 'const awk_input_field_info_t *' + to 'const awk_fieldwidth_info_t *'. + (FIELDWIDTHS): Change type from 'int *' to 'awk_fieldwidth_info_t *'. + (set_record): Use new boolean api_parser_override to track whether + API parsing override is in effect, since we can no longer discern + this from the value of parse_field -- FIELDWIDTHS parsing uses the + same function. + (calc_mbslen): New function to calculate the length of a multi-byte + string. + (fw_parse_field): Enhance to support the awk_fieldwidth_info_t + structure instead of simply using an array of integer field widths. + (api_parse_field): Remove function no longer needed since fw_parse_field + now supports both FIELDWIDTHS and API parsing. + (set_parser): Use api_parser_override instead of comparing parse_field + to api_parse_field. + (set_FIELDWIDTHS): Enhance to use new awk_fieldwidth_info_t structure + and parse new skip prefix for each field. + (current_field_sep): Use api_parser_override flag instead of comparing + to api_parse_field. + (current_field_sep_str): Ditto. + +2017-03-20 Arnold D. Robbins + + Improve handling of EPIPE. Problems reported by + Alexandre Ferrieux + and David Kerns . + + * awk.h (ignore_sigpipe, set_sigpipe_to_default, + non_fatal_flush_std): Declare new functions. + (ignore_sigpipe, set_sigpipe_to_default, + non_fatal_flush_std): New macros. + * builtin.c (do_fflush): When nonfatal not in force, flush + of stdout/stderr and EPIPE exits, simulating SIGPIPE, as + in nawk/mawk. Flush of other redirections with EPIPE now + also fatals. + (do_system): Use ignore_sipipe and set_sigpipe_to_default + instead of uglier inline ifdefed code. + * main.c (main): Ditto. + * io.c (redirect_string, two_way_open, gawk_popen): Ditto. + (flush_io): Use non_fatal_flush_std for stdout and stderr. + + Unrelated: + + * config.guess, config.rpath, config.sub, install-sh: + Sync with GNULIB. + +2017-03-16 Arnold D. Robbins + + * configure.ac: Some cleanups. + +2017-03-09 Andrew J. Schorr + + * gawkapi.h (awk_input_field_info_t): Define new structure to contain + API field parsing info. + (awk_input_buf_t): Update get_record prototype to use an array of + awk_input_field_info_t instead of integers. + * awk.h (set_record): Change 3rd argument from 'const int *' to + 'const awk_input_field_info_t *'. + * field.c (api_fw): Now points to an array of awk_input_field_info_t + instead of integers. + (set_record): Change 3rd argument to point to an array of + awk_input_field_info_t. + (api_parse_field): Update parsing logic to use awk_input_field_info_t + structures instead of an array of integers. + * io.c (inrec, do_getline_redir, do_getline): Change field_width type + from 'const int *' to 'const awk_input_field_info_t *'. + (get_a_record): Change field_width argument type from 'const int **' + to 'const awk_input_field_info_t **'. + +2017-03-09 Arnold D. Robbins + + * field.c: Minor style edits. + +2017-03-06 Andrew J. Schorr + + * field.c (normal_parse_field): Renamed from save_parse_field to reflect + better its purpose. Added a comment to explain more clearly what's + going on. + (set_record, set_parser): Rename save_parse_field to normal_parse_field. + +2017-03-06 Andrew J. Schorr + + * gawkapi.h (awk_input_buf_t): Remove field_width array and instead + add it as a 6th argument to the get_record function. This should + not break existing code, since it's fine to ignore the additional + argument. Document the behavior of the field_width argument. + * io.c (inrec): Pass pointer to field_width array to get_a_record, + and then hand it off to set_record. + (do_getline_redir): If not reading into a variable, pass pointer to + field_width array to get_a_record and then hand it off to set_record. + (do_getline): Ditto. + (get_a_record): Add a 4th field_width argument to pass through to + the API get_record method. + +2017-03-05 Andrew J. Schorr + + * awk.h (set_record): Add a new argument containing a field-width + array returned by an API parser. + (field_sep_type): Add new enum value Using_API. + (current_field_sep_str): Declare new function. + * field.c (save_parse_field): New static variable to save the + parse_field value in cases where it's overridden by API parsing. + (api_fw): New static variable to hold pointer to API parser fieldwidth + array. + (set_record): Add new field-width array argument. If present, API + parsing will override the default parsing mechanism. + (api_parse_field): New field parser using field widths supplied by the + API. This is very similar to the existing fw_parse_field function. + (get_field): Fix typo in comment. + (set_parser): New function to set default parser and check whether + there's an API parser override in effect. Update PROCINFO["FS"] if + something has changed. + (set_FIELDWIDTHS): Use set_parser and stop updating PROCINFO["FS"]. + (set_FS): Ditto. + (set_FPAT): Ditto. + (current_field_sep): Return Using_API when using the API field parsing + widths. + (current_field_sep_str): New function to return the proper string + value for PROCINFO["FS"]. + * gawkapi.h (awk_input_buf_t): Add field_width array to enable the + parser get_record function to supply field widths to override the + default gawk field parsing mechanism. + * io.c (inrec): Pass iop->public.field_width to set_record as the + 3rd argument to enable API field parsing overrides. + (do_getline_redir, do_getline): Ditto. + * main.c (load_procinfo): Use new current_field_sep_str function + instead of switching on the return value from current_field_sep. + +2017-02-23 Arnold D. Robbins + + * awk.h (boolval): Return bool instead of int. + * eval.c (eval_condition): Same. + * io.c (pty_vs_pipe): Same + Thanks to Andrew Schorr for pointing these out. + +2017-02-21 Andrew J. Schorr + + * NEWS: Document that mktime now takes an optional utc-flag argument. + * awkgram.y (tokentab): Modify mktime entry to indicate that it may + accept two arguments. + * builtin.c (mktime_tz): New function to run mktime in an arbitrary + time zone. Code was copied from the Linux timegm man page. + (do_mktime): Add support for new optional 2nd argument utc-flag by + using the new mktime_tz function. + (do_strftime): Change do_gmt type from int to bool. + +2017-02-17 Arnold D. Robbins + + * builtin.c (do_typeof): Handle arguments that have + the NULL_FIELD flag set. + +2017-02-03 Andrew J. Schorr + + * awkgram.y (set_profile_text): Improve code clarity by using emalloc + to allocate the string instead of abusing estrdup. + +2017-02-02 Arnold D. Robbins + + * awkgram.y (set_profile_next): Allocate an extra byte at the + end for the NUL in case we add a sign. Thanks to Andrew Schorr + for making me look at this code. + + And later in the same day: + + * awkgram.y (set_profile_next): Undo previous change, since estrdup + handles it, but updated the comments. + +2017-02-01 Arnold D. Robbins + + * builtin.c (mbc_char_count): Remove spurious multiplies by + gawk_mb_cur_max. Thanks to Andrew Schorr for making me look + at this code. + + Unrelated: + + * awkgram.y (make_profile_number): Renamed to ... + (set_profile_next): New function. All calls adjusted. Also improved + use at MPFR number case. + +2017-01-28 Andrew J. Schorr + + * io.c (inetfile): Replace strncmp with memcmp in a few places, now + that we are checking string length beforehand. + +2017-01-27 Andrew J. Schorr + + * io.c (redirect_string): Check explen positive before accessing *str. + In lintwarn message, use explen string length. Pass length to inetfile. + (devopen): Pass name length to inetfile. + Stop assuming that remoteport is NUL-terminated. + (two_way_open): Pass name length to inetfile. + (inetfile): Stop assuming NUL string termination; add checks to avoid + string overrun. + +2017-01-27 Andrew J. Schorr + + * awk.h (str_terminate_f): New helper function for terminating a string + NODE. + (str_terminate): Macro wrapper to call str_terminate_f. + (str_restore): New macro to restore the string. + * builtin.c (do_strftime): Use str_terminate and str_restore. + (do_dcgettext): Ditto, and remove saved_end flag since equivalent + to testing (t2 != NULL). Fix overrun bug in calculating result + length when !ENABLE_NLS. + (do_dcngettext, do_bindtextdomain): Use str_terminate and str_restore. + * interpret.h (Op_arrayfor_init, Op_indirect_func_call): Ditto. + * str_array.c (env_remove): Ditto. + +2017-01-27 Andrew J. Schorr + + * interpret.h [UNFIELD]: Fix condition for assignment from + value with valref == 1. Fixes problems introduced at gawk 4.1.2. + +2017-01-27 Arnold D. Robbins + + * interpret.h: Update copyright year. + * debug.c (do_run): Rework error message to ease translation. + Thanks to Rafael Fontenelle and to + Eli Zaretskii . + +2017-01-26 Andrew J. Schorr + + * builtin.c (do_dcgettext): First argument also needs protection + from string overrun. + (do_dcngettext): Need to terminate string1 and string2 also, + and replace strlen(the_result), which could overrun. + (do_bindtextdomain): Terminate both string args, and eliminate + saved_end boolean which is redundant with (t2 != NULL). + +2017-01-26 Andrew J. Schorr + + * interpret.h (Op_arrayfor_init): Protect against string overrun + on sorting method. + (Op_indirect_func_call): Terminate function name. + +2017-01-26 Andrew J. Schorr + + * str_array.c (env_remove): Terminate string before calling unsetenv. + +2017-01-26 Andrew J. Schorr + + * node.c (is_hex): Add a new argument pointing to the end of the string + so we can check for string overrun. + (r_force_number): Pass string end to is_hex. + +2017-01-26 Andrew J. Schorr + + * awk.h (get_numbase): Add string length argument so we can operate + on unterminated strings. + * awkgram.y: Call get_numbase with string length, and fix off-by-one + error in length passed to nondec2awknum: should be strlen(tokstart)-1 + based on surrounding code. + * builtin.c (do_strtonum): Pass string length to get_numbase. + (nondec2awknum): Check string length before accessing characters. + * mpfr.c (force_mpnum): Pass string length to get_numbase. + * node.c (r_force_number): Pass string length to get_numbase. + (get_numbase): Add string length argument and honor it. + +2017-01-26 Andrew J. Schorr + + * builtin.c (do_strftime): If format argument is passed, we need + to terminate it in case it's a field variable. + +2017-01-26 Andrew J. Schorr + + * node.c (r_format_val): Before we free s->stptr, make sure that it + was malloced. + (wstr2str): Add comment explaining why it's safe to free n->stptr + without doing any checks. + * mpfr.c (mpg_format_val): Ditto. And no need to reset the STRCUR flag + that we just checked. + +2017-01-26 Andrew J. Schorr + + * awk.h (enum block_id): Remove BLOCK_INVALID, since it serves no + useful purpose and seems to slow things down a bit. + * node.c (nextfree): Remove first invalid entry. + +2017-01-25 Andrew J. Schorr + + * awk.h (BLOCK): Remove typedef. BLOCK was used for 2 different + purposes: to contain a block allocation list header, and to hold + each individual allocated item. This was confusing, because the "size" + field was set only in the header, but not in each element. + (struct block_header): The block header contains a pointer to the first + element and the element size. + (struct block_item): Represent a single allocated item. This contains + only a pointer to the next element. This reduces the minimum allocated + item size from 2 pointers to 1 (16 bytes to 8 bytes on x86_64). + (nextfree): Change array item type from BLOCK to struct block_header. + (getblock, freeblock): Change cast from 'BLOCK' to 'struct block_item'. + * node.c (nextfree): Now an array of 'struct block_header' instead of + BLOCK. Switch the ordering to put the next pointer before the size. + (more_blocks): Replace 'BLOCK' with 'struct block_item', and add + an assert to ensure that the allocation size is at least as large + as 'struct block_item', i.e. 1 pointer. + +2017-01-22 Andrew J. Schorr + + * awk.h (numtype_choose): New backend macro used to implement + various macros whose calculations depend on how a number is + actually represented. This improves readability and should give + a small performance improvement when not using extended precision. + (get_number_ui, get_number_si, get_number_d, get_number_uj, iszero): + Rewrite using new numtype_choose macro. + +2017-01-04 Arnold Robbins + + Trade space for time for programs that toggle IGNORECASE a lot. + Brings 25% to 39% speedup. NODE does not actually grow in size. + + * awk.h (NODE::preg): Now an array of size two. + [CASE]: Flag no longer needed, so removed. + (IGNORECASE): Change type from int to bool. + * awkgram.y (make_regnode): Build two copies of the compiled regexp, + one without ignorecase, and one with. + * io.c (RS_re): Array replacing RS_re_yes_case and RS_re_no_case. + (set_RS): Use RS_re[IGNORECASE] as appropriate. Free and recompute + as needed. + * main.c (IGNORECASE): Change type from int to bool. + * re.c (re_update): Simplify the code. No need to check CASE flag + any longer. Recompute only if text of regexp changed. + * symbol.c (free_bc_internal): Adjust to free both elements of + m_re_reg. + +2017-01-18 Andrew J. Schorr + + * interpret.h (r_interpret): Increase robustness of the optimization + logic in Op_assign_concat -- check that the node has MALLOC set, + and make sure to wipe all flags other than MALLOC, STRING, STRCUR, + and possibly WSTRCUR. Use STFMT_UNUSED define. + +2017-01-15 Andrew J. Schorr + + * interpret.h (r_interpret): Fix bug in Op_assign_concat reported + on Cygwin mailing list. The string concatenation optimization was + not updating the node correctly by setting STRING and STRCUR flags + and setting stfmt. + +2017-01-06 Andrew J. Schorr + + Enhance API to support extended-precision arithmetic. + * awk.h (enum block_id): Add new values BLOCK_MPFR and BLOCK_MPZ. + (make_number_node): New inline function to reduce code duplication + for creating numeric nodes. + * gawkapi.h (gawk_api_major_version): Bump to 3. + (awk_number_t): New typedef to represent numbers with varying internal + representations. + (awk_value_t): For numbers, replace double with awk_number_t. + (num_value): Redefine. + (num_type, num_ptr): New defines for awk_number_t union members. + (gawk_api_t): Add constants for version checking: gmp_major_version, + gmp_minor_version, mpfr_major_version, and mpfr_minor_version. + Add functions api_get_mpfr and api_get_mpz to allocate memory for + extended-precision numbers to hand to gawk. + (get_mpfr_ptr, get_mpz_ptr): Helper macros to wrap api_get_mpfr and + api_get_mpz. + (make_number): Modify to populate awk_number_t correctly. + (make_number_mpz, make_number_mpfr): New helper functions to create + extended-precision numeric nodes. + (check_mpfr_version): New macro to check GMP/MPFR version compatibility + in extensions that want to support extended-precision math. + * gawkapi.c (getmpfr, freempfr, getmpz, freempz): New macros to + allocate and free memory blocks for extended-precision math. + (awk_value_to_node): For AWK_NUMBER values, support three different + kinds of internal numbers: double, mpz_t, and mpfr_t. + (assign_number): New helper function to convert a numeric node to + an awk_value_t. + (node_to_awk_value): Use assign_number to pass numbers properly. + (api_get_mpfr): Implement new api_get_mpfr hook. + (api_get_mpfz): Implement new api_get_mpz hook. + (api_impl): Add GMP & MPFR versions, api_get_mpfr, and api_get_mpz. + * node.c (r_make_number): Use new make_number_node inline function + to reduce code duplication. + (nextfree): Add block allocators for mpfr_t and mpz_t. + (more_blocks): Add an assert to protect against cases where the block + size is too small to hold our structure. + * mpfr.c (mpg_node): Use new make_number_node inline function + to reduce code duplication. + +2017-01-04 Arnold Robbins + + * config.guess, config.sub, compile, depcomp: Sync from latest + in GNULIB. + +2016-12-27 Juergen Kahrs + + * CMakeLists.txt: Updated after adding support library. + +2016-12-23 Arnold D. Robbins + + * configure.ac (GNUPG_CHECK_MPFR): Don't call on PowerPC + Macintosh. C99 and the last version of MPFR that works on + that platform don't get along. Sigh. + +2016-12-22 Arnold D. Robbins + + * dfa.c: Sync with GNULIB. + * intprops.h: New file. + * Makefile.am (base_sources): Add intprops.h. + + Unrelated. Import GNULIB fix for regex: fix integer-overflow + bug in never-used code. + Problem reported by Clément Pit–Claudel in: + http://lists.gnu.org/archive/html/emacs-devel/2016-12/msg00654.html + Fix by Paul Eggert : + + * regex_internal.h: Include intprops.h. + * regexec.c (re_search_2_stub): Use it to avoid undefined + behavior on integer overflow. + + Unrelated. Set up a support directory for externally obtained + support files. + + * Makefile.am (base_sources, EXTRA_DIST): Edit lists. + (SUBDIRS): Get ordering right. + (LDADD): Add support/libsupport.a. + (DEFS): Add -I for support directory. + * dfa.c, dfa.h, getopt.c, getopt.h, getopt1.c, getopt_int.h, + intprops.h, localeinfo.c, localeinfo.h, random.c, random.h, + regcomp.c, regex.c, regex.h, regex_internal.c, regex_internal.h, + regexec.c, verify.h, xalloc.h: Moved to support. + + Unrelated: Totally break binary compatibility in the API + after merging in API min/max changes and REGEX and STRNUM + support in the API: + + * gawkapi.c (valtype2str): New function. + (node_to_awk_value): Minor simplification in a switch. + (api_flatten_array): Removed. + (api_flatten_array_typed): Use valtype2str in error message. + (api_impl): Reorder functions to group related ones together again. + * gawkapi.h (awk_valtype_t): Reorder enum values. + (struct gawk_api): Remove api_flatten_array field. Reorder + functions to group related ones together again. + +2016-12-17 Arnold D. Robbins + + * gawkapi.h (api_add_ext_func): Add comment about point to + awk_ext_func_t not being const but gawk doesn't use it. + * * interpret.h (Op_ext_builtin): Simplify code, check only + if do_lint and ! f->suppress_lint and num_args > max_expected. + +2016-12-16 Arnold D. Robbins + + * gawkapi.h (awk_ext_func_t): Put max back before min. Restores + source compatibility, although there will be compile warnings + because of the 3rd argument for the C function being missing. + * interpret.h (Op_ext_builtin): Used size_t instead of int for + the various variables. Add a check that max expected > 0. + +2016-12-14 Arnold D. Robbins + + MAJOR BREAKING API CHANGE. + + * awk.h (INSTRUCTION): Update extension function pointer to + take 3rd argument of pointer to struct awk_ext_func. + * gawkapi.c (api_add_ext_func): Update third arg to not be const. + * gawkapi.h (awk_ext_func_t): Put min before max. Add suppress_lint + and data pointer. + [gawk_api_major_version]: Update to 2. + [gawk_api_minor_version]: Reset to 0. + (api_add_ext_func): Update third arg to not be const. + * interpret.h (Op_ext_symbol): Revise lint check. + +2016-12-12 Arnold D. Robbins + + * awk.h (INSTRUCTION): Replace min_required and max_expected + with a pointer to the extension functions awk_ext_func_t struct. + * ext.c (make_builtin): Store a pointer to the extension function + struct into the INSTRUCTION instead of the min and max. + * gawkapi.h (awk_ext_func): Use size_t instead of unsigned short. + Put min second, which preserves source code compatibility. + * interpret.h (Op_ext_builtin): Use the pointer for the info + directly. If lint and max_expected > 0 and args > max_expected + print a message and set max_expected to zero so we only print once + per function. Remove special case of both min and max being zero. + (Op_ext_func): Adjust creation of the data structures. + +2016-12-11 Arnold D. Robbins + + * dfa.c: Sync with GNULIB. + +2016-12-05 Andrew J. Schorr + + Add API support for strnum values. + * gawkapi.c (awk_value_to_node): Add AWK_STRNUM. + (assign_string): Add a type argument so we can use this for AWK_STRING + or AWK_STRNUM. + (node_to_awk_value): When AWK_NUMBER is requested, a regex value + should return false, as per the header file documentation. + Add support for AWK_STRNUM requests. When AWK_REGEX is requested, + implement the cases properly instead of always returning true. + Fix AWK_SCALAR logic. For AWK_UNDEFINED, rewrite using a switch + and support AWK_STRNUM. + (api_sym_update): Add AWK_STRNUM. + (api_sym_update_scalar): Add optimized support for updating AWK_STRNUM. + (valid_subscript_type): Add AWK_STRNUM. + (api_create_value): Add AWK_STRNUM. + * gawkapi.h (awk_valtype_t): Add AWK_STRNUM. + (strnum_value): New macro. + (Value fetching table): Updated. + +2016-12-04 Andrew J. Schorr + + * gawkapi.c (assign_regex): Do not call assign_string, since we + know that a REGEX value is not an unterminated field string. + * gawkapi.h (make_regex): Delete macro. + (make_const_regex, make_malloced_regex): Add new macros to replace + make_regex with necessary memory management support. + +2016-12-04 Andrew J. Schorr + + * awk.h (fixtype): Remove conditional checking if the node type + is Node_val. This is already covered by the assert, and if it's not + true, we have serious bugs. + * builtin.c (do_typeof): Do not treat Node_var the same way as + Node_val, since they are different beasts. In reality, the argument + to this function will never have type Node_var. + +2016-12-04 Andrew J. Schorr + + * gawkapi.h (awk_element_t): Remove obsolete comment claiming that + the index will always be a string. + (gawk_api_t): Add new api_flatten_array_typed function and indicate + that api_flatten_array has been superseded. + (flatten_array_typed): New macro to call api_flatten_array_typed. + (flatten_array): Redefine using the new flatten_array_typed macro. + * gawkapi.c (api_flatten_array_typed): New function renamed from + api_flatten_array to flatten an array with the types requested by the + caller. Also update the comments and error messages. + (api_flatten_array): Now a wrapper around api_flatten_array_typed. + (api_impl): Add new api_flatten_array_typed hook. + +2016-12-06 Arnold D. Robbins + + Add minimum required and maximum expected number of arguments + to the API. + + * awk.h (INSTRUCTION): Add new members min_required and max_expected. + * ext.c (make_builtin): Store values from extension function struct + into the INSTRUCTION. + * gawkapi.h (awk_ext_func): Add min_required args. Make both it and + max_expected_args into unsigned short to match type in INSTRUCTION. + * interpret.h (Op_ext_builtin): Store min_required and max_expected + in instructions. Add checking code and lint checks. + (Op_ext_func): Copy min_required and max_expected from function info. + + +2016-12-04 Andrew J. Schorr + + * gawkapi.h (r_make_string_type): New inline function to create strings + of any type, currently AWK_STRING or AWK_REGEX. + (r_make_string): Now a wrapper around r_make_string_type. + (make_regex): Convert from an inline function to a macro that + calls r_make_string_type. + +2016-11-30 Arnold D. Robbins + + * dfa.c: Sync with fixes in GNULIB. + + Unrelated: + + * gawkapi.h (make_regex): New function. + +2016-11-29 Arnold D. Robbins + + Add support for typed regex variables to the API. + + * awk.h (make_typed_regex): Declare function. + * awkgram.y (typed_regexp): Call make_typed_regex instead of + using inline code. + * gawkapi.h (AWK_REGEX): New value type. + (regex_value): New macro. + (Value fetching table): Updated. + * gawkapi.c (awk_value_to_node, node_to_awk_value, api_sym_update, + api_sym_update_scalar, valid_subscript_type, api_create_value): + Add support for AWK_REGEX. + (assign_regex): New function. + (api_flatten_array): Adjust comment. + * node.c (make_typed_regex): New function; moved code from grammar. + +2016-11-29 Arnold D. Robbins + + Remove redundant flag from dfa: + + * dfa.c (dfasyntax): Use RE_ICASE instead of DFA_CASE_FOLD. + * dfa.h (DFA_CASE_FOLD): Removed. + * re.c (make_regexp): Use RE_ICASE for regex and dfa. Yay! + + Unrelated: Don't have to recompute syntax stuff every time + we compile a regexp. + + * dfa.c (dfacopysyntax): New function. + (dfaalloc): Zero out the newly allocated memory. + * dfa.h (dfacopysyntax): Declare it. + * re.c (make_regexp): Declare two static dfaregs, one for + with and without ignorecase. Compute the syntax once for each, + then use dfacopysyntax to copy the settings when compiling + a regexp. + +2016-11-28 Arnold D. Robbins + + Make gawk compile on HP-UX 11.33. + + * debug.c (serialize_list): Renamed from `serialize'. + (unserialize_list): Renamed from `unserialize', for consistency. + + Unrelated: + + * dfa.c: Sync with GNULIB. Twice in one day. + + Unrelated: Start improving profiling comments for switch/case. + + * awkgram.y (switch_head): New production. + +2016-11-21 Arnold D. Robbins + + * dfa.c: Sync with GNULIB. + +2016-11-17 Arnold D. Robbins + + General cleanup for zero termination of strings. + + * array.c (do_delete): Use %.*s. + (value_info): Get length and use %.*s. + (asort_actual): Save and restore character after end. + * awkgram.y (split_comment): Use make_string, not make_str_node. + * builtin.c (do_fflush): Use %.*s. + (locale_category_from_argument, do_dcgettext, do_dcngettext, + do_bindtextdomain): Save and restore character after end. + * debug.c (do_info, print_array, print_subscript, do_print_var, + do_set_var, display, do_watch, print_watch_item, serialize_subscript, + do_print_f): Use %.*s. + * eval.c (cmp_nodes, fmt_index): Save and restore character after end. + * interpret.h (r_interpret): Fix computation for concatenation of + wide strings. + * io.c (is_non_fatal_redirect): Add length parameter; save and + restore character after last. Adjust all other declarations and calls. + (do_close): Save and restore character after end. + * mpfr.c (ieee_fmts): Adjust table indentation. + (do_mpfr_strtonum): Clear wide string members of the union. + * msg.c (err): Use %.*s. + +2016-11-07 Arnold D. Robbins + + * awk.h [USER_INPUT]: Renamed from MAYBE_NUM. + * builtin.c, eval.c, field.c, int_array.c, io.c, main.c, + mpfr.c, node.c: Change all uses. + +2016-11-15 Arnold D. Robbins + + Finish reworking typed regexes. + + * awk.h (typed_re): Replaces tre_reg. + * awkgram.y (typed_regexp production): Node_val points to a regular + Node_regex and also has string value and length. + (make_regnode): Simplified back to its original form. + * builtin.c (call_sub, call_match, call_split_func): For REGEX, + get n->typed_re. + * field.c (do_split, do_patsplit): Ditto, for separator regexp. + * profile.c (pprint): Op_match_rec, handle REGEX correctly. + * re.c (re_update): If REGEX, get t->typed_re->re_reg. + +2016-11-15 Arnold D. Robbins + + Start reworking typed regexes. + + * awk.h (Node_typedregex): Nuked. + [REGEX]: New flag. + (tre_reg): New member in val part of NODE union. + (force_string, force_number, fixtype): Remove use of Node_typedregex. + * awkgram.y (grammar): Use REGEX flag instead of node type. + (valinfo); Ditto. + (make_regnode): Adjust creation based on node type. + * builtin.c (do_length, do_print, call_sub, call_match, + call_split_func, do_typeof): Adjust code. + * debug.c (watchpoint_triggered, initialize_watch_item, + print_memory): Adjust code. + * eval.c (nodetypes): Remove Node_typedregex. + (flags2str): Add REGEX. + (setup_frame): Adjust code after removal of Node_typedregex. + * interpret.h (r_interpret): Adjust code after removal + of Node_typedregex. + * profile.c (pp_typed_regex): Renamed from pp_strong_regex. + (pp_string_or_strong_regex): Renamed from pp_string_or_strong_regex. + (pprint): Adjust code after removal of Node_typedregex. + * re.c (re_update): Adjust code after removal of Node_typedregex. + +2016-11-04 Eli Zaretskii + + * builtin.c (efwrite) [__MINGW32__]: Call w32_maybe_set_errno if + errno is not set or set to EINVAL. + + * nonposix.h (w32_maybe_set_errno) [__MINGW32__]: Add prototype. + +2016-11-01 Arnold D. Robbins + + * eval.c (flags2str): Add NO_EXT_SET and NUMCONSTSTR. + +2016-10-31 Arnold D. Robbins + + Fix valgrind issues. + + * io.c (init_awkpath): Need to allocate max_path+3 pointers. + * awkgram.y (make_profile_number): Need to add STRCUR flag and + set n->stfmt to STFMT_UNUSED. See the comment in the code. + +2016-10-26 Arnold D. Robbins + + * io.c (init_awkpath): Set max path len for leading separator. + +2016-10-25 Arnold D. Robbins + + * io.c (init_awkpath): Restore documented behavior whereby + null elements represent the current directory. Sheesh. + Bug reported by "Jun T." . + + Disallow negative arguments to the bitwise functions. + + * NEWS: Document this. + * builtin.c (do_lshift, do_rshift, do_and, do_or, do_xor, do_compl): + Make negative arguments a fatal error. + * mpfr.c (do_mpfr_compl, get_intval): Ditto. + +2016-10-23 Arnold D. Robbins + + * General: Remove trailing whitespace from all relevant files. + * mpfr.c: Replace Unicode sequences with ASCII. + * cint_array.c: Ditto. + +2016-10-16 Arnold D. Robbins + + * awkgram.y: Typo fix in call to add_sign_to_num. + +2016-10-16 Arnold D. Robbins + + * awk.h (enum opcodeval): Add Op_unary_plus. + * awkgram.y (add_sign_to_num): New routine to put in a sign on + profiling constants. Call it as necessary. + In unary plus production, use new opcode, or set up a + constant as for unary minus. + (negate_num): Call add_sign_to_num instead of doing it directly. + * eval.c (optypetab): Add entry for Op_unary_plus. + * interpret.h (r_interpret): Add case for Op_unary_plus. + * profile.c (pprint, prec_level, is_scalar): Ditto. + +2016-10-13 Arnold D. Robbins + + * dfa.c: Sync with GNULIB. + +2016-10-12 Arnold D. Robbins + + * awkgram.y (make_profile_number): Allocate an extra byte for the + string, so there's room for a minus if necessary. Store '\0' + in the right place. + (negate_num): Use memmove to shift the string up and then + insert a minus, instead of doing a fresh alloc + copy + free. + +2016-10-11 Arnold D. Robbins + + * awk.h (NUMCONSTSTR): New flag value. + * awkgram.y (make_profile_number): New function. Use it + wherever we make a number. This calls make_number and then, if + pretty printing, save the original string value and sets NUMCONSTSTR. + (negate_num): If NUNCONSTSTR set, update the saved string value. + * profile.c (pp_number): Assert NUMCONSSTR set, use that value. + Remove previous code. + +2016-09-24 Eli Zaretskii + + * debug.c (restart) [__MINGW32__]: Cast 2nd argument of execvp to + avoid compiler warnings about prototype mismatch. Reported by + Marc de Bourget . + +2016-09-09 Norihiro Tanaka + + * awk.h (struct Regexp): Remove member has_anchor. All uses removed. + * re.c (make_regexp, research): Use dfa matcher for regex with anchor. + +2016-09-09 Arnold D. Robbins + + * dfa.c: Sync with grep. + +2016-09-08 Paul Eggert + + * dfa.c, dfa.h: Sync with grep. + * re.c (make_regexp): Adjust to DFA API changes. + +2016-09-08 Arnold D. Robbins + + * command.y: Update license text to version 3. Oops. + +2016-09-07 Arnold D. Robbins + + * cmd.h, debug.c: Update license text to version citing + GPLv3+ and with correct FSF address. Thanks to + David Kaspar for pointing out the need. + +2016-09-02 Arnold D. Robbins + + * dfa.c: Sync with grep. + +2016-09-01 Arnold D. Robbins + + Merge grep's now thread-safe dfa. Wheee. + + * dfa.h, dfa.c: Sync with grep. + * localeinfo.h, localeinfo.c, verify.h: New files. + * Makefile.am (base_sources): Adjust. + * awk.h (using_utf8): Declare new function. + * node.c (str2wstr): Use using_utf8 instead of now-gone dfa function. + * re.c: Include "localeinfo.h". + (localeinfo): New static variable. + (make_regexp): Adjust call to dfa_syntax. + (resetup): Call init_localeinfo on localeinfo. Remove call to + now-gone function dfa_init. + (using_utf8): New function. + +2016-08-29 Arnold D. Robbins + + * configure.ac (fwrite_unlocked): Check for it. + * awk.h (fwrite): Define to fwrite_unlocked if we have it. + * NEWS: Make note of speed improvement. + +2016-08-25 Arnold D. Robbins + + POSIX now says use strcmp for == and !=. Thanks to Chet Ramey + for pointing me at the change. Make it so: + + * awk.h (cmp_nodes): New 3rd param indicating strcmp, not strcoll. + * debug.c (cmp_val): Update call to cmp_nodes. + * eval.c (cmp_nodes): New 3rd param indicating strcmp, not strcoll. + Adjust code and all callers. + (scalar_cmp_t): New enum type. Used in ... + (cmp_scalars): ... in order to call cmp_nodes correctly. + * interpret.h: Use the enum type in calls to cmp_scalars. + * re.c (re_update): Adjust call to cmp_nodes. + +2016-08-25 Norihiro Tanaka + + * awk.h (struct Regexp): Remove dfa. Now dfareg instead of it. All + referers changed. + * re.c (research): Arrange caller of dfaexec and research. + * (avoid_dfa): Removed. All callers changed. + * awk.h (avoid_dfa): Removed. + + Other changes by Arnold Robbins: + + * awk.h (struct Regexp): Change various boolean members to bool. + (RE_NO_FLAGS): New #define. + * interpret.h: Use RE_NO_FLAGS instead of zero. + * re.c (research): Prettify the logic a little bit. + +2016-08-25 Arnold D. Robbins + + * dfa.c: Sync with grep. + +2016-08-25 Arnold D. Robbins + + * 4.1.4: Release tar ball made. + +2016-08-23 Arnold D. Robbins + + * dfa.h: Sync with grep. API changes. + * dfa.c: Sync with grep. + * re.c (make_regexp): Adjust for API changes, move call to dfasyntax + into stanza that compiles the regex. + (resetup): Call dfa_init. + * node.c (str2wstr): using_utf8 is now called dfa_using_utf8. + + Unrelated: + + * Makefile.am: Quote all uses of $(srcdir) and $(distdir). + (spell): New target. + +2016-08-18 Arnold D. Robbins + + * dfa.c: Sync with grep. + +2016-08-15 Andrew J. Schorr + + * int_array.c (is_integer): Fix merge of stable changes to remove + obsolete string formatting check that has been superseded by + the new standard_integer_string check. + +2016-08-14 Arnold D. Robbins + + * re.c (make_regexp): Only call dfasyntax if actually using + dfa. Gives a 14% speedup on this test: https://raw.githubusercontent.com/chadbrewbaker/awka/master/benchmark/regexp.awk. + From blathering in comp.lang.awk. + +2016-08-12 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + + Unrelated: + + * int_array.c: Minor text and formatting edits. + +2016-08-09 Andrew J. Schorr + + * awk.h: Add a comment explaining the NUMINT flag in more detail. + * int_array.c (standard_integer_string): New function to test whether + a string matches what would be produced by sprintf("%ld", ). + (is_integer): Fix bug -- if NUMBER was set, then the function was + accepting strnum values with nonstandard string representations. We + now call standard_integer_string to check that the string looks OK. + Also added ifdef'ed code to simplify the function by relying upon + force_number to parse the string, but this is disabled due to possible + negative performance impact. + +2016-08-03 Arnold D. Robbins + + Remove typed regexes until they can be done properly. + + * NEWS: Updated. + * awk.h (enum nodevals): Remove Node_typedregex. + (force_string, force_number): Remove check for Node_typedregex. + * awkgram.y (TYPED_REGEXP): Remove token. + (grammar): Remove productions related to typed regexps. + (yylex): Don't find a typed regex or return it. + (valinfo): Remove code for Node_typedregex. + * builtin.c (do_length, do_print, call_sub, call_match, + call_split_func, do_typeof): Remove code for Node_typedregex. + * debug.c (watchpoint_triggered, print_memory): Remove code + for Node_typedregex. + * eval.c (nodetypes, setup_frame): Remove code for Node_typedregex. + * interpret.h (r_interpret): Remove code for Node_typedregex. + * profile.c (pprint): Remove code for Node_typedregex. + (pp_strong_regex): Removed. + (pp_string_or_strong_regex): Remove code for Node_typedregex. + * re.c (re_update): Remove code for Node_typedregex. + +2016-08-01 Arnold D. Robbins + + * README, NEWS: Mark DJGPP port as unsupported. + +2016-08-01 Andrew J. Schorr + + * mpfr.c (mpg_tofloat): Always set precision to avoid hysteresis effects + from previous calculations using the same temporary mpfr variables. + +2016-08-01 Andrew J. Schorr + + * mpfr.c (default_prec): Add new static variable to show current PREC + setting in effect. + (init_mpfr, set_PREC): Save mpfr_set_default_prec argument in + default_prec. + (do_mpfr_func): If the argument's precision exceeds the default + precision, boost the result's precision to match it. This fixes a + bug where we used to copy the argument's precision, regardless of + whether it was higher or lower than the PREC setting. + +2016-07-24 Norihiro Tanaka + + * re.c (research): Now that the dfa matcher correctly runs even + in multibyte locales, try it if even if need_start is true. + However, if start > 0, avoid dfa matcher, since it can't handle + the case where the search starts in the middle of a string. + + Unrelated: + + * eval.c (load_casetable): Reset casetable[i] to `i' if i + should not be mapped to upper case. Fixes inconsistencies between + dfa and regex in some single bytes locales; notably el_GR.iso88597. + +2016-07-23 Arnold D. Robbins + + Make result of close on a pipe match result of system. + Thanks to Mike Brennan for the encouragement. + + * awk.h (sanitize_exit_status): Declare routine. + * builtin.c (sanitize_exit_status): New routine. + (do_system): Use it. + * io.c (close_rp): Use it on pclose result. + (gawk_pclose): Use it. + +2016-07-23 Andrew J. Schorr + + * builtin.c (do_print): Improve logic for formatting + numeric values. + +2016-07-19 Andrew J. Schorr + + * eval.c (set_LINT): Simplify the code considerably. + +2016-07-19 Arnold D. Robbins + + * awkgram.y (shadow_funcs): Change test at end to be + `lintfunc == r_fatal' instead of `lintfunc != warning'. + Thank to Andrew Schorr for the suggestion. + +2016-07-18 Arnold D. Robbins + + * main.c (locale_dir): New variable, init to LOCALEDIR (set by + configure). + (set_locale_stuff): Move calls to bindtextdomain and + textdomain to here; they must be done after calling setlocale. + Use locale_dir instead of LOCALEDIR. + (main): Move call to set_locale_stuff() to before parsing arguments. + Check for GAWK_LOCALE_DIR env var and use it if there. If doing + locale debugging, call set_locale_stuff again if arg parsing changed + the locale. + + Unrelated: + + * dfa.c: Sync with GNU grep. + + Unrelated: + + * config.sub: Updated from GNULIB. + +2016-07-17 Arnold D. Robbins + + * eval.c (set_LINT): Reset lintfunc to `warning' for LINT="invalid". + Thanks to Andy Schorr for the report. + +2016-07-08 Andrew J. Schorr + + * awk.h: Restore previous comment about unterminated strings, since + I am removing the string termination patches from field.c + (free_api_string_copies): Declare new gawkapi function. + * builtin.c (do_mktime, do_system): Restore temporary string + termination to protect against unterminated field values. + (nondec2awknum): Remove comment about unnecessary termination. + * eval.c (posix_compare): Restore temporary string termination. + * field.c (databuf): Remove struct, no longer needed. + (set_field): Remove memcpy for string termination, since we will support + unterminated field string values. + (rebuild_record): Ditto. Also no need to allocate space for terminated + string copies. + (allocate_databuf): Remove function, since memory management can again + be done inside set_record. + (set_record): Restore inline buffer management logic. + (reset_record): Remove calls to allocate_databuf, since we no longer + need space for making terminated copies of field strings. + * gawkapi.c (free_api_string_copies): New function to free strings + that we made to provide terminated copies to API functions. + (assign_string): New function to convert a string to an awk_value, + making sure to copy it if we need to terminate it. + (node_to_awk_value): Use assign_string to return string values with + NUL termination protection. + * int_array.c (is_integer): Restore temporary string termination. + * interpret.h (Op_push_i): Ditto. + (Op_ext_builtin): After external function returns, call + free_api_string_copies to free temporary string copies. + * mpfr.c (force_mpnum): Restore temporary string termination. + * node.c (r_force_number, get_ieee_magic_val): Ditto. + +2016-07-08 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + + Unrelated: + + * builtin.c (do_print): Coding style change. (This change obsoleted + by earlier changes in the fixtype branch.) + +2016-07-06 Andrew J. Schorr + + * awk.h: Modify comments to indicate that MAYBE_NUM will now be + left enabled to indicate strnum values by the NUMBER|MAYBE_NUM + combination, whereas STRING|MAYBE_NUM indicates a potential strnum. + (fixtype): Modify MAYBE_NUM test to avoid calling force_number if + NUMCUR is already set. + * builtin.c (do_typeof): Call fixtype to resolve argument type. + This forces parsing of numeric strings, so there's a performance + penalty, but we must do this to give a correct result. The meaning + of "strnum" changes from "potential strnum" to "actual strnum". + * eval.c (set_TEXTDOMAIN): Remove some dead code left over from last + patch. + * int_array.c (is_integer): When a MAYBE_NUM is converted successfully + to a NUMBER, leave the MAYBE_NUM flag enabled. + * mpfr.c (mpg_force_number): Ditto. + * node.c (r_force_number): Ditto. + +2016-07-06 Andrew J. Schorr + + * awk.h: Modify stptr comment to indicate that all strings are now + NUL-terminated. + * builtin.c (do_mktime): Remove unnecessary logic to terminate + the string with '\0' temporarily. + (do_system) Ditto. + (nondec2awknum): Add a comment about termination. + * eval.c (posix_compare): Remove logic to terminate strings temporarily. + (set_ORS): No need to terminate ORS, since the string node is already + terminated. What gave us the right to modify that node anyway? + (fmt_index): Remove code to terminate string. This seems to have been + invalid anyway, since we don't own that memory. + (set_TEXTDOMAIN): Do not terminate TEXTDOMAIN string, since the node + is already terminated. We didn't have the right to modify that node + anyway. + * gawkapi.c (node_to_awk_value): Add assert checks to confirm that the + string is NUL-terminated. + * gawkapi.h: Modify awk_string comment to indicate that strings are + always terminated with '\0'. + * int_array.c (isinteger): Remove unnecessary logic to terminate string + with '\0' temporarily. + * interpret.h (Op_push_i): Ditto. + * io.c (nextfile): Remove string termination. We didn't own that memory + anyway. + * mpfr.c (force_mpnum): Remove unnecessary logic to terminate the + string with '\0' temporarily. + * node.c (r_force_number): Remove NUL termination around strtod call, + since we already know that there is either a white space or '\0' + character there. Either one will stop strtod. + (get_ieee_magic_val): Ditto. + * profile.c (pp_number): No need to terminate string returned by + r_format_val. + +2016-07-06 Andrew J. Schorr + + * interpret.h (Op_field_spec): Now that all $n field values are + NUL-terminated, there is no reason to call dupnode for $n where n > 0. + This saves malloc and copying overhead, thereby more than offsetting the + performance hit of the additional copying and NUL-termination in the + last patch to field.c. It also eliminates repeated parsing in cases + where $n, for n > 1, was accessed more than once in a numeric context, + so the new approach should be a performance win. + +2016-07-06 Andrew J. Schorr + + Make sure that all field values, and therefore all strings inside gawk, + are terminated with a '\0' character! + + * field.c (databuf): New static struct to hold info about our buffer to + contain the field string values. + (allocate_databuf): New function to make sure the databuf is large + enough to hold $0 and copies of $1 through $NF. + (set_field): Copy $n into free space previously allocated in databuf + and add a '\0' at the end. + (rebuild_record): Call allocate_databuf to ensure sufficient space + for copying non-malloced field values. When copying field values, + use databuf to create a NUL-terminated copy. + (purge_record): New function extracted from reset_record to initialize + $1 through $NF to null values. + (set_record): Buffer management moved to new allocate_databuf function. + Call purge_record instead of reset_record, since reset_record contains + some extra logic not needed in this case. + (reset_record): Call purge_record to do most of the work, and call + allocate_databuf to make sure we have a big enough buffer to contain + copies of the $1 through $NF. + +2016-07-06 Andrew J. Schorr + + * awk.h: Renumber flags to remove gap created when FIELD was removed. + +2016-07-05 Andrew J. Schorr + + * field.c (rebuild_record): Need to set MALLOC flag if we allocate + memory for a residual field node with valref > 1. + +2016-07-05 Andrew J. Schorr + + * field.c (rebuild_record): Do not bother to create new field nodes + to replace malloc'ed nodes when rebuilding $0. + +2016-07-05 Andrew J. Schorr + + * awk.h (FIELD): Remove unnecessary flag. + (MALLOC): Move definition to join the others, and improve the comment. + * array.c (value_info): Replace FIELD test with MALLOC test. + * eval.c (flags2str): Remove FIELD flag. + * field.c (init_fields): Remove FIELD bit from Null_field->flags. + (set_field): Remove FIELD bit from flags. + (rebuild_record): Test against MALLOC instead of FIELD. If a field + node has valref > 1, we should make a copy, although I don't think + it is valid for this to happen. + (set_record): Remove FIELD bit from flags. + * interpret.h (UNFIELD): Add comment, and test MALLOC flag instead of + FIELD. Remove probably buggy code to disable the FIELD flag when + valref is 1; that would have created a node where neither the FIELD + nor MALLOC flag was set, which seems invalid. + * node.c (r_dupnode): Remove code disabling FIELD flag. + +2016-07-04 Andrew J. Schorr + + * awk.h (force_string_fmt): New inline function to get the string + representation in a requested format. + (force_string): Reimplement as a macro using force_string_fmt function. + (force_string_ofmt): New macro to get a value's OFMT representation. + * builtin.c (do_print): Use new force_string_ofmt macro instead of + duplicating the logic inline. + +2016-07-04 Andrew J. Schorr + + * str_array.c (str_lookup): There is no need to worry about the + MAYBE_NUM flag, since the code has been patched to make sure to + preserve the string value of strnum values, and the integer array + code should no longer mistakenly claim a strnum integer with a + nonstandard string representation. + +2016-07-03 Andrew J. Schorr + + * field.c (rebuild_record): Revert warning message regarding flags, + since I'm not yet totally confident that it is invalid to have FIELD + and MALLOC set at the same time. + +2016-07-03 Andrew J. Schorr + + * field.c (rebuild_record): Do not turn off the STRING flag when + copying a FIELD node, and issue a warning if MALLOC is enabled. + +2016-07-01 Arnold D. Robbins + + * array.c (value_info): Print something reasonable when stfmt + is -1. + * mpfr.c (mpg_format_val): Don't cast index to char. + * node.c (r_format_val): Ditto. + Thanks to Andrew Schorr for pointing these out. + + Unrelated: + + * gawkapi.c (api_warning): Fix the comment header. + (api_lintwarn): Factor out the call to va_end to after the if. + + Unrelated: + + * symbol.c (get_symbols): Add FUNCTAB and SYMTAB to the list + for the -d option. + * awkgram.y (dump_vars): Allow "-" to mean print to stdout. + Thanks to Hermann Peifer for the reports. + +2016-06-30 Arnold D. Robbins + + * node.c (r_force_number): Coding style change. + +2016-06-30 Andrew J. Schorr + + * awk.h (STFMT_UNUSED): New define indicating that the string + representation does not depend on CONVFMT or OFMT. + (force_string): Use STFMT_UNUSED to improve code clarity. + * array.c (value_info): Fix stfmt logic. + * builtin.c (do_print): Use STFMT_UNUSED to improve code clarity. + * field.c (set_record): Ditto. + * gawkapi.c (api_sym_update_scalar): Ditto. + * int_array.c (is_integer): Check stfmt equals STFMT_UNUSED before + bothering to inspect the string. + * mpfr.c (mpg_format_val): Use STFMT_UNUSED to improve code clarity. + Remove buggy cast to char in stfmt assignment. + * node.c (r_format_val): Ditto. + * str_array.c (str_lookup): Use STFMT_UNUSED to improve code clarity. + * symbol.c (check_param_names): Ditto. + +2016-06-29 Andrew J. Schorr + + * node.c (r_force_number): Optimize by trimming leading and trailing + white space before we inspect the string contents. + (get_ieee_magic_val): Must terminate the string with '\0' before + calling strtod. + +2016-06-27 Andrew J. Schorr + + * gawkapi.h (awk_string): Add comment about the potential lack of + NUL-termination. + +2016-06-27 Andrew J. Schorr + + * awk.h: Add a comment regarding the potential lack of NUL-termination + for Node_val strings. + +2016-06-27 Andrew J. Schorr + + * node.c (r_format_val): Do not free stptr unless STRCUR is set. + This is safer than testing for non-NULL stptr, since, for example, + pp_number copies a node and calls r_format_val, but does not bother + to set stptr to NULL beforehand. + +2016-06-26 Andrew J. Schorr + + * node.c (r_force_number): When checking for trailing spaces, protect + against running off the end of the string. + * mpfr.c (force_mpnum): Ditto. + +2016-06-26 Andrew J. Schorr + + * builtin.c (do_print): There's actually no reason to test whether a + value is a number, since the STRCUR flag and stfmt value contain all + the necessary info, as in awk.h:force_string. + +2016-06-26 Andrew J. Schorr + + * builtin.c (do_print): Do not use OFMT to print strnum values. We + accomplish this by calling format_val for a NUMBER only + if there is no string currently available, or if stfmt equals + neither -1 nor OFMTidx. + +2016-06-26 Arnold D. Robbins + + * awk.h: Edit some comments. Add others. Minor coding style changes. + * builtin.c (format_tree): Restore a comment. + (do_mktime): Restore saving/restoring of byte after format string. + (do_sub): Coding style. Use %.*s in warning message. + (nondec2awknum): Restore saving/restoring of byte after string value + being converted. + * eval.c: Minor coding style edits. + * int_array.c (is_integer): Fix order of checks for not + updating string value: check length == 0 before testing values. + Coding style edits. + * mpfr.c (do_mpfr_strtonum): Coding style edits. + * node.c (r_force_number): Restore saving/restoring of byte after + string value being converted. Edit comments some. + +2016-06-26 Arnold D. Robbins + + Repair change of 2015-08-25 to handling of MAYBE_NUM. + * mpfr.c (mpg_force_number): Just clear MAYBE_NUM. + * node.c (r_force_number): Clear STRING separately after + setting NUMBER. + + Thanks to Andrew Schorr for reporting the problem. + A test case will eventually be merged into master. + + Only in stable and master. + +2016-06-20 Andrew J. Schorr + + * builtin.c (do_strftime): Call fixtype before checking flags for + STRING type. + (do_print): Call fixtype before checking whether argument is a NUMBER. + * eval.c (set_BINMODE): Call fixtype before checking value type. + No need to call force_number if the flags say it's a number. + (r_get_field): Fix lint check for non-numeric argument. + * io.c (redirect): Call fixtype before checking whether it's a string. + +2016-06-18 Andrew J. Schorr + + * node.c (r_force_number): Fix typo in comment. + +2016-06-16 Arnold D. Robbins + + * awk.h: Add comment headers for several functions. + * builtin.c (nondec2awknum): Actually set a '\0' before + calling to strtod() so that the save and restore do something. + +2016-06-15 Arnold D. Robbins + + * config.sub: Update from GNULIB. + +2016-06-14 Andrew J. Schorr + + * awk.h (boolval): New inline function to standardize testing whether + a node's value is true. + * builtin.c (do_strftime): Use boolval to handle 3rd argument. + * eval.c (set_IGNORECASE, eval_condition): Use new boolval function. + * io.c (pty_vs_pipe): Use new boolval function. + +2016-06-14 Andrew J. Schorr + + * builtin.c (do_strftime): Fix handling of 3rd argument to work + as a standard boolean: non-null or non-zero. + +2016-06-14 Andrew J. Schorr + + * gawkapi.c (node_to_awk_value): When caller requests AWK_SCALAR + or AWK_UNDEFINED, we need to call fixtype before we check the type. + +2016-06-13 Andrew J. Schorr + + * awkgram.y: Eliminate STRCUR tests. Must use STRING to test whether + a scalar is a string. + +2016-06-12 Andrew J. Schorr + + * awk.h: Improve comment about STRING and NUMBER type assignment. + (nondec2awknum): Add endptr argument. + (fixtype): New inline function to clarify a scalar's type. + * array.c (sort_up_value_type): Call fixtype before checking the value + types. + * awkgram.y (yylex): Pass NULL endptr argument to nondec2awknum. + (valinfo): Remove dead tests: either STRING or NUMBER or both + must be set, so there's no reason to continue with checks for NUMCUR or + STRCUR. + * builtin.c (do_exp, do_int, do_log, do_sqrt, do_sin, do_cos, do_srand): + Fix lint check for non-numeric argument. + (do_string): Fix lint check for 1st and 2nd args being strings. + (do_length): Fix assert to allow for Node_typedregex. + Fix lint check for non-string argument. + (format_tree): Fix type detection for '%c' arguments. + (do_strftime): Fix lint check for non-numeric 2nd argument and + lint check for non-string 1st argument. + (do_mktime): Fix lint check for non-string argument. Eliminate useless + logic to save and restore terminating NUL. + (do_system, do_tolower, do_toupper): Fix lint check for non-string + argument. + (do_atan2, do_lshift, do_rshift, do_and, do_or, do_xor, do_compl, + do_intdiv): Fix lint checks for non-numeric args. + (do_sub): Attempt to clean up treatment of 3rd argument to gensub + despite vague documentation of expected behavior. + (do_strnum): Fix bug in number detection logic, and pass new endptr + arg to nondec2awknum. + (nondec2awknum): Add endptr argument so caller can detect how much + of the string was consumed. Eliminate unnecessary logic to save + and restore terminating NUL char. + (do_typeof): Use a switch to specify which cases are supported, and + issue a warning message when a corrupt type is detected. + * debug.c (print_memory): At least one of NUMBER and STRING should + be set, so no need to check for NUMCUR or STRCUR in addition. + * eval.c (cmp_nodes): Use fixtype function to fix arg types. + (set_IGNORECASE): Fix logic for acting on value type. Note that + setting IGNORECASE to a string value of "0" with NUMCUR set now enables + ignorecase, so that's a subtle change in behavior that seems to match + the docs. + (set_LINT): Try to clean up configuration logic based on type. + * ext.c (get_argument): Remove unused variable pcount. + * gawkapi.c (node_to_awk_value): Remove pointless test for NUMCUR + after calling force_number. Similarly, no need to test for STRCUR + after calling force_string. + * int_array.c (is_integer): Reject cases where a string value is + present that will not be correctly regenerated from the integer; + in particular, this could happen where blank space padding is present, + leading zeroes are present, or for hex or octal values. + Also fix some bugs where a strnum was converted to a NUMBER without + turning off the STRING bit. + * io.c (redirect_string): Make lint warning message more accurate. + (redirect): Change not_string test to use STRING bit, not STRCUR. + (pty_vs_pipe): Use fixtype to correct logic for detecting whether a + value is anumber. + * mpfr.c (mpg_force_number): If NUMCUR is set, there's no need to + test is_mpg_number. If it's not, the NODE is corrupt and we've got + bigger problems. Fix flag manipulation logic. Always set NUMCUR and + clear MAYBE_NUM, + (set_PREC): Fix logic using fixtype function. + (do_mpfr_atan2, do_mpfr_intdiv): Fix lint check for non-numeric + arguments. + (do_mpfr_func, do_mpfr_int, do_mpfr_compl, get_intval, do_mpfr_srand): + Fix lint check for non-numeric argument. + (do_mpfr_strtonum): Use fixtype and stop testing for NUMCUR bit. + * node.c (r_force_number): Eliminate pointless save and restore of + terminating NUL char. Always set NUMCUR and clear MAYBE_NUM, and + convert STRING to NUMBER if appropriate, fixing bugs in flag + manipulations. For non-decimal data, need to consider whether there + is trailing non-numeric data in deciding whether a MAYBE_NUM should + be converted to a NUMBER, so take advantage of new endptr arg + to nondec2awknum. + +2016-06-14 Arnold D. Robbins + + * builtin.c (do_sub): Fix sub for long runs of backslashes. + Thanks to Mike Brennan for the report. + + Unrelated: + * ext.c (get_argument): Remove unused variable pcount. + +2016-06-10 Arnold D. Robbins + + * config.guess, config.sub: Get latest from Gnulib master. + * main.c (UPDATE_YEAR): Bump to 2016. + +2016-06-09 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + + Unrelated: + + * configure.ac: Move AM_CONDITIONAL[ENABLE_EXTENSIONS] outside + the enclosing if. Thanks to Assaf Gordon + for the report. + +2016-06-08 Arnold D. Robbins + + * symbol.c (lookup): If got Node_val, it's a non-variable + in SYMTAB, return NULL. Can affect watchpoints in the debugger, + maybe other places. Thanks to Hermann Peifer for the + test case and report. + +2016-06-05 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2016-06-01 Arnold D. Robbins + + * nonposix.h (getpgrp): Wrap declaration in ifdef so it doesn't + mess things up on POSIX systems (like Solaris). Thanks to + Nelson Beebe for the report. + * node.c (is_hex): New function to check for 0x preceded by + optional sign. + (r_force_number): Use it. Thanks to Mike Brennan for the report. + +2016-05-30 Andrew J. Schorr + + * gawkapi.h (awk_ext_func_t): Rename num_expected_args to + max_expected_args, and explain in the comment that it doesn't really + matter. + * ext.c (make_builtin): Replace num_expected_args with + max_expected_args. + (get_argument): Do not check whether the argument number exceeds + the maximum expected by the function. + +2016-05-30 Arnold D. Robbins + + * main.c (arg_assign): Fully bracket ifdefs around call + to force_number. Thanks to Andrew Schorr for pointing out + that force_number was called only if LC_NUMERIC was defined. + + Lots of files: Update copyright date. + + * field.c (set_FS): Handle FS = "\0" if RS = "". Thanks to + Janis Papanagnou for the report. + + * getopt.c, getopt.h, getopt1.c, getopt_int.h: Sync with GLIBC. + +2016-05-26 Andrew J. Schorr + + * awk.h (get_actual_argument): Remove unused "optional" argument. + (get_scalar_argument, get_array_argument): Change macro definition to + remove 3rd "optional" argument. + * ext.c (get_actual_argument): Remove unused "optional" argument. + * gawkapi.c (api_get_argument, api_set_argument): Remove unused final + argument to get_array_argument and get_scalar_argument. + +2016-05-26 Arnold D. Robbins + + * awk.h [fatal]: Make parentheses and use of indirection + consistent with warning and lintwarn. Thanks to Andrew Schorr + for pointing this out. + * str_array.c (str_lookup): Move test for MAYBE_NUM to where + we duplicate the subscript. Removing it across the board is + wrong if there are multiple references to the value. Thanks + to Andrew Schorr for discussion and test case. + +2016-05-26 Andrew J. Schorr + + * awk.h (get_actual_argument): Add an initial argument containing + the (NODE *) previously returned by get_argument. This allows us to + eliminate a call to get_argument from inside get_actual_argument. + (get_scalar_argument, get_array_argument): Change macro definition to + add an initial node argument to pass through to get_actual_argument. + * ext.c (get_actual_argument): Add initial (NODE *) argument to contain + the value previously returned by get_argument. This allows us to + avoid repeating the call to get_argument. We can also eliminate the + check for a NULL value, since the caller did that already. + * gawkapi.c (api_get_argument): Pass (NODE *) returned by get_argument + to get_array_argument and get_scalar_argument. + (api_set_argument): Pass (NODE *) returned by get_argument to + get_array_argument. + +2016-05-25 Manuel Collado . + + * gawkapi.c (api_nonfatal): New function. + (api_impl): Include it. + * gawkapi.h (struct gawk_api): Add api_nonfatal member. + (nonfatal): New macro. + +2016-05-12 Arnold Robbins + + * str_array.c (str_lookup): Remove MAYBE_NUM from subscript flags. + Bug reported by Andres Legarra . + + Unrelated: Fix issues with SIGPIPE. Reported by + Ian Jackson . + + * builtin.c (do_system): Reset/restore SIGPIPE to/from default around + call to system. + * io.c (redirect, gawk_popen [PIPES_SIMULATED]): Same. + +2016-05-12 Eli Zaretskii + + * nonposix.h: Add prototypes for POSIX functions emulated in pc/* + files. + +2016-05-09 Andrew J. Schorr + + * interpret.h (r_interpret): Op_ext_builtin. No need to test whether + op == Op_ext_builtin, since we wouldn't be here otherwise. + +2016-05-03 Andrew J. Schorr + + * builtin.c (format_tree): Do not waste a byte at the end of a string. + +2016-05-03 Andrew J. Schorr + + * builtin.c (format_tree): After the string has been rendered, use + realloc to shrink the buffer to the needed size. Otherwise, the minimum + buffer size of 512 bytes can result in lots of wasted memory if many + sprintf results are stored in an array. + +2016-05-02 Andrew J. Schorr + + * gawkapi.h (gawk_api_major_version, gawk_api_minor_version): Add + CPP #define values to support conditional compilation. + +2016-05-02 Arnold D. Robbins + + * dfa.h, dfa.c: Sync with grep. + * re.c (research): Adjust type of try_backref. + +2016-05-02 Arnold D. Robbins + + * awk.h (success_node): Declare. + * array.c (success_node): Define. + * cint_array.c, int_array.c, str_array.c: Use `& success_node' + instead of `(NODE **) ! NULL' to indicate success throughout. + Thanks to Pat Rankin for the cleanup suggestion. + +2016-04-27 Arnold D. Robbins + + * io.c (set_RS): Use rs1scan if do_traditional, even if length + of RS is > 1. Bug reported by Glauco Ciullini + . + +2016-04-24 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2016-04-11 Arnold D. Robbins + + * regex_internal.c: Replace _GL_ATTRIBUTE_PURE with + __attribute__. + +2016-04-11 Arnold D. Robbins + + * regexec.c: Stamp out last remaining use of __attribute. + * regcomp.c: Undo change of 2016-01-24 when parsing single-byte + ranges. Go back to treating them as bytes and not as characters. + The change broke things on Windows in non-UTF-8 character sets. + * mbsupport.h (mbstate_t): Define to int. + Update copyright. + +2016-04-10 John E. Malmberg + + * regex_internal.c: Use _GL_ATTRIBUTE_PURE macro + +2016-04-07 Arnold D. Robbins + + * awk.h (two_way_close_type): Move here from io.c. + (close_rp): Add declaration. + * builtin.c (do_printf): Call close_rp before fatal message when + attempting to write the closed write end of a two way pipe. + (do_print): Ditto. + (do_print_rec): Ditto. + * io.c (do_getline_redir): Same, for reading closed read end. + (close_rp): Make not static. + +2016-04-07 Eli Zaretskii + + * nonposix.h (WEXITSTATUS, WIFEXITED, WIFSIGNALED, WTERMSIG) + (WIFSTOPPED, WSTOPSIG) [__MINGW32__]: New macros to replace the + missing header sys/wait.h. + (w32_status_to_termsig): Add prototype. + + * builtin.c (do_system) [__MINGW32__]: Compute the exit status of + 'system' differently under --traditional, as the low 8 bits are + the most interesting. + +2016-04-06 Arnold D. Robbins + + * builtin.c (do_printf): Allow a write to the closed write-end of + a two-way pipe to be nonfatal if NONFATAL is set for it. + (do_print): Ditto. + (do_print_rec): Ditto. + * io.c (do_getline_redir): Same thing for reading from a closed + read end of a two-way pipe. Fatal error. + +2016-04-04 Arnold D. Robbins + + * builtin.c (do_fflush): Add warning for flush to two-way + pipe where write end was closed. + * io.c (flush_io): Add some braces for the for loop. + +2016-04-02 Arnold D. Robbins + + * builtin.c (do_printf): If the redirection is two way but the + fp is NULL, it means we're writing to the closed write-end of + a two-way pipe. Issue a fatal error message. + (do_print): Ditto. + (do_print_rec): Ditto. + * io.c (do_getline_redir): Same thing for reading from a closed + read end of a two-way pipe. Fatal error. + * NEWS: Updated. + +2016-03-27 Stephen Davies + + * awkgram.y (get_comment): Strip CRs from comment. Strip + off trailing newlines. + +2016-03-21 Arnold D. Robbins + + * profile.c (pprint): Improve handling of comment after + and if statement without an else. + +2016-03-19 Arnold D. Robbins + + Considerable improvements to handling of comments when pretty + printing, particularly for end-of-line comments. + + * awkgram.y (prior_comment, comment_to_save): New variables. + (add_pending_comment): New function. + (grammar): Jump through lots more hoops to capture comments. + Due to shift-reduce parsing, there can be up to two comments + captured and waiting to be saved; be sure to get them both and + at the right times. This is difficult since comments have no + real syntactic existence. Call add_pending_comment on most of + the simple statements. + (get_comment): Save a pre-existing comment in prior_comment. + (split_comment): Use comment_to_save instead of `comment'. + * profile.c (end_line): Change to return the instruction after + the comment that gets printed; adjust return type. + (pprint): Add skip_comment static variable. Adjust logic for + skipping an end-of-line comment; only do it if skip_comment is + true. This is set to true in places where we can't use the + return value from end_line(). Call end_line() in many more places. + (pp_func): Handle end-of-line comments after a function header. + +2016-03-17 Arnold D. Robbins + + * debug.c (print_instruction): For Op_comment, improve notation as + to whether it's a full comment or an end of line comment. + +2016-03-14 Arnold D. Robbins + + * io.c (socketopen): For SOCK_DGRAM, set read_len to sizeof + remote_addr. Makes UDP more or less work again. + Thanks to Juergen Kahrs for the fix. + +2016-03-11 Arnold D. Robbins + + * debug.c (print_instruction): Normalize printing of comment dump. + +2016-03-10 Arnold D. Robbins + + * builtin.c (do_system): Further improvements. Catch core dump + flag. + +2016-03-11 Arnold D. Robbins + + * builtin.c (do_system): Improve return values of system(). + +2016-03-08 Arnold D. Robbins + + * profile.c (print_instruction): Fix duplicate case not caught + by TinyCC. Grrr. + +2016-03-07 Arnold D. Robbins + + * profile.c (print_instruction): Further improvements in + instruction dump, especially for when pretty-printing. + * builtin.c (do_system): Augment the logic for the return + value so that death-by-signal info is available too. + +2016-03-03 Arnold D. Robbins + + * profile.c (pp_list): Unconditionally compute delimlen. Avoids + compiler warning. + +2016-03-02 Arnold D. Robbins + + * debug.c (print_instruction): Improvements in instruction dump + for if and else. + +2016-03-01 Arnold D. Robbins + + * debug.c (print_instruction): For Op_comment, add notation as + to whether it's a full comment or an end of line comment. + +2016-02-29 Arnold D. Robbins + + * profile.c (pp_list): Handle the case of nargs equal to zero. + Thanks to Hermann Peifer for the report. + +2016-02-28 Arnold D. Robbins + + * profile.c (pprint): Fix copy-paste error in else handling. + Thanks to Michal Jaegermann for the report. + +2016-02-23 Arnold D. Robbins + + * config.guess, config.rpath, config.sub: Update to latest + from GNULIB. + +2016-02-23 Arnold D. Robbins + + * NEWS: Update full list of infrastructure tools. + +2016-02-22 gettextize + + * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.19.7. + +2016-02-21 Nelson H.F. Beebe + + * random.c [SHUFFLE_BITS, SHUFFLE_MAX, SHUFFLE_MASK]: New macros. + (shuffle_init, shuffle_buffer): New static variables. + (random_old): Renamed from random. + (random): New function wrapping random_old and providing a + shuffle buffer to increase the period. See the literature citations + and other notes in the code. + +2016-02-21 Arnold D. Robbins + + * regexec.c (prune_impossible_nodes): Remove attribute that + keeps it from compiling with 32 bit GCC. Who the heck knows + why or how. Sigh. Double sigh. + +2016-02-20 Arnold D. Robbins + + * regcomp.c, regex.c, regex.h, regex_internal.c, regex_internal.h, + regexec.c: Sync with GLIBC, mostly prototype changes. + +2016-02-18 Arnold D. Robbins + + Fix profile / pretty-printing to chain else-ifs. + + * profile.c (pprint): Change third argument into a set of flags + for in the for header or in an else if. Adjust case Op_K_else to + make the right checks and format the code properly. In Op_K_if + clear the flag so that any following else gets indented properly. + Adjust all calls. + +2016-02-14 Arnold D. Robbins + + * README, NEWS: Updated to reflect use of Texinfo 6.1. + + Unrelated: + + * configure.ac: Switch to AC_PROG_CC_C99 to enable C99 + compilation and features. + * dfa.c: Sync with GNU grep, go back to C99 style declarations + at point of use. + +2016-02-05 Arnold D. Robbins + + Make optimization (constant folding and tail call recursion) + be on by default. + + * awkgram.y (common_exp): Only do concatenation of two strings(!) + * main.c (do_optimize): Init to true. + (optab): Add new -s/--no-optimize option. + (usage): Update message to include it. + (parse_args): Parse it. Set do_optimize to false if pretty + printing or profiling. + * NEWS: Updated. + +2016-01-28 Arnold D. Robbins + + * Makefile.am (SUBDIRS): Include extras. Otherwise dist does + doesn't work. + +2016-01-27 Arnold D. Robbins + + * configure.ac (GAWK_AC_AIX_TWEAK): Remove call. + * configure: Regenerated. + * io.c (GAWK_AIX): Check _AIX instead. + * custom.h (_AIX): Add define of _XOPEN_SOURCE_EXTENDED. + + Unrelated: + + * configure.ac: Remove old stuff for ISC Unix, no longer needed. + * configure: Regenerated. + +2016-01-25 John E. Malmberg + + * io.c (redirect): Need to call close_one more than once after + running out of file handles. + +2016-01-25 Arnold D. Robbins + + * NEWS: Document VMS support updated. + +2016-01-24 Arnold D. Robbins + + Regex: treat [x] as x if x is a unibyte encoding error. + This change removes an ifdef GAWK. + + * regcomp.c (parse_byte) [ !_LIBC && RE_ENABLE_I18N]: New function. + (build_range_exp) [ !_LIBC && RE_ENABLE_I18N]: Use it. + From Paul Eggert . + +2016-01-22 Arnold D. Robbins + + * regexec.c (prune_impossible_nodes): Remove all attributes, on + both declaration and definition. Fixes a Linux Mint 17 compilation + braino reported by Antonio Colombo. + * regex_internal.h (test_malloc): Add cast to silence a warning + on the same system. + (test_realloc): Ditto. + +2016-01-20 Arnold D. Robbins + + * regex_internal.h [attribute_hidden]: Remove definition. + * regcomp.c [attribute_hidden]: Remove uses. Not needed since + the variables are static. Thanks to Paul Eggert for pointing + this out. + +2016-01-18 Paul Eggert + + Diagnose ERE '()|\1' + Problem reported by Hanno Boeck in: http://bugs.gnu.org/21513 + + * lib/regcomp.c (parse_reg_exp): While parsing alternatives, keep + track of the set of previously-completed subexpressions available + before the first alternative, and restore this set just before + parsing each subsequent alternative. This lets us diagnose the + invalid back-reference in the ERE '()|\1'. + + Unrelated: General minor cleanups (spelling, code) from Gnulib: + + * regex.h, regex_internal.c, regex_internal.h, regexec.c: Minor + cleanups. + +2016-01-14 Arnold D. Robbins + + * eval.c (r_get_lhs): If original array was Node_var_new, + assign value that is dupnode of Nnull_string and not + Nnull_string directly. Fixes core dump reported by + ruyk . + + Unrelated: + + * ChangeLog: Cleanup spurious extra whitespace. + +2016-01-03 Arnold D. Robbins + + * configure.ac (GAWK_AC_LINUX_ALPHA): Remove call. + * configure: Regenerated. + * NEWS: Document removal of support for GNU/Linux on Alpha. + +2016-01-02 Arnold D. Robbins + + * dfa.c (add_utf8_anychar): Minor change in declaration of + utf8_classes to keep Tiny CC happy. Also syncs with grep. + * dfa.h: Sync with grep (update copyright year). + +2015-12-27 Arnold D. Robbins + + * awkgram.y (mk_condition): Revise to correctly handle + empty else part for pretty printing. Bug report by + ziyunfei <446240525@qq.com>. + +2015-12-20 Arnold D. Robbins + + * io.c (nonfatal): New static constant string. + * is_non_fatal, is_non_fatal_redirect: Use it. + +2015-12-16 Arnold D. Robbins + + * io.c (two_way_open): Remove unneeded close of slave in the + parent. + +2015-12-16 Arnold D. Robbins + + * profile.c (pp_number): Move count into ifdef for MPFR. Avoids + an unused variable warning if not compiling for MPFR. + + Unrelated: + + * io.c (two_way_open): If using a pty instead of pipes, open the + slave in the child. Fixes AIX and doesn't seem to break GNU/Linux. + +2015-11-26 Arnold D. Robbins + + * command.y (cmdtab): Add "exit" as synonym for "quit". + Suggested by Joep van Delft . + * NEWS: Document this. + +2015-11-24 Arnold D. Robbins + + * debug.c (debug_pre_execute): Fix to check watchpoints before + checking breakpoints. Gives more natural behavior for the user. + * NEWS: Document this. + Issue reported by Joep van Delft . + +2015-10-28 Arnold D. Robbins + + * awkgram.y (nextc): Don't allow '\0' even if check_for_bad + is false. Fixes a problem reported by Hanno Boeck . + + Unrelated: + + * dfa.c: Sync with GNU grep. + +2015-10-25 Arnold D. Robbins + + * awkgram.y (yylex): Fix invalid write problems. + Reported by Hanno Boeck . + Only appeared in master. Harumph. + +2015-10-16 Arnold D. Robbins + + * Makefile.am (SUBDIRS): Fix ordering so that + make check directly after configure works properly. + Thanks to Michal Jaegermann + for the report. + + Unrelated: + + * dfa.c: Sync with GNU grep. + +2015-10-11 Arnold D. Robbins + + * awkgram.y (yylex): Fix invalid read problems. + Reported by Hanno Boeck . + +2015-10-04 Arnold D. Robbins + + * configure.ac: Bump version to 4.1.3a. + +2015-09-26 Arnold D. Robbins + + * awkgram.y (yylex): Diagnose multidimensional arrays for + traditional/posix (fatal) or lint. Thanks to Ed Morton + for the bug report. + +2015-09-25 Arnold D. Robbins + + * config.guess, config.sub, config.rpath: Updated. + +2015-09-18 Arnold D. Robbins + + * field.c (fpat_parse_field): Always use rp->non_empty instead + of only if in_middle. The latter can be true even if we've + already parsed part of the record. Thanks to Ed Morton + for the bug report. + +2015-09-11 Daniel Richard G. + + * regcomp.c: Include strings.h, wrapped in ifdef. Revise + defines for BTOWC. + * regex_internal.h: Remove ZOS_USS bracketing ifdefs. + +2015-09-04 Arnold D. Robbins + + * profile.c (pp_num): Use format_val to print integral values + as integers. Thanks to Hermann Peifer for the report. + +2015-08-28 Daniel Richard G. + + * Makefile.am, configure.ac: Use an Automake conditional to + enable/disable the "extensions" subdirectory instead of + producing a stub Makefile therein from the configure script. + * awk.h, custom.h, regex_internal.h: Removed z/OS-specific code + that is no longer needed due to improvements in Gawk's general + Autotools support. + * awk.h: Allow to be #included together with + as this is required on some systems (z/OS). + * io.c, configure.ac: is needed for select() + and related bits on z/OS. + * awk.h: Handle the redefinition of EXIT_FAILURE on z/OS in a + more elegant/general way. + * awkgram.y, command.y, configure.ac, eval.c, + helpers/testdfa.c: Define and use the USE_EBCDIC cpp symbol + instead of checking the value of 'a' whenever we want to know + if we're on an EBCDIC system. Also, don't assume that z/OS + necessarily means EBCDIC, as the compiler does have an ASCII + mode (-qascii). + * awkgram.y, command.y, configure.ac: On EBCDIC systems, + convert singleton EBCDIC characters in the input stream to + ASCII on the fly so that the generated awkgram.c/command.c in + the distributed sources can be used, i.e. we don't have to + require the user to build Bison and re-generate those files + themselves. This implementation uses a z/OS-specific function + (__etoa_l()) to do the conversion, but support for other + systems can be added in the future as necessary. + * io.c: No need to protect this block of "#if + defined(HAVE_TERMIOS_H)" code from z/OS; it works just fine + there. + * configure.ac: Check for the "struct passwd.pw_passwd" and + "struct group.gr_passwd" fields and conditionalize their use, + as they don't exist on z/OS. Needed for doc/gawktexi.in. + +2015-08-25 Arnold D. Robbins + + * node.c (str2wstr): Upon finding an invalid character, if + using UTF-8, use the replacement character instead of skipping + it. Helps match() and other functions work better in the face + of unexpected data. Make the lint warning an unconditional + warning. + + Unrelated: + + * awk.h: Add explanatory comment on the flags related to + types and values. + * mpfr.c (mpg_force_number): If setting NUMBER, clear STRING also + when clearing MAYBE_NUM. + (set_PREC): Check STRCUR instead of STRING. + * node.c (r_force_number): If setting NUMBER, clear STRING also + when clearing MAYBE_NUM. + +2015-08-15 Arnold D. Robbins + + * dfa.c (dfamust): Restore c90 compat by moving some + variable declarations to the top of the routine. + +2015-08-12 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. Yet again, again. + +2015-08-02 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. Yet again. + +2015-07-21 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2015-07-18 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2015-07-08 Arnold D. Robbins + + * dfa.h, dfa.c: Sync with GNU grep. + +2015-06-29 Arnold D. Robbins + + * awkgram.y (yylex): If gawk extension function is found as + a function in a user-defined function body, treat it normally. + Makes eval "print and(a, 1)" work in the debugger again. + Thanks, yet again, to Hermann Peifer. + * interpret.h (r_interpret): Op_subscript. UPREF if the + element value is a typed regexp. Thanks to Hermann Peifer. + +2015-06-28 Arnold D. Robbins + + Improve memory tracking of typed regexps. + + * awkgram.y (make_regnode): Set valref to 1. + * interpret.h (r_interpret): Have Op_push_re upref typed regexp. + * builtin.c (do_typeof): OK to deref typed regex. + * awk.h (force_string): Do dupnode on the regexp text. + +2015-06-26 Arnold D. Robbins + + Remove support for old-style extensions. + + * awk.h (Node_old_ext_func, Op_old_ext_func): Removed. + Remove all uses throughout the code. + (load_old_ext, make_old_builtin): Remove declarations. + * ext.c (load_old_ext, make_old_builtin): Removed. + * awkgram.y (tokentab): Remove "extension" entry. + * eval.c (Node_old_ext_funci, Op_old_ext_func): Remove from tables. + * interpret.h (interpret): Remove stuff for old extensions. + + Unrelated: + + * builtin.c (do_typeof): Add support for strnum, distinguish + untyped from unassigned, use "string" and "number". Thanks to + Hermann Peifer for suggesting inclusion of strnum. + +2015-06-25 Arnold D. Robbins + + Further work straightening out memory management for typeof. + + * awk.h (DEREF): Add an assert. + * builtin.c (do_typeof): Add comments, cases where not to deref. + * debug.c (print_instruction): Add Op_push_arg_untyped. + * interpret.h (r_interpret): Additional comments / tweaks for + Op_push_arg_untyped. + + Unrelated. Make `x = @/foo/ ; print x' print something. + + * builtin.c (do_print): Check for Node_typedregex and handle it. + Needed for adding test code. + + Unrelated. Typo fix. + + * debug.c (initialize_watch_item): Dupnode the right thing. + +2015-06-22 Arnold D. Robbins + + * awkgram.y (snode): Make isarray not scalarize untyped parameters + also. + * profile.c (pprint): Add Op_push_arg_untyped. + + Improve debugger support for typed regexps. + Thanks to Hermann Peifer for the bug report. + + * awkgram.y (valinfo): Add support for Node_typedregex. + * debug.c (watchpoint_triggered): Handle Node_typedregex. + (initialize_watch_item): Ditto. + (print_memory): Ditto. + + Fix typeof to work on subarrays. Thanks, yet again, to + Hermann Peifer for the bug report. + + * builtin.c (do_typeof): Don't deref Node_var_array. + +2015-06-21 Arnold D. Robbins + + Fixes for typeof - Don't let typeof change an untyped variable + into a scalar. + + * awk.h (opcodeval): Add Op_push_arg_untyped. + * awkgram.y (snode): Separate out case for do_typeof, use + Op_push_arg_untyped. + * builtin.c (do_typeof): Arg will be equal to Nnull_string + if it's untyped. + * eval.c (optypes): Add Op_push_arg_untyped. + * interpret.h (r_interpret): Add Op_push_arg_untyped handling. + +2015-06-19 Arnold D. Robbins + + * builtin.c (do_isarray): Minor edit to lint warning. + * TODO: Updated. + +2015-06-14 Arnold D. Robbins + + * regcomp.c, regex_internal.h, regexec.c: Sync with GLIBC. + + Unrelated: + + * regex_internal.c, regexec.c: __attribute --> __attribute__. + + Related: + + * regex_internal.h: Clean up defines for non-GCC for attribute; + essentially sync it with GLIBC. + +2015-06-12 Arnold D. Robbins + + * awkgram.y: Finish converting "hard" regex to "typed" regex. + +2015-05-31 Arnold D. Robbins + + * field.c (posix_def_parse_field): Removed. It's no longer + needed after updates to the POSIX standard. Thanks to + Michael Klement for pointing this out. + +2015-05-26 Paul Eggert + + * floatcomp.c (count_trailing_zeros): New function. + This compiles to a single TZCNT instruction on the x86-64. + (adjust_uint): Use it to keep more high-order bits when + some of the lowest-order bits are zero. This implements + the documented behavior: "If the result cannot be represented + exactly as a C 'double', leading nonzero bits are removed one by + one until it can be represented exactly." + +2015-05-26 Arnold D. Robbins + + * regcomp.c: Fix offsets so error messages come out correct + once again. + +2015-05-19 Arnold D. Robbins + + * 4.1.3: Release tar ball made. + +2015-05-15 Andrew J. Schorr + + * symbol.c (load_symbols): Plug minor memory leak by calling unref(tmp) + on "identifiers" string after assoc_lookup is done with it. + +2015-05-15 Andrew J. Schorr + + * main.c (load_procinfo_argv): New function to save argv array values + in PROCINFO["argv"][0..argc-1]. + (load_procinfo): Call load_procinfo_argv. + +2015-05-11 Arnold D. Robbins + + * awk.h, awkgram.y, builtin.c, eval.c profile.c, re.c: + Change Node_hardregex to Node_typedregex everywhere. + +2015-05-05 Arnold D. Robbins + + * awkgram.y (yylex): Yet Another Fix for parsing bracket + expressions. Thanks yet again to Andrew Schorr. Maybe it's + even finally nailed down now. + + Unrelated: + + * config.guess, config.sub: Get latest versions. + + Make profiling for hard regexes work. + + * profile.c (pp_string_or_hard_regex): Renamed from pp_string. + Add bool param for hard regex and add @ if so. + (pp_string): New function, calls pp_string_or_hard_regex. + (pp_hard_regex): New function, calls pp_string_or_hard_regex. + (pprint): Adjust to print a hard regex correctly. + +2015-05-01 Arnold D. Robbins + + * awkgram.y: Make sure values are not null in param list. + Avoids core dump for `function f(func, a) {}'. Thanks to + Tibor Palinkas . + +2015-04-30 Arnold D. Robbins + + * Makefile.am: Take --program-prefix into account when + installing/uninstalling the symlinks, especially 'awk'. + Thanks to Steffen Nurpmeso for + the report. + + Unrelated: + + * awkgram.y (yylex): Yet Another Fix for parsing bracket + expressions. Thanks again to Andrew Schorr. + +2015-04-29 Arnold D. Robbins + + * 4.1.2: Release tar ball made. + +2015-04-28 Arnold D. Robbins + + * builtin.c (isarray): Add lint warning that isarray() + is deprecated. + +2015-04-28 Arnold D. Robbins + + * awkgram.y (yylex): Rework the bracket handling from zero. + Thanks to Michal Jaegermann for yet another test case. + + Unrelated: + + * eval.c (setup_frame): Restore call-by-value for $0. This was + necessitated by the changes on 2014-11-11 for conserving + memory use. Thanks to Andrew Schorr for the report and isolating + the cause of the problem. + +2015-04-27 Arnold D. Robbins + + * awkgram.y (yylex): Make change of Jan 7 for parsing regexps + work better. Thanks to Nelson Beebe. + +2015-04-26 Arnold D. Robbins + + * dfa.c: Sync with grep. + +2015-04-16 Arnold D. Robbins + + * builtin.c (do_strftime): For bad time_t values, return "". + +2015-04-16 Andrew J. Schorr + + * node.c (r_force_number): If strtod sets errno, then force the + numeric value in node->numbr to zero. For subnormal values, strtod + sets errno but does not return zero, and we don't want to retain + those subnormal values. + +2015-04-16 Arnold D. Robbins + + Let parameter names shadow the names of gawk additional built-ins. + Make it actually work. + + * awkgram.y (want_param_names): Now an enum, there are three states. + (grammar): Set states properly. + (yylex): Improve checking logic. + +2015-04-16 Arnold D. Robbins + + * configure.ac: Updated by autoupdate. + * configure, aclocal.m4: Regenerated. + * io.c, main.c, profile.c: Removed use of RETSIGTYPE. + +2015-04-16 Arnold D. Robbins + + * builtin.c (do_strftime): Use a double for the timestamp and + check that the value is within range for a time_t. + + Unrelated: + + * regex_internal.h (test_malloc, test_realloc): Use %lu in printf + format for error messages. Thanks to Michal Jaegermann for + pointing this out. + + Unrelated: + + * NEWS: Updated. + +2015-04-15 Arnold D. Robbins + + Let parameter names shadow the names of gawk additional built-ins. + + * awkgram.y (want_param_names): New variable. + (yylex): Check it before returning a built-in token. + (grammar): Set and clear it in the right places. + +2015-04-14 Arnold D. Robbins + + * builtin.c (do_strftime): Restore checking for negative result and + add check that time_t is > 0 --- means we're assigning a negative value + to an unsigned time_t. Thanks again to Glaudiston Gomes da Silva + . + + If localtime() or gmtime() return NULL, return a null string. + Thanks to Andrew Schorr. + + Unrelated: + * builtin.c (call_sub): Fix for indirect gensub, 3 args now works. + + Unrelated: + + * builtin.c (do_sub): Improve some variable names for readability + and add / expand some comments. + + Unrelated: + + * builtin.c (call_sub, call_match, call_split_func): Allow for + regex to be Node_hardregex. + +2015-04-14 Andrew J. Schorr + Arnold D. Robbins + + * builtin.c (do_sub): Make computations smarter; initial len + to malloc, test for final amount after all matches done and + need to copy in the final part of the original string. + +2015-04-13 Arnold D. Robbins + + * regcomp.c (analyze): Prevent malloc(0). + * regex_internal.h (test_malloc, test_realloc): New functions + that check for zero count. + (re_malloc, re_realloc): Adjust to call the new functions for gawk. + * regexec.c (build_trtable, match_ctx_clean): Replace malloc/free + with re_malloc/re_free. + + Unrelated: + + * builtin.c (do_strftime): Disable checking timestamp value for less + than zero. Allows times before the epoch to work with strftime. + Thanks to Glaudiston Gomes da Silva + for raising the issue. + +2015-04-12 Arnold D. Robbins + + * Makefile.am (efence): Make this link again. + Thanks to Michal Jaegermann for pointing out the problem. + +2015-04-09 Andrew J. Schorr + + * awkgram.y (yyerror): Rationalize buffer size computations. Remove + old valgrind workarounds. + * debug.c (gprintf): Rationalize buffer size computations. + (serialize_subscript): Ditto. + * io.c (iop_finish): Rationalize buffer size computations. + * profile.c (pp_string): Correct space allocation computation. + +2015-04-08 John E. Malmberg + + * custom.h: VMS shares some code paths with ZOS_USS in + building gawkfts extension. + +2015-04-08 Arnold D. Robbins + + Factor out opening of /dev/XXX files from /inet. + Enable interpretation of special filenames for profiling output. + + * awk.h (devopen_simple): Add declaration. + * io.c (devopen_simple): New routine. + (devopen): Call devopen_simple as appropriate. + * profile.c (set_prof_file): Call devopen_simple as appropriate, + some additional logic to handle fd to fp conversion. + + Unrelated: + + * main.c (usage): Add a comment for translators. + +2015-04-08 Eli Zaretskii + + * profile.c (set_prof_file): Interpret a file name of "-" to mean + standard output. + +2015-04-06 Arnold D. Robbins + + * awk.h (force_number): Add `!= 0' check to bitwise operation. + * awkgram.y: Same, many places. + (check_special): Simplify code for checking extension flags. + +2015-04-05 Arnold D. Robbins + + * awkgram.y (install_builtins): If do_traditional is true, do not + install gawk extensions flagged with GAWKX. Similarly, if do_posix + is true, do not install functions flagged with NOT_POSIX. + This fixes a problem with spurious lint complaints about shadowing + a global variable that is not valid in traditional or posix mode. + Thanks to Andrew Schorr for finding the problem and supplying + initial code; I did it slightly differently. + +2015-04-03 Arnold D. Robbins + + * awk.h (force_string): If hard_regex, return string text of the regex. + (force_string, force_number): If hard_regex, return Nnull_string. + * awkgram.y: Fix ~ and !~ with @/.../. + * eval.c (setup_frame): Handle a hard regex. + * re.c (avoid_dfa): Ditto. + +2015-04-02 Andrew J. Schorr + + * NEWS: Rename div to intdiv. + +2015-04-02 Arnold D. Robbins + + Rename div() to intdiv(). + + * builtin.c (do_intdiv): Renamed from do_div. + * mfpr.c (do_mpfr_intdiv): Renamed from do_mpfr_div. + * awk.h: Update declarations. + * awkgram.y (tokentab, snode): Revise accordingly. + +2015-03-31 Arnold D. Robbins + + * awk.h (call_sub): Renamed from call_sub_func. + (call_match, call_split_func): Declare. + * builtin.c (call_sub): Renamed from call_sub_func. + (call_match, call_split_func): New functions. + * interpret.h (r_interpret): Call new functions as appropriate. + * node.c (r_unref): Revert change to handle Node_regex, not needed. + +2015-03-31 Arnold D. Robbins + + * awk.h (r_get_field): Declare. + * builtin.c (call_sub_func): Rearrange the stack to be what + the buitin function expects. + * eval.c (r_get_field): Make extern. + +2015-03-27 Arnold D. Robbins + + * io.c (redirect): Change not_string from int to bool. + * gawkapi.c (api_get_file): Minor stylistic improvements. + * NEWS: Updated for retryable I/O and new API function. + +2015-03-24 Arnold D. Robbins + + * awkgram.y (make_regnode): Make extern. + * awk.h (make_regnode): Declare. + * builtin.c (call_sub_func): Start on reworking the stack to + be what do_sub() expects. Still needs work. + * interpret.h (r_interpret): Add a cast in comparison with do_sub(). + * node.c (r_unref): Handle Node_regex nodes. + +2015-03-24 Andrew J. Schorr + + * interpret.h (r_interpret): When Op_K_exit has an argument of + Nnull_string, do not update exit_val, since no value was supplied. + +2015-03-24 Arnold D. Robbins + + * awk.h, gawkapi.c, io.c: Minor code reformatting. + +2015-03-20 Arnold D. Robbins + + Start on fixing indirect calls of builtins. + + * awk.h (call_sub_func): Add declaration. + * awkgram.y (lookup_builtin): Handle length, sub functions. + (install_builtin): Handle length function. + * builtin.c (call_sub_func): New function. + * interpret.h (r_interpret): If calling do_sub, do it through + call_sub_func(). + +2015-03-19 Arnold D. Robbins + + * re.c (re_update): Handle hard regex - for sub/gsub/gensub. + * awkgram.y (grammar): Add support for hard_regex with ~ and !~; + allowed only on the right hand side. + (mk_rexp): Handle a hard regex. + +2015-03-18 Arnold D. Robbins + + * builtin.c (do_typeof): Be smarter about checking for uninitialized + values; can now detect and return "untyped" for such values. + * awkgram.y (yylex): Collect @/.../ entirely in the lexer and return + a new terminal (HARD_REGEX). + (regexp): Reverted to just a regular awk regexp constant. + (hard_regexp): New nonterminal, can be used only in direct + assignment and as an argument in function call. New set of nonterminals + for function call expression lists. More work still to do. + +2015-03-18 Arnold D. Robbins + + * config.guess, config.sub: Updated, from libtool 2.4.6. + +2015-03-17 Arnold D. Robbins + + * profile.c (pp_number): Allocate enough room to print the number + in all cases. Was a problem mixing -M with profiling with a really + big number. Thanks to Hermann Peifer for the bug report. + +2015-03-08 Arnold D. Robbins + + * re.c (regexflags2str): Removed. It was redundant. + + * io.c (devopen): Change the logic such that if nonfatal is true + for the socket, don't do retries. Also clean up the formatting + some. At strictopen, check if errno is ENOENT and if so, propagate + the error from getaddrinfo() up to the caller. Add explanatory + comments. + +2015-02-28 Andrew J. Schorr + + * io.c (pty_vs_pipe): Remove check for NULL PROCINFO_node, since + this is now checked inside in_PROCINFO. + +2015-02-27 Andrew J. Schorr + + * io.c (socketopen): New parameter hard_error; set it if + getaddrinfo() fails. Change fatals to warnings. + (devopen): Pass in address of boolean hard_error variable + and stop trying to open the file if hard_error is true. + Save and restore errno around call to socketopen() and + use restored errno if open() fails at strictopen. + +2015-02-27 Arnold D. Robbins + + * symbol.c (check_param_names): Fix argument order in memset() call. + * configure.ac: Use AC_SEARCH_LIBS instead of AC_CHECK_LIB. This fixes + a long-standing problem where `-lm' was used twice in the final + compilation line. + +2015-02-27 Arnold D. Robbins + + Start on making regexp a real type. + + * awk.h (Node_hardregex): New node type. + (do_typeof): Add declaration. + * awkgram.y: Make @/.../ a hard regex. + (tokentab): New entry for typeof() function. + (snode): Try to handle typeof(). + (make_regnode): Handle Node_hardregex. + * builtin.c (do_typeof): New function. + * eval.c (nodetypes): Add Node_hardregex. + * re.c (re_update): Check for hardregex too in assert. + +2015-02-24 Arnold D. Robbins + + * POSIX.STD: Update copyright year. + * awkgram.y (yylex): Allow \r after \\ line continuation everywhere. + Thanks to Scott Rush for the report. + +2015-02-13 Arnold D. Robbins + + * awkgram.y (yylex): Be more careful about passing true to + nextc() when collecting a regexp. Some systems' iscntrl() + are not as forgiving as GLIBC's. E.g., Solaris. + Thanks to Dagobert Michelsen for + the bug report and access to systems to check the fix. + +2015-02-12 Arnold D. Robbins + + * POSIX.STD: Update with info about function parameters. + * configure.ac: Remove test for / use of dbug library. + +2015-02-11 Arnold D. Robbins + + * gawkapi.h: Fix spelling error in comment. + +2015-02-10 Arnold D. Robbins + + * profile.c (pprint): Restore printing of count for rules. + Bug report by Hermann Peifer. + +2015-02-08 Arnold D. Robbins + + * io.c: Make it "NONFATAL" everywhere. + +2015-02-08 Andrew J. Schorr + + * awk.h (RED_NON_FATAL): Removed. + (redirect): Add new failure_fatal parameter. + (is_non_fatal_redirect): Add declaration. + * builtin.c (efwrite): Rework check for non-fatal. + (do_printf): Adjust calls to redirect. + (do_print_rec): Ditto. Move check for redirection error up. + * io.c (redflags2str): Remove RED_NON_FATAL. + (redirect): Add new failure_fatal parameter. Simplify the code. + (is_non_fatal_redirect): New function. + (do_getline_redir): Adjust calls to redirect. + +2014-12-27 Arnold D. Robbins + + * awk.h (is_non_fatal_std): Declare new function. + * io.c (is_non_fatal_std): New function. + * builtin.c (efwrite): Call it. + +2015-02-07 Arnold D. Robbins + + * regcomp.c, regex.c, regex.h, regex_internal.c, regex_internal.h, + regexec.c: Sync with GLIBC. Mostly copyright date updates. + +2015-02-05 Andrew J. Schorr + + * eval.c (set_IGNORECASE): If IGNORECASE has a numeric value, try + using that before treating it as a string. This fixes a problem + where setting -v IGNORECASE=0 on the command line was not working + properly. + +2015-02-01 Arnold D. Robbins + + Move POSIX requirement for disallowing parameter names with the + same name as a function into --posix. + + * NEWS: Document it. + * awkgram.y (parse_program): Check do_posix before calling + check_param_names(). + * symbol.c (check_param_names): Set up a fake node and call + in_array() for function parameter names instead of linear + searching the function list a second time. Thanks to Andrew + Schorr for the motivation. + +2015-01-30 Arnold D. Robbins + + Don't allow function parameter names to be the same as function + names - required by POSIX. Bug first reported in comp.lang.awk. + + In addition, don't allow use of a parameter as a function name + in a call (but it's ok in indirect calls). + + * NEWS: Updated. + * awk.h (check_param_names): Add declaration. + * awkgram.y (at_seen): New variable. Communicates between + yylex() and the parser. + (FUNC_CALL production): Check at_seen and check that the identifier + is a function name. + (parse_program): Call check_param_names() and set errcount. + (yylex): Set at_seen after seeing an at-sign. + * symbol.c (check_param_names): New function. + +2015-01-24 Arnold D. Robbins + + Infrastructure updates. + + Bison 3.0.4. Automake 1.15. Gettext 0.19.4. + +2015-01-20 Arnold D. Robbins + + * gawkapi.c (api_set_array_element): Remove useless call to + make_aname. + * symbol.c (load_symbols): Ditto. + Thanks to Andrew Schorr for pointing out the problem. + +2015-01-19 Arnold D. Robbins + + * awkgram.c: Update to bison 3.0.3. + * command.c: Ditto. + * NEWS: Note same. + +2015-01-16 Stephen Davies + + * awkgram.y (rule): Set first_rule to false. Catches more cases + for gathering comments. Thanks to Hermann Peifer for the test case. + +2015-01-15 Arnold D. Robbins + + * dfa.h, dfa.c: Sync with grep. Mainly copyright updates. + * getopt.c, getopt.h, getopt1.c getopt_int.h: Sync with GLIBC. + Mainly copyright updates, one minor code fix. + +2015-01-14 Arnold D. Robbins + + Remove deferred variables. + + * awk.h (register_deferred_variable): Remove declaration. + * awkgram.y (is_deferred_variable, process_deferred, + symtab_used, extensions_used, deferred_variables, + process_deferred): Remove declarations, bodies, and uses. + * builtin.c (do_length): Update comment. + * main.c (init_vars): Just call load_procinfo() and `load_environ()'. + +2015-01-08 Andrew J. Schorr + + Revert changes to API deferred variable creation -- these variables + should be created when lookup is called, not when update is called. + * awk.h (variable_create): Remove function declaration. + * awkgram.y (variable_create): Remove function. + (variable): Restore variable_create functionality inline. + * gawkapi.c (api_sym_update): Revert to using install_symbol, since the + deferred variable check should be done when lookup is called, not here. + +2015-01-07 Andrew J. Schorr + + * gawkapi.c (api_set_array_element): Remove stray call to + make_aname. I cannot see what purpose this served. Maybe I am + missing something. + +2015-01-07 Arnold D. Robbins + + * configure.ac: Update debug flags if developing. + * awkgram.y (yylex): Regex parsing bug fix for bracket expressions. + Thanks to Mike Brennan for the report. + * builtin.c (format_tree): Catch non-use of count$ for dynamic + field width or precision. + + Unrelated: + + Load deferred variables if extensions are used; they might + want to access PROCINFO and/or ENVIRON. Thanks to Andrew Schorr + for pointing out the issue. + + * awkgram.y (extensions_used): New variable. Set it on @load. + (do_add_scrfile): Set it on -l. + (process_deferred): Check it also. + +2015-01-06 Andrew J. Schorr + + * gawkapi.c (api_sym_update): If copying a subarray, must update + the parent_array pointer. Also, call the astore hook if non-NULL. + (api_set_array_element): Call the astore hook if non-NULL. + +2015-01-06 Andrew J. Schorr + + * awk.h (variable_create): Now takes a 3rd argument to tell caller + whether this is a deferred variable. + * awkgram.y (variable_create): Return indicator of whether this is + a deferred variable in a newly added 3rd arg. + (variable): Pass 3rd arg to variable_create. + * gawkapi.c (api_sym_update): If we triggered the creation of a deferred + variable, we must merge the extension's array elements into the deferred + array, not the other way around. The ENVIRON array has special funcs + to call setenv and unsetenv. + +2015-01-06 Andrew J. Schorr + + * awk.h (variable_create): Declare new function. + * awkgram.y (variable_create): New function to create a variable + taking the deferred variable list into consideration. + (variable): Call new function variable_create if the variable is + not found. + * gawkapi.c (api_sym_update): If an array is being created, then + call new function variable_create instead of install_symbol. If this + is the first reference to a deferred variable, than the new array + may contain elements that must be merged into the array provided by + the extension. + +2015-01-05 Andrew J. Schorr + + * io.c (wait_any): If the `interesting' argument is non-zero, then we + must not return until that child process has exited, since the caller + gawk_pclose depends on our returning its exit status. So in that case, + do not pass WNOHANG to waitpid. + +2015-01-04 Andrew J. Schorr + + * gawkapi.h: Fix another comment typo. + +2015-01-04 Andrew J. Schorr + + * gawkapi.h: Fix typo in comment. + +2015-01-02 Andrew J. Schorr + + * gawkapi.h (gawk_api): Modify api_get_file to remove the typelen + argument. + (get_file): Remove typelen argument from the macro. + * gawkapi.c (api_get_file): Remove typelen argument. + +2014-12-24 Arnold D. Robbins + + * profile.c (pprint): Be sure to set ip2 in all paths + through the code. Thanks to GCC 4.9 for the warning. + +2014-12-18 Arnold D. Robbins + + * builtin.c (do_sub): Do not waste a byte at the end of a string. + +2014-12-14 Arnold D. Robbins + + * awkgram.y (yyerror): Do not waste a byte at the end of a string. + * builtin.c (do_match): Ditto. + * command.y (append_statement): Ditto. + * debug.c (gprintf, serialize): Ditto. + * field.c (set_FIELDWIDTHS): Ditto. + * io.c.c (grow_iop_buffer): Ditto. + * profile.c (pp_string, pp_group3): Ditto. + +2014-12-14 Andrew J. Schorr + + * array.c (concat_exp): Do not waste a byte at the end of a string. + * awkgram.y (common_exp): Ditto. + * builtin.c (do_substr): Ditto. + * eval.c (set_OFS): Ditto. + * field.c (rebuild_record): Ditto. + * gawkapi.h (r_make_string): Ditto. + * interpret.h (r_interpret): Ditto for Op_assign_concat. + * node.c (r_format_val, r_dupnode, make_str_node, str2wstr, wstr2str): + Ditto. + * re.c (make_regexp): Ditto. + +2014-12-20 Arnold D. Robbins + + Enable non-fatal output on per-file or global basis, + via PROCINFO. + + * awk.h (RED_NON_FATAL): New redirection flag. + * builtin.c (efwrite): If RED_NON_FATAL set, just set ERRNO and return. + (do_printf): Check errflg and if set, set ERRNO and return. + (do_print): Ditto. + (do_print_rec): Ditto. + * io.c (redflags2str): Update table. + (redirect): Check for global PROCINFO["nonfatal"] or for + PROCINFO[file, "nonfatal"] and don't fail on open if set. + Add RED_NON_FATAL to flags. + (in_PROCINFO): Make smarter and more general. + +2014-12-12 Stephen Davies + + Improve comment handling in pretty printing. + + * awk.h (comment_type): New field in the node. + (EOL_COMMENT, FULL_COMMENT): New defines. + * awkgram.y (block_comment): New variable. + (check_comment): New function. + (grammar): Add code to handle comments as needed. + (get_comment): Now takes a flag indicating kind of comment. + (yylex): Collect comments appropriately. + (append_rule): Ditto. + * profile.c (pprint): Smarten up comment handling. + Have printing \n take comments into account. + (end_line): New function. + (pp_func): Better handling of function comments. + +2014-12-10 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2014-11-26 Arnold D. Robbins + + * builtin.c (do_sub): Improve wording of gensub warnings. + +2014-11-25 Arnold D. Robbins + + * builtin.c (do_sub): For gensub, add more warnings for invalid + third argument. + +2014-11-23 Arnold D. Robbins + + * awk.h: Move all inline functions to the bottom of the file. + Keeps modern GCC happier. + +2014-11-22 Arnold D. Robbins + + * awk.h (emalloc, realloc): Redefine in terms of ... + (emalloc_real, erealloc_real): New static inline functions. + (fatal): Move definition up. + * gawkmisc.c (xmalloc): If count is zero, make it one for older + mallocs that require size > 0 (such as z/OS). + +2014-11-21 Arnold D. Robbins + + * main.c: Remove a debugging // comment. + * NOTES: Removed. + + Unrelated: + + Revert changes of 2014-11-20 from Paul Eggert. Causes failures + on z/OS. + + Unrelated: Avoid unnecessary copying of $0. + + * interpret.h (UNFIELD): New macro. + (r_interpret): Use it where *lhs is assigned to. + +2014-11-20 Paul Eggert + + Port to systems where malloc (0) and/or realloc(P, 0) returns NULL. + * gawkmisc.c (xmalloc): + * xalloc.h (realloc): + Do not fail if malloc(0) or realloc(P, 0) returns NULL. + Fail only when the allocator returns null when attempting to + allocate a nonzero number of bytes. + +2014-11-19 Arnold D. Robbins + + Infrastructure upgrades: + + * Automake 1.14.1, Gettext 0.19.3, Libtool 2.4.3. + * compile, extension/build-aux/compile: New files. + +2014-11-19 gettextize + + * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.19.3. + +2014-11-16 Arnold D. Robbins + + * interpret.h: Revert change of 2014-11-11 since it breaks + certain uses. + + Unrelated: + + * dfa.c: Sync with GNU grep. + +2014-11-15 Arnold D. Robbins + + * array.c, awk.h, awkgram.y, builtin.c, dfa.c, eval.c, field.c, + interpret.h, io.c, main.c, mpfr.c, node.c, re.c, regex_internal.h, + replace.c: Remove all uses of MBS_SUPPORT. + * regex_internal.h: Disable wide characters on DJGPP. + * mbsupport.h: Rework to be needed only for DJGPP. + +2014-11-11 Arnold D. Robbins + + Don't let memory used increase linearly in the size of + the input. Problem reported by dragan legic + . + + * field.c (set_record): NUL-terminate the buffer. + * interpret.h (r_interpret): Op_field_spec: if it's $0, increment + the valref. Op_store_var: if we got $0, handle it appropriately. + +2014-11-10 Arnold D. Robbins + + Reorder main.c activities so that we can set a locale on the + command line with the new, for now undocumented, -Z option. + + * main.c (parse_args, set_locale_stuff): New functions. + (stopped_early): Made file level static. + (optlist, optab): Add new argument. + (main): Adjust ordering and move inline code into new functions. + +2014-11-09 Andrew J. Schorr + + * gawkapi.c (node_to_awk_value): When the type wanted is AWK_UNDEFINED + and a it's a Node_val set to Nnull_string, return AWK_UNDEFINED instead + of AWK_NUMBER 0. + +2014-11-06 Andrew J. Schorr + + * awk.h (redirect_string): First argument should be const. Add a new + extfd argument to enable extensions to create files with pre-opened + file descriptors. + (after_beginfile): Declare function used in both eval.c and gawkapi.c. + * eval.c (after_beginfile): Remove extern declaration now in awk.h. + * gawkapi.c (api_get_file): Implement API changes to return + awk_input_buf_t and/or awk_output_buf_t info, as well as accept an + fd for inserting an opened file into the table. + * gawkapi.h (gawk_api): Modify the api_get_file declaration to + return awk_bool_t and add 3 new arguments -- a file descriptor + for inserting an already opened file, and awk_input_buf_t and + awk_output_buf_t to return info about both input and output. + (get_file): Add new arguments to the macro. + * io.c (redirect_string): First arg should be const, and add a new + extfd arg so extensions can pass in a file that has already been + opened by the extension. Use the passed-in fd when appropriate, + and pass it into two_way_open. + (redirect): Pass new fd -1 arg to redirect_string. + (two_way_open): Accept new extension fd parameter and open it + as a socket. + +2014-11-05 Andrew J. Schorr + + * io.c (retryable): New function to indicate whether I/O can be + retried for this file instead of throwing a hard error. + (get_a_record) Check whether this file is configured for retryable + I/O before returning nonstandard -2. + +2014-11-03 Norihiro Tanaka + + * re.c (research): Use dfa superset to improve matching speed. + +2014-11-02 Arnold D. Robbins + + * profile.c (div_on_left_mul_on_right): New function. + (parenthesize): Call it. + +2014-10-30 Arnold D. Robbins + + * configure: Regenerated after fix to m4/readline.m4. + + Unrelated; fixes to profiling. Thanks to Hermann Peifer and + Manuel Collado for pointing out problems: + + * profile.c (pprint): For Op_unary_minus, parenthesize -(-x) + correctly. + (prec_level): Get the levels right (checked the grammar). + (is_unary_minus): New function. + (pp_concat): Add checks for unary minus; needs to be parenthesized. + +2014-10-30 Andrew J. Schorr + + * NEWS: Mention installation of /etc/profile.d/gawk.{csh,sh}. + +2014-10-29 Andrew J. Schorr + + * configure.ac (AC_CONFIG_FILES): Add extras/Makefile. + * Makefile.am (SUBDIRS): Add extras. + * extras: Add new subdirectory. + +2014-10-29 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. Again, again. + +2014-10-28 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. Again. + +2014-10-25 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2014-10-17 John E. Malmberg + + * ext.c (close_extensions): Test for null pointer since + since this can be called by signal handler before the + pointers are initialized. + +2014-10-15 Arnold D. Robbins + + Make sane the handling of AWKPATH and AWKLIBPATH: + + 1. Don't explicitly search "."; it must be in the path either + physically or as null element a la the shell's $PATH + 2. If environment's value was empty, use built-in default value. + 3. Set ENVIRON["AWK*PATH"] to the path used. + + * io.c (path_info): Remove try_cwd member. + (get_cwd): Removed, not needed anymore. + (do_find_source): Don't do explicit check in current directory. + It must come from the AWKPATH or AWKLIBPATH variable. + * main.c (path_environ): If value from environment was empty, + set it to the default. This is how gawk has behaved since 2.10. + +2014-10-13 Arnold D. Robbins + + * regcomp.c (__re_error_msgid): Make error message for REG_EBRACK + more helpful - also used for unmatched [:, [., [=. + Thanks to Davide Brini for raising the issue. + +2014-10-12 KO Myung-Hun + + Fixes for OS/2: + + * Makefile.am (install-exec-hook, uninstall-links): Use $(EXEEXT). + * getopt.h: Redefinitions if using KLIBC. + * io.c (_S_IFDIR, _S_IRWXU): Define if the more standard versions + are available. + +2014-10-12 Arnold D. Robbins + + * README: Remove Pat Rankin from VMS duties, per his request. + +2014-10-08 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2014-10-05 Arnold D. Robbins + + * profile.c (pprint): Fix typo in header. Sheesh. + + Unrelated: + + * awkgram.y (mk_program): Add a comment that we don't need to + clear the comment* variables. + +2014-10-04 Arnold D. Robbins + + * profile.c (pp_string_fp): Fix breaklines case to actually + output the current letter. This broke at gawk 4.0.0. Sigh. + Thanks to Bert Bos (bert@w3.org) for the report. + +2014-10-03 Stephen Davies + + * awkgram.y (program_comment): Renamed from comment0. + (function_comment): Renamed from commentf. + +2014-10-02 Arnold D. Robbins + + * awkgram.y, profile.c: Minor white space cleanups. + +2014-10-01 Arnold D. Robbins + + Fix a few compile warnings: + + * awkgram.y (split_comment): Make static. + General: Remove some unused variables, clean up some whitepace nits. + + * profile.c (indent): Add some braces to turn off compiler warnings. + +2014-09-29 Andrew J. Schorr + + * main.c (main): In optlist, it should say "h", not "h:", since there + is no argument for the help option. Thanks to Joep van Delft for + the bug report. + +2014-09-29 Arnold D. Robbins + + * gawkapi.h: Minor edits to sync with documentation. Does not + influence the behavior of the API. + +2014-09-28 Arnold D. Robbins + + * command.y (cmdtab): Add "where" as an alias for "backtrace". + Finally! + + Unrelated: + + * dfa.c: Sync with GNU grep. + +2014-09-27 Arnold D. Robbins + + * awkgram.y (check_for_bad): Bitwise-and the bad character with 0xFF + to avoid sign extension into a large integer. + + Unrelated: + + * configure.ac: Add an option to enable locale letters in identifiers. + Undocumented and subject to being rescinded at any time in the future. + * awkgram.y (is_alpha): Actual code is here. + * NEWS: Mention to look at configure --help. + + Unrelated: + + * profile.c (pprint): Use "rule(s)" instead of "block(s)" in the + header. + +2014-09-23 Arnold D. Robbins + + * awkgram.y (yylex): Don't check for junk characters inside + quoted strings. Caused issues on DJGPP and Solaris. + + Unrelated: + + * io.c (devopen): Straighten things out with respect to + compatibility with BWK awk. + +2014-09-19 Arnold D. Robbins + + * awkgram.y: Further commentary as to the treacherousness + of isalnum and isalpha. + +2014-09-15 Arnold D. Robbins + + Finish removing use of isalpha and isalnum. + + * awk.h (is_alpha, is_alnum, is_identchar): Add declarations. + * awkgram.y (yylex): Use is_alpha. + (is_alpha, is_alnum): New functions. + (is_identchar): Use is_alnum. + * builtin.c (r_format_tree): Use is_alpha, is_alnum. + * command.y (yylex): Use is_alpha, is_identchar. + * ext.c (is_letter): Use is_alpha. + (is_identifier_char): Removed; replaced uses with is_identchar. + * main.c (arg_assign): Use is_alpha, is_alnum. + * node.c (r_force_number): Use is_alpha. + +2014-09-14 Arnold D. Robbins + + * awkgram.y (is_identchar): Change from simple macro to function + since use of isalnum() let non-ASCII letters slip through into + identifiers. + +2014-09-13 Stephen Davies + + When doing pretty-printing (but not profiling), include the original + comments in the output. + + General rules: + + Pretty printing: + - Do NOT indent by a tab + - Do NOT print the header comments ("# BEGIN rules", etc.) + - DO print the comments that are in the program + + Profiling: + - DO indent by a tab + - DO print the header comments + - Do NOT print the program's original comments + + * awkgram.y (comment0, commentf): New variables that are pointers to + program and function comments. + (get_comment): New function that retrieves consecutive comment lines + and empty lines as a unit). + (split_comment): New function: iff first block in the program is a + function and it is preceded by comments, take the last non-blank + line as function comment and any preceding lines as program comment.) + + Following token rules were changed to handle comments: + + * awkgram.y (pattern, LEX_BEGIN, LEX_END, LEX_BEGINFILE, LEX_ENDFILE, + action, function_prologue, statements): Update to handle comments. + + Following functions were changed to handle comments: + + * awkgram.y (mk_program, mk_function, allow_newline and yylex): Update + to handle comments. (Also fixed typo in case '\\'.) + + * profile.c (print_comment): New function to format comment printing. + (indent, pprint, dump_prog, pp_func): Changed to handle comments and + the revised indentation rules. + +2014-09-07 Arnold D. Robbins + + * awk.h: Move libsigsegv stuff to ... + * main.c: here. Thanks to Yehezkel Bernat for motivating + the cleanup. + * symbol.c (make_symbol, install, install_symbol): Add const to + first parameter. Adjust decls and fix up uses. + +2014-09-05 Arnold D. Robbins + + Add builtin functions to FUNCTAB for consistency. + + * awk.h (Node_builtin_func): New node type. + (install_builtins): Declare new function. + * awkgram.y [DEBUG_USE]: New flag value for debug functions; they + don't go into FUNCTAB. + (install_builtins): New function. + * eval.c (nodetypes): Add Node_builtin_func. + * interpret.h (r_interpret): Rework indirect calls of built-ins + since they're now in the symbol table. + * main.c (main): Call `install_builtins'. + * symbol.c (install): Adjust for Node_builtin_func. + (load_symbols): Ditto. + +2014-09-04 Arnold D. Robbins + + * profile.c (pprint): Case Op_K_for: Improve printing of + empty for loop header. + + Unrelated: Make indirect function calls work for built-in and + extension functions. + + * awkgram.y (lookup_builtin): New function. + * awk.h (builtin_func_t): New typedef. + (lookup_builtin): Declare it. + * interpret.h (r_interpret): For indirect calls, add code to + find and call builtin functions, and call extension functions. + +2014-09-01 Arnold D. Robbins + + * builtin.c (do_substr): Return "" instead of null string in case + result is passed to length() with --lint. Based on discussions in + comp.lang.awk. + + Unrelated: + + * interpret.h (r_interpret): For indirect function call, separate + error message if lookup returned NULL. Otherwise got a core dump. + Thanks to "Kenny McKormack" for the report in comp.lang.awk. + +2014-08-27 Arnold D. Robbins + + * configure.ac: Add test for strcasecmp. + * regcomp.c: Remove special case code around use of strcasecmp(). + * replace.c: Include missing/strncasecmp.c if either strcasecmp() + or strncasecmp() aren't available. + +2014-08-26 Arnold D. Robbins + + * regcomp.c, regex_internal.c: Sync with GBLIC. Why not. + + Unrelated: + + Remove support for MirBSD. It uglified the code too much + for no discernible gain. + + * configure.ac: Remove check for MirBSD and define of + LIBC_IS_BORKED. + * dfa.c: Remove code depending on LIBC_IS_BORKED. + * main.c: Ditto. + * regcomp.c: Ditto. + * NEWS: Updated. + +2014-08-24 Arnold D. Robbins + + * regex.h: Remove underscores in names of parameters in function + declarations. Tweak names as needed. + +2014-08-20 Arnold D. Robbins + + * node.c (parse_escape): Max of 2 digits after \x. + +2014-08-18 Arnold D. Robbins + + * symbol.c: General formatting cleanup. + +2014-08-15 Arnold D. Robbins + + * main.c (usage): Adjust whitespace for -L and add "invalid" + as a possible value for it. Report from Robert P. J. Day + . + +2014-08-14 Arnold D. Robbins + + * Makefile.am (SUBDIRS): Put awklib after doc so that examples + get extracted when the doc changes. + +2014-08-13 Arnold D. Robbins + + * builtin.c (do_sub): Move initial allocation of the replacement + string down towards code to do the replacement, with a (we hope) + better guesstimate of how much to initially allocate. The idea + is to avoid unnecessary realloc() calls by making a better guess + at how much to allocate. This came up in an email discussion + with Tom Dickey about mawk's gsub(). + +2014-08-12 Juergen Kahrs + + * cmake/configure.cmake: + * cmake/package.cmake: Copyright update. + * README.cmake: + * README_d/README.cmake: Moved file. + +2014-08-12 Arnold D. Robbins + + OFS being set should rebuild $0 using previous OFS if $0 + needs to be rebuilt. Thanks to Mike Brennan for pointing this out. + + * awk.h (rebuild_record): Declare. + * eval.c (set_OFS): If not being called from var_init(), check + if $0 needs rebuilding. If so, parse the record fully and rebuild it. + Make OFS point to a separate copy of the new OFS for next time, since + OFS_node->var_value->stptr was already updated at this point. + * field.c (rebuild_record): Is now extern instead of static. + Use OFS and OFSlen instead of the value of OFS_node. + + Unrelated: + + * Makefile.am (RM): Define for makes that don't have it, + such as on OpenBSD. Thanks to Jeremie Courreges-Anglas + for the report. + +2014-08-05 Arnold D. Robbins + + Bug fix: For MPFR sqrt(), need to set precision of result to be + the same as that of the argument. Doesn't hurt other functions. + See test/mpfrsqrt.awk. Thank to Katie Wasserman + for the bug report. + + * mpfr.c (do_mpfr_func): New function. Runs code for MPFR functions + while still enabling debugging. Add call here to mpfr_set_prec(). + Original code from SPEC_MATH macro. + (SPEC_MATH): Change macro to call do_mpfr_func(). + + Next MPFR bug fix: The % operator gave strange results for negative + numerator. Thanks again to Katie Wasserman for the bug report. + + * mpfr.c (mpg_mod): Use mpz_tdiv_qr() instead of mpz_mod(). From + the GMP doc, mpz_mod() should have worked; it's not clear why + it doesn't. + +2014-08-03 Arnold D. Robbins + + * builtin.c (format_tree): Don't need to check return value of + wctombr for -2. Thanks to Eli Zaretskii for pointing this out. + + Unrelated: + + * gawkapi.h: Fix doc for API get_record - errcode needs to + be greater than zero. + * interpret.h (r_interpret): Move setting of ERRNO to here, from ... + * io.c (inrec): ... here. Makes the code cleaner. + +2014-08-03 Andrew J. Schorr + + * awkgram.y (getfname): Match on either ptr or ptr2 so --profile + will work in -M (MPFR bignum) mode. + +2014-07-31 Arnold D. Robbins + + * builtin.c (format_tree): Make %c handling more sane on Windows. + Rework the lint messages. + + Unrelated: + + * dfa.c: Sync with GNU grep. Mainly white space differences. + + Unrelated: + + * mpfr.c (cleanup_mpfr): New function to deallocate _mpf_t1 + and _mpf_t2; removes some valgrind warnings. + * awk.h (cleanup_mpfr): Add declaration. + * main.c (main): Add call to `cleanup_mpfr'. + + Fix memory leak: + + * mpfr.c (do_mpfr_div): Add unref to denominator and numerator + to not leak memory. Thanks to Katie Wasserman + for isolating the problem to that routine. + +2014-07-25 Arnold D. Robbins + + * main.c (main): Add a warning message if -M is used and gawk was + compiled without MPFR/GMP. + +2014-07-24 Arnold D. Robbins + + * main.c (usage): Put text for `-n' *after* text for `-m'. + Report from Robert P. J. Day . + + Fix problems with I/O errors reported by Assaf Gordon + : + + * io.c (inrec): Change type to bool to make calling easier. Add + check in non-EOF case for error, and if so, return false. + Update ERRNO in case there is an ENDFILE block. + * awk.h (inrec): Change type in declaration. + * interpret.h (r_interpret): Change call of inrec() to boolean + notation. + +2014-07-10 Arnold D. Robbins + + New `div()' function to do integer division and remainder; + mainly useful for use with GMP integers. Thanks to + Katie Wasserman for the suggestion. + + * awk.h (do_div, do_mpfr_div): Declare new functions. + * builtin.c (do_div): New function. + * mpfr.c (do_mpfr_div): New function. + * awkgram.y (tokentab): New entry. + (snode): Add check for do_div/do_mpfr_div to make 3rd arg + be an array. + * NEWS: Updated. + * TODO: Updated. + +2014-07-10 Arnold D. Robbins + + * awkgram.y (check_for_bad): New routine to do the fatal message, + with smarter checking. + (nextc): Call it as appropriate. + + * builtin.c (format_tree): Add check for bad returns from mbrlen + to avoid trying to malloc (size_t) -1 bytes. Thanks to + mail.green.fox@gmail.com for the bug report. + +2014-07-03 Arnold D. Robbins + + * awkgram.y (nextc): Add bool check_for_bad parameter to check + for bad characters in the source program. + (yylex): Adjust calls. + +2014-06-24 Arnold D. Robbins + + * main.c (main): The --pretty-print option no longer runs the + program. This removes the need for the GAWK_NO_PP_RUN environment var. + * NEWS: Updated. + * TODO: Updated. + +2014-06-22 Paul Eggert + + Bring in from GNULIB: + + regex: fix memory leak in compiler + Fix by Andreas Schwab in: + https://sourceware.org/ml/libc-alpha/2014-06/msg00462.html + * lib/regcomp.c (parse_expression): Deallocate partially + constructed tree before returning error. + +2014-06-19 Arnold D. Robbins + + * builtin.c (do_sub): Add more info to leading comment. + Add some whitespace in the code. + +2014-06-08 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2014-06-03 Arnold D. Robbins + + * dfa.c (mbs_to_wchar): Define a macro if not MBS. + +2014-05-29 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2014-05-26 Arnold D. Robbins + + * io.c (inetfile): Change return type to bool. Wrap code + with ifdef HAVE_SOCKETS so that it'll compile on DJGPP. + +2014-05-22 Andrew J. Schorr + + Allow any redirected getline inside BEGINFILE/ENDFILE. + + * awkgram.y (LEX_GETLINE): Only require a redirection and not also + a variable if getline is in a BEGINFILE or ENDFILE rule. + * interpret.h (Op_K_getline_redir): Remove check and fatal error. + +2014-05-20 Arnold D. Robbins + + * dfa.c (dfaexec): Minor sync with GNU grep. + +2014-05-14 Arnold D. Robbins + + * custom.h (_GL_PURE): Move definition to here. Sigh. + * dfa.h, dfa.c: Sync with GNU grep. Sigh. + + Unrelated: + + * custom.h: Remove stuff for Ultrix 4.3. No one has such + systems anymore; this just got missed earlier. + +2014-05-11 Arnold D. Robbins + + * debug.c (do_eval): Repair fix of 2014-05-09 and use + assoc_remove to take @eval out of the function table. + * symbol.c: Fix a comment. This file needs some work. + +2014-05-10 Arnold D. Robbins + + * io.c (get_a_record): Finish TERMNEAREND handling in case + we don't have a regular file but aren't going to get more data. + Added some additional comments. + +2014-05-09 Arnold D. Robbins + + * debug.c (do_eval): Don't free `f' which points into the context + that was previously freed. Bug reported by Jan Chaloupka + . Apparently introduced with move to + SYMTAB and FUNCTAB, but only showed up on Fedora 20 and Ubuntu 14.04, + which have a newer glibc. + (do_eval): Fix a memory leak seen by valgrind on Fedora 20 and + Ubuntu 14.04: the new SRCFILE that is added wasn't released. + + Unrelated: + + * io.c (get_a_record): Handle return of TERMNEAREND when the + entire file has been read into the buffer and we're using a + regex for RS. Bug report by Grail Dane . + +2014-05-04 Arnold D. Robbins + + * debug.c (debug_prog): Change check for GAWK_RESTART so that it + actually works. Bug fix: run command in debugger would start + over again but not actually start running the program. + +2014-04-25 Andrew J. Schorr + + * io.c (two_way_open): In forked child, reset SIGPIPE to SIG_DFL. + Fixes problems with "broken pipe" errors from child processes, + restoring 4.1.0 and earlier behavior. Thanks to Daryl F + for the report. + (gawk_popen): Ditto. + +2014-04-25 Arnold D. Robbins + + * dfa.h, dfa.c: Merge with GNU grep; lots of forward motion. + +2014-04-24 Arnold D. Robbins + + Update xalloc.h for pending merge with dfa. + + * xalloc.h (xstrdup): Implement this. + (x2nrealloc): Incorporate changed logic from GNULIB. + +2014-04-20 Andrew J. Schorr + + * io.c (struct inet_socket_info): Define new structure + for use in parsing special socket filenames. + (inetfile): Parse all components of the special socket filename + into the struct inet_socket_info. Returns true only if it is a + valid socket fliename, unlike the previous version which checked + for the '/inet[46]?/' prefix only. + (redirect): Patch to use updated inetfile() function. + (devopen): Remove logic to parse socket filenames, since this has + been moved into the inetfile() function. + (two_way_open): Update args to inetfile(). + +2014-04-20 Arnold D. Robbins + + * builtin.c (do_rand): Make calls to random() in predictable + order to avoid order of evaluation differences amongst compilers. + Thanks to Anders Magnusson (of the PCC team) + for the suggestion. + +2014-04-18 Arnold D. Robbins + + * configure.ac: Change adding of -export-dynamic for GCC to be + -Wl,-export-dynamic, which then works for PCC also. + +2014-04-11 Arnold D. Robbins + + * io.c (closemaybesocket): Define if not defined, e.g. building + without socket code. Thanks to dave.gma@googlemail.com (Dave Sines) + for the report. + +2014-04-08 Arnold D. Robbins + + * 4.1.1: Release tar ball made. + +2014-04-08 Arnold D. Robbins + + * README: Update. + * configure.ac: Bump version. + +2014-04-03 Arnold D. Robbins + + * regcomp.c (parse_bracket_exp): Move a call to `re_free' inside + an ifdef. Makes the code marginally cleaner. + +2014-03-30 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2014-03-28 Arnold D. Robbins + + * configure.ac: Remove duplicate AC_HEADER_TIME and rearrange + order of macros some. May help on older systems. + +2014-03-23 Arnold D. Robbins + + * dfa.c: Move include of dfa.h around for correct building + on Irix. Thanks to Nelson H.F. Beebe for the report. + + Unrelated: + + * .gitignore: Simplify .dSYM pattern for Mac OS X. + +2014-03-21 Arnold D. Robbins + + * dfa.c (using_simple_locale): Add ifdefs in case there is no + locale support at all. Thanks to Scott Deifik for the report. + + Unrelated: + + * main.c (UPDATE_YEAR): Set to 2014. + +2014-03-17 Arnold D. Robbins + + * .gitignore: Add .dSYM directories for Mac OS X. + Thanks to Hermann Peifer for the suggestion. + +2014-03-10 Arnold D. Robbins + + * dfa.h, dfa.c: Sync with grep. Yet again. + * regex_internal.c (built_wcs_upper_buffer, build_upper_buffer): + Fixes from GNULIB for mixed case matching on Mac OS X. + + Unrelated: + + * builtin.c (format_tree): Smarten handling of %' flag. Always + pass it in for floating point formats. Then only add the + thousands_sep if there is one. Also, allow for thousands_sep + to be a string, not just one character. Thanks to Michal Jaegermann + for the report. + +2014-03-08 Andrew J. Schorr + + * gawkapi.c (api_impl): Add memory allocation function pointers. + * gawkapi.h (GAWK_API_MINOR_VERSION): Bump. + (gawk_api_t): Add memory allocation function pointers api_malloc, + api_calloc, api_realloc, and api_free. + (gawk_malloc, gawk_calloc, gawk_realloc, gawk_free): New macros. + (emalloc): Replace malloc with gawk_malloc. + (erealloc): Replace erealloc with gawk_erealloc. + +2014-03-05 Arnold D. Robbins + + Straighten out enumerated types some more. + + * awk.h (add_srcfile): Fix type of first parameter. + * awkgram.y (add_srcfile, do_add_srcfile): Ditto. + * cmd.h (A_NONE): New enum nametypeval. + * command.y (argtab): Use it in final value. + * ext.c (make_builtin): Use awk_false, awk_true. + * io.c (init_output_wrapper): Use awk_false. + + Unrelated: + + * debug.c (do_commands): Initialize num to silence warnings. + Thanks to Michal Jaegermann. + + Unrelated: + + * builtin.c (do_mktime): Change lint warning for minutes to + check against 59, not 60. Thanks to Hermann Peifer for the report. + +2014-03-03 Arnold D. Robbins + + * dfa.c: Sync with grep. Yet again. + +2014-02-28 Arnold D. Robbins + + * dfa.c: Sync with grep. Looks like good improvement with + respect to bracket expressions. + +2014-02-27 Arnold D. Robbins + + Fixes for enum/int mismatches as warned by some compilers. + + * awk.h (ANONE): New enum for array sorting. + * array.c (assoc_list): Use it. + * builtin.c (format_tree): New MP_NONE value. + * gawkapi.c: Use awk_false and awk_true everywhere instead of + false and true. + +2014-02-26 Arnold D. Robbins + + * configure.ac: Set up do-nothing extension/Makefile on + MirBSD also. + +2014-02-21 Arnold D. Robbins + + * dfa.h, dfa.c (parse_bracket_exp): Sync with grep. + +2014-02-20 Arnold D. Robbins + + * regex.h, regex.c, regex_internal.c, regex_internal.h: Sync + with GLIBC. Mainly copyright updates. + * getopt.c, getopt.h, getopt1.c, getopt_int.h: Ditto. + * dfa.c (parse_bracket_exp): Sync with grep, where they restored + the buggy code. Sigh. + + Unrelated: + + * NEWS: Typo fix. + * interpret.h (r_interpret): Init a variable for BEGINFILE to avoid + compiler warnings. Thanks to Michal Jaegermann. + +2014-02-15 Arnold D. Robbins + + * awkgram.c, command.c: Regenerated - Bison 3.0.2. + +2014-02-04 Arnold D. Robbins + + * dfa.c (to_uchar): Make use of this. Syncs with GNU grep. + +2014-02-03 Arnold D. Robbins + + * awkgram.y (negate_num): Bracket `tval' in #ifdef MPFR since it's + only used in that code. + +2014-01-31 Arnold D. Robbins + + * Makefile.am (dist-hook): Improve creation of pc/config.h. We + have to jump through a lot of hoops for 'make distcheck' to + actually work. + +2014-01-30 Arnold D. Robbins + + * Makefile.am (dist-hook): Improve creation of pc/config.h to copy + the new file into the distribution directory being created. + Also, put the temporary files into /tmp. + +2014-01-28 Arnold D. Robbins + + * awkgram.y (negate_num): If just a double, return. Fixes a bug + that showed up on 32-bit systems with MPFR. Thanks to Eli Zaretskii + and Corinna Vinschen for the report. Also, free the MPZ integer. + Thanks to valgrind for the report. + + Unrelated: + + * dfa.c: Sync with GNU grep - removed some special cased code + for grep. + +2014-01-24 Arnold D. Robbins + + * configure.ac, field.c: Update copyright year. + +2014-01-19 Arnold D. Robbins + + * awkgram.y (negate_num): Handle the case of -0 for MPFR; the sign + was getting lost. Thanks to Hermann Peifer for the report. + +2014-01-18 Arnold D. Robbins + + * dfa.c (parse_bracket_exp): Sync with GNU grep, which now uses + gawk's code for RRI in single-byte locales! Hurray. + +2014-01-16 Arnold D. Robbins + + * configure.ac: For z/OS, restore creation of do-nothing + Makefile in extension directory. + +2014-01-14 Arnold D. Robbins + + * field.c (do_split): Make sure split() gets FS value if no + third arg even after FPAT was set. Thanks to Janis Papanagnou + for the report. + +2014-01-13 Arnold D. Robbins + + * README: Fix John Malmberg's email address. + +2014-01-12 Arnold D. Robbins + + * awkgram.y: Update copyright year. + (func_use): Simplify code. + * command.y: Update copyright year. + * ext.c: Update copyright year. + (make_builtin): Small simplification. + (make_old_builtin): Make code consistent with make_builtin(), add + call to track_ext_func(). + * bootstrap.sh: Update copyright year. Remove touch of version.c + since that file is no longer autogenerated. + +2014-01-07 Arnold D. Robbins + + * command.y (next_word): Move into ifdef for HAVE_LIBREADLINE, + since it's only used by that code. + * ext.c (load_old_ext): Minor improvements. + +2014-01-03 Arnold D. Robbins + + * config.guess, config.rpath, config.sub, depcomp, + install-sh: Updated. + * dfa.h, dfa.c: Sync with GNU grep; comment fix and copyright year. + * NEWS: Updated some, including copyright year. + +2013-12-26 Arnold D. Robbins + + * README: Add John Malmberg for VMS. + +2013-12-24 Arnold D. Robbins + + * getopt.h: Add `defined(__sun)' to list of system that do get to + include stdlib.h. Needed for Illumos. Thanks to + Richard Palo for the report. + +2013-12-21 Mike Frysinger + + * configure.ac: Add --disable-extensions flag to control + compiling extensions. Better for cross-compiling. + (AC_CANONICAL_HOST): Added. Changed case statements appropriately. + * Makefile.am (check-for-shared-lib-support): Removed. + (check-recursive, all-recursive): Removed. + +2013-12-21 Arnold D. Robbins + + * config.guess: Updated. + * configure, aclocal.m4: Updated based on automake 1.13.4. + +2013-12-19 Arnold D. Robbins + + * regexec.c (re_search_internal): Make sure `dfa' pointer is + not NULL before trying to dereference it. + +2013-12-16 Arnold D. Robbins + + * configure.ac (AC_FUNC_VPRINTF): Remove. Not needed on current + systems. + * awk.h (HAVE_VPRINTF): Remove check. + +2013-12-12 John E. Malmberg + + * io.c (redirect): Add additional VMS error codes. + (nextfile): Retry open after closing some files. + +2013-12-10 Scott Deifik + + * io.c (closemaybesocket): Add definition for DJGPP. + +2013-12-10 Arnold D. Robbins + + * awk.h (Floor, Ceil): Remove declarations and VMS redefinitions. + * floatcomp.c (Floor, Ceil): Removed, not needed. Move bracketing + ifdef to the top of the file. + * builtin.c (double_to_int): Use floor() and ceil(). + +2013-12-07 Arnold D. Robbins + + * regex_internal.h (__attribute__): Define to empty if not GCC. + * custom.h (__attribute__): Remove the definition from here; the + right place was regex_internal.h. + +2013-12-06 Arnold D. Robbins + + No need to generate version.c from version.in. + Thanks to John E. Malmberg for the suggestion. + + * version.in: Removed. + * version.c: Use PACKAGE_STRING directly. + * Makefile.am (EXTRA_DIST): Remove version.in. + (distcleancheck_listfiles): Remove this rule. + (MAINTAINERCLEANFILES): Remove this definition. + (version.c): Remove the rule to create it. + +2013-12-05 Arnold D. Robbins + + Fixes for Z/OS. + + * custom.h (__attribute__): Define to empty. + * dfa.c (parse_bracket_exp): Add a cast to quiet a warning. + * regex.c: Correctly bracket include of . + + Unrelated: + + * debug.c (find_rule): Add a FIXME comment. + +2013-12-03 John E. Malmberg + + * io.c (redirect): Add additional VMS error code to check. + (do_find_source): Append "/" if not a VMS filename. + +2013-12-01 Andrew J. Schorr + + * main.c (optab): Sort by long option name. + +2013-11-27 Andrew J. Schorr + + * main.c (optab): Add entry for --include. + +2013-11-23 Arnold D. Robbins + + * dfa.c: Merge from grep; minor fixes in how bit twiddling + is done. + +2013-11-01 Arnold D. Robbins + + * dfa.c (lex): Reset laststart so that stuff like \s* works. + Fix from grep. + +2013-10-31 Arnold D. Robbins + + * builtin.c (efwrite): If write error to stdout is EPIPE, + die silently. Thanks to Hermann Peifer for helping find this. + +2013-10-22 Arnold D. Robbins + + Revise error messages when writing to standard output or standard + error to ignore EPIPE. Add the ability based on an environment + variable to get the source file and line number. + + * awk.h (r_warning): Renamed from warning. + (warning): New macro to set location and call warning. + * io.c (flush_io): Print errors only if not EPIPE. + (close_io): Ditto. + * main.c (lintfunc): Init to r_warning. + (main): Enhance explanatory comment. + (usage): Print errors only if not EPIPE. + (copyleft): Ditto. + * msg.c (err): Make printing srcfile and srcline depend upon + GAWK_MSG_SRC environment variable. + (r_warning): Renamed from warning. + +2013-10-17 Arnold D. Robbins + + * main.c (main): Ignore SIGPIPE. See the comment in the code. + Thanks to Alan Broder for reporting the issue. + + Unrelated: + + * rand.c (do_rand): Fix computation and loop checking against + 1.0 to use do..while. + +2013-10-16 Arnold D. Robbins + + Make -O work again. Turns out that C99 bool variables + are clamped to zero or one. + + * main.c (do_optimize): Init to false. + (main): Set do_optimize to true on -O. + * eval.c (setup_frame): Change all uses of do_optimize to be + a boolean check instead of a test > 1. + * awkgram.y: Ditto. + (optimize_assignment): Remove check against do_optimize since + it was inited to true anyway. + + Unrelated: + + * re.c (resetup): Add a comment about the joy of syntax bits. + + Unrelated: + + * builtin.c (do_rand): If result is exactly 1.0, keep trying. + Thanks to Nelson Beebe. + +2013-10-10 Arnold D. Robbins + + * dfa.c (lex): Sync with GNU grep. Handle multibyte \s and \S. + + Unrelated: + + * awk.h [ARRAY_MAXED]: Fix value of this and subsequent flags + after addition of NULL_FIELD. + * eval.c (flags2str): Add NULL_FIELD. Duh. + +2013-10-09 Arnold D. Robbins + + * awkgram.y (mk_assignment): Rework switch to handle Op_assign, + and to provide a better error message upon unknown opcode. + +2013-09-28 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2013-09-25 Arnold D. Robbins + + * builtin.c (do_rand): Make the result more random by calling + random() twice. See the comment in the code. Thanks to + Bob Jewett for the report and + the fix. + +2013-09-24 Arnold D. Robbins + + * debug.c (find_rule): Handle case where lineno is zero. Can happen + if break is given without a line number on a current line. Thanks + to Ray Song for the report. + +2013-09-19 Arnold D. Robbins + + * dfa.c (parse_bracket_exp): Use code from grep to keep things within + range (updates change of 2013-09-08). Fix whitespace in one of the + gawk-only additions. + +2013-09-13 Arnold D. Robbins + + Fix use of NF after it's extended, e.g. see test/nfloop.awk. + + * awk.h (NULL_FIELD): New flag + * builtin.c (do_print_rec): Check f0->flags instead of if + equal to Nnull_string. + * eval.c (r_get_field): Check (*lhs)->flags instead of if + equal to Nnull_string or Null_field. + * field.c (init_fields): Init field zero and Null_field with + NULL_FIELD flag. + (set_NF): Set parse_high_water = NF in case NF extended past the + end. This is the actual bug fix. + +2013-09-08 Arnold D. Robbins + + Fixes based on reports from a static code checker. Thanks to + Anders Wallin for sending in the list. + + * array.c (asort_actual): Free list if it's not NULL. + * builtin.c (do_sub): Set buf to NULL and assert on it before using + it. + * cint_array.c (cint_array_init): Clamp any value of NHAT from the + environment such that it won't overflow power_two_table when used as + an index. + * dfa.c (parse_bracket_exp): Check that len is in range before using it + to index buf. + * getopt.c (_getopt_internal_r): Change call to alloca to use malloc. + * io.c (socket_open): Init read_len to zero. + (two_way_open): Upon failure to fork, close the slave fd also. + * re.c (research): Init try_backref to false. + * regcomp.c (build_range_exp): Free any items that were allocated in + the case where not all items were. + (build_charclass_op): Same. Init br_token to zero with memset. + (create_tree): Init token t to zero with memset. + * regex_internal.c (re_dfa_add_node): Free any items that were + allocated in the case where not all items were. + * symbol.c (destroy_symbol): On default, break, to fall into releasing + of resources. + +2013-08-29 Arnold D. Robbins + + * debug.c (HAVE_HISTORY_LIST): Move checks and defines to the top. + (do_save, serialize): Adjust #if checks to depend on having both + readline and the history functions. Needed for Mac OS X whose + native readline is a very old version. Sigh. + * configh.in, configure: Regenerated due to change in m4/readline.m4. + Issue reported by Hermann Peifer and Larry Baker. + + Unrelated: + + * getopt.c: Sync with GLIBC, changes are minor. + + Unrelated: + + * dfa.c: Sync with version in grep. Primarily whitespace / comment + wording changes. + +2013-08-26 Arnold D. Robbins + + * regcomp.c (parse_dup_op): Remove RE_TOKEN_INIT_BUG code (change of + Feb 19 2005) since it's no longer needed. + + * regcomp.c (re_fastmap_iter): Undo addition of volatile from + Jan 18 2007; no longer needed and is one less change to have to + maintain against the upstream. + + * regcomp.c, regex.h, regex_internal.h: Sync with GLIBC. + +2013-08-22 Arnold D. Robbins + + * str_array.c (env_store): If the new value being stored is NULL, + pass in "" instead. Avoids core dump on Mac OS X. + Thanks to Hermann Peifer for the bug report. + +2013-08-20 Arnold D. Robbins + + * nonposix.h: New file. Contains FAKE_FD_VALUE. + * awk.h: Include it if MinGW or EMX. + * Makefile.am (base_sources): Add nonposix.h. + +2013-08-18 Arnold D. Robbins + + Reflect updates to ENVIRON into the real environment. + + * awk.h (init_env_array): Add declaration. + * main.c (load_environ): Call init_env_array. + * str_array.c (env_remove, env_store, env_clear, init_env_array): + New functions. + (env_array_func): New array vtable. + +2013-08-18 Arnold D. Robbins + + * array.c (force_array): Set symbol->xarray to NULL before + initing the array if it was Node_var_new. + (null_array): Restore assert, undoing change of 2013-05-27. + +2013-08-15 Arnold D. Robbins + + * debug.c (print_memory): Fix whitespace / indentation. + +2013-08-02 Arnold D. Robbins + + * awkgram.y (append_rule): Add attempt to insert any comment + before a rule. Commented out at the moment. + +2013-07-30 Arnold D. Robbins + + * awk.h (enum opcodeval): Add Op_comment. + * awkgram.y (comment): New variable to hold comment text. + (statement): Add saved comments to lists being built. + (allow_newline): Save comment text if necessary. Append if have + existing text. + (yylex): Ditto. + * debug.c (print_instruction): Handle Op_comment. + * eval.c (optypes): Add entry for Op_comment. + * interpret.h (r_interpret): Ditto. + * profile.c (pprint): For Op_comment, print the comment text. + +2013-07-24 Arnold D. Robbins + + * io.c (FAKE_FD_VALUE): Move definition from here ... + * awk.h (FAKE_FD_VALUE): ... to here. Fixes compilation on MinGW. + +2013-07-08 Arnold D. Robbins + + * io.c (get_a_record): Change `min' to `MIN' for consistency with + other files and general practice. + +2013-07-07 Andrew J. Schorr + + * configure.ac (AC_CHECK_FUNCS): Check for sigprocmask. + * io.c (wait_any): If sigprocmask is available, block signals instead + of ignoring them temporarily. + +2013-07-05 Andrew J. Schorr + + * gawkapi.h (gawk_api): Document that the api_get_file function will not + access the file type and length arguments if the file name is empty. + +2013-07-04 Andrew J. Schorr + + * configure.ac (AC_CHECK_FUNCS): Add a check for waitpid. + * io.c (wait_any): Enhance comment to explain why we loop reaping all + exited children when the argument is zero. When available, use waitpid + with WNOHANG to avoid blocking. Remove my previous incorrect patch to + exit after reaping the first child. The function is intended to + wait for all children, since we are not careful about reaping children + as soon as they die. + +2013-07-02 Andrew J. Schorr + + * gawkapi.h (gawk_api): Remove unused api_lookup_file hook. + (lookup_file): Remove associated macro. + * gawkapi.c (api_lookup_file): Remove unused function. + (api_impl): Remove unused api_lookup_file hook. + +2013-07-02 Andrew J. Schorr + + * awkgram.y (main_beginfile): Declare new global INSTRUCTION *. + (parse_program): Set main_beginfile to point to the BEGINFILE + instruction block. + * gawkapi.c (api_get_file): After nextfile starts a new file, + we need to run the BEGINFILE actions. We retrieve the + instruction pointer from main_beginfile and execute it until + we reach the Op_after_beginfile opcode. We then run after_beginfile + manually and restore the value of currule and source. + +2013-07-04 Andrew J. Schorr + + * gawkapi.h (awk_element_t): Add comment indicating that the array + element index will always be a string! + * gawkapi.c (api_flatten_array): When converting the index to an awk + value, request a string conversion, since we want the indices to + appear as strings to the extensions. This makes the call to + force_string redundant, since node_to_awk_value does that internally + when we request a string. + +2013-07-02 Andrew J. Schorr + + * eval.c (update_ERRNO_string): Set PROCINFO["errno"] to 0. + * io.c (inrec): Since get_a_record may now return -2, be sure + to throw an error in that case as well. + (wait_any): Fix what appears to be a bug. The old logic repeatedly + called wait until it failed. When a process has multiple children, + this causes it to stall until all of them have exited. Instead, + we now exit the function after the first successful wait call. + (do_getline_redir, do_getline): Handle case where get_a_record + returns -2. + (errno_io_retry): New function to decide whether an I/O operation should + be retried. + (get_a_record): When read returns an error, call errno_io_retry to + decide whether the operation should be retried. If so, return -2 + instead of setting the IOP_AT_EOF flag. + +2013-07-01 Andrew J. Schorr + + * eval.c (update_ERRNO_int, unset_ERRNO): Update PROCINFO["errno"]. + +2013-06-30 Andrew J. Schorr + + * awk.h (redirect_string): Declare new function that provides API access + to the redirection mechanism. + * gawkapi.h (GAWK_API_MINOR_VERSION): Bump from 0 to 1 since 2 new + hooks were added to the api. + (gawk_api_t): Add 2 new functions api_lookup_file and api_get_file. + (lookup_file, get_file): New macros to wrap the new API functions. + * gawkapi.c (curfile): Declare this extern, since it is needed + by lookup_file and get_flie. + (api_lookup_file): Find an open file using curfile or getredirect(). + (api_get_file): Find or open a file using curfile or redirect_string(). + (api_impl): Add api_lookup_file and api_get_file. + * io.c (redirect_string): Renamed from redirect and changed arguments + to take a string instead of a 'NODE *'. This allows it to be called + through the API's new get_file hook. + (redirect): Now implemented by calling redirect_string backend function. + +2013-07-04 Arnold D. Robbins + + * builtin.c (format_tree): Fixes for %c with multibyte characters + and field width > 1. Bugs reported by Nethox . + +2013-07-02 Arnold D. Robbins + + * profile.c (pp_string): Add a call to chksize and fix another. + Avoids valgrind errors on profile5 test. Thanks to Andrew + Schorr for the report. + +2013-06-27 Arnold D. Robbins + + * awkgram.y: Minor whitespace cleanup, remove redundant ifdef. + +2013-06-24 Arnold D. Robbins + + * dfa.c (copytoks): Rewrite to call addtok_mb() directly. Avoids + problems with multibyte characters inside character sets. + Thanks to Steven Daniels for reporting + the problem. Much thanks to Mike Haertel for the + analysis and fix. + +2013-06-24 Eli Zaretskii + + * io.c: Move #include "popen.h" out of the HAVE_SOCKETS condition, + as this is needed for non-sockets builds as well. See + http://lists.gnu.org/archive/html/bug-gawk/2013-06/msg00014.html + for the details of the problem this caused. + +2013-06-15 Arnold D. Robbins + + * io.c: Add ifdefs for VMS so that it will compile again. + Thanks to Anders Wallin. + +2013-06-11 Arnold D. Robbins + + * debug.c (print_lines): Move setting of binary mode to after all + the messing with the fd. Simplifies code some. + * io.c (srcopen): Rearrange so that can add call to setbinmode + here too. This fixes the debugger and makes reading source + files a little faster. Thanks again to Corinna Vinschen. + +2013-06-10 Arnold D. Robbins + + * debug.c (print_lines): Set binary mode so that calculation of the + byte offsets will be right. Thanks to Corinna Vinschen for the + direction. + +2013-06-10 Arnold D. Robbins + + * re.c (check_bracket_exp): Remove warning about ranges being + locale dependent, since they aren't anymore. + +2013-06-09 Arnold D. Robbins + + * io.c (iop_finish): Change fstat call to fcntl/F_GETFL per + Eli Z., for Windows. + +2013-06-03 Arnold D. Robbins + + * eval.c (unwind_stack): If exiting, don't worry about strange stuff + on the stack. + + Unrelated: + + * awk.h (init_sockets): Declare. + * io.c (init_io): Remove ifdef around call. + +2013-06-01 Eli Zaretskii + + * io.c (SHUT_RD) [SD_RECEIVE]: Define to SD_RECEIVE. + (SHUT_WR) [SD_SEND]: Define to SD_SEND. + (SHUT_RDWR) [SD_BOTH]: Define to SD_BOTH. + (FD_TO_SOCKET, closemaybesocket) [!FD_TO_SOCKET]: New macros. + (SOCKET_TO_FD, SOCKET) [!SOCKET_TO_FD]: New macros. + (PIPES_SIMULATED): Define only for DJGPP. + (pipe) [__MINGW32__]: Define to call _pipe, unless PIPES_SIMULATED + is defined. + (init_io) [HAVE_SOCKETS]: Call init_sockets. + (iop_close, socketopen): Call closemaybesocket instead of close. + (redirect) [__MINGW32__]: Call wait_any with a non-zero argument. + (devopen) [__EMX__ || __MINGW32__]: Don't call stat on network + pseudo-filenames. + (two_way_open) [HAVE_SOCKETS]: Switch input and output to binary + mode if appropriate. + (two_way_open) [!PIPES_SIMULATED]: Use the __EMX__ code for MinGW + as well. + [__MINGW32__] Call spawnl to invoke $ComSpec and pass it a + suitably quoted command line. + (two_way_open) [__MINGW32__]: Wait only for a specified process + ID. If successful, update the exit status of the exited process. + Don't use signals that are undefined on MinGW. + (two_way_open) [!PIPES_SIMULATED]: Use the __EMX__ code for MinGW + as well. + (min): Define only if not already defined. + (read_with_timeout) [__MINGW32__]: Allow reading from sockets with + timeout. + (gawk_fclose) [__MINGW32__]: Close the underlying socket as well. + + * getopt.c: Include stdlib.h for MinGW as well. + +2013-05-30 Arnold D. Robbins + + More profiling fixes: + + * profile.c (pprint): For Op_in_array, parenthesize subscript if + the precedence is lower. E.g.: (c = tolower(foo)) in ARRAY. + (prec_level): Merge cases for precedence of 5. + (parenthesize): Simplify, as in 3.1.8. Avoids stuff like + `(x == 1 && (z ==2 && (q == 4 && w == 7)))'. + + Unrelated: + + * io.c (iop_finish): fstat the fd before closing it to avoid + errors on some operating systems. Thanks to Eli Zaretskii + for the report. + +2013-05-29 Arnold D. Robbins + + * profile.c (pp_group3): Renamed from pp_concat. Change all calls. + (is_binary): Change return type to bool. + (is_scalar): New function. + (pp_concat): New function to handle concatenation operator better. + (pprint): Call it at case Op_concat. Fix Op_K_delete if multiple + indexes to separate with "][". + General: Add leading comments as needed. + +2013-05-28 Arnold D. Robbins + + * main.c (main): Add minor hack to not run code if pretty printing + and undocumented env var GAWK_NO_PP_RUN exists. + * profile.c (pp_string): Explicitly print NUL chars as \000. + +2013-05-27 Arnold D. Robbins + + * configure.ac (AM_INIT_AUTOMAKE): Add dist-lzip to quiet + outside maintainer warnings. + + Unrelated: + + * configure.ac (AC_STRUCT_ST_BLKSIZE): Replaced with call to + AC_CHECK_MEMBERS. + + Unrelated: + + * array.c (null_array): Remove the assert and just clear + symbol->xarray. + +2013-05-26 Arnold D. Robbins + + * getopt.c: For Mac OS X, also include to avoid + some compiler warnings. + +2013-05-20 Arnold D. Robbins + + * gawkapi.h [FAKE_FD_VALUE]: Moved from here to ... + * io.c [FAKE_FD_VALUE]: here. + +2013-05-14 Eli Zaretskii + + * io.c (devopen) [__EMX__ || __MINGW32__]: Produce EISDIR on MinGW + when an attempt to open() a directory fails. + (two_way_open) [__EMX__ || __MINGW32__]: When trying to open() a + directory fails with EISDIR, assign FAKE_FD_VALUE to the file + descriptor and attributes of a directory to its mode bits. This + is needed to support the readdir extension. + + * gawkapi.h (FAKE_FD_VALUE): New macro, used in io.h and in + extension/gawkdirfd.h. + +2013-05-09 Arnold D. Robbins + + * 4.1.0: Release tar ball made. + +2013-05-09 Arnold D. Robbins + + * awkgram.y (snode): Make it a fatal error to use a regexp constant + as the second argument of index(). Thanks to Christopher Durant + and Brian Kernighan for the report + and the advice. + +2013-04-28 Eli Zaretskii + + * io.c (redirect): Remove the HACK that called close_one when + errno was zero in the MinGW build. This prevents failure in + several tests in the test suite, e.g., closebad. + +2013-04-28 Arnold D. Robbins + + * bootstrap.sh: Fix a comment. + +2013-04-24 Arnold D. Robbins + + * io.c (do_getline_redir): Fix the leading comment. + +2013-04-23 Arnold D. Robbins + + * main.c (load_procinfo): Add PROCINFO entries for API major + and minor versions. + +2013-04-21 Arnold D. Robbins + + * missing: Update from Automake 1.13.1. + +2013-04-18 Arnold D. Robbins + + * configure.ac: Fix a typo. + +2013-04-17 Corinna Vinschen + + * configure.ac: Remove special casing for cygwin for libiconv + and libintl. + +2013-04-16 Arnold D. Robbins + + * bootstrap.sh: Touch gawk.texi too. Update copyright. + +2013-04-16 Arnold D. Robbins + + * awkgram.c: Regenerated from bison 2.7.1. + * command.c: Ditto. + * dfa.h, dfa.c: Minor edits to sync with GNU grep. + * gettext.h: Sync with gettext 0.18.2.1. + * random.h: Remove obsolete __P macro and use. Update copyright year. + * Makefile.am, array.c, builtin.c, cint_array.c, cmd.h, debug.c, + eval.c, ext.c, field.c, gawkapi.c, gawkapi.h, gettext.h, int_array.c, + interpret.h, msg.c, node.c, profile.c, re.c, replace.c, str_array.c, + symbol.c: Update copyright year. + + Update to automake 1.13.1: + + * configure.ac (AM_INIT_AUTOMAKE): Update version. + * configure, Makefile.in, aclocal.m4, awklib/Makefile.in, + doc/Makefile.in, test/Makefile.in: Regenerated. + + * getopt.c, getopt.h, getopt1.c, getopt_int.h: Sync with GLIBC. + +2013-04-14 Arnold D. Robbins + + * awkgram.y (check_funcs): Fix logic of test for called but + not defined warning. Thanks to Scott Deifik for the bug report. + +2013-04-02 Arnold D. Robbins + + * profile.c (print_lib_list): Send final newline to prof_fp + instead of stdout. Thanks to Hermann Peifer for the bug report. + +2013-03-27 Arnold D. Robbins + + * Makefile.am (SUBDIRS): Move extension back into the middle of + the list so that `make check' without a prior `make' works. + + Unrelated: + + * main.c (main): Move env_lc into ifdef for LIBC_IS_BORKED. + +2013-03-20 Arnold D. Robbins + + For systems where libc is borked (MirBSD, maybe others). + + * dfa.c: Force use of gawk_mb_cur_max instead of MB_CUR_MAX and make + mbrtowc a macro that always fails. + (using_utf8): Force utf8 to be 0 if libc borked and gawk_mb_cur_max + is one. + * main.c (main): If libc is borked and LC_ALL or LANG exist in the + environment and are set to "C" or "c", force gawk_mb_cur_max to one. + +2013-03-11 Arnold D. Robbins + + * re.c (check_bracket_exp): Make handling of embedded ] in + regexp smarter. Thanks to Ed Morton + for reporting the bug. + +2013-03-01 Arnold D. Robbins + + Don't build extensions if API isn't supported: + + * Makefile.am (SUBDIRS): Move extension directory to last in case + building the extensions is not supported. + * configure.ac: Add check for MirBSD and don't even try to run the + checks for DYNAMIC if so. + + Check for systems (MirBSD) where libc doesn't understand not + to use UTF-8 for LC_ALL=C. + + * configure.ac (LIBC_IS_BORKED): AC_DEFINE if needed. + * regcomp.c (init_dfa): Change logic as needed if LIBC_IS_BORKED. + +2013-02-28 Arnold D. Robbins + + Cause profiling / pretty printing to include a list of + loaded extensions. Thanks to Hermann Peifer for the bug report. + + * awk.h (srcfiles): Add declaration. + * profile.c (print_lib_list): New function. + (dump_prog): Call it. + +2013-02-26 Arnold D. Robbins + + * awkgram.y (expression_list): In case of error return the list + instead of NULL so that snode gets something it can count. + +2013-02-12 Arnold D. Robbins + + * bisonfix.awk: Comment out code for fixing continued #if + statements. It is likely not needed anymore. Leave it there in + case I'm wrong. + +2013-02-06 Arnold D. Robbins + + * builtin.c (printf_common): Move nargs > 0 check into assert. + (do_sprintf): Add nargs check and fatal message to here. + +2013-02-04 Arnold D. Robbins + + * main.c (main): Remove undocumented -m option which was for + compatibility with BWK awk. His awk dropped it back in 2007. + +2013-02-03 Arnold D. Robbins + + * configure.ac: Add Automake test for cross compiling. + +2013-01-31 Arnold D. Robbins + + * regcomp.c, regex.c, regex_internal.c, regexec.c: Update + copyright years to sync with GLIBC. + + From: http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html, + by Andreas Schwab : + + * regexec.c (extend_buffers): Add parameter min_len. + (check_matching): Pass minimum needed length. + (clean_state_log_if_needed): Likewise. + (get_subexp): Likewise.` + +2013-01-31 Arnold D. Robbins + + * dfa.c: Include "dfa.h" which includes regex.h after limits.h + so that RE_DUP_MAX gets the correct value. Especially needed on + OpenVMS. Thanks to Anders Wallin. + + * main.c (version): Print out API version numbers if DYNAMIC. + Helpful also for knowing if to run the shlib tests. + + * configure: Regenerated after change in m4/readline.m4. + +2013-01-31 Arnold D. Robbins + + * PROBLEMS: Removed. It is no longer needed. + * Makefile.am (EXTRA_DIST): Remove PROBLEMS from list. + +2013-01-31 Andrew J. Schorr + + * configure.ac: Remove TEST_MPFR conditional added in last patch. + We will instead test for MPFR capability by looking at the output + from gawk --version. + +2013-01-27 Andrew J. Schorr + + * configure.ac: Add MPFR test for use in test/Makefile.am. + +2013-01-25 Arnold D. Robbins + + * awkgram.y (parms_shadow): Change int param to bool. + * cmd.h (output_is_tty): Sync type with rest of code (is bool). + * dfa.c (MALLOC): Undef first, for Irix. + * Makefile.am (LDADD): Use LIBREADLINE and LIBMPFR instead of + automake substitutions. + * configure.ac (AC_INIT): Version bump. + (GAWK_CHECK_READLINE): Renamed from GNUPG_CHECK_READLINE. + +2013-01-23 Arnold D. Robbins + + * awk.h (list_functions): Change parameter to bool. + * symbol.c (list_functions): Ditto. + (get_symbols): Change sort parameter to bool. Additional + code cleanup. + +2013-01-22 Arnold D. Robbins + + * symbol.c (get_symbols): Reset count after each loop to only + sort the actual items retrieved. Thanks to Hermann Peifer (by + way of Andrew Schorr) for reporting the bug. Also add some + commentary and fix function name in emalloc calls. + +2013-01-20 Arnold D. Robbins + + * re.c (regexflags2str): New routine. + (resetup): If do_intervals, also turn on RE_NO_BK_BRACES. + Thanks to Yan Lei for the + bug report. + +2013-01-18 Arnold D. Robbins + + Fix a problem with include ordering to get ptrdiff_t definition, + showed up on Debian Lenny. Reported by Manuel Collado. + Fix brought over from grep. + + * dfa.h: Include regex.h and stddef.h directly. + * dfa.c: Adjust includes. + +2013-01-11 John Haque + + * awk.h (do_mpfr_rshift): Renamed from do_mpfr_rhift. + * awkgram.y (do_mpfr_rshift): Renamed from do_mpfr_rhift. + * mpfr.c (_tz1, _tz2, _mpz1, _mpz2, mpz1, mpz2, get_bit_ops, + free_bit_ops): Removed. + (init_mpfr): Remove calls to mpz_init. + (get_intval, free_intval): New functions. + (do_mpfr_rshift, do_mpfr_lshift): Rework code. + (do_mpfr_and, do_mpfr_or, do_mpfr_xor): Accept two or more arguments + to match regular functions. + +2013-01-11 Arnold D. Robbins + + * bisonfix.awk: Adjust ARGV / ARGC to force reading of standard + input; apparently needed for Mac OS X. Thanks to Akim Demaille + for the report. + +2013-01-06 Arnold D. Robbins + + * io.c (redirect, two_way_open): Set the name field in the + awk_input_buf_t and awk_output_buf_t structures, as needed. + Thanks to Manuel Collado for the report. + +2013-01-05 Arnold D. Robbins + + * regex_internal.h (struct re_dfa_t): Restore ifdefs around + __libc_lock_define, they really were needed. Bleah. + +2013-01-01 Arnold D. Robbins + + Sync with GLIBC regex files. + + * regex_internal.h (struct re_dfa_t): Remove ifdefs around + __libc_lock_define since it's already defined to empty in non-LIBC + case. + * regexec.c (check_node_accept_bytes): Restore decl with use from + GLIBC code since this is LIBC case. + +2012-12-27 Arnold D. Robbins + + * builtin.c (do_print, do_printf): Use output_fp as default + output for print/printf only if running under the debugger. + Otherwise use stdout as Brian, Peter, and Al intended. + +2012-12-25 Arnold D. Robbins + + Remove sym-constant from API after discussions with John + Haque and Andrew Schorr. + + * gawkapi.h (api_sym_constant): Removed field in API struct. + (sym_constant): Remove macro. + * gawkapi.c (set_constant, api_sym_update, api_sym_constant): Removed. + (sym_update_real): Renamed to api_sym_update(). is_const parameter + removed and code adjusted. + +2012-12-24 Arnold D. Robbins + + * 4.0.2: Release tar ball made. + +2012-12-23 John Haque + + * eval.c (r_get_lhs): Node_array_ref. If original is Node_var, + don't assign null-string as value. + * ext.c (get_argument): Node_array_ref. Check if already a scalar. + +2011-12-23 John Haque + + * awkgram.y (is_deferred_variable): New function. + (func_install): Call it. + * eval.c (r_interpret): Op_push_arg. Check for uninitialized scalar. + +2012-12-23 Arnold D. Robbins + + * awkgram.y (tokentab): Whitespace fix for "include". + * builtin.c (printf_common): Do a fatal error if no args to printf() + or sprintf(). + +2012-12-19 Arnold D. Robbins + + * bootstrap.sh: Touch extension/aclocal.m4 also. + + Unrelated: Extend input parser API: + + * awk.h (IOBUF): Remove read_func pointer. + * gawkapi.h (awk_input_buf_t): Move it to here. + * io.c (iop_alloc, get_a_record, get_read_timeout): Adjust code. + + Unrelated: Make sure that variables like NF, NR, FNR are + accessable correctly both through SYMTAB and through API. + + * gawkapi.c (api_sym_lookup): Call update_global_values(). + (api_sym_lookup_scalar): Ditto. + * interpret.h (Op_subscript, Op_subscript_lhs): Ditto. + * main.c (update_global_values): Adjust comment. + + Unrelated: Fix --disable-lint so that everything compiles. + + * main.c (main): Move case label inside ifdef. + * awkgram.y (isnoeffect): Add ifdefs around declaration, use, + and function body. + + Unrelated: Restore building with tcc. + + * awk.h (AFUNC): Move to array.c which is the only place its used. + (ainit_ind, atypeof_ind, etc.): New macros for use in array.c + * array.c (AFUNC): Change to use F##_ind. Works with tcc and other + compilers. + * configure.ac: Only add -export-dynamic flag if compiling with gcc. + +2012-12-18 Andrew J. Schorr + + * gawkapi.c (sym_update_real): If setting a scalar variable that exists + already in an undefined state with type set to Node_var_new, we must + update the type to Node_var if the new value is not undefined. + +2012-12-18 Arnold D. Robbins + + * awkgram.y (tokentab): "extension" needs to be inside ifdef DYNAMIC. + Thanks to Anders Wallin for finding this. + +2012-12-16 Arnold D. Robbins + + * debug.c (do_set_var): Fix last remaining `*assoc_lookup() = x'. + +2012-12-15 Arnold D. Robbins + + Infrastructure Updates: + + * awkgram.c, command.c: Regenerated with bison 2.7. + * config.guess, config.sub, depcomp: Updated from automake 1.12.6. + +2012-12-09 Arnold D. Robbins + + Clean up BINMODE to use symbolic values. + + * awk.h (enum binmode_values): New enum. + * eval.c (set_BINMODE): Use them. + * io.c (binmode, close_rp, gawk_popen): Ditto. + * main.c (main): Ditto. + * builtin.c (do_system): Ditto. + + Unrelated: + + * configure.ac: Look for posix_openpt + * io.c (two_way_open): Use posix_openpt if it's available. + Thanks to Christian Weisgerber for + the changes. + + Also unrelated: + + * regex.c: Don't include on VMS. Thanks to + Anders Wallin. + + Also unrelated: + + * ext.c (is_letter, is_identifier_char): New functions. Don't use + functions since those could rely on the locale. + (make_builtin): Adjust test for valid name to call the new + functions and return false instead of throwing a fatal error. + (make_old_builtin): Adjust test for valid name to call the new + function. + * awk.h (is_identchar): Move from here, ... + * awkgram.y (is_identchar): ... to here. This is safe, since + the locale is C during parsing the program. + + Also unrelated: Make all checks for bitflags being set consistent + in case we should wish to switch them to macro calls: + + * awkgram.y, builtin.c, cint_array.c, debug.c, eval.c, gawkapi.c, + int_array.c, io.c, mpfr.c, node.c, profile.c, str_array.c: Fix + as needed. + +2012-12-07 Arnold D. Robbins + + * awkgram.y (tokentab): `fflush()' is now in POSIX, remove the + RESX flag. This was the last use, so delete the flag. + (yylex): Don't check RESX. + + Thanks to Nathan Weeks for helping make this + happen. + +2012-12-01 Arnold D. Robbins + + * interpret.h: For op_assign_concat, if both strings + have WSTRCUR, then do the realloc() and append for the + wide string too. Thanks to Janis Papanagnou + for the discussion in + comp.lang.awk. + +2012-11-30 Arnold D. Robbins + + * regcomp.c, regex.c, regex_internal.h, regexec.c: Sync + with GLIBC. Why not. + + * gawkapi.c (awk_bool_t): Change into an enum with awk_false and + awk_true values. + +2012-01-30 Andrew J. Schorr + + Further cleanups of macros in awk.h + + * awk.h (_r, _t): Remove declarations. + (unref, m_force_string): Remove macros. + (r_unref): Move declaration. + (r_force_string): Remove declaration. + (DEREF, force_string, force_number, unref): Now inline functions. + (POP_STRING, TOP_STRING): Back to macros. + * eval.c (_t): Remove definition. + * main.c (_r): Remove definition. + * node.c (r_force_string): Remove. + +2012-11-27 Arnold D. Robbins + + * builtin.c (do_fflush): Make fflush() and fflush("") both + flush everything. See the comment in the code. + +2012-11-26 Arnold D. Robbins + + * awk.h (Node_old_ext_func, Op_old_ext_func): New enum values. + * configure.ac: Use -export-dynamic if supported for old extension + mechanism. + * eval.c (nodeytpes): Add Node_old_ext_func. + (optypetab): Add Op_old_ext_func. + * ext.c (make_old_ext_builtin): "New" function. + * interpret.h: Special case Op_old_ext_builtin. Add checks for + Node_old_ext_func. + * msg.c: Adjust placement of a comment. + +2012-05-02 John Haque + + * str_array.c (str_copy): Initialize next pointer in the linked list + to avoid memory corruption. + * int_array.c (int_copy): Ditto. + +2012-04-21 John Haque + + Shutdown routine for a dynamic extension. + + * awk.h (SRCFILE): New field fini_func. + * ext.c (load_ext): Takes an additional argument to look up and + save the clean up routine in SRCFILE struct. + (INIT_FUNC, FINI_FUNC): Defines for default init and fini routine + names. + (do_ext): Use default for the name of the init or fini routine if + one is not supplied. Adjust call to load_ext(). + (close_extensions): Execute fini routines. + * interpret.h (Op_at_exit): Call close_extensions(). + * msg.c (gawk_exit): Ditto. + * debug.c (close_all): Ditto. + * main.c (main): Adjust call to load_ext(). + * awkgram.y (tokentab): Specify 2nd and 3rd optional arguments + for the extension() built-in. + + Unrelated: + + * interpret.h (Op_arrayfor_init): Use assoc_length for array size. + +2012-04-19 John Haque + + Enhanced array interface to support transparent implementation + using external storage and ... + + * awk.h (astore): Optional post-assignment store routine for + array subscripts. + (Op_subscript_assign): New opcode to support the store routine. + (alength): New array interface routine for array length. + (assoc_length): New macro. + (assoc_empty): Renamed from array_empty. + * awkgram.y (snode): Append Op_subscript_assign opcode if + (g)sub variable is an array element. + (mk_getline): Same for getline variable. + (mk_assignment): Same if assigning to an array element. + * field.c (set_element): Call store routine if needed. + * builtin.c (do_match): Ditto. + (do_length): Use length routine for array size. + * symbol.c (print_vars): Ditto. + * array.c (null_length): Default function for array length interface. + (asort_actual): Call store routine if defined. + (asort_actual, assoc_list): Use length routine for array size. + (null_array_func): Add length and store routine entries. + * str_array.c (str_array_func): Same. + * cint_array.c (cint_array_func): Same. + * int_array.c (int_array_func): Same. + * eval.c (optypetab): Add Op_subscript_assign. + * profile.c (pprint): Add case Op_subscript_assign. + * interpret.h (set_array, set_idx): New variables to keep track + of an array element with store routine. + (Op_sub_array, Op_subscript_lhs, Op_store_sub, Op_subscript_assign): + Add code to handle array store routine. + * debug.c (print_symbol, print_array, cmp_val, watchpoint_triggered, + initialize_watch_item): Use length routine for array size. + + * awk.h (assoc_kind_t): New typedef for enum assoc_list_flags. + (sort_context_t): Renamed from SORT_CONTEXT. + * array.c (asort_actual, assoc_sort): Adjust. + * cint_array.c (cint_list, tree_list, leaf_list): Adjust. + * int_array.c (int_list): Adjust. + * str_array.c (str_list): Adjust. + +2012-04-18 John Haque + + * awk.h (atypeof, AFUNC): New macros. + (afunc_t): Renamed typedef from array_ptr. + * array.c (register_array_func, null_lookup): Use AFUNC macro + instead of hard-coded index for array functions. + (asort_actual): Unref null array elements before overwriting. + (force_array): Renamed from get_array. + (null_array): Renamed from init_array. Also initialize flags to 0. + (array_types): Renamed from atypes. + (num_array_types): Renamed from num_atypes. + * interpret.h (r_interpret): In case Op_sub_array, unref null array element. + * str_array.c (str_array_init): Reworked for (re)initialization of array. + * int_array.c (int_array_init): Ditto. + * cint_array.c (cint_array_init): Ditto. + +2012-11-24 Arnold D. Robbins + + Directory cleanup. + + * TODO.xgawk, FUTURES: Merged into TODO. + * TODO: More stuff added. + * Makefile.am (EXTRA_DIST): Updated. + +2012-11-22 Arnold D. Robbins + + Cleanup of awk.h. + + * array.c (r_in_array): Removed. + * awk.h (MALLOC_ARG_T): Replaced with size_t everywhere. + (S_ISREG, setsid): Moved to io.c. + (__extension__): Removed. + (INT32_BIT): Moved to cint_array.c. + (_t): Always declare. + (DO_LINT_INVALID, et al): Moved into an enum. + (POP_ARRAY, POP_PARAM, POP_SCALAR, TOP_SCALAR, dupnode, in_array): + Moved into inline functions. + (force_number, force_string): Simplified. + (ZOS_USS): Remove undef of DYNAMIC, it's handled in configure.ac. + * io.c (S_ISREG, setsid): Moved to here. + * cint_array.c (INT32_BIT): Moved to here. + * eval.c (_t): Always define. + * protos.h: Use size_t directly instead of MALLOC_ARG_T. + + Unrelated: + + * gawkapi.h: Add `awk_' prefix to structure tags where they + were missing. Document the full list of include files needed. + +2012-11-14 Arnold D. Robbins + + * io.c (do_find_source): On VMS, don't add the `/' separator. + Thanks to Anders Wallin. + + MPFR minor cleanup: + + * awk.h (mpfr_unset): Declare new function. + * mpfr.c (mpfr_unset): New function. + * node.c (r_unref): Call it instead of inline code. + * gawk_api.c (api_sym_update_scalar): Call it instead of inline code. + +2012-11-13 Arnold D. Robbins + + * symbol.c (get_symbols): Check type, not vname. Keeps + valgrind happy. Thanks to Andrew Schorr for noticing the problem. + +2012-11-10 Arnold D. Robbins + + * Update to bison 2.6.5. Various files regenerated. + * io.c (find_source): Add a default value for SHLIBEXT. + (read_with_timeout): For VMS also, just use read(). + +2012-11-10 John Haque + + * int_array.c (int_copy): Initialize next pointer of newchain to null. + * eval.c (eval_condition): Force string context for an integer used + as array index. + +2012-11-10 Arnold D. Robbins + + * gawkapi.c (api_add_ext_func, api_awk_atexit, api_clear_array, + api_create_array, api_create_value, api_register_ext_version, + api_release_value, api_update_ERRNO_string, node_to_awk_value, + remove_element, run_ext_exit_handlers): Add null pointer checks. + Everywhere: Add / fixup leading comments. + + * interpret.h (Op_store_sub): If assigning to an uninitialized variable + through SYMTAB, change it to Node_var. Add explanatory comments. + * symbol.c (get_symbol): Rationalized. Skip non-variables in SYMTAB. + +2012-11-04 Arnold D. Robbins + + * gawkapi.h: Minor documentation edit. + +2012-10-31 Arnold D. Robbins + + * awkgram.y (want_regexp): Use as a bool, not as an int. + * field.c: Fix a comment. + * gawkapi.h: Add comment to include . + * symbol.c (load_symbols): ``No automatic aggregate initialization.'' + Here too. Sigh again. + + * gawkapi.h: Minor documentation edits. + +2012-11-27 Arnold D. Robbins + + * builtin.c (do_fflush): Make fflush() and fflush("") both + flush everything. See the comment in the code. + +2012-10-28 Arnold D. Robbins + + * Update to bison 2.6.4. Various files regenerated. + +2012-10-27 Arnold D. Robbins + + * gawkapi.h: Continuing the minor formatting / doc cleanups. + +2012-10-26 Arnold D. Robbins + + * gawkapi.h: Continuing the minor formatting / doc cleanups. + +2012-10-24 Arnold D. Robbins + + * gawkapi.h: Still more minor formatting / doc cleanups. + +2012-10-23 Arnold D. Robbins + + * gawkapi.h: More minor formatting / doc cleanups. + +2012-10-21 Arnold D. Robbins + + Fixes for z/OS from Dave Pitts. + + * awk.h (assoc_list_flags): No trailing comma on last enum value. + * gawkapi.h (awk_valtype_t): Ditto. + * symbol.c (lookup): ``No automatic aggregate initialization.'' Sigh. + + Unrelated: + + * gawkapi.h: Minor formatting / doc cleanups. + +2012-10-19 Arnold D. Robbins + + If SYMTAB is used, make sure ENVIRON and PROCINFO get loaded too. + + * awkgram.y (process_deferred): New function. Call it when program + is completely parsed. + (symtab_used): New variable. + (variable): Set it to true if SYMTAB is looked up. + * main.c (load_environ, load_procinfo): Make sure the routines are + only called once. + + Unrelated fixes: + + * awkgram.y (yylex): Check continue_allowed and break_allowed as + soon as they are seen in the scanner; the rules that check them + can not be reduced until after a token that allows them is seen, + leading to errors at execution time. + * interpret.h (Op_K_break, Op_K_continue, Op_jmp): Add assertion + that pc->target_jmp is not NULL. + + * symbol.c (lookup): Correct a comment. + +2012-10-14 Arnold D. Robbins + + * gawkapi.h (IOBUF_PUBLIC): Renamed awk_input_buf_t. + (struct iobuf_public): Renamed struct awk_input. + * awk.h: Adjust. + +2012-10-13 Arnold D. Robbins + + * Update to Automake 1.12.4. Various files regenerated. + +2012-10-11 Arnold D. Robbins + + * awk.h (dup_ent): New member for Node_param_list. + * symbol.c (install): For parameters, if this is a duplicate, chain + it off the original using the dup_ent pointer. + (remove_params): If there's a duplicate, remove it from the list. + + * awk.h: Fix flags to have unique numeric values. Oops. + +2012-10-10 Arnold D. Robbins + + * gawkapi.h: Add considerably more documentation. Rearrange order + of functions in the struct to make more sense, grouping related + functions together in a more logical order. + * gawkapi.c: Adjust as needed. + * ext.c (make_builtin): Adjust for name change in struct member. + +2012-10-05 Arnold D. Robbins + + * mbsupport.h: Add a bunch of undefs for z/OS. + +2012-10-04 Arnold D. Robbins + + * TODO.xgawk: Update. + * awk.h (make_str_node): Removed macro. + (make_string): Modified to call make_str_node. + (r_make_str_node): Renamed to make_str_node. + * gawkapi.c: Changed r_make_str_node to make_str_node everywhere. + * node.c (make_str_node): Renamed from make_str_node. + + Update to automake 1.12.4. + + * Makefile.in, aclocal.m4, awklib/Makefile.in, doc/Makefile.in, + extension/Makefile.in, extension/aclocal.m4, test/Makefile.in: + Regenerated. + + * interpret.h (Op_Subscript): Added lint warnings for FUNCTAB + and SYMTAB. + +2012-10-02 Arnold D. Robbins + + * awk.h (func_table): Declare. + * awkgram.y: If do_posix or do_traditional, then check for + delete on SYMTAB. Add check for delete on FUNCTAB, also. + * interpret.h (Op_Subscript): For FUNCTAB, return the element name + as its value too. Avoids lots of weirdness and allows indirect calls + after assignment from FUNCTAB["foo"] to work. + (Op_store_sub): Disallow assignment to elements of FUNCTAB. + (Op_indirect_func_all): Turn assert into check and fatal error. + * symbol.c (func_table): No longer static. + (lookup): If do_posix or do_traditional, skip the global table. + (release_all_vars): Clear func_table too. + +2012-09-25 Arnold D. Robbins + + First cut at SYMTAB and FUNCTAB. This does the following: + - Change symbol table handling to use gawk arrays. + - Store symbols in SYMTAB array and allow indirect access + through SYMTAB to variables, both getting and setting. + - List function names in FUNCTAB indexes; Values cannot be + used at the moment. + - No documentation yet. + + * awk.h (Node_hashnode, hnext, hname, hlength, hcode, hvalue): + Removed, not needed any more. + (init_symbol_table, symbol_table): Add declarations. + * awkgram.y: Disallow delete on SYMTAB, fix warning for tawk + extension if traditional. + * eval.c (nodetypes): Remove Node_hashnode element. + * interpret.h (Op_subscript, Op_store_sub): Handle SYMTAB and go + through to the actual value. + * main.c (main): Init Nnull_string earlier. Add call to + init_symbol_table(). + * profile.c (pp_str, pp_len): Change definitions. + (pp_next): New macro. + (pp_push, pp_pop): Adjust uses. + * symbol.c (variables): Removed. + (global_table, param_table, func_table, symbol_table, + installing_specials): New variables. + (lookup, make_params, install_params, remove_params, remove_symbol, + make_symbol, install, get_symbols, release_all_vars, append_symbol, + release_symbols, load_symbols): Rework logic considerably. + (init_symbol_table): New function. + +2012-09-23 Arnold D. Robbins + + `delete array' and `nextfile' are now in POSIX. + Thanks to Nathan Weeks for the + initiative and letting us know about it. + + * awkgram.y: Make the right code changes for `delete array' + and `nextfile'. + (tokentab): Set flags to zero for nextfile. + +2012-09-19 Arnold D. Robbins + + * symbol.c (load_symbols): Zero out the new node. Prevents assertion + failure on PPC Mac OS X. + +2012-09-14 Arnold D. Robbins + + Allow read-only access to built-in variables from extensions. + + * awk.h (NO_EXT_SET): New flag. + * gawkapi.c (api_sym_lookup, api_sym_update_real): Set flag if off + limits variable instead of failing. Adjust logic. + (api_sym_update_scalar, api_set_array_element, api_del_array_element, + api_release_flattened_array): Adjust logic. + * gawkapi.h: Adjust documentation. + + Provide PROCINFO["identifiers"]. Undocumented for now. + + * awk.h (load_symbols): Add declaration. + * awkgram.y (variable): Adjust comment formatting. + * main.c (main): Call load_symbols(). + * symbol.c (load_symbols): New function. + +2012-09-13 Arnold D. Robbins + + * configure.ac: Determination of DYNAMIC adjusted. Hopefully is + smarter for z/OS. + +2012-09-13 Dave Pitts + + * awk.h: Add defines for z/OS for newer types. + +2012-08-31 Arnold D. Robbins + + * gawkapi.c: Wrap various bits in #ifdef DYNAMIC so that + gawk will compile on systems without dynamic loading. + +2012-08-24 Arnold D. Robbins + + Add version facility to API. Thanks to Manuel Collado + for the idea. + + * awk.h (print_ext_versions): Declare. + Rearrange includes and decls to make more sense. + * gawkapi.h (register_ext_version): New API. + (dl_load_func): Add code for ext_version. + * gawkapi.c (api_register_ext_version, print_ext_versions): + New functions. + * main.c (do_version): New variable. + (optab): Set it for -v / --version. + (main): Set it in arg parsing switch. Call version() after the + extensions have been loaded. + +2012-08-22 Arnold D. Robbins + + Add output wrapper and two-way processor to extension API. + + * awk.h (struct redirect): Replace output FILE * with awk_output_buf_t. + (register_output_wrapper, register_two_way_processor): Declare. + * builtin.c (efwrite): Adjust logic to use rp->output data and + functions if rp is not NULL. Remove redundant declaration of function. + (do_fflush, do_printf, do_print, do_print_rec): Same adjustment. + * ext.c (make_builtin): Adjust error messages. + * gawkapi.c (api_register_output_wrapper, + api_register_two_way_processor): New functions. + (sym_update_real): Adjust code formatting. + * gawkapi.h (awk_input_parser_t): Make next pointer awk_const. + (awk_output_buf_t, awk_two_way_processor_t): New structs. + (api_register_output_wrapper, api_register_two_way_processor): New APIs. + (dl_load_func): Allow for empty function table (NULL elements). + * io.c (find_output_wrapper, init_output_wrapper, find_two_processor, + gawk_fwrite, gawk_ferror, gawk_fflush, gawk_fclose): New functions. + (redirect): Call init_output_wrapper, find_output_wrapper as needed. + Adjust use of rp->fp to rp->output.fp and also function calls. + (close_rp, close_redir, flush_io): Same adjustment. + (two_way_open): Same adjustment. Call find_two_way_processor, and + find_output_wrapper, as needed. + +2012-08-17 Arnold D. Robbins + + * Update infrastructure: Automake 1.12.3 and bison 2.6.2. + +2012-08-15 Arnold D. Robbins + + * dfa.c: Sync w/GNU grep. + +2012-08-12 Arnold D. Robbins + + * gawkapi.h: Make the versions enum constants instead of defines. + +2012-08-11 Andrew J. Schorr + + * awkgram.y (add_srcfile): It is now a fatal error to load the + same file with -f and -i (or @include). + * TODO.xgawk: Update to reflect this change. + +2012-08-10 Arnold D. Robbins + + * FUTURES, TODO.xgawk: Updates. + +2012-08-08 Arnold D. Robbins + + * configure.ac: Add -DNDEBUG to remove asserts if not developing. + + * gawkapi.h: Document how to build up arrays. + * gawkapi.c (api_sym_update): For an array, pass the new cookie + back out to the extension. + + * awk.h (IOBUF): Move struct stat into IOBUF_PUBLIC. + (os_isreadable): Change to take an IOBUF_PUBLIC. + * gawkapi.h (IOBUF_PUBLIC): Received struct stat. + (INVALID_HANDLE): Moves to here. + * io.c (iop_alloc): Stat the fd and fill in stat buf. + (iop_finish): Use passed in stat info. + +2012-08-05 Arnold D. Robbins + + * README.git: More stuff added. + +2012-08-01 Arnold D. Robbins + + * io.c (iop_finish): New function. + (iop_alloc): Add errno_val parameter. Move code into iop_finish. + Add large explanatory leading comment. + (after_beginfile): Rework logic. Check for input parser first, then + check for invalid iop. + (nextfile): Organize code better. Call iop_alloc then iop_finish. + (redirect): Call iop_alloc, find_input_parser, iop_finish. + (two_way_open): Call iop_alloc, find_input_parser, iop_finish. + (gawk_popen): Call iop_alloc, find_input_parser, iop_finish. + (find_input_parser): Set iop->valid if input parser takes control. + (get_a_record): Rework setting RT to use macros. + +2012-07-29 Andrew J. Schorr + + * awk.h (set_RT_to_null, set_RT): Removed. + * gawkapi.h (api_set_RT): Removed. + (get_record): Signature changed in input parser struct. + * gawkapi.c (api_set_RT): Removed. + * io.c (set_RT_to_null, set_RT): Removed. + (get_a_record): Adjustments for new API for input parser. + +2012-07-29 Arnold D. Robbins + + * awk.h (os_isreadable): Adjust declaration. + (struct iobuf): Add new member `valid'. + * io.c (iop_alloc): Remove do_input_parsers parameter, it's + always true. Adjust logic to set things to invalid if could not + find an input parser. + (after_beginfile): Use valid member to check if iobuf is valid. + Don't clear iop->errcode. + (nextfile): Adjust logic to clear errcode if valid is true and + also to update ERRNO. + (redirect): Check iop->valid and cleanup as necessary, including + setting ERRNO. + (two_way_open): Ditto. + (gawk_popen): Ditto. + (devopen): Remove check for directory. + +2012-07-27 Andrew J. Schorr + + * io.c (find_input_parser): Issue a warning if take_control_of fails. + +2012-07-27 Arnold D. Robbins + + * awk.h (set_RT): Change to take a NODE * parameter. + * io.c (set_RT): Change to take a NODE * parameter. + * gawkapi.h: Change open hook to input parser in comment. + * gawkapi.c (api_set_RT): Adjust call to set_RT. + +2012-07-26 Arnold D. Robbins + + * awk.h (set_RT_to_null, set_RT): Declare functions. + (os_isreadable): Declare function. + * io.c (set_RT_to_null, set_RT): New functions. + (iop_close): Init ret to zero. + * gawkapi.c (api_register_input_parser): Check for null pointer. + (api_set_RT): New function. + * gawkapi.h (api_set_RT): New function. + +2012-07-26 Andrew J. Schorr + + * gawkapi.h (IOBUF_PUBLIC): Document the get_record and close_func + API. + (awk_input_parser_t) Change can_take_file argument to const, and + document the API. + * io.c (get_a_record): Document that the caller initializes *errcode + to 0, and remote the test for non-NULL errcode. + +2012-07-26 Andrew J. Schorr + + * gawkapi.c (api_sym_update_scalar): Fix some minor bugs. Was + not updating AWK_NUMBER when valref != 1. And strings were not + freeing MPFR values. + +2012-07-25 Arnold D. Robbins + + Start refactoring of IOBUF handling and turn "open hooks" + into "input parsers". + + * awk.h (IOP_NOFREE_OBJ): Flag removed. + (register_input_parser): Renamed from register_open_hook. + * ext.c (load_ext): Make sure lib_name is not NULL. + * gawk_api.c (api_register_input_parser): Renamed from + api_register_open_hook. + * gawk_api.h (api_register_input_parser): Renamed from + api_register_open_hook. Rework structure to have "do you want it" + and "take control of it" functions. + * io.c (iop_alloc): Remove third argument which is IOBUF pointer. + Always malloc it. Remove use of IOP_NOFREE_OBJ everywhere. + (find_input_parser): Renamed from find_open_hook. + (nextfile): Don't use static IOBUF. + (iop_close): Call close_func first. Then close fd or remap it + if it's still not INVALID_HANDLE. + (register_input_parser): Renamed from register_open_hook. + Use a FIFO list and check if more than one parser will accept the + file. If so, fatal error. + +2012-07-25 Andrew J. Schorr + + * configure.ac: Instead of using acl_shlibext for the shared library + extension, define our own variable GAWKLIBEXT with a hack to work + correctly on Mac OS X. + * Makefile.am (SHLIBEXT): Use the value of GAWKLIBEXT instead of + acl_shlibext. + +2012-07-24 Arnold D. Robbins + + * configure.ac: Add crude but small hack to make plug-ins work + on Mac OS X. + +2012-07-20 Arnold D. Robbins + + * gawkapi.h: Rework table to not take up so much space. + * gawkapi.c (api_sym_update_scalar): Rework optimization code + to clean up the function. + +2012-07-17 Andrew J. Schorr + + * gawkapi.h: Add comments explaining new api_create_value and + api_release_value functions. + * gawkapi.c (sym_update_real): Allow updates with AWK_SCALAR and + AWK_VALUE_COOKIE types. After creating a regular variable, + remove the call to unref(node->var_value), since this is not + done elsewhere in the code (see, for example, main.c:init_vars). + If the update is for an existing variable, allow any val_type + except AWK_ARRAY (was previously disallowing AWK_SCALAR and + AWK_VALUE_COOKIE for no apparent reason). + (api_sym_update_scalar): The switch should return false for an + invalid val_type value, so change the AWK_ARRAY case to default. + (valid_subscript_type): Any scalar value is good, so accept any valid + type except AWK_ARRAY. + (api_create_value): Accept only AWK_NUMBER and AWK_STRING values. + Anything else should fail. + +2012-07-17 Arnold D. Robbins + + Speedup: + + * awk.h (r_free_wstr): Renamed from free_wstr. + (free_wstr): Macro to test the WSTRCUR flag first. + * node.c (r_free_wstr): Renamed from free_wstr. + + Support value cookies: + + * gawkapi.h (awk_val_type_t): Add AWK_VALUE_COOKIE. + (awk_value_cookie_t): New type. + (awk_value_t): Support AWK_VALUE_COOKIE. + (api_create_value, api_release_value): New function pointers. + * gawkapi.c (awk_value_to_node, api_sym_update_scalar, + valid_subscript_type): Handle AWK_VALUE_COOKIE. + (api_create_value, api_release_value): New functions. + +2012-07-16 Arnold D. Robbins + + * gawkapi.c (awk_value_to_node): Support AWK_SCALAR. + (api_sym_update_scalar): Performance improvements. + +2012-07-12 Arnold D. Robbins + + Allow creation of constants. Thanks to John Haque for the + implementation concept. + + * gawk_api.h (api_sym_constant): Create a constant. + * gawk_api.h (api_sym_update_real): Renamed from api_sym_update. + Add is_const parameter and do the right thing if true. + (api_sym_update, api_sym_constant): Call api_sym_update_real + in the correct way. + (set_constant): New function. + +2012-07-11 Andrew J. Schorr + + * gawkapi.h: Fix typo in comment. + (awk_value_t): Type for scalar_cookie should be awk_scalar_t, + not awk_array_t. + (gawk_api): Add new api_sym_lookup_scalar function. + (sym_lookup_scalar): New wrapper macro for api_sym_lookup_scalar hook. + * gawkapi.c (api_sym_lookup_scalar): New function for faster scalar + lookup. + (api_impl): Add entry for api_sym_lookup_scalar. + +2012-07-11 Andrew J. Schorr + + * gawkapi.c (awk_value_to_node): Change to a switch statement + so AWK_SCALAR or other invalid type is handled properly. + (valid_subscript_type): Test whether a value type is acceptable + for use as an array subscript (any scalar value will do). + (api_get_array_element, api_set_array_element, api_del_array_element): + Use new valid_subscript_type instead of restricting to string values. + +2012-07-11 Arnold D. Robbins + + Lots of API work. + + * gawkapi.h: Function pointer members renamed api_XXX and + macros adjusted. More documentation. + (awk_valtype_t): New AWK_SCALAR enum for scalar cookies. + (awk_scalar_t): New type. + (awk_value_t): New member scalar_cookie. + (api_sym_update_scalar): New API function. + (erealloc): New macro. + (make_const_string): New macro, renamed from dup_string. + (make_malloced_string): New macro, renamed from make_string. + (make_null_string): New inline function. + (dl_load_func): Add call to init routine through pointer if + not NULL. + + * gawkapi.c (awk_value_to_node): Assume that string values came + from malloc. + (node_to_awk_value): Handle AWK_SCALAR. + (api_sym_update): Ditto. + (api_sym_update_scalar): New routine. + (api_get_array_element): Return false if the element doesn't exist. + Always unref the subscript. + (remove_element): New helper routine. + (api_del_array_element): Use it. + (api_release_flattened_array): Ditto. + (api_impl): Add the new routine. + +2012-07-11 Andrew J. Schorr + + * gawkapi.c (api_sym_update): Allow val_type to be AWK_UNDEFINED + for setting a variable to "", i.e. dupnode(Nnull_string). + +2012-07-10 Andrew J. Schorr + + * awkgram.y (add_srcfile): Lint warning message for a previously loaded + shared library should say "already loaded shared library" instead + of "already included source file". + +2012-07-08 Arnold D. Robbins + + * gawkapi.h (set_array_element): Use index + value instead + of element structure. Matches get_array_element. + (set_array_element_by_elem): New macro to use an element. + * gawkapi.c (api_set_array_element): Make the necessary adjustments. + +2012-07-04 Arnold D. Robbins + + * awkgram.y (tokentab): Remove limit on number of arguments + for "and", "or", and "xor". + * builtin.c (do_and, do_or, do_xor): Modify code to perform the + respective operation on any number of arguments. There must be + at least two. + +2012-06-29 Arnold D. Robbins + + * gawkapi.h: Improve the documentation of the return values + per Andrew Schorr. + +2012-06-25 Arnold D. Robbins + + * TODO.xgawk: Updated. + * awk.h (track_ext_func): Declared. + * awkgram.y (enum defref): Add option for extension function. + (struct fdesc): Add member for extension function. + (func_use): Handle extension function, mark as extension and defined. + (track_ext_func): New function. + (check_funcs): Update logic for extension functions. + * ext.c (make_builtin): Call track_ext_func. + +2012-06-24 Andrew J. Schorr + + * TODO.xgawk: Most of IOBUF has been hidden. + * gawkapi.h (IOBUF): Remove declaration (now back in awk.h). + (IOBUF_PUBLIC): Declare new structure defining subset of IOBUF fields + that should be exposed to extensions. + (gawk_api): Update register_open_hook argument from IOBUF to + IOBUF_PUBLIC. + * awk.h (IOBUF): Restore declaration with 5 fields moved to new + IOBUF_PUBLIC structure. + (register_open_hook): Update open_func argument from IOBUF to + IOBUF_PUBLIC. + * gawkapi.c (api_register_open_hook): Ditto. + * io.c (after_beginfile, nextfile, iop_close, gawk_pclose): Some fields + such as fd and name are now inside the IOBUF public structure. + (struct open_hook): Update open_func argument from IOBUF to + (register_open_hook): Ditto. + (find_open_hook): opaque now inside IOBUF_PUBLIC. + (iop_alloc): fd and name now in IOBUF_PUBLIC. + (get_a_record): If the get_record hook returns EOF, set the IOP_AT_EOF + flag. Access fd inside IOBUF_PUBLIC. + (get_read_timeout): File name now inside IOBUF_PUBLIC. + * interpret.h (r_interpret): File name now inside IOBUF_PUBLIC. + * ext.c (load_ext): No need to call return at the end of a void + function. + +2012-06-24 Arnold D. Robbins + + * ext.c (load_ext): Don't return a value from a void function. + * gawkapi.c (api_set_array_element): Set up vname and parent_array. + +2012-06-21 Arnold D. Robbins + + More API and cleanup: + + * awk.h (stopme): Make signature match other built-ins. + * awkgram.y (stopme): Make signature match other built-ins. + (regexp): Minor edit. + * gawkapi.c (api_set_argument): Remove unused variable. + Set parent_array field of array value. + * TODO.xgawk: Update some. + + Remove extension() builtin. + + * awk.h (do_ext): Removed. + (load_ext): Signature changed. + * awkgram.y (tokentab): Remove do_ext. + Change calls to do_ext. + * ext.c (load_ext): Make init function a constant. + * main.c (main): Change calls to do_ext. + +2012-06-20 Arnold D. Robbins + + Restore lost debugging function: + + * awkgram.y (stopme): Restore long lost debugging function. + * awk.h (stopme): Add declaration. + + API work: + + * ext.c (get_argument): Make extern. + * awk.h (get_argument): Declare it. + * gawkapi.c (api_set_argument): Call it. Finish off the logic. + (api_get_argument): Refine logic to use get_argument. + * gawkapi.h (set_argument): New API. + +2012-06-19 Arnold D. Robbins + + Remove code duplication in gawkapi.c from msg.c: + + * awk.h (err): Add `isfatal' first parameter. + * awkgram.y (err): Adjust all calls. + * msg.c (err): Adjust all calls. Move fatal code to here ... + (r_fatal): From here. + * gawkapi.c: Remove code duplication and adjust calls to `err'. + + Handle deleting elements of flattened array: + + * awk.h (get_argument): Remove declaration. + * ext.c (get_argument): Make static. + * gawkapi.h (awk_flat_array_t): Make opaque fields const. Add + more descriptive comments. + * gawkapi.c (release_flattened_array): Delete elements flagged + for deletion. Free the flattened array also. + + Add additional debugging when developing: + + * configure.ac: Add additional debugging flags. + * configure: Regenerated. + +2012-06-18 Arnold D. Robbins + + * gawkapi.h (get_array_element): Restore `wanted' parameter. + (awk_element_t): Use awk_value_t for index. Add awk_flat_array_t. + (flatten_array): Change signature to use awk_flat_array_t; + (release_flattened_array): Change signature to use awk_flat_array_t; + * gawkapi.c (api_sym_update): Handle case where variable exists already. + (api_get_array_element): Restore `wanted' parameter and pass it + on to node_to_awk_value. + (api_set_array_element): Revisse to match changed element type. + (api_flatten_array): Revise signature, implement. + (api_release_flattened_array): Revise signature, implement. + +2012-06-17 Arnold D. Robbins + + API Work: + + * gawkapi.h (get_array_element): Remove `wanted' parameter. + (r_make_string): Comment the need for `api' and `ext_id' parameters. + * gawkapi.c (api_sym_update): Move checks to front. + Initial code for handling arrays. Still needs work. + (api_get_array_element): Implemented. + (api_set_array_element): Additional checking code. + (api_del_array_element): Implemented. + (api_create_array): Implemented. + (init_ext_api): Force do_xxx values to be 1 or 0. + (update_ext_api): Ditto. + +2012-06-12 Arnold D. Robbins + + API Work: + + * gawkapi.h (awk_value_t): Restore union. + (get_curfunc_param): Renamed to get_argument. Return type changed + to awk_bool_t. Semantics better thought out and documented. + (awk_atexit, get_array_element): Return type now void. + (sym_lookup): Return type now void. Argument order rationalized. + * gawkapi.c (node_to_awk_value): Return type is now awk_bool_t. + Semantics now match table in gawkawpi.h. + (api_awk_atexit): Return type now void. + (api_sym_lookup): Return type is now awk_bool_t. Change parameter + order. + (api_get_array_element): Return type is now awk_bool_t. + + Further API implementations and fixes for extension/testext.c: + + * awk.h (final_exit): Add declaration. + * ext.c (load_ext): Change `func' to install_func. + * gawkapi.c: Add casts to void for id param in all functions. + (api_sym_update): Finish implementation. + (api_get_array_element): Start implementation. + (api_set_array_element): Add error checking. + (api_get_element_count): Add error checking, return the right value. + * main.c (main): Call final_exit instead of exit. + (arg_assign): Ditto. + * msg.c (final_exit): New routine to run the exit handlers and exit. + (gawk_exit): Call it. + * profile.c (dump_and_exit): Ditto. + +2012-06-10 Andrew J. Schorr + + * TODO.xgawk: Addition of time extension moved to "done" section. + +2012-06-10 Andrew J. Schorr + + * gawkapi.c (api_update_ERRNO_string): Treat boolean true as a request + for TRANSLATE, and false as DONT_TRANSLATE. + +2012-06-06 Arnold D. Robbins + + * cint_array.c (tree_print, leaf_print): Add additional casts + for printf warnings. + + * awk.h (update_ext_api): Add declaration. + * gawkapi.c (update_ext_api): New function. + * eval.c (set_LINT): Call update_ext_api() at the end. + * gawkapi.h: Document that do_XXX could change on the fly. + + * awk.h (run_ext_exit_handlers): Add declaration. + * msg.c (gawk_exit): Call it. + +2012-06-05 Arnold D. Robbins + + * ext.c (load_ext): Remove use of RTLD_GLOBAL. Not needed in new + scheme. Clean up error messages. + +2012-06-04 Arnold D. Robbins + + * configure.ac: Remove use of -export-dynamic for GCC. + * configure: Regenerated. + +2012-05-30 Arnold D. Robbins + + * main.c (is_off_limits_var): Minor coding style edit. + * gawkapi.c (awk_value_to_node): More cleanup. + (node_to_awk_value): Use `wanted' for decision making. + (api_sym_update): Start implementation. Needs more work. + General: More cleanup, comments. + * gawkapi.h (api_sym_update): Add additional comments. + +2012-05-29 Arnold D. Robbins + + * gawkapi.c (node_to_awk_value): Add third parameter indicating type + of value desired. Based on that, do force_string or force_number + to get the "other" type. + (awk_value_to_node): Clean up the code a bit. + (get_curfunc_param): Move forcing of values into node_to_awk_value. + (api_sym_lookup): Add third parameter indicating type of value wanted. + (api_get_array_element): Ditto. + * gawk_api.h: Additional comments and clarifications. Revise APIs + to take third 'wanted' argument as above. + (awk_value_t): No longer a union so that both values may be accessed. + All macros: Parenthesized the bodies. + * bootstrap.sh: Rationalize a bit. + +2012-05-26 Andrew J. Schorr + + * Makefile.am (include_HEADERS): Add so gawkapi.h will be installed. + (base_sources): Add gawkapi.h so that it is in dist tarball. + * TODO.xgawk: Update. + * main.c (is_off_limits_var): Stop returning true for everything + except PROCINFO. + +2012-05-25 Arnold D. Robbins + + * main.c (is_off_limits_var): New function to check if a variable + is one that an extension function may not change. + * awk.h (is_off_limits_var): Declare it. + * gawkapi.c (api_sym_lookup): Use it. + + * bootstrap.sh: Touch various files in the extension directory also. + +2012-05-24 Andrew J. Schorr + + * gawkapi.h (awk_param_type_t): Remove (use awk_valtype_t instead). + (awk_ext_func_t): Pass a result argument, and return an awk_value_t *. + (gawk_api.get_curfunc_param): Add a result argument. + (gawk_api.set_return_value): Remove obsolete function. + (gawk_api.sym_lookup, gawk_api.get_array_element): Add a result + argument. + (gawk_api.api_make_string, gawk_api.api_make_number): Remove hooks, + since access to gawk internal state is not required to do this. + (set_return_value): Remove obsolete macro. + (get_curfunc_param, sym_lookup, get_array_element): Add result argument. + (r_make_string, make_number): New static inline functions. + (make_string, dup_string): Revise macro definitions. + (dl_load_func): Remove global_api_p and global_ext_id args, + and fix SEGV by setting api prior to checking its version members. + (GAWK): Expand ifdef to include more stuff. + * gawkapi.c (node_to_awk_value): Add result argument. + (api_get_curfunc_param): Add result argument, and use awk_valtype_t. + (api_set_return_value): Remove obsolete function. + (awk_value_to_node): New global function to convert back into internal + format. + (api_add_ext_func): Simply call make_builtin. + (node_to_awk_value): Add result argument, and handle Node_val case. + (api_sym_lookup, api_get_array_element): Add result argument. + (api_set_array_element): Implement. + (api_make_string, api_make_number): Remove functions that belong on + client side. + (api_impl): Remove 3 obsolete entries. + * TODO.xgawk: Update to reflect progress. + * Makefile.am (base_sources): Add gawkapi.c. + * awk.h: Include gawkapi.h earlier. + (api_impl, init_ext_api, awk_value_to_node): Add declarations + so we can hook in new API. + (INSTRUCTION): Add new union type efptr for external functions. + (extfunc): New define for d.efptr. + (load_ext): Remove 3rd obj argument that was never used for anything. + (make_builtin): Change signature for new API. + * awkgram.y (load_library): Change 2nd argument to load_ext + from dlload to dl_load, and remove pointless 3rd argument. + * main.c (main): Call init_ext_api() before loading shared libraries. + Change 2nd argument to load_ext from dlload to dl_load, and remove + pointless 3rd argument. + * ext.c (do_ext): Remove pointless 3rd argument to load_ext. + (load_ext): Remove 3rd argument. Port to new API (change initialization + function signature). If initialization function fails, issue a warning + and return -1, else return 0. + (make_builtin): Port to new API. + * interpret.h (r_interpret): For Op_ext_builtin, call external functions + with an awk_value_t result buffer, and convert the returned value + to a NODE *. For Node_ext_func, code now in extfunc instead of builtin. + +2012-05-21 Andrew J. Schorr + + * configure.ac: Remove libtool, and call configure in the + extension subdirectory. Change pkgextensiondir to remove the + version number, since the new API has builtin version checks. + * TODO.xgawk: Update. + * ltmain.sh: Removed, since libtool no longer used here. + +2012-05-19 Andrew J. Schorr + + * TODO.xgawk: Update to reflect progress and new issues. + * main.c (main): Add -i (--include) option. + (usage): Ditto. + * awkgram.y (add_srcfile): Eliminate duplicates only for SRC_INC + and SRC_EXTLIB sources (i.e. -f duplicates should not be removed). + * io.c (find_source): Set DEFAULT_FILETYPE to ".awk" if not defined + elsewhere. + +2012-05-15 Arnold D. Robbins + + * awk.h: Include "gawkapi.h" to get IOBUF. + * gawkapi.h: Considerable updates. + * gawkapi.c: New file. Start at implementing the APIs. + +2012-05-13 Andrew J. Schorr + + * TODO.xgawk: Update to reflect recent discussions and deletion of + extension/xreadlink.[ch]. + +2012-05-11 Arnold D. Robbins + + Sweeping change: Use `bool', `true', and `false' everywhere. + +2012-04-09 Andrew J. Schorr + + * eval.c (unset_ERRNO): Fix memory management bug -- need to use + dupnode with Nnull_string. + +2012-04-08 Andrew J. Schorr + + * Makefile.am (valgrind): Define VALGRIND instead of redefining AWK. + This allows test/Makefile.am to set up the command environment as + desired. + (valgrind-noleak): Ditto, plus set --leak-check=no instead of the + default summary setting. + +2012-04-07 Andrew J. Schorr + + * TODO.xgawk: Update to reflect progress. + +2012-04-01 Andrew J. Schorr + + * TODO.xgawk: Move valgrind-noleak item into "done" section. + * Makefile.am (valgrind-noleak): Add new valgrind rule that omits + the "--leak-check=full" option to help spot more serious problems. + +2012-04-01 Andrew J. Schorr + + * TODO.xgawk: Move ERRNO item into "done" section. + * awk.h (update_ERRNO, update_ERRNO_saved): Remove declarations. + (update_ERRNO_int, enum errno_translate, update_ERRNO_string, + unset_ERRNO): Add new declarations. + * eval.c (update_ERRNO_saved): Renamed to update_ERRNO_int. + (update_ERRNO_string, unset_ERRNO): New functions. + * ext.c (do_ext): Use new update_ERRNO_string function. + * io.c (ERRNO_node): Remove redundant extern declaration (in awk.h). + (after_beginfile, nextfile): Replace update_ERRNO() with + update_ERRNO_int(errno). + (inrec): Replace update_ERRNO_saved with update_ERRNO_int. + (do_close): Use new function update_ERRNO_string. + (close_redir, do_getline_redir, do_getline): Replace update_ERRNO_saved + with update_ERRNO_int. + +2012-03-27 Andrew J. Schorr + + * TODO.xgawk: Update to reflect debate about how to support Cygwin + and other platforms that cannot link shared libraries with unresolved + references. + * awkgram.y (add_srcfile): Minor bug fix: reverse sense of test + added by Arnold in last patch. + * configure.ac: AC_DISABLE_STATIC must come before AC_PROG_LIBTOOL. + +2012-03-26 Arnold D. Robbins + + Some cleanups. + + * awkgram.y (add_srcfile): Use whole messages, better for + translations. + * io.c (init_awkpath): Small style tweak. + * main.c (path_environ): Straighten out initial comment, fix + compiler warning by making `val' const char *. + +2012-03-25 Andrew J. Schorr + + * configure.ac (AC_DISABLE_STATIC): Add this to avoid building useless + static extension libraries. + +2012-03-25 Andrew J. Schorr + + * TODO.xgawk: New file listing completed and pending xgawk enhancements. + +2012-03-24 Andrew J. Schorr + + * io.c (path_info): Fix white space. + (pi_awkpath, pi_awklibpath): Avoid structure initializers. + (do_find_source): Eliminate pointless parentheses. + (find_source): Leave a space after "&". + * main.c (load_environ): Fix typo in comment. + +2012-03-21 Andrew J. Schorr + + * awkgram.y (LEX_LOAD): New token to support @load. + (grammar): Add rules to support @load. + (tokentab): Add "load". + (add_srcfile): Improve error message to distinguish between source files + and shared libraries. + (load_library): New function to load libraries specified with @load. + (yylex): Add support for LEX_LOAD (treated the same way as LEX_INCLUDE). + +2012-03-20 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Remove extension. + (SUBDIRS): Add extension so libraries will be built. + (DEFS): Define DEFLIBPATH and SHLIBEXT so we can find shared libraries. + * awk.h (deflibpath): New extern declaration. + * configure.ac: Add support for building shared libraries by adding + AC_PROG_LIBTOOL and AC_SUBST for acl_shlibext and pkgextensiondir. + (AC_CONFIG_FILES): Add extension/Makefile. + * io.c (pi_awkpath, pi_awklibpath): New static structures to contain + path information. + (awkpath, max_pathlen): Remove static variables now inside pi_awkpath. + (init_awkpath): Operate on path_info structure to support both + AWKPATH and AWKLIBPATH. No need for max_path to be static, since + this should be called only once for each environment variable. + (do_find_source): Add a path_info arg to specify which path to search. + Check the try_cwd parameter to decide whether to search the current + directory (not desirable for AWKLIBPATH). + (find_source): Choose appropriate path_info structure based on value + of the is_extlib argument. Set EXTLIB_SUFFIX using SHLIBEXT define + instead of hardcoding ".so". + * main.c (path_environ): New function to add AWKPATH or AWKLIBPATH + to the ENVIRON array. + (load_environ): Call path_environ for AWKPATH and AWKLIBPATH. + +2012-06-19 Arnold D. Robbins + + * main.c (main): Do setlocale to "C" if --characters-as-bytes. + Thanks to "SP" for the bug report. + +2012-05-09 Arnold D. Robbins + + * configure.ac: Added AC_HEADER_STDBOOL + * awk.h, dfa.c, regex.c: Reworked to use results + of test and include missing_d/gawkbool.h. + +2012-05-07 Arnold D. Robbins + + * array.c (prnode): Add casts to void* for %p format. + * debug.c (print_instruction): Ditto. + * builtin.c: Fix %lf format to be %f everywhere. + + Unrelated: + + * replace.c: Don't include "config.h", awk.h gets it for us. + +2012-05-04 Arnold D. Robbins + + * getopt.c [DJGPP]: Change to __DJGPP__. + * mbsupport.h [DJGPP]: Change to __DJGPP__. + + Unrelated: + + * awk.h: Workarounds for _TANDEM_SOURCE. + +2012-05-01 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. RRI code now there, needed additional + change for gawk. + * configure.ac: Add check for stdbool.h. + * regex.c: Add check for if not have stdbool.h, then define the + bool stuff. + +2012-04-27 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + * xalloc.h (xmemdup): Added, from grep, for dfa.c. Sigh. + +2012-04-27 Arnold D. Robbins + + Update to autoconf 2.69, automake 1.12. + + * INSTALL, aclocal.m4, configh.in, depcomp, install-sh, missing, + mkinstalldirs, ylwrap: Updated. + * configure.ac (AC_TYPE_LONG_LONG_INT, AC_TYPE_UNSIGNED_LONG_LONG_INT, + AC_TYPE_INTMAX_T, AC_TYPE_UINTMAX_T): Renamed from gl_* versions. + * configure: Regenerated. + +2012-04-24 Arnold D. Robbins + + * cmd.h (dPrompt, commands_Prompt, eval_Prompt, dgawk_Prompt): Changed + to dbg_prompt, commands_prompt, eval_prompt, dgawk_prompt. + * debug.c: Ditto. + * command.y: Ditto. Some minor whitespace and comments cleanup. + +2012-04-24 Arnold D. Robbins + + io.c cleanup and some speedup for RS as regexp parsing. + + * awk.h (Regexp): New members has_meta and maybe_long. + (enum redirval): Add redirect_none as value 0. + (remaybelong): Remove function declaration. + * awkgram.y: Use redirect_none instead of 0 for no redirect cases. + * io.c (go_getline_redir): Second arg now of type enum redirval. + Changed intovar into into_variable. + (comments and whitespace): Lots of general cleanup. + (socket_open): readle changed to read_len. + (two_way_open): Add additional calls to os_close_on_exec. + (rsrescan): Simplify code a bit and use RS->maybe_long. + * re.c (make_regexp): Set up new members in Regexp struct. + (remaybelong): Remove function. + (reisstring): Simplified code. + +2012-04-16 Eli Zaretskii + + * io.c (read_with_timeout) [__MINGW32__]: Just call the blocking + 'read', as 'select' is only available for sockets. + * mpfr.c (set_ROUNDMODE) [!HAVE_MPFR]: Renamed from set_RNDMODE. + * main.c (load_procinfo): Declare name[] also when HAVE_MPFR is + defined even though HAVE_GETGROUPS etc. are not. + +2012-04-12 John Haque + + * array.c, awk.h, awkgram.y, builtin.c, command.y, debug.c, + field.c, mpfr.c, profile.c: Change RND_MODE to ROUND_MODE. + +2012-04-11 John Haque + + * main.c (varinit): Change RNDMODE to ROUNDMODE. + +2012-04-11 Arnold D. Robbins + + * main.c: Change --arbitrary-precision to --bignum. + +2012-04-02 John Haque + + Add support for arbitrary-precision arithmetic. + + * mpfr.c: New file. + * awk.h (struct exp_node): Add union to handle different number types. + (MPFN, MPZN): New flag values. + (DO_MPFR, do_mpfr): New defines. + (PREC_node, RNDMODE_node): Add declarations. + (PRECISION, RND_MODE, MNR, MFNR, mpzval, do_ieee_fmt): Add declarations. + (make_number, str2number, format_val, cmp_numbers): Ditto. + (force_number): Change definition. + (Func_pre_exec, Func_post_exec): New typedefs. + (POP_NUMBER, TOP_NUMBER): Change definitions. + (get_number_ui, get_number_si, get_number_d, get_number_uj, + iszero, IEEE_FMT, mpg_float, mpg_integer, mpg_float, + mpg_integer): New defines. + * awkgram.y (tokentab): Add alternate function entries for MPFR/GMP. + (snode): Choose the appropriate function. + (negate_num): New function to negate a number. + (grammar): Use it. + (yylex): Adjust number handling code. + * array.c (value_info, asort_actual, sort_user_func): Adjust for + MPFR/GMP numbers. + (do_adump, indent): Minor changes. + (sort_up_index_number, sort_up_value_number, sort_up_value_type): Use + cmp_numbers() for numeric comparisons. + * builtin.c (mpz2mpfr): New function. + (format_tree): Adjust to handle MPFR and GMP numbers. + * eval.c (register_exec_hook): New function to manage interpreter hooks. + (num_exec_hook, pre_execute, post_execute): New and adjusted definitions. + (h_interpret): Renamed from debug_interpret. + (init_interpret): Changed to use the new name. + (flags2str): New entries for MPFN and MPZN. + (cmp_nodes): Reworked to use separate routine for numeric comparisons. + (set_IGNORECASE, set_BINMODE, set_LINT, update_NR, update_FNR, + update_NF): Adjust code and some cleanup. + * field.c (rebuild_record): Field copying code reworked to handle + MPFR/GMP numbers. + (set_NF): Minor adjustment. + * io.c (INCREMENT_REC): New macro. + (inrec, do_getline): Use the new macro. + (nextfile, set_NR, set_FNR, get_read_timeout, pty_vs_pipe): Adjust code + to handle MPFR/GMP numbers. + * interpret.h (r_interpret): Adjust TOP_NUMBER/POP_NUMBER usage. + (EXEC_HOOK): New macro and definition. + (DEBUGGING): Removed. + * main.c (DEFAULT_PREC, DEFAULT_RNDMODE): New defines. + (opttab): New entry for option arbitrary-precision. + (main): Handle the new option. + (usage): Add to usage message. + (varinit): Add PREC and RNDMODE. + (load_procinfo): Install MPFR and GMP related items. + (version): Append MPFR and GMP versions to message. + * msg.c (err) : Adjust FNR handling with MPFR/GMP. + * node.c (r_format_val): Renamed from format_val. + (r_force_number): Return NODE * instead of AWKNUM. + (make_number, str2number, format_val, cmp_numpers: Defined and initialized. + (r_unref): Free MPFR/MPZ numbers. + (get_numbase): Renamed from isnondecimal and return the base. + (cmp_awknums): New function to compare two AWKNUMs. + * command.y (yylex): Adjust number handling code. + (grammar): Minor adjustments to handle negative numbers. + * debug.c (init_debug): New function. + (do_info, do_set_var, watchpoint_triggered, serialize, + initialize_watch_item, do_watch, print_watch_item): Minor adjustments. + (debug_pre_execute): Adjusted to handle MPFR and GMP numbers. + +2012-04-09 Arnold D. Robbins + + * INSTALL, config.guess, config.sub, depcomp, install-sh, + missing, mkinstalldirs, ylwrap: Update to latest from automake 1.11.4. + +2012-04-08 Arnold D. Robbins + + * Update various files to automake 1.11.4. + +2012-03-30 Arnold D. Robbins + + * configure.ac (GAWK_AC_NORETURN): Do as macro instead of inline. + +2012-03-29 Arnold D. Robbins + + * dfa.h, dfa.c: Sync with grep. Major cleanups and some changes + there. + * re.c (research): Pass size_t* to dfaexec to match type change. + * configure.ac (AH_VERBATIM[_Noreturn]): Added from Paul Eggert to + ease compiling. + (AC_INIT): Bump version. + * configure, configh.in, version.c: Regenerated. + +2012-03-28 Arnold D. Robbins + + * 4.0.1: Release tar ball made. + +2012-03-28 Arnold D. Robbins + + * getopt.c: Add DJGPP to list of platforms where it's ok + to include . + * awkgram.y, builtin.c, ext.c, mbsupport.h, re.c: Update + copyright year. + +2012-03-21 Corinna Vinschen + + * getopt.c: Add Cygwin to list of platforms where it's ok + to include . + +2012-03-20 Arnold D. Robbins + + Get new getopt to work on Linux and C90 compilers: + + * getopt.c: Undef ELIDE_CODE for gawk. + (_getopt_internal_r): Init first.needs_free to 0. In test for -W + move executable code to after declarations for C90 compilers. + * getopt1.c: Undef ELIDE_CODE for gawk. + + Minor bug fix with printf, thanks to John Haque: + + * builtin.c (format_tree): Initialize base to zero at the top + of the while loop. + + Getting next tar ball ready: + + * configure.ac: Remove duplicate check for wcscoll. Thanks + to Stepan Kasal. + +2012-03-16 Arnold D. Robbins + + * 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. + +2012-03-14 Eli Zaretskii + + * mbsupport.h (btowc): Change for non-DJGPP. + * re.c (dfaerror): Add call to exit for DJGPP. + +2012-03-14 Arnold D. Robbins + + * regex_internal.c (re_string_skip_chars): Fix calculation of + remain_len with m.b. chars. Thanks to Stanislav Brabec + . + +2012-02-28 Arnold D. Robbins + + * main.c (init_groupset): Make `getgroups' failing a non-fatal + error. After all, what's the big deal? Should help on Plan 9. + +2012-02-27 Arnold D. Robbins + + * dfa.c (parse_bracket_exp): Revert changes 2012-02-15 to stay + in sync with grep. + * dfa.h (dfarerror): Add __attribute__ from grep. + +2012-02-15 Arnold D. Robbins + + Fix warnings from GCC 4.6.2 -Wall option. + + * awkgram.y (newline_eof): New function to replace body of + NEWLINE_EOF macro. + (yylex): Replace body of NEWLINE_EOF macro. + * dfa.c (parse_bracket_exp): Init variables to zero. + * ext.c (dummy, junk): Remove. + * regex_internal.c (re_string_reconstruct): Remove buf array. It was + set but not used. + +2012-02-10 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2012-02-07 Arnold D. Robbins + + * main.c (main): Move init of `output_fp' to before parsing of + program so that error messages from msg.c don't dump core. + Thanks to Michael Haardt . + +2012-01-13 Arnold D. Robbins + + * dfa.c [is_valid_unibtye_character]: Fix from GNU grep to + bug reported by me from Scott Deifik for DJGPP. + +2012-01-03 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2012-01-02 Arnold D. Robbins + + * io.c (Read_can_timeout, Read_timeout, Read_default_timeout): + Renamed to use lower case. + Other minor stylistic edits. + +2012-01-01 John Haque + + * awk.h (struct iobuf): New entry read_func. + * io.c (Read_can_timeout, Read_timeout, Read_default_timeout): + New variables. + (init_io): New routine to initialize the variables. + (in_PROCINFO): New "clever" routine to parse elements with indices + separated by a SUPSEP. + (get_read_timeout): New routine to read timeout value for an IOBUF. + (read_with_timeout): New routine to read from a fd with a timeout. + (pty_vs_pipe): Use in_PROCINFO(). + (get_a_record): Set the timeout value and the read routine as necessary. + * main.c (main): Call init_io(). + +2011-12-31 Arnold D. Robbins + + * profile_p.c: Remove the file. + * msg.c (err): Remove check for name being dgawk. + +2011-12-31 Arnold D. Robbins + + * awk.h [STREQ, STREQN]: Remove macros. + * awkgram.y, builtin.c, command.y, debug.c, eval.c, + io.c, msg.c: Change all uses to call strcmp, strncmp. + +2011-12-28 Arnold D. Robbins + + * int_array.c, str_array.c: Fix some compiler warnings 32/64 + bit system differences. + +2011-12-26 John Haque + + Merge gawk, pgawk and dgawk into a single executable gawk. + + * awk.h (DO_PRETTY_PRINT, DO_PROFILE, DO_DEBUG, + do_pretty_print, do_debug): New defines. + (interpret): New variable, a pointer to an interpreter routine. + (enum exe_mode): Nuked. + * main.c (opttab): New options --pretty-print and --debug; + Remove option --command. + (usage): Update usage messages. + * interpret.h: New file. + * eval.c (r_interpret): Move to the new file. + (debug_interpret): New interpreter routine when debugging. + (init_interpret): New routine to initialize interpreter related + variables. + * eval_d.c, eval_p.c: Delete files. + * debug.c (interpret): Renamed to debug_prog. + (DEFAULT_PROMPT, DEFAULT_HISTFILE, DEFAULT_OPTFILE): Remove prefix 'd'. + * profile.c (init_profiling): Nuked. + * Makefile.am: Adjusted. + + Add command line option --load for loading extensions. + + * awk.h (srctype): Add new source type SRC_EXTLIB. + * ext.c(load_ext): New routine to load extension. + (do_ext): Adjust to use load_ext(). + * main.c (opttab): Add new option --load. + (main): Call load_ext() to load extensions. + (usage): Add usage message for the new option. + * io.c (get_cwd): New routine. + (do_find_source): Use the new routine. + (find_source): Handle new type SRC_EXTLIB. + * awkgram.y (parse_program, next_sourcefile): Skip type SRC_EXTLIB. + (add_srcfile): Adjust call to find_source. + * debug.c (source_find): Same. + + Unrelated: + + * ext.c (get_argument): Fixed argument parsing. + * array.c (null_array_func): Reworked array routines for an empty array. + * str_array.c, int_array.c: Make GCC happy, use %u instead of %lu + printf formats. + * eval.c (node_Boolean): New array for TRUE and FALSE nodes. + (init_interpret): Create the new nodes. + (eval_condition): Add test for the new nodes. + (setup_frame): Disable tail-recursion optimization when profiling. + * interpret.h (r_interpret): Use the boolean nodes instead of making + new ones when needed. + +2011-12-26 Arnold D. Robbins + + Finish Rational Range Interpretation (!) + + * dfa.c (match_mb_charset): Compare wide characters directly + instead of using wcscoll(). + * regexec.c (check_node_accept_byte): Ditto. + + Thanks to Paolo Bonzini for pointing these out. + +2011-12-06 John Haque + + * debug.c (source_find): Fix misplaced call to efree. + * profile.c (redir2str): Add a missing comma in the redirtab array. + * eval.c (r_interpret): Disallow call to exit if currule is undefined. + This avoids the possibility of running END blocks more than once when + used in a user-defined sorted-in comparison function. + * array.c (sort_user_func): Adjust appropriately. + +2011-12-06 Arnold D. Robbins + + * awk.h, mbsupport.h: Changes for MBS support on DJGPP + and z/OS. + * io.c: Disable pty support on z/OS. + +2011-11-27 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + * dfa.h: Add _GL_ATTRIBUTE_PURE macro. Bleah. + +2011-11-14 John Haque + + * debug.c (set_breakpoint_at): Fix problem with setting + breakpoints in a switch statement. Thanks to Giorgio Palandri + for the bug report. + +2011-11-14 Arnold D. Robbins + + * mbsupport.h: Add check for HAVE_BTOWC, per Pat Rankin. + +2011-11-12 Eli Zaretskii + + * mbsupport.h: Additional glop for dfa.c in Windows environment. + +2011-11-01 Arnold D. Robbins + + * dfa.c: Move glop for ! MBS_SUPPORT to ... + * mbsupport.h: ... here. + * replace.c: Include missing_d/wcmisc.c if ! MBS_SUPPORT. + * regex_internal.h: Move include of mbsupport.h up and add + additional checks to avoid inclusion of wctype.h and wchar.h. + +2011-10-27 Arnold D. Robbins + + * builtin.c (do_strftime): Per Pat Rankin, instead of casting + fclock, use a long variable and check for negative or overflow. + +2011-10-25 Arnold D. Robbins + + Merge with gawk_performance branch done. Additionally: + + * cint_array.c, int_array.c, str_array.c: Fix compiler complaints + about printf formats (signed / unsigned vs. %d / %u). + * eval.c (setup_frame): Add a missing return value. + +2011-10-25 Arnold D. Robbins + + * Makefile.am (dist-hook): Use `cd $(srcdir)/pc' so that + `make distcheck' works completely. + * builtin.c (do_strftime): Add cast to long int in check + for fclock < 0 for systems where time_t is unsigned (e.g., VMS). + +2011-10-25 Stefano Lattarini + + dist: generated file `version.c' is not removed by "make distclean" + + * Makefile.am (distcleancheck_listfiles): Define to ignore the + generated `version.c' file. + +2011-10-24 Arnold D. Robbins + + * dfa.c (wcscoll): Create for VMS. + * Makefile.am (dist-hook): Run sed scripts to make pc/config.h. + +2011-10-24 Eli Zaretskii + + * builtin.c [HAVE_POPEN_H]: Include "popen.h". + * README.git: Update for pc/ systems. + +2011-10-21 Arnold D. Robbins + + * Makefile.am (distcleancheck_listfiles): Added, per advice from + Stefano Lattarini . + * dfa.c: Additional faking of mbsupport for systems without it; + mainly VMS. + +2011-10-21 Stefano Lattarini + + * configure.ac (AM_C_PROTOTYPES): Remove call to this macro. + The comments in configure.ac said that the call to AM_C_PROTOTYPES + was needed for dfa.h, synced from GNU grep; but this statement is + not true anymore in grep since commit v2.5.4-24-g9b5e7d4 "replace + AC_CHECK_* with gnulib modules", dating back to 2009-11-26. Also, + the support for automatic de-ANSI-fication has been deprecated in + automake 1.11.2, and will be removed altogether in automake 1.12. + * vms/vms-conf.h (PROTOTYPES, __PROTOTYPES): Remove these #define, + they are not used anymore. + * pc/config.h (PROTOTYPES): Likewise. + +2011-10-18 Dave Pitts + + * dfa.c: Move some decls to the top of their functions for + C90 compilers. + +2011-10-18 Arnold D. Robbins + + * builtin.c (do_strftime): Add check for negative / overflowed + time_t value with fatal error. Thanks to Hermann Peifer + for the bug report. + * dfa.c (setbit_wc): Non-MBS version. Add a return false + since VMS compiler doesn't understand that abort doesn't return. + +2011-10-10 Arnold D. Robbins + + * builtin.c (do_sub): Init textlen to zero to avoid "may be + used uninitialized" warning. Thanks to Corinna Vinschen for + pointing this out. + * eval.c (unwind_stack): Add parentheses around condition in while + to avoid overzealous warning from GCC. + +2011-09-30 Eli Zaretskii + + * io.c (remap_std_file): Fix non-portable code that caused + redirected "print" to fail if a previous read from standard input + returned EOF. Reported by David Millis . + (remap_std_file): Per Eli's suggestion, removed the leading close + of oldfd and will let dup2 do the close for us. + +2011-10-11 John Haque + + * symbol.c: Add licence notice. + * array.c (PREC_NUM, PREC_STR): Define as macros. + +2011-10-09 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2011-10-07 John Haque + + Tail recursion optimization. + * awkgram.y (grammar, mk_function): Recognize tail-recursive + calls. + * awk.h (tail_call, num_tail_calls): New defines. + * eval.c (setup_frame): Reuse function call stack for + tail-recursive calls. + (dump_fcall_stack): Reworked. + +2011-10-04 Arnold D. Robbins + + * awk.h, main.c (gawk_mb_cur_max): Make it a constant 1 when + MBS_SUPPORT isn't available to allow GCC dead code constant + expression computation and dead code elimination to help out. + +2011-10-02 Arnold D. Robbins + + * io.c (rsnullscan, get_a_record): Fix the cases where terminators + are incomplete when RS == "". Also fix the case where the new value + is shorter than the old one. Based on patch from Rogier + as submitted by Jeroen Schot + . + +2011-09-24 Arnold D. Robbins + + * eval.c, io.c, re.c: Fix some spelling errors. Thanks to + Jeroen Schot . + +2011-09-21 Arnold D. Robbins + + * dfa.c, mbsupport.h: Sync with GNU grep. Large amount of changes + that remove many ifdefs, moving many conditions for multibyte + support into regular C code and relying GCC's dead code optimization + to eliminate code that won't be needed. + * dfa.c: For gawk, add a number of additional defines so that things + will compile if MBS_SUPPORT is 0. + * array.c, awk.h, awkgram.y, builtin.c, eval.c, field.c, main.c, + node.c, re.c: Change `#ifdef MBS_SUPPORT' to `#if MBS_SUPPORT'. + * awk.h, regex_internal.h: Move NO_MBSUPPORT handling to ... + * mbsupport.h: ...here. + +2011-09-16 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2011-09-08 John Haque + + Optimization for compound assignment, increment and + decrement operators; Avoid unref and make_number calls + when there is no extra references to the value NODE. + +2011-09-03 Arnold D. Robbins + + * dfa.c: Sync with GNU grep. + +2011-08-31 John Haque + + Grammar related changes: Simplify grammar for user-defined + functions and general cleanups. + + * symbol.c: New file. + * awkgram.y: Move symbol table related routines to the + new file. + (rule, func_name, function_prologue, param_list): Reworked. + (install_function, check_params): Do all error checks + for the function name and parameters before installing in + the symbol table. + (mk_function): Finalize function definition. + (func_install, append_param, dup_params): Nuked. + * symbol.c (make_params): allocate function parameter nodes + for the symbol table. Use the hash node as Node_param_list; + Saves a NODE for each parameter. + (install_params): Install function parameters into the symbol + table. + (remove_params): Remove parameters out of the symbol table. + * awk.h (parmlist, FUNC): Nuked. + (fparms): New define. + + Dynamically loaded function parameters are now handled like + those for a builtin. + + * awk.h (Node_ext_func, Op_ext_builtin): New types. + (Op_ext_func): Nuked. + * ext.c (make_builtin): Simplified. + (get_curfunc_arg_count): Nuked; Use the argument 'nargs' of + the extension function instead. + (get_argument, get_actual_argument): Adjust. + * eval.c (r_interpret): Update case Op_func_call for a dynamic + extension function. Handle the new opcode Op_ext_builtin. + * pprint (profile.c): Adjust. + + Use a single variable to process gawk options. + + * awk.h (do_flags): New variable. + (DO_LINT_INVALID, DO_LINT_ALL, DO_LINT_OLD, DO_TRADITIONAL, + DO_POSIX, DO_INTL, DO_NON_DEC_DATA, DO_INTERVALS, + DO_PROFILING, DO_DUMP_VARS, DO_TIDY_MEM, + DO_SANDBOX): New defines. + (do_traditional, do_posix, do_intervals, do_intl, + do_non_decimal_data, do_profiling, do_dump_vars, + do_tidy_mem, do_sandbox, do_lint, + do_lint_old): Defined as macros. + * main.c: Remove definitions of the do_XX variables. Add + do_flags definition. + * debug.c (execute_code, do_eval, parse_condition): Save + do_flags before executing/parsing and restore afterwards. + + Nuke PERM flag. Always increment/decrement the reference + count for a Node_val. Simplifies macros and avoids + occasional memory leaks, specially in the debugger. + + * awk.h (UPREF, DEREF, dupnode, unref): Simplified. + (mk_number): Nuked. + * (*.c): Increment the reference count of Nnull_string before + assigning as a value. + + Revamped array handling mechanism for more speed and + less memory consumption. + + * awk.h (union bucket_item, BUCKET): New definitions. Used as + bucket elements for the hash table implementations of arrays; + 40% space saving in 32 bit x86. + (buckets, nodes, array_funcs, array_base, array_capacity, + xarray, alookup, aexists, aclear, aremove, alist, + acopy, adump, NUM_AFUNCS): New defines. + (array_empty): New macro to test for an empty array. + (assoc_lookup, in_array): Defined as macros. + (enum assoc_list_flags): New declaration. + (Node_ahash, NUMIND): Nuked. + * eval.c (r_interpret): Adjust cases Op_subscript, + Op_subscript_lhs, Op_store_var and Op_arrayfor_incr. + * node.c (dupnode, unref): Removed code related to Node_ahash. + * str_array.c: New file to handle array with string indices. + * int_array.c: New file to handle array with integer indices. + * cint_array.c: New file. Special handling of arrays with + (mostly) consecutive integer indices. + + Memory pool management reworked to handle NODE and BUCKET. + + * awk.h (struct block_item, BLOCK, block_id): New definitions. + (getblock, freeblock): New macros. + (getbucket, freebucket): New macros to allocate and deallocate + a BUCKET. + (getnode, freenode): Adjusted. + * node.c (more_nodes): Nuked. + (more_blocks): New routine to allocate blocks of memory. + +2011-08-24 Arnold D. Robbins + + Fix pty co-process communication on Ubuntu GNU/Linux. + + * io.c: Add include of to get definition of TIOCSCTTY. + (two_way_open): Move call for this ioctl to after setsid() call. + +2011-08-23 Arnold D. Robbins + + * regex_internal.c (re_string_fetch_byte_case): Remove + __attribute((pure)) since it causes failures with gcc -O2 + -fno-inline. Thanks to Neil Cahill + for reporting the bug. + +2011-08-10 John Haque + + BEGINFILE/ENDFILE related code redone. + + * awk.h (prev_frame_size, has_endfile, target_get_record, + target_newfile): New defines. + * awkgram.y (mk_program): Initialize has_endfile appropriately for + Op_get_record. + (parse_program): Initialize new jump targets for + Op_get_record and Op_newfile. + * eval.c (unwind_stack): Change argument to number of + items to be left in the stack. Adjust code. + (pop_fcall, pop_stack): New defines. + (setup_frame): Initialize prev_frame_size. + (exec_state, EXEC_STATE): New structure and typedef. + (exec_state_stack): New variable. + (push_exec_state, pop_exec_state): New functions to save and + later retrieve an execution state. + (r_interpret): Use the new functions and the defines in + cases Op_K_getline, Op_after_beginfile, Op_after_endfile, + Op_newfile and Op_K_exit. + * io.c (after_beginfile): When skipping a file using nextfile, + return zero in case there was an error opening the file. + (has_endfile): Nuke global variable. + (inrec): Add a second argument to pass errno to the calling + routine. + * debug.c (print_instruction): Update cases. + +2011-08-10 Arnold D. Robbins + + Fix (apparently long-standing) problem with FIELDWIDTHS. + Thanks to Johannes Meixner . + + * field.c (set_FIELDWIDTHS): Adjust calculations. + + Fix problem with FPAT, reported by "T. X. G." + + * awk.h (Regexp): Add new member 'non_empty'. + * field.c (fpat_parse_field): Save/restore local variable non_empty + from member in Regexp struct. + +2011-08-09 Arnold D. Robbins + + Fix pty issue reported by "T. X. G." + + * configure.ac: Check for setsid. + * awk.h: If not HAVE_SETSID define it as an empty macro. + * io.c (two_way_open): Call setsid if using pty's. + +2011-07-29 Eli Zaretskii + + * builtin.c (format_tree): Rename small -> small_flag, + big -> big_flag, bigbig -> bigbig_flag. Solves compilation errors + when building Gawk with libsigsegv on MS-Windows, see + https://lists.gnu.org/archive/html/bug-gawk/2011-07/msg00029.html. + +2011-07-28 Arnold D. Robbins + + * builtin.c (do_sub): Revert to gawk 3.1 behavior for backslash + handling. It was stupid to think I could break compatibility. + Thanks to John Ellson for raising + the issue. + +2011-07-26 John Haque + + * eval.c (r_interpret): In cases Op_var_assign and Op_field_assign, + include Op_K_getline_redir in the test for skipping the routine. + +2011-07-26 John Haque + + Fix handling of assign routines for 'getline var'. + Rework the previous fix for (g)sub. + + * awk.h: New define assign_ctxt for use in Op_var_assign + and Op_field_assign opcodes. Remove define AFTER_ASSIGN. + * awkgram.y (snode, mk_getline): Initialize assign_ctxt. + * builtin.c (do_sub): Adjust to take only the first two + arguments. + * eval.c (r_interpret): In cases Op_var_assign and Op_field_assign, + skip the routine as appropriate. Adjust case Op_sub_builtin. + * main.c (get_spec_varname): New function. + * debug.c (print_instruction): Use the new function to get + special variable name. + +2011-07-17 Arnold D. Robbins + + * main.c (varinit): Mark FPAT as NON_STANDARD. Thanks to + Wolfgang Seeberg for the report. + * Makefile.am (EXTRA_DIST): Add po/README, per advice from + Bruno Haible. + * dfa.c: Sync with GNU grep. + * xalloc.h (xzalloc): New function, from GNU grep, for dfa.c. + * README: Note that bug list is really a real mailing list. + +2011-07-16 Arnold D. Robbins + + * Makefile.am (AUTOMAKE_OPTIONS): Removed. + * configure.ac (AM_INIT_AUTOMAKE): Removed dist-bzip2 option, on + advice from Karl Berry. + +2011-07-15 John Haque + + * awk.h (Op_sub_builtin): New opcode. + (GSUB, GENSUB, AFTER_ASSIGN, LITERAL): New flags for + Op_sub_builtin. + * awkgram.y (struct tokentab): Change opcode to Op_sub_builtin + for sub, gsub and gensub. + (snode): Update processing of sub, gsub and gensub. + * builtin.c (do_sub, do_gsub, do_gensub): Nuke. + (sub_common): Renamed to do_sub. Relocate gensub argument + handling code from do_gensub to here; Simplify the code a + little bit. + * eval.c (r_interpret): Handle Op_sub_builtin. Avoid field + re-splitting or $0 rebuilding if (g)sub target string is + a field and no substitutions were done. + * pprint (profile.c): Add case for the new opcode. + * print_instruction (debug.c): Ditto. + + Take out translation for errno strings; extensions will + need to use their own domain. + + * awk.h (enum errno_translate): Removed. + (update_ERRNO_string): Remove second translate parameter. + * eval.c (update_ERRNO_string): Remove second translate parameter + and code that used it. + * gawkapi.h (api_update_ERRNO_string): Remove third translate + parameter. + * gawkapi.c (api_update_ERRNO_string): Remove third translate + parameter and change call to update_ERRNO_string. + * io.c (do_close): Fix call to update_ERRNO_string. + +2011-07-15 Arnold D. Robbins + + * awk.h: Typo fix: "loner" --> longer. Thanks to Nelson Beebe. + * builtin.c (efwrite): Fix flushing test back to what it was + in 3.1.8. Thanks to Strefil for the problem + report. + * configure.ac: Bump version to 4.0.0a for stable branch. + +2011-06-24 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add ChangeLog.0. + * 4.0.0: Remake the tar ball. + +2011-06-23 Arnold D. Robbins + + * configure.ac: Update version to 4.0.0. + * configure: Regenerated. + * ChangeLog.0: Rotated ChangeLog into this file. + * ChangeLog: Created anew for gawk 4.0.0 and on. + * README: Bump version to 4.0.0. + * 4.0.0: Release tar ball made. diff -urN gawk-5.0.0/cint_array.c gawk-5.0.1/cint_array.c --- gawk-5.0.0/cint_array.c 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/cint_array.c 2019-05-06 21:29:59.000000000 +0300 @@ -73,6 +73,24 @@ (afunc_t) 0, }; + +static NODE **argv_store(NODE *symbol, NODE *subs); + +/* special case for ARGV in sandbox mode */ +const array_funcs_t argv_array_func = { + "argv", + cint_array_init, + is_uinteger, + cint_lookup, + cint_exists, + cint_clear, + cint_remove, + cint_list, + cint_copy, + cint_dump, + argv_store, +}; + static inline int cint_hash(long k); static inline NODE **cint_find(NODE *symbol, long k, int h1); @@ -1230,3 +1248,68 @@ (unsigned long) array->table_size); } #endif + +static NODE *argv_shadow_array = NULL; + +/* argv_store --- post assign function for ARGV in sandbox mode */ + +static NODE ** +argv_store(NODE *symbol, NODE *subs) +{ + NODE **val = cint_exists(symbol, subs); + NODE *newval = *val; + char *cp; + + if (newval->stlen == 0) // empty strings in ARGV are OK + return val; + + if ((cp = strchr(newval->stptr, '=')) == NULL) { + if (! in_array(argv_shadow_array, newval)) + fatal(_("cannot add a new file (%.*s) to ARGV in sandbox mode"), + (int) newval->stlen, newval->stptr); + } else { + // check if it's a valid variable assignment + bool badvar = false; + char *arg = newval->stptr; + char *cp2; + + *cp = '\0'; // temporarily + + if (! is_letter((unsigned char) arg[0])) + badvar = true; + else + for (cp2 = arg+1; *cp2; cp2++) + if (! is_identchar((unsigned char) *cp2) && *cp2 != ':') { + badvar = true; + break; + } + + // further checks + if (! badvar) { + char *cp = strchr(arg, ':'); + if (cp && (cp[1] != ':' || strchr(cp + 2, ':') != NULL)) + badvar = true; + } + *cp = '='; // restore the '=' + + if (badvar && ! in_array(argv_shadow_array, newval)) + fatal(_("cannot add a new file (%.*s) to ARGV in sandbox mode"), + (int) newval->stlen, newval->stptr); + + // otherwise, badvar is false, let it through as variable assignment + } + return val; +} + +/* init_argv_array --- set up the pointers for ARGV in sandbox mode. A bit hacky. */ + +void +init_argv_array(NODE *argv_node, NODE *shadow_node) +{ + /* If POSIX simply don't reset the vtable and things work as before */ + if (! do_sandbox) + return; + + argv_node->array_funcs = & argv_array_func; + argv_shadow_array = shadow_node; +} diff -urN gawk-5.0.0/command.y gawk-5.0.1/command.y --- gawk-5.0.0/command.y 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/command.y 2019-06-02 21:53:18.000000000 +0300 @@ -44,7 +44,7 @@ static int cmd_idx = -1; /* index of current command in cmd table */ static int repeat_idx = -1; /* index of last repeatable command in command table */ static CMDARG *arg_list = NULL; /* list of arguments */ -static long errcount = 0; +static long dbg_errcount = 0; static char *lexptr_begin = NULL; static bool in_commands = false; static int num_dim; @@ -128,7 +128,7 @@ : nls | command nls { - if (errcount == 0 && cmd_idx >= 0) { + if (dbg_errcount == 0 && cmd_idx >= 0) { Func_cmd cmdfunc; bool terminate = false; CMDARG *args; @@ -217,7 +217,7 @@ eval_prologue : D_EVAL set_want_nodeval opt_param_list nls { - if (errcount == 0) { + if (dbg_errcount == 0) { /* don't free arg_list; passed on to statement_list * non-terminal (empty rule action). See below. */ @@ -335,7 +335,7 @@ if ($2 != NULL) num = $2->a_int; - if (errcount != 0) + if (dbg_errcount != 0) ; else if (in_commands) yyerror(_("Can't use command `commands' for breakpoint/watchpoint commands")); @@ -1017,7 +1017,7 @@ vfprintf(out_fp, mesg, args); fprintf(out_fp, "\n"); va_end(args); - errcount++; + dbg_errcount++; repeat_idx = -1; } @@ -1039,9 +1039,9 @@ yylval = (CMDARG *) NULL; - if (errcount > 0 && lexptr_begin == NULL) { + if (dbg_errcount > 0 && lexptr_begin == NULL) { /* fake a new line */ - errcount = 0; + dbg_errcount = 0; return '\n'; } diff -urN gawk-5.0.0/config.sub gawk-5.0.1/config.sub --- gawk-5.0.0/config.sub 2019-04-10 21:29:07.000000000 +0300 +++ gawk-5.0.1/config.sub 2019-04-23 11:05:32.000000000 +0300 @@ -1247,7 +1247,8 @@ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ | vax \ | visium \ - | w65 | wasm32 \ + | w65 \ + | wasm32 | wasm64 \ | we32k \ | x86 | x86_64 | xc16x | xgate | xps100 \ | xstormy16 | xtensa* \ @@ -1367,7 +1368,7 @@ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ - | midnightbsd* | amdhsa* | unleashed* | emscripten*) + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi*) # Remember, each alternative MUST END IN *, to match a version number. ;; qnx*) diff -urN gawk-5.0.0/configure gawk-5.0.1/configure --- gawk-5.0.0/configure 2019-04-12 12:03:05.000000000 +0300 +++ gawk-5.0.1/configure 2019-06-18 20:09:28.000000000 +0300 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for GNU Awk 5.0.0. +# Generated by GNU Autoconf 2.69 for GNU Awk 5.0.1. # # Report bugs to . # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='GNU Awk' PACKAGE_TARNAME='gawk' -PACKAGE_VERSION='5.0.0' -PACKAGE_STRING='GNU Awk 5.0.0' +PACKAGE_VERSION='5.0.1' +PACKAGE_STRING='GNU Awk 5.0.1' PACKAGE_BUGREPORT='bug-gawk@gnu.org' PACKAGE_URL='http://www.gnu.org/software/gawk/' @@ -1331,7 +1331,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GNU Awk 5.0.0 to adapt to many kinds of systems. +\`configure' configures GNU Awk 5.0.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1401,7 +1401,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Awk 5.0.0:";; + short | recursive ) echo "Configuration of GNU Awk 5.0.1:";; esac cat <<\_ACEOF @@ -1523,7 +1523,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GNU Awk configure 5.0.0 +GNU Awk configure 5.0.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2232,7 +2232,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GNU Awk $as_me 5.0.0, which was +It was created by GNU Awk $as_me 5.0.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3115,7 +3115,7 @@ # Define the identity of the package. PACKAGE='gawk' - VERSION='5.0.0' + VERSION='5.0.1' cat >>confdefs.h <<_ACEOF @@ -11606,7 +11606,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GNU Awk $as_me 5.0.0, which was +This file was extended by GNU Awk $as_me 5.0.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11674,7 +11674,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -GNU Awk config.status 5.0.0 +GNU Awk config.status 5.0.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN gawk-5.0.0/configure.ac gawk-5.0.1/configure.ac --- gawk-5.0.0/configure.ac 2019-04-12 12:02:59.000000000 +0300 +++ gawk-5.0.1/configure.ac 2019-06-18 20:05:36.000000000 +0300 @@ -23,7 +23,7 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([GNU Awk],[5.0.0],[bug-gawk@gnu.org],[gawk]) +AC_INIT([GNU Awk],[5.0.1],[bug-gawk@gnu.org],[gawk]) # This is a hack. Different versions of install on different systems # are just too different. Chuck it and use install-sh. diff -urN gawk-5.0.0/doc/awkcard.in gawk-5.0.1/doc/awkcard.in --- gawk-5.0.0/doc/awkcard.in 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/doc/awkcard.in 2019-06-18 20:54:52.000000000 +0300 @@ -1994,7 +1994,7 @@ .ES .nf \*(CDHost: \*(FCftp.gnu.org\*(FR -File: \*(FC/gnu/gawk/gawk-5.0.0.tar.gz\fP +File: \*(FC/gnu/gawk/gawk-5.0.1:tar.gz\fP .in +.2i .fi GNU \*(AK (\*(GK). There may be a later version. diff -urN gawk-5.0.0/doc/ChangeLog gawk-5.0.1/doc/ChangeLog --- gawk-5.0.0/doc/ChangeLog 2019-04-12 12:20:50.000000000 +0300 +++ gawk-5.0.1/doc/ChangeLog 2019-06-18 20:55:17.000000000 +0300 @@ -1,3 +1,82 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + +2019-06-18 Arnold D. Robbins + + * gawktexi.in (Plain Getline): Improve the program and show + sample input and output. Thanks to Mark Krauze + for some of the changes. + Unrelated: Set the update month. + * awkcard.in: Bump version in download info. + +2019-06-11 Arnold D. Robbins + + * gawktexi.in (Regexp Operator Details): Add a paragraph + describing how unmatched left and right parentheses work. + Thanks to Neil Ormos + for pointing out the need. + +2019-06-05 Arnold D. Robbins + + * gawktexi.in (Type Functions): Clarify isarray() and + typeof() behavior. Thanks to Mark Krauze , + for pointing out the issues. + +2019-05-22 Arnold D. Robbins + + * gawk.1, gawktexi.in: Document --lint=no-ext. + +2019-05-06 Arnold D. Robbins + + * gawktexi.in: Fix some typos. Thanks to Mark Krauze + , for pointing them out. + (Options): Document new feature in --sandbox, that you can't + add files that weren't there to start with. + +2019-05-05 Arnold D. Robbins + + * gawktexi.in (Additional Configuration Options): Document that + --disable-extensions also disables the extensions! Thanks to + Mark Krauze , for pointing it out. + +2019-04-28 Arnold D. Robbins + + * gawktexi.in (Options): Fix a copy/paste error. Thanks to + Mark Krauze , for pointing it out. + +2019-04-22 Arnold D. Robbins + + * gawktexi.in (Undocumented): Fix a typo. Thanks to Antonio Columbo + for pointing it out. + +2019-04-21 Arnold D. Robbins + + * gawktexi.in (Limitations): Provide brief instructions + on how to use use a temporary file in a script with + the debugger. Thanks to Holger Klene + for the discussion. + (Multiple Lines): Note that POSIX seems to require \n as + separator for all values of FS, but that in reality it + doesn't apply to regexps; this is a POSIX bug. + (Options): Document clearly that if no -f or -e, anything + after the program text is placed into ARGV and not + parsed for options. Thanks to Neil Ormos + for the tip. + (Other Versions): Add a link to Mircea Neacsu's embeddable + awk interpreter. + +2019-04-18 Arnold D. Robbins + + * gawktexi.in (Undocumented): Note an undocumented feature. + * Makefile.am (EXTRA_DIST): Add ChangeLog.1 to the list. Ooops. + +2019-04-14 Arnold D. Robbins + + * gawktexi.in (Case-sensitivity): Document that single-byte + locales ignore case based on the current locale and not + always Latin-1. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/doc/ChangeLog.1 gawk-5.0.1/doc/ChangeLog.1 --- gawk-5.0.0/doc/ChangeLog.1 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/doc/ChangeLog.1 2019-04-12 12:45:07.000000000 +0300 @@ -0,0 +1,2906 @@ +2019-04-07 Arnold D. Robbins + + * texinfo.tex: Updated from GNULIB. + +2019-04-05 Andrew J. Schorr + + * gawktexi.in: Add a missing word. + +2019-03-25 Arnold D. Robbins + + * gawkinet.texi: Small formatting fixes. Update version and dates. + +2019-03-13 Arnold D. Robbins + + * gawktexi.in: More minor fixes. + * wordlist: Updated. + +2019-03-10 Arnold D. Robbins + + * gawktexi.in: Update master menu. + +2019-03-09 Arnold D. Robbins + + * gawktexi.in (Regexp Operators): Refactor a bit into subsections, + mention that BWK awk now has interval expressions. + +2019-02-28 Arnold D. Robbins + + * gawktexi.in: Fix a spelling error, change update month. + * gawkworkflow.texi: Small fixes. + * wordlist: Updated. + +2019-02-25 Arnold D. Robbins + + * texinfo.tex: Updated from GNULIB. + +2019-02-20 Arnold D. Robbins + + * gawktexi.in: Fix order of values for PROCINFO["platform"], + save an email in @ignore for possible eventual inclusion. + * gawk.1: Correct values for PROCINFO["platform"]. + +2019-02-17 Arnold D. Robbins + + * gawktexi.in (Viewing And Changing Data): Revise note for eval + to list commands that are not allowed using it. + +2019-02-15 Arnold D. Robbins + + * gawktexi.in: Fix wording for %f. + Thanks to Dan Liddell for the catch. + (Viewing And Changing Data): Note that eval has problems calling + user-defined functions that return a value. Thanks to + Lothar Langer for the report. + +2019-02-11 Arnold D. Robbins + + * gawktexi.in: Don't use `\global\usebracesinindexestrue' as it's + no longer supported. + (Function Calling): Renamed from `Function Caveats'. + (Function Caveats): New node. + * gawkinet.texi: Don't use `\global\usebracesinindexestrue' as it's + no longer supported. + +2019-02-07 Arnold D. Robbins + + * gawktexi.in: Fix some indexing with too many commas. + * gawk.info: Regenerated, moved to makeinfo 6.5. + * texinfo.tex: Updated. + +2019-02-04 Arnold D. Robbins + + * gawk.1: Some more minor edits. + +2019-02-03 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add wordlist3. + (spellmanpage): New target. + (spell): Add spellmanpage to the list. + * wordlist1: Updated. + * wordlist3: New file. + * awkcard.in: Finish cleanups. + * gawk.1: Ditto. + * gawktexi.in: Fix small typo. + +2019-02-01 Arnold D. Robbins + + * awkcard.in: Start on cleanup edits. + * gawk.1: Ditto. + * gawktexi.in: Credit Nelson Beebe with gawk's current + random number generator. + * gawk.texi, gawk.info: Brought back into sync. + +2019-01-28 Arnold D. Robbins + + * gawktexi.in, gawk.1, awkcard.in: Update copyright dates and + appropriate version numbers. + +2019-01-25 Arnold D. Robbins + + * gawktexi.in (Namespaces): Add a cautionary note that the feature + is new and may still have dark corners and/or bugs. + +2019-01-18 Arnold D. Robbins + + * gawktexi.in: Finish up indexing changes. + +2019-01-14 Arnold D. Robbins + + * gawktexi.in: More work on the indexing. + Document that `-f -' works to read source code from stdin. + +2019-01-13 Arnold D. Robbins + + * gawktexi.in: Work on the indexing. + +2019-01-11 Arnold D. Robbins + + * gawktexi.in (I18N Example): $LC_MESSAGES is involved here + also. Document this. + +2019-01-09 Andrew J. Schorr + + * gawktexi.in (Undocumented): Discuss typeof's optional 2nd argument. + +2019-01-08 Arnold D. Robbins + + * gawktexi.in (I18N Example): Add more explanation of how to + make the directory to hold the .mo file. + +2019-01-04 Arnold D. Robbins + + * gawktexi.in: Indexing fixes and small corrections. + +2019-01-03 Arnold D. Robbins + + * gawktexi.in: Some small indexing fixes. Thanks to Antonio + Giovanni Colombo for pointing them out. + +2019-01-02 Arnold D. Robbins + + * gawktexi.in: A few more fixes w.r.t. namespaces. Thanks to + Antonio Giovanni Colombo for pointing out the problems. + +2018-12-31 Arnold D. Robbins + + * gawktexi.in: A few fixes w.r.t. namespaces. Thanks to + Antonio Giovanni Colombo for pointing out the problems. + +2018-12-18 Arnold D. Robbins + + * gawktexi.in: Added more indexing to the debugger chapter. + Add more indexing to namespaces chapter, too. + +2018-12-12 Arnold D. Robbins + + * gawktexi.in: Clean up some FIXMEs and other improvements. + * gawk.1: Mention that files read with -f and -i and command + line segments all implicitly start with @namespace "awk". + +2018-12-18 Arnold D. Robbins + + * gawktexi.in: Added more indexing to the debugger chapter. + +2018-11-29 Arnold D. Robbins + + * gawktexi.in (Auto-set): Document that you can no longer use + arbitrary indices in SYMTAB. + * gawk.1: Ditto. + +2018-12-18 Arnold D. Robbins + + * gawktexi.in: Added more indexing to the debugger chapter. + +2018-11-27 Arnold D. Robbins + + * gawktexi.in (Other Versions): Document GoAWK, an awk interpreter + written in Go. + +2018-11-26 Arnold D. Robbins + + * gawktexi.in (Auto-set) : Update values of PROCINFO["platform"]. + (PC Using): Add to BINMODE discussion to always set it and + not worry about checking platforms. Per discussion with the dev team. + +2018-11-26 Arnold D. Robbins + + * gawktexi.in: Document that split() third arg is like FS, if it's + a single character, that character is used, even if it's a + regexp metacharacter. + * gawk.1: Ditto. + Thanks to R <0xef967c36@gmail.com> for the report. + +2018-11-25 Arnold D. Robbins + + * gawktexi.in: Document PROCINFO["platform"]. + * gawk.1: Ditto. + +2018-11-25 Arnold D. Robbins + + * gawktexi.in: Small typo fix. + +2018-11-24 Arnold D. Robbins + + * gawktexi.in (Assignment Options): Add description of assigning + strongly typed regexp constants to variables. + +2018-11-02 Arnold D. Robbins + + * gawktexi.in): Small typo fixes. Thanks to Antonio + Giovanni Colombo for pointing them out. + +2018-11-01 Arnold D. Robbins + + * gawktexi.in (Profiling): Review and update. + +2018-10-30 Arnold D. Robbins + + * gawktexi.in (Arrays of Arrays): Typo fix in code. Thanks to Alto Tom + for the report. + (Usenet): Small edit. + +2018-10-27 Arnold D. Robbins + + * gawktexi.in (Usenet): Mention that web forums are also not + the right place for gawk bug reports. + +2018-10-23 Arnold D. Robbins + + * gawktexi.in (Bug address): Mention the GNU Kind + Communications Guidelines, with URL. + * texinfo.tex: Updated from GNULIB. + +2018-10-17 Arnold D. Robbins + + * gawktexi.in (Profiling): Revise example for pattern without + action and note that the profiler distinguishes `print' and + `print $0'. + +2018-09-23 Arnold D. Robbins + + * gawktexi.in (Extracting): Note that patch levels above + 60 are beta software, instead of above 70. + +2018-09-21 Arnold D. Robbins + + * gawktexi.in: Update UPDATE_MONTH. + +2018-09-16 Arnold D. Robbins + + * Makefile.in: Regenerated, using Automake 1.16.1. + +2018-08-26 Arnold D. Robbins + + * gawktexi.in (Other Versions): Updated info on BWK awk. + * gawktexi.in (Control Letters): Note that BWK awk now also + supports %a/%A. + +2018-08-24 Arnold D. Robbins + + * gawktexi.in: A number of unrelated updates. Most notably, + removed the section on old extensions which has been irrelevant + since 4.2.0. Oops. + +2018-08-02 Arnold D. Robbins + + * gawktexi.in (Scalar Constants): Fix typos in example. + +2018-07-31 Arnold D. Robbins + + * gawktexi.in (Scalar Constants): Document what happens with + physical newlines in strings, escaped and otherwise. + +2018-07-31 Arnold D. Robbins + + * gawktexi.in (Two-way I/O): Fix some typos. + * gawkworkflow.texi (Configuring git): Correct some + command usages. Thanks to Antonio Colombo for the fix. + +2018-07-31 Ralph Corderoy + + * gawk.1: Avoid hyphenation in gawk email address. + +2018-07-25 Arnold D. Robbins + + * gawktexi.in (Two-way I/O): Add a nice example on buffering + and ptys from Andrew Schorr. + +2018-07-10 Arnold D. Robbins + + * gawktexi.in (Control Letters): Add a note about output of NaN and + INF values with an xref to POSIX Floating Point Problems. + (POSIX Floating Point Problems): Describe that gawk also outputs the + four special strings for NaN and INF values. + +2018-06-27 Arnold D. Robbins + + * texinfo.tex: Updated. + +2018-06-12 Arnold D. Robbins + + * gawktexi.in (Records, gawk split records): More explanation + of how RS works when it's longer than one character. Thanks + to Andrew Schorr for most of the wording. + * wordlist: Updated. + +2018-06-11 Arnold D. Robbins + + * gawktexi.in (awk split records): Document that even if the + single character in RS is a regexp metacharacter, it's + treated literally. Per suggestion from Ed Morton. + +2018-06-06 Arnold D. Robbins + + * gawktexi.in (Extract Program): Remove an obsolete sentence. + Thanks to Andrew Giovanni Colombo for pointing it out. + +2018-05-31 Arnold D. Robbins + + * gawktexi.in (String Functions): Clean up and clarify the + prose description of gensub(). Thanks to Andrew Schorr + for the encouragement (back in 2016...). + +2018-05-31 Arnold D. Robbins + + * gawktexi.in (Extract Program): Additional bug fixes. Close + the last file processed, and use the index of the for loop + which is the filename as the argument to close()! + +2018-05-28 Bjarni Ingi Gislason + + * gawk.1: Change two-fonts macros to one-font macros for a + single argument. + +2018-05-27 Arnold D. Robbins + + * gawktexi.in (Extract Program): Bug fix. Keep the files open + in case one program's bits are intermixed with another's. + Then close them all at the end. Bug report was about + indirectcall.awk but affected another file as well. Thanks + to Ramasahayam Reddy for the report. + +2018-05-23 Arnold D. Robbins + + * gawktexi.in (Auto-Set): For PROCINFO["sorted_in"], make the xref + point to the right place. Reported by David Kaspar + from downstream bugzilla: + https://bugzilla.redhat.com/show_bug.cgi?id=1581434 + +2018-05-13 Arnold D. Robbins + + * gawktexi.in (Bitwise Functions): Use @asis in the table to + get brackets for optional stuff to come out in Roman. + +2018-05-10 Arnold D. Robbins + + * gawktexi.in (Bracket Expressions): Document the full list + of characters in [:space:]. Thanks to Jannick + for the suggestion. Also note that current BWK awk gets [:blank:] + wrong, treating it like [:space:]. + +2018-04-08 Arnold D. Robbins + + * gawk.1: Minor edit in the man page. Thanks to Howard + Johnson for the report. + +2018-04-02 Arnold D. Robbins + + * texinfo.tex: Updated. + +2018-03-26 Arnold D. Robbins + + * gawktexi.in, gawk.1: Remove mention of tail recursion + optimization from documentation on -O. + +2018-03-22 Arnold D. Robbins + + * gawktexi.in, gawk.1, awkcard.in: Document %a and %A. + * wordlist, wordlist2: Updated. + +2018-03-13 Arnold D. Robbins + + * gawkworkflow.texi: Fix update month. + +2018-02-25 Arnold D. Robbins + + * 4.2.1: Release tar ball made. + +2018-02-25 Arnold D. Robbins + + * gawktexi.in: Update UPDATE-MONTH. + * awkcard.in: Update tar ball version and copyright year. + +2018-02-25 Arnold D. Robbins + + * texinfo.tex: Updated. + +2018-02-17 Arnold D. Robbins + + * gawktexi.in: Further fix to NONFATAL stuff. Thanks to + Antonio Giovanni Colombo for the report. + +2018-02-16 Arnold D. Robbins + + * gawktexi.in: Fix NONFATAL stuff to cover input redirections too. + +2018-02-15 Arnold D. Robbins + + * gawk.1: Fix NONFATAL stuff to cover input redirections too. + +2018-02-08 Arnold D. Robbins + + * gawktexi.in: Clarify binary mode is default on Cygwin, + improve section on using on PCs to refer to MinGW and DJGPP. + Thanks for the report to a contributor who wishes to + remain anonymous. + +2018-01-28 Arnold D. Robbins + + * wordlist: Updated. + +2018-01-25 Arnold D. Robbins + + * gawktexi.in (AWKLIBPATH Variable): Add note that changing + ENVIRON["AWKLIBPATH"] won't affect the running program. Thanks to + Neil R. Ormos for the suggestion. + +2018-01-25 Arnold D. Robbins + + * gawktexi.in (gawkextlib): Update discussion of gawkextlib. + Add not about json extension, and just present the list as + describing some of the extensions, since there are now too + many to try to keep up with all of them. + +2018-01-15 Arnold D. Robbins + + * gawktexi.in: Update gnu.org and fsf.org URLs to https. OK'd + by the FSF. + +2018-01-11 Arnold D. Robbins + + * gawktexi.in: Remove incorrect '*' on some declarations of + ext_id in sample extension code. Thanks to Panos Papadopoulos + for the report. + * texinfo.tex: Updated from GNULIB. + +2018-01-08 Andrew J. Schorr + + * gawktexi.in (Checking for MPFR): Add warnings about exit's processing + of END rules. + +2018-01-03 Arnold D. Robbins + + * gawktexi.in: Update copryight year, and some small cleanups. + +2018-01-02 Arnold D. Robbins + + * gawktexi.in (Setting the rounding mode): Add a sidebar + with sample code (courtesy of ) to + demonstrate how ROUNDMODE affects number to string conversion. + +2017-12-28 Arnold D. Robbins + + * texinfo.tex: Updated. + * gawktexi.in (How To Contribute): Update to point to + awklang.org. + +2017-12-22 Arnold D. Robbins + + * texinfo.tex: Updated. + +2017-12-20 Arnold D. Robbins + + * gawktexi.in (Additional Configuration Options): Add + description of the --enable-versioned-extension-dir option. + +2017-12-01 Sergey Tselikh + + * gawktexi.in: Several small changes to gawktexi.in, + mainly related to fixing typos, small text polishing + and adding @group/@end group in @example and @example-like + constructs to clean PDF version (formatted for Letter paper, + which is the default) of orphaned single lines of source code + or example output in higher and lower parts of pages (such + lines were with just a "}", or with a single line of code or + a comment). Hyphenated words "single-precision", + "double-precision" and alike left untouched. + +2017-12-14 Arnold D. Robbins + + * gawktexi.in: Add a note to add a section on recursion. + Thanks to Bill Duncan for the + suggestion. + * gawktexi.in: Add a missing DARKCORNER indicator and + a few missing dark corner index entries. Remove the note + at the end to check that all dark corners are indexed and + instead make it part of the list of consistency checks. + +2017-11-24 Arnold D. Robbins + + * gawkworkflow.texi (General practices): Use correct option + --delete for deleting a branch upstream, instead of -d. + +2017-11-21 Andrew J. Schorr + + * gawktexi.in (Setting the Rounding Mode): Fix the description + of ROUNDMODE "A": it uses MPFR_RNDA mode, which rounds away from zero, + not "Round to nearest, ties away from zero". + * gawk.1 (ROUNDMODE): Fix description of "A". + +2017-11-17 Arnold D. Robbins + + * gawktexi.in (Changes from API V1): Give a list of things + that changed, with xrefs. Thanks to Andrew Schorr for the push. + +2017-11-09 Arnold D. Robbins + + * gawktexi.in (For Statement): Small clarification in the text. + +2017-11-08 Arnold D. Robbins + + * gawktexi.in (General Data Types): Move AWK_NUMBER_TYPE + enum out to top level, corresponding to code change. + +2017-10-19 Arnold D. Robbins + + * 4.2.0: Release tar ball made. + +2017-10-17 Arnold D. Robbins + + * gawktexi.in (EDITION): Update to 4.2. Also, remove all visible + references to http://awk.info; that site no longer exists. + +2017-10-17 Andrew J. Schorr + + Update docs to indicate that isarray is not deprected in this release. + + * awkcard.in: Remove "Deprecated" notice under isarray. + * gawk.1: Remove deprecated warning under isarray documentation. + * gawkexti.in: Remove sentence indicating that isarray is deprecated + and recommending typeof instead. + +2017-10-16 Arnold D. Robbins + + * awkcard.in: Add @namespaces to Execution section. + +2017-10-12 Arnold D. Robbins + + * gawk.1: Documents namespaces. + * awkcard.in: Ditto. + +2017-10-10 Arnold D. Robbins + + * gawktexi.in (Readfile Function): Fix the code for the naive + function to be syntactically and semantically correct. Thanks to + Jaromir Obr for the report. + (POSIX String Comparison): Add some URL references in @ignore. + + Unrelated: + + * gawktexi.in: Remove description of --with-whiny-user-strftime + configuration option. + +2017-10-08 Andrew J. Schorr + + * gawktexi.in: Fix discussion of AWKPATH in section on @include. + +2017-10-04 Arnold D. Robbins + + * gawktexi.in: Update the update month to October. + +2017-10-02 Antonio Giovanni Colombo + + * gawktexi.in: Two typo fixes. + +2017-10-01 Arnold D. Robbins + + * gawktexi.in: Add pointer to mawk 2.0 GitHub page. + +2017-10-01 Antonio Giovanni Colombo + + * gawktexi.in: Update many URLs to https. Some other small fixes. + +2017-10-01 Arnold D. Robbins + + * awkcard.in: One more small change. + * gawk.1: Brought up to date and polished a bit. + * gawktexi.in: Some small additional fixes. + +2017-09-29 Arnold D. Robbins + + * awkcard.in: Finish changes (we hope) for next release. + +2017-09-28 Arnold D. Robbins + + * ad.block: Change FSF URL to https. + * awkcard.in: First round of changes for next release. + +2017-09-18 Arnold D. Robbins + + * gawktexi.in: Change GNU URLs to use `https://...'. + Revise UPDATE_MONTH. + * texinfo.tex: Updated. + +2017-09-17 Arnold D. Robbins + + * gawktexi.in: Change 'namespace' to 'name_space' where it matters + for C++ compatibility. + +2017-09-13 David Kaspar + + * gawktexi.in: Fix the dir entry. + * gawkinet.texi: Allow calling as `info awktexi'. + +2017-09-12 Arnold D. Robbins + + * gawktexi.in (Installation summary): Note OS/2 exists for PCs + in a comment. + +2017-08-28 Arnold D. Robbins + + * gawktexi.in (Contributors): Update entry for Steven Davies. + +2017-08-24 Arnold D. Robbins + + * texinfo.tex: Updated. Fixes table of contents issue + with very long title. + * gawktexi.in: Slight rearranging of order of things that + happened in 4.2. Minor cleanups related to Scott Deifik. + +2017-08-21 Arnold D. Robbins + + * texinfo.tex: Updated. Fixes table of contents issue + with Part header. + +2017-08-17 Arnold D. Robbins + + * gawktexi.in: Document Marco Curreli's contribution of + the Italian translation, along with Antonio Colombo. + +2017-08-16 Arnold D. Robbins + + * gawktexi.in: Update history of features appendix section. + * wordlist, worldlist2: Add more words. + +2017-08-13 Arnold D. Robbins + + * gawktexi.in, gawk.1, awkcard.in: Update versions and + copyright years, prepatory to starting a release spiral. + +2017-08-13 Arnold D. Robbins + + * gawktexi.in: Update API chapter with info about additions + for accessing and/or creating MPZ and MPFR values. + +2017-08-04 Arnold D. Robbins + + * texinfo.tex: Updated. + +2017-08-02 Arnold D. Robbins + + * gawktexi.in (Namespace Summary): Add summary to namespace + chapter. + +2017-08-01 Arnold D. Robbins + + * gawktexi.in: Update with info about DJGPP port now + being supported. + +2017-07-28 Arnold D. Robbins + + * gawktexi.in (Type Functions): Improve the example + for untyped variables. + (Extension Exercises): Remove the exercise that talks + about namespaces, since it's no longer relevant. + +2017-07-28 Arnold D. Robbins + + * gawktexi.in (Extension Sample Inplace): Apply GPL to + inplace.awk; should have done that when it was first + added. Oops. + +2017-07-26 Arnold D. Robbins + + * gawktexi.in (Namespaces): More edits. + +2017-07-21 Arnold D. Robbins + + * gawktexi.in: Fix a spelling error. + * wordlist: Update with more words. + + Done also for namespace material. + +2017-07-20 Arnold D. Robbins + + * gawktexi.in (Extension Sample Inplace): Rework to use the + "inplace" namespace. + + * gawktexi.in (Namespace And Features): Renamed from + `Namespace Misc' and reworked. + (Symbol table by name): Add note about namespace and + component name rules with xref to section in Namespaces chapter. + +2017-07-19 Arnold D. Robbins + + * gawktexi.in (Namespaces): Cleanup, new section on naming rules + added. + +2017-07-17 Arnold D. Robbins + + * gawktexi.in (Namespaces): Revised password suite example. + (Symbol table by name): Add entries for namespace versions + of lookup and update routines. + +2017-07-13 Arnold D. Robbins + + * gawktexi.in (Namespaces): More updates. Especially that + reserved words are not allowed in either half of a fully + qualified name or as a namespace. + +2017-07-05 Arnold D. Robbins + + * gawktexi.in (Namespaces): More updates. + +2017-07-02 Arnold D. Robbins + + * texinfo.tex: Pull in latest from Texinfo SVN. + +2017-06-30 Arnold D. Robbins + + * gawktexi.in (Namespaces): Move to later in the book. + +2017-06-23 Arnold D. Robbins + + * gawktexi.in (Namespaces): More minor doc edits. + +2017-06-19 Andrew J. Schorr + + * gawktexi.in (Memory Allocation Functions and Convenience Macros): + Document new ezalloc API macro. + +2017-06-18 Andrew J. Schorr + + * gawkworkflow.texi: Fix typo. + +2017-06-15 Arnold D. Robbins + + * gawktexi.in: Expand tab characters. + * gawktexi.in (Namespaces): Further minor doc edits, including + hyphenation hint. + +2017-06-13 Arnold D. Robbins + + * gawktexi.in (Namespaces): Document that reserved words and + predefined functions can be namespace names but can be in + the second part of a fully qualified name. (Design decision + change.) + +2017-06-11 Arnold D. Robbins + + * gawktexi.in (Namespaces): Document that reserved words and + predefined functions can't be namespace names. Reformat the + input a little bit. + +2017-06-06 Arnold D. Robbins + + * gawktexi.in (Namespaces): Further clarifications. Move to + `::' as the namespace separator. + +2017-06-05 Andrew J. Schorr + + * gawktexi.in (Checking for MPFR): Fix typo. + +2017-06-02 Arnold D. Robbins + + * gawktexi.in (Namespaces): Fixes in passwd.awk example. Document + that indirect calls with an unadorned name assume "awk" namespace. + +2017-05-30 Arnold D. Robbins + + * gawktexi.in: Initial doc on namespaces. Serves as a design + right now. + * gawktexi.in: More doc added. + +2017-05-30 Arnold D. Robbins + + * gawktexi.in: Document PROCINFO["argv"]. + +2017-05-29 Arnold D. Robbins + + * gawktexi.in (Checking for MPFR): New node on checking if + gawk was invoked with -M. + +2017-05-22 Arnold D. Robbins + + * gawktexi.in: Document FIELDWIDTHS much better, including how + it works in corner cases. Some general organizational improvements + in this chunk of text. + +2017-04-23 Arnold D. Robbins + + * gawktexi.in: Improve documentation of --source option. + +2017-04-20 Arnold D. Robbins + + * gawktexi.in: Document --disable-mpfr configure option. + +2017-04-16 Arnold D. Robbins + + * awkcard.in: Comment out description of intdiv(). + * gawk.1: Ditto. + * gawktexi.in: References to intdiv changed to intdiv0 and + bracketed inside @ifset INTDIV. Not set by default. + +2017-04-16 Arnold D. Robbins + + * gawktexi.in: Improve documentation of the intdiv() function. + +2017-04-12 Arnold D. Robbins + + * it: New directory with Italian translation of the manual. + * Makefile.am (EXTRA_DIST): Add `it' and wordlist2. + +2017-04-12 Manuel Collado + + * gawktexi.in, gawk.1: Small clarification of the patsplit behavior. + +2017-04-11 Arnold D. Robbins + + * gawktexi.in: Minor style edits. + +2017-04-10 Andrew J. Schorr + + * gawktexi.in: Document FIELDWIDTHS enhancement to support an optional + field skip prefix. Document new PROCINFO["FS"] value "API". + Document new get_record field_width argument that enables the API + parser to override the default field parsing mechanism. + +2017-04-07 Arnold D. Robbins + + * using-git.texi: Removed. + * gawkworkflow.texi: Added. New file. + * wordlist2: New file. + * Makefile.am: Revised for new document. Copyright years updated. + + * gawkworkflow.texi: Fix some spelling errors. :-( + * wordlist2: Updated. + * Makefile.am: Fix spell checking. :-( + +2017-03-22 Andrew J. Schorr + + * gawk.1: Document new PROCINFO["FS"] value "API". + +2017-03-22 Andrew J. Schorr + + * awkcard.in: Document FIELDWIDTHS enhancement to support an optional + field skip prefix. + * gawk.1: Ditto. + +2017-03-17 Arnold D. Robbins + + * gawktexi.in: Improve the discussion of quoting on + MS-Windows. Original text contributed by + Vincent Belaiche . + +2017-03-03 Arnold D. Robbins + + * gawktexi.in: Additional small writing tip in the notes + after the @bye. + +2017-03-02 Arnold D. Robbins + + * gawktexi.in: Edits preparatory to release. + +2017-02-23 Arnold D. Robbins + + * gawk.1: "timezone" --> "time zone". + * awkcard.in: Update copyright year. + +2017-02-21 Andrew J. Schorr + + * gawk.1: Document new mktime optional 2nd utc-flag argument. + * gawktexi.in: Ditto. + * awkcard.in: Ditto. + +2017-02-13 Arnold D. Robbins + + * gawktexi.in: Fix two typos. + * wordlist.txt: Update. + + Related: + + * gawktexi.in: Fix more typos. + * wordlist.txt: Update again. + +2017-01-27 Arnold D. Robbins + + * gawktexi.in: Update UPDATE-MONTH and copyright years. + +2017-01-25 Arnold D. Robbins + + * gawktexi.in: Comment out stuff about awk.info, since that + domain is now gone. + +2016-12-05 Andrew J. Schorr + + * gawktexi.in: Explain why an API extension function might want + to use the AWK_STRNUM type to return data. + +2016-12-23 Arnold D. Robbins + + * gawktexi.in: Update API table of type requested / type returned. + +2016-12-22 Arnold D. Robbins + + * gawktexi.in: Minor edits after merging branches and some + additional work in the code. + +2016-12-17 Arnold D. Robbins + + * gawktexi.in: Further API clarifications and edits, add a + section on backwards compatibility. + +2016-12-16 Arnold D. Robbins + + * gawktexi.in: Update description of awk_ext_func_t structure, + again. + +2016-12-14 Arnold D. Robbins + + * gawktexi.in: Update description of awk_ext_func_t structure. + +2016-12-05 Andrew J. Schorr + + * gawktexi.in: Document strnum changes as relates to API. + Still stuff left to do -- tables for type conversions need + to be updated to show new strnum and regex rows and columns. + +2016-12-04 Andrew J. Schorr + + * gawktexi.in: Remove make_regex and replace it with make_const_regex + and make_malloced_regex. + +2016-12-04 Andrew J. Schorr + + * gawktexi.in: Document new flatten_array_typed API function, and + indicate that the old flatten_array function has been superseded. + +2016-11-30 Arnold D. Robbins + + * gawktexi.in: Document typed regex changes as relates to API. + Still stuff left to do. + +2016-11-21 Arnold D. Robbins + + * gawktexi.in: Finish off discussion of strongly typed regexp + constants and put it in the right place in the manual. A few other + minor fixes. + * wordlist: Updated. + +2016-11-18 Arnold D. Robbins + + * gawktexi.in (Variable Typing): Rework and improve discussion + of strings, numbers, and strnums. Update description of strnum + in other places. + +2016-11-10 Arnold D. Robbins + + * gawktexi.in: Fix example use of dcngettext. + Thanks to Sergey Tselikh + for the report. + +2016-11-08 Arnold D. Robbins + + * gawktexi.in, wordlist: Typo fix. ECBDIC --> EBCDIC. + Thanks to Sergey Tselikh for the report. + (bitwise-ops): Put table in @verbatim instead of @display. + Works better for Info, text, and HTML. Thanks to + Marco Curreli for the report. + +2016-11-04 Arnold D. Robbins + + * gawktexi.in: Fix a spelling error. + * wordlist: Update. + +2016-10-25 Arnold D. Robbins + + * gawktexi.in: Document that negative arguments are not allowed + for bitwise functions. Add a sidebar explaining it a bit and + also showing the difference with and without -M. + * gawk.1: Document that negative arguments are not allowed. + +2016-10-23 Arnold D. Robbins + + * gawktexi.in: Remove references to MS-DOS and OS/2, + simplify the whole section on PC operating systems. + +2016-10-02 Arnold D. Robbins + + * gawktexi.in (Bugs): Rework this section and break into + subsections, mainly to emphasize that I no longer + read comp.lang.awk. + +2016-09-20 Arnold D. Robbins + + * gawktexi.in (Group Functions): Typo fix. Reported + by Jaromir Obr . + (Time Functions): Slightly enhance description of ISO 8601 + definition of first and last weeks. Thanks to + Michel de Ruiter for the note. + +2016-08-25 Arnold D. Robbins + + * gawktexi.in (POSIX String Comparison): Update for new + spec where == and != use strcmp, rest use strcoll. Thanks to + Chet Ramey for pointing me at the new rules. + +2016-08-25 Arnold D. Robbins + + * 4.1.4: Release tar ball made. + +2016-08-24 Arnold D. Robbins + + * wordlist: Add more words. + * gawktexi.in: Fix more typos. + +2016-08-23 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add new file, wordlist. + (spell): New target. + * wordlist: New file. + * gawktexi.in: Fix typos, adjust update date. + * awkcard.in: Update copyright years. + +2016-08-03 Arnold D. Robbins + + Restored doc on typed regexes. + + * gawk.1, gawktexi.in: Updated. + +2016-08-03 Arnold D. Robbins + + Remove typed regexes until they can be done properly. + + * gawk.1, gawktexi.in: Updated. + +2016-08-01 Arnold D. Robbins + + * gawktexi.in: Mark DJGPP port as unsupported. + +2016-07-24 Arnold D. Robbins + + * gawktexi.in: Fix a typo. Thanks to Marco Curreli for reporting. + +2016-07-23 Arnold D. Robbins + + * gawktexi.in: Document return value of close on a pipe now like + that of system: exit status, status + 256 for signal, or + status + 512 for signal with core dump. + +2016-07-18 Arnold D. Robbins + + * gawktexi.in: Fix a typo. Thanks to Antonio Colombo for reporting. + +2016-07-17 Arnold D. Robbins + + * gawktexi.in: Document GAWK_LOCALE_DIR env var and also to not + use LANGUAGE env var. + +2016-07-12 Arnold D. Robbins + + * gawktexi.in (Auto-set): Add example use of multiply function. + +2016-06-30 Arnold D. Robbins + + * gawk.1: Typo fix. Thanks to Antonio Giovanni Colombo + for noticing. + +2016-06-15 Arnold D. Robbins + + * gawk.1: Document typeof(), update modified date. + * awkcard.in: Document typeof(). + +2016-06-10 Arnold D. Robbins + + * gawktexi.in: Fix a typo, and replace hard-coded "section" with + @value{SECTION} where appropriate. Thanks to Antonio + Giovanni Colombo for the reports. + (UPDATE-MONTH, PATCHLEVEL): Update to current before release. + * awkcard.in: Update version. + +2016-05-30 Andrew J. Schorr + + * gawktexi.in: Replace num_expected_args with max_expected_args. + Explain what it's used for. + +2016-05-25 Manuel Collado . + + * gawktexi.in: Document new 'nonfatal' API function. + +2016-05-25 Arnold D. Robbins + + * gawktexi.in: Typo fix in extension section, thanks to + Manuel Collado . + +2016-05-02 Andrew J. Schorr + + * gawktexi.in: Document new CPP defines gawk_api_major_version and + gawk_api_minor_version. + +2016-04-13 Arnold D. Robbins + + * gawkinet.texi: Some general cleanups. Remove stuff commented + out since 2001, index RFCs, change function name convention to + match main gawktexi.in. Update the update month. + +2016-04-06 Arnold D. Robbins + + * gawktexi.in (Two-way I/O): Document that writing to the closed + write end of a two way pipe or reading from the closed read end + can be made nonfatal. + +2016-04-04 Arnold D. Robbins + + * gawktexi.in, gawkinet.texi: Enable use of braces in + indexes. Requires Texinfo 6.0 or later. + +2016-04-02 Arnold D. Robbins + + * gawktexi.in (Two-way I/O): Document that closing the "from" + end waits for the process to exit, so it's not such a great idea. + +2016-03-27 Arnold D. Robbins + + * gawkinet.texi: Small update about end of line vs full + comments when pretty printing. + +2016-03-21 Arnold D. Robbins + + * gawkinet.texi: Update UDP client and discussion, update + modification dates and gawk versions. + +2016-03-11 Arnold D. Robbins + + * gawktexi.in: Improve system() return values documentation. + +2016-03-07 Arnold D. Robbins + + * gawktexi.in: Document system() return values. + * gawk.1: Add a pointer to the manual about same. + +2016-02-23 Arnold D. Robbins + + * sidebar.awk: Globally replace [[:space:]] with [ \t] so that + it will work with old versions of mawk (as found, boo!, on many + Debian-based distributions). Thanks to Yehezkel Bernat for + discovering and reporting the issue. + +2016-02-20 Arnold D. Robbins + + * gawktexi.in (Bracket Expressions): Add a small note about + Unicode in bracket expressions. + +2016-02-18 Arnold D. Robbins + + * gawktexi.in: Fixes in wc.awk and in cut.awk. Thanks to David Ward, + dlward134@gmail.com. Added an example of use of rewind(), also + per suggestion from David Ward. + * gawktexi.in: Update info about Texinfo versions. + * gawktexi.in (Limitations): Fix Heisenberg Physics example and + spelling of Heisenberg's name. Thanks to Hermann Peifer. + +2016-02-14 Arnold D. Robbins + + * gawktexi.in: Revise for use with Texinfo 6.1. + Remove ` @c' at the end of inline docbook constructs. + Remove special @DB*REF macros, not needed anymore. + Use @sup for superscripts where possible. + * texinfo.tex: Updated. + +2016-02-05 Arnold D. Robbins + + * gawk.texi: Document that optimization in now the default, + there are new -s/--no-optimize options and that + pretty-printing and profiling disable optimization. + * gawk.1: Ditto. + * awkcard.in: Ditto. + +2016-02-03 Andrew J. Schorr + + * gawktexi.in (Command-Line Options): Change wording of -M description + to say "Select" instead of "Force". + (Arbitrary-Precision Arithmetic Features): Tweak the wording to make + it clear that MPFR is not used unless the -M option is supplied. + +2016-02-03 Arnold D. Robbins + + * gawktexi.in (VMS Running): Improve the Texinfo usage. + +2016-01-31 John E. Malmberg + + * gawktexi.in (VMS Running): Add instructions on how to redirect + gawk data to a VMS command. + +2016-01-18 Arnold D. Robbins + + * gawktexi.in (Bracket Expressions): Document that '[', '.' and + '*' are literal inside bracket expressions. + (Two-way I/O): Add stuff about stdbuf and deadlocks. + +2016-01-15 Arnold D. Robbins + + * gawktexi.in (Array Sorting Functions): Clean up the code some, + per suggestion from Michal Jaegermann. Tighten up the prose + a bit too. + +2016-01-14 Arnold D. Robbins + + * ChangeLog: Remove spurious whitespace. + + Unrelated: + + * gawk.1: Restore text on PROCINFO["RETRY"] and fix up the + formatting while we're at it. Thanks to Andrew Schorr for + pointing out the problem. + +2016-01-13 Arnold D. Robbins + + * gawktexi.in (Array Sorting Functions): Add an example of + using a function name with asort(). Response to bug report + Stephane Goujet . + +2016-01-06 Arnold D. Robbins + + * gawktexi.in: Finish documenting that --pretty-print + doesn't run the program. Thanks to Antonio + Giovanni Colombo for the report and patch. + +2016-01-03 Arnold D. Robbins + + * gawktexi.in: Document that GNU/Linux on Alpha is no + longer supported. + +2015-12-27 Arnold D. Robbins + + * gawktexi.in: Fix some @c endfile. Thanks to Antonio + Giovanni Colombo for the report and patch. + +2015-12-20 Arnold D. Robbins + + * gawktexi.in: Add PROCINFO["NONFATAL"] to the list for PROCINFO. + * gawk.1: Ditto. + +2015-12-18 Arnold D. Robbins + + * gawk.1: Update description of PROCINFO, and sort it properly. + * gawktexi.in: Ditto. + +2015-11-26 Arnold D. Robbins + + * gawktexi.in: Add "exit" as synonym for "quit" in the + debugger. Suggested by Joep van Delft . + +2015-11-15 Arnold D. Robbins + + * gawktexi.in: Minor edits. + * gawk.1: Revise \x to maximum of two digits. + +2015-11-04 Arnold D. Robbins + + * Makefile.am (pdf-local): Remove igawk.1.pdf. Ooops. + +2015-10-30 Arnold D. Robbins + + * Makefile.am (awkcard.ps): Add options to force paper size + to letter. This makes the cut marks come out correctly even + if groff's default paper size is a4. + +2015-10-26 Arnold D. Robbins + + * gawk.1: Put commas outside quoting in regexps to avoid + confusion. Thanks to Mike Frysinger . + +2015-10-16 Arnold D. Robbins + + * awkcard.in: Fix tbl complaint. + +2015-10-07 Arnold D. Robbins + + * texinfo.tex: Updated to a working version. + +2015-10-04 Arnold D. Robbins + + * texinfo.tex: Revert update. It stopped working. I should learn + to test these things. Thanks to Antonio Giovanni Colombo for + the report. + +2015-10-02 Arnold D. Robbins + + * gawktexi.in: Note that there is no support for SSL. + +2015-09-25 Arnold D. Robbins + + * texinfo.tex: Update to latest. + +2015-08-28 Daniel Richard G. + + * doc/gawktexi.in: Check for the "struct passwd.pw_passwd" and + "struct group.gr_passwd" fields and conditionalize their use, as + they don't exist on z/OS. + * Makefile.am (pdf-local): Renamed from "pdf", as Automake already + defines "pdf" and warns us as much. + +2015-08-14 Arnold D. Robbins + + * gawktexi.in: Typo fixes in Appendix A. + Thanks to Antonio Colombo. + +2015-07-30 Arnold D. Robbins + + * gawktexi.in: Small typo fix; thanks to Antonio Colombo + for noticing. + +2015-07-01 Arnold D. Robbins + + * gawktexi.in: Update info on Quiktrim awk; thanks to + Antonio Colombo for the pointer. + +2015-06-30 Arnold D. Robbins + + * gawktexi.in (Limitations): Document that sometimes the + debugger can affect the program being run. + Thanks to Hermann Peifer for the test case. + +2015-06-26 Arnold D. Robbins + + * gawktexi.in: Update description of values returned by typeof. + +2015-06-19 Arnold D. Robbins + + * gawkinet.info: Fix an old arnold@gnu.org. + +2015-06-17 Andrew J. Schorr + + * gawktexi.in: Document inplace shortcomings -- it does not preserve + ACLs, and it may leave temporary files behind if killed by a signal. + +2015-06-17 Andrew J. Schorr + + * gawktexi.in: Document new inplace variable to control whether + inplace editing is active. + +2015-06-13 Arnold D. Robbins + + * gawktexi.in: Comment out exercise 10.3, since the answer + is included in the text. Thanks to Antonio Colombo + for pointing this out. + +2015-06-12 Arnold D. Robbins + + * gawktexi.in: Add another pithy quote from Chet Ramey. Currently + commented out. + +2015-05-31 Arnold D. Robbins + + * gawktexi.in: Revised description of default field parsing + for POSIX. Newline is now a separator also. Thanks to + Michael Klement for pointing this out. + * gawk.1: Updated too. + +2015-05-30 Arnold D. Robbins + + * gawktexi.in (Bitwise Functions): Update results of testbits.awk. + +2015-05-19 Arnold D. Robbins + + * 4.1.3: Release tar ball made. + +2015-05-19 Arnold D. Robbins + + * gawktexi.in: Bump patch level and modified date. + Move to modern version of @image. + * texinfo.tex: Update to latest. + * array-elements.txt: Remove texinfo commands. + +2015-05-18 Arnold D. Robbins + + * gawktexi.in: Add a pithy quote from Chet Ramey. Currently + commented out. + +2015-05-16 Arnold D. Robbins + + * gawktexi.in: Fix description of nextfile within a function. Sigh. + +2015-05-15 Andrew J. Schorr + + * gawktexi.in (Undocumented): Describe the new PROCINFO["argv"] array. + +2015-05-14 Arnold D. Robbins + + * gawktexi.in (Bugs): Add that email should be in plain + text and not in HTML. Sigh. + +2015-05-11 Arnold D. Robbins + + * gawktexi.in: Add doc on conversions for strongly typed + regexp variables. + +2015-05-03 Arnold D. Robbins + + * gawktexi.in: Add initial documentation for strongly typed + regexps and for `typeof'. + +2015-04-29 Arnold D. Robbins + + * 4.1.2: Release tar ball made. + +2015-04-16 Arnold D. Robbins + + * gawktexi.in (Undocumented): More info added. + +2015-04-08 Arnold D. Robbins + + * gawktexi.in: Update feature history section. + +2015-04-07 Arnold D. Robbins + + * gawktexi.in: Add a minor note to revisit FPAT pattern for CSV + files at some point. + +2015-04-05 Andrew J. Schorr + + * gawktexi.in: Replace http://gawkextlib.sourceforge.net with + http://sourceforge.net/projects/gawkextlib, since the former link + contains obsolete info. Update the gawkextlib build instructions + to point to http://sourceforge.net/projects/gawkextlib/files for the + current info. + +2015-04-05 Arnold D. Robbins + + * gawktexi.in: Fix a figure caption. Thanks to Antonio Colombo + for pointing this out. + * gawktexi.in: Additional typo fix, also thanks to Antonio. + +2015-04-02 Arnold D. Robbins + + * gawktexi.in, gawk.1, awkcard.in: Name change: div() --> intdiv(). + +2015-03-31 Arnold D. Robbins + + * gawktexi.in: Update discussion of calling built-in functions + indirectly. Small additional fix relating to rand(). Thanks + to Antonio Colombo. + +2015-03-27 Arnold D. Robbins + + * gawktexi.in: Minor edits. + +2015-03-24 Arnold D. Robbins + + * gawktexi.in: Minor fixes from Antonio Colombo and new exercise + in chapter 16. + * gawk.1: Minor edits. + * gawktexi.in: Edits in material on errno and retryable and get_file + API. + +2015-03-17 Andrew J. Schorr + + * gawktexi.in: Modify inplace.awk to call inplace_end in BEGINFILE + and END instead of in ENDFILE. This way, actions in ENDFILE rules + will be redirected as expected. + +2015-03-17 Arnold D. Robbins + + * gawktexi.in: Turn "positive" into non-negative as appropriate. + Thanks to Nicholas Mills for pointing out + the issue. + +2015-03-08 Arnold D. Robbins + + * gawktexi.in: Briefly describe that nonfatal I/O overrides + GAWK_SOCK_RETRIES, in the env var part and in the nonfatal I/O + part. + +2015-03-01 Arnold D. Robbins + + * gawktexi.in: Change quotes to @dfn for pseudorandom. + A last-minute O'Reilly fix. + +2015-02-27 Arnold D. Robbins + + * gawktexi.in: Update UPDATE-MONTH and copyright year. + Note that "the guide is definitive" quote is really + from "The Restaurant at the End of the Universe". Thanks + to Antonio Colombo for pointing this out. + +2015-02-24 Arnold D. Robbins + + * texinfo.tex: Update to most current version. + * gawktexi.in: Minor edit to match an O'Reilly fix. + Add some FIXMEs to one day use @sup. + +2015-02-22 Arnold D. Robbins + + * gawktexi.in: Change 'div' to 'divisor' in some examples. + This future-proofs against a new function in master. + Thanks to Antonio Giovanni Colombo for the report. + +2015-02-20 Arnold D. Robbins + + * gawktexi.in: More O'Reilly fixes. I think it's done! + +2015-02-19 Arnold D. Robbins + + * gawktexi.in: More O'Reilly fixes. + +2015-02-17 Arnold D. Robbins + + * gawktexi.in: A few minor formatting fixes to sync with O'Reilly + version. + +2015-02-13 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. Through QC1 review. + +2015-02-11 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. + +2015-02-10 Arnold D. Robbins + + * gawktexi.in: Minor fixes, O'Reilly fixes. + +2015-02-09 Arnold D. Robbins + + * gawktexi.in: Restore a lost sentence. O'Reilly fixes. + +2015-02-08 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. + Make non-fatal i/o use "NONFATAL". + +2015-02-06 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. + +2015-02-04 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. + * gawktexi.in: Update various version-related bits of info. + +2015-02-02 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. + +2015-02-01 Arnold D. Robbins + + * gawktexi.in: POSIX requirement that function parameters cannot + have the same name as a function is now --posix. + Restore indirectcall example. + + More O'Reilly fixes. + +2015-01-30 Arnold D. Robbins + + * gawktexi.in: Document POSIX requirement that function parameters + cannot have the same name as a function. Fix indirectcall example. + +2015-01-27 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. + And still more. Also, fix @code --> @command in a number of places. + +2015-01-26 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. + +2015-01-25 Arnold D. Robbins + + * gawktexi.in: Fix a bad URL. And another one. + More O'Reilly fixes. + +2015-01-23 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. + (Glossary): Many new entries from Antonio Giovanni Colombo. + +2015-01-21 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. + Remove obsolete start/end of range indexing comments. + +2015-01-20 Arnold D. Robbins + + * gawktexi.in: O'Reilly fixes. + +2015-01-19 Arnold D. Robbins + + * gawkinet.texi: Fix capitalization in document title. + * gawktexi.in: Here we go again: Starting on more O'Reilly fixes. + +2014-12-27 Arnold D. Robbins + + * gawktexi.in: Add info that nonfatal I/O works with stdout and + stderr. Revise version info and what was added when. + +2015-01-05 Andrew J. Schorr + + * gawktexi.in: Improve get_file documentation. + +2015-01-05 Andrew J. Schorr + + * gawktexi.in: Replace "Retrying I/O" with "Retrying Input", since this + feature pertains to input, not output. + +2015-01-04 Andrew J. Schorr + + * gawktexi.in: Document the get_file API function. + +2015-01-04 Andrew J. Schorr + + * gawk.1: Document new features PROCINFO["errno"] and + PROCINFO["input", "RETRY"], and new getline return value of -2. + * gawktexi.in: Ditto. + +2014-12-26 Antonio Giovanni Colombo + + * gawktexi.in (Glossary): Really sort the items. + +2014-12-24 Arnold D. Robbins + + * gawktexi.in: Start documenting nonfatal output. + +2014-12-24 Arnold D. Robbins + + * gawktexi.in: Add one more paragraph to new foreword. + * gawktexi.in: Fix exponentiation in TeX mode. Thanks to + Marco Curreli by way of Antonio Giovanni Colombo. + + * texinfo.tex: Updated. + +2014-12-12 Arnold D. Robbins + + * gawktexi.in: Minor fix. + Thanks to Teri Price . + +2014-12-10 Arnold D. Robbins + + * gawktexi.in: More minor fixes. + +2014-12-09 Arnold D. Robbins + + * gawktexi.in: More minor fixes. + +2014-12-07 Arnold D. Robbins + + * gawktexi.in: Minor fixes. + +2014-12-06 Arnold D. Robbins + + * gawktexi.in: A minor fix. + +2014-12-05 Arnold D. Robbins + + * gawktexi.in: Various minor fixes and updates. + +2014-11-23 Arnold D. Robbins + + * gawktexi.in: Update that TZ env. var can influence mktime + in running program. Thanks to Hermann Peifer. + +2014-11-19 Arnold D. Robbins + + * gawktexi.in: Update that RFC 4180 documents CSV data. + +2014-11-17 Arnold D. Robbins + + * gawktexi.in: Copyedits applied. + +2014-11-02 Arnold D. Robbins + + * gawktexi.in: Comment out that I need an owner for awk.info. + I may have found one or two people. + +2014-10-29 Andrew J. Schorr + + * gawktexi.in: Document new extras directory containing shell startup + files to manipulate AWKPATH and AWKLIBPATH environment variables. + +2014-10-28 Arnold D. Robbins + + * gawk.1: Clarification that debugger reads stdin. + * gawktexi.in: Ditto, and correctly place the "Braces" entry in + the Glossary. Thanks to Antonio Colombo for that. + + Unrelated: + + * gawktexi.in: Restore use of @sc. Karl fixed makeinfo. :-) + +2014-10-25 Arnold D. Robbins + + * gawktexi.in: Minor typo fixes. + Fix discussion of \x, per note from Antonio Colombo. + +2014-10-17 Arnold D. Robbins + + * gawktexi.in: Fix date in docbook attribution for new Foreword; + thanks to Antonio Colombo for the catch. Update latest version + of gettext. + +2014-10-15 Arnold D. Robbins + + * gawk.1: Fix default value for AWKLIBPATH. + * gawktexi.in: Revised text for AWKPATH and AWKLIBPATH. + +2014-10-14 Arnold D. Robbins + + * gawktexi.in: Add new Foreword from Mike Brennan. + +2014-10-13 Arnold D. Robbins + + * gawktexi.in: Fix example outputs in chapter 2. + Improve description of SYMTAB. + +2014-10-12 Arnold D. Robbins + + * gawktexi.in: Revise doc for {INT,STR}_CHAIN_MAX. Remove Pat + Rankin from VMS duties (per his request). Add a small TeX fix + for the table in ch 16 for requesting values. + +2014-10-05 Arnold D. Robbins + + * gawktexi.in: Finished changes! + +2014-10-03 Arnold D. Robbins + + * gawktexi.in (EMRED): Renamed from EMISTERED to match original. + Thanks to Warren Toomey at TUHS for access to archives recording + the text. + +2014-10-02 Arnold D. Robbins + + * gawktexi.in: Pretty much done! + + Unrelated: + + * gawktexi.in: Fix braino in awk version of div function. + Thanks to Katie Wasserman for the catch. + +2014-10-01 Arnold D. Robbins + + * gawktexi.in: More fixes after reading through the MS. + + Unrelated: + + * gawktexi.in: Add Katie Wasserman's program to compute + the digits of PI. + + Unrelated: + + * gawktexi.in: Document the differences between profiling + and pretty printing. + +2014-09-30 Arnold D. Robbins + + * gawktexi.in: More fixes after reading through the MS. + +2014-09-29 Arnold D. Robbins + + * gawktexi.in: More fixes after reading through the MS. + And still more fixes. + +2014-09-28 Arnold D. Robbins + + * gawktexi.in: More fixes after reading through the MS. + Document the debugger's "where" command. + +2014-09-27 Arnold D. Robbins + + * gawktexi.in: Lots more fixes after reading through the MS. + +2014-09-23 Arnold D. Robbins + + * gawktexi.in: Rework the documentation of special files in + Chapter 5; some reordering as well as rewriting. + +2014-09-22 Arnold D. Robbins + + * gawktex.in: Continue fixes after reading through the MS. + +2014-09-21 Arnold D. Robbins + + * gawktex.in: Start on fixes after reading through the MS. + +2014-09-18 Arnold D. Robbins + + * gawktexi.in: Fix italics in quotations. Some docbook special + cases. + +2014-09-15 Arnold D. Robbins + + * gawktexi.in: Document that identifiers must use the English + letters. + +2014-09-14 Arnold D. Robbins + + * gawktexi.in: More edits during review, minor addition. + +2014-09-08 Arnold D. Robbins + + * gawktexi.in: Remove text that won't get used. + +2014-09-07 Arnold D. Robbins + + * gawktexi.in: Minor cleanups. + +2014-09-05 Arnold D. Robbins + + * gawktexi.in: Document builtin functions in FUNCTAB and in + PROCINFO["identifiers"]. + * gawk.1: Ditto. + + Unrelated: + + * gawktexi.in: More stuff from reviewer comments. + +2014-09-04 Arnold D. Robbins + + * gawktexi.in: Document that indirect calls now work on built-in + and extension functions. + * gawk.1: Same. + +2014-09-03 Arnold D. Robbins + + * gawktexi.in: Further fixes from reviews and bug reports. + +2014-09-02 Arnold D. Robbins + + * gawktexi.in: Corrections to walkthrough in debugger chapter. + Thanks to David Ward for the problem report. + +2014-09-01 Arnold D. Robbins + + * gawktexi.in: Add index entry for @ - @load, @include, + and indirect function calls. Thanks to "Kenny McKormack" in + comp.lang.awk. + +2014-08-29 Arnold D. Robbins + + * gawktexi.in: Continuing on reviewer comments, and other + bug fixes, miscellaneous improvements. + +2014-08-26 Arnold D. Robbins + + * gawktexi.in: Use a different mechanism to exclude + exercises. Remove use of LC_ALL in an example; doesn't seem + to be needed anymore. + + Unrelated: + + * gawktexi.in: Document that MirBSD is no longer supported. + +2014-08-25 Arnold D. Robbins + + * gawktexi.in: Exercises are excluded from print edition. + +2014-08-24 Arnold D. Robbins + + * gawktexi.in: Continuing on reviewer comments. + +2014-08-23 Arnold D. Robbins + + * gawktexi.in: Continuing on reviewer comments. + +2014-08-22 Arnold D. Robbins + + * gawktexi.in: Continuing on reviewer comments. + +2014-08-20 Arnold D. Robbins + + * gawktexi.in: Continuing on reviewer comments. + +2014-08-16 Arnold D. Robbins + + * gawktexi.in: Continuing on reviewer comments. + +2014-08-15 Arnold D. Robbins + + * gawktexi.in: Continuing on reviewer comments. + +2014-08-13 Arnold D. Robbins + + * gawktexi.in: Starting on reviewer comments. + Update acknowledgements. + +2014-08-12 Arnold D. Robbins + + * gawktexi.in: Cause div.awk to get into the example files. + +2014-08-06 Arnold D. Robbins + + * gawktexi.in: Misc minor additions. + +2014-08-03 Arnold D. Robbins + + * gawktexi.in: For sprintf %c document that if value is a valid + wide character, gawk uses the low 8 bits of the value. + + Unrelated: + + * gawktexi.in: Fix doc for API get_record - errcode needs to + be greater than zero. + +2014-07-24 Arnold D. Robbins + + * gawktexi.in (Numeric Functions): For `div()', clarify + truncation is towards zero. Thanks to Michal Jaegermann + for pointing out the need to clarify this. + +2014-07-10 Arnold D. Robbins + + * gawktexi.in (Numeric Functions): Document new `div()' function. + (Arbitrary Precision Integers): Document raison d'etre for div(). + * gawk.1, awkcard.in: Document `div()'. + +2014-07-04 Arnold D. Robbins + + * gawktexi.in (Bracket Expressions): Add a note about how to + match ASCII characters. Thanks to Hermann Peifer. + +2014-06-25 Arnold D. Robbins + + * gawktexi.in: Update permissions on copyright page per + latest maintain.texi. Add GPL to print version of book. + +2014-06-24 Arnold D. Robbins + + * gawktexi.in: Document that --pretty-print no longer runs the + program. Remove mention of GAWK_NO_PP_RUN env var. + +2014-06-22 Arnold D. Robbins + + * gawktexi.in: Typo fixes and minor corrections. + +2014-06-19 Arnold D. Robbins + + * gawktexi.in: Add thanks to Patrice Dumas and to Karl Berry. + Per request from Hermann Peifer, try to clarify how local variables + in functions are initialized. + +2014-06-18 Arnold D. Robbins + + * gawktexi.in: Split 6.1.4 into subsections. Other minor fixes. + +2014-06-17 Arnold D. Robbins + + * gawktexi.in: Finish adding exercises. + Rework chapter 15 on floating point and MPFR. + Spell check. Fix menues. + +2014-06-16 Arnold D. Robbins + + * gawktexi.in: Start adding exercises. + +2014-06-15 Arnold D. Robbins + + * gawktexi.in: Finish up summaries. Improvements in mystrtonum(). + +2014-06-13 Arnold D. Robbins + + * gawktexi.in: Fix typos from changes of 3 June when macros were + added for filename, data file, etc. Ooops. + +2014-06-12 Arnold D. Robbins + + * gawktexi.in: More "Summary" sections. Through chapter 14. + +2014-06-11 Arnold D. Robbins + + * gawktexi.in: More "Summary" sections. Through chapter 10. + +2014-06-10 Arnold D. Robbins + + * gawktexi.in: Update docbook figure markup. + +2014-06-09 Arnold D. Robbins + + * gawktexi.in: More "Summary" sections. + Judiciously arrange for full xrefs in docbook in a few spots. + +2014-06-08 Arnold D. Robbins + + * gawktexi.in: Start adding "Summary" sections. + +2014-06-03 Arnold D. Robbins + + * gawktexi.in: Restore macros for file name vs. filename etc. + Go through @if... and @ifnot... and fix them up too. Other misc. + cleanup. + +2014-05-29 Arnold D. Robbins + + * gawktexi.in: Remove some obsolete bits, fix up some other + minor stuff. + +2014-05-27 Arnold D. Robbins + + * gawktexi.in: Edits through the end! + +2014-05-25 Arnold D. Robbins + + * gawktexi.in: Edits through Appendix A. + * gawktexi.in: Tweak nested lists for docbook. + +2014-05-24 Arnold D. Robbins + + * gawktexi.in (Staying current): New section. + +2014-05-22 Andrew J. Schorr + + * gawktexi.in (BEGINFILE/ENDFILE): Update doc for getline - any + redirected form is allowed inside BEGINFILE/ENDFILE. + +2014-05-21 Arnold D. Robbins + + * gawktexi.in: Add comments for where we need full xrefs in + docbook. + +2014-05-20 Arnold D. Robbins + + * gawktexi.in: Misc improvements for docbook, consistency + in table and figure captions. + +2014-05-17 Arnold D. Robbins + + * gawktexi.in: Edits through Chapter 16. + +2014-05-16 Arnold D. Robbins + + * gawktexi.in: Edits through Chapter 14. + +2014-05-15 Arnold D. Robbins + + * gawktexi.in: Fix displays for docbook, edits through Chapter 11. + +2014-05-14 Arnold D. Robbins + + * gawktexi.in: Fix real preface for docbook. + +2014-05-13 Arnold D. Robbins + + * gawktexi.in: Complete formatting for FOR_PRINT and not FOR_PRINT. + +2014-05-07 Arnold D. Robbins + + * gawktexi.in: Docbook edits for preface and parts. + Document AWKBUFSIZE. + +2014-05-05 Arnold D. Robbins + + * gawktexi.in: Editing progress. Through Chapter 9. + +2014-05-05 Michal Jaegermann + + * array-elements.fig: Fix subscripts to be aligned + horizontally. Regenerate the other files. + +2014-05-02 Arnold D. Robbins + + * gawktexi.in: Editing progress. Through Chapter 8. + * array-elements.eps, array-elements.fig, array-elements.pdf, + array-elements.png array-elements.txt: New files. + * Makefile.am (EXTRA_DIST): Add them. + +2014-04-30 Arnold D. Robbins + + * gawktexi.in: Editing progress. Through Chapter 5. + * gawktexi.in: Editing progress. Through Chapter 6 and into + Chapter 7. + +2014-04-29 Arnold D. Robbins + + * gawktexi.in: Editing progress. Through Chapter 3. + +2014-04-24 Arnold D. Robbins + + * gawktexi.in: Start on revisions. + +2014-04-17 Arnold D. Robbins + + * gawk.1: Remove the bit about single character programs overflowing + the parse stack. It doesn't seem to be true anymore. + +2014-04-08 Arnold D. Robbins + + * 4.1.1: Release tar ball made. + +2014-04-08 Arnold D. Robbins + + * texinfo.tex: Update to latest. + * awkcard.in: Update copyright, patchlevel in download. + * gawktexi.in: Update patchlevel, update month, spell check. + +2014-03-30 Arnold D. Robbins + + * gawktexi.in: Cleanups to docbook, finish math stuff. + +2014-03-28 Arnold D. Robbins + + * gawktexi.in: Minor cleanups to the indexing. + + Unrelated: + + * gawktexi.in: Merge in changes needed for creating valid + DocBook XML. Works with post-5.2 Texinfo and dblatex! + +2014-03-27 Arnold D. Robbins + + * gawktexi.in: Finish the massive indexing improvements such that + functions are indexed the way I want in TeX and the way Eli + wants in Info. + + Unrelated: + + * gawktexi.in: Add a note in extension chapter that lookup of + PROCINFO can fail. + +2014-03-27 Eli Zaretskii + + * gawktexi.in: First round of massive indexing improvements. + +2014-03-27 Antonio Giovanni Colombo + + * gawktexi.in: Redo all the examples using BBS-list to a different + file that doesn't use out-of-date concepts. + +2014-03-10 Arnold D. Robbins + + * gawktexi.in: Finish indexing improvements. (For now, anyway.) + + Unrelated: + + * gawk.1: Document the quote flag! (Better late than never.) + * awkcard.in: Update documentation of quote flag. + +2014-03-08 Arnold D. Robbins + + * gawktexi.in: Minor edits to the discussion of the memory allocation + functions. + +2014-03-08 Andrew J. Schorr + + * gawktexi.in: Document new extension API functions api_malloc, + api_calloc, api_realloc, and api_free. + +2014-03-07 Arnold D. Robbins + + * gawktexi.in: Indexing improvements. + +2014-03-02 John E. Malmberg + + * gawktexi.in: Remove paragraph about obsolete VMS + compilers. Update reference about building PCSI kit. + +2014-02-27 Arnold D. Robbins + + * gawktexi.in: Lots of small fixes throughout, update of + profiling output. Finished fixes needed before a release. + +2014-02-20 Arnold D. Robbins + + * gawktexi.in: Add a quote to the alarm clock program. + +2014-02-15 Arnold D. Robbins + + * texinfo.tex: Update to latest. + +2014-02-14 Arnold D. Robbins + + * gawktexi.in: Lots of small edits. + +2014-02-07 Arnold D. Robbins + + * gawktexi.in: More minor fixes, update UPDATE_MONTH. + +2014-02-03 Arnold D. Robbins + + * gawktexi.in: More minor fixes, in indexing. + +2014-02-03 Arnold D. Robbins + + * gawktexi.in, gawkinet.texi: Minor fixes, mostly in indexing. + * texinfo.tex: Update to latest. + +2014-01-31 Arnold D. Robbins + + * gawktexi.in: Add `()' to names of extension functions in indexing + commands and in one place in the text. Consistency, don'tcha know. + +2014-01-30 Arnold D. Robbins + + * gawktexi.in: Add a few missing STARTOFRANGE comments. + * gawk.1: Note that `(i, j) in array' doesn't work in for loops. + Update the copyright year. + +2014-01-28 Arnold D. Robbins + + * gawktexi.in: Update info for Anders Wallin. + +2014-01-25 Arnold D. Robbins + + * texinfo.tex: Updated to current version. + * gawktexi.in: Add magic stuff so that PDFs have "dark red" + links like before. + +2014-01-23 Arnold D. Robbins + + * gawktexi.in (Feature History): New node. + (Common Extensions): Update features now in mawk, too. + +2014-12-14 John E. Malmberg + + * gawktexi.in: Add information on building VMS PCSI kit. + +2014-01-03 Arnold D. Robbins + + * gawktexi.in (Full Line Fields): New node. + Update copyright year. + +2013-12-29 John E. Malmberg + + * gawktexi.in: VMS dynamic extensions. + +2013-12-26 Arnold D. Robbins + + * gawktexi.in: More minor additions / fixes. + (Bugs): Add John Malmberg for VMS. Other minor edits. + +2013-12-25 Arnold D. Robbins + + * gawktexi.in: Minor additions / fixes. + +2013-12-23 John E. Malmberg + + * gawktexi.in: Document the VMS exit status encoding. + +2013-12-21 Arnold D. Robbins + + * gawktexi.in (Additional Configuration Options): Document + the --disable-extensions option. + +2013-12-16 John E. Malmberg + + * gawktexi.in: Updates to VMS sections. + +2013-12-12 Arnold D. Robbins + + * gawktexi.in: Fix the presentation of asort() and asorti(). + Thanks to Andy Schorr for pointing out the problems. + +2013-11-28 Arnold D. Robbins + + * gawktexi.in: Update quotations to use @author, fix a few + placements of footnotes. + +2013-11-08 Arnold D. Robbins + + * gawktexi.in: Update the list of files included in the gawk + distribution and fix a few typos. + +2013-11-03 Arnold D. Robbins + + * gawktexi.in: Fix the section and subsection headings in + the Preface. Also change the short title page to just + "GNU Awk". + +2013-10-31 Arnold D. Robbins + + * gawktexi.in: Add @shorttitlepage command. + +2013-10-25 Arnold D. Robbins + + * gawktexi.in (Contributors): Update with more info. + (Distribution contents): Ditto. + General: Remove all hyphens when used with "multi" prefix. + +2013-10-22 Arnold D. Robbins + + * gawktexi.in (Other Environment Variables): Document GAWK_MSG_SRC + variable and fix documentation of *_CHAIN_MAX variables. + +2013-10-11 Arnold D. Robbins + + * gawktexi.in (Conversion, Printf Ordering): Better wording for + descriptions of CONVFMT. Thanks to Hermann Peifer. + +2013-09-29 Arnold D. Robbins + + * gawktexi.in (Other Versions): Updated info on MKS awk and + some other links. + +2013-09-24 Arnold D. Robbins + + * gawktexi.in (Readfile function): New node. + +2013-09-22 Arnold D. Robbins + + * gawktexi.in (FN, FFN, DF,DDF, PVERSION, CTL): Remove macros. + They have no alternate versions and are just in the way. + +2013-08-15 Arnold D. Robbins + + * gawk.1: Document that ENVIRON updates affect the environment. + * gawktexi.in: Ditto. + +2013-06-27 Arnold D. Robbins + + * texinfo.tex: Update from Karl, fixes a formatting problem. + * gawktexi.in (Conversions): Undo @w{} around @option{--posix}. + +2013-06-22 Arnold D. Robbins + + * gawktexi.in (Type Functions): Add more explanation to isarray(), + including that it makes no sense to call it at the global level. + +2013-06-03 Arnold D. Robbins + + * gawktexi.in: Make it crystal clear not to use delete with FUNCTAB, + or attempt to assign to it. + +2013-05-29 Arnold D. Robbins + + * gawktexi.in (Internal File Description): Add "devbsize" element + to stat data array. + +2013-05-27 Arnold D. Robbins + + * gawktexi.in: Sample filefuncs.c extension code: Change test from + ifdef HAVE_ST_BLKSIZE to HAVE_STRUCT_STAT_ST_BLKSIZE. + +2013-05-21 Arnold D. Robbins + + * gawktexi.in (Quick Installation): Add a paragraph advising to + run `make install'. Thanks to Hermann Peifer. + +2013-05-16 Arnold D. Robbins + + * gawktexi.in (gawkextlib): Add a note to use make install on + gawkextlib itself. Thanks to Hermann Peifer. + (Cut program): Fix test for skipping lines if -s was supplied. + Thanks to David Ward for the bug report. + +2013-05-09 Arnold D. Robbins + + * 4.1.0: Release tar ball made. + +2013-05-09 Arnold D. Robbins + + * gawktexi.in, gawk.1: Document that a regexp constant as the second + argument to index() produces a fatal error. + * gawktexi.in: More cleanups. Particularly, cleanup the index. + +2013-04-27 Arnold D. Robbins + + * gawktexi.in: Renamed from gawkman.texi. + Add a reference to Overton's IEEE Math book in MPFR chapter. + Thanks to Nelson Beebe for the recommendation. + * Makefile.am, sidebar.awk: Adjusted. + +2013-04-26 Arnold D. Robbins + + * gawkman.texi: Cleanup in MPFR and API chapters. + Also minor cleanup in design decisions. Add vim modeline. + * api-figure2.fig: Minor fix. + * api-figure2.eps, api-figure2.pdf, api-figure2.png: Regenerated. + +2013-04-24 Arnold D. Robbins + + * gawk.1: Finish cleanup pass. + * awkcard.in: Document that getline sets RT. + * gawkman.texi: Ditto. + +2013-04-23 Arnold D. Robbins + + * gawk.1: Start cleanup pass. + * awkcard.in: Minor addition. + * gawkman.texi: Minor fixes. + + * gawk.1, gawkman.texi: Document PROCINFO entries for API + major and minor versions. + +2013-04-21 Arnold D. Robbins + + * gawkman.texi: Update all the menus. Fix spelling errors. Remove + some unneeded fakenodes. + +2013-04-20 Arnold D. Robbins + + * awkcard.in: Clean up and bring up to date. + +2013-04-17 Arnold D. Robbins + + * Makefile.am (gawk.ps, gawkinet.ps): Set TEXINPUTS to point + at $(srcdir) to be able to include various figures if doing a + build not in the source directory. + +2013-04-16 Arnold D. Robbins + + * gawkman.texi: New file. This is now the real source for the + manual and gawk.texi is generated from it. + * sidebar.awk: New file to DTRT for sidebars in the manual. + * Makefile.am (EXTRA_DIST): Update. + (gawk.texi): Add new rule to create / update it if necessary. + +2013-04-16 Arnold D. Robbins + + * gawk.texi: Pretty much finish cleanup. Move i18n chapter to + after advanced features chapter. + * texinfo.tex: Updated to current in texinfo SVN. + +2013-04-15 Arnold D. Robbins + + * gawk.texi: Continue cleanup. + +2013-04-14 Arnold D. Robbins + + * gawk.texi: Add link to 'pawk' - awk for python. + Further cleanups. + +2013-04-12 Arnold D. Robbins + + * gawk.texi: Continue cleanup. + +2013-04-11 Arnold D. Robbins + + * gawk.texi: Continue cleanup. + +2013-04-04 Arnold D. Robbins + + * gawk.texi: Continue cleanup. + +2013-04-03 Arnold D. Robbins + + * gawk.texi: Continue cleanup. + +2013-04-02 Arnold D. Robbins + + * gawk.texi: Start a simple cleanup pass before the release. + +2013-03-15 Arnold D. Robbins + + * gawk.texi: Update URL for texinfo, fix a typo. + +2013-03-04 Arnold D. Robbins + + * gawk.texi (Getline/Pipe): Add a nice quote from BWK. + +2013-02-08 Arnold D. Robbins + + * gawk.texi: Restore centering of text images. + +2013-02-07 Arnold D. Robbins + + * gawk.texi (Other Versions): Remove the description of xmlgawk. + +2013-02-06 Arnold D. Robbins + + * gawk.texi: For Info output, don't use @center on text images + since the new makeinfo doesn't yet center the file as a block. + Thanks to Karl Berry for the diagnostic. + * gawk.1: Remove commented out doc for -m option which was for + compatibility with BWK awk. His awk dropped it back in 2007. + +2013-01-31 Arnold D. Robbins + + * api-figure2.txt, api-figure3.txt: Convert tabs to spaces. + * gawk.texi (Gory Details): Fix a command that new makeinfo doesn't + recognize. + (Conversion): Update example to be in POSIX mode. Thanks to + Hermann Peifer. + +2013-01-27 Arnold D. Robbins + + * gawk.texi (Dynamic Typing): Clarify that gawk dies after the + first fatal error on the test program. Thanks to Hermann Peifer. + +2013-01-21 Arnold D. Robbins + + * gawk.texi (Setting Precision): Fix a typo. 3.322 instead + of 3.332. Thanks to Hermann Peifer. + +2013-01-09 Arnold D. Robbins + + * gawk.texi: Minor edits to documentation for new inplace extension. + +2013-01-08 Andrew J. Schorr + + * gawk.texi: Add documentation for new inplace extension. + +2013-01-08 Arnold D. Robbins + + * gawk.texi, awkcard.in: Sync what mawk has. Main point of + interest is that mawk supports the three time functions. + +2013-01-06 Arnold D. Robbins + + * gawk.texi, awkcard.in: Add Git Hub info for BWK awk. + Update copyrights. + * gawk.texi: Add Software Tools quote in chapter on library functions. + +2012-12-25 Arnold D. Robbins + + * gawk.texi: Remove doc sym_constant() API function. + +2012-12-24 Arnold D. Robbins + + * 4.0.2: Release tar ball made. + +2012-12-23 Arnold D. Robbins + + * gawk.texi: Remove an incorrect comment. + * awkcard.in: Bump patch level. + +2012-12-18 Arnold D. Robbins + + * gawk.texi (Input Parsers): Add info on read_func. + +2012-12-16 Arnold D. Robbins + + * gawk.texi: Move design decisions on new API to appendix C. + Move section on old extensions to last in the same appendix. + +2012-12-15 Arnold D. Robbins + + * macros: Update to GPL Version 3 and add copyright year. + * texinfo.tex: Updated, from automake 1.12.6. + * gawk.texi (Derived Files): A few minor fixes. + +2012-12-09 Arnold D. Robbins + + * awkforai.txt: Changed content to be pointers to the article + to avoid copyright issues. + * gawk.texi: Updated description of awkforai.txt. + +2012-12-07 Arnold D. Robbins + + * gawk.texi (I/O Functions): Document that fflush() is now part + of POSIX. Fix in a few other places as well. + * awkcard.in: Update for fflush(). + +2012-12-03 Arnold D. Robbins + + * gawk.texi: Fix all @tex ... @end tex tables to use a different + control character than @ so that the new makeinfo won't + complain about them. Thanks to Karl Berry for the guidance. + (Old Extension Mechanism): New node. + +2012-12-01 Arnold D. Robbins + + * gawk.texi: API chapter. Sync with gawkapi.h + +2012-11-27 Arnold D. Robbins + + * gawk.texi: API chapter. Change command for making shared libs + to use gcc, not ld. Thanks to Nelson Beebe. + (I/O Functions): Document new behavior for fflush(). + * gawk.1: Update for fflush(). + * awkcard.in: Ditto. And some general cleanup. + +2012-11-24 Arnold D. Robbins + + * gawk.texi (Future Extensions): Point to TODO file in the + gawk dist. + (Implementation Limitations): New node, from old LIMITATIONS file. + +2012-11-22 Arnold D. Robbins + + * gawk.texi: In API chapter, document the full list of include + files that need to be included. + +2012-11-21 Arnold D. Robbins + + * gawk.texi: In API chapter, update behavior of stat function + in the filefuncs extension. Update the code example and prose + to match the current code. + +2012-11-19 Arnold D. Robbins + + * gawk.texi: In API chapter, update behavior of readdir extension. + +2012-11-16 Arnold D. Robbins + + * gawk.texi: Minor edits in API chapter. + Thanks to Nelson Beebe. + +2012-11-14 Arnold D. Robbins + + * gawk.texi: Minor edits in API chapter. + Thanks to Andrew Schorr. + +2012-11-06 Arnold D. Robbins + + * gawk.texi: Rearrange chapter order and separate into parts + using @part for TeX. Fix capitalization in @caption text. + (Variable Scope): Document that arrays can be local also. + Thanks to Denis Shirokov , for pointing out + the lack. + +2012-11-05 Arnold D. Robbins + + * gawk.texi: Semi-rationalize invocations of @image. + +2012-11-04 Arnold D. Robbins + + * gawk.texi: New chapter on extension API. + * api-figure1.pdf, api-figure2.pdf, api-figure3.pdf, + general-program.pdf, process-flow.pdf: New files. Again. + * Makefile.am (EXTRA_DIST): Update. Again. + +2012-11-03 Arnold D. Robbins + + * api-figure1.pdf, api-figure2.pdf, api-figure3.pdf: Removed. + * api-figure1.txt, api-figure2.txt, api-figure3.txt, + api-figure1.png, api-figure2.png, api-figure3.png: New files. + * Makefile.am (EXTRA_DIST): Update. + + * gawk.texi: Fix up images. + * general-program.pdf, process-flow.pdf: Removed. + * general-program.png, process-flow.png, + general-program.txt, process-flow.txt: New files. + * Makefile.am (EXTRA_DIST): Update. + +2012-10-31 Arnold D. Robbins + + * api-figure1.eps, api-figure1.fig, api-figure1.pdf, + api-figure2.eps, api-figure2.fig, api-figure2.pdf, + api-figure3.eps, api-figure3.fig, api-figure3.pdf: New files. + * Makefile.am (EXTRA_DIST): Add the above. + +2012-10-28 Arnold D. Robbins + + * gawk.texi (Glossary): Document cookie, some cleanup of + notes at the end. + +2012-10-19 Arnold D. Robbins + + * gawk.texi: More doc on SYMTAB. + +2012-10-05 Arnold D. Robbins + + * Makefile.am (LN, install-data-hook, uninstall-hook): Removed. No + longer needed since dgawk and pgawk are gone. + +2012-10-13 Arnold D. Robbins + + * Makefile.am: Add dgawk.1 to man page links created / removed + on install / uninstall. (On stable branch.) + +2012-10-02 Arnold D. Robbins + + * gawk.texi (Glossary). Correct the full name for `ISO' per + bug report from William Bresler . Add a link + to the ISO website. + + * gawk.texi, gawk.1, awkcard.in: Document FUNCTAB, SYMTAB, and + PROCINFO["identifiers"]. Including that delete does not work + on FUNCTAB and SYMTAB. + +2012-09-23 Arnold D. Robbins + + * gawk.texi (Nextfile Statement): Document that it's now part of POSIX + and update the title. + (Delete): Document that `delete array' is now part of POSIX. + * awkcard.in: Adjust coloring for nextfile and delete array. + +2012-09-07 Arnold D. Robbins + + * texinfo.tex: Updated to version 2012-09-05.06. + +2012-08-27 Arnold D. Robbins + + * gawk.texi: Minor edits, fix some spelling mistakes. + +2012-08-26 Arnold D. Robbins + + * gawk.texi: More edits to chapter on arithmetic. + Primarily English changes. + +2012-08-24 Arnold D. Robbins + + * gawk.texi: Emphasize more that floating point behavior is + not a language issue. Add a pointer to POSIX bc. + Move arithmetic chapter to later in the book, before chapter + on dynamic extensions. + +2012-08-17 Arnold D. Robbins + + * texinfo.tex: Update infrastructure to Automake 1.12.3. + +2012-08-14 Arnold D. Robbins + + * gawk.texi: Fixed a math bug in the chapter on multiple + precision floating point. Thanks to John Haque. + +2012-08-12 Arnold D. Robbins + + * gawk.texi: Merged discussion of numbers from Appendix C into + the chapter on arbitrary precision arithmetic. Did some surgery + on that chapter to organize it a little better. + +2012-08-10 Arnold D. Robbins + + * awkcard.in, gawk.1, gawk.texi: Updated. Mostly for new API stuff + but also some other things. + * gawk.texi (Derived Files): New node. + +2012-08-01 Arnold D. Robbins + + * Makefile.am (install-data-hook): Install a dgawk.1 link to the + man page also. Remove it on uninstall. + +2012-07-29 Andrew J. Schorr + + * gawk.texi: Document that RT is set by getline. + +2012-07-04 Arnold D. Robbins + + * gawk.texi, gawk.1, awkcard.in: Document that and(), or(), and + xor() can all take any number of arguments, with a minimum of two. + +2012-06-10 Andrew J. Schorr + + * gawk.texi: Rename gettimeofday function to getlocaltime, since + the new time extension will provide gettimeofday. + +2012-05-24 Andrew J. Schorr + + * gawk.texi, gawk.1: Replace references to dlload with dl_load. + But much more work needs to be done on the docs. + +2012-05-19 Andrew J. Schorr + + * gawk.texi, gawk.1: Document new -i option, and describe new default + .awk suffix behavior. + +2012-04-01 Andrew J. Schorr + + * gawk.texi: Replace documentation of removed functions update_ERRNO and + update_ERRNO_saved with descriptions new functions update_ERRNO_int, + update_ERRNO_string and unset_ERRNO. And fix a couple of examples + to use update_ERRNO_int instead of update_ERRNO. + +2012-03-26 Arnold D. Robbins + + * gawk.texi: Minor style edits. + +2012-03-21 Andrew J. Schorr + + * gawk.texi, gawk.1: Document new @load keyword. + +2012-03-20 Andrew J. Schorr + + * gawk.texi, gawk.1: Add AWKLIBPATH. + +2012-08-12 Arnold D. Robbins + + * gawk.texi (Ranges and Locales): Clarified ranges and + locales. Again. + +2012-08-05 Arnold D. Robbins + + * gawk.texi (PC Binary Installation): Document Eli Zaretskii's + site. + (Records): Update case of RS = "a". It only prints 1 if in + POSIX mode. Thanks to Jeroen Schot who first reported it. + +2012-07-20 Arnold D. Robbins + + * gawk.texi (Ranges and Locales): Clarified ranges and + locales. + +2012-07-13 Arnold D. Robbins + + * gawk.texi (Getline Notes): Discuss side effects in + argument expression. + +2012-06-29 Arnold D. Robbins + + * gawk.texi, awkcard.in: Latest mawk understands /dev/stdin. + +2012-04-27 Arnold D. Robbins + + * gawk.texi: Add that -b affects output. + +2012-04-27 Arnold D. Robbins + + * texinfo.tex: Update to latest from automake 1.12. + +2012-04-09 Arnold D. Robbins + + * texinfo.tex: Update to latest from automake 1.11.4. + +2012-04-11 John Haque + + * gawk.texi: Change RNDMODE to ROUNDMODE. + * gawk.1, awkcard.in: Ditto. + +2012-04-11 Arnold D. Robbins + + * gawk.texi: Change --arbitrary-precision to --bignum. + * gawk.1: Ditto. + * awkcard.in: Add --bignum, RNDMODE, PREC. + +2012-04-08 Arnold D. Robbins + + * gawk.texi: Editing on new chapter on arbitrary precision numbers. + +2012-03-31 John Haque + + * gawk.texi, gawk.1: Add text on support for arbitrary precision + numbers. + +2012-02-06 Arnold D. Robbins + + * gawk.texi, gawk.1: And some minor edits thereunto. + +2012-02-03 John Haque + + * gawk.texi, gawk.1: Add text on read timeout. + +2011-12-28 Arnold D. Robbins + + * awkcard.in, gawk.1: Minor edits after merge of executables. + +2011-12-21 John Haque + + * gawk.texi: Updated sections on profiling and debugging + after merging the exes. Document new options --debug and + --load, and add a sub-section on loading extension library. + * gawk.1: Same. + * awkcard.in: Same. + +2012-03-28 Arnold D. Robbins + + * 4.0.1: Release tar ball made. + +2012-02-10 Arnold D. Robbins + + * gawk.texi, awkcard.in: Bump patch level. + * texinfo.tex: Updated from Texinfo CVS. + +2011-12-06 Arnold D. Robbins + + * gawk.texi: Various typo fixes from mailing list. + +2011-11-10 Arnold D. Robbins + + * gawk.1: Fix some .BR to be .B. + +2011-11-08 Arnold D. Robbins + + * gawk.texi: Further improvement in the discussion of sorted array + traversal. Some sections reordered and text edited to suit. + +2011-11-06 Arnold D. Robbins + + * gawk.texi: Try to improve discussion of sorted array + traversal. + +2011-09-24 Arnold D. Robbins + + * gawk.1: Fix some spelling errors. Thanks to + Jeroen Schot . + * gawk.texi: Some minor fixes. + +2011-08-31 John Haque + + * gawk.texi: Updated gawk dynamic extension doc. + +2011-07-28 Arnold D. Robbins + + * gawk.texi (Gory Details): Restore text on historical behavior + etc. and add explanation on gawk 4.0.x. + +2011-07-17 Arnold D. Robbins + + * gawk.texi: Add reference in node Expressions to node Precedence, + based on suggestion from Dan Jacobson dated 4 Jun 2001. + +2011-07-17 Paul Eggert + + * gawk.texi: Warn up-front (indirectly) that plain gawk is not + compatible with SVR4 awk and with POSIX awk. Describe how + gawk differs from the GNU standard in its interpretation of + POSIXLY_CORRECT. (From mail dated 15 May 2001). + +2011-06-24 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add ChangeLog.0. + * 4.0.0: Remake the tar ball. + +2011-06-23 Arnold D. Robbins + + * ChangeLog.0: Rotated ChangeLog into this file. + * ChangeLog: Created anew for gawk 4.0.0 and on. + * 4.0.0: Release tar ball made. diff -urN gawk-5.0.0/doc/gawk.1 gawk-5.0.1/doc/gawk.1 --- gawk-5.0.0/doc/gawk.1 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/doc/gawk.1 2019-05-22 21:00:52.000000000 +0300 @@ -13,7 +13,7 @@ . if \w'\(rq' .ds rq "\(rq . \} .\} -.TH GAWK 1 "Feb 19 2019" "Free Software Foundation" "Utility Commands" +.TH GAWK 1 "May 22 2019" "Free Software Foundation" "Utility Commands" .SH NAME gawk \- pattern scanning and processing language .SH SYNOPSIS @@ -354,6 +354,11 @@ .BR invalid , only warnings about things that are actually invalid are issued. (This is not fully implemented yet.) +With an optional argument of +.BR no-ext , +warnings about +.I gawk +extensions are disabled. .TP .PD 0 .B \-M diff -urN gawk-5.0.0/doc/gawktexi.in gawk-5.0.1/doc/gawktexi.in --- gawk-5.0.0/doc/gawktexi.in 2019-04-12 12:27:34.000000000 +0300 +++ gawk-5.0.1/doc/gawktexi.in 2019-06-18 20:10:11.000000000 +0300 @@ -54,9 +54,9 @@ @c applies to and all the info about who's publishing this edition @c These apply across the board. -@set UPDATE-MONTH March, 2019 +@set UPDATE-MONTH June, 2019 @set VERSION 5.0 -@set PATCHLEVEL 0 +@set PATCHLEVEL 1 @set GAWKINETTITLE TCP/IP Internetworking with @command{gawk} @ifset FOR_PRINT @@ -3748,7 +3748,7 @@ program consists of the concatenation of the contents of each specified @var{source-file}. -Files named with @option{-i} are treated as if they had @samp{@@namespace "awk"} +Files named with @option{-f} are treated as if they had @samp{@@namespace "awk"} at their beginning. @xref{Changing The Namespace}, for more information. @item -v @var{var}=@var{val} @@ -4025,6 +4025,8 @@ development of cleaner @command{awk} programs. With an optional argument of @samp{invalid}, only warnings about things that are actually invalid are issued. (This is not fully implemented yet.) +With an optional argument of @samp{no-ext}, warnings about @command{gawk} +extensions are disabled. Some warnings are only printed once, even if the dubious constructs they warn about occur multiple times in your @command{awk} program. Thus, @@ -4181,10 +4183,13 @@ @cindex @option{-S} option @cindex @option{--sandbox} option @cindex sandbox mode +@cindex @code{ARGV} array Disable the @code{system()} function, input redirections with @code{getline}, output redirections with @code{print} and @code{printf}, and dynamic extensions. +Also, disallow adding filenames to @code{ARGV} that were +not there when @command{gawk} started running. This is particularly useful when you want to run @command{awk} scripts from questionable sources and need to make sure the scripts can't access your system (other than the specified input @value{DF}). @@ -4250,9 +4255,12 @@ options may also be used multiple times on the command line. @cindex @option{-e} option -If no @option{-f} or @option{-e} option is specified, then @command{gawk} -uses the first nonoption command-line argument as the text of the -program source code. +If no @option{-f} option (or @option{-e} option for @command{gawk}) +is specified, then @command{awk} uses the first nonoption command-line +argument as the text of the program source code. Arguments on +the command line that follow the program text are entered into the +@code{ARGV} array; @command{awk} does @emph{not} continue to parse the +command line looking for options. @cindex @env{POSIXLY_CORRECT} environment variable @cindex lint checking, @env{POSIXLY_CORRECT} environment variable @@ -4945,6 +4953,19 @@ array back-end implementation type for arrays. This interface is subject to change and may not be stable. +When not in POSIX or compatibility mode, if you set @code{LINENO} to a +numeric value using the @option{-v} option, @command{gawk} adds that value +to the real line number for use in error messages. This is intended for +use within Bash shell scripts, such that the error message will reflect +the line number in the shell script, instead of in the @command{awk} +program. To demonstrate: + +@example +$ @kbd{gawk -v LINENO=10 'BEGIN @{ print("hi" @}'} +@error{} gawk: cmd. line:11: BEGIN @{ print("hi" @} +@error{} gawk: cmd. line:11: ^ syntax error +@end example + @end ignore @node Invoking Summary @@ -5499,6 +5520,11 @@ (These are Texinfo formatting control sequences. The @samp{+} is explained further on in this list.) +The left or opening parenthesis is always a metacharacter; to match +one literally, precede it with a backslash. However, the right or +closing parenthesis is only special when paired with a left parenthesis; +an unpaired right parenthesis is (silently) treated as a regular character. + @cindex @code{*} (asterisk), @code{*} operator, as regexp operator @cindex asterisk (@code{*}), @code{*} operator, as regexp operator @item @code{*} @@ -6199,17 +6225,14 @@ @c @cindex ISO 8859-1 @c @cindex ISO Latin-1 -In multibyte locales, -the equivalences between upper- -and lowercase characters are tested based on the wide-character values of -the locale's character set. -Otherwise, the characters are tested based -on the ISO-8859-1 (ISO Latin-1) -character set. This character set is a superset of the traditional 128 -ASCII characters, which also provides a number of characters suitable -for use with European languages.@footnote{If you don't understand this, -don't worry about it; it just means that @command{gawk} does -the right thing.} +In multibyte locales, the equivalences between upper- and lowercase +characters are tested based on the wide-character values of the locale's +character set. Prior to @value{PVERSION} 5.0, single-byte characters were +tested based on the ISO-8859-1 (ISO Latin-1) character set. However, as +of @value{PVERSION} 5.0, single-byte characters are also tested based on +the values of the locale's character set.@footnote{If you don't understand +this, don't worry about it; it just means that @command{gawk} does the +right thing.} The value of @code{IGNORECASE} has no effect if @command{gawk} is in compatibility mode (@pxref{Options}). @@ -7890,10 +7913,20 @@ string @emph{and} @code{FS} is set to a single character, the newline character @emph{always} acts as a field separator. This is in addition to whatever field separations result from -@code{FS}.@footnote{When @code{FS} is the null string (@code{""}) +@code{FS}. + +@quotation NOTE +When @code{FS} is the null string (@code{""}) or a regexp, this special feature of @code{RS} does not apply. It does apply to the default field separator of a single space: -@samp{FS = @w{" "}}.} +@samp{FS = @w{" "}}. + +Note that language in the POSIX specification implies that +this special feature should apply when @code{FS} is a regexp. +However, Unix @command{awk} has never behaved that way, nor has +@command{gawk}. This is essentially a bug in POSIX. +@c Noted as of 4/2019; working to get the standard fixed. +@end quotation The original motivation for this special exception was probably to provide useful behavior in the default case (i.e., @code{FS} is equal @@ -8086,31 +8119,24 @@ finished processing the current record, but want to do some special processing on the next record @emph{right now}. For example: +@c 6/2019: Thanks to Mark Krauze for suggested +@c improvements (the inner while loop). @example # Remove text between /* and */, inclusive @{ - if ((i = index($0, "/*")) != 0) @{ - out = substr($0, 1, i - 1) # leading part of the string - rest = substr($0, i + 2) # ... */ ... - j = index(rest, "*/") # is */ in trailing part? - if (j > 0) @{ - rest = substr(rest, j + 2) # remove comment - @} else @{ - while (j == 0) @{ - # get more text - if (getline <= 0) @{ - print("unexpected EOF or error:", ERRNO) > "/dev/stderr" - exit - @} - # build up the line using string concatenation - rest = rest $0 - j = index(rest, "*/") # is */ in trailing part? - if (j != 0) @{ - rest = substr(rest, j + 2) - break - @} + while ((start = index($0, "/*")) != 0) @{ + out = substr($0, 1, start - 1) # leading part of the string + rest = substr($0, start + 2) # ... */ ... + while ((end = index(rest, "*/")) == 0) @{ # is */ in trailing part? + # get more text + if (getline <= 0) @{ + print("unexpected EOF or error:", ERRNO) > "/dev/stderr" + exit @} + # build up the line using string concatenation + rest = rest $0 @} + rest = substr(rest, end + 2) # remove comment # build up the output line using string concatenation $0 = out rest @} @@ -8118,16 +8144,6 @@ @} @end example -@c 8/2014: Here is some sample input: -@ignore -mon/*comment*/key -rab/*commen -t*/bit -horse /*comment*/more text -part 1 /*comment*/part 2 /*comment*/part 3 -no comment -@end ignore - This @command{awk} program deletes C-style comments (@samp{/* @dots{} */}) from the input. It uses a number of features we haven't covered yet, including @@ -8139,8 +8155,29 @@ By replacing the @samp{print $0} with other statements, you could perform more complicated processing on the decommented input, such as searching for matches of a regular -expression. (This program has a subtle problem---it does not work if one -comment ends and another begins on the same line.) +expression. + +Here is some sample input: + +@example +mon/*comment*/key +rab/*commen +t*/bit +horse /*comment*/more text +part 1 /*comment*/part 2 /*comment*/part 3 +no comment +@end example + +When run, the output is: + +@example +$ @kbd{awk -f strip_comments.awk example_text} +@print{} monkey +@print{} rabbit +@print{} horse more text +@print{} part 1 part 2 part 3 +@print{} no comment +@end example This form of the @code{getline} command sets @code{NF}, @code{NR}, @code{FNR}, @code{RT}, and the value of @code{$0}. @@ -17251,7 +17288,7 @@ considerably better than @code{rand()}, to produce random numbers. From @value{PVERSION} 4.1.4, courtesy of Nelson H.F.@: Beebe, @command{gawk} uses the Bayes-Durham shuffle buffer algorithm which considerably extends -the period the random number generator, and eliminates short-range and +the period of the random number generator, and eliminates short-range and long-range correlations that might exist in the original generator.} Often random integers are needed instead. Following is a user-defined function @@ -19502,17 +19539,20 @@ array or not. @quotation NOTE -Using @code{isarray()} at the global level to test -variables makes no sense. Because you are the one writing the program, you -are supposed to know if your variables are arrays or not. And in fact, -due to the way @command{gawk} works, if you pass the name of a variable -that has not been previously used to @code{isarray()}, @command{gawk} -ends up turning it into a scalar. +While you can use @code{isarray()} at the global level to test variables, +doing so makes no sense. Because @emph{you} are the one writing the +program, @emph{you} are supposed to know if your variables are arrays +or not. @end quotation The @code{typeof()} function is general; it allows you to determine -if a variable or function parameter is a scalar, an array, or a strongly -typed regexp. +if a variable or function parameter is a scalar (number, string, +or strongly typed regexp) or an array. + +Normally, passing a variable that has never been used to a built-in +function causes it to become a scalar variable (unassigned). +However, @code{isarray()} and @code{typeof()} are different; they do +not change their arguments from untyped to unassigned. @node I18N Functions @subsection String-Translation Functions @@ -28398,7 +28438,7 @@ @quotation NOTE Once upon a time, the @option{--pretty-print} option would also run -your program. This is is no longer the case. +your program. This is no longer the case. @end quotation @cindex profiling, pretty-printing, difference with @@ -30723,6 +30763,18 @@ @item The @command{gawk} debugger only accepts source code supplied with the @option{-f} option. +If you have a shell script that provides an @command{awk} program as a command +line parameter, and you need to use the debugger, you can write the script +to a temporary file, and use that as the program, with the @option{-f} option. This +might look like this: + +@example +cat << \EOF > /tmp/script.$$ +@dots{} @ii{Your program here} +EOF +gawk -D -f /tmp/script.$$ +rm /tmp/script.$$ +@end example @end itemize @ignore @@ -38893,7 +38945,7 @@ @item @cindex Gordon, Assaf -Assaf Gordon contributed the code to implement the +Assaf Gordon contributed the initial code to implement the @option{--sandbox} option. @item @@ -39470,8 +39522,12 @@ @cindex @option{--disable-extensions} configuration option @cindex configuration option, @code{--disable-extensions} @item --disable-extensions -Disable configuring and building the sample extensions in the -@file{extension} directory. This is useful for cross-compiling. +Disable the extension mechanism within @command{gawk}. With this +option, it is not possible to use dynamic extensions. This also +disables configuring and building the sample extensions in the +@file{extension} directory. + +This option may be useful for cross-compiling. The default action is to dynamically check if the extensions can be configured and compiled. @@ -40542,6 +40598,13 @@ @command{mawk}. For more information, see @uref{http://repo.hu/projects/libmawk/}. +@cindex source code, embeddable @command{awk} interpreter +@cindex Neacsu, Mircea +@item Mircea Neacsu's Embeddable @command{awk} +Mircea Neacsu has created an embeddable @command{awk} +interpreter, based on BWK awk. It's available +at @uref{https://github.com/neacsum/awk}. + @item @code{pawk} @cindex source code, @command{pawk} (Python version) @cindex @code{pawk}, @command{awk}-like facilities for Python diff -urN gawk-5.0.0/doc/it/ChangeLog gawk-5.0.1/doc/it/ChangeLog --- gawk-5.0.0/doc/it/ChangeLog 2019-04-12 12:21:07.000000000 +0300 +++ gawk-5.0.1/doc/it/ChangeLog 2019-06-18 20:53:00.000000000 +0300 @@ -1,3 +1,23 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + +2019-06-06 Antonio Giovanni Colombo + + * gawktexi.in: Updated. + +2019-05-12 Antonio Giovanni Colombo + + * gawktexi.in: Updated. + +2019-04-27 Antonio Giovanni Colombo + + * gawktexi.in: Updated. + +2019-04-18 Antonio Giovanni Colombo + + * gawktexi.in: Updated. + 2019-04-12 Arnold D. Robbins * 5.0.0: Release tar ball made. diff -urN gawk-5.0.0/doc/it/gawktexi.in gawk-5.0.1/doc/it/gawktexi.in --- gawk-5.0.0/doc/it/gawktexi.in 2019-04-12 12:01:30.000000000 +0300 +++ gawk-5.0.1/doc/it/gawktexi.in 2019-06-06 20:24:36.000000000 +0300 @@ -56,9 +56,9 @@ @c applies to and all the info about who's publishing this edition @c These apply across the board. -@set UPDATE-MONTH Marzo 2019 +@set UPDATE-MONTH Maggio 2019 @set VERSION 5.0 -@set PATCHLEVEL 0 +@set PATCHLEVEL 1 @c added Italian hyphenation stuff @hyphenation{ven-go-no o-met-te-re o-met-ten-do} @@ -3260,7 +3260,7 @@ @end example @noindent -In una riga di comando in ambiente MS-Windows lo script di una riga +In una riga di comando in ambiente MS-Windows lo @dfn{script} di una riga mostrato sopra pu@`o essere eseguito immettendo: @example @@ -3295,7 +3295,7 @@ La stringa cos@`{@dotless{i}} prodotta va racchiusa fra doppi apici. @end enumerate -Quindi, per racchiudere fra doppi apici lo script di +Quindi, per racchiudere fra doppi apici lo @dfn{script} di una riga @samp{@{ print "\"" $0 "\"" @}} del precedente esempio, si dovrebbe fare cos@`{@dotless{i}}: @@ -4094,7 +4094,7 @@ @`e formato dalla concatenazione del contenuto di ogni @var{file-sorgente} specificato. -I file specificati dall'opzione @option{-i} sono considerati +I file specificati dall'opzione @option{-f} sono considerati appartenere allo spazio-dei-nomi @samp{"awk" (@@namespace "awk")} a inizio programma. @xref{Cambiare lo spazio-dei-nomi}, per ulteriori informazioni. @@ -4382,12 +4382,14 @@ viene indicato il @var{valore}. Alcuni avvertimenti vengono emessi quando @command{gawk} legge preliminarmente il programma. Altri vengono emessi quando il programma viene eseguito. -Con l'argomento opzionale @samp{fatal}, gli avvertimenti @dfn{lint} sono considerati -come errori gravi. Potrebbe essere una misura drastica, per@`o il suo uso -incoragger@`a certamente lo sviluppo di programmi @command{awk} pi@`u corretti. -Con l'argomento opzionale @samp{invalid}, vengono emessi solo gli avvertimenti -relativi a quello che @`e effettivamente non valido (funzionalit@`a non ancora -completamente implementata). +Con l'argomento opzionale @samp{fatal}, gli avvertimenti @dfn{lint} sono +considerati come errori gravi. Potrebbe essere una misura drastica, per@`o il +suo uso incoragger@`a certamente lo sviluppo di programmi @command{awk} pi@`u +corretti. Con l'argomento opzionale @samp{invalid}, vengono emessi solo gli +avvertimenti relativi a quello che @`e effettivamente non valido (funzionalit@`a +non ancora completamente implementata). Con un argomento opzionale di +@samp{no-ext}, gli avvertimenti relativi alle estensioni @command{gawk} sono +disabilitati. Alcuni avvertimenti vengono stampati solo una volta, anche se i costrutti dubbi per i quali vengono emessi avvisi ricorrono diverse volte nel programma @@ -4555,10 +4557,14 @@ @cindex @option{--sandbox}, opzione @cindex sandbox, modalit@`a @cindex prova, modalit@`a di +@cindex @code{ARGV}, vettore +@cindex vettore @code{ARGV} Disabilita la funzione @code{system()}, la ridirezione dell'input con @code{getline}, la ridirezione dell'output con @code{print} e @code{printf}, e le estensioni dinamiche. +Inoltre, non consente di aggiungere nomi di file ad @code{ARGV} che +non siano gi@`a presenti all'inizio dell'esecuzione di @command{gawk}. @`E particolarmente utile quando si vogliono eseguire @dfn{script} @command{awk} da sorgenti dubbie e si vuol essere ricuri che gli @dfn{script} non abbiano accesso al sistema (oltre al @value{DF} di input specificato). @@ -4626,9 +4632,13 @@ si possono usare pi@`u volte nella riga di comando. @cindex @option{-e}, opzione -Se non sono specificate opzioni @option{-f} o @option{-e}, @command{gawk} -usa il primo argomento che non @`e un'opzione come testo del -codice sorgente del programma. +Se non sono specificate le opzioni @option{-f} o @option{-e}, +@command{gawk} usa il primo argomento diverso da un'opzione, +presente sulla riga di comando, come testo del codice sorgente +del programma. Gli argomenti sulla riga di comando che si trovano +dopo il testo del programma sono inseriti nel vettore @code{ARGV}; +@command{awk} @emph{non} continua ad analizzare la riga di comando +alla ricerca di ulteriori opzioni. @cindex @env{POSIXLY_CORRECT}, variabile d'ambiente @cindex @dfn{lint}, controlli, variabile d'ambiente @env{POSIXLY_CORRECT} @@ -5388,6 +5398,22 @@ Per quest'interfaccia sono possibili variazioni in futuro, e quindi i valori restituiti possono non rimanere fissi. +Se non si @`e in modalit@`a POSIX o in modalit@`a compatibile, impostando +code{LINENO} a un valore numerico, per mezzo dell'opzione @option{-v}, +@command{gawk} aggiunge il valore specificato al numero di riga del +programma, nei messaggi di errore. Ci@`o serve qualora il programma +sia contenuto in uno @dfn{script} Bash, +per far s@`{@dotless{i}} che il messaggio di errore +rispecchi il numero di riga corrispondente nello @dfn{script} Bash, invece +del numero di riga del programma @command{gawk} vero e proprio. +Si veda l'esempio seguente: + +@example +$ @kbd{gawk -v LINENO=10 'BEGIN @{ print("hi" @}'} +@error{} gawk: riga com.:11: BEGIN @{ print("hi" @} +@error{} gawk: riga com.:11: ^ syntax error +@end example + @end ignore @node Sommario invocazione @@ -6711,15 +6737,14 @@ @c @cindex ISO 8859-1 @c @cindex ISO Latin-1 -In localizzazioni multibyte, -le equivalenze tra caratteri maiuscoli +In localizzazioni multibyte, le equivalenze tra caratteri maiuscoli e minuscoli sono controllate usando i valori in formato esteso dell'insieme di caratteri della localizzazione. -Per il resto, i caratteri sono controllati usando l'insieme di caratteri -ISO-8859-1 (ISO Latin-1). -Questo insieme di caratteri @`e un'estensione del tradizionale insieme con 128 -caratteri ASCII, che include anche molti caratteri adatti -per le lingue europee.@footnote{Se questo sembra oscuro, +Prima della @value{PVERSION} 5.0, i caratteri che usano un solo byte +erano confrontati usando l'insieme di caratteri ISO-8859-1 (ISO Latin-1). +Tuttavia, a partire dalla @value{PVERSION} 5.0, i caratteri che usano +un solo byte sono confrontati usando anche i valori dell'insieme di +caratteri della localizzazione.@footnote{Se questo sembra oscuro, non c'@`e ragione di preoccuparsi; significa solo che @command{gawk} fa la cosa giusta.} @@ -7934,7 +7959,7 @@ @value{DARKCORNER} Questo comportamento pu@`o essere di difficile identificazione. Il seguente esempio illustra la differenza -tra i due metodi. Lo script +tra i due metodi. Lo @dfn{script} @example sed 1q /etc/passwd | awk '@{ FS = ":" ; print $1 @}' @@ -8533,11 +8558,23 @@ @emph{e} @code{FS} @`e impostato a un solo carattere, il carattere di ritorno a capo agisce @emph{sempre} come separatore di campo. Questo in aggiunta a tutte le separazioni di campo che risultano da -@code{FS}.@footnote{Quando @code{FS} @`e la stringa nulla (@code{""}), o +@code{FS}. + +@quotation NOTA +Quando @code{FS} @`e la stringa nulla (@code{""}), o un'espressione regolare, questa particolare funzionalit@`a di @code{RS} non -viene applicata; si applica al separatore di campo quando @`e costituito da un -solo spazio: -@samp{FS = @w{" "}}.} +viene applicata; si applica al separatore di campo di default, +che @`e costituito da un solo spazio: +@samp{FS = @w{" "}}. + +Si noti che la formulazione della specifica POSIX implica che +questa particolare funzionalit@`a dovrebbe valere anche quando +@code{FS} sia un'espressione regolare. +Tuttavia, Unix @command{awk} non si @`e mai comportato in questo +modo, e neppure @command{gawk}. Questo @`e fondamentalmente +un errore nella specifica POSIX. +@c Noted as of 4/2019; working to get the standard fixed. +@end quotation La motivazione originale per questa particolare eccezione probabilmente era quella di prevedere un comportamento che fosse utile nel caso di default @@ -9803,7 +9840,7 @@ Come detto sopra, un'istruzione @code{print} contiene una lista di elementi separati da virgole. Nell'output, gli elementi sono solitamente separati da spazi singoli. Non @`e detto tuttavia che debba sempre essere cos@`{@dotless{i}}; uno -spazio singolo @`e semplicemnte il valore di default. Qualsiasi stringa di +spazio singolo @`e semplicemente il valore di default. Qualsiasi stringa di caratteri pu@`o essere usata come @dfn{separatore di campo in output} impostando la variabile predefinita @code{OFS}. Il valore iniziale di questa variabile @`e @@ -10595,7 +10632,7 @@ Il prossimo esempio usa la ridirezione per inviare un messaggio alla mailing list @code{bug-sistema}. Questo pu@`o tornare utile se si hanno -problemi con uno script @command{awk} eseguito periodicamente per la +problemi con uno @dfn{script} @command{awk} eseguito periodicamente per la manutenzione del sistema: @example @@ -14904,7 +14941,7 @@ @c @cindex action, separating statements @cindex azioni -Un programma o script @command{awk} consiste in una serie di +Un programma o @dfn{script} @command{awk} consiste in una serie di regole e definizioni di funzione frammiste tra loro. (Le funzioni sono descritte pi@`u avanti. @xref{Funzioni definite dall'utente}.) Una regola contiene un criterio di ricerca e un'azione; l'uno o l'altra @@ -20630,7 +20667,8 @@ @end example Ecco la versione @command{gawk} del programma di utilit@`a @command{date}. -@`E all'interno di uno script di shell per gestire l'opzione @option{-u}, +@`E all'interno di uno @dfn{script} di shell +per gestire l'opzione @option{-u}, che richiede che @command{date} sia eseguito come se il fuso orario fosse impostato a UTC: @@ -21122,17 +21160,21 @@ @`e un vettore oppure no. @quotation NOTA -Usare @code{isarray()} a livello globale per controllare le variabili -non ha alcun senso. Si suppone infatti che chi scrive il programma -sappia se una variabile @`e un vettore oppure no. E in -effetti, per come funziona @command{gawk}, se si passa una variabile -che non sia stata usata in precedenza a @code{isarray()}, @command{gawk} -la crea al volo, assegnandole il tipo scalare. +Anche se si pu@`o usare @code{isarray()} a livello globale per controllare le +variabili il farlo non ha alcun senso. Si suppone infatti che chi scrive il +programma sappia se una variabile @`e un vettore oppure no. @end quotation La funzione @code{typeof()} @`e generale; consente di determinare -se una variabile o un parametro di funzione @`e uno scalare, un vettore, -o una @dfn{regexp} fortemente tipizzata. +se una variabile o un parametro di funzione @`e uno scalare, (numero, +stringa o @dfn{regexp} fortemente tipizzata), oppure un vettore. + +Normalmente, se si passa una variabile che non @`e stata mai usata +a una funzione predefinita, la variabile stessa viene creata come +variabile scalare di tipo non ancora assegnato (unassigned). +Tuttavia, se si chiama @code{isarray()} e @code{typeof()} queste +funzioni non cambiano gli argomenti che vengono passati loro da +non ancora tipizzati (untyped) a non ancora assegnati (unassigned). @node Funzioni di internazionalizzazione @subsection Funzioni per tradurre stringhe @@ -21592,7 +21634,7 @@ @} @end example -L'esecuzione di questo script produce quanto segue, perch@'e la stessa +L'esecuzione di questo @dfn{script} produce quanto segue, perch@'e la stessa variabile @code{i} @`e usata sia nelle funzioni @code{pippo()} e @code{pluto()} sia a livello della regola @code{BEGIN}: @@ -21636,7 +21678,7 @@ @} @end example -L'esecuzione della versione corretta dello script produce il seguente +L'esecuzione della versione corretta dello @dfn{script} produce il seguente output: @example @@ -23572,7 +23614,7 @@ $ @kbd{flac-edit -song="Whoope! That's Great" file.flac} @end example -@command{flac-edit} genera in output il seguente script, da passare alla +@command{flac-edit} genera in output il seguente @dfn{script}, da passare alla shell (@file{/bin/sh}) per essere eseguito: @example @@ -23582,7 +23624,7 @@ chmod -w file.flac @end example -Si noti la necessit@`a di gestire gli apici nello script da passare alla shell. +Si noti la necessit@`a di gestire gli apici nello @dfn{script} da passare alla shell. La funzione @code{shell_quote()} li prepara nel formato richiesto. @code{SINGLE} @`e la stringa di un solo @@ -27637,7 +27679,7 @@ @cindex etichette per lettera@comma{} stampare Ecco un programma ``del mondo-reale''@footnote{``Del mondo-reale'' @`e definito come ``un programma effettivamente usato per realizzare qualcosa''.}. -Questo script legge elenchi di nomi e indirizzi, e genera etichette per +Questo @dfn{script} legge elenchi di nomi e indirizzi, e genera etichette per lettera. Ogni pagina di etichette contiene 20 etichette, su due file da 10 etichette l'una. Gli indirizzi non possono contenere pi@`u di cinque righe di dati. Ogni indirizzo @`e separato dal successivo da una riga bianca. @@ -27844,7 +27886,7 @@ distinzione maiuscolo/minuscolo. Il secondo problema si pu@`o risolvere usando @code{gsub()} per rimuovere i caratteri di interpunzione. Infine, per risolvere il terzo problema si pu@`o usare il programma di utilit@`a -@command{sort} per elaborare l'output dello script @command{awk}. Ecco la +@command{sort} per elaborare l'output dello @dfn{script} @command{awk}. Ecco la nuova versione del programma: @cindex @code{wordfreq.awk}, programma @@ -28497,7 +28539,7 @@ per il programma originale dell'utente e per il programma espanso. Questo modo di procedere risolve potenziali problemi che potrebbero presentarsi se si usassero invece dei file temporanei, -ma rende lo script un po' pi@`u complicato. +ma rende lo @dfn{script} un po' pi@`u complicato. La parte iniziale del programma attiva il tracciamento della shell se il primo argomento @`e @samp{debug}. @@ -28653,7 +28695,7 @@ Il programma @command{awk} che elabora le direttive @code{@@include} @`e immagazzinato nella variabile di shell @code{progr_che_espande}. Ci@`o serve -a mantenere leggibile lo script. Questo programma @command{awk} legge +a mantenere leggibile lo @dfn{script}. Questo programma @command{awk} legge tutto il programma dell'utente, una riga per volta, usando @code{getline} (@pxref{Getline}). I @value{FNS} in input e le istruzioni @code{@@include} sono gestiti usando una pila. Man mano che viene trovata una @code{@@include}, @@ -28860,7 +28902,7 @@ @item Invece di salvare il programma espanso in un file temporaneo, assegnarlo a una variabile di shell evita alcuni potenziali problemi di sicurezza. -Ci@`o per@`o ha lo svantaggio di basare lo script su funzionalit@`a del +Ci@`o per@`o ha lo svantaggio di basare lo @dfn{script} su funzionalit@`a del linguaggio @command{sh}, il che rende pi@`u difficile la comprensione a chi non abbia familiarit@`a con il comando @command{sh}. @@ -28877,7 +28919,7 @@ funzionalit@`a a un programma; queste possono spesso essere aggiunte in cima.@footnote{@command{gawk} @`e in grado di elaborare istruzioni @code{@@include} al suo stesso interno, per -permettere l'uso di programmi @command{awk} come script Web CGI.} +permettere l'uso di programmi @command{awk} come @dfn{script} Web CGI.} @node Programma anagram @@ -29069,7 +29111,7 @@ Ho un paio di copie cartacee di "Effective Awk Programming" da anni, ed ora sto leggendo di nuovo la versione Kindle di "The GNU Awk User's Guide". Quando sono arrivato alla sezione 13.3.11, ho riformattato e -brevemente commentato lo script di firma di Davide Brin per comprenderne il funzionamento. +brevemente commentato lo @dfn{script} di firma di Davide Brin per comprenderne il funzionamento. Mi pare che questo possa avere un valore pedagogico come esempio (sia pure imperfetto) del significato di spazi bianchi e commenti, e un @@ -30911,7 +30953,7 @@ p.es., @samp{kpilot} o @samp{gawk}, che identifica l'applicazione. Un'applicazione completa pu@`o avere pi@`u componenti: programmi scritti -in C o C++, come pure script di @command{sh} o di @command{awk}. +in C o C++, come pure @dfn{script} di @command{sh} o di @command{awk}. Tutti i componenti usano lo stesso dominio di testo. Per andare sul concreto, si supponga di scrivere un'applicazione @@ -33308,6 +33350,19 @@ @item Il debugger di @command{gawk} accetta solo codice sorgente fornito con l'opzione @option{-f}. +Se si sta usando uno @dfn{script} di shell che contiene un programma +@command{awk} che fa parte della riga di comando, e si deve usare il debugge, +si pu@`o scrivere lo @dfn{script} in un file temporaneo, e quindi usarlo come +programma, tramite l'opzione @option{-f}. Ci@`o si potrebbe fare nel modo +seguente: + +@example +cat << \EOF > /tmp/script.$$ +@dots{} @ii{Qui c'@`e il programma da eseguire} +EOF +gawk -D -f /tmp/script.$$ +rm /tmp/script.$$ +@end example @end itemize @ignore @@ -37769,7 +37824,7 @@ di come utilizzare l'API. Questa parte del codice sorgente sar@`a descritta un po' per volta. -Ecco, per iniziare, lo script @command{gawk} che richiama l'estensione di test: +Ecco, per iniziare, lo @dfn{script} @command{gawk} che richiama l'estensione di test: @example @@load "testext" @@ -38140,7 +38195,7 @@ @end ignore @end example -Ecco uno script di esempio che carica l'estensione +Ecco uno @dfn{script} di esempio che carica l'estensione e quindi stampa il valore di tutti gli elementi del vettore, invocando nuovamente se stessa nel caso che un particolare elemento sia a sua volta un vettore: @@ -38162,7 +38217,7 @@ @} @end example -Ecco il risultato dell'esecuzione dello script: +Ecco il risultato dell'esecuzione dello @dfn{script}: @example $ @kbd{AWKLIBPATH=$PWD gawk -f subarray.awk} @@ -40374,7 +40429,7 @@ manutentore di @command{gawk}, per metterlo al corrente. @item -Si scriva uno script di shell che funga da interfaccia per +Si scriva uno @dfn{script} di shell che funga da interfaccia per l'estensione ``inplace'', vista @iftex nella @@ -41425,7 +41480,7 @@ variabili globali. @item -L'opzione @option{--exec}, da usare in script CGI [Common Gateway Interface]. +L'opzione @option{--exec}, da usare in @dfn{script} CGI [Common Gateway Interface]. @item L'opzione della riga di comando @option{--gen-po} e l'uso di un trattino @@ -41621,7 +41676,7 @@ @item Tutte le opzioni in notazione lunga hanno acquisito opzioni corrispondenti -in notazione breve, per poter essere usate negli script di shell @samp{#!}. +in notazione breve, per poter essere usate negli @dfn{script} di shell @samp{#!}. @end itemize @item @@ -42297,7 +42352,7 @@ @item @cindex Gordon, Assaf -Assaf Gordon ha scritto il codice per implementare +Assaf Gordon ha contribuito il codice iniziale per implementare l'opzione @option{--sandbox}. @item @@ -42703,7 +42758,7 @@ @item Makefile.am @itemx */Makefile.am File usati dal software GNU Automake per generare -il file @file{Makefile.in} usato da Autoconf e dallo script +il file @file{Makefile.in} usato da Autoconf e dallo @dfn{script} @command{configure}. @item Makefile.in @@ -42822,7 +42877,7 @@ @file{gawk-@value{VERSION}.@value{PATCHLEVEL}}. Come per la maggior parte dei programmi GNU, occorre configurare @command{gawk} per il sistema in uso, eseguendo il programma @command{configure}. Questo programma @`e -uno script della shell Bourne, che @`e stato generato automaticamente +uno @dfn{script} della shell Bourne, che @`e stato generato automaticamente usando il comando GNU Autoconf. @ifnotinfo (Il software Autoconf @`e @@ -42958,9 +43013,14 @@ @cindex @option{--disable-extensions}, opzione di configurazione @cindex opzione di configurazione @code{--disable-extensions} @item --disable-extensions -Richiesta di non configurare e generare le estensioni di esempio nella -directory @file{extension}. Questo @`e utile quando si genera -@command{gawk} per essere eseguito su un'altra piattaforma. +Disabilita il meccanismo delle estensioni all'interno di +@command{gawk}. Specificando quest'opzione non @`e possibile +utilizzare estensioni dinamiche. Inoltre si disabilita la +configurazione e la generazione delle estensioni di esempio nella +directory @file{extension}. + +Questo @`e utile quando si genera @command{gawk} per essere eseguito +su un'altra piattaforma. L'azione di default @`e di controllare dinamicamente se le estensioni possono essere configurate e compilate. @@ -43673,7 +43733,7 @@ dovrebbe ancora essere reso disponibile in una libreria di aiuto. L'albero del codice sorgente dovrebbe essere scompattato in un sottosistema contenitore di file, e non nel normale @dfn{filesystem} VMS. -Occorre accertarsi che i due script, @file{configure} e +Occorre accertarsi che i due @dfn{script}, @file{configure} e @file{vms/posix-cc.sh}, siano eseguibile; si usi @samp{chmod +x} per farlo, se necessario. Poi vanno eseguiti i seguenti due comandi: @@ -43684,7 +43744,7 @@ @noindent Il primo comando costruisce i file @file{config.h} e @file{Makefile}, -a partire da dei modelli, usando uno script per fare s@`{@dotless{i}} che il +a partire da dei modelli, usando uno @dfn{script} per fare s@`{@dotless{i}} che il compilatore C soddisfi le aspettative di @command{configure}. Il secondo comando compila e collega @command{gawk} chiamando direttamente il compilatore C; gli eventuali messaggi di @command{make} che dicono di non @@ -44135,6 +44195,14 @@ @command{mawk}. Per ulteriori informazioni, si veda @uref{http://repo.hu/projects/libmawk/}. +@cindex codice sorgente, interpretatore @command{awk} incorporabile +@cindex Neacsu, Mircea +@item @command{awk} incorporabile di Mircea Neacsu +@item incorporabile, @command{awk}, di Mircea Neacsu +Mircea Neacsu ha creato un interpretatore @command{awk} +incorporabile, basato su BWK @command{awk}. @`E disponibile +nel sito @uref{https://github.com/neacsum/awk}. + @item @code{pawk} @cindex codice sorgente, @command{pawk} (versione Python) @cindex sorgente, codice, @command{pawk} (versione Python) @@ -45732,7 +45800,7 @@ stile complessivo, che @`e abbastanza simile a quello del linguaggio C. La C shell non @`e compatibile all'indietro con la Bourne Shell, e per questo motivo un'attenzione speciale @`e necessaria se si convertono alla C shell -degli script scritti per altre shell Unix, in particolare per ci@`o che +degli @dfn{script} scritti per altre shell Unix, in particolare per ci@`o che concerne la gestione delle variabili di shell. Si veda anche ``Bourne Shell''. diff -urN gawk-5.0.0/doc/Makefile.am gawk-5.0.1/doc/Makefile.am --- gawk-5.0.0/doc/Makefile.am 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/doc/Makefile.am 2019-04-21 18:03:57.000000000 +0300 @@ -28,7 +28,8 @@ man_MANS = gawk.1 -EXTRA_DIST = ChangeLog ChangeLog.0 README.card ad.block setter.outline \ +EXTRA_DIST = ChangeLog ChangeLog.0 ChangeLog.1 \ + README.card ad.block setter.outline \ awkcard.in awkforai.txt texinfo.tex cardfonts \ api-figure1.eps api-figure1.fig api-figure1.pdf \ api-figure1.png api-figure1.txt \ diff -urN gawk-5.0.0/doc/Makefile.in gawk-5.0.1/doc/Makefile.in --- gawk-5.0.0/doc/Makefile.in 2019-04-12 12:03:05.000000000 +0300 +++ gawk-5.0.1/doc/Makefile.in 2019-06-18 20:09:32.000000000 +0300 @@ -357,7 +357,8 @@ top_srcdir = @top_srcdir@ info_TEXINFOS = gawk.texi gawkinet.texi gawkworkflow.texi man_MANS = gawk.1 -EXTRA_DIST = ChangeLog ChangeLog.0 README.card ad.block setter.outline \ +EXTRA_DIST = ChangeLog ChangeLog.0 ChangeLog.1 \ + README.card ad.block setter.outline \ awkcard.in awkforai.txt texinfo.tex cardfonts \ api-figure1.eps api-figure1.fig api-figure1.pdf \ api-figure1.png api-figure1.txt \ diff -urN gawk-5.0.0/eval.c gawk-5.0.1/eval.c --- gawk-5.0.0/eval.c 2019-04-07 21:53:42.000000000 +0300 +++ gawk-5.0.1/eval.c 2019-05-22 21:00:52.000000000 +0300 @@ -706,7 +706,7 @@ { static bool warned = false; - if ((do_lint || do_traditional) && ! warned) { + if ((do_lint_extensions || do_traditional) && ! warned) { warned = true; lintwarn(_("`IGNORECASE' is a gawk extension")); } @@ -727,7 +727,7 @@ char *p; NODE *v = fixtype(BINMODE_node->var_value); - if ((do_lint || do_traditional) && ! warned) { + if ((do_lint_extensions || do_traditional) && ! warned) { warned = true; lintwarn(_("`BINMODE' is a gawk extension")); } @@ -964,6 +964,8 @@ if (lintlen > 0) { if (lintlen == 7 && strncmp(lintval, "invalid", 7) == 0) do_flags |= DO_LINT_INVALID; + else if (lintlen == 6 && strncmp(lintval, "no-ext", 6) == 0) + do_flags &= ~DO_LINT_EXTENSIONS; else { do_flags |= DO_LINT_ALL; if (lintlen == 5 && strncmp(lintval, "fatal", 5) == 0) diff -urN gawk-5.0.0/ext.c gawk-5.0.1/ext.c --- gawk-5.0.0/ext.c 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/ext.c 2019-05-05 20:35:20.000000000 +0300 @@ -229,7 +229,7 @@ void load_ext(const char *lib_name) { - fatal(_("dynamic loading of library not supported")); + fatal(_("dynamic loading of libraries is not supported")); } #endif diff -urN gawk-5.0.0/extension/build-aux/ChangeLog gawk-5.0.1/extension/build-aux/ChangeLog --- gawk-5.0.0/extension/build-aux/ChangeLog 2019-04-12 12:24:53.000000000 +0300 +++ gawk-5.0.1/extension/build-aux/ChangeLog 2019-06-18 20:53:35.000000000 +0300 @@ -1,3 +1,11 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + +2019-04-23 Arnold D. Robbins + + * config.sub: Updated from GNULIB. + 2019-04-12 Arnold D. Robbins * 5.0.0: Release tar ball made. diff -urN gawk-5.0.0/extension/build-aux/config.sub gawk-5.0.1/extension/build-aux/config.sub --- gawk-5.0.0/extension/build-aux/config.sub 2019-04-10 21:29:07.000000000 +0300 +++ gawk-5.0.1/extension/build-aux/config.sub 2019-04-23 11:05:32.000000000 +0300 @@ -1247,7 +1247,8 @@ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ | vax \ | visium \ - | w65 | wasm32 \ + | w65 \ + | wasm32 | wasm64 \ | we32k \ | x86 | x86_64 | xc16x | xgate | xps100 \ | xstormy16 | xtensa* \ @@ -1367,7 +1368,7 @@ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ | skyos* | haiku* | rdos* | toppers* | drops* | es* \ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ - | midnightbsd* | amdhsa* | unleashed* | emscripten*) + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi*) # Remember, each alternative MUST END IN *, to match a version number. ;; qnx*) diff -urN gawk-5.0.0/extension/ChangeLog gawk-5.0.1/extension/ChangeLog --- gawk-5.0.0/extension/ChangeLog 2019-04-12 12:23:41.000000000 +0300 +++ gawk-5.0.1/extension/ChangeLog 2019-06-18 20:53:28.000000000 +0300 @@ -1,3 +1,11 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + +2019-04-18 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add ChangeLog.1 to the list. Ooops. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/extension/ChangeLog.1 gawk-5.0.1/extension/ChangeLog.1 --- gawk-5.0.0/extension/ChangeLog.1 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/extension/ChangeLog.1 2019-04-12 12:45:07.000000000 +0300 @@ -0,0 +1,1696 @@ +2019-03-17 Arnold D. Robbins + + * readdir.c: Change to use stat when dir info is 'u'. Bump version. + * readdir_test.c: Ditto. + * readdir.3am: Document same. + +2019-02-15 Arnold D. Robbins + + * inplace.c (do_inplace_end): Fix error message to use inplace::end. + Thanks to Jean-Philippe Guerard + for the report. + +2018-12-18 Arnold D. Robbins + + * Makefile.am (distclean-local): Remove .deps directory. + +2018-09-16 Arnold D. Robbins + + * Makefile.in, aclocal.m4, configure: Regenerated, using + Automake 1.16.1. + +2018-04-08 Arnold D. Robbins + + * .gitignore: Ignore libtool itself. + +2018-03-13 Arnold D. Robbins + + * filefuncs.3am, filefuncs.c, fnmatch.3am, fnmatch.c, + fork.3am, fork.c, inplace.3am, inplace.c, intdiv.c, + ordchr.3am, ordchr.c, readdir.3am, readdir.c, readdir_test.c, + readfile.3am, readfile.c, revoutput.3am, revoutput.c, + revtwoway.3am, revtwoway.c, rwarray.3am, rwarray.c, + rwarray0.c, testext.c, time.3am, time.c: Update copyright year. + +2018-03-07 gettextize + + * Makefile.am (SUBDIRS): Add po. + * configure.ac (AC_CONFIG_FILES): Add po/Makefile.in. + * ABOUT-NLS: Updated. + +2018-02-25 Arnold D. Robbins + + * 4.2.1: Release tar ball made. + +2018-02-23 Arnold D. Robbins + + * configure.ac: Restore checking for PPC Macintosh before + checking for MPFR. See README_d/README.macosx for info. + +2018-02-21 Arnold D. Robbins + + * configure.ac: Remove checking for PPC Macintosh before + checking for MPFR. Installing a newer compiler on that + system allows things to work. + +2018-02-17 Michal Jaegermann . + + * filefuncs.3am, filefuncs.c, fnmatch.3am, revoutput.3am, + revtwoway.3am: Spelling and typo fixes. + +2018-02-14 Arnold D. Robbins + + * configure.ac: Add stuff for finding gettext. Helps in + finding MPFR on some systems. + +2018-02-11 Andrew J. Schorr + + * intdiv.c (do_intdiv): Print a warning about loss of precision if + MPFR arguments are received when not compiled with MPFR support. + +2018-02-11 Arnold D. Robbins + + * filefuncs.3am: Fix some typos. + +2018-02-08 Andrew J. Schorr + + * configure.ac (pkgextensiondir): This must be set to + '${libdir}/gawk'${EXTENSIONDIR} to match gawk's value. + The previous value of '${pkglibdir}'${EXTENSIONDIR} was incorrect, + because it was putting the extensions in the gawk-extensions + libdir subdirectory, instead of the gawk subdirectory. + +2018-02-02 Arnold D. Robbins + + * filefuncs.3am, fnmatch.3am, fork.3am, inplace.3am, + ordchr.3am, readdir.3am, readfile.3am, revoutput.3am, + revtwoway.3am, rwarray.3am, time.3am: Add vim modeline at the + bottom to set the file type for syntax coloring. + +2018-02-02 Arnold D. Robbins + + * filefuncs.c (FTS_SKIP): New constant. + (process): Additional arg skipset. When true (based on if + FTS_SKIP was passed) and at level 0, use fts_set to set + FTS_SKIP on the directory. + +2018-01-11 Arnold D. Robbins + + * compile, config.guess, config.rpath, config.sub, + depcomp: Updated from GNULIB. + +2018-01-11 Arnold D. Robbins + + * filefuncs.c, fnmatch.c, fork.c, inplace.c, intdiv.c, ordchr.c, + readdir.c, readdir_test.c, readfile.c, revoutput.c, revtwoway.c, + rwarray.c, rwarray0.c, testext.c, time.c: Remove incorrect '*' + on declarations of ext_id in sample extension code. Thanks to + Panos Papadopoulos for the report. + +2017-12-29 Arnold D. Robbins + + * configure.ac (fmod): Put AC_SEARCH_LIBS before the call + to AC_CHECK_FUNCS and put fmod back into that list. Finally + causes config.h to have the correct check for HAVE_FMOD. + Thanks again to Michal Jaegermann . + +2017-12-28 Arnold D. Robbins + + More configuration fixes, mainly for Fedora. Thanks to + Michal Jaegermann for the reports + and for validating. + + * configure.ac (AC_HEADER_MAJOR): Comment out, no longer works. + (sys/sysmacros.h, sys/mkdev.h): Check for header existence. + (fmod): Check with AC_SEARCH_LIBs instead of AC_CHECK_FUNCS. + * filefuncs.c: Rework header inclusion checks and order so + that we get the `major' macro without warnings on Fedora. + * fnmatch.c: Ditto. + +2017-12-26 Arnold D. Robbins + + * gawkfts.c (fts_safe_changedir): Add check for path not null + before trying to open it. Thanks to Michal Jaegermann + for the report. + +2017-12-24 Michal Jaegermann + + * intdiv.c: Fix compilation for MPFR 2.4.1. + +2017-12-20 Arnold D. Robbins + + * configure.ac: Add support for the --enable-versioned-dir option + in the main configure program. + +2017-12-19 Arnold D. Robbins + + * configure.ac: Add --disable-mpfr to be in sync with main + configure.ac and revise checking for MPFR appropriately. + * ext_custom.h: Use bug reporting address instead of my + personal address for reports of changes to this file. + +2017-10-28 Arnold D. Robbins + + * rwarray.c (do_writea): Fix description in comment. + (write_array): Free the flattened array if writing an element fails. + +2017-10-19 Arnold D. Robbins + + * 4.2.0: Release tar ball made. + +2017-09-19 Arnold D. Robbins + + * rwarray.c: Increase the version. + +2017-09-17 Arnold D. Robbins + + * filefuncs.c: Move include of to after include + of to (try to) avoid a Fedora compilation + warning. Update copyright year. + +2017-09-13 Arnold D. Robbins + + * rwarray.c: Update copyright year. + +2017-09-12 Arnold D. Robbins + + * rwarray.c: Add support for writing/reading undefined values. + +2017-08-30 Arnold D. Robbins + + * fnmatch.c: Use the right autoconf goop to get the major + and minor macros out of . Thanks to + David Kaspar for the report. + +2017-08-21 Arnold D. Robbins + + * Makefile.am (ntdiv_la_LIBADD): Add -lm for Solaris systems, + per report from Nelson H.F. Beebe. + +2017-08-21 Daniel Richard G. + + * configure: Regenerated after update to m4/arch.m4. + +2017-08-19 Eli Zaretskii + + * testext.c (test_get_file): Don't remove outfile from the Gawk + script, as that fails on MS-Windows. + +2017-08-14 Arnold D. Robbins + + * configure.ac: Bump associated gawk version. + +2017-08-11 Andrew J. Schorr + + * intdiv.c: No need to include explicitly, since + does this for us. + +2017-08-10 Andrew J. Schorr + + * intdiv.c (init_intdiv): Remove function, since dl_load_func now + calls check_mpfr_version automatically. + (init_func): Initialize to NULL instead of init_intdiv. + +2017-08-04 Arnold D. Robbins + + * Makefile.am: Update copyright year. + +2017-07-20 Arnold D. Robbins + + * inplace.c: Move functions into "inplace" namespace and simplify + the names. Update all error messages accordingly. + +2017-07-13 Arnold D. Robbins + + * testext.c (init_test_ext): Add installation of a variable and a + function in a namespace, and test using them. + (do_test_function): New function. + (ns_test_func): New function entry for it. + +2017-06-27 Arnold D. Robbins + + * Makfile.am (intdiv_la_LIBADD): Add LIBMPFR for Cygwin. + Thanks to Eli Zaretskii for the tip that this is necessary. + +2017-06-22 Andrew J. Schorr + + * rwarray.c (read_value): Use malloc instead of calloc, since + we immediately overwrite the buffer with data from the file. + * rwarray0.c (read_value): Ditto. + +2017-06-22 Andrew J. Schorr + + * readfile.c (read_file_to_buffer): Use emalloc instead of ezalloc, + since there's no need to initialize the memory to zero before + overwriting it with the file's contents. + +2017-06-21 Andrew J. Schorr + + * filefuncs.c (do_fts): Replace emalloc+memset with ezalloc. + * readfile.c (read_file_to_buffer): Ditto. + * rwarray.c (read_value): Replace gawk_malloc+memset with gawk_calloc. + * gawkfts.c (fts_open): Replace malloc+memset with calloc. + * rwarray0.c (read_value): Ditto. + +2017-04-16 Arnold D. Robbins + + * intdiv.c (func_table): Function is now named intdiv. + +2017-04-14 Andrew J. Schorr + + * intdiv.c (do_intdiv): On division by zero, return -1 and issue a + warning instead of throwing a fatal error. + +2017-04-13 Andrew J. Schorr + + * intdiv.c (do_intdiv): On a division by zero fatal error, there's + no need to clear the numerator and denominator and add a fake return. + +2017-04-13 Arnold D. Robbins + + * configure.ac: Alphabetize function list in AC_CHECK_FUNCS. + * intdiv.c: Add descriptive comments to some functions. + (do_intdiv): Make division by zero fatal in MPFR case. + +2017-04-03 Arnold D. Robbins + + * inplace.c (inplace_end): Correct the function name in the + wrong argument count error message. Thanks to Dan Neilsen + for the report. + +2017-03-27 Arnold D. Robbins + + * readdir.c: Minor edits. + * readdir_test.c: Same minor edits, update copyright year, + bump version of extension in case this ever becomes the real one. + +2017-03-23 Arnold D. Robbins + + * readdir.c (dir_get_record): Add additional parameter to make types + match and remove compiler warning. + * readfile.c (readfile_get_record): Ditto. + * revtwoway.c (rev2way_get_record): Ditto. + +2017-03-21 Andrew J. Schorr + + * readdir_test.c (open_directory_t): Replace field_width array + with new awk_fieldwidth_info_t structure. Wrap it in a union so + we can allocate the proper size. + (dir_get_record): Update field_width type from + 'const awk_input_field_info_t **' to 'const awk_fieldwidth_info_t **'. + Update new fieldwidth parsing info appropriately. + (dir_take_control_of): Populate new fieldwidth parsing structure + with initial values. + +2017-03-09 Andrew J. Schorr + + * readdir_test.c (open_directory_t): Update field_width type from an + array of integers to an array of awk_input_field_info_t. + (dir_get_record): Ditto. + (dir_take_control_of): Ditto. + +2017-03-07 Andrew J. Schorr + + * Makefile.am (pkgextension_LTLIBRARIES): Remove testext.la, since it + does not make sense to install this library. + (noinst_LTLIBRARIES): New variable containing list of libraries to + build for testing purposes only. These libraries will not be installed. + Initially, it contains only testext.la. + (testext_la_LDFLAGS): Add "-rpath /foo" to convince automake/libtool + to build a shared version of this library. Since it is not being + installed, automake cannot use the final destination directory to + determine -rpath by itself. The value doesn't matter. + +2017-03-06 Andrew J. Schorr + + * readdir_test.c: Test extension using new get_record field_width + parsing feature. + * Makefile.am (noinst_LTLIBRARIES): Add readdir_test.la. + (readdir_test_la_*): Configure building of new extension library. + +2017-01-21 Eli Zaretskii + + * testext.c (getuid) [__MINGW32__]: New function, mirrors what + pc/getid.c does in Gawk. + * rwarray.c [__MINGW32__]: Include stdint.h, otherwise using + uint32_t causes compilation errors. + * inplace.c (_XOPEN_SOURCE): Define to 1, not to nothing. MinGW + system headers assume that if this is defined, it must have a + numeric value. + +2017-01-06 Andrew J. Schorr + + * intdiv.c: New extension to demonstrate how to implement intdiv + using the new extended-precision math API. + * Makefile.am (pkgextension_LTLIBRARIES): Add intdiv.la. + (intdiv_la_SOURCES, intdiv_la_LDFLAGS, intdiv_la_LIBADD): Add support + for new intdiv library. + * configure.ac (AC_CHECK_FUNCS): Check for fmod needed by intdiv. + (GNUPG_CHECK_MPFR): Add check for MPFR support. + +2016-12-22 Arnold D. Robbins + + * testext.c (valrep2str): Update for new API types. + +2016-12-16 Arnold D. Robbins + + * filefuncs.c: Update func_table again. + +2016-12-14 Arnold D. Robbins + + * filefuncs.c: Update do_xxx to match new API. Update func_table. + * fnmatch.c: Ditto. + * fork.c: Ditto. + * inplace.c: Ditto. + * ordchr.c: Ditto. + * readdir.c: Ditto. + * readfile.c: Ditto. + * revoutput.c: Ditto. + * revtwoway.c: Ditto. + * rwarray.c: Ditto. + * rwarray0.c: Ditto. + * testext.c: Ditto. + * time.c: Ditto. + +2016-12-12 Arnold D. Robbins + + * filefuncs.c (func_table): Adjust ordering of min and max + for stat. + +2016-12-06 Arnold D. Robbins + + Add minimum required and maximum expected number of arguments + to the API. + + * filefuncs.c: Update with max expected value. Remove lint + checks since that's now done by gawk. + * fnmatch.c: Ditto. + * fork.c: Ditto. + * inplace.c: Ditto. + * ordchr.c: Ditto. + * readdir.c: Ditto. + * readfile.c: Ditto. + * rwarray.c: Ditto. + * rwarray0.c: Ditto. + * testext.c: Ditto. + * time.c: Ditto. + +2016-12-05 Andrew J. Schorr + + * rwarray.c: Adjust to read and write strnum values. + (write_value): When writing a string value, code should use htonl. + There are now 3 string types: string, strnum, and regex. + (read_value): Support 3 string types: string, strnum, and regex. + +2016-11-30 Arnold D. Robbins + + * rwarray.c: Restore read comparion of major and minor versions + to use !=. + +2016-11-29 Arnold D. Robbins + + * rwarray.c: Adjust to read and write regexes also. + +2016-10-23 Arnold D. Robbins + + * General: Remove trailing whitespace from all relevant files. + +2016-08-25 Arnold D. Robbins + + * 4.1.4: Release tar ball made. + +2016-07-01 Arnold D. Robbins + + * inplace.c (do_inplace_begin): Flush stdout at the start to + try to avoid flushing problems on some obscure BSD systems. + * revtwoway.c (gawk_getdtablesize): Renamed from getdtablesize. + (getdtablesize): New macro. Avoids problems on FreeBSD 10 + where configure didn't work correctly. Thanks to Nelson Beebe. + Update copyright year. + +2016-05-26 Andrew J. Schorr + + * filefuncs.c (func_table): Update "stat" to indicate that the + max # of expected args is 3, not 2. + +2016-01-27 Arnold D. Robbins + + * filefuncs.c (do_statvfs): Define out f_fsid on AIX. + +2016-01-20 Arnold D. Robbins + + * filefuncs.c: Add statvfs function. Undocumented for now. + * configure.ac: Add appropriate stuff to check for statvfs. + * configure, configh.in: Regenerated. + +2015-12-16 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add ext_custom.h so that it will be + included in the distribution tarballs. + +2015-12-16 Arnold D. Robbins + + Make change of 2015-10-26 actually work. + + * ext_custom.h: New file. Move _DEFAULT_SOURCE dance to here. + * configure.ac: Add call to AH_BOTTOM. + * configure: Regenerate. + +2015-11-15 Ville Skytta + + * fnmatch.3am, fork.3am, inplace.3am, ordchr.3am, readdir.3am, + readfile.3am, revoutput.3am, revtwoway.3am, rwarray.3am, + time.3am: Fix troff markup to avoid warnings. + +2015-10-26 Arnold D. Robbins + + * config.h.in: Turn on _DEFAULT_SOURCE for very recent + GLIBC. Thanks to Michal Jaegermann + for the report. + +2015-08-28 Daniel Richard G. + + * rwarray.c: Removed z/OS-specific code that is no longer needed due + to improvements in Gawk's general Autotools support. + * Makefile.am, configure.ac: Make use of the AC_ZOS_USS macro so + that this sub-project can support that platform as well. + * gawkfts.h, readdir.c: Use a proper platform cpp symbol to guard + z/OS-specific code, and eliminate the z/OS-specific use of "long" + inode numbers as "long long" works perfectly well there. + +2015-08-02 Arnold D. Robbins + + * revoutput.c (init_revoutput): Don't install REVOUT if it's + there already. Makes the extension usable with -v. + * revoutput.3am: Add a BUGS section. + +2015-06-17 Andrew J. Schorr + + * inplace.3am (BUGS): Document that ACLs are not preserved, and + a temporary file may be left behind if the program is killed by + a signal. + +2015-06-17 Andrew J. Schorr + + * inplace.3am: Document new inplace variable to control whether + inplace editing is active. + +2015-05-19 Arnold D. Robbins + + * 4.1.3: Release tar ball made. + +2015-04-29 Arnold D. Robbins + + * 4.1.2: Release tar ball made. + +2015-04-16 Arnold D. Robbins + + * configure.ac: Updated by autoupdate. + +2015-04-08 Arnold D. Robbins + + * Makefile.am, filefuncs.c, inplace.3am, inplace.c: + Update copyright years. + +2015-03-27 Arnold D. Robbins + + * testext.c: Move test for deferred variables here. + +2015-03-18 Arnold D. Robbins + + * configure: Updated to libtool 2.4.6. + +2015-03-18 Arnold D. Robbins + + * inplace.3am (SYNOPSIS): Updated to not show the contents + of the extension. + (BUGS): Removed. + +2015-03-17 Arnold D. Robbins + + * inplace.c (do_inplace_begin): Jump through more hoops to satisfy + a newer version of clang. + * inplace.3am (BUGS): Add new section and documentation. + +2015-02-26 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add rwarray0.c to the list. + +2015-02-11 Arnold D. Robbins + + * filefuncs.c: Punctuation fix. + +2015-01-24 Arnold D. Robbins + + Infrastructure updates. + + Automake 1.15. Libtool 2.4.5. + + * configure.ac: Remove gettext macros. + +2015-01-07 Arnold D. Robbins + + * testext.c (var_test): Adjust for PROCINFO now being there. + +2015-01-06 Andrew J. Schorr + + * testext.c (test_deferred): New function to help with testing + of deferred variable instantiation. + (do_get_file): Remove unused variable array. + (func_table): Add test_deferred. + +2015-01-05 Andrew J. Schorr + + * testext.c (test_get_file): Fix error message. + (do_get_file): Implement new function providing low-level access + to the get_file API. + (func_table): Add "get_file" -> do_get_file. + (init_testext): If TESTEXT_QUIET has been set to a numeric value, + return quietly. + +2015-01-02 Andrew J. Schorr + + * testext.c (test_get_file): The get_file hook no longer takes a + typelen argument. + +2015-01-02 Andrew J. Schorr + + Remove the select extension, since it will be part of gawkextlib. + * select.c, siglist.h: Deleted. + * Makefile.am (pkgextension_LTLIBRARIES): Remove select.la. + (select_la_SOURCES, select_la_LDFLAGS, select_la_LIBADD): Remove. + (EXTRA_DIST): Remove siglist.h. + * configure.ac (AC_CHECK_HEADERS): Remove signal.h. + (AC_CHECK_FUNCS): Remove fcntl, kill, sigaction, and sigprocmask. + +2014-12-14 Andrew J. Schorr + + Remove the errno extension, since it is now part of gawkextlib. + * errno.c, errlist.h: Deleted. + * Makefile.am (pkgextension_LTLIBRARIES): Remove errno.la. + (errno_la_SOURCES, errno_la_LDFLAGS, errno_la_LIBADD): Remove. + (EXTRA_DIST): Remove errlist.h. + +2014-12-14 Andrew J. Schorr + + * readfile.c (read_file_to_buffer): Do not waste a byte at the end of + a string. + * rwarray.c (read_value): Ditto. + * rwarray0.c (read_value): Ditto. + +2014-11-23 Arnold D. Robbins + + * inplace.c (do_inplace_begin): Jump through hoops to silence + GCC warnings about return value of chown. + +2014-11-09 Andrew J. Schorr + + * select.c (do_input_fd): New function to return the input file + descriptor associated with a file/command. + (do_output_fd): New function to return the output file descriptor + associated with a file/command. + (func_table): Add new functions "input_fd" and "output_fd". + * testext.c (test_get_file): Do not use __func__, since it is a C99 + feature, and gawk does not assume C99. + +2014-11-06 Andrew J. Schorr + + * errno.c (do_errno2name, do_name2errno): Remove unused variable 'str'. + * select.c (do_signal): Remove unused variable 'override'. + (grabfd): New helper function to map a gawk file to the appropriate + fd for use in the arguments to selectd. + (do_select): get_file has 3 new arguments and returns info about both + the input and output buf. + (do_set_non_blocking): Support changes to get_file API. + * testext.c (test_get_file): New test function to check that extension + file creation via the get_file API is working. + +2014-11-05 Andrew J. Schorr + + * select.c (set_retry): New function to set PROCINFO[, "RETRY"]. + (do_set_non_blocking): If called with a file name as opposed to a file + descriptor, call the set_retry function to configure PROCINFO to tell + io.c to retry I/O for temporary failures. + +2014-10-12 Arnold D. Robbins + + * Makefile.am (uninstall-so): Remove *.lib too, per suggestion + from Andreas Buening. + +2014-10-12 KO Myung-Hun + + Fixes for OS/2: + + * Makefile.am (uninstall-so): Remove *.dll and *.a, also. + +2014-10-08 Arnold D. Robbins + + * inplace.c (do_inplace_begin): Use a cast to void in front + of the second call to chown to avoid compiler warnings from clang. + +2014-09-29 Arnold D. Robbins + + * filefuncs.c: Minor edits to sync with documentation. + * testext.c: Add test to get PROCINFO, expected to fail. + +2014-08-12 Arnold D. Robbins + + * Makefile.am (RM): Define for makes that don't have it, + such as on OpenBSD. Thanks to Jeremie Courreges-Anglas + for the report. + +2014-06-13 Paul Gortmaker + + * Makefile.am (uninstall-so): Came across below bug while cross + compiling, and changed both install-data-hook and uninstall-so + to use $(DESTDIR) on v4.1.1 before seeing most of the fix in + gawk-4.1.1-3-g976f73ab0356; here we ensure uninstall-so also + uses the $(DESTDIR) prefix on its use of pkgextensiondir. + +2014-04-11 Arnold D. Robbins + + * Makefile.am (install-data-hook): Use $(DESTDIR) when removing + the .la files. Thanks to Lars Wendler + for the report and fix. + +2014-04-08 Arnold D. Robbins + + * 4.1.1: Release tar ball made. + +2014-04-08 Arnold D. Robbins + + * configure.ac: Bump version before release. + +2014-04-04 Arnold D. Robbins + + * time.c: Include unconditionally to get declaration + of nanosleep on Linux. Avoids a warning. Thanks to Michal + Jaegermann. + +2014-03-31 Arnold D. Robbins + + * configure.ac: Remove -Wextra to avoid killing compilations + on older versions of gcc. Thanks to Antonio Diaz Diaz for + the report. + +2014-03-28 Arnold D. Robbins + + * configure.ac: Add AC_HEADER_TIME and AC_HEADER_DIRENT, and + rearrange order of macros some. May help on older systems. + +2014-03-27 Arnold D. Robbins + + * readfile.c: Add an input parser that works off of + PROCINFO["readfile"]. + * readfile.3am: Document same. + +2014-03-23 Arnold D. Robbins + + * gawkfts.c (MAXPATHLEN): Add a default definition. Thanks to + Antonio Diaz Dian and Nelson H.F. Beebe. + * readdir.c (PATH_MAX): Add a default definition. Thanks to + Nelson H.F. Beebe. + +2014-03-08 Andrew J. Schorr + + * filefuncs.c (read_symlink, do_fts): Replace free with gawk_free. + * inplace.c (at_exit, do_inplace_end): Ditto. + * readdir.c (dir_close): Ditto. + * readfile.c (do_readfile): Ditto. + * revtwoway.c (close_two_proc_data): Ditto. + * rwarray.c (read_elem): Replace realloc with gawk_realloc. + (read_value): Replace malloc and free with gawk_malloc and gawk_free. + * testext.c (try_modify_environ): Replace free with gawk_free. + +2014-02-12 John E. Malmberg + + * time.c: Better hack for nanosleep bug based on feedback from HP. + +2013-12-29 John E. Malmberg + + * filefuncs.c: Fix compile on VMS. + * time.c: Fix compile on VMS. + +2013-12-29 Arnold D. Robbins + + * gawkfts.c: Wrap include of in HAVE_SYS_PARAM_H, + as I should have done to start with. For VMS. + +2013-12-29 John E. Malmberg + + * gawkdirfd.h: Adjust include for VMS. + * filefuncs.c: Make it compile on VMS. + * fnmatch.c: Make it compile on VMS. + +2013-12-21 Mike Frysinger + + * configure.ac: Remove MirBSD and OS/390 hack to create + do-nothing Makefile. Should be handled by configure in the + parent directory. + +2013-12-21 Arnold D. Robbins + + * configure, aclocal.m4: Updated to automake 1.13.4 and + libtool 2.4.2.418. + +2013-11-28 Arnold D. Robbins + + * Makefile.am (uninstall-so, uninstall-recursive): Remove the + .so files. Keeps make distcheck happy. + +2013-11-17 Dmitry V. Levin + + * Makefile.am (dist_man_MANS): Add inplace.3am. + +2013-10-23 Michael Haubenwallner + + Fix portability for AIX. + + * inplace.c (_XOPEN_SOURCE): Define when not defined yet. + (_XOPEN_SOURCE_EXTENDED): Ditto. Needs to define a number. + +2013-08-22 Arnold D. Robbins + + Clean up some warnings from -Wextra. + + * gawkfts.c (fts_set): Add cast to void for sp. + * inplace.c (at_exit): Add cast to void for data and exit_status. + * readdir.c (ftype): Add cast to void for dirname. + (dir_get_record): Assign NULL to *rt_start. + * revtwoway.c (rev2way_get_record): Add cast to void for errcode. + (rev2way_fwrite): Add cast to void for fp. + (rev2way_take_control_of): Add cast to void for name. + * testext.c (test_array_param, test_scalar, test_scalar_reserved, + test_indirect_vars): Add cast to void for nargs. + +2013-08-20 Arnold D. Robbins + + * gawkdirfd.h: Include ../nonposix.h to get FAKE_FD_VALUE. + +2013-08-06 Arnold D. Robbins + + * filefuncs.c: Change _WIN32 to __MINGW32__ globally, per + Eli Zaretskii. + +2013-08-02 Arnold D. Robbins + + * filefuncs.c (do_fts): Add a version for _WIN32 that prints a + "not supported" fatal message. This is slightly better than the + "fts not found" which is otherwise produced. + +2013-07-24 Arnold D. Robbins + + * gawkdirfd.h (FAKE_FD_VALUE): Move definition up in the file to give + clean compile on MinGW. + +2013-07-07 Andrew J. Schorr + + * configure.ac (AC_CHECK_FUNCS): Check for fcntl. + * select.c (set_non_blocking): Check that fcntl and O_NONBLOCK are + available. + +2013-07-07 Andrew J. Schorr + + * select.c (signal_handler): On platforms lacking sigaction, reset + the signal handler each time a signal is trapped to protect in case + the system resets it to default. + +2013-07-05 Andrew J. Schorr + + * select.c (signal_result): New function to set result string from + signal function and detect when we need to roll back. + (do_signal): Now takes an optional 3rd override argument. Instead + of returning -1 or 0, we now return information about the previously + installed signal handler: default, ignore, trap, or unknown. An + empty string is returned on error. If it is an unknown handler, + and override is not non-zero, we roll back the handler and return "". + +2013-07-05 Andrew J. Schorr + + * select.c (set_non_blocking): Do not attempt F_SETFL if F_GETFL fails. + (do_set_non_blocking): Add support for case when called with a single + "" argument. + +2013-07-05 Andrew J. Schorr + + * select.c (do_signal): If sigaction is unavailable, fall back to + signal and hope that it does the right thing. + +2013-07-05 Andrew J. Schorr + + * configure.ac (AC_CHECK_FUNCS): Add kill and sigprocmask. + * select.c (get_signal_number): Change error messages since now may + be called by "kill" as well as "select_signal". + (do_signal): Add a lint warning if there are more than 2 args. + (do_kill): Add new function to send a signal. + (do_select): Support platforms where sigprocmask is not available. + There will be a race condition on such platforms, but that is not + easily avoided. + +2013-07-02 Andrew J. Schorr + + * select.c (do_select): Now that the API flatten_array call has been + patched to ensure that the index values are strings, we can remove + the code to check for the AWK_NUMBER case. + +2013-07-02 Andrew J. Schorr + + * select.c (do_select): Do not treat a numeric command value as a + file descriptor unless the command type is empty. + +2013-07-02 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add errlist.h and siglist.h. + +2013-07-02 Andrew J. Schorr + + * select.c (set_non_blocking): New helper function to call fcntl. + (do_set_non_blocking): Add support for the case where there's a single + integer fd argument. + +2013-07-01 Andrew J. Schorr + + * select.c (do_set_non_blocking): Implement new set_non_blocking + function. + (func_table): Add set_non_blocking. + +2013-07-01 Andrew J. Schorr + + * errlist.h: New file containing a list of all the errno values I could + find. + * errno.c: Implement a new errno extension providing strerror, + errno2name, and name2errno. + * Makefile.am (pkgextension_LTLIBRARIES): Add errno.la. + (errno_la_SOURCES, errno_la_LDFLAGS, errno_la_LIBADD): Build new errno + extension. + * select.c (ext_version): Fix version string. + * siglist.h: Update to newest glibc version. + +2013-07-01 Andrew J. Schorr + + * siglist.h: New file copied from glibc to provide a mapping between + signal number and name. + * select.c: Add a new "select_signal" function and provide support + for trapping signals. + (do_select): Add support for a 5th argument to contain an array + of returned signals. Improve the argument processing, and add + better warning messages. + +2013-06-30 Andrew J. Schorr + + * Makefile.am (pkgextension_LTLIBRARIES): Add select.la. + (select_la_SOURCES, select_la_LDFLAGS, select_la_LIBADD): Build new + select extension. + * configure.ac (AC_CHECK_HEADERS): Add signal.h. + (AC_CHECK_FUNCS): Add sigaction. + * select.c: Implement the new select extension. + +2013-06-10 Arnold D. Robbins + + * configure.ac (AC_HEADER_MAJOR): New macro added. + Add check for limits.h header. + * filefuncs.c: Add the right stuff to get the major/minor macros. + * readdir.c: Add include of limits.h appropriately wrapped. + + Thanks to ICHII Takashi for the reports + and pointers. + +2013-06-01 Eli Zaretskii + + * filefuncs.c [_WIN32]: Define WIN32_LEAN_AND_MEAN before + including windows.h. + + * readdir.c [__MINGW32__]: Define WIN32_LEAN_AND_MEAN before + including windows.h. + + * filefuncs.c [HAVE_GETSYSTEMTIMEASFILETIME]: Define + WIN32_LEAN_AND_MEAN before including windows.h. + +2013-05-29 Arnold D. Robbins + + * configure.ac: Add header check. + * filefuncs.c: Include if there. + (device_blocksize): New function. + (fill_stat_array): Call it. + +2013-05-27 Arnold D. Robbins + + * configure.ac (AC_STRUCT_ST_BLKSIZE): Replaced with call to + AC_CHECK_MEMBERS. + * filefuncs.c (fill_stat_array): Change test from ifdef + HAVE_ST_BLKSIZE to HAVE_STRUCT_STAT_ST_BLKSIZE. + +2013-05-20 Arnold D. Robbins + + * gawkdirfd.h [FAKE_FD_VALUE]: Copied here from ../gawkapi.h. + +2013-05-16 Andrew J. Schorr + + * Makefile.am (install-data-hook): Remove .la files installed by + Automake. Leaves less clutter, if not (yet) less noise. + +2013-05-16 Arnold D. Robbins + + * filefuncs.c (fill_stat_array): For _WIN32 use a blocksize of + 4096 for the "blksize" element, per Eli Zaretskii. + + * configure.ac [AC_STRUCT_ST_BLKSIZE]: Add call that was missing. + ARGH!!!! + +2013-05-14 Eli Zaretskii + + * rwarray.c [__MINGW32__]: Include winsock2.h instead of + arpa/inet.h. + + * readdir.c [__MINGW32__]: Include windows.h. + Include gawkapi.h before gawkdirfd.h, since the former defines + FAKE_FD_VALUE needed by the latter. + (ftype): Accept an additional argument, the directory that is + being read. Callers changed. + [!DT_BLK]: Produce the file's type by calling 'stat' on it, if the + dirent structure doesn't provide that. + (get_inode): New function, to produce inode values on MS-Windows. + (dir_get_record): Use it. + + * inplace.c (chown, link) [__MINGW32__]: Redirect to existing + library functions. + (mkstemp) [__MINGW32__]: New function, for MinGW, which doesn't + have it in its library. + (do_inplace_end) [__MINGW32__]: Remove the old file before + renaming the new, since 'rename' on Windows cannot overwrite + existing files. + + * gawkdirfd.h (ENOTSUP): Define to ENOSYS if not already defined. + (DIR_TO_FD): If not defined yet, define to FAKE_FD_VALUE. + + * filefuncs.c (get_inode) [_WIN32]: New function, produces the + file index used on Windows as its inode. + (fill_stat_array) [_WIN32]: Use it. + +2013-05-09 Arnold D. Robbins + + * 4.1.0: Release tar ball made. + +2013-04-18 Arnold D. Robbins + + * configure.ac: Update copyright. + For z/OS: If uname output is OS/390, just blast the Makefile, + same as for MirBSD. + +2013-04-17 Corinna Vinschen + + * Makefile.am (MY_LIBS): Use $(LTLIBINTL) since we use libtool, + not LIBINTL. + +2013-04-16 Arnold D. Robbins + + * filefuncs.c, fnmatch.c, fork.c, ordchr.c, readdir.c, readfile.c, + revoutput.c, revtwoway.c, rwarray.c, rwarray0.c, stack.c, stack.h, + testext.c, time.c: Update copyright year. + + Update to automake 1.13.1: + + * configure, Makefile.in, aclocal.m4: Regenerated. + +2013-03-24 Arnold D. Robbins + + * gawkdirfd.h: Improve test for doing own dirfd function. Needed + for IRIX. + +2013-03-20 Arnold D. Robbins + + * configure.ac: Add AC_OUTPUT_COMMANDS that drops in a do-nothing + Makefile for MirBSD, since the extensions can't be built on MirBSD. + * configure: Regenerated. + * Makefile.am (check-for-shared-lib-support): Update comment some. + * gawkfts.c (MAX): Provide for systems that don't (Solaris). + +2013-03-04 Arnold D. Robbins + + * filefuncs.c (fill_stat_array): Adjust computation for block + count for WIN32 systems after consultation with Eli Zaretskii. + +2013-02-26 Arnold D. Robbins + + * Makefile.am (check-recursive, all-recursive): Make dependant upon + check-for-shared-lib-support. + (check-for-shared-lib-support): New target. If gawk doesn't have the + API built-in, don't try to build. + +2013-02-11 Arnold D. Robbins + + * fnmatch.c: Pull in versions of C routine from missing_d + if the native system doesn't provide them. + +2013-02-11 Eli Zaretskii + + * filefuncs.c (S_ISLNK, lstat, readlink, S_IRGRP, S_IWGRP, S_IXGRP, + S_IROTH, S_IWOTH, S_IXOTH, S_ISUID, S_ISGID, S_ISVTX, major, minor): + Define if needed. + (fill_stat_array, init_filefuncs, func_table): Fix for Win 32. + * time.c: Port to Win 32. + +2013-01-27 Arnold D. Robbins + + * gawkdirfd.h: New file. + * Makeile.am (filefuncs_la_SOURCES, readdir_la_SOURCES): Use it. + * gawkfts.c, readdir.c: Include gawkdirfd.h. + * configure.ac (AC_USE_SYSTEM_EXTENSIONS): Added. + (GAWK_FUNC_DIRFD, GAWK_PREREQ_DIRFD): New calls. + (.developing): Fix check. + * alocal.m4: Updated. + * configure: Regenerated. + * gawkdirfd.h: Fixed for Mac OS X also. + +2013-01-25 Arnold D. Robbins + + * gawkfts.c: Make include of be unconditional. + +2013-01-22 Arnold D. Robbins + + Improve portability. We hope. + + * gawkfts.c (S_ISREG): Define macro if not defined. + (_BSD_SOURCE): Define for use with c99 compiler driver. + * inplace.c (S_ISREG): Define macro if not defined. + (_XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED): Define for use with c99 + compiler driver. + * filefuncs.c (_BSD_SOURCE): Define for use with c99 compiler driver. + * readfile.c (_BSD_SOURCE): Define for use with c99 compiler driver. + * revtwoway.c (_BSD_SOURCE): Define for use with c99 compiler driver. + +2013-01-18 Arnold D. Robbins + + * readfile.c (do_readfile): Free `text' if read fails. Thanks to + cppcheck. + * inplace.c (do_inplace_begin): Check chown return value in an if + to shut up compiler warning. + +2013-01-15 Arnold D. Robbins + + * inplace.3am: New file. + * filefuncs.3am, fnmatch.3am, fork.3am, ordchr.3am, readdir.3am, + readfile.3am, revoutput.3am, revtwoway.3am, rwarray.3am, + time.3am: Update copyright dates, add reference to inplace(3am). + + * inplace.c (do_inplace_begin): Remove unused variable `p'. + +2013-01-10 Andrew J. Schorr + + * inplace.c (do_inplace_begin): No need to get the 2nd suffix argument, + since it is not currently used in this function. + +2013-01-08 Andrew J. Schorr + + * inplace.c: New extension to implement in-place editing. + * Makefile.am: Add inplace extension. + +2012-12-25 Arnold D. Robbins + + * filefuncs.3am, fnmatch.3am: Predefined variables are no + longer constants. + * filefuncs.c (init_filefuncs): Use sym_update() instead of + sym_constant(). + * fnmatch.c (init_fnmatch): Ditto. + * testext.c (init_testext): Ditto. + +2012-12-24 Arnold D. Robbins + + * 4.0.2: Release tar ball made. + +2012-12-19 Arnold D. Robbins + + * testext.c (test_indirect_vars): New test and awk code. + +2012-12-02 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add README.fts. + +2012-11-30 Arnold D. Robbins + + * filefuncs.c readdir.c, revoutput.c, revtwoway.c, rwarray.c, + rwarray0.c, testext.c: Use awk_true and awk_false instead of 1 and 0. + +2012-11-26 Arnold D. Robbins + + * bindarr.c, fileop.c, sparr.c: Make them compile. + * steps: Reinstated and updated. + * testsparr.awk: Add call to extension(). + +2011-05-03 John Haque + + * fileop.c, record.awk, testrecord.sh: New files. + * steps: Updated. + +2011-05-02 John Haque + + * bindarr.c, dbarray.awk, testdbarray.awk: New files. + * steps: Updated. + +2011-04-24 John Haque + + * spec_array.c, spec_array.h, sparr.c, testsparr.awk: New files. + * steps: Updated. + +2012-11-21 Arnold D. Robbins + + * filefuncs.c (do_stat): Optional third argument indicates to + use stat(2) instead of lstat(2). + * filefuncs.3am: Document same. + +2012-11-19 Arnold D. Robbins + + * readdir.c: Simplify code to always print file type and not + use stat(). + * readdir.3am: Document same. + +2012-11-16 Arnold D. Robbins + + * testext.c: In awk code, use printf(...) instead of the form + without parentheses everywhere. This makes Nelson happy. + +2012-11-14 Andrew J. Schorr + + Bug fix for filesystems without d_type in directory entry. + + * readdir.c (open_directory_t): Add more fields for path. + (ftype): Take open_directory_t argument. Build the full path + for lstat. Adjust calls. + (dir_close): Free the storage. + (dir_take_control_of): Allocate storage for the path. + +2012-11-06 Arnold D. Robbins + + * configure.ac: Add check for $srcdir/.developing as in + the main directory's configure.ac. + +2012-11-04 Arnold D. Robbins + + * rwarray.3am: Minor edits. + +2012-10-28 Arnold D. Robbins + + * Makefile.am (dist_man_MANS): Update the list. + +2012-10-26 Arnold D. Robbins + + * revtwoway.3am: Clean up example. + * revtwoway.c: Minor cleanup (add translation calls). + +2012-10-24 Arnold D. Robbins + + * revtwoway.3am: New file. + +2012-10-21 Arnold D. Robbins + + * filefuncs.c (do_stat): Always clear the array. + +2012-10-14 Arnold D. Robbins + + * readdir.c, revoutput.c, revtwoway.c: Adjust for name change + of IOBUF_PUBLIC to awk_input_buf_t. Additional sanitizing in + revoutput.c to use `revoutput' everywhere instead of `revout'. + * revoutput.3am: New file. + * filefuncs.3am, fnmatch.3am, fork.3am, ordchr.3am, readdir.3am, + readfile.3am, rwarray.3am, time.3am: Add ref to revoutput(3am). + +2012-10-11 Arnold D. Robbins + + * textext.c (try_modify_environ): Save array cookie in a separate + variable so it isn't clobbered. Thanks to Andrew Schorr, by way + of valgrind, for finding the bug. + +2012-09-14 Arnold D. Robbins + + * testext.c (try_modify_environ): New function and test. + (var_test): Modified ARGC test, added additional. + (test_scalar_reserved): New function and test. + (try_modify_environ): Don't print count of ENVIRON elements. + +2012-09-13 Dave Pitts + + * gawkfts.c: Add defines and ifdefs for z/OS. + * gawkfts.h: Add defines and ifdefs for z/OS. Fix // comments. + * readdir.c (dir_get_record): Adjust sprintf format for z/OS. + * rwarray.c: Add defines and ifdefs for z/OS. Fix // comments. + +2012-09-11 Arnold D. Robbins + + * readdir.c (do_readdir_do_ftype): Set ERRNO for bad arguments. + * readdir.3a: Document same, minor fixes. + +2012-09-07 Akim Demaille + + * extension/gawkfts.h (__THROW): Define if it is not. + Copied from getopt.h. + * extension/gawkfts.c (fts_alloc): Since FTSENT.fts_statp is + defined as a struct stat*, use that type for casts instead of + the undefined __fts_stat_t type. + +2012-09-07 Arnold D. Robbins + + * readdir.c, readdir.3am: Change argument to readdir_do_ftype() + to be a string. Update the doc accordingly. + * gawkfts.h: Add explanatory comment before defines of API + names towards the end. Thanks to Eli Zaretskii for the suggestion. + +2012-08-28 Andrew J. Schorr + + * readdir.c: Have three states, 0, 1, 2 for never, fallback, and + always. + * readdir.3am: Adjust appropriately. + +2012-08-29 Arnold D. Robbins + + Make fts work everywhere by using our own source. + + * README.fts, gawkfts.c, gawkfts.h, fts.3: New files. + * Makefile.am (filefuncs_la_SOURCES, EXTRA_DIST): Adjust. + * configure.ac: Remove check for fts.h and fts_XXX functions. + * filefuncs.c: Remove various ifdefs, change includes around. + +2012-08-28 Andrew J. Schorr + + * Makefile.am: Rename man_MANS to dist_man_MANS to include the man + pages in the distribution tarball. + +2012-08-26 Arnold D. Robbins + + * configure.ac (AC_SYS_LARGEFILE): Added. Needed for consistency + with gawk, to get the same size struct stat everywhere. + * filefuncs.c, fnmatch.c, fork.c, ordchr.c, readdir.c, readfile.c, + revoutput.c, revtwoway.c, rwarray.c, rwarray0.c, testext.c, + time.c: Move include of config.h to top (or add it!) + +2012-08-24 Arnold D. Robbins + + * filefuncs.c, fnmatch.c, fork.c, ordchr.c, readdir.c, readfile.c, + revoutput.c, revtwoway.c, rwarray.c, rwarray0.c, testext.c, + time.c: Add ext_version string. + +2012-08-23 Arnold D. Robbins + + * revoutwoway.c: New testing extension for two way processor. + * Makefile.am: Build revtwoway extension. + * readdir.c: Fix to fall back to stat if d_type is 'u' and + do_ftype is one. + * readdir.3am: Revise doc that some GNU/Linux filesystems + don't support d_type. + +2012-08-22 Arnold D. Robbins + + * revoutput.c: New testing extension for output wrapper. + * Makefile.am: Build revoutput extension. + +2012-08-08 Arnold D. Robbins + + Add fts() to filefuncs. + + * filefuncs.3am: Update doc. + * filefuncs.c: Lots of new code. + * configure.ac: Add checks for appropriate headers and functions. + * stack.h, stack.c: New files. + * Makefile.am: Update list of files. + + * readdir.c (dir_can_take_file): Use members in iobuf. + * rwarray.c (do_writea): Initialize fp to NULL. + + * filefuncs.3am, fnmatch.3am, fork.3am, ordchr.3am, readdir.3am, + readfile.3am, rwarray.3am, time.3am: Updated. + +2012-08-03 Andrew J. Schorr + + * readdir.c (dir_get_record): Fix for systems where ino_t is + 64 bit even on 32 bit systems (cygwin). + +2012-08-01 Arnold D. Robbins + + * Makefile.am (man_MANS): Add man page files so that they + get installed. + * rwarray.3am: New file. + * fnmatch.3am, fork.3am, time.3am: Revised. + +2012-07-31 Arnold D. Robbins + + * rwarray0.c: Renamed from rwarray.c. + * rwarray.c: New file using stdio instead of system calls, + works on cygwin. + +2012-07-30 Arnold D. Robbins + + * ABOUT-NLS: New file. + * Makefile.am, configure.ac: Revised for gettext. + + * fork.3am, readdir.3am, time.3am: New files. + * filefuncs.3am, fnmatch.3am, ordchr.3am, readfile.3am: Revised. + +2012-07-29 Andrew J. Schorr + + * readdir.c (dir_get_record): Adjust to new interface for RT. + +2012-07-29 Arnold D. Robbins + + * readdir.c (dir_take_control_of): Print error message and + set ERRNO if failure. Adjust count of max digits. + +2012-07-27 Andrew J. Schorr + + * Makefile.am (*_la_LIBADD): Need to link with $(LIBINTL) for + gettext to work on platforms where it is not included in libc. + +2012-07-27 Andrew J. Schorr + + * readdir.c (dir_get_record): Need to set errno to 0 before calling + readdir, since readdir sets errno only on failure, not on EOF. + +2012-07-27 Andrew J. Schorr + + * readdir.c (dir_get_record): If readdir fails, set errcode. Otherwise, + don't bother to set errcode. + +2012-07-27 Arnold D. Robbins + + * readdir.c (dir_take_control_of): Fix typo for case where + we don't have fopendir (e.g., Mac OS X 10.5). + +2012-07-26 Arnold D. Robbins + + * configure.ac: Extremely crude hack to get the value of + ENABLE_NLS so that gettext will work in extensions. + + * readdir.c (dir_get_record): Call set_RT. + (dir_can_take_file): Make parameter const. + + * testext.c (valrep2str): Add AWK_VALUE_COOKIE. + + * readdir.c: Add readdir_do_ftype function for systems without + dirent->d_type. Clean up buffer handling. + +2012-07-26 Andrew J. Schorr + + * readdir.c (dir_get_record): No need to set *errcode to 0. + (dir_take_control_of): Remove some paranoia -- no need to test for + NULL iobuf, and no need to check dir_can_take_file again. + +2012-07-25 Arnold D. Robbins + + * readdir.c: New file. + * Makefile.am (readdir): New extension. + + * time.c: Fix all calls to update_ERRNO_string. + + * filefuncs.c, fnmatch.c, fork.c, ordchr.c, readfile.c, rwarray.c, + time.c: Translate strings. + +2012-07-20 Arnold D. Robbins + + * filefuncs.3am, fnmatch.3am, ordchr.3am, readfile.3am: + new files. + +2012-07-16 Arnold D. Robbins + + * fnmatch.c: Simplify flag table. + +2012-07-15 Arnold D. Robbins + + * testext.c (test_scalar): New function and new tests. + (init_testext): Add a new variable. + +2012-07-13 Arnold D. Robbins + + * filefuncs.c (fill_stat_array): New function to do the work + for stat. + (do_stat): Call it. + +2012-07-12 Arnold D. Robbins + + * fnmatch.c: New file. + * Makefile.am: Build fnmatch extension. + * configure.ac: Look for fnmatch.h and fnmatch function. + + * fnmatch.c (init_fnmatch): Use sym_constant for FNM_NOMATCH. + * testext.c (dl_load): Use sym_constant for answer_num. + + * testext.c (init_testext): Move extra code to here. + (init_func): Change to point to init_testext. + (dl_load): Deleted. + (dl_load_func): Use the macro. + +2012-07-11 Arnold D. Robbins + + * filefuncs.c (array_set, do_stat): Use make_const_string. + * fork.c (array_set_numeric): Ditto. + * ordchr.c (do_chr): Ditto. + * readfile.c (do_readfile): Use make_null_string, make_malloced_string. + * rwarray.c (read_elem): Ditto. + * testext.c (valrep2str): Add case for AWK_SCALAR. + (test_array_elem): Duplicate strings coming from gawk before passing + them back in. + + All files: Add null 'init_func' file pointer for dl_load_func + to work. + +2012-07-09 Arnold D. Robbins + + * filefuncs.c (do_readfile): Return "" and set ERRNO on error + instead of returning -1. Per suggestion from Andrew Schorr. + +2012-07-08 Arnold D. Robbins + + * filefuncs.c (array_set): Adjust for change in set_array_element API. + * fork.c (array_set_numeric): Ditto. + * rwarray.c (read_array): Use set_array_element_by_elem. + (read_value): Add a cast to silence a compiler warning. + * testext.c (test_array_elem): Adjust for change in set_array_element + API. + (fill_in_array): Ditto. Change parameter name to new_array. + +2012-06-29 Arnold D. Robbins + + * ordchr.c (do_ord, do_chr): Improve argument checking and + lint messages. + +2012-06-25 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Remove *.awk. + * rwarray.awk: Moved to test directory. + +2012-06-24 Arnold D. Robbins + + * Makefile.am: Enable rwarray extension. + * rwarray.c: Redone to use new API. + * rwarray.awk: Revamped for new version. + +2012-06-21 Arnold D. Robbins + + * testext.c (test_array_elem): Add a subarray. + (test_array_flatten): Removed: Tests done elsewhere. + +2012-06-20 Arnold D. Robbins + + * testext.c (fill_in_array): New function. + (create_new_array): Most code moved into fill_in_array. + (test_array_param): New function. + +2012-06-19 Arnold D. Robbins + + * testext.c (dump_array_and_delete): Renamed from dump_array. + Get second parameter which is index to delete. Update awk test. + +2012-06-18 Arnold D. Robbins + + * filefuncs.c (do_chdir): Change element use to match change types. + * fork.c (array_set_numeric): Ditto. + * testext.c (valrep2str): New function. + (test_array_elem): Add AWK_UNDEFINED for `wanted'. Use valrep2str. + Adjust use of element index. + (dump_array): Renamed from `dump_procinfo' and implemented. + (func_table): Updated. + +2012-06-17 Arnold D. Robbins + + * filefuncs.c (do_chdir, do_stat): Add assert(result != NULL). + * fork.c (do_fork, do_waitpid, do_wait): Ditto. + * ordchr.c (do_ord, do_chr): Ditto. + * readfile.c (do_readfile): Ditto. + * time.c (do_gettimeofday, do_sleep): Ditto. + * testext.c (All functions): Ditto. Clean up initial testing and use + make_number to make default return value up front. + (create_new_array, test_array_flatten): New functions. + (test_array_elem): Implemented. + (at_exit1): Don't printa actual pointer value: not portable. + (dl_load): Load up an array also. + +2012-06-14 Andrew J. Schorr + + * time.c (RETURN): Remove obsolete define. + (do_sleep): Change update_ERRNO_str argument to request translation. + +2012-06-12 Arnold D. Robbins + + Revise API: + + * filefuncs.c (do_chdir): Replace get_curfunc_param with get_argument. + (format_mode): Use unsigned masks. + (do_stat): Replace get_curfunc_param with get_argument. + * fork.c (do_fork): Rearrange arg order in call to sym_lookup + (do_waitpid): Replace get_curfunc_param with get_argument. + * ordchr.c (do_ord, do_chr): Replace get_curfunc_param with get_argument. + * readfile.c (do_readfile): Replace get_curfunc_param with get_argument. + * time.c (do_sleep): Replace get_curfunc_param with get_argument. + Replace set_ERRNO with update_ERRNO_str for no way to sleep case. + + Work on testext.c: + + * Makefile.am: Add stuff to make testext. Remove doit and steps + from EXTRA_DIST. + * testext.c: Fill in many of the test routines. Still more to do. + Fix up test scripts for each routine. + * time.c (do_sleep): Fix use of get_argument to be boolean. + +2012-06-10 Andrew J. Schorr + + * Makefile.am: Add time extension. + * configure.ac: To support time extension, check for some headers + and functions that are needed. + * time.c: New file implementing sleep and gettimeofday. + +2012-06-10 Andrew J. Schorr + + * Makefile.am: Remove comment referring to deleted test extensions + arrayparm, dl (zaxxon) and testarg. + +2012-06-10 Andrew J. Schorr + + * arrayparm.c, dl.c, doit, foo.awk, steps, testarg.awk, testarg.c, + testarrayparm.awk, testff.awk, testfork.awk, testordchr.awk: Remove + unused (obsolete) files. + +2012-06-06 Arnold D. Robbins + + * filefuncs.c (do_stat): Make `type' const char *. + + * testext.c: Functions renamed, some of them filled in. Corresponding + awk code for each test added inline. + +2012-05-30 Arnold D. Robbins + + * testext.c: New file. Outline of tests for extension API. + +2012-05-29 Arnold D. Robbins + + * filefuncs.c: Further cleanup and condensation of code into tables. + * fork.c, ordchr.c, readfile.c: Update copyright, general cleanup. + +2012-05-25 Arnold D. Robbins + + * filefuncs.c (array_set_numeric): Don't return a value from + a void function. + +2012-05-24 Andrew J. Schorr + + * Makefile.am (AM_CPPFLAGS): Use $(srcdir) to work properly when + built outside the source directory. + * configure.ac (INSTALL): Set location manually since autoconf was + not specifying the proper path for install-sh. + * filefuncs2.c, ordchr2.c, readfile2.c: Deleted. + * filefuncs.c: Install filefuncs2.c and patch for recent API changes. + * ordchr.c: Install ordchr2.c and patch for recent API changes. + * readfile.c: Install readfile2.c and patch for recent API changes. + * fork.c: Port to new API. + +2012-05-21 Andrew J. Schorr + + * configure.ac: New file to run configure with libtool support + in this subdirectory. + * Makefile.am: Some changes related to running automake in this + directory. + * AUTHORS, COPYING, INSTALL, NEWS, README: Added files to make automake + happy. + * aclocal.m4, configure, configh.in: Added autoconf files. + * build-aux, m4: New subdirectories for autoconf stuff. + +2012-05-15 Arnold D. Robbins + + * filefuncs2.c: New file implementing chdir and stat using the + new interface. + + Everything else is temporarily broken. + +2012-05-13 Andrew J. Schorr + + * filefuncs.c (array_set): Add a comment discussing the use of unref + on the value returned by assoc_lookup. + +2012-05-13 Andrew J. Schorr + + * xreadlink.[ch]: Remove unused files. + +2012-05-11 Arnold D. Robbins + + Sweeping change: Use `bool', `true', and `false' everywhere. + +2012-04-11 Andrew J. Schorr + + * filefuncs.c (array_set): New function to set an array element. + (do_set): Use new array_set function to reduce code duplication and + to make sure the memory management is handled properly. + +2012-04-07 Andrew J. Schorr + + * filefuncs.c: Remove unnecessary #include . + (read_symlink): New function to read symbolic links more robustly. + (do_stat): Use read_symlink instead of readlink. + * fork.c (do_wait): new function. + (dlload): Call make_builtin to add "wait" function. + +2012-04-02 Andrew J. Schorr + + * fork.c (do_fork): Test whether PROCINFO_node exists before updating + the pid values. And do so properly using make_number. + * readfile.c (do_readfile): Function should be static. + +2012-04-01 Andrew J. Schorr + + * filefuncs.c (do_chdir, do_stat): Replace update_ERRNO() with + update_ERRNO_int(errno). + * fork.c (do_fork, do_waitpid): Ditto. + * readfile.c (do_readfile): Ditto. + * rwarray.c (do_writea, do_reada): Ditto. + +2012-03-25 Andrew J. Schorr + + * Makefile.am: Major cleanup. Use libtool options -module and + -avoid-version to create the modules properly without my local hack + to override the default behavior. + +2012-03-25 Andrew J. Schorr + + * .gitignore: New file to ignore files created by libtool (including + binaries and associated metadata). + +2012-03-21 Andrew J. Schorr + + * Makefile.am (INCLUDES): Remove -I$(top_srcdir)/intl. + +2012-03-20 Andrew J. Schorr + + * Makefile.am: New file to build and install shared libraries. + * arrayparm.c (do_mkarray): Get it to compile by removing 2nd arg + to assoc_clear. + * filefuncs.c (do_stat): Ditto. + +2011-08-31 John Haque + + * arrayparm.c, filefuncs.c, fork.c, ordchr.c, readfile.c, + rwarray.c, testarg.c: Updated. + +2012-03-28 Arnold D. Robbins + + * 4.0.1: Release tar ball made. + +2011-06-23 Arnold D. Robbins + + * ChangeLog.0: Rotated ChangeLog into this file. + * ChangeLog: Created anew for gawk 4.0.0 and on. + * 4.0.0: Release tar ball made. diff -urN gawk-5.0.0/extension/configure gawk-5.0.1/extension/configure --- gawk-5.0.0/extension/configure 2019-04-12 12:03:11.000000000 +0300 +++ gawk-5.0.1/extension/configure 2019-06-18 20:09:28.000000000 +0300 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for GNU Awk Bundled Extensions 5.0.0. +# Generated by GNU Autoconf 2.69 for GNU Awk Bundled Extensions 5.0.1. # # Report bugs to . # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='GNU Awk Bundled Extensions' PACKAGE_TARNAME='gawk-extensions' -PACKAGE_VERSION='5.0.0' -PACKAGE_STRING='GNU Awk Bundled Extensions 5.0.0' +PACKAGE_VERSION='5.0.1' +PACKAGE_STRING='GNU Awk Bundled Extensions 5.0.1' PACKAGE_BUGREPORT='bug-gawk@gnu.org' PACKAGE_URL='http://www.gnu.org/software/gawk-extensions/' @@ -1339,7 +1339,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GNU Awk Bundled Extensions 5.0.0 to adapt to many kinds of systems. +\`configure' configures GNU Awk Bundled Extensions 5.0.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1409,7 +1409,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Awk Bundled Extensions 5.0.0:";; + short | recursive ) echo "Configuration of GNU Awk Bundled Extensions 5.0.1:";; esac cat <<\_ACEOF @@ -1531,7 +1531,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GNU Awk Bundled Extensions configure 5.0.0 +GNU Awk Bundled Extensions configure 5.0.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2003,7 +2003,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GNU Awk Bundled Extensions $as_me 5.0.0, which was +It was created by GNU Awk Bundled Extensions $as_me 5.0.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2872,7 +2872,7 @@ # Define the identity of the package. PACKAGE='gawk-extensions' - VERSION='5.0.0' + VERSION='5.0.1' cat >>confdefs.h <<_ACEOF @@ -15943,7 +15943,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GNU Awk Bundled Extensions $as_me 5.0.0, which was +This file was extended by GNU Awk Bundled Extensions $as_me 5.0.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16011,7 +16011,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -GNU Awk Bundled Extensions config.status 5.0.0 +GNU Awk Bundled Extensions config.status 5.0.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN gawk-5.0.0/extension/configure.ac gawk-5.0.1/extension/configure.ac --- gawk-5.0.0/extension/configure.ac 2019-04-12 12:02:59.000000000 +0300 +++ gawk-5.0.1/extension/configure.ac 2019-06-18 20:05:50.000000000 +0300 @@ -23,7 +23,7 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([GNU Awk Bundled Extensions],[5.0.0],[bug-gawk@gnu.org],[gawk-extensions]) +AC_INIT([GNU Awk Bundled Extensions],[5.0.1],[bug-gawk@gnu.org],[gawk-extensions]) AC_PREREQ([2.69]) diff -urN gawk-5.0.0/extension/m4/ChangeLog gawk-5.0.1/extension/m4/ChangeLog --- gawk-5.0.0/extension/m4/ChangeLog 2019-04-12 12:25:12.000000000 +0300 +++ gawk-5.0.1/extension/m4/ChangeLog 2019-06-18 20:53:38.000000000 +0300 @@ -1,3 +1,7 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + 2019-04-12 Arnold D. Robbins * 5.0.0: Release tar ball made. diff -urN gawk-5.0.0/extension/Makefile.am gawk-5.0.1/extension/Makefile.am --- gawk-5.0.0/extension/Makefile.am 2019-04-05 10:37:55.000000000 +0300 +++ gawk-5.0.1/extension/Makefile.am 2019-04-21 18:03:57.000000000 +0300 @@ -138,6 +138,7 @@ EXTRA_DIST = build-aux/config.rpath \ ChangeLog \ ChangeLog.0 \ + ChangeLog.1 \ ext_custom.h \ fts.3 \ m4 \ diff -urN gawk-5.0.0/extension/Makefile.in gawk-5.0.1/extension/Makefile.in --- gawk-5.0.0/extension/Makefile.in 2019-04-12 12:03:11.000000000 +0300 +++ gawk-5.0.1/extension/Makefile.in 2019-06-18 20:09:32.000000000 +0300 @@ -635,6 +635,7 @@ EXTRA_DIST = build-aux/config.rpath \ ChangeLog \ ChangeLog.0 \ + ChangeLog.1 \ ext_custom.h \ fts.3 \ m4 \ diff -urN gawk-5.0.0/extension/po/ChangeLog gawk-5.0.1/extension/po/ChangeLog --- gawk-5.0.0/extension/po/ChangeLog 2019-04-12 12:24:23.000000000 +0300 +++ gawk-5.0.1/extension/po/ChangeLog 2019-06-18 20:53:32.000000000 +0300 @@ -1,3 +1,7 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + 2019-04-12 Arnold D. Robbins * 5.0.0: Release tar ball made. diff -urN gawk-5.0.0/extras/ChangeLog gawk-5.0.1/extras/ChangeLog --- gawk-5.0.0/extras/ChangeLog 2019-04-12 12:25:40.000000000 +0300 +++ gawk-5.0.1/extras/ChangeLog 2019-06-18 20:53:44.000000000 +0300 @@ -1,3 +1,7 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + 2019-04-12 Arnold D. Robbins * 5.0.0: Release tar ball made. diff -urN gawk-5.0.0/field.c gawk-5.0.1/field.c --- gawk-5.0.0/field.c 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/field.c 2019-05-22 21:00:52.000000000 +0300 @@ -855,6 +855,7 @@ if (! field0_valid) { /* first, parse remainder of input record */ if (NF == -1) { + in_middle = (parse_high_water != 0); NF = (*parse_field)(UNLIMITED - 1, &parse_extent, fields_arr[0]->stlen - (parse_extent - fields_arr[0]->stptr), @@ -977,7 +978,7 @@ sep_arr = POP_PARAM(); if (sep_arr->type != Node_var_array) fatal(_("split: fourth argument is not an array")); - if ((do_lint || do_lint_old) && ! warned) { + if ((do_lint_extensions || do_lint_old) && ! warned) { warned = true; lintwarn(_("split: fourth argument is a gawk extension")); } @@ -1143,7 +1144,7 @@ bool fatal_error = false; NODE *tmp; - if (do_lint && ! warned) { + if (do_lint_extensions && ! warned) { warned = true; lintwarn(_("`FIELDWIDTHS' is a gawk extension")); } @@ -1306,7 +1307,7 @@ set_parser(null_parse_field); - if (do_lint && ! warned) { + if (do_lint_extensions && ! warned) { warned = true; lintwarn(_("null string for `FS' is a gawk extension")); } @@ -1437,7 +1438,7 @@ bool remake_re = true; NODE *fpat; - if (do_lint && ! warned) { + if (do_lint_extensions && ! warned) { warned = true; lintwarn(_("`FPAT' is a gawk extension")); } diff -urN gawk-5.0.0/interpret.h gawk-5.0.1/interpret.h --- gawk-5.0.0/interpret.h 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/interpret.h 2019-05-02 22:29:05.000000000 +0300 @@ -46,7 +46,6 @@ (*l) = dupnode(*r); DEREF(*r); } - force_string(*l); } #define UNFIELD(l, r) unfield(& (l), & (r)) @@ -729,6 +728,8 @@ unref(*lhs); r = POP_SCALAR(); UNFIELD(*lhs, r); + /* field variables need the string representation: */ + force_string(*lhs); } break; diff -urN gawk-5.0.0/io.c gawk-5.0.1/io.c --- gawk-5.0.0/io.c 2019-04-05 10:37:55.000000000 +0300 +++ gawk-5.0.1/io.c 2019-05-22 21:00:52.000000000 +0300 @@ -4075,7 +4075,7 @@ matchrec = rsrescan; - if (do_lint && ! warned) { + if (do_lint_extensions && ! warned) { lintwarn(_("multicharacter value of `RS' is a gawk extension")); warned = true; } diff -urN gawk-5.0.0/m4/ChangeLog gawk-5.0.1/m4/ChangeLog --- gawk-5.0.0/m4/ChangeLog 2019-04-12 12:23:27.000000000 +0300 +++ gawk-5.0.1/m4/ChangeLog 2019-06-18 20:53:25.000000000 +0300 @@ -1,3 +1,7 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/main.c gawk-5.0.1/main.c --- gawk-5.0.0/main.c 2019-04-07 21:53:42.000000000 +0300 +++ gawk-5.0.1/main.c 2019-06-06 20:24:36.000000000 +0300 @@ -602,10 +602,10 @@ fputs(_("\t-i includefile\t\t--include=includefile\n"), fp); fputs(_("\t-l library\t\t--load=library\n"), fp); /* - * TRANSLATORS: the "fatal" and "invalid" here are literal + * TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal * values, they should not be translated. Thanks. */ - fputs(_("\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n"), fp); + fputs(_("\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n"), fp); fputs(_("\t-M\t\t\t--bignum\n"), fp); fputs(_("\t-N\t\t\t--use-lc-numeric\n"), fp); fputs(_("\t-n\t\t\t--non-decimal-data\n"), fp); @@ -749,6 +749,7 @@ { int i, j; NODE *sub, *val; + NODE *shadow_node = NULL; ARGV_node = install_symbol(estrdup("ARGV", 4), Node_var_array); sub = make_number(0.0); @@ -756,15 +757,32 @@ val->flags |= USER_INPUT; assoc_set(ARGV_node, sub, val); + if (do_sandbox) { + shadow_node = make_array(); + sub = make_string(argv0, strlen(argv0)); + val = make_number(0.0); + assoc_set(shadow_node, sub, val); + } + + for (i = argc0, j = 1; i < argc; i++, j++) { sub = make_number((AWKNUM) j); val = make_string(argv[i], strlen(argv[i])); val->flags |= USER_INPUT; assoc_set(ARGV_node, sub, val); + + if (do_sandbox) { + sub = make_string(argv[i], strlen(argv[i])); + val = make_number(0.0); + assoc_set(shadow_node, sub, val); + } } ARGC_node = install_symbol(estrdup("ARGC", 4), Node_var); ARGC_node->var_value = make_number((AWKNUM) j); + + if (do_sandbox) + init_argv_array(ARGV_node, shadow_node); } @@ -1262,6 +1280,9 @@ || sig == SIGBUS #endif ) { + if (errcount > 0) // assume a syntax error corrupted our data structures + exit(EXIT_FATAL); + set_loc(__FILE__, __LINE__); msg(_("fatal error: internal error")); /* fatal won't abort() if not compiled for debugging */ @@ -1279,6 +1300,9 @@ static int catchsegv(void *fault_address, int serious) { + if (errcount > 0) // assume a syntax error corrupted our data structures + exit(EXIT_FATAL); + set_loc(__FILE__, __LINE__); msg(_("fatal error: internal error: segfault")); fflush(NULL); @@ -1598,7 +1622,7 @@ #ifndef NO_LINT case 'L': - do_flags |= DO_LINT_ALL; + do_flags |= (DO_LINT_ALL|DO_LINT_EXTENSIONS); if (optarg != NULL) { if (strcmp(optarg, "fatal") == 0) lintfunc = r_fatal; @@ -1606,6 +1630,9 @@ do_flags &= ~DO_LINT_ALL; do_flags |= DO_LINT_INVALID; } + else if (strcmp(optarg, "no-ext") == 0) { + do_flags &= ~DO_LINT_EXTENSIONS; + } } break; diff -urN gawk-5.0.0/Makefile.am gawk-5.0.1/Makefile.am --- gawk-5.0.0/Makefile.am 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/Makefile.am 2019-04-21 18:03:57.000000000 +0300 @@ -34,6 +34,7 @@ # Makefile.am files EXTRA_DIST = \ ChangeLog.0 \ + ChangeLog.1 \ COPYING \ INSTALL \ NEWS \ diff -urN gawk-5.0.0/Makefile.in gawk-5.0.1/Makefile.in --- gawk-5.0.0/Makefile.in 2019-04-12 12:03:05.000000000 +0300 +++ gawk-5.0.1/Makefile.in 2019-06-18 20:09:32.000000000 +0300 @@ -467,6 +467,7 @@ # Makefile.am files EXTRA_DIST = \ ChangeLog.0 \ + ChangeLog.1 \ COPYING \ INSTALL \ NEWS \ diff -urN gawk-5.0.0/missing_d/ChangeLog gawk-5.0.1/missing_d/ChangeLog --- gawk-5.0.0/missing_d/ChangeLog 2019-04-12 12:23:05.000000000 +0300 +++ gawk-5.0.1/missing_d/ChangeLog 2019-06-18 20:53:18.000000000 +0300 @@ -1,3 +1,7 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/msg.c gawk-5.0.1/msg.c --- gawk-5.0.0/msg.c 2019-04-05 10:37:55.000000000 +0300 +++ gawk-5.0.1/msg.c 2019-04-24 20:28:37.000000000 +0300 @@ -46,10 +46,17 @@ static bool first = true; static bool add_src_info = false; + static long lineno_val = 0; // Easter Egg if (first) { first = false; add_src_info = (getenv("GAWK_MSG_SRC") != NULL); + if (! do_traditional) { + NODE *n = lookup("LINENO"); + + if (n != NULL && n->type == Node_var) + lineno_val = get_number_d(n->var_value); + } } (void) fflush(output_fp); @@ -67,7 +74,7 @@ else (void) fprintf(stderr, _("cmd. line:")); - (void) fprintf(stderr, "%d: ", sourceline); + (void) fprintf(stderr, "%ld: ", sourceline + lineno_val); } #ifdef HAVE_MPFR diff -urN gawk-5.0.0/NEWS gawk-5.0.1/NEWS --- gawk-5.0.0/NEWS 2019-04-07 21:53:42.000000000 +0300 +++ gawk-5.0.1/NEWS 2019-06-02 21:56:54.000000000 +0300 @@ -4,6 +4,27 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. +Changes from 5.0.0 to 5.0.1 +--------------------------- + +1. A number of ChangeLog.1 files that were left out of the distribution + have been restored. + +2. Multiple syntax errors should no longer be able to cause a core dump. + +3. Sandbox mode now disallows assigning new filename values in ARGV that + were not there when gawk was invoked. + +4. There are many small documentation improvements in the manual. + +5. The new argument "no-ext" to --lint disables ``XXX is a gawk extension'' + lint warnings. + +6. Infrastructure upgrades: Bison 3.4. + +N. A number of bugs, some of them quite significant, have been fixed. + See the ChangeLog for details. + Changes from 4.2.1 to 5.0.0 --------------------------- diff -urN gawk-5.0.0/pc/ChangeLog gawk-5.0.1/pc/ChangeLog --- gawk-5.0.0/pc/ChangeLog 2019-04-12 12:23:16.000000000 +0300 +++ gawk-5.0.1/pc/ChangeLog 2019-06-18 20:53:23.000000000 +0300 @@ -1,3 +1,12 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + +2019-04-13 Eli Zaretskii + + * Makefile (install1): Copy the *.txt files needed to display the + manuals in the stand-alone Info reader. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/pc/config.h gawk-5.0.1/pc/config.h --- gawk-5.0.0/pc/config.h 2019-04-12 12:31:56.000000000 +0300 +++ gawk-5.0.1/pc/config.h 2019-06-18 20:56:02.000000000 +0300 @@ -458,7 +458,7 @@ #define PACKAGE_NAME "GNU Awk" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "GNU Awk 5.0.0" +#define PACKAGE_STRING "GNU Awk 5.0.1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gawk" @@ -467,7 +467,7 @@ #define PACKAGE_URL "http://www.gnu.org/software/gawk/" /* Define to the version of this package. */ -#define PACKAGE_VERSION "5.0.0" +#define PACKAGE_VERSION "5.0.1" /* Define to 1 if *printf supports %a format */ #define PRINTF_HAS_A_FORMAT 1 @@ -528,7 +528,7 @@ /* Version number of package */ -#define VERSION "5.0.0" +#define VERSION "5.0.1" /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE diff -urN gawk-5.0.0/pc/Makefile gawk-5.0.1/pc/Makefile --- gawk-5.0.0/pc/Makefile 2019-04-05 10:37:55.000000000 +0300 +++ gawk-5.0.1/pc/Makefile 2019-04-14 19:15:06.000000000 +0300 @@ -335,6 +335,8 @@ cp doc/*.1 $(prefix)/share/man/man1 cp doc/*.info $(prefix)/share/info cp doc/*.png $(prefix)/share/info + cp doc/*.txt $(prefix)/share/info + rm -f $(prefix)/share/info/awkforai.txt # install2 is equivalent to install1, but doesn't require cp, sed, etc. install2: diff -urN gawk-5.0.0/pc/Makefile.tst gawk-5.0.1/pc/Makefile.tst --- gawk-5.0.0/pc/Makefile.tst 2019-04-12 12:29:31.000000000 +0300 +++ gawk-5.0.1/pc/Makefile.tst 2019-06-18 20:43:25.000000000 +0300 @@ -144,15 +144,16 @@ addcomma anchgsub anchor argarray arrayind1 arrayind2 arrayind3 arrayparm \ arrayprm2 arrayprm3 arrayref arrymem1 arryref2 arryref3 arryref4 arryref5 \ arynasty arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \ - aryprm8 aryprm9 arysubnm aryunasgn asgext awkpath assignnumfield \ + aryprm8 aryprm9 arysubnm aryunasgn asgext awkpath \ + assignnumfield assignnumfield2 \ back89 backgsub badassign1 badbuild \ callparam childin clobber closebad clsflnam compare compare2 \ concat1 concat2 concat3 concat4 concat5 convfmt \ datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \ eofsplit eofsrc1 exit2 exitval1 exitval2 exitval3 \ fcall_exit fcall_exit2 fldchg fldchgnf fldterm fnamedat fnarray fnarray2 \ - fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fsnul1 fsrs fsspcoln \ - fstabplus funsemnl funsmnam funstack \ + fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fscaret fsnul1 \ + fsrs fsspcoln fstabplus funsemnl funsmnam funstack \ getline getline2 getline3 getline4 getline5 getlnbuf getnr2tb getnr2tm \ gsubasgn gsubtest gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 gsubtst7 \ gsubtst8 \ @@ -175,7 +176,7 @@ scalar sclforin sclifin setrec0 setrec1 \ sigpipe1 sortempty sortglos spacere splitargv splitarr \ splitdef splitvar splitwht status-close strcat1 strnum1 strnum2 strtod \ - subamp subback subi18n subsepnm subslash substr swaplns synerr1 synerr2 \ + subamp subback subi18n subsepnm subslash substr swaplns synerr1 synerr2 synerr3 \ tailrecurse tradanch trailbs tweakfld \ uninit2 uninit3 uninit4 uninit5 uninitialized unterm uparrfs uplus \ wideidx wideidx2 widesub widesub2 widesub3 widesub4 wjposer1 \ @@ -210,7 +211,8 @@ profile7 profile8 profile9 profile10 profile11 profile12 pty1 pty2 \ rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline rsglstdin \ rsstart1 rsstart2 rsstart3 rstest6 \ - shadow shadowbuiltin sortfor sortfor2 sortu sourcesplit split_after_fpat \ + sandbox1 shadow shadowbuiltin sortfor sortfor2 sortu \ + sourcesplit split_after_fpat \ splitarg4 strftfld strftime strtonum strtonum1 switch2 symtab1 symtab2 \ symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \ timeout typedregex1 typedregex2 typedregex3 typedregex4 \ @@ -270,6 +272,9 @@ # List of tests that need --re-interval NEED_RE_INTERVAL = gsubtst3 reint reint2 +# List of tests that need --sandbox +NEED_SANDBOX = sandbox1 + # List of tests that need --traditional NEED_TRADITIONAL = litoct tradanch rscompat @@ -1303,6 +1308,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +assignnumfield2: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + back89: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1521,6 +1531,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +fscaret: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + fsnul1: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -2269,6 +2284,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +synerr3: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + tailrecurse: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -3013,6 +3033,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +sandbox1: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --sandbox >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + shadow: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff -urN gawk-5.0.0/po/ca.po gawk-5.0.1/po/ca.po --- gawk-5.0.0/po/ca.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/ca.po 2019-06-18 20:07:22.000000000 +0300 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gawk 4.1.3h\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2016-12-18 19:51+0100\n" "Last-Translator: Walter Garcia-Fontes \n" "Language-Team: Catalan \n" @@ -38,8 +38,8 @@ msgstr "s'ha intentat usar la dada escalar `%s' com a una matriu" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "s'ha intentat usar la matriu `%s' en un context escalar" @@ -249,11 +249,11 @@ msgid "invalid subscript expression" msgstr "expressió de subíndex no vàlida" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "advertiment: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "fatal: " @@ -398,7 +398,7 @@ msgid "unterminated string" msgstr "cadena sense finalitzar" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 #, fuzzy msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX no permet seqüències d'escapada `\\x'" @@ -1138,6 +1138,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1469,7 +1474,7 @@ "on [N] - (igual que la traça inversa) imprimeix la traça de tots els N marcs " "interiors (exteriors si N < 0)." -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "error: " @@ -2101,53 +2106,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "`%sFMT' especificació errònia `%s'" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "desactivant `--lint' degut a una assignació a `LINT'" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "referència a un argument sense inicialitzar `%s'" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "referència a una variable sense inicialitzar `%s'" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "s'ha intentat una referència de camp a partir d'un valor no numèric" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "s'ha intentat entrar una referència a partir d'una cadena nul·la" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "s'ha intentat accedir al camp %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "referència a una variable sense inicialitzar `$%ld'" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "s'ha cridat a la funció `%s' amb més arguments dels declarats" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: tipus no esperat `%s'" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "s'ha intentat una divisió per zero en `/='" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "s'ha intentat una divisió per zero en `%%='" @@ -2234,7 +2239,8 @@ "funció `%s': argument #%d: s'ha intentat usar una matriu com a un escalar" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "no està suportada la càrrega dinàmica de la biblioteca" #: extension/filefuncs.c:442 @@ -2546,87 +2552,87 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: el quart argument és una extensió gawk" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: el quart argument no és una matriu" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: el segon argument no és una matriu" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" "split: no es pot usar una submatriu de segon argument per a quart argument" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split: no es pot usar una submatriu de segon argument per a quart argument" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split: no est pot usar una submatriu de quart argument per a segon argument" -#: field.c:1035 +#: field.c:1036 #, fuzzy msgid "split: null string for third arg is a non-standard extension" msgstr "split: la cadena nul·la per al tercer argument és una extensió de gawk" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: el quart argument no és una matriu" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: el tercer argument no és una matriu" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: el segon argument no és una matriu" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit: no es pot usar la mateixa matriu per a segon i quart argument" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit: no es pot usar una submatriu de segon argument per a quart argument" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit: no es pot usar una submatriu de quart argument per a segon argument" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' és una extensió de gawk" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "" -#: field.c:1238 +#: field.c:1239 #, fuzzy, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "valor FIELDWIDTHS no vàlid, a prop de `%s'" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "la cadena nul·la per a `FS' és una extensió de gawk" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "l'antic awk no suporta expressions regulars com a valor de `FS'" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "`FPAT' és una extensió gawk" @@ -3190,11 +3196,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-l library\t\t--load=biblioteca\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3346,7 +3353,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft no permet inicialitzar FS a un tabulador en la versió POSIX de awk" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3355,72 +3362,72 @@ "%s: `%s' l'argument per a `-v' no està en forma `var=valor'\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' no és nom legal de variable" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' no és un valor de variable, s'esperava fitxer `%s=%s'" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "" "no es pot usar el nom de la funció integrada `%s' com a nom de variable" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "no es pot usar el nom de la funció interna `%s' com nom de variable" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "excepció de coma flotant" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "error fatal: error intern" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "error fatal: error intern: segfault" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "error fatal: error intern: sobreeiximent de pila" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "no s'ha pre-obert el descriptor fd per a %d" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "no es pot pre-obrir /dev/null per al descriptor fd %d" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "s'ignonarà l'argument buit de `-e/--source'" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "`--posix' solapa a `--traditional'" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "-M ignorat: no s'ha compilat el suport MPFR/GMP" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: no es reconeix l'opció `-W %s', serà ignorada\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'opció requereix un argument -- %c\n" @@ -3477,7 +3484,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s: l'argument #%d amb valor negatiu %Zd donarà resultats estranys" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "línia cmd.:" @@ -3636,39 +3643,39 @@ msgid "regexp component `%.*s' should probably be `[%.*s]'" msgstr "el component regexp `%.*s' probablement hauria de ser `[%.*s]'" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "[ sense aparellar" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "classe no vàlida de caràcters" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "la sintaxi de la classe de caràcters és [[:espai:]], no [:espai:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "seqüència d'escapada \\ sense finalitzar" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "contingut no vàlid de \\{\\}" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "l'expressió regular és massa gran" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "( sense aparellar" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "no s'ha especificat una sintaxi" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr ") sense aparellar" @@ -3796,7 +3803,7 @@ msgid "Unmatched ) or \\)" msgstr ") o \\) desemparellats" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "No hi ha una expressió regular prèvia" diff -urN gawk-5.0.0/po/ChangeLog gawk-5.0.1/po/ChangeLog --- gawk-5.0.0/po/ChangeLog 2019-04-12 12:19:49.000000000 +0300 +++ gawk-5.0.1/po/ChangeLog 2019-06-18 20:52:49.000000000 +0300 @@ -1,3 +1,12 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + +2019-05-26 Arnold D. Robbins + + * pt.po: New file. + * LINGUAS: Updated. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/po/da.po gawk-5.0.1/po/da.po --- gawk-5.0.0/po/da.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/da.po 2019-06-18 20:07:22.000000000 +0300 @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: gawk 4.1.1d\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2015-05-18 12:37+0200\n" "Last-Translator: Keld Simonsen \n" "Language-Team: Danish \n" @@ -41,8 +41,8 @@ msgstr "forsøg på at bruge skalar '%s' som et array" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "forsøg på at bruge array '%s' i skalarsammenhæng" @@ -244,11 +244,11 @@ msgid "invalid subscript expression" msgstr "ugyldigt indeksudtryk" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "advarsel: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "fatal: " @@ -394,7 +394,7 @@ msgid "unterminated string" msgstr "uafsluttet streng" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 #, fuzzy msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX tillader ikke '\\x'-kontrolsekvenser" @@ -1116,6 +1116,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1401,7 +1406,7 @@ "if N < 0) frames." msgstr "" -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "fejl: " @@ -2010,53 +2015,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "forkert '%sFMT'-specifikation '%s'" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "deaktiverer '--lint' på grund af en tildeling til 'LINT'" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "reference til ikke-initieret argument '%s'" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "reference til ikke-initieret variabel '%s'" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "forsøg på at referere til et felt fra ikke-numerisk værdi" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "forsøg på at referere til et felt fra tom streng" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "forsøg på at få adgang til felt %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "reference til ikke-initieret felt '$%ld'" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "funktionen '%s' kaldt med flere argumenter end deklareret" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: uventet type `%s'" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "forsøgte at dividere med nul i '/='" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "forsøgte at dividere med nul i '%%='" @@ -2145,7 +2150,7 @@ "funktion '%s': argument nummer %d: forsøg på at bruge array som en skalar" #: ext.c:232 -msgid "dynamic loading of library not supported" +msgid "dynamic loading of libraries is not supported" msgstr "" #: extension/filefuncs.c:442 @@ -2459,85 +2464,85 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: fjerde argument er en gawk-udvidelse" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: fjerde argument er ikke et array" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: andet argument er ikke et array" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "split: kan ikke bruge det samme array som andet og fjerde argument" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split: kan ikke bruge et underarray af andet argument som fjerde argument" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split: kan ikke bruge et underarray af fjerde argument som andet argument" -#: field.c:1035 +#: field.c:1036 #, fuzzy msgid "split: null string for third arg is a non-standard extension" msgstr "split: tom streng som tredje argument er en gawk-udvidelse" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: fjerde argument er ikke et array" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: andet argument er ikke et array" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patmatch: tredje argument er ikke et array" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "patsplit: kan ikke bruge det samme array som andet og fjerde argument" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit: kan ikke bruge et underarray af andet argument som fjerde argument" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit: kan ikke bruge et underarray af fjerde argument som andet argument" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "'FIELDWIDTHS' er en gawk-udvidelse" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "" -#: field.c:1238 +#: field.c:1239 #, fuzzy, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "ugyldig FIELDWIDTHS værdi, nær '%s" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "tom streng som 'FS' er en gawk-udvidelse" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "gamle versioner af awk understøtter ikke regexp'er som værdi for 'FS'" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "'FPAT' er en gawk-udvidelse" @@ -3083,12 +3088,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 #, fuzzy -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L [fatal]\t\t--lint[=fatal]\n" #: main.c:609 @@ -3244,7 +3249,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft sætter ikke FS til tab i POSIX-awk" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3253,71 +3258,71 @@ "%s: '%s' argument til '-v' ikke på formen 'var=værdi'\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "'%s' er ikke et gyldigt variabelnavn" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "'%s' er ikke et variabelnavn, leder efter fil '%s=%s'" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "kan ikke bruge gawk's indbyggede '%s' som variabelnavn" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "kan ikke bruge funktion '%s' som variabelnavn" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "flydendetalsundtagelse" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "fatal fejl: intern fejl" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "fatal fejl: intern fejl: segmentfejl" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "fatal fejl: intern fejl: stakoverløb" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "ingen fd %d åbnet i forvejen" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "kunne ikke i forvejen åbne /dev/null for fd %d" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "tomt argument til '-e/--source' ignoreret" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "'--posix' tilsidesætter '--traditional'" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: flaget '-W %s' ukendt, ignoreret\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: flaget kræver et argument -- %c\n" @@ -3376,7 +3381,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "and(%lf, %lf): negative værdier vil give mærkelige resultater" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "kommandolinje:" @@ -3531,39 +3536,39 @@ msgid "regexp component `%.*s' should probably be `[%.*s]'" msgstr "regexp-komponent `%.*s' skulle nok være `[%.*s]'" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "Ugyldig tegnklasse" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "ugyldigt indhold i \\{\\}" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "regulært udtryk for stort" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "ingen syntaks angivet" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "" @@ -3692,7 +3697,7 @@ msgid "Unmatched ) or \\)" msgstr "Ubalanceret ) eller \\)" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "Intet foregående regulært udtryk" diff -urN gawk-5.0.0/po/de.po gawk-5.0.1/po/de.po --- gawk-5.0.0/po/de.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/de.po 2019-06-18 20:07:22.000000000 +0300 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gawk 4.1.64\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2017-09-18 09:08+0200\n" "Last-Translator: Philipp Thomas \n" "Language-Team: German \n" @@ -38,8 +38,8 @@ msgstr "Es wird versucht, den Skalar „%s“ als Array zu verwenden" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "Es wird versucht, das Feld „%s“ in einem Skalarkontext zu verwenden" @@ -250,11 +250,11 @@ msgid "invalid subscript expression" msgstr "Ungültiger Index-Ausdruck" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "Warnung: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "Fatal: " @@ -406,7 +406,7 @@ msgid "unterminated string" msgstr "Nicht beendete Zeichenkette" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 #, fuzzy msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX erlaubt keine »\\x«-Escapes" @@ -1148,6 +1148,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "typeof: unbekannter Parametrttyp „%sâ€" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1472,7 +1477,7 @@ "where [N] - (wie bei backtrace) Liste von allen oder den N innersten " "(äußersten wenn N <0> Stackframes" -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "Fehler: " @@ -2106,53 +2111,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "Falsche »%sFMT«-Angabe „%s“" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "»--lint« wird abgeschaltet, da an »LINT« zugewiesen wird" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "Referenz auf nicht initialisiertes Argument „%s“" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "Referenz auf die nicht initialisierte Variable „%s“" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "Nicht numerischer Wert für Feldreferenz verwendet" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "Referenz auf ein Feld von einem Null-String" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "Versuch des Zugriffs auf Feld %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "Referenz auf das nicht initialisierte Feld »$%ld«" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "Funktion „%s“ mit zu vielen Argumenten aufgerufen" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: unerwarteter Typ „%s“" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "Division durch Null versucht in »/=«" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "Division durch Null versucht in »%%=«" @@ -2246,7 +2251,8 @@ "verwenden" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "das dynamische Laden von Bibliotheken wird nicht unterstützt" #: extension/filefuncs.c:442 @@ -2557,93 +2563,93 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: das vierte Argument ist eine gawk-Erweiterung" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: das vierte Argument ist kein Feld" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: das zweite Argument ist kein Feld" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" "split: als zweites und viertes Argument kann nicht das gleiche Feld " "verwendet werden" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split: Ein untergeordnetes Feld des zweiten Arguments kann nicht als viertes " "Argument verwendet werden" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split: Ein untergeordnetes Feld des vierten Arguments kann nicht als zweites " "Argument verwendet werden" -#: field.c:1035 +#: field.c:1036 #, fuzzy msgid "split: null string for third arg is a non-standard extension" msgstr "split: Null-String als drittes Argument ist eine gawk-Erweiterung" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: Das vierte Argument ist kein Feld" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: Das zweite Argument ist kein Feld" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: Das dritte Argument darf nicht Null sein" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit: als zweites und viertes Argument kann nicht das gleiche Feld " "verwendet werden" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit: Ein untergeordnetes Feld des zweiten Arguments kann nicht als " "viertes Argument verwendet werden" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit: Ein untergeordnetes Feld des vierten Arguments kann nicht als " "zweites Argument verwendet werden" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "»FIELDWIDTHS« ist eine gawk-Erweiterung" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "„*†muss der letzte Bezeichner in FIELDWIDTHS sein" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "ungültiger FIELDWIDTHS-Wert für Feld %d, nah bei „%s“" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "Null-String für »FS« ist eine gawk-Erweiterung" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "Das alte awk unterstützt keine regulären Ausdrücke als Wert von »FS«" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "»FPAT« ist eine gawk-Erweiterung" @@ -3217,11 +3223,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-l Bibliothek\t\t--load=Bibliothek\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3378,7 +3385,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft setzt FS im POSIX-awk nicht auf Tab" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3387,74 +3394,74 @@ "%s: Argument „%s“ von »-v« ist nicht in der Form »Variable=Wert«\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "„%s“ ist kein gültiger Variablenname" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "„%s“ ist kein Variablenname, es wird nach der Datei »%s=%s« gesucht" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "" "die eingebaute Funktion „%s“ kann nicht als Variablenname verwendet werden" # c-format -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "Funktion „%s“ kann nicht als Name einer Variablen verwendet werden" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "Fließkomma-Ausnahme" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "Fataler Fehler: interner Fehler" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "Fataler Fehler: interner Fehler: Speicherbegrenzungsfehler" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "Fataler Fehler: interner Fehler: Stapelüberlauf" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "Kein bereits geöffneter Dateideskriptor %d" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "/dev/null konnte nicht für Dateideskriptor %d geöffnet werden" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "Das leere Argument für »--source« wird ignoriert" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "»--posix« hat Vorrang vor »--traditional«" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "" "-M wurde ignoriert: die Unterstützung von MPFR/GMP wurde nicht eingebaut" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: Die Option »-W %s« ist unbekannt und wird ignoriert\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: Die Option %c erfordert ein Argument\n" @@ -3511,7 +3518,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%1$s: der negative Wert %3$Zd in Argument Nr. %2$d ist unzulässig" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "Kommandozeile:" @@ -3672,39 +3679,39 @@ msgstr "" "Regulärer-Ausdruck-Komponente »%.*s« sollte wahrscheinlich »[%.*s]« sein" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "nicht geschlossene [" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "ungültige Zeichenklasse" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "Die Syntax für Zeichenklassen ist [[:space:]], nicht [:space:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "nicht beendetes \\ Escape" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "Ungültiger Inhalt von \\{\\}" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "Regulärer Ausdruck ist zu groß" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "nicht geschlossene (" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "keine Syntax angegeben" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "nicht geöffnete )" @@ -3832,7 +3839,7 @@ msgid "Unmatched ) or \\)" msgstr ") oder \\) werden nicht geöffnet" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "Kein vorangehender regulärer Ausdruck" diff -urN gawk-5.0.0/po/es.po gawk-5.0.1/po/es.po --- gawk-5.0.0/po/es.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/es.po 2019-06-18 20:07:22.000000000 +0300 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gawk 4.2.0e\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2018-03-24 17:48+0200\n" "Last-Translator: Francisco Javier Serrador \n" "Language-Team: Spanish \n" @@ -40,8 +40,8 @@ msgstr "trata utilizar el escalar «%s» como una matriz" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "trata utilizar la matriz «%s» en un contexto escalar" @@ -248,11 +248,11 @@ msgid "invalid subscript expression" msgstr "expresión de subíndice inválida" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "aviso: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "fatal: " @@ -400,7 +400,7 @@ msgid "unterminated string" msgstr "cadena sin terminar" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 #, fuzzy msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX no permite `\\x' como escapes" @@ -1142,6 +1142,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "tipode: tipo de argumento inválido «%s»" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1462,7 +1467,7 @@ "marcos internos\n" " (externos si N < 0)." -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "error: " @@ -2088,53 +2093,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "especificación «%sFMT» equivocada «%s»" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "se desactiva `--lint' debido a una asignación a `LINT'" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "referencia al argumento sin inicializar «%s»" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "referencia a la variable sin inicializar «%s»" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "trata una referencia de campo desde un valor que no es númerico" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "trata una referencia de campo desde una cadena nula" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "trata acceder al campo %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "referencia al campo sin inicializar `$%ld'" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "se llamó a la función «%s» con más argumentos de los declarados" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: tipo inesperado «%s»" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "se intentó una división entre cero en `/='" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "se intentó una división entre cero en `%%='" @@ -2223,7 +2228,8 @@ "función «%s»: argumento #%d: se intentó usar una matriz como un escalar" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "la carga dinámica de biblioteca no compatible" #: extension/filefuncs.c:442 @@ -2535,92 +2541,92 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: el cuarto argumento es una extensión de gawk" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: el cuarto argumento no es una matriz" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: el segundo argumento no es una matriz" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" "split: no se puede usar la misma matriz para el segundo y cuarto argumentos" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split: no se puede usar una submatriz del segundo argumento para el cuarto " "argumento" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split: no se puede usar una submatriz del cuarto argumento para el segundo " "argumento" -#: field.c:1035 +#: field.c:1036 #, fuzzy msgid "split: null string for third arg is a non-standard extension" msgstr "" "split: la cadena nula para el tercer argumento es una extensión de gawk" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: el cuarto argumento no es una matriz" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: el segundo argumento no es una matriz" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: el tercer argumento no debe ser nulo" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit: no se puede usar la misma matriz para segundo y cuarto argumentos" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit: no se puede usar una submatriz del segundo argumento para el " "cuarto argumento" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit: no se puede usar una submatriz del cuarto argumento para el " "segundo argumento" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' es una extensión gawk" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "`*' debe ser el último designador en FIELDWIDTHS" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "valor de FIELDWIDTHS inválido, para campo %d, cercano a «%s»" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "la cadena nula para `FS' es una extensión de gawk" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "el awk antiguo no admite expresiones regulares como valor de `FS'" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "`FPAT' es una extensión de gawk" @@ -3184,11 +3190,12 @@ "\t-l biblioteca\t\t--load=biblioteca\n" "\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3343,7 +3350,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft no establece FS a tabulador en el awk de POSIX" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3352,72 +3359,72 @@ "%s: el argumento «%s» para `-v' no es de la forma `var=valor'\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "«%s» no es un nombre de variable legal" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "«%s» no es un nombre de variable, se busca el fichero `%s=%s'" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "" "no se puede utilizar la orden interna de gawk «%s» como nombre de variable" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "no se puede usar la función «%s» como nombre de variable" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "excepción de coma flotante" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "error fatal: error interno" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "error fatal: error interno: falla de segmentación" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "error fatal: error interno: desbordamiento de pila" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "no existe el df %d abierto previamente" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "no se puede abrir previamente /dev/null para el df %d" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "argumento vacío para `-e/--source' ignorado" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "`--posix' se impone a `--traditional'" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "-M ignorado: aooyo MPFR/GMP no compilado dentro de" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: no se reconoce la opción `-W %s', se descarta\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: la opción requiere un argumento -- %c\n" @@ -3472,7 +3479,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s: argumento #%d valor negativo %Zd no está permitido" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "línea ord.:" @@ -3631,39 +3638,39 @@ msgstr "" "el componente de expresión regular `%.*s' probablemente debe ser `[%.*s]'" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "desbalanceado [" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "clase de carácter inválido" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "sintaxis de clase de carácter es [[:espacio:]], no [:espacio:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "escape \\ no terminado" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "contenido inválido de \\{\\}" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "expresión regular demasiado grande" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "desbalanceado (" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "sin sintaxis especificada" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr ") desbalanceado" @@ -3791,7 +3798,7 @@ msgid "Unmatched ) or \\)" msgstr ") o \\) desemparejados" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "No hay una expresión regular previa" diff -urN gawk-5.0.0/po/fi.po gawk-5.0.1/po/fi.po --- gawk-5.0.0/po/fi.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/fi.po 2019-06-18 20:07:22.000000000 +0300 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gawk 4.1.62\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2017-08-19 12:18+0300\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" @@ -39,8 +39,8 @@ msgstr "yritettiin käyttää skalaaria â€%s†taulukkona" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "yritettiin käyttää taulukkoa â€%s†skalaarikontekstissa" @@ -245,11 +245,11 @@ msgid "invalid subscript expression" msgstr "virheellinen indeksointilauseke" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "varoitus: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "tuhoisa: " @@ -395,7 +395,7 @@ msgid "unterminated string" msgstr "päättämätön merkkijono" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 #, fuzzy msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX ei salli â€\\xâ€-koodinvaihtoja" @@ -1125,6 +1125,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "typeof: virheellinen argumenttityyppi â€%sâ€" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1437,7 +1442,7 @@ "missä [N] - (sama kuin paluujälki) tulostaa kaikkien tai N-sisimmäisen " "(ulommaisen jos N < 0) kehyksen jäljen." -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "virhe: " @@ -2067,53 +2072,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "väärä â€%sFMTâ€-määritys â€%sâ€" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "käännetään pois â€--lintâ€-valitsin â€LINTâ€-sijoituksen vuoksi" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "viite alustamattomaan argumenttiin â€%sâ€" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "viite alustamattomaan muuttujaan â€%sâ€" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "yritettiin kenttäviitettä arvosta, joka ei ole numeerinen" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "yritettiin kenttäviitettä null-merkkijonosta" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "yritettiin saantia kenttään %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "viite alustamattomaan kenttään â€$%ldâ€" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "funktio â€%s†kutsuttiin useammalla argumentilla kuin esiteltiin" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: odottamaton tyyppi â€%sâ€" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "jakoa nollalla yritettiin operaatiossa â€/=â€" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "jakoa nollalla yritettiin operaatiossa â€%%=â€" @@ -2200,7 +2205,8 @@ msgstr "funktio â€%sâ€: argumentti #%d: yritettiin käyttää taulukkoa skalaarina" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "kirjaston dynaamista latausta ei tueta" #: extension/filefuncs.c:442 @@ -2513,92 +2519,92 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: neljäs argumentti on gawk-laajennus" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: neljäs argumentti ei ole taulukko" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: toinen argumentti ei ole taulukko" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" "split: saman taulukon käyttö toiselle ja neljännelle argumentille epäonnistui" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split: toisen argumentin käyttö alitaulukkoa neljännelle argumentille " "epäonnistui" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split: neljännen argumentin käyttö alitaulukkoa toiselle argumentille " "epäonnistui" -#: field.c:1035 +#: field.c:1036 #, fuzzy msgid "split: null string for third arg is a non-standard extension" msgstr "split: null-merkkijono kolmantena argumenttina on gawk-laajennus" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: neljäs argumentti ei ole taulukko" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: toinen argumentti ei ole taulukko" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: kolmas argumentti ei ole taulukko" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit: saman taulukon käyttö toiselle ja neljännelle argumentille " "epäonnistui" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit: toisen argumentin käyttö alitaulukkkoa neljännelle argumentille " "epäonnistui" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit: neljännen argumentin käyttö alitaulukkoa toiselle argumentille " "epäonnistui" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "â€FIELDWIDTHS†on gawk-laajennus" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "virheellinen FIELDWIDTHS-arvo kentälle %d lähellä â€%sâ€" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "null-merkkijono â€FSâ€-kenttäerotinmuuttujalle on gawk-laajennus" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "vanha awk ei tue regexp-arvoja â€FSâ€-kenttäerotinmuuttujana" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "â€FPAT†on gawk-laajennus" @@ -3166,11 +3172,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-l kirjasto\t\t--load=kirjasto\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3324,7 +3331,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft ei aseta FS välilehteen POSIX awk:ssa" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3333,73 +3340,73 @@ "%s: â€%s†argumentti valitsimelle â€-v†ei ole â€var=arvoâ€-muodossa\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "â€%s†ei ole laillinen muuttujanimi" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "â€%s†ei ole muuttujanimi, etsitään tiedostoa â€%s=%sâ€" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "" "gawk-ohjelman sisäisen â€%sâ€-määrittelyn käyttö muuttujanimenä epäonnistui" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "funktionimen â€%s†käyttö muuttujanimenä epäonnistui" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "liukulukupoikkeus" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "tuhoisa virhe: sisäinen virhe" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "tuhoisa virhe: sisäinen virhe: segmenttivirhe" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "tuhoisa virhe: sisäinen virhe: pinoylivuoto" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "ei avattu uudelleen tiedostomäärittelijää %d" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "" "laitteen /dev/null avaaminen uudelleen tiedostomäärittelijälle %d epäonnistui" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "tyhjä argumentti valitsimelle â€-e/--source†ohitetaan" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "valitsin â€--posix†korvaa valitsimen â€--traditionalâ€" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "-M ohitettu: MPFR/GMP-tuki ei ole käännetty kohteessa" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: valitsin â€-W %s†on tunnistamaton, ohitetaan\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: valitsin vaatii argumentin -- %c\n" @@ -3454,7 +3461,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s: argumentin #%d negatiivinen arvo %Zd ei ole sallittu" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "komentorivi:" @@ -3613,39 +3620,39 @@ msgstr "" "säännöllisen lausekkeen komponentin â€%.*s†pitäisi luultavasti olla â€[%.*s]â€" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "pariton [" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "virheellinen merkkiluokka" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "merkkiluokkasyntaksi on [[:space:]], ei [:space:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "päättymätön \\-koodinvaihtomerkki" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "virheellinen \\{\\}-sisältö" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "säännöllinen lauseke on liian suuri" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "pariton (" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "syntaksi ei ole määritelty" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "pariton )" @@ -3773,7 +3780,7 @@ msgid "Unmatched ) or \\)" msgstr "Pariton ) tai \\)" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "Ei edellistä säännöllistä lauseketta" diff -urN gawk-5.0.0/po/fr.po gawk-5.0.1/po/fr.po --- gawk-5.0.0/po/fr.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/fr.po 2019-06-18 20:07:22.000000000 +0300 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: gawk 4.2.63\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2019-03-02 23:58+0100\n" "Last-Translator: Jean-Philippe Guérard \n" @@ -41,8 +41,8 @@ msgstr "tentative d'utiliser le scalaire « %s » comme tableau" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "tentative d'utilisation du tableau « %s » dans un contexte scalaire" @@ -240,11 +240,11 @@ msgid "invalid subscript expression" msgstr "expression indice incorrecte" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "avertissement : " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "fatal : " @@ -397,7 +397,7 @@ msgid "unterminated string" msgstr "chaîne non refermée" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX interdit les sauts de lignes physiques dans les chaînes" @@ -1139,6 +1139,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "typeof : type d'argument inconnu « %s »" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1450,7 +1455,7 @@ "where [N] - (identique à backtrace) affiche la trace de tout ou des N " "dernières trames (du début si N < 0)." -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "erreur : " @@ -2074,53 +2079,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "spécification de « %sFMT » erronée « %s »" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "désactivation de « --lint » en raison d'une affectation à « LINT »" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "référence à un argument non initialisé « %s »" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "référence à une variable non initialisée « %s »" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "tentative de référence à un champ via une valeur non numérique" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "tentative de référence à un champ via une chaîne nulle" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "tentative d'accès au champ %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "référence à un champ non initialisé « $%ld »" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "la fonction « %s » a été appelée avec trop d'arguments" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: type « %s » inattendu" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "tentative de division par zéro dans « /= »" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "tentative de division par zéro dans « %%= »" @@ -2214,7 +2219,8 @@ "scalaire" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "chargement dynamique des bibliothèques impossible" #: extension/filefuncs.c:442 @@ -2520,90 +2526,90 @@ msgid "accessing fields from an END rule may not be portable" msgstr "accéder aux champs depuis un END pourrait ne pas être portable" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split : le 4e argument est une extension gawk" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split : le 4e argument n'est pas un tableau" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split : le 2e argument n'est pas un tableau" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "split : impossible d'utiliser le même tableau comme 2e et 4e argument" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split : impossible d'utiliser un sous-tableau du 2e argument en 4e argument" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split : impossible d'utiliser un sous-tableau du 4e argument en 2e argument" -#: field.c:1035 +#: field.c:1036 msgid "split: null string for third arg is a non-standard extension" msgstr "" "split : utiliser une chaîne vide en 3e argument est une extension non " "standard" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit : le 4e argument n'est pas un tableau" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit : le 2e argument n'est pas un tableau" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit : le 3e argument n'est pas un tableau" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit : impossible d'utiliser le même tableau comme 2e et 4e argument" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit : impossible d'utiliser un sous-tableau du 2e argument en 4e " "argument" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit : impossible d'utiliser un sous-tableau du 4e argument en 2e " "argument" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "« FIELDWIDTHS » est une extension gawk" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "« * » doit être le dernier élément de FIELDWIDTHS" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "valeur de FIELDWIDTHS incorrecte, pour le champ %d, près de « %s »" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "utiliser une chaîne vide pour « FS » est une extension gawk" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "" "l'ancien awk n'accepte pas les expr. rationnelles comme valeur de « FS »" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "« FPAT » est une extension gawk" @@ -3165,11 +3171,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-l bibliothèque\t\t--load=bibliothèque\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3330,7 +3337,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft ne définit pas le FS comme étant une tabulation en awk POSIX" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3339,70 +3346,70 @@ "%s : « %s » l'argument de « -v » ne respecte pas la forme « var=valeur »\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "« %s » n'est pas un nom de variable autorisé" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "« %s » n'est pas un nom de variable, recherche du fichier « %s=%s »" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "impossible d'utiliser le mot clef gawk « %s » comme variable" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "impossible d'utiliser la fonction « %s » comme variable" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "exception du traitement en virgule flottante" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "fatal : erreur interne" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "fatal : erreur interne : erreur de segmentation" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "fatal : erreur interne : débordement de la pile" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "aucun descripteur fd %d pré-ouvert" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "impossible de pré-ouvrir /dev/null pour le descripteur fd %d" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "argument vide de l'option « -e / --source » ignoré" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 msgid "`--profile' overrides `--pretty-print'" msgstr "« --profile » prend le pas sur « --pretty-print »" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "-M sans effet : version compilée sans MPFR/GMP" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s : option « -W %s » non reconnue, ignorée\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s : l'option requiert un argument - %c\n" @@ -3457,7 +3464,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s : argument #%d : la valeur négative %Zd est interdite" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "ligne de commande:" @@ -3625,39 +3632,39 @@ "le composant d'expression rationnelle « %.*s » devrait probablement être " "« [%.*s] »" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "[ non apparié" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "classe de caractères incorrecte" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "la syntaxe des classes de caractères est [[:space:]], et non [:space:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "échappement \\ non terminé" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "contenu de \\{\\} incorrect" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "expression rationnelle trop grande" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "( non apparié" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "aucune syntaxe indiquée" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr ") non apparié" @@ -3785,7 +3792,7 @@ msgid "Unmatched ) or \\)" msgstr ") ou \\) sans correspondance" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "Aucune expression rationnelle précédente" diff -urN gawk-5.0.0/po/gawk.pot gawk-5.0.1/po/gawk.pot --- gawk-5.0.0/po/gawk.pot 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/gawk.pot 2019-06-18 20:07:22.000000000 +0300 @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gawk 5.0.0\n" +"Project-Id-Version: gawk 5.0.1\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,8 +37,8 @@ msgstr "" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "" @@ -232,11 +232,11 @@ msgid "invalid subscript expression" msgstr "" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "" -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "" @@ -381,7 +381,7 @@ msgid "unterminated string" msgstr "" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 msgid "POSIX does not allow physical newlines in string values" msgstr "" @@ -1078,6 +1078,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1363,7 +1368,7 @@ "if N < 0) frames." msgstr "" -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "" @@ -1963,53 +1968,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "" @@ -2091,7 +2096,7 @@ msgstr "" #: ext.c:232 -msgid "dynamic loading of library not supported" +msgid "dynamic loading of libraries is not supported" msgstr "" #: extension/filefuncs.c:442 @@ -2392,80 +2397,80 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" -#: field.c:1035 +#: field.c:1036 msgid "split: null string for third arg is a non-standard extension" msgstr "" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "" @@ -2996,11 +3001,11 @@ msgid "\t-l library\t\t--load=library\n" msgstr "" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "" #: main.c:609 @@ -3125,77 +3130,77 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 msgid "`--profile' overrides `--pretty-print'" msgstr "" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" @@ -3250,7 +3255,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "" @@ -3393,39 +3398,39 @@ msgid "regexp component `%.*s' should probably be `[%.*s]'" msgstr "" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "" @@ -3553,7 +3558,7 @@ msgid "Unmatched ) or \\)" msgstr "" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "" diff -urN gawk-5.0.0/po/id.po gawk-5.0.1/po/id.po --- gawk-5.0.0/po/id.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/id.po 2019-06-18 20:07:22.000000000 +0300 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gawk 4.1.0b\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2014-08-03 07:30+0700\n" "Last-Translator: Arif E. Nugroho \n" "Language-Team: Indonesian \n" @@ -36,8 +36,8 @@ msgstr "mencoba untuk menggunakan skalar `%s' sebagai sebuah array" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "mencoba menggunakan array `%s' dalam sebuah konteks skalar" @@ -232,11 +232,11 @@ msgid "invalid subscript expression" msgstr "ekspresi subscript tidak valid" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "peringatan: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "fatal: " @@ -382,7 +382,7 @@ msgid "unterminated string" msgstr "string tidak terselesaikan" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 #, fuzzy msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX tidak mengijinkan escapes `\\x'" @@ -1111,6 +1111,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1413,7 +1418,7 @@ "backtrace [N] - print trace of all or N innermost (outermost if N < 0) " "frames." -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "error: " @@ -2027,53 +2032,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "buruk `%sFMT' spesifikasi `%s'" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "menonaktifkan `--lint' karena penempatan ke `LINT'" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "referensi ke argumen `%s' tidak terinisialisasi" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "referensi ke variabel `%s' tidak terinisialisasi" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "mencoba untuk mereferensi field dari nilai bukan numerik" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "mencoba untuk mereferensi dari null string" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "mencoba untuk mengakses field %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "referensi ke field tidak terinisialisasi `$%ld'" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "fungsi `%s' dipanggil argumen lebih dari yang dideklarasikan" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: unexpected type `%s'" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "pembagian dengan nol dicoba dalam `/='" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "pembagian dengan nol dicoba dalam `%%='" @@ -2161,7 +2166,8 @@ "skalar" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "dynamic loading of library not supported" #: extension/filefuncs.c:442 @@ -2467,81 +2473,81 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: argumen ketiga adalah sebuah ekstensi gawk" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: argumen kedua bukan sebuah array" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: argumen kedua bukan sebuah array" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "split: cannot use the same array for second and fourth args" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "split: cannot use a subarray of second arg for fourth arg" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "split: cannot use a subarray of fourth arg for secod arg" -#: field.c:1035 +#: field.c:1036 #, fuzzy msgid "split: null string for third arg is a non-standard extension" msgstr "split: null string untuk arg ketika adalah sebuah ekstensi gawk" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: argumen kedua bukan sebuah array" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: argumen kedua bukan sebuah array" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: argumen ketiga bukan sebuah array" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "patsplit: cannot use the same array for second and fourth args" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "patsplit: cannot use a subarray of second arg for fourth arg" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "patsplit: cannot use a subarray of fourth arg for second arg" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' adalah sebuah ekstensi gawk" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "" -#: field.c:1238 +#: field.c:1239 #, fuzzy, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "nilai FIELDWIDTHS tidak valid, didekat `%s'" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "null string untuk `FS' adalah sebuah ekstensi gawk" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "awk lama tidak mendukung regexps sebagai nilai dari `FS'" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "`FPAT' adalah sebuah ekstensi gawk" @@ -3089,12 +3095,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-I library\t\t--load=library\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 #, fuzzy -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L lint[=fatal]\t\t--lint[=fatal]\n" #: main.c:609 @@ -3250,7 +3256,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft tidak menset FS ke tab dalam POSIX awk" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3259,72 +3265,72 @@ "%s: `%s' argumen ke `-v' tidak dalam bentuk `var=value'\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' bukan sebuah nama variabel legal" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' bukan sebuah nama variabel, pencarian untuk berkas `%s=%s'" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "tidak dapat menggunakan gawk bawaan `%s' sebagai nama fungsi" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "" "tidak dapat menggunakan nama fungsi `%s' sebagai sebuah variabel atau array" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "eksepsi titik pecahan" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "fatal error: internal error" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "fatal error: internal error: segfault" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "fatal error: internal error: stack overflow" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "tidak ada pre-opened fd %d" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "tidak dapat pre-open /dev/null untuk fd %d" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "argumen kosong ke `-e/--source' diabaikan" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "`--posix' overrides `--traditional'" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: pilihan `-W %s' tidak dikenal, diabaikan\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: pilihan membutuhkan sebuah argumen -- %c\n" @@ -3381,7 +3387,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s: #%d nilai negatif %Zd akan memberikan hasil aneh" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "cmd. baris:" @@ -3539,41 +3545,41 @@ msgid "regexp component `%.*s' should probably be `[%.*s]'" msgstr "regexp component `%.*s' should probably be `[%.*s]'" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "unbalanced [" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "nama kelas karakter tidak valid" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "character class syntax is [[:space:]], not [:space:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "unfinished \\ escape" -#: support/dfa.c:1490 +#: support/dfa.c:1492 #, fuzzy msgid "invalid content of \\{\\}" msgstr "Isi dari \\{\\} tidak valid" -#: support/dfa.c:1493 +#: support/dfa.c:1495 #, fuzzy msgid "regular expression too big" msgstr "Ekspresi regular terlalu besar" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "unbalanced (" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "no syntax specified" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "unbalanced )" @@ -3702,7 +3708,7 @@ msgid "Unmatched ) or \\)" msgstr "Tidak cocok ) atau \\)" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "Tidak ada ekspresi regular sebelumnya" diff -urN gawk-5.0.0/po/it.po gawk-5.0.1/po/it.po --- gawk-5.0.0/po/it.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/it.po 2019-06-18 20:07:22.000000000 +0300 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: GNU Awk 4.2.2, API: 2.0\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2019-02-17 20:00+0100\n" "Last-Translator: Antonio Colombo \n" "Language-Team: Italian \n" @@ -35,8 +35,8 @@ msgstr "tentativo di usare scalare '%s' come vettore" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "tentativo di usare vettore `%s' in un contesto scalare" @@ -240,11 +240,11 @@ msgid "invalid subscript expression" msgstr "espressione indice invalida" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "attenzione: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "fatale: " @@ -393,7 +393,7 @@ msgid "unterminated string" msgstr "stringa non terminata" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 msgid "POSIX does not allow physical newlines in string values" msgstr "" "POSIX non consente dei caratteri di ritorno a capo nei valori assegnati a " @@ -1132,6 +1132,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "typeof: tipo di argomento sconosciuto `%s'" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1446,7 +1451,7 @@ "dove [N] - (equivalente a backtrace) stampa tracia di tutti gli elementi o " "degli N più interni (più esterni se N <0)" -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "errore: " @@ -2068,53 +2073,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "specificazione invalida `%sFMT' `%s'" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "disabilito `--lint' a causa di assegnamento a `LINT'" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "riferimento ad argomento non inizializzato `%s'" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "riferimento a variabile non inizializzata `%s'" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "tentativo di riferimento a un campo da valore non-numerico" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "tentativo di riferimento a un campo da una stringa nulla" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "tentativo di accedere al campo %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "riferimento a campo non inizializzato `$%ld'" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "funzione `%s' chiamata con più argomenti di quelli previsti" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: tipo non previsto `%s'" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "divisione per zero tentata in `/='" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "divisione per zero tentata in `%%='" @@ -2199,7 +2204,8 @@ msgstr "funzione `%s': argomento #%d: tentativo di usare vettore come scalare" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "caricamento dinamico di libreria non supportato" #: extension/filefuncs.c:442 @@ -2504,90 +2510,90 @@ msgid "accessing fields from an END rule may not be portable" msgstr "utilizzare campi da una regola END può essere non-portabile" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: il quarto argomento è un'estensione gawk" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: il quarto argomento non è un vettore" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: il secondo argomento non è un vettore" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" "split: non si può usare un unico vettore come secondo e quarto argomento" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split: non consentito un quarto argomento che sia un sottovettore del " "secondo argomento" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split: non consentito un secondo argomento che sia un sottovettore del " "quarto argomento" -#: field.c:1035 +#: field.c:1036 msgid "split: null string for third arg is a non-standard extension" msgstr "split: la stringa nulla come terzo arg. è un'estensione non-standard" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: il quarto argomento non è un vettore" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: il secondo argomento non è un vettore" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: il terzo argomento non può essere nullo" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit: non si può usare un unico vettore come secondo e quarto argomento" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit: non consentito un quarto argomento che sia un sottovettore del " "secondo argomento" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit: non consentito un secondo argomento che sia un sottovettore del " "quarto argomento" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' è un'estensione gawk" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "`*' deve essere l'ultimo elemento specificato per FIELDWIDTHS" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "valore di FIELDWIDTHS non valido, per il campo %d, vicino a `%s'" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "la stringa nulla usata come `FS' è un'estensione gawk" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "il vecchio awk non supporta espressioni come valori di `FS'" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "`FPAT' è un'estensione gawk" @@ -3145,11 +3151,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-l libreria\t\t--load=libreria\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3304,7 +3311,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft non imposta FS a `tab' nell'awk POSIX" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3313,71 +3320,71 @@ "%s: `%s' argomento di `-v' non in forma `var=valore'\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' non è un nome di variabile ammesso" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' non è un nome di variabile, cerco il file `%s=%s'" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "nome funzione interna gawk `%s' non ammesso come nome variabile" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "non è possibile usare nome di funzione `%s' come nome di variabile" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "eccezione floating point" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "errore fatale: errore interno" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "errore fatale: errore interno: segfault" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "errore fatale: errore interno: stack overflow" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "manca `fd' pre-aperta %d" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "non riesco a pre-aprire /dev/null per `fd' %d" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "argomento di `-e/--source' nullo, ignorato" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "`--posix' annulla `--traditional'" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "-M ignorato: supporto per MPFR/GMP non generato" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: opzione `-W %s' non riconosciuta, ignorata\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'opzione richiede un argomento -- %c\n" @@ -3432,7 +3439,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s: argomento #%d con valore negativo %Zd non consentito" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "riga com.:" @@ -3598,39 +3605,39 @@ msgstr "" "componente di espressione `%.*s' dovrebbe probabilmente essere `[%.*s]'" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "[ non chiusa" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "character class non valida" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "sintassi character class è [[:spazio:]], non [:spazio:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "sequenza escape \\ non completa" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "contenuto di \\{\\} non valido" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "espressione regolare troppo complessa" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "( non chiusa" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "nessuna sintassi specificata" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr ") non aperta" @@ -3758,7 +3765,7 @@ msgid "Unmatched ) or \\)" msgstr ") o \\) non aperta" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "Nessuna espressione regolare precedente" diff -urN gawk-5.0.0/po/ja.po gawk-5.0.1/po/ja.po --- gawk-5.0.0/po/ja.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/ja.po 2019-06-18 20:07:22.000000000 +0300 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gawk 4.1.0b\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2014-11-07 12:26+0000\n" "Last-Translator: Yasuaki Taniguchi \n" "Language-Team: Japanese \n" @@ -38,8 +38,8 @@ msgstr "スカラー `%s' ã‚’é…列ã¨ã—ã¦ä½¿ç”¨ã™ã‚‹è©¦ã¿ã§ã™" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "スカラーコンテキストã§é…列 `%s' を使用ã™ã‚‹è©¦ã¿ã§ã™" @@ -234,11 +234,11 @@ msgid "invalid subscript expression" msgstr "添字ã®å¼ãŒç„¡åŠ¹ã§ã™" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "警告: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "致命的: " @@ -384,7 +384,7 @@ msgid "unterminated string" msgstr "文字列ãŒçµ‚端ã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 #, fuzzy msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX ã§ã¯ `\\x' エスケープã¯è¨±å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“" @@ -1112,6 +1112,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1397,7 +1402,7 @@ "if N < 0) frames." msgstr "" -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "エラー: " @@ -2004,53 +2009,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "誤ã£ãŸ `%sFMT' 指定 `%s' ã§ã™" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "`LINT' ã¸ã®ä»£å…¥ã«å¾“ã„ `--lint' を無効ã«ã—ã¾ã™" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "åˆæœŸåŒ–ã•ã‚Œã¦ã„ãªã„引数 `%s' ã¸ã®å‚ç…§ã§ã™" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "åˆæœŸåŒ–ã•ã‚Œã¦ã„ãªã„変数 `%s' ã¸ã®å‚ç…§ã§ã™" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "éžæ•°å€¤ã‚’使用ã—ãŸãƒ•ã‚¤ãƒ¼ãƒ«ãƒ‰å‚ç…§ã®è©¦ã¿ã§ã™" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "NULL 文字列を使用ã—ã¦ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®å‚照を試ã¿ã¦ã„ã¾ã™" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "フィールド %ld ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã®è©¦ã¿ã§ã™" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "åˆæœŸåŒ–ã•ã‚Œã¦ã„ãªã„フィールド `$%ld' ã¸ã®å‚ç…§ã§ã™" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "宣言ã•ã‚Œã¦ã„る数より多ã„引数を使ã£ã¦é–¢æ•° `%s' を呼ã³å‡ºã—ã¾ã—ãŸ" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: 予期ã—ãªã„åž‹ `%s' ã§ã™" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "`/=' 内ã§ã‚¼ãƒ­ã«ã‚ˆã‚‹é™¤ç®—ãŒè¡Œã‚ã‚Œã¾ã—ãŸ" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "`%%=' 内ã§ã‚¼ãƒ­ã«ã‚ˆã‚‹é™¤ç®—ãŒè¡Œã‚ã‚Œã¾ã—ãŸ" @@ -2140,7 +2145,7 @@ msgstr "関数 `%s': 引数 #%d: é…列をスカラーã¨ã—ã¦ä½¿ç”¨ã™ã‚‹è©¦ã¿ã§ã™" #: ext.c:232 -msgid "dynamic loading of library not supported" +msgid "dynamic loading of libraries is not supported" msgstr "" #: extension/filefuncs.c:442 @@ -2454,81 +2459,81 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: 第四引数㯠gawk æ‹¡å¼µã§ã™" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: 第四引数ãŒé…列ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: 第二引数ãŒé…列ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "split: 第二引数ã¨ç¬¬å››å¼•æ•°ã«åŒã˜é…列を使用ã™ã‚‹ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "split: 第四引数ã«ç¬¬äºŒå¼•æ•°ã®éƒ¨åˆ†é…列を使用ã™ã‚‹ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "split: 第二引数ã«ç¬¬å››å¼•æ•°ã®éƒ¨åˆ†é…列を使用ã™ã‚‹ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“" -#: field.c:1035 +#: field.c:1036 #, fuzzy msgid "split: null string for third arg is a non-standard extension" msgstr "split: 第三引数㫠NULL 文字列を使用ã™ã‚‹ã“ã¨ã¯ gawk æ‹¡å¼µã§ã™" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: 第四引数ãŒé…列ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: 第二引数ãŒé…列ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: 第三引数ã¯éž NULL ã§ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "patsplit: 第二引数ã¨ç¬¬å››å¼•æ•°ã«åŒã˜é…列を使用ã™ã‚‹ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "patsplit: 第四引数ã«ç¬¬äºŒå¼•æ•°ã®éƒ¨åˆ†é…列を使用ã™ã‚‹ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "patsplit: 第二引数ã«ç¬¬å››å¼•æ•°ã®éƒ¨åˆ†é…列を使用ã™ã‚‹ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' 㯠gawk æ‹¡å¼µã§ã™" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "" -#: field.c:1238 +#: field.c:1239 #, fuzzy, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "`%s' 付近㮠FIELDWIDTHS 値ãŒç„¡åŠ¹ã§ã™" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "`FS' ã« NULL 文字列を使用ã™ã‚‹ã®ã¯ gawk æ‹¡å¼µã§ã™" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "å¤ã„ awk 㯠`FS' ã®å€¤ã¨ã—ã¦æ­£è¦è¡¨ç¾ã‚’サãƒãƒ¼ãƒˆã—ã¾ã›ã‚“" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "`FPAT' 㯠gawk æ‹¡å¼µã§ã™" @@ -3078,12 +3083,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 #, fuzzy -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L [fatal]\t\t--lint[=fatal]\n" #: main.c:609 @@ -3240,7 +3245,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "POSIX awk ã§ã¯ -Ft 㯠FS をタブã«è¨­å®šã—ã¾ã›ã‚“" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3249,71 +3254,71 @@ "%s: オプション `-v' ã®å¼•æ•° `%s' ㌠`変数=代入値' ã®å½¢å¼ã«ãªã£ã¦ã„ã¾ã›ã‚“。\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' ã¯ä¸æ­£ãªå¤‰æ•°åã§ã™" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' ã¯å¤‰æ•°åã§ã¯ã‚ã‚Šã¾ã›ã‚“。`%s=%s' ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’探ã—ã¾ã™ã€‚" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "gawk ã«çµ„ã¿è¾¼ã¿ã® `%s' ã¯å¤‰æ•°åã¨ã—ã¦ä½¿ç”¨å‡ºæ¥ã¾ã›ã‚“" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "関数 `%s' ã¯å¤‰æ•°åã¨ã—ã¦ä½¿ç”¨å‡ºæ¥ã¾ã›ã‚“" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "浮動å°æ•°ç‚¹ä¾‹å¤–" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "致命的エラー: 内部エラー" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "致命的エラー: 内部エラー: セグメンテーションé•å" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "致命的エラー: 内部エラー: スタックオーãƒãƒ¼ãƒ•ãƒ­ãƒ¼" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "fd %d ãŒäº‹å‰ã«é–‹ã„ã¦ã„ã¾ã›ã‚“。" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "事å‰ã« fd %d 用㫠/dev/null ã‚’é–‹ã‘ã¾ã›ã‚“。" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "`-e/--source' ã¸ã®ç©ºã®å¼•æ•°ã¯ç„¡è¦–ã•ã‚Œã¾ã—ãŸ" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "オプション `--posix' 㯠`--traditional' を無効ã«ã—ã¾ã™ã€‚" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: オプション `-W %s' ã¯èªè­˜ã§ãã¾ã›ã‚“。無視ã•ã‚Œã¾ã—ãŸ\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: 引数ãŒå¿…è¦ãªã‚ªãƒ—ション -- %c\n" @@ -3372,7 +3377,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "and(%lf, %lf): è² ã®æ•°å€¤ã‚’使用ã™ã‚‹ã¨ç•°å¸¸ãªçµæžœã«ãªã‚Šã¾ã™" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "コマンドライン:" @@ -3527,42 +3532,42 @@ msgid "regexp component `%.*s' should probably be `[%.*s]'" msgstr "æ­£è¦è¡¨ç¾ã®è¦ç´  `%.*s' ã¯ãŠãらã `[%.*s]' ã§ã‚ã‚‹ã¹ãã§ã™" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "" -#: support/dfa.c:1136 +#: support/dfa.c:1138 #, fuzzy msgid "invalid character class" msgstr "無効ãªæ–‡å­—クラスåã§ã™" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "" -#: support/dfa.c:1490 +#: support/dfa.c:1492 #, fuzzy msgid "invalid content of \\{\\}" msgstr "\\{\\} ã®ä¸­èº«ãŒç„¡åŠ¹ã§ã™" -#: support/dfa.c:1493 +#: support/dfa.c:1495 #, fuzzy msgid "regular expression too big" msgstr "æ­£è¦è¡¨ç¾ãŒå¤§ãã™ãŽã¾ã™" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "" @@ -3691,7 +3696,7 @@ msgid "Unmatched ) or \\)" msgstr ") ã¾ãŸã¯ \\) ãŒä¸ä¸€è‡´ã§ã™" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "以å‰ã«æ­£è¦è¡¨ç¾ãŒã‚ã‚Šã¾ã›ã‚“" diff -urN gawk-5.0.0/po/ko.po gawk-5.0.1/po/ko.po --- gawk-5.0.0/po/ko.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/ko.po 2019-06-18 20:07:22.000000000 +0300 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gawk 4.2.63\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2019-03-04 16:44+0900\n" "Last-Translator: Seong-ho Cho \n" "Language-Team: Korean \n" @@ -39,8 +39,8 @@ msgstr "`%s' ìŠ¤ì¹¼ë¼ êµ¬ì¡°ë¥¼ ë°°ì—´ 구조로 취급하려고 합니다" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "ìŠ¤ì¹¼ë¼ ì»¨í…ìŠ¤íŠ¸ì˜ `%s' ë°°ì—´ 구조를 취급하려고 합니다" @@ -242,11 +242,11 @@ msgid "invalid subscript expression" msgstr "ìž˜ëª»ëœ í•˜ìœ„ìŠ¤í¬ë¦½íŠ¸ ì—°ì‚°ì‹" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "경고: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "실패: " @@ -393,7 +393,7 @@ msgid "unterminated string" msgstr "ë나지 ì•Šì€ ë¬¸ìžì—´" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 msgid "POSIX does not allow physical newlines in string values" msgstr "POSIXì—서는 문ìžì—´ ê°’ì— ë¬¼ë¦¬ 개행 문ìžë¥¼ 허용하지 않습니다" @@ -1105,6 +1105,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "typeof: ì•Œ 수 없는 `%s' ì¸ìž 형ì‹" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1413,7 +1418,7 @@ "where [N] - (backtrace와 ë™ì¼) ì „ì²´ ë˜ëŠ” 안쪽 프레임 Nê°œ(Nì´ ìŒìˆ˜ì´ë©´ 바깥 프" "레임 Nê°œ) ì¶”ì  ë‹¨ê³„ë¥¼ 출력합니다." -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "오류: " @@ -2034,53 +2039,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "ìž˜ëª»ëœ `%2$s' `%1$sFMT' ì •ì˜" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "`LINT'ì— ê°’ì„ í• ë‹¹í•˜ì—¬ `--lint' ì˜µì…˜ì„ ë•ë‹ˆë‹¤" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "초기화 하지 ì•Šì€ `%s' ì¸ìž 값으로 참조" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "초기화 하지 ì•Šì€ `%s' 값으로 참조" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "숫ìžê°€ ì•„ë‹Œ 값으로 í•„ë“œ 참조 ì‹œë„" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "null 문ìžì—´ë¡œ í•„ë“œ 참조 ì‹œë„" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "%ld번 í•„ë“œ ì ‘ê·¼ ì‹œë„" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "초기화하지 ì•Šì€ `$%ld'번 필드를 참조했습니다" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "`%s' 함수를 ì„ ì–¸ 갯수보다 ë” ë§Žì€ ì¸ìž 값으로 호출했습니다" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: 예ìƒì¹˜ 못한 `%s' 형ì‹" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "`/=' ì—°ì‚°ìžë¡œ 0으로 나누기를 ì‹œë„했습니다" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "`%%=' ì—°ì‚°ìžë¡œ 0으로 나누기를 ì‹œë„했습니다" @@ -2164,7 +2169,8 @@ msgstr "`%s' 함수: ì¸ìž #%d: ë°°ì—´ì„ ìŠ¤ì¹¼ë¼ ê°’ìœ¼ë¡œ 사용 ì‹œë„" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬ ë™ìž‘ 불러오기를 지ì›í•˜ì§€ 않습니다" #: extension/filefuncs.c:442 @@ -2468,88 +2474,88 @@ msgid "accessing fields from an END rule may not be portable" msgstr "END 규칙ì—ì„œì˜ í•„ë“œ ì ‘ê·¼ 코드는 ì´ì‹ 불가능합니다" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: 네번째 ì¸ìž ëŒ€ìž…ì€ gawk 확장 기능입니다" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: 네번째 ì¸ìž ê°’ì´ ë°°ì—´ì´ ì•„ë‹™ë‹ˆë‹¤" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: ë‘번째 ì¸ìž ê°’ì´ ë°°ì—´ì´ ì•„ë‹™ë‹ˆë‹¤" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" "split: ë‘번째 ì¸ìžì™€ 네번째 ì¸ìž 값으로 ë™ì¼í•œ ë°°ì—´ì„ ì‚¬ìš©í•  수 없습니다" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split: 네번째 ì¸ìžì— 대한 ë‘번째 ì¸ìž 값으로 하위 ë°°ì—´ì„ ì‚¬ìš©í•  수 없습니다" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split: ë‘번째 ì¸ìžì— 대한 네번째 ì¸ìž 값으로 하위 ë°°ì—´ì„ ì‚¬ìš©í•  수 없습니다" -#: field.c:1035 +#: field.c:1036 msgid "split: null string for third arg is a non-standard extension" msgstr "split: 세번째 null 문ìžì—´ ì¸ìž ê°’ì€ ë¹„ 표준 확장 기능입니다" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: 네번째 ì¸ìž ê°’ì€ ë°°ì—´ì´ ì•„ë‹™ë‹ˆë‹¤" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: ë‘번째 ì¸ìž ê°’ì€ ë°°ì—´ì´ ì•„ë‹™ë‹ˆë‹¤" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: 세번째 ì¸ìž ê°’ì€ null ê°’ì´ ì•„ë‹ˆì–´ì•¼ 합니다" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit: ë‘번째 ì¸ìžì™€ 네번째 ì¸ìž 값으로 ë™ì¼í•œ ë°°ì—´ì„ ì‚¬ìš©í•  수 없습니다" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit: 네번째 ì¸ìžì— 대한 ë‘번째 ì¸ìž 값으로 하위 ë°°ì—´ì„ ì‚¬ìš©í•  수 없습니" "다" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit: ë‘번째 ì¸ìžì— 대한 네번째 ì¸ìž 값으로 하위 ë°°ì—´ì„ ì‚¬ìš©í•  수 없습니" "다" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS'는 gawk 확장 기능입니다" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "`*'는 FIELDWIDTHSì˜ ë§ˆì§€ë§‰ 지시ìžì—¬ì•¼í•©ë‹ˆë‹¤" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "%d번째 í•„ë“œ `%s' ë¶€ê·¼ì— ìž˜ëª»ëœ FIELDWIDTHS ê°’" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "`FS'ì— ëŒ€í•œ null 문ìžì—´ ëŒ€ìž…ì€ gawk 확장 기능입니다" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "ì˜¤ëž˜ëœ awk 버전ì—서는 `FS'ì˜ ì •ê·œ 표현ì‹ê°’ ì‚¬ìš©ì„ ì§€ì›í•˜ì§€ 않습니다" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "`FPAT'ì€ gawk 확장 기능입니다" @@ -3093,11 +3099,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-l <ë¼ì´ë¸ŒëŸ¬ë¦¬>\t\t--load=<ë¼ì´ë¸ŒëŸ¬ë¦¬>\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3252,7 +3259,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft ì˜µì…˜ì— POSIX awkì˜ íƒ­ì— ëŒ€í•œ í•„ë“œ 구분ìžê°€ 없습니다" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3261,70 +3268,70 @@ "%s: `<변수>=<ê°’>' 형ì‹ì´ ì•„ë‹Œ `-v'ì˜ `%s' ì¸ìžê°’\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s'ì€(는) ì ì ˆí•œ 변수 ì´ë¦„ì´ ì•„ë‹™ë‹ˆë‹¤" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s'ì€(는) 변수 ì´ë¦„ì´ ì•„ë‹™ë‹ˆë‹¤. `%s=%s' 파ì¼ì„ 살펴보는 중" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "`%s' gawk 내장 요소를 변수 ì´ë¦„으로 취급할 수 없습니다" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "`%s' 함수를 변수 ì´ë¦„으로 취급할 수 없습니다" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "ì†Œìˆ«ì  ì˜ˆì™¸" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "ì¹˜ëª…ì  ì˜¤ë¥˜: 내부 오류" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "ì¹˜ëª…ì  ì˜¤ë¥˜: 내부 오류: 세그먼테ì´ì…˜ 오류" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "ì¹˜ëª…ì  ì˜¤ë¥˜: 내부 오류: ìŠ¤íƒ ì˜¤ë²„í”Œë¡œìš°" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "íŒŒì¼ ì„œìˆ ìž %d번 미리 열지 ì•ŠìŒ" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "íŒŒì¼ ì„œìˆ ìž %dë²ˆì— ëŒ€í•´ /dev/nullì„ ë¯¸ë¦¬ ì—´ 수 없습니다" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "`-e/--source'ì˜ ë¹ˆ ì¸ìž ê°’ ëŒ€ìž…ì€ ë¬´ì‹œí•©ë‹ˆë‹¤" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 msgid "`--profile' overrides `--pretty-print'" msgstr "`--profile' ì˜µì…˜ì€ `--pretty-print' ì˜µì…˜ì— ìš°ì„ í•©ë‹ˆë‹¤" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "-M 무시함: MPFR/GMP ê¸°ëŠ¥ì„ ë„£ì–´ 컴파ì¼í•˜ì§€ 않았습니다" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: `-W %s' ì˜µì…˜ì€ ì¸ì‹í•  수 없습니다. 무시함\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: ì˜µì…˜ì— ì¸ìž ê°’ì´ í•„ìš”í•©ë‹ˆë‹¤ -- %c\n" @@ -3379,7 +3386,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s: #%d번째 %Zd ì¸ìž ê°’ì€ í—ˆìš©í•˜ì§€ 않습니다" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "명령행:" @@ -3538,39 +3545,39 @@ msgid "regexp component `%.*s' should probably be `[%.*s]'" msgstr "ì •ê·œ 표현ì‹ì˜ `%.*s' 구성 요소는 `[%.*s]' ì´ì–´ì•¼ í•  것 같습니다" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "ì§ì´ 맞지 않는 [ 괄호" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "ìž˜ëª»ëœ ë¬¸ìž í´ëž˜ìŠ¤" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "ë¬¸ìž í´ëž˜ìŠ¤ 표기 ë°©ì‹ì€ [:space:]ê°€ ì•„ë‹Œ [[:space:]]입니다" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "ë나지 ì•Šì€ \\ ì´ìŠ¤ì¼€ì´í”„ 문ìž" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "ìž˜ëª»ëœ \\{\\} ë‚´ìš©" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "ì •ê·œ 표현ì‹ì´ 너무 ê¹ë‹ˆë‹¤" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "ì§ì´ 맞지 않는 ( 괄호" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "êµ¬ë¬¸ì„ ì§€ì •í•˜ì§€ 않았습니다" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "ì§ì´ 맞지 않는 ) 괄호" @@ -3700,7 +3707,7 @@ msgid "Unmatched ) or \\)" msgstr "ì¼ì¹˜í•˜ì§€ 않는 ) ë˜ëŠ” \\) 괄호" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "ì´ì „ ì •ê·œ í‘œí˜„ì‹ ì—†ìŒ" diff -urN gawk-5.0.0/po/LINGUAS gawk-5.0.1/po/LINGUAS --- gawk-5.0.0/po/LINGUAS 2019-04-05 10:38:15.000000000 +0300 +++ gawk-5.0.1/po/LINGUAS 2019-05-26 21:31:02.000000000 +0300 @@ -11,6 +11,7 @@ ms nl pl +pt pt_BR sv vi diff -urN gawk-5.0.0/po/ms.po gawk-5.0.1/po/ms.po --- gawk-5.0.0/po/ms.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/ms.po 2019-06-18 20:07:22.000000000 +0300 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gawk 4.0.75\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2013-04-19 10:45+0800\n" "Last-Translator: Sharuzzaman Ahmat Raslan \n" "Language-Team: Malay \n" @@ -39,8 +39,8 @@ msgstr "cubaan untuk menggunakan skalar `%s' sebagai tatasusunan" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "cubaan untuk menggunakan tatasusunan `%s' dalam konteks skalar" @@ -234,11 +234,11 @@ msgid "invalid subscript expression" msgstr "" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "" -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "" @@ -383,7 +383,7 @@ msgid "unterminated string" msgstr "" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 msgid "POSIX does not allow physical newlines in string values" msgstr "" @@ -1080,6 +1080,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1365,7 +1370,7 @@ "if N < 0) frames." msgstr "" -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "" @@ -1965,53 +1970,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "" @@ -2093,7 +2098,7 @@ msgstr "" #: ext.c:232 -msgid "dynamic loading of library not supported" +msgid "dynamic loading of libraries is not supported" msgstr "" #: extension/filefuncs.c:442 @@ -2394,80 +2399,80 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" -#: field.c:1035 +#: field.c:1036 msgid "split: null string for third arg is a non-standard extension" msgstr "" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "" @@ -2998,11 +3003,11 @@ msgid "\t-l library\t\t--load=library\n" msgstr "" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "" #: main.c:609 @@ -3127,77 +3132,77 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 msgid "`--profile' overrides `--pretty-print'" msgstr "" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" @@ -3252,7 +3257,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "" @@ -3395,39 +3400,39 @@ msgid "regexp component `%.*s' should probably be `[%.*s]'" msgstr "" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "" @@ -3555,7 +3560,7 @@ msgid "Unmatched ) or \\)" msgstr "" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "" diff -urN gawk-5.0.0/po/nl.po gawk-5.0.1/po/nl.po --- gawk-5.0.0/po/nl.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/nl.po 2019-06-18 20:07:22.000000000 +0300 @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: gawk 4.2.63\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2019-03-04 10:51+0100\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" @@ -43,8 +43,8 @@ msgstr "scalair '%s' wordt gebruikt als array" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "array '%s' wordt gebruikt in een scalaire context" @@ -248,11 +248,11 @@ msgid "invalid subscript expression" msgstr "ongeldige index-expressie" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "waarschuwing: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "fataal: " @@ -397,7 +397,7 @@ msgid "unterminated string" msgstr "onafgesloten string" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX staat geen nieuweregeltekens toe in tekenreeksen" @@ -1121,6 +1121,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1442,7 +1447,7 @@ "where[N] - (zelfde als backtrace) een trace weergeven van alle of N " "binnenste frames (of buitenste als N < 0)" -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "fout: " @@ -2062,53 +2067,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "onjuiste opgave van '%sFMT': '%s'" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "'--lint' wordt uitgeschakeld wegens toewijzing aan 'LINT'" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "verwijzing naar ongeïnitialiseerd argument '%s'" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "verwijzing naar ongeïnitialiseerde variabele '%s'" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "veldverwijzingspoging via een waarde die geen getal is" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "veldverwijzingspoging via een lege string" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "toegangspoging tot veld %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "verwijzing naar ongeïnitialiseerd veld '$%ld'" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "functie '%s' aangeroepen met meer argumenten dan gedeclareerd" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack(): onverwacht type '%s'" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "deling door nul in '/='" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "deling door nul in '%%='" @@ -2193,7 +2198,8 @@ msgstr "functie '%s': argument #%d: een array wordt gebruikt als scalair" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "het dynamisch laden van de bibliotheek wordt niet ondersteund" #: extension/filefuncs.c:442 @@ -2504,93 +2510,93 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: vierde argument is een gawk-uitbreiding" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: vierde argument is geen array" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: tweede argument is geen array" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" "split: hetzelfde array kan niet zowel als tweede als als vierde argument " "gebruikt worden" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split: een subarray van het tweede argument kan niet als vierde argument " "gebruikt worden" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split: een subarray van het vierde argument kan niet als tweede argument " "gebruikt worden" -#: field.c:1035 +#: field.c:1036 #, fuzzy msgid "split: null string for third arg is a non-standard extension" msgstr "split: lege string als derde argument is een gawk-uitbreiding" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: vierde argument is geen array" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: tweede argument is geen array" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: derde argument moet niet-nil zijn" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit: hetzelfde array kan niet zowel als tweede als als vierde argument " "gebruikt worden" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit: een subarray van het tweede argument kan niet als vierde argument " "gebruikt worden" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit: een subarray van het vierde argument kan niet als tweede argument " "gebruikt worden" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "'FIELDWIDTHS' is een gawk-uitbreiding" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "" -#: field.c:1238 +#: field.c:1239 #, fuzzy, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "ongeldige waarde voor FIELDWIDTHS, nabij '%s'" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "een lege string als 'FS' is een gawk-uitbreiding" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "oude 'awk' staat geen reguliere expressies toe als waarde van 'FS'" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "'FPAT' is een gawk-uitbreiding" @@ -3146,11 +3152,12 @@ msgstr "\t-l bibliotheek\t\t--load=bibliotheek\n" # FIXME: are arguments literal or translatable? -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L[fatal|invalid]\t\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3297,7 +3304,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft maakt van FS geen tab in POSIX-awk" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3306,72 +3313,72 @@ "%s: argument '%s' van '-v' is niet van de vorm 'var=waarde'\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "'%s' is geen geldige variabelenaam" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "'%s' is geen variabelenaam; zoekend naar bestand '%s=%s'" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "kan in gawk ingebouwde '%s' niet als variabelenaam gebruiken" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "kan functie '%s' niet als variabelenaam gebruiken" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "drijvendekomma-berekeningsfout" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "fatale fout: **interne fout**" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "fatale fout: **interne fout**: segmentatiefout" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "fatale fout: **interne fout**: stack is vol" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "geen reeds-geopende bestandsdescriptor %d" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "kan /dev/null niet openen voor bestandsdescriptor %d" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "argument van '-e/--source' is leeg; genegeerd" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "'--posix' overstijgt '--traditional'" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "" "optie '-M' is genegeerd; ondersteuning voor MPFR/GMP is niet meegecompileerd" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: optie '-W %s' is onbekend; genegeerd\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: optie vereist een argument -- %c\n" @@ -3429,7 +3436,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%1$s: negatieve waarde %3$Zd van argument #%2$d geeft rare resultaten" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "commandoregel:" @@ -3590,39 +3597,39 @@ msgstr "" "component '%.*s' van reguliere expressie moet vermoedelijk '[%.*s]' zijn" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "ongepaarde [" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "ongeldige tekenklasse" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "syntax van tekenklasse is [[:space:]], niet [:space:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "onafgemaakte \\-stuurcode" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "ongeldige inhoud van \\{\\}" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "reguliere expressie is te groot" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "ongepaarde (" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "geen syntax opgegeven" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "ongepaarde )" @@ -3750,7 +3757,7 @@ msgid "Unmatched ) or \\)" msgstr "Ongepaarde ) of \\)" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "Geen eerdere reguliere expressie" diff -urN gawk-5.0.0/po/pl.po gawk-5.0.1/po/pl.po --- gawk-5.0.0/po/pl.po 2019-04-12 12:29:28.000000000 +0300 +++ gawk-5.0.1/po/pl.po 2019-06-18 20:07:22.000000000 +0300 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: gawk 4.1.0b\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2014-03-22 17:49+0100\n" "Last-Translator: Wojciech Polak \n" "Language-Team: Polish \n" @@ -40,8 +40,8 @@ msgstr "próba użycia skalaru `%s' jako tablicy" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "próba użycia tablicy `%s' w kontekÅ›cie skalaru" @@ -248,11 +248,11 @@ msgid "invalid subscript expression" msgstr "nieprawidÅ‚owe wyrażenie indeksowe" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "ostrzeżenie: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "fatalny bÅ‚Ä…d: " @@ -401,7 +401,7 @@ msgid "unterminated string" msgstr "niezakoÅ„czony Å‚aÅ„cuch" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 #, fuzzy msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX nie zezwala na sekwencjÄ™ ucieczki `\\x'" @@ -1131,6 +1131,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1416,7 +1421,7 @@ "if N < 0) frames." msgstr "" -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "bÅ‚Ä…d: " @@ -2028,55 +2033,55 @@ msgid "bad `%sFMT' specification `%s'" msgstr "zÅ‚a specyfikacja `%sFMT' `%s'" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "wyÅ‚Ä…czenie `--lint' z powodu przypisania do `LINT'" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "odwoÅ‚anie do niezainicjowanego argumentu `%s'" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "odwoÅ‚anie do niezainicjowanej zmiennej `%s'" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "próba odwoÅ‚ania do pola poprzez nienumerycznÄ… wartość" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "próba odwoÅ‚ania z zerowego Å‚aÅ„cucha" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "próba dostÄ™pu do pola %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "odwoÅ‚anie do niezainicjowanego pola `$%ld'" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "" "funkcja `%s' zostaÅ‚a wywoÅ‚ana z wiÄ™kszÄ… iloÅ›ciÄ… argumentów niż zostaÅ‚o to " "zadeklarowane" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: niespodziewany typ `%s'" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "próba dzielenia przez zero w `/='" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "próba dzielenia przez zero w `%%='" @@ -2160,7 +2165,8 @@ msgstr "funkcja `%s': argument #%d: próba użycia tablicy jako skalaru" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "dynamiczne Å‚adowanie biblioteki nie jest wspierane" #: extension/filefuncs.c:442 @@ -2468,89 +2474,89 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: czwarty argument jest rozszerzeniem gawk" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: czwarty argument nie jest tablicÄ…" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: drugi argument nie jest tablicÄ…" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" "split: nie można użyć tej samej tablicy dla drugiego i czwartego argumentu" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split: nie można użyć podtablicy drugiego argumentu dla czwartego argumentu" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split: nie można użyć podtablicy czwartego argumentu dla drugiego argumentu" -#: field.c:1035 +#: field.c:1036 #, fuzzy msgid "split: null string for third arg is a non-standard extension" msgstr "split: zerowy Å‚aÅ„cuch dla trzeciego argumentu jest rozszerzeniem gawk" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: czwarty argument nie jest tablicÄ…" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: drugi argument nie jest tablicÄ…" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: trzeci argument nie może być pusty" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit: nie można użyć tej samej tablicy dla drugiego i czwartego argumentu" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit: nie można użyć podtablicy drugiego argumentu dla czwartego " "argumentu" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit: nie można użyć podtablicy czwartego argumentu dla drugiego " "argumentu" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' jest rozszerzeniem gawk" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "" -#: field.c:1238 +#: field.c:1239 #, fuzzy, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "nieprawidÅ‚owa wartość FIELDWIDTHS, w pobliżu `%s'" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "zerowy Å‚aÅ„cuch dla `FS' jest rozszerzeniem gawk" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "stary awk nie wspiera wyrażeÅ„ regularnych jako wartoÅ›ci `FS'" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "`FPAT' jest rozszerzeniem gawk" @@ -3116,12 +3122,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-l biblioteka\t\t--load=biblioteka\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 #, fuzzy -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L [fatal]\t\t--lint[=fatal]\n" #: main.c:609 @@ -3276,7 +3282,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft nie ustawia FS na znak tabulatora w POSIX awk" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3285,71 +3291,71 @@ "%s: argument `%s' dla `-v' nie jest zgodny ze skÅ‚adniÄ… `zmienna=wartość'\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' nie jest dozwolonÄ… nazwÄ… zmiennej" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' nie jest nazwÄ… zmiennej, szukanie pliku `%s=%s'" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "nie można użyć wbudowanej w gawk `%s' jako nazwy zmiennej" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "nie można użyć funkcji `%s' jako nazwy zmiennej" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "wyjÄ…tek zmiennopozycyjny" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "fatalny bÅ‚Ä…d: wewnÄ™trzny bÅ‚Ä…d" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "fatalny bÅ‚Ä…d: wewnÄ™trzny bÅ‚Ä…d: bÅ‚Ä…d segmentacji" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "fatalny bÅ‚Ä…d: wewnÄ™trzny bÅ‚Ä…d: przepeÅ‚nienie stosu" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "brak już otwartego fd %d" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "nie można otworzyć zawczasu /dev/null dla fd %d" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "pusty argument dla opcji `-e/--source' zostaÅ‚ zignorowany" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "opcja `--posix' zostanie użyta nad `--traditional'" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: opcja `-W %s' nierozpoznana i zignorowana\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opcja musi mieć argument -- %c\n" @@ -3406,7 +3412,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s: argument #%d ujemna wartość %Zd spowoduje dziwne wyniki" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "linia poleceÅ„:" @@ -3564,41 +3570,41 @@ msgid "regexp component `%.*s' should probably be `[%.*s]'" msgstr "komponent regexp `%.*s' powinien być prawdopodobnie `[%.*s]'" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "[ nie do pary" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "nieprawidÅ‚owa klasa znaku" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "skÅ‚adnia klasy znaku to [[:space:]], a nie [:space:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "niedokoÅ„czona sekwencja ucieczki \\" -#: support/dfa.c:1490 +#: support/dfa.c:1492 #, fuzzy msgid "invalid content of \\{\\}" msgstr "NieprawidÅ‚owa zawartość \\{\\}" -#: support/dfa.c:1493 +#: support/dfa.c:1495 #, fuzzy msgid "regular expression too big" msgstr "Wyrażenie regularne jest zbyt duże" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "( nie do pary" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "nie podano skÅ‚adni" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr ") nie do pary" @@ -3727,7 +3733,7 @@ msgid "Unmatched ) or \\)" msgstr "Niedopasowany znak ) lub \\)" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "Brak poprzedniego wyrażenia regularnego" diff -urN gawk-5.0.0/po/pt_BR.po gawk-5.0.1/po/pt_BR.po --- gawk-5.0.0/po/pt_BR.po 2019-04-12 12:29:29.000000000 +0300 +++ gawk-5.0.1/po/pt_BR.po 2019-06-18 20:07:23.000000000 +0300 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gawk 4.2.63\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2019-03-07 08:07-0200\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Brazilian Portuguese , 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: gawk 4.2.63\n" +"Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" +"PO-Revision-Date: 2019-05-26 08:43+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Gtranslator 2.91.7\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: array.c:247 +#, c-format +msgid "from %s" +msgstr "de %s" + +#: array.c:348 +msgid "attempt to use a scalar value as array" +msgstr "tentativa de usar um valor escalar como matriz" + +#: array.c:350 +#, c-format +msgid "attempt to use scalar parameter `%s' as an array" +msgstr "tentativa de usar o parâmetro escalar \"%s\" como matriz" + +#: array.c:353 +#, c-format +msgid "attempt to use scalar `%s' as an array" +msgstr "tentativa de usar o escalar \"%s\" como matriz" + +#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 +#, c-format +msgid "attempt to use array `%s' in a scalar context" +msgstr "tentativa de usar a matriz \"%s\" num contexto escalar" + +#: array.c:574 +#, c-format +msgid "delete: index `%.*s' not in array `%s'" +msgstr "eliminar: índice \"%.*s\" não está na matriz \"%s\"" + +#: array.c:588 +#, c-format +msgid "attempt to use scalar `%s[\"%.*s\"]' as an array" +msgstr "tentativa de usar o escalar '%s[\"%.*s\"]' como matriz" + +#: array.c:782 +msgid "adump: first argument not an array" +msgstr "adump: o primeiro argumento não é uma matriz" + +#: array.c:824 +msgid "asort: second argument not an array" +msgstr "asort: o segundo argumento não é uma matriz" + +#: array.c:825 +msgid "asorti: second argument not an array" +msgstr "asorti: o segundo argumento não é uma matriz" + +#: array.c:832 +msgid "asort: first argument not an array" +msgstr "asort: o primeiro argumento não é uma matriz" + +#: array.c:833 +msgid "asorti: first argument not an array" +msgstr "asorti: o primeiro argumento não é uma matriz" + +#: array.c:840 +msgid "asort: cannot use a subarray of first arg for second arg" +msgstr "" +"asort: impossível usar uma sub-matriz do 1º argumento para 2º argumento" + +#: array.c:841 +msgid "asorti: cannot use a subarray of first arg for second arg" +msgstr "" +"asorti: impossível usar uma sub-matriz do 1º argumento para 2º argumento" + +#: array.c:846 +msgid "asort: cannot use a subarray of second arg for first arg" +msgstr "" +"asort: impossível usar uma sub-matriz do 2º argumento para 1º argumento" + +#: array.c:847 +msgid "asorti: cannot use a subarray of second arg for first arg" +msgstr "" +"asorti: impossível usar uma sub-matriz do 2º argumento para 1º argumento" + +#: array.c:1310 +#, c-format +msgid "`%s' is invalid as a function name" +msgstr "\"%s\" é inválido como nome de função" + +#: array.c:1314 +#, c-format +msgid "sort comparison function `%s' is not defined" +msgstr "função de comparação de ordem \"%s\" não definida" + +#: awkgram.y:275 +#, c-format +msgid "%s blocks must have an action part" +msgstr "%s blocos têm de ter uma parte de acção" + +#: awkgram.y:278 +msgid "each rule must have a pattern or an action part" +msgstr "cada regra tem de ter um padrão ou uma parte de acção" + +#: awkgram.y:419 awkgram.y:431 +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "o awk antigo não suporta múltiplas regras \"BEGIN\" ou \"END\"" + +#: awkgram.y:484 +#, c-format +msgid "`%s' is a built-in function, it cannot be redefined" +msgstr "\"%s\" é uma função interna, não pode ser redefinida" + +#: awkgram.y:548 +msgid "regexp constant `//' looks like a C++ comment, but is not" +msgstr "constante regexp \"//\" parece-se com um comentário C++, mas não é" + +#: awkgram.y:552 +#, c-format +msgid "regexp constant `/%s/' looks like a C comment, but is not" +msgstr "constante regexp \"/%s/\" parece-se com um comentário C, mas não é" + +#: awkgram.y:679 +#, c-format +msgid "duplicate case values in switch body: %s" +msgstr "valores de \"case\" duplicados no corpo do \"switch\": %s" + +#: awkgram.y:700 +msgid "duplicate `default' detected in switch body" +msgstr "\"default\" duplicado detectado no corpo do \"switch\"" + +#: awkgram.y:1035 awkgram.y:4457 +msgid "`break' is not allowed outside a loop or switch" +msgstr "\"break\" não é permitido fora de um ciclo ou \"switch\"" + +#: awkgram.y:1045 awkgram.y:4449 +msgid "`continue' is not allowed outside a loop" +msgstr "\"continue\" não é permitido fora de um ciclo" + +#: awkgram.y:1056 +#, c-format +msgid "`next' used in %s action" +msgstr "\"next\" usado em acção \"%s\"" + +#: awkgram.y:1067 +#, c-format +msgid "`nextfile' used in %s action" +msgstr "\"nextfile\" usado em acção \"%s\"" + +#: awkgram.y:1095 +msgid "`return' used outside function context" +msgstr "\"return\" usado fora do contexto da função" + +#: awkgram.y:1168 +msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" +msgstr "" +"\"print\" simples em regra BEGIN ou END devia provavelmente ser 'print \"\"'" + +#: awkgram.y:1238 awkgram.y:1287 +msgid "`delete' is not allowed with SYMTAB" +msgstr "\"delete\" não é permitido com SYMTAB" + +#: awkgram.y:1240 awkgram.y:1289 +msgid "`delete' is not allowed with FUNCTAB" +msgstr "\"delete\" não é permitido com FUNCTAB" + +#: awkgram.y:1274 awkgram.y:1278 +msgid "`delete(array)' is a non-portable tawk extension" +msgstr "\"delete(array)\" é uma extensão tawk não-portável" + +#: awkgram.y:1414 +msgid "multistage two-way pipelines don't work" +msgstr "túneis multi-estágio de duas vias não funcionam" + +#: awkgram.y:1416 +msgid "concatenation as I/O `>' redirection target is ambiguous" +msgstr "concatenação como alvo de redireccionamento \">\" de E/S é ambíguo" + +#: awkgram.y:1620 +msgid "regular expression on right of assignment" +msgstr "expressão regular à direita de atribuição" + +#: awkgram.y:1635 awkgram.y:1648 +msgid "regular expression on left of `~' or `!~' operator" +msgstr "expressão regular à esquerda de operador \"~\" ou \"!~\"" + +#: awkgram.y:1665 awkgram.y:1814 +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "o awk antigo não suporta a palavra-chave \"in\", excepto após \"for\"" + +#: awkgram.y:1675 +msgid "regular expression on right of comparison" +msgstr "expressão regular à direita de comparação" + +#: awkgram.y:1794 +#, c-format +msgid "non-redirected `getline' invalid inside `%s' rule" +msgstr "\"getline\" não redireccionado inválido dentro de regra \"%s\"" + +#: awkgram.y:1797 +msgid "non-redirected `getline' undefined inside END action" +msgstr "\"getline\" não redireccionado indefinido dentro de acção END" + +#: awkgram.y:1816 +msgid "old awk does not support multidimensional arrays" +msgstr "o awk antigo não suporta matrizes multi-dimensionais" + +#: awkgram.y:1919 +msgid "call of `length' without parentheses is not portable" +msgstr "chamada de \"length\" sem parênteses não é portável" + +#: awkgram.y:1993 +msgid "indirect function calls are a gawk extension" +msgstr "chamadas de função indirectas são uma extensão gawk" + +#: awkgram.y:2006 +#, c-format +msgid "can not use special variable `%s' for indirect function call" +msgstr "" +"impossível usar a variável especial \"%s\" para chamada de função indirecta" + +#: awkgram.y:2039 +#, c-format +msgid "attempt to use non-function `%s' in function call" +msgstr "tentativa de usar a não-função \"%s\" em chamada de função" + +#: awkgram.y:2104 +msgid "invalid subscript expression" +msgstr "expressão subscrita inválida" + +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 +msgid "warning: " +msgstr "aviso: " + +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 +msgid "fatal: " +msgstr "fatal: " + +#: awkgram.y:2548 +msgid "unexpected newline or end of string" +msgstr "nova linha ou fim de cadeia inesperados" + +#: awkgram.y:2569 +msgid "" +"source files / command-line arguments must contain complete functions or " +"rules" +msgstr "" +"ficheiros-fonte/argumentos de linha de comandos têm de conter funções ou " +"regras completas" + +#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552 +#: debug.c:2829 debug.c:5194 +#, c-format +msgid "can't open source file `%s' for reading (%s)" +msgstr "impossível abrir ficheiro-fonte \"%s\" para leitura (%s)" + +#: awkgram.y:2852 awkgram.y:2989 +#, c-format +msgid "can't open shared library `%s' for reading (%s)" +msgstr "impossível abrir biblioteca partilhada \"%s\" para leitura (%s)" + +#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345 +msgid "reason unknown" +msgstr "motivo desconhecido" + +#: awkgram.y:2863 awkgram.y:2887 +#, c-format +msgid "can't include `%s' and use it as a program file" +msgstr "impossível incluir \"%s\" e usá-la como ficheiro de programa" + +#: awkgram.y:2876 +#, c-format +msgid "already included source file `%s'" +msgstr "ficheiro-fonte \"%s\" já incluído" + +#: awkgram.y:2877 +#, c-format +msgid "already loaded shared library `%s'" +msgstr "biblioteca partilhada \"%s\" já incluída" + +#: awkgram.y:2914 +msgid "@include is a gawk extension" +msgstr "@include é uma extensão gawk" + +#: awkgram.y:2920 +msgid "empty filename after @include" +msgstr "nome de ficheiro vazio após @include" + +#: awkgram.y:2969 +msgid "@load is a gawk extension" +msgstr "@load é uma extensão gawk" + +#: awkgram.y:2976 +msgid "empty filename after @load" +msgstr "nome de ficheiro vazio após @load" + +#: awkgram.y:3119 +msgid "empty program text on command line" +msgstr "texto de programa vazio na linha de comandos" + +#: awkgram.y:3234 +#, c-format +msgid "can't read sourcefile `%s' (%s)" +msgstr "impossível ler ficheiro-fonte \"%s\" (%s)" + +#: awkgram.y:3245 +#, c-format +msgid "source file `%s' is empty" +msgstr "ficheiro-fonte \"%s\" vazio" + +#: awkgram.y:3304 +#, c-format +msgid "PEBKAC error: invalid character '\\%03o' in source code" +msgstr "erro PEBKAC: carácter \"\\%03o\" inválido no código-fonte" + +#: awkgram.y:3531 +msgid "source file does not end in newline" +msgstr "ficheiro-fonte não termina com nova linha" + +#: awkgram.y:3652 +msgid "unterminated regexp ends with `\\' at end of file" +msgstr "regexp não terminada acaba com \"\\\" no fim do ficheiro" + +#: awkgram.y:3679 +#, c-format +msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" +msgstr "%s: %d: modificador regexp tawk \"/.../%c\" não funciona no gawk" + +#: awkgram.y:3683 +#, c-format +msgid "tawk regex modifier `/.../%c' doesn't work in gawk" +msgstr "modificador regexp tawk \"/.../%c\" não funciona no gawk" + +#: awkgram.y:3696 +msgid "unterminated regexp" +msgstr "regexp não terminada" + +#: awkgram.y:3700 +msgid "unterminated regexp at end of file" +msgstr "regexp não terminada no fim do ficheiro" + +#: awkgram.y:3789 +msgid "use of `\\ #...' line continuation is not portable" +msgstr "uso de continuação de linha \"\\ #...\" não é portável" + +#: awkgram.y:3811 +msgid "backslash not last character on line" +msgstr "a barra invertida não é o último carácter na linha" + +#: awkgram.y:3858 awkgram.y:3860 +msgid "multidimensional arrays are a gawk extension" +msgstr "matrizes multi-dimensionais são uma extensão gawk" + +#: awkgram.y:3885 +msgid "POSIX does not allow operator `**='" +msgstr "POSIX não permite o operador \"**=\"" + +#: awkgram.y:3887 +msgid "old awk does not support operator `**='" +msgstr "o awk antigo não suporta o operador \"**=\"" + +#: awkgram.y:3896 +msgid "POSIX does not allow operator `**'" +msgstr "POSIX não permite o operador \"**\"" + +#: awkgram.y:3898 +msgid "old awk does not support operator `**'" +msgstr "o awk antigo não suporta o operador \"**\"" + +#: awkgram.y:3933 +msgid "operator `^=' is not supported in old awk" +msgstr "o awk antigo não suporta o operador \"^=\"" + +#: awkgram.y:3941 +msgid "operator `^' is not supported in old awk" +msgstr "o awk antigo não suporta o operador \"^\"" + +#: awkgram.y:4038 awkgram.y:4060 command.y:1187 +msgid "unterminated string" +msgstr "cadeia indeterminada" + +#: awkgram.y:4048 main.c:1220 +msgid "POSIX does not allow physical newlines in string values" +msgstr "POSIX não permite novas linhas físicas em valores de cadeia" + +#: awkgram.y:4050 node.c:453 +msgid "backslash string continuation is not portable" +msgstr "continuação de cadeia com barra invertida não é portável" + +#: awkgram.y:4288 +#, c-format +msgid "invalid char '%c' in expression" +msgstr "carácter \"%c\" inválido em expressão" + +#: awkgram.y:4383 +#, c-format +msgid "`%s' is a gawk extension" +msgstr "\"%s\" é uma extensão gawk" + +#: awkgram.y:4388 +#, c-format +msgid "POSIX does not allow `%s'" +msgstr "POSIX não permite \"%s\"" + +#: awkgram.y:4396 +#, c-format +msgid "`%s' is not supported in old awk" +msgstr "o awk antigo não suporta \"%s\"" + +#: awkgram.y:4494 +msgid "`goto' considered harmful!" +msgstr "\"goto\" considerado perigoso" + +#: awkgram.y:4563 +#, c-format +msgid "%d is invalid as number of arguments for %s" +msgstr "%d é inválido como nº de argumentos para %s" + +#: awkgram.y:4598 +#, c-format +msgid "%s: string literal as last arg of substitute has no effect" +msgstr "" +"%s: literal de cadeia como último argumento de substituto não tem efeito" + +#: awkgram.y:4603 +#, c-format +msgid "%s third parameter is not a changeable object" +msgstr "o terceiro parâmetro de %s não é um objecto alterável" + +#: awkgram.y:4707 awkgram.y:4710 +msgid "match: third argument is a gawk extension" +msgstr "match: o terceiro argumento é uma extensão gawk" + +#: awkgram.y:4764 awkgram.y:4767 +msgid "close: second argument is a gawk extension" +msgstr "close: o segundo argumento é uma extensão gawk" + +#: awkgram.y:4779 +msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" +msgstr "" +"o uso de dcgettext(_\"...\") está incorrecto: remova o sublinhado inicial" + +#: awkgram.y:4794 +msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" +msgstr "" +"o uso de dcngettext(_\"...\") está incorrecto: remova o sublinhado inicial" + +#: awkgram.y:4813 +msgid "index: regexp constant as second argument is not allowed" +msgstr "index: constante regexp como segundo argumento não é permitido" + +#: awkgram.y:4866 +#, c-format +msgid "function `%s': parameter `%s' shadows global variable" +msgstr "função \"%s\": o parâmetro \"%s\" sombreia uma variável global" + +#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343 +#, c-format +msgid "could not open `%s' for writing (%s)" +msgstr "impossível abrir \"%s\" para escrita (%s)" + +#: awkgram.y:4916 +msgid "sending variable list to standard error" +msgstr "a enviar lista de variáveis para erro padrão" + +#: awkgram.y:4924 +#, c-format +msgid "%s: close failed (%s)" +msgstr "%s: falha ao fechar (%s)" + +#: awkgram.y:4949 +msgid "shadow_funcs() called twice!" +msgstr "shadow_funcs() chamada duas vezes!" + +#: awkgram.y:4957 +msgid "there were shadowed variables." +msgstr "houve variáveis sombreadas." + +#: awkgram.y:5034 +#, c-format +msgid "function name `%s' previously defined" +msgstr "nome de função \"%s\" previamente definido" + +#: awkgram.y:5085 +#, c-format +msgid "function `%s': can't use function name as parameter name" +msgstr "função \"%s\": impossível usar o nome da função como nome de parâmetro" + +#: awkgram.y:5088 +#, c-format +msgid "function `%s': can't use special variable `%s' as a function parameter" +msgstr "" +"função \"%s\": impossível usar a variável especial \"%s\" como parâmetro da " +"função" + +#: awkgram.y:5092 +#, c-format +msgid "function `%s': parameter `%s' cannot contain a namespace" +msgstr "função \"%s\": o parâmetro \"%s\" não pode conter um namespace" + +#: awkgram.y:5099 +#, c-format +msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" +msgstr "função \"%s\": o parâmetro nº %d, \"%s\", duplica o parâmetro nº %d" + +#: awkgram.y:5188 +#, c-format +msgid "function `%s' called but never defined" +msgstr "função \"%s\" chamada, mas não foi definida" + +#: awkgram.y:5192 +#, c-format +msgid "function `%s' defined but never called directly" +msgstr "função \"%s\" definida, mas nunca é chamada directamente" + +#: awkgram.y:5224 +#, c-format +msgid "regexp constant for parameter #%d yields boolean value" +msgstr "constante regexp para o parâmetro nº %d entrega um valor booleano" + +#: awkgram.y:5239 +#, c-format +msgid "" +"function `%s' called with space between name and `(',\n" +"or used as a variable or an array" +msgstr "" +"função \"%s\" chamada com espaço entre o nome e \"(\",\n" +"ou usada como variável ou matriz" + +#: awkgram.y:5454 +msgid "division by zero attempted" +msgstr "tentativa de dividir por zero" + +#: awkgram.y:5463 +#, c-format +msgid "division by zero attempted in `%%'" +msgstr "tentativa de dividir por zero em \"%%\"" + +#: awkgram.y:5802 +msgid "" +"cannot assign a value to the result of a field post-increment expression" +msgstr "" +"impossível atribuir um valor ao resultado de uma expressão de pós-incremento " +"de campo" + +#: awkgram.y:5805 +#, c-format +msgid "invalid target of assignment (opcode %s)" +msgstr "alvo de atribuição inválido (opcode %s)" + +#: awkgram.y:6697 +#, c-format +msgid "identifier %s: qualified names not allowed in traditional / POSIX mode" +msgstr "" +"identificador %s: nomes qualificados não são permitidos em modo tradicional/" +"POSIX" + +#: awkgram.y:6702 +#, c-format +msgid "identifier %s: namespace separator is two colons, not one" +msgstr "" +"identificador %s: o separador de espaços de nome é duplo dois-pontos, não " +"dois-pontos único" + +#: awkgram.y:6708 +#, c-format +msgid "qualified identifier `%s' is badly formed" +msgstr "identificador %s qualificado está mal formado" + +#: awkgram.y:6715 +#, c-format +msgid "" +"identifier `%s': namespace separator can only appear once in a qualified name" +msgstr "" +"identificador %s: o separador de espaços de nome só pode aparecer uma vez " +"num nome qualificado" + +#: awkgram.y:6764 awkgram.y:6815 +#, c-format +msgid "using reserved identifier `%s' as a namespace is not allowed" +msgstr "não é permitido usar o identificador reservado %s como namespace" + +#: awkgram.y:6771 awkgram.y:6781 +#, c-format +msgid "" +"using reserved identifier `%s' as second component of a qualified name is " +"not allowed" +msgstr "" +"não é permitido usar o identificador reservado %s como 2º componente de nome " +"qualificado" + +#: awkgram.y:6799 +msgid "@namespace is a gawk extension" +msgstr "@namespace é uma extensão gawk" + +#: awkgram.y:6806 +#, c-format +msgid "namespace name `%s' must meet identifier naming rules" +msgstr "" +"nome do namespace \"%s\" tem de cumprir regras de nome de identificador" + +#: builtin.c:143 +#, c-format +msgid "%s to \"%s\" failed (%s)" +msgstr "%s para \"%s\" falhou (%s)" + +#: builtin.c:147 +msgid "standard output" +msgstr "saída padrão" + +#: builtin.c:148 +msgid "standard error" +msgstr "erro padrão" + +#: builtin.c:162 +msgid "exp: received non-numeric argument" +msgstr "exp: recebido argumento não-numérico" + +#: builtin.c:168 +#, c-format +msgid "exp: argument %g is out of range" +msgstr "exp: argumento %g fora do intervalo" + +#: builtin.c:245 +#, c-format +msgid "fflush: cannot flush: pipe `%.*s' opened for reading, not writing" +msgstr "" +"fflush: impossível despejar: túnel \"%.*s\" aberto para leitura, não escrita" + +#: builtin.c:248 +#, c-format +msgid "fflush: cannot flush: file `%.*s' opened for reading, not writing" +msgstr "" +"fflush: impossível despejar: ficheiro \"%.*s\" aberto para leitura, não " +"escrita" + +#: builtin.c:259 +#, c-format +msgid "fflush: cannot flush file `%.*s': %s" +msgstr "fflush: impossível despejar ficheiro \"%.*s\": %s" + +#: builtin.c:264 +#, c-format +msgid "fflush: cannot flush: two-way pipe `%.*s' has closed write end" +msgstr "" +"fflush: impossível despejar: túnel de duas vias \"%.*s\" fechou o lado de " +"escrita" + +#: builtin.c:270 +#, c-format +msgid "fflush: `%.*s' is not an open file, pipe or co-process" +msgstr "fflush: \"%.*s\" não é um ficheiro, túnel ou co-processo aberto" + +#: builtin.c:377 +msgid "index: received non-string first argument" +msgstr "index: recebido 1º argumento não-cadeia" + +#: builtin.c:379 +msgid "index: received non-string second argument" +msgstr "index: recebido 2º argumento não-cadeia" + +#: builtin.c:492 mpfr.c:774 +msgid "int: received non-numeric argument" +msgstr "int: recebido argumento nã numérico" + +#: builtin.c:531 +msgid "length: received array argument" +msgstr "length: recebido argumento matriz" + +#: builtin.c:534 +msgid "`length(array)' is a gawk extension" +msgstr "\"length(array)\" é uma extensão gawk" + +#: builtin.c:553 +msgid "length: received non-string argument" +msgstr "length: recebido argumento não-cadeia" + +#: builtin.c:582 +msgid "log: received non-numeric argument" +msgstr "log: recebido argumento não-numérico" + +#: builtin.c:585 +#, c-format +msgid "log: received negative argument %g" +msgstr "log: recebido argumento %g negativo" + +#: builtin.c:785 builtin.c:790 builtin.c:943 +msgid "fatal: must use `count$' on all formats or none" +msgstr "fatal: tem de usar \"count$\" em todos os formatos ou em nenhum" + +#: builtin.c:862 +#, c-format +msgid "field width is ignored for `%%' specifier" +msgstr "largura de campo ignorada para especificador \"%%\"" + +#: builtin.c:864 +#, c-format +msgid "precision is ignored for `%%' specifier" +msgstr "precisão ignorada para especificador \"%%\"" + +#: builtin.c:866 +#, c-format +msgid "field width and precision are ignored for `%%' specifier" +msgstr "largura de campo e precisão ignoradas para especificador \"%%\"" + +#: builtin.c:917 +msgid "fatal: `$' is not permitted in awk formats" +msgstr "fatal: \"$\" não é permitido em formatos awk" + +#: builtin.c:926 +msgid "fatal: arg count with `$' must be > 0" +msgstr "fatal: total de argumentos com \"$\" tem de ser > 0" + +#: builtin.c:930 +#, c-format +msgid "fatal: arg count %ld greater than total number of supplied arguments" +msgstr "" +"fatal: total de argumentos %ld maior que o total de argumentos fornecidos" + +#: builtin.c:934 +msgid "fatal: `$' not permitted after period in format" +msgstr "fatal: \"$\" não permitido após um ponto no formato" + +#: builtin.c:953 +msgid "fatal: no `$' supplied for positional field width or precision" +msgstr "" +"fatal: sem \"$\" fornecido para largura de campo ou precisão posicionais" + +#: builtin.c:1023 +msgid "`l' is meaningless in awk formats; ignored" +msgstr "\"l\" não tem significado em formatos awk; ignorado" + +#: builtin.c:1027 +msgid "fatal: `l' is not permitted in POSIX awk formats" +msgstr "fatal: \"l\" não é permitido em formatos awk POSIX" + +#: builtin.c:1040 +msgid "`L' is meaningless in awk formats; ignored" +msgstr "\"L\" não tem significado em formatos awk; ignorado" + +#: builtin.c:1044 +msgid "fatal: `L' is not permitted in POSIX awk formats" +msgstr "fatal: \"L\" não é permitido em formatos awk POSIX" + +#: builtin.c:1057 +msgid "`h' is meaningless in awk formats; ignored" +msgstr "\"h\" não tem significado em formatos awk; ignorado" + +#: builtin.c:1061 +msgid "fatal: `h' is not permitted in POSIX awk formats" +msgstr "fatal: \"h\" não é permitido em formatos awk POSIX" + +#: builtin.c:1091 +#, c-format +msgid "[s]printf: value %g is too big for %%c format" +msgstr "[s]printf: valor %g muito grande para formato %%c" + +#: builtin.c:1104 +#, c-format +msgid "[s]printf: value %g is not a valid wide character" +msgstr "[s]printf: valor %g não é um carácter largo válido" + +#: builtin.c:1496 +#, c-format +msgid "[s]printf: value %g is out of range for `%%%c' format" +msgstr "[s]printf: valor %g fora do intervalo para formato \"%%%c\"" + +#: builtin.c:1504 +#, c-format +msgid "[s]printf: value %s is out of range for `%%%c' format" +msgstr "[s]printf: valor %s fora do intervalo para formato \"%%%c\"" + +#: builtin.c:1529 +#, c-format +msgid "%%%c format is POSIX standard but not portable to other awks" +msgstr "o formato %%%c é padrão POSIX, mas não é portável para outros awks" + +#: builtin.c:1629 +#, c-format +msgid "ignoring unknown format specifier character `%c': no argument converted" +msgstr "" +"a ignorar carácter especificador de formato \"%c\" desconhecido: nenhum " +"argumento convertido" + +#: builtin.c:1634 +msgid "fatal: not enough arguments to satisfy format string" +msgstr "fatal: argumentos insuficientes para satisfazer a cadeia de formato" + +#: builtin.c:1636 +msgid "^ ran out for this one" +msgstr "^ esgotou-se para esta" + +#: builtin.c:1643 +msgid "[s]printf: format specifier does not have control letter" +msgstr "[s]printf: especificador de formato não tem letra de controlo" + +#: builtin.c:1646 +msgid "too many arguments supplied for format string" +msgstr "demasiados argumentos para cadeia de formato" + +#: builtin.c:1705 +msgid "sprintf: no arguments" +msgstr "sprintf: sem argumentos" + +#: builtin.c:1728 builtin.c:1739 +msgid "printf: no arguments" +msgstr "printf: sem argumentos" + +#: builtin.c:1754 +msgid "printf: attempt to write to closed write end of two-way pipe" +msgstr "" +"printf: tentativa de escrever no lado de escrita fechado de um túnel de duas " +"vias" + +#: builtin.c:1795 +msgid "sqrt: received non-numeric argument" +msgstr "sqrt: recebido argumento não-numérico" + +#: builtin.c:1799 +#, c-format +msgid "sqrt: called with negative argument %g" +msgstr "sqrt: chamada com argumento %g negativo" + +#: builtin.c:1830 +#, c-format +msgid "substr: length %g is not >= 1" +msgstr "substr: tamanho %g não é >= 1" + +#: builtin.c:1832 +#, c-format +msgid "substr: length %g is not >= 0" +msgstr "substr: tamanho %g não é >= 0" + +#: builtin.c:1846 +#, c-format +msgid "substr: non-integer length %g will be truncated" +msgstr "substr: tamanho não-inteiro %g será truncado" + +#: builtin.c:1851 +#, c-format +msgid "substr: length %g too big for string indexing, truncating to %g" +msgstr "" +"substr: tamanho %g muito grande para indexação da cadeia, a truncar para %g" + +#: builtin.c:1863 +#, c-format +msgid "substr: start index %g is invalid, using 1" +msgstr "substr: índice inicial %g inválido, a usar 1" + +#: builtin.c:1868 +#, c-format +msgid "substr: non-integer start index %g will be truncated" +msgstr "substr: índice inicial não-inteiro %g será truncado" + +#: builtin.c:1891 +msgid "substr: source string is zero length" +msgstr "substr: cadeia-fonte tem tamanho zero" + +#: builtin.c:1905 +#, c-format +msgid "substr: start index %g is past end of string" +msgstr "substr: índice inicial %g está para lá do fim da cadeia" + +#: builtin.c:1913 +#, c-format +msgid "" +"substr: length %g at start index %g exceeds length of first argument (%lu)" +msgstr "" +"substr: tamanho %g no índice inicial %g excede o tamanho do 1º argumento " +"(%lu)" + +#: builtin.c:1986 +msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type" +msgstr "strftime: valor de formato em PROCINFO[\"strftime\"] tem tipo numérico" + +#: builtin.c:2006 +msgid "strftime: received non-numeric second argument" +msgstr "strftime: recebido 2º argumento não-numérico" + +#: builtin.c:2016 +msgid "strftime: second argument less than 0 or too big for time_t" +msgstr "strftime: 2º argumento menor que 0 ou muito grande para time_t" + +#: builtin.c:2023 +msgid "strftime: second argument out of range for time_t" +msgstr "strftime: 2º argumento fora do intervalo para time_t" + +#: builtin.c:2032 +msgid "strftime: received non-string first argument" +msgstr "strftime: recebido 1º argumento não-cadeia" + +#: builtin.c:2039 +msgid "strftime: received empty format string" +msgstr "strftime: recebida cadeia de formato vazia" + +#: builtin.c:2122 +msgid "mktime: received non-string argument" +msgstr "mktime: recebido argumento não-cadeia" + +#: builtin.c:2139 +msgid "mktime: at least one of the values is out of the default range" +msgstr "mktime: pelo menos um dos valores está fora do intervalo predefinido" + +#: builtin.c:2175 +msgid "'system' function not allowed in sandbox mode" +msgstr "função \"system\" não permitida em modo sandbox" + +#: builtin.c:2180 +msgid "system: received non-string argument" +msgstr "system: recebido argumento não-cadeia" + +#: builtin.c:2249 builtin.c:2322 +msgid "print: attempt to write to closed write end of two-way pipe" +msgstr "" +"print: tentativa de escrever no lado de escrita fechado de um túnel de duas " +"vias" + +#: builtin.c:2345 +#, c-format +msgid "reference to uninitialized field `$%d'" +msgstr "referência a campo não inicializado \"$%d\"" + +#: builtin.c:2430 +msgid "tolower: received non-string argument" +msgstr "tolower: recebido argumento não-cadeia" + +#: builtin.c:2461 +msgid "toupper: received non-string argument" +msgstr "toupper: recebido argumento não-cadeia" + +#: builtin.c:2494 mpfr.c:674 +msgid "atan2: received non-numeric first argument" +msgstr "atan2: recebido 1º argumento não-numérico" + +#: builtin.c:2496 mpfr.c:676 +msgid "atan2: received non-numeric second argument" +msgstr "atan2: recebido 2º argumento não-numérico" + +#: builtin.c:2515 +msgid "sin: received non-numeric argument" +msgstr "sin: recebido argumento não-numérico" + +#: builtin.c:2531 +msgid "cos: received non-numeric argument" +msgstr "cos: recebido argumento não-numérico" + +#: builtin.c:2645 mpfr.c:1169 +msgid "srand: received non-numeric argument" +msgstr "srand: recebido argumento não-numérico" + +#: builtin.c:2676 +msgid "match: third argument is not an array" +msgstr "match: o 3º argumento não é uma matriz" + +#: builtin.c:2919 +#, c-format +msgid "gensub: third argument `%.*s' treated as 1" +msgstr "gensub: 3º argumento \"%.*s\" tratado como 1" + +#: builtin.c:3241 +#, c-format +msgid "%s: can be called indirectly only with two arguments" +msgstr "%s: pode ser chamada indirectamente só com dois argumentos" + +#: builtin.c:3341 +#, c-format +msgid "indirect call to %s requires at least two arguments" +msgstr "chamada indirecta a %s requer pelo menos dois argumentos" + +#: builtin.c:3396 +msgid "lshift: received non-numeric first argument" +msgstr "lshift: recebido 1º argumento não-numérico" + +#: builtin.c:3398 +msgid "lshift: received non-numeric second argument" +msgstr "lshift: recebido 2º argumento não-numérico" + +#: builtin.c:3404 +#, c-format +msgid "lshift(%f, %f): negative values are not allowed" +msgstr "lshift(%f, %f): não são permitidos valores negativos" + +#: builtin.c:3408 +#, c-format +msgid "lshift(%f, %f): fractional values will be truncated" +msgstr "lshift(%f, %f): valores fraccionais serão truncados" + +#: builtin.c:3410 +#, c-format +msgid "lshift(%f, %f): too large shift value will give strange results" +msgstr "" +"lshift(%f, %f): um valor de deslocamento muito grande dará resultados " +"estranhos" + +#: builtin.c:3435 +msgid "rshift: received non-numeric first argument" +msgstr "rshift: recebido 1º argumento não-numérico" + +#: builtin.c:3437 +msgid "rshift: received non-numeric second argument" +msgstr "rshift: recebido 2º argumento não-numérico" + +#: builtin.c:3443 +#, c-format +msgid "rshift(%f, %f): negative values are not allowed" +msgstr "rshift(%f, %f): não são permitidos valores negativos" + +#: builtin.c:3447 +#, c-format +msgid "rshift(%f, %f): fractional values will be truncated" +msgstr "rshift(%f, %f): valores fraccionais serão truncados" + +#: builtin.c:3449 +#, c-format +msgid "rshift(%f, %f): too large shift value will give strange results" +msgstr "" +"rshift(%f, %f): um valor de deslocamento muito grande dará resultados " +"estranhos" + +#: builtin.c:3474 mpfr.c:982 +msgid "and: called with less than two arguments" +msgstr "and: chamada com menos de dois argumentos" + +#: builtin.c:3479 +#, c-format +msgid "and: argument %d is non-numeric" +msgstr "and: argumento %d é não-numérico" + +#: builtin.c:3483 +#, c-format +msgid "and: argument %d negative value %g is not allowed" +msgstr "and: valor negativo do argumento %d %g não é permitido" + +#: builtin.c:3506 mpfr.c:1014 +msgid "or: called with less than two arguments" +msgstr "or: chamada com menos de dois argumentos" + +#: builtin.c:3511 +#, c-format +msgid "or: argument %d is non-numeric" +msgstr "or: argumento %d é não-numérico" + +#: builtin.c:3515 +#, c-format +msgid "or: argument %d negative value %g is not allowed" +msgstr "or: valor negativo do argumento %d %g não é permitido" + +#: builtin.c:3537 mpfr.c:1045 +msgid "xor: called with less than two arguments" +msgstr "xor: chamada com menos de dois argumentos" + +#: builtin.c:3543 +#, c-format +msgid "xor: argument %d is non-numeric" +msgstr "xor: argumento %d é não-numérico" + +#: builtin.c:3547 +#, c-format +msgid "xor: argument %d negative value %g is not allowed" +msgstr "xor: valor negativo do argumento %d %g não é permitido" + +#: builtin.c:3572 mpfr.c:804 +msgid "compl: received non-numeric argument" +msgstr "compl: recebido argumento não-numérico" + +#: builtin.c:3577 +#, c-format +msgid "compl(%f): negative value is not allowed" +msgstr "compl(%f): valor negativo não é permitido" + +#: builtin.c:3580 +#, c-format +msgid "compl(%f): fractional value will be truncated" +msgstr "compl(%f): valores fraccionais serão truncados" + +#: builtin.c:3764 +#, c-format +msgid "dcgettext: `%s' is not a valid locale category" +msgstr "dcgettext: \"%s\" não é uma categoria regional válida" + +#: builtin.c:3988 mpfr.c:1203 +msgid "intdiv: third argument is not an array" +msgstr "intdiv: 3º argumento não é uma matriz" + +#: builtin.c:3996 mpfr.c:1211 +msgid "intdiv: received non-numeric first argument" +msgstr "intdiv: recebido 1º argumento não-numérico" + +#: builtin.c:3998 mpfr.c:1213 +msgid "intdiv: received non-numeric second argument" +msgstr "intdiv: recebido 2º argumento não-numérico" + +#: builtin.c:4007 mpfr.c:1252 +msgid "intdiv: division by zero attempted" +msgstr "intdiv: tentativa de dividir por zero" + +#: builtin.c:4046 +msgid "typeof: second argument is not an array" +msgstr "typeof: 2º argumento não é uma matriz" + +#: builtin.c:4082 +#, c-format +msgid "" +"typeof detected invalid flags combination `%s'; please file a bug report." +msgstr "" +"typeof detectou uma combinação de bandeira \"%s\" inválida; por favor, faça " +"um relatório de erro." + +#: builtin.c:4101 +#, c-format +msgid "typeof: invalid argument type `%s'" +msgstr "typeof: tipo de argumento \"%s\" inválido" + +#: builtin.c:4105 +#, c-format +msgid "typeof: unknown argument type `%s'" +msgstr "typeof: tipo de argumento \"%s\" desconhecido" + +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + +#: command.y:227 +#, c-format +msgid "Type (g)awk statement(s). End with the command \"end\"\n" +msgstr "Digite a(s) declaração(ões) (g)awk. Termine com o comando \"end\"\n" + +#: command.y:291 +#, c-format +msgid "invalid frame number: %d" +msgstr "número de quadro errado: %d" + +#: command.y:297 +#, c-format +msgid "info: invalid option - \"%s\"" +msgstr "info: opção inválida - \"%s\"" + +#: command.y:323 +#, c-format +msgid "source \"%s\": already sourced." +msgstr "source \"%s\": já baseado." + +#: command.y:328 +#, c-format +msgid "save \"%s\": command not permitted." +msgstr "save \"%s\": comando não permitido." + +#: command.y:341 +msgid "Can't use command `commands' for breakpoint/watchpoint commands" +msgstr "" +"Impossível usar o comando \"commands\" para comandos breakpoint/watchpoint" + +#: command.y:343 +msgid "no breakpoint/watchpoint has been set yet" +msgstr "sem breakpoint/watchpoint definidos" + +#: command.y:345 +msgid "invalid breakpoint/watchpoint number" +msgstr "número de breakpoint/watchpoint inválido" + +#: command.y:350 +#, c-format +msgid "Type commands for when %s %d is hit, one per line.\n" +msgstr "Digite comandos para quando %s %d for premido, um por linha.\n" + +#: command.y:352 +#, c-format +msgid "End with the command \"end\"\n" +msgstr "Termine com o comando \"end\"\n" + +#: command.y:359 +msgid "`end' valid only in command `commands' or `eval'" +msgstr "\"end\" só é válido no comando \"commands\" ou \"eval\"" + +#: command.y:369 +msgid "`silent' valid only in command `commands'" +msgstr "\"silent\" só é válido no comando \"commands\"" + +#: command.y:375 +#, c-format +msgid "trace: invalid option - \"%s\"" +msgstr "trace: opção inválida - \"%s\"" + +#: command.y:389 +msgid "condition: invalid breakpoint/watchpoint number" +msgstr "condition: número de breakpoint/watchpoint inválido" + +#: command.y:451 +msgid "argument not a string" +msgstr "argumento não-cadeia" + +#: command.y:461 command.y:466 +#, c-format +msgid "option: invalid parameter - \"%s\"" +msgstr "opção: parâmetro inválido - \"%s\"" + +#: command.y:476 +#, c-format +msgid "no such function - \"%s\"" +msgstr "sem tal função - \"%s\"" + +#: command.y:533 +#, c-format +msgid "enable: invalid option - \"%s\"" +msgstr "enable: opção inválida - \"%s\"" + +#: command.y:599 +#, c-format +msgid "invalid range specification: %d - %d" +msgstr "especificação de intervalo inválida: %d - %d" + +#: command.y:661 +msgid "non-numeric value for field number" +msgstr "valor não-numérico em número de campo" + +#: command.y:682 command.y:689 +msgid "non-numeric value found, numeric expected" +msgstr "valor não-numérico encontrado, esperado um número" + +#: command.y:714 command.y:720 +msgid "non-zero integer value" +msgstr "valor inteiro não-zero" + +#: command.y:819 +msgid "" +"backtrace [N] - print trace of all or N innermost (outermost if N < 0) " +"frames." +msgstr "" +"backtrace [N] - imprime traço de todos ou N mais interior (mais exterior se " +"N < 0) os quadros." + +#: command.y:821 +msgid "" +"break [[filename:]N|function] - set breakpoint at the specified location." +msgstr "" +"break [[nomefich:]N|função] - define breakpoint na localização especificada." + +#: command.y:823 +msgid "clear [[filename:]N|function] - delete breakpoints previously set." +msgstr "" +"clear [[nomefich:]N|função] - elimina breakpoints anteriormente definidos." + +#: command.y:825 +msgid "" +"commands [num] - starts a list of commands to be executed at a " +"breakpoint(watchpoint) hit." +msgstr "" +"commands [núm] - inicia uma lista de comandos a executar num " +"breakpoint(watchpoint)." + +#: command.y:827 +msgid "condition num [expr] - set or clear breakpoint or watchpoint condition." +msgstr "" +"condition núm [expr] - define ou limpa condição de breakpoint ou watchpoint." + +#: command.y:829 +msgid "continue [COUNT] - continue program being debugged." +msgstr "continue [COUNT] - continua o programa em depuração." + +#: command.y:831 +msgid "delete [breakpoints] [range] - delete specified breakpoints." +msgstr "" +"delete [breakpoints] [intervalo] - elimina os breakpoints especificados." + +#: command.y:833 +msgid "disable [breakpoints] [range] - disable specified breakpoints." +msgstr "" +"disable [breakpoints] [intervalo] - desactiva os breakpoints especificados." + +#: command.y:835 +msgid "display [var] - print value of variable each time the program stops." +msgstr "" +"display [var] - imprime o valor da variável cada vez que o programa pára." + +#: command.y:837 +msgid "down [N] - move N frames down the stack." +msgstr "down [N] - move N quadros abaixo na pilha." + +#: command.y:839 +msgid "dump [filename] - dump instructions to file or stdout." +msgstr "dump [filename] - despeja instruções para ficheiro ou stdout." + +#: command.y:841 +msgid "enable [once|del] [breakpoints] [range] - enable specified breakpoints." +msgstr "" +"enable [once|del] [breakpoints] [intervalo] - activa os breakpoints " +"especificados." + +#: command.y:843 +msgid "end - end a list of commands or awk statements." +msgstr "end - termina uma lista de comandos ou declarações awk." + +#: command.y:845 +msgid "eval stmt|[p1, p2, ...] - evaluate awk statement(s)." +msgstr "eval stmt|[p1, p2, ...] - avalia declarações awk." + +#: command.y:847 +msgid "exit - (same as quit) exit debugger." +msgstr "exit - (igual a quit) sai do depurador." + +#: command.y:849 +msgid "finish - execute until selected stack frame returns." +msgstr "finish - executa até que o quadro da pilha seleccionado retorne." + +#: command.y:851 +msgid "frame [N] - select and print stack frame number N." +msgstr "frame [N] - selecciona e imprime o quadro da pilha número N." + +#: command.y:853 +msgid "help [command] - print list of commands or explanation of command." +msgstr "" +"help [command] - imprime uma lista de comandos ou a explicação de um comando." + +#: command.y:855 +msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT." +msgstr "ignore N CONT - define ignore-count do breakpoint número N como CONT." + +#: command.y:857 +msgid "" +"info topic - source|sources|variables|functions|break|frame|args|locals|" +"display|watch." +msgstr "" +"info tópico - fonte|fontes|variáveis|funções|quebra|quadro|argumentos|locais|" +"mostrar|observar." + +#: command.y:859 +msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)." +msgstr "" +"list [-|+|[nomefich:]numlin|função|intervalo] - lista as linhas " +"especificadas." + +#: command.y:861 +msgid "next [COUNT] - step program, proceeding through subroutine calls." +msgstr "" +"next [CONT] - executa o programa, continuando pelas chamadas a sub-rotinas." + +#: command.y:863 +msgid "" +"nexti [COUNT] - step one instruction, but proceed through subroutine calls." +msgstr "" +"nexti [CONT] - executa uma instrução, mas continuando pelas chamadas a sub-" +"rotinas." + +#: command.y:865 +msgid "option [name[=value]] - set or display debugger option(s)." +msgstr "option [nome[=valor]] - define ou mostra opções do depurador." + +#: command.y:867 +msgid "print var [var] - print value of a variable or array." +msgstr "print var [var] - imprime o valor de uma variável ou matriz." + +#: command.y:869 +msgid "printf format, [arg], ... - formatted output." +msgstr "printf format, [arg], ... - saída formatada." + +#: command.y:871 +msgid "quit - exit debugger." +msgstr "quit - sai do depurador." + +#: command.y:873 +msgid "return [value] - make selected stack frame return to its caller." +msgstr "" +"return [value] - faz com que o quadro da pilha seleccionado retorne ao seu " +"chamador." + +#: command.y:875 +msgid "run - start or restart executing program." +msgstr "run - começa ou reinicia a execução do programa." + +#: command.y:878 +msgid "save filename - save commands from the session to file." +msgstr "save nomefich - grava os comandos da sessão no ficheiro." + +#: command.y:881 +msgid "set var = value - assign value to a scalar variable." +msgstr "set var = valor - atribui um valor a uma variável escalar." + +#: command.y:883 +msgid "" +"silent - suspends usual message when stopped at a breakpoint/watchpoint." +msgstr "" +"silent - suspende a mensagem habitual quando parado num breakpoint/" +"watchpoint." + +#: command.y:885 +msgid "source file - execute commands from file." +msgstr "source ficheiro - executa comandos a partir do ficheiro." + +#: command.y:887 +msgid "step [COUNT] - step program until it reaches a different source line." +msgstr "" +"step [CONT] - executa o programa até que atinja uma linha fonte diferente." + +#: command.y:889 +msgid "stepi [COUNT] - step one instruction exactly." +msgstr "stepi [CONT] - executa exactamente uma instrução." + +#: command.y:891 +msgid "tbreak [[filename:]N|function] - set a temporary breakpoint." +msgstr "tbreak [[nomefich:]N|função] - define um breakpoint temporário." + +#: command.y:893 +msgid "trace on|off - print instruction before executing." +msgstr "trace on|off - imprime a instrução antes de a executar." + +#: command.y:895 +msgid "undisplay [N] - remove variable(s) from automatic display list." +msgstr "undisplay [N] - remove variáveis da lista de exibição automática." + +#: command.y:897 +msgid "" +"until [[filename:]N|function] - execute until program reaches a different " +"line or line N within current frame." +msgstr "" +"until [[nomefich:]N|função] - executa até o programa atingir uma linha " +"diferente ou até à linha N dentro do quadro actual." + +#: command.y:899 +msgid "unwatch [N] - remove variable(s) from watch list." +msgstr "unwatch [N] - remove variáveis da lista de observação." + +#: command.y:901 +msgid "up [N] - move N frames up the stack." +msgstr "up [N] - move N quadros acima na pilha." + +#: command.y:903 +msgid "watch var - set a watchpoint for a variable." +msgstr "watch var - define um watchpoint para uma variável." + +#: command.y:905 +msgid "" +"where [N] - (same as backtrace) print trace of all or N innermost (outermost " +"if N < 0) frames." +msgstr "" +"where [N] - (igual a backtrace) imprime o traço de todos ou N mais interior " +"(mais exterior se N < 0) os quadros." + +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 +#, c-format +msgid "error: " +msgstr "erro: " + +#: command.y:1060 +#, c-format +msgid "can't read command (%s)\n" +msgstr "impossível ler o comando (%s)\n" + +#: command.y:1074 +#, c-format +msgid "can't read command (%s)" +msgstr "impossível ler o comando (%s)" + +#: command.y:1125 +msgid "invalid character in command" +msgstr "carácter inválido no comando" + +#: command.y:1161 +#, c-format +msgid "unknown command - \"%.*s\", try help" +msgstr "comando desconhecido - \"%.*s\", tente help" + +#: command.y:1231 +#, c-format +msgid "%s" +msgstr "%s" + +#: command.y:1293 +msgid "invalid character" +msgstr "carácter inválido" + +#: command.y:1497 +#, c-format +msgid "undefined command: %s\n" +msgstr "comando indefinido: %s\n" + +#: debug.c:257 +msgid "set or show the number of lines to keep in history file." +msgstr "define ou mostra o número de linhas a manter no ficheiro de histórico." + +#: debug.c:259 +msgid "set or show the list command window size." +msgstr "define ou mostra o tamanho da janela do comando de lista" + +#: debug.c:261 +msgid "set or show gawk output file." +msgstr "define ou mostra o ficheiro de saída do gawk." + +#: debug.c:263 +msgid "set or show debugger prompt." +msgstr "define ou mostra a entrada do depurador." + +#: debug.c:265 +msgid "(un)set or show saving of command history (value=on|off)." +msgstr "" +"define/remove ou mostra a gravação do histórico de comandos (valor=on|off)." + +#: debug.c:267 +msgid "(un)set or show saving of options (value=on|off)." +msgstr "define/remove ou mostra a gravação de opções (valor=on|off)." + +#: debug.c:269 +msgid "(un)set or show instruction tracing (value=on|off)." +msgstr "define/remove ou mostra o traço de instruções (valor=on|off)." + +#: debug.c:358 +msgid "program not running." +msgstr "programa não em execução." + +#: debug.c:461 debug.c:619 +#, c-format +msgid "can't read source file `%s' (%s)" +msgstr "impossível ler ficheiro-fonte \"%s\" (%s)" + +#: debug.c:466 +#, c-format +msgid "source file `%s' is empty.\n" +msgstr "ficheiro-fonte \"%s\" vazio.\n" + +#: debug.c:493 +msgid "no current source file." +msgstr "sem ficheiro-fonte actual." + +#: debug.c:518 +#, c-format +msgid "cannot find source file named `%s' (%s)" +msgstr "impossível encontrar ficheiro-fonte chamado \"%s\" (%s)" + +#: debug.c:542 +#, c-format +msgid "WARNING: source file `%s' modified since program compilation.\n" +msgstr "" +"AVISO: ficheiro-fonte \"%s\" modificado desde a compilação do programa.\n" + +#: debug.c:564 +#, c-format +msgid "line number %d out of range; `%s' has %d lines" +msgstr "número de linha %d fora do intervalo; \"%s\" tem %d linhas" + +#: debug.c:624 +#, c-format +msgid "unexpected eof while reading file `%s', line %d" +msgstr "eof inesperado ao ler \"%s\", linha %d" + +#: debug.c:633 +#, c-format +msgid "source file `%s' modified since start of program execution" +msgstr "" +"ficheiro-fonte \"%s\" modificado desde o início da execução do programa" + +#: debug.c:745 +#, c-format +msgid "Current source file: %s\n" +msgstr "Ficheiro-fonte actual: %s\n" + +#: debug.c:746 +#, c-format +msgid "Number of lines: %d\n" +msgstr "Número de linhas: %d\n" + +#: debug.c:753 +#, c-format +msgid "Source file (lines): %s (%d)\n" +msgstr "Ficheiro-fonte (linhas): %s (%d)\n" + +#: debug.c:767 +msgid "" +"Number Disp Enabled Location\n" +"\n" +msgstr "" +"Número Most Activas Localiz.\n" +"\n" + +#: debug.c:778 +#, c-format +msgid "\tno of hits = %ld\n" +msgstr "\tnº de hits = %ld\n" + +#: debug.c:780 +#, c-format +msgid "\tignore next %ld hit(s)\n" +msgstr "\tignora %ld hit(s) seguintes\n" + +#: debug.c:782 debug.c:922 +#, c-format +msgid "\tstop condition: %s\n" +msgstr "\tcondição de paragem: %s\n" + +#: debug.c:784 debug.c:924 +msgid "\tcommands:\n" +msgstr "\tcomandos:\n" + +#: debug.c:806 +#, c-format +msgid "Current frame: " +msgstr "Quadro actual: " + +#: debug.c:809 +#, c-format +msgid "Called by frame: " +msgstr "Chamada pelo quadro: " + +#: debug.c:813 +#, c-format +msgid "Caller of frame: " +msgstr "Chamador do quadro: " + +#: debug.c:831 +#, c-format +msgid "None in main().\n" +msgstr "Nada em main().\n" + +#: debug.c:861 +msgid "No arguments.\n" +msgstr "Sem argumentos.\n" + +#: debug.c:862 +msgid "No locals.\n" +msgstr "Sem locais.\n" + +#: debug.c:870 +msgid "" +"All defined variables:\n" +"\n" +msgstr "" +"Todas as variáveis definidas:\n" +"\n" + +#: debug.c:880 +msgid "" +"All defined functions:\n" +"\n" +msgstr "" +"Todas as funções definidas:\n" +"\n" + +#: debug.c:899 +msgid "" +"Auto-display variables:\n" +"\n" +msgstr "" +"Mostrar variáveis automaticamente:\n" +"\n" + +#: debug.c:902 +msgid "" +"Watch variables:\n" +"\n" +msgstr "" +"Observar variáveis: \n" +"\n" + +#: debug.c:1042 +#, c-format +msgid "no symbol `%s' in current context\n" +msgstr "sem símbolo \"%s\" no contexto actual\n" + +#: debug.c:1054 debug.c:1442 +#, c-format +msgid "`%s' is not an array\n" +msgstr "\"%s\" não é uma matriz\n" + +#: debug.c:1068 +#, c-format +msgid "$%ld = uninitialized field\n" +msgstr "$%ld = campo não inicializado\n" + +#: debug.c:1089 +#, c-format +msgid "array `%s' is empty\n" +msgstr "matriz \"%s\" está vazia\n" + +#: debug.c:1132 debug.c:1184 +#, c-format +msgid "[\"%.*s\"] not in array `%s'\n" +msgstr "[\"%.*s\"] não está na matriz \"%s\"\n" + +#: debug.c:1188 +#, c-format +msgid "`%s[\"%.*s\"]' is not an array\n" +msgstr "'%s[\"%.*s\"]' não é uma matriz\n" + +#: debug.c:1249 debug.c:5103 +#, c-format +msgid "`%s' is not a scalar variable" +msgstr "\"%s\" não é uma variável escalar" + +#: debug.c:1272 debug.c:5133 +#, c-format +msgid "attempt to use array `%s[\"%.*s\"]' in a scalar context" +msgstr "tentativa de usar matriz '%s[\"%.*s\"]' num contexto escalar" + +#: debug.c:1295 debug.c:5144 +#, c-format +msgid "attempt to use scalar `%s[\"%.*s\"]' as array" +msgstr "tentativa de usar o escalar '%s[\"%.*s\"]' como matriz" + +#: debug.c:1438 +#, c-format +msgid "`%s' is a function" +msgstr "\"%s\" é uma função" + +#: debug.c:1480 +#, c-format +msgid "watchpoint %d is unconditional\n" +msgstr "watchpoint %d é incondicional\n" + +#: debug.c:1514 +#, c-format +msgid "No display item numbered %ld" +msgstr "Sem item de exibição numerado %ld" + +#: debug.c:1517 +#, c-format +msgid "No watch item numbered %ld" +msgstr "Sem item de observação numerado %ld" + +#: debug.c:1543 +#, c-format +msgid "%d: [\"%.*s\"] not in array `%s'\n" +msgstr "%d: [\"%.*s\"] não está na matriz \"%s\"\n" + +#: debug.c:1782 +msgid "attempt to use scalar value as array" +msgstr "tentativa de usar valor escalar como matriz" + +#: debug.c:1873 +#, c-format +msgid "Watchpoint %d deleted because parameter is out of scope.\n" +msgstr "Watchpoint %d eliminado por o parâmetro estar fora do âmbito.\n" + +#: debug.c:1884 +#, c-format +msgid "Display %d deleted because parameter is out of scope.\n" +msgstr "Exibição %d eliminada por o parâmetro estar fora do âmbito.\n" + +#: debug.c:1917 +#, c-format +msgid " in file `%s', line %d\n" +msgstr " no ficheiro \"%s\", linha %d\n" + +#: debug.c:1938 +#, c-format +msgid " at `%s':%d" +msgstr " em 2%s\":%d" + +#: debug.c:1954 debug.c:2017 +#, c-format +msgid "#%ld\tin " +msgstr "#%ld\tem " + +#: debug.c:1991 +#, c-format +msgid "More stack frames follow ...\n" +msgstr "Seguem-se mais quadros da pilha...\n" + +#: debug.c:2034 +msgid "invalid frame number" +msgstr "número de quadro inválido" + +#: debug.c:2217 +#, c-format +msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d" +msgstr "" +"Nota: breakpoint %d (activo, ignora %ld hits seguintes), também definido em " +"%s:%d" + +#: debug.c:2224 +#, c-format +msgid "Note: breakpoint %d (enabled), also set at %s:%d" +msgstr "Nota: breakpoint %d (activo), também definido em %s:%d" + +#: debug.c:2231 +#, c-format +msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d" +msgstr "" +"Nota: breakpoint %d (inactivo, ignora %ld hits seguintes), também definido " +"em %s:%d" + +#: debug.c:2238 +#, c-format +msgid "Note: breakpoint %d (disabled), also set at %s:%d" +msgstr "Nota: breakpoint %d (inactivo), também definido em %s:%d" + +#: debug.c:2255 +#, c-format +msgid "Breakpoint %d set at file `%s', line %d\n" +msgstr "Breakpoint %d definido no ficheiro \"%s\", linha %d\n" + +#: debug.c:2357 +#, c-format +msgid "Can't set breakpoint in file `%s'\n" +msgstr "Impossível definir breakpoint no ficheiro \"%s\"\n" + +#: debug.c:2386 debug.c:2509 debug.c:3367 +#, c-format +msgid "line number %d in file `%s' out of range" +msgstr "número de linha %d no ficheiro \"%s\" fora do intervalo" + +#: debug.c:2390 +#, c-format +msgid "Can't find rule!!!\n" +msgstr "Impossível encontrar a regra!!!\n" + +#: debug.c:2392 +#, c-format +msgid "Can't set breakpoint at `%s':%d\n" +msgstr "Impossível definir breakpoint em \"%s\":%d\n" + +#: debug.c:2404 +#, c-format +msgid "Can't set breakpoint in function `%s'\n" +msgstr "Impossível definir breakpoint na função \"%s\"\n" + +#: debug.c:2420 +#, c-format +msgid "breakpoint %d set at file `%s', line %d is unconditional\n" +msgstr "breakpoint %d definido no ficheiro \"%s\", linha %d é incondicional\n" + +#: debug.c:2525 debug.c:2547 +#, c-format +msgid "Deleted breakpoint %d" +msgstr "Breakpoint %d eliminado" + +#: debug.c:2531 +#, c-format +msgid "No breakpoint(s) at entry to function `%s'\n" +msgstr "Sem breakpoints na entrada da função \"%s\"\n" + +#: debug.c:2558 +#, c-format +msgid "No breakpoint at file `%s', line #%d\n" +msgstr "Sem breakpoint no ficheiro \"%s\", linha %d\n" + +#: debug.c:2613 debug.c:2654 debug.c:2674 debug.c:2717 +msgid "invalid breakpoint number" +msgstr "Número de breakpoint inválido" + +#: debug.c:2629 +msgid "Delete all breakpoints? (y or n) " +msgstr "Eliminar todos os breakpoints? (s ou n) " + +# I'm assuming this is the translation of the 'y' from the previous string. +# +# Presume-se que esta cadeia seja a tradução do "y" da cadeia anterior. +#: debug.c:2630 debug.c:2940 debug.c:2993 +msgid "y" +msgstr "s" + +#: debug.c:2679 +#, c-format +msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n" +msgstr "Vai ignorar os %ld cruzamentos seguintes do breakpoint %d.\n" + +#: debug.c:2683 +#, c-format +msgid "Will stop next time breakpoint %d is reached.\n" +msgstr "Vai parar da próxima vez que o breakpoint %d seja atingido.\n" + +#: debug.c:2800 +#, c-format +msgid "Can only debug programs provided with the `-f' option.\n" +msgstr "Só se pode depurar programas indicando a opção \"-f\".\n" + +#: debug.c:2925 +#, c-format +msgid "Failed to restart debugger" +msgstr "Falha ao reiniciar o depurador" + +#: debug.c:2939 +msgid "Program already running. Restart from beginning (y/n)? " +msgstr "Programa já em execução. Recomeçar do início (y/n)? " + +#: debug.c:2943 +#, c-format +msgid "Program not restarted\n" +msgstr "Programa não reiniciado\n" + +#: debug.c:2953 +#, c-format +msgid "error: cannot restart, operation not allowed\n" +msgstr "erro: impossível reiniciar, operação não permitida\n" + +#: debug.c:2959 +#, c-format +msgid "error (%s): cannot restart, ignoring rest of the commands\n" +msgstr "erro (%s): impossível reiniciar, a ignorar o resto dos comandos\n" + +#: debug.c:2967 +#, c-format +msgid "Starting program: \n" +msgstr "A iniciar o programa: \n" + +#: debug.c:2977 +#, c-format +msgid "Program exited abnormally with exit value: %d\n" +msgstr "O programa saiu anormalmente com o código %d\n" + +#: debug.c:2978 +#, c-format +msgid "Program exited normally with exit value: %d\n" +msgstr "O programa saiu normalmente com o código %d\n" + +#: debug.c:2992 +msgid "The program is running. Exit anyway (y/n)? " +msgstr "O programa está em execução. Sair mesmo assim (y/n)? " + +#: debug.c:3027 +#, c-format +msgid "Not stopped at any breakpoint; argument ignored.\n" +msgstr "Não parado em nenhum breakpoint; argumento ignorado.\n" + +#: debug.c:3032 +#, c-format +msgid "invalid breakpoint number %d." +msgstr "número de breakpoint %d inválido." + +#: debug.c:3037 +#, c-format +msgid "Will ignore next %ld crossings of breakpoint %d.\n" +msgstr "Vai ignorar os %ld cruzamentos seguintes do breakpoint %d.\n" + +#: debug.c:3224 +#, c-format +msgid "'finish' not meaningful in the outermost frame main()\n" +msgstr "\"finish\" não tem significado no quadro main() mais exterior\n" + +#: debug.c:3229 +#, c-format +msgid "Run till return from " +msgstr "Executar até voltar de " + +#: debug.c:3272 +#, c-format +msgid "'return' not meaningful in the outermost frame main()\n" +msgstr "\"return\" não tem significado no quadro main() mais exterior\n" + +#: debug.c:3386 +#, c-format +msgid "Can't find specified location in function `%s'\n" +msgstr "Impossível encontrar a localização especificada na função \"%s\"\n" + +#: debug.c:3394 +#, c-format +msgid "invalid source line %d in file `%s'" +msgstr "linha fonte %d inválida no ficheiro \"%s\"" + +#: debug.c:3409 +#, c-format +msgid "Can't find specified location %d in file `%s'\n" +msgstr "" +"Impossível encontrar a localização especificada %d no ficheiro \"%s\"\n" + +#: debug.c:3441 +#, c-format +msgid "element not in array\n" +msgstr "elemento não está na matriz\n" + +#: debug.c:3441 +#, c-format +msgid "untyped variable\n" +msgstr "variável sem tipo\n" + +#: debug.c:3483 +#, c-format +msgid "Stopping in %s ...\n" +msgstr "A parar em %s...\n" + +#: debug.c:3560 +#, c-format +msgid "'finish' not meaningful with non-local jump '%s'\n" +msgstr "\"finish\" sem significado com salto não-local \"%s\"\n" + +#: debug.c:3567 +#, c-format +msgid "'until' not meaningful with non-local jump '%s'\n" +msgstr "\"until\" sem significado com salto não-local \"%s\"\n" + +#: debug.c:4323 +msgid "\t------[Enter] to continue or q [Enter] to quit------" +msgstr "\t------[Enter] para continuar ou q [Enter] para sair------" + +#: debug.c:4324 +msgid "q" +msgstr "q" + +#: debug.c:5140 +#, c-format +msgid "[\"%.*s\"] not in array `%s'" +msgstr "[\"%.*s\"] não está na matriz \"%s\"" + +#: debug.c:5346 +#, c-format +msgid "sending output to stdout\n" +msgstr "a enviar saída para stdout\n" + +#: debug.c:5386 +msgid "invalid number" +msgstr "número inválido" + +#: debug.c:5520 +#, c-format +msgid "`%s' not allowed in current context; statement ignored" +msgstr "\"%s\" não permitido no contexto actual; declaração ignorada" + +#: debug.c:5528 +msgid "`return' not allowed in current context; statement ignored" +msgstr "\"return\" não permitido no contexto actual; declaração ignorada" + +#: debug.c:5743 +#, c-format +msgid "No symbol `%s' in current context" +msgstr "Sem símbolo \"%s\" no contexto actual" + +#: eval.c:401 +#, c-format +msgid "unknown nodetype %d" +msgstr "nodetype %d desconhecido" + +#: eval.c:412 eval.c:428 +#, c-format +msgid "unknown opcode %d" +msgstr "opcode %d desconhecido" + +#: eval.c:425 +#, c-format +msgid "opcode %s not an operator or keyword" +msgstr "opcode %s não é um operador ou palavra-chave" + +#: eval.c:483 +msgid "buffer overflow in genflags2str" +msgstr "transporte de buffer em genflags2str" + +#: eval.c:685 +#, c-format +msgid "" +"\n" +"\t# Function Call Stack:\n" +"\n" +msgstr "" +"\n" +"\t# Pilha de chamadas de função:\n" +"\n" + +#: eval.c:711 +msgid "`IGNORECASE' is a gawk extension" +msgstr "\"IGNORECASE\" é uma extensão gawk" + +#: eval.c:732 +msgid "`BINMODE' is a gawk extension" +msgstr "\"BINMODE\" é uma extensão gawk" + +#: eval.c:789 +#, c-format +msgid "BINMODE value `%s' is invalid, treated as 3" +msgstr "valor BINMODE \"%s\" inválido, tratado como 3" + +#: eval.c:912 +#, c-format +msgid "bad `%sFMT' specification `%s'" +msgstr "má \"%sFMT\" especificação \"%s\"" + +#: eval.c:982 +msgid "turning off `--lint' due to assignment to `LINT'" +msgstr "a desligar \"--lint\" devido a atribuição a \"LINT\"" + +#: eval.c:1176 +#, c-format +msgid "reference to uninitialized argument `%s'" +msgstr "referência a argumento \"%s\" não inicializado" + +#: eval.c:1177 +#, c-format +msgid "reference to uninitialized variable `%s'" +msgstr "referência a variável \"%s\" não inicializada" + +#: eval.c:1195 +msgid "attempt to field reference from non-numeric value" +msgstr "tentativa de referenciar campo a partir de valor não-numérico" + +#: eval.c:1197 +msgid "attempt to field reference from null string" +msgstr "tentativa de referenciar campo a partir de cadeia nula" + +#: eval.c:1205 +#, c-format +msgid "attempt to access field %ld" +msgstr "tentativa de aceder ao campo %ld" + +#: eval.c:1214 +#, c-format +msgid "reference to uninitialized field `$%ld'" +msgstr "referência a campo \"$%ld\" não inicializado" + +#: eval.c:1278 +#, c-format +msgid "function `%s' called with more arguments than declared" +msgstr "função \"%s\" chamada com mais argumentos do que os declarados" + +#: eval.c:1475 +#, c-format +msgid "unwind_stack: unexpected type `%s'" +msgstr "unwind_stack: tipo \"%s\" inesperado" + +#: eval.c:1568 +msgid "division by zero attempted in `/='" +msgstr "tentativa de dividir por zero em \"/=\"" + +#: eval.c:1575 +#, c-format +msgid "division by zero attempted in `%%='" +msgstr "tentativa de dividir por zero em \"%%=\"" + +#: ext.c:51 +msgid "extensions are not allowed in sandbox mode" +msgstr "não são permitidas extensões em modo sandbox" + +#: ext.c:54 +msgid "-l / @load are gawk extensions" +msgstr "-l/@load são extensões gawk" + +#: ext.c:57 +msgid "load_ext: received NULL lib_name" +msgstr "load_ext: recebido NULL lib_name" + +#: ext.c:60 +#, c-format +msgid "load_ext: cannot open library `%s' (%s)" +msgstr "load_ext: impossível abrir biblioteca \"%s\" (%s)" + +#: ext.c:66 +#, c-format +msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)" +msgstr "" +"load_ext: biblioteca \"%s\": não define \"plugin_is_GPL_compatible\" (%s)" + +#: ext.c:72 +#, c-format +msgid "load_ext: library `%s': cannot call function `%s' (%s)" +msgstr "load_ext: biblioteca \"%s\": impossível chamar a função \"%s\" (%s)" + +#: ext.c:76 +#, c-format +msgid "load_ext: library `%s' initialization routine `%s' failed" +msgstr "load_ext: biblioteca \"%s\": rotina de inicialização \"%s\" falhou" + +#: ext.c:92 +msgid "make_builtin: missing function name" +msgstr "make_builtin: nome de função em falta" + +#: ext.c:100 ext.c:111 +#, c-format +msgid "make_builtin: can't use gawk built-in `%s' as function name" +msgstr "" +"make_builtin: impossível usar \"%s\" interna do gawk como nome de função" + +#: ext.c:109 +#, c-format +msgid "make_builtin: can't use gawk built-in `%s' as namespace name" +msgstr "" +"make_builtin: impossível usar \"%s\" interna do gawk como nome de namespace" + +#: ext.c:126 +#, c-format +msgid "make_builtin: can't redefine function `%s'" +msgstr "make_builtin: impossível redefinir função \"%s\"" + +#: ext.c:130 +#, c-format +msgid "make_builtin: function `%s' already defined" +msgstr "make_builtin: função \"%s\" já definida" + +#: ext.c:134 +#, c-format +msgid "make_builtin: function name `%s' previously defined" +msgstr "make_builtin: nome de função \"%s\" anteriormente definido" + +#: ext.c:138 +#, c-format +msgid "make_builtin: negative argument count for function `%s'" +msgstr "make_builtin: total de argumentos negativo para a função \"%s\"" + +#: ext.c:214 +#, c-format +msgid "function `%s': argument #%d: attempt to use scalar as an array" +msgstr "" +"função \"%s\": argumento nº %d: tentativa de usar um escalar como matriz" + +#: ext.c:218 +#, c-format +msgid "function `%s': argument #%d: attempt to use array as a scalar" +msgstr "" +"função \"%s\": argumento nº %d: tentativa de usar uma matriz como escalar" + +#: ext.c:232 +#, fuzzy +msgid "dynamic loading of libraries is not supported" +msgstr "carregamento dinâmico de biblioteca não suportado" + +#: extension/filefuncs.c:442 +#, c-format +msgid "stat: unable to read symbolic link `%s'" +msgstr "stat: impossível ler ligação simbólica \"%s\"" + +#: extension/filefuncs.c:476 extension/filefuncs.c:520 +msgid "stat: bad parameters" +msgstr "stat: maus parâmetros" + +#: extension/filefuncs.c:585 +#, c-format +msgid "fts init: could not create variable %s" +msgstr "fts init: impossível criar variável %s" + +#: extension/filefuncs.c:606 +msgid "fts is not supported on this system" +msgstr "fts não suportado neste sistema" + +#: extension/filefuncs.c:625 +msgid "fill_stat_element: could not create array" +msgstr "fill_stat_element: impossível criar matriz" + +#: extension/filefuncs.c:634 +msgid "fill_stat_element: could not set element" +msgstr "fill_stat_element: impossível definir elemento" + +#: extension/filefuncs.c:649 +msgid "fill_path_element: could not set element" +msgstr "fill_path_element: impossível definir elemento" + +#: extension/filefuncs.c:665 +msgid "fill_error_element: could not set element" +msgstr "fill_error_element: impossível definir elemento" + +#: extension/filefuncs.c:717 extension/filefuncs.c:764 +msgid "fts-process: could not create array" +msgstr "fts-process: impossível criar matriz" + +#: extension/filefuncs.c:727 extension/filefuncs.c:774 +#: extension/filefuncs.c:792 +msgid "fts-process: could not set element" +msgstr "fts-process: impossível definir elemento" + +#: extension/filefuncs.c:841 +msgid "fts: called with incorrect number of arguments, expecting 3" +msgstr "fts: chamada com número incorrecto de argumentos, esperados 3" + +#: extension/filefuncs.c:844 +msgid "fts: bad first parameter" +msgstr "fts: mau 1º parâmetro" + +#: extension/filefuncs.c:850 +msgid "fts: bad second parameter" +msgstr "fts: mau 2º parâmetro" + +#: extension/filefuncs.c:856 +msgid "fts: bad third parameter" +msgstr "fts: mau 3º parâmetro" + +#: extension/filefuncs.c:863 +msgid "fts: could not flatten array\n" +msgstr "fts: impossível aplanar matriz\n" + +#: extension/filefuncs.c:881 +msgid "fts: ignoring sneaky FTS_NOSTAT flag. nyah, nyah, nyah." +msgstr "fts: a ignorar bandeira FTS_NOSTAT furtiva. nyah, nyah, nyah." + +#: extension/filefuncs.c:897 +msgid "fts: clear_array() failed\n" +msgstr "fts: clear_array() falhou\n" + +#: extension/fnmatch.c:120 +msgid "fnmatch: could not get first argument" +msgstr "fnmatch: impossível obter o 1º argumento" + +#: extension/fnmatch.c:125 +msgid "fnmatch: could not get second argument" +msgstr "fnmatch: impossível obter o 2º argumento" + +#: extension/fnmatch.c:130 +msgid "fnmatch: could not get third argument" +msgstr "fnmatch: impossível obter o 3º argumento" + +#: extension/fnmatch.c:143 +msgid "fnmatch is not implemented on this system\n" +msgstr "fnmatch não está implementado neste sistema\n" + +#: extension/fnmatch.c:175 +msgid "fnmatch init: could not add FNM_NOMATCH variable" +msgstr "fnmatch init: impossível adicionar a variável FNM_NOMATCH" + +#: extension/fnmatch.c:185 +#, c-format +msgid "fnmatch init: could not set array element %s" +msgstr "fnmatch init: impossível definir elemento de matriz %s" + +#: extension/fnmatch.c:195 +msgid "fnmatch init: could not install FNM array" +msgstr "fnmatch init: impossível instalar matriz FNM" + +#: extension/fork.c:92 +msgid "fork: PROCINFO is not an array!" +msgstr "fork: PROCINFO não é uma matriz!" + +#: extension/inplace.c:131 +msgid "inplace::begin: in-place editing already active" +msgstr "inplace::begin: edição in-loco já está activa" + +#: extension/inplace.c:134 +#, c-format +msgid "inplace::begin: expects 2 arguments but called with %d" +msgstr "inplace::begin: espera 2 argumentos, mas foi chamado com %d" + +#: extension/inplace.c:137 +msgid "inplace::begin: cannot retrieve 1st argument as a string filename" +msgstr "" +"inplace::begin: impossível obter o 1º argumento como nome de ficheiro de " +"cadeia" + +#: extension/inplace.c:145 +#, c-format +msgid "inplace::begin: disabling in-place editing for invalid FILENAME `%s'" +msgstr "" +"inplace::begin: a desactivar edição in-loco para NOMEFICH \"%s\" inválido" + +#: extension/inplace.c:152 +#, c-format +msgid "inplace::begin: Cannot stat `%s' (%s)" +msgstr "inplace::begin: impossível analisar \"%s\" (%s)" + +#: extension/inplace.c:159 +#, c-format +msgid "inplace::begin: `%s' is not a regular file" +msgstr "inplace::begin: \"%s\" não é um ficheiro normal" + +#: extension/inplace.c:170 +#, c-format +msgid "inplace::begin: mkstemp(`%s') failed (%s)" +msgstr "inplace::begin: mkstemp(`%s') falhou (%s)" + +#: extension/inplace.c:182 +#, c-format +msgid "inplace::begin: chmod failed (%s)" +msgstr "inplace::begin: chmod falhou (%s)" + +#: extension/inplace.c:189 +#, c-format +msgid "inplace::begin: dup(stdout) failed (%s)" +msgstr "inplace::begin: dup(stdout) falhou (%s)" + +#: extension/inplace.c:192 +#, c-format +msgid "inplace::begin: dup2(%d, stdout) failed (%s)" +msgstr "inplace::begin: dup2(%d, stdout) falhou (%s)" + +#: extension/inplace.c:195 +#, c-format +msgid "inplace::begin: close(%d) failed (%s)" +msgstr "inplace::begin: close(%d) falhou (%s)" + +#: extension/inplace.c:211 +#, c-format +msgid "inplace::end: expects 2 arguments but called with %d" +msgstr "inplace::end: espera 2 argumentos, mas foi chamado com %d" + +#: extension/inplace.c:214 +msgid "inplace::end: cannot retrieve 1st argument as a string filename" +msgstr "" +"inplace::end: impossível obter o 1º argumento como nome de ficheiro de cadeia" + +#: extension/inplace.c:221 +msgid "inplace::end: in-place editing not active" +msgstr "inplace::end: edição in-loco não activa" + +#: extension/inplace.c:227 +#, c-format +msgid "inplace::end: dup2(%d, stdout) failed (%s)" +msgstr "inplace::end: dup2(%d, stdout) falhou (%s)" + +#: extension/inplace.c:230 +#, c-format +msgid "inplace::end: close(%d) failed (%s)" +msgstr "inplace::end: close(%d) falhou (%s)" + +#: extension/inplace.c:234 +#, c-format +msgid "inplace::end: fsetpos(stdout) failed (%s)" +msgstr "inplace::end: fsetpos(stdout) falhou (%s)" + +#: extension/inplace.c:247 +#, c-format +msgid "inplace::end: link(`%s', `%s') failed (%s)" +msgstr "inplace::end: link(`%s', `%s') falhou (%s)" + +#: extension/inplace.c:257 +#, c-format +msgid "inplace::end: rename(`%s', `%s') failed (%s)" +msgstr "inplace::end: rename(`%s', `%s') falhou (%s)" + +#: extension/ordchr.c:72 +msgid "ord: called with inappropriate argument(s)" +msgstr "ord: chamada com argumentos inapropriados" + +#: extension/ordchr.c:99 +msgid "chr: called with inappropriate argument(s)" +msgstr "chr: chamada com argumentos inapropriados" + +#: extension/readdir.c:273 +#, c-format +msgid "dir_take_control_of: opendir/fdopendir failed: %s" +msgstr "dir_take_control_of: opendir/fdopendir falhou: %s" + +#: extension/readfile.c:131 +msgid "readfile: called with wrong kind of argument" +msgstr "readfile: chamada com tipo de argumento errado" + +#: extension/revoutput.c:127 +msgid "revoutput: could not initialize REVOUT variable" +msgstr "revoutput: impossível inicializar a variável REVOUT" + +#: extension/rwarray.c:119 extension/rwarray0.c:114 +#, c-format +msgid "do_writea: argument 0 is not a string\n" +msgstr "do_writea: argumento 0 não é uma cadeia\n" + +#: extension/rwarray.c:125 extension/rwarray0.c:120 +#, c-format +msgid "do_writea: argument 1 is not an array\n" +msgstr "do_writea: argumento 1 não é uma matriz\n" + +#: extension/rwarray.c:172 extension/rwarray0.c:167 +#, c-format +msgid "write_array: could not flatten array\n" +msgstr "write_array: impossível aplanar a matriz\n" + +#: extension/rwarray.c:188 extension/rwarray0.c:181 +#, c-format +msgid "write_array: could not release flattened array\n" +msgstr "write_array: impossível libertar a matriz aplanada\n" + +#: extension/rwarray.c:255 +#, c-format +msgid "array value has unknown type %d" +msgstr "valor de matriz tem um tipo %d desconhecido" + +#: extension/rwarray.c:292 extension/rwarray0.c:267 +#, c-format +msgid "do_reada: argument 0 is not a string\n" +msgstr "do_reada: argumento 0 não é uma cadeia\n" + +#: extension/rwarray.c:298 extension/rwarray0.c:273 +#, c-format +msgid "do_reada: argument 1 is not an array\n" +msgstr "do_reada: argumento 1 não é uma matriz\n" + +#: extension/rwarray.c:342 extension/rwarray0.c:317 +#, c-format +msgid "do_reada: clear_array failed\n" +msgstr "do_reada: clear_array falhou\n" + +#: extension/rwarray.c:379 extension/rwarray0.c:353 +#, c-format +msgid "read_array: set_array_element failed\n" +msgstr "read_array: set_array_element falhou\n" + +#: extension/rwarray.c:489 +#, c-format +msgid "treating recovered value with unknown type code %d as a string" +msgstr "" +"a tratar o valor recuperado com tipo desconhecido de código %d como cadeia" + +#: extension/time.c:141 +msgid "gettimeofday: not supported on this platform" +msgstr "gettimeofday: não suportado nesta plataforma" + +#: extension/time.c:162 +msgid "sleep: missing required numeric argument" +msgstr "sleep: argumento numérico requerido em falta" + +#: extension/time.c:168 +msgid "sleep: argument is negative" +msgstr "sleep: argumento é negativo" + +#: extension/time.c:202 +msgid "sleep: not supported on this platform" +msgstr "sleep: não suportado nesta plataforma" + +#: field.c:284 +msgid "input record too large" +msgstr "registo de entrada muito grande" + +#: field.c:398 +msgid "NF set to negative value" +msgstr "NF definido como valor negativo" + +#: field.c:403 +msgid "decrementing NF is not portable to many awk versions" +msgstr "decrementar NF não é portável para muitas versões awk" + +#: field.c:847 +msgid "accessing fields from an END rule may not be portable" +msgstr "aceder a campos a partir de uma regra END pode não ser portável" + +#: field.c:976 field.c:983 +msgid "split: fourth argument is a gawk extension" +msgstr "split: o 4º argumento é uma extensão gawk" + +#: field.c:980 +msgid "split: fourth argument is not an array" +msgstr "split: o 4º argumento não é uma matriz" + +#: field.c:990 +msgid "split: second argument is not an array" +msgstr "split: 2º argumento não é uma matriz" + +#: field.c:994 +msgid "split: cannot use the same array for second and fourth args" +msgstr "split: impossível usar a mesma matriz para 2º e 4º argumentos" + +#: field.c:999 +msgid "split: cannot use a subarray of second arg for fourth arg" +msgstr "" +"split: impossível usar uma sub-matriz do 2º argumento como 4º argumento" + +#: field.c:1002 +msgid "split: cannot use a subarray of fourth arg for second arg" +msgstr "" +"split: impossível usar uma sub-matriz do 4º argumento como 2º argumento" + +#: field.c:1036 +msgid "split: null string for third arg is a non-standard extension" +msgstr "split: cadeia nula para 3º argumento é uma extensão não-padrão" + +#: field.c:1073 +msgid "patsplit: fourth argument is not an array" +msgstr "patsplit: o 4º argumento não é uma matriz" + +#: field.c:1078 +msgid "patsplit: second argument is not an array" +msgstr "patsplit: o 2º argumento não é uma matriz" + +#: field.c:1087 +msgid "patsplit: third argument must be non-null" +msgstr "patsplit: o 3º argumento não pode ser nulo" + +#: field.c:1091 +msgid "patsplit: cannot use the same array for second and fourth args" +msgstr "patsplit: impossível usar a mesma matriz para 2º e 4º argumentos" + +#: field.c:1096 +msgid "patsplit: cannot use a subarray of second arg for fourth arg" +msgstr "" +"patsplit: impossível usar uma sub-matriz do 2º argumento como 4º argumento" + +#: field.c:1099 +msgid "patsplit: cannot use a subarray of fourth arg for second arg" +msgstr "" +"patsplit: impossível usar uma sub-matriz do 4º argumento como 2º argumento" + +#: field.c:1149 +msgid "`FIELDWIDTHS' is a gawk extension" +msgstr "\"FIELDWIDTHS\" é uma extensão gawk" + +#: field.c:1218 +msgid "`*' must be the last designator in FIELDWIDTHS" +msgstr "\"*\" tem de ser o último designador em FIELDWIDTHS" + +#: field.c:1239 +#, c-format +msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" +msgstr "valor FIELDWIDTHS inválido, para o campo %d, perto de \"%s\"" + +#: field.c:1312 +msgid "null string for `FS' is a gawk extension" +msgstr "cadeia nula para \"FS\" é uma extensão gawk" + +#: field.c:1316 +msgid "old awk does not support regexps as value of `FS'" +msgstr "o awk antigo não suporta regexps como valores de \"FS\"" + +#: field.c:1443 +msgid "`FPAT' is a gawk extension" +msgstr "\"FPAT\" é uma extensão gawk" + +#: gawkapi.c:161 +msgid "awk_value_to_node: received null retval" +msgstr "awk_value_to_node: recebido retval nulo" + +#: gawkapi.c:178 gawkapi.c:189 +msgid "awk_value_to_node: not in MPFR mode" +msgstr "awk_value_to_node: não está em modo MPFR" + +#: gawkapi.c:183 gawkapi.c:194 +msgid "awk_value_to_node: MPFR not supported" +msgstr "awk_value_to_node: MPFR não suportado" + +#: gawkapi.c:198 +#, c-format +msgid "awk_value_to_node: invalid number type `%d'" +msgstr "awk_value_to_node: tipo de número \"%d\" inválido" + +#: gawkapi.c:385 +msgid "add_ext_func: received NULL name_space parameter" +msgstr "add_ext_func: recebido parâmetro name_space NULL" + +#: gawkapi.c:523 +#, c-format +msgid "" +"node_to_awk_value: detected invalid numeric flags combination `%s'; please " +"file a bug report." +msgstr "" +"node_to_awk_value: detectada combinação de bandeiras numéricas \"%s\" " +"inválida; por favor, faça um relatório de erro." + +#: gawkapi.c:551 +msgid "node_to_awk_value: received null node" +msgstr "node_to_awk_value: recebido nó nulo" + +#: gawkapi.c:554 +msgid "node_to_awk_value: received null val" +msgstr "node_to_awk_value: recebido valor nulo" + +#: gawkapi.c:610 gawkapi.c:644 gawkapi.c:671 gawkapi.c:704 +#, c-format +msgid "" +"node_to_awk_value detected invalid flags combination `%s'; please file a bug " +"report." +msgstr "" +"node_to_awk_value: detectada combinação de bandeiras \"%s\" inválida; por " +"favor, faça um relatório de erro." + +#: gawkapi.c:1082 +msgid "remove_element: received null array" +msgstr "remove_element: recebida matriz nula" + +#: gawkapi.c:1085 +msgid "remove_element: received null subscript" +msgstr "remove_element: recebido subscrito nulo" + +#: gawkapi.c:1217 +#, c-format +msgid "api_flatten_array_typed: could not convert index %d to %s" +msgstr "api_flatten_array_typed: impossível converter índice %d para %s" + +#: gawkapi.c:1222 +#, c-format +msgid "api_flatten_array_typed: could not convert value %d to %s" +msgstr "api_flatten_array_typed: impossível converter valor %d para %s" + +#: gawkapi.c:1318 gawkapi.c:1334 +msgid "api_get_mpfr: MPFR not supported" +msgstr "api_get_mpfr: MPFR não suportado" + +#: gawkapi.c:1365 +msgid "cannot find end of BEGINFILE rule" +msgstr "impossível encontrar o fim da regra BEGINFILE" + +#: gawkapi.c:1419 +#, c-format +msgid "cannot open unrecognized file type `%s' for `%s'" +msgstr "impossível abrir tipo de ficheiro \"%s\" desconhecido para \"%s\"" + +#: io.c:426 +#, c-format +msgid "command line argument `%s' is a directory: skipped" +msgstr "argumento de linha de comandos \"%s\" é uma pasta: saltado" + +#: io.c:429 io.c:546 +#, c-format +msgid "cannot open file `%s' for reading (%s)" +msgstr "impossível abrir o ficheiro \"%s\" para leitura (%s)" + +#: io.c:675 +#, c-format +msgid "close of fd %d (`%s') failed (%s)" +msgstr "fecho de fd %d (\"%s\") falhou (%s)" + +#: io.c:753 +msgid "redirection not allowed in sandbox mode" +msgstr "redireccionamento não permitido em modo sandbox" + +#: io.c:787 +#, c-format +msgid "expression in `%s' redirection is a number" +msgstr "expressão em redireccionamento \"%s\" é um número" + +#: io.c:791 +#, c-format +msgid "expression for `%s' redirection has null string value" +msgstr "expressão para redireccionamento \"%s\" tem um valor de cadeia nulo" + +#: io.c:796 +#, c-format +msgid "" +"filename `%.*s' for `%s' redirection may be result of logical expression" +msgstr "" +"nome de ficheiro \"%.*s\" para redireccionamento \"%s\" pode ser o resultado " +"de uma expressão lógica" + +#: io.c:844 +#, c-format +msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" +msgstr "mistura desnecessária de \">\" e \">>\" para o ficheiro \"%.*s\"" + +#: io.c:896 io.c:921 +#, c-format +msgid "get_file cannot create pipe `%s' with fd %d" +msgstr "get_file não pode criar túnel \"%s\" com fd %d" + +#: io.c:911 +#, c-format +msgid "can't open pipe `%s' for output (%s)" +msgstr "impossível abrir túnel \"%s\" para saída (%s)" + +#: io.c:926 +#, c-format +msgid "can't open pipe `%s' for input (%s)" +msgstr "impossível abrir túnel \"%s\" para entrada (%s)" + +#: io.c:950 +#, c-format +msgid "" +"get_file socket creation not supported on this platform for `%s' with fd %d" +msgstr "" +"criação de socket get_file não suportada nesta plataforma para \"%s\" com fd " +"%d" + +#: io.c:961 +#, c-format +msgid "can't open two way pipe `%s' for input/output (%s)" +msgstr "impossível abrir túnel de duas vias \"%s\" para entrada/saída (%s)" + +#: io.c:1048 +#, c-format +msgid "can't redirect from `%s' (%s)" +msgstr "impossível redireccionar de \"%s\" (%s)" + +#: io.c:1051 +#, c-format +msgid "can't redirect to `%s' (%s)" +msgstr "impossível redireccionar para \"%s\" (%s)" + +#: io.c:1153 +msgid "" +"reached system limit for open files: starting to multiplex file descriptors" +msgstr "" +"atingido o limite do sistema para ficheiros abertos: a iniciar a " +"multiplexagem de descritores de ficheiros" + +#: io.c:1169 +#, c-format +msgid "close of `%s' failed (%s)." +msgstr "falha ao fechar \"%s\" (%s)." + +#: io.c:1177 +msgid "too many pipes or input files open" +msgstr "demasiados túneis ou ficheiros de entrada abertos" + +#: io.c:1203 +msgid "close: second argument must be `to' or `from'" +msgstr "close: o 2º argumento tem de ser \"to\" ou \"from\"" + +#: io.c:1221 +#, c-format +msgid "close: `%.*s' is not an open file, pipe or co-process" +msgstr "close: \"%.*s\" não é um ficheiro, túnel ou co-processo aberto" + +#: io.c:1226 +msgid "close of redirection that was never opened" +msgstr "fecho de redireccionamento que nunca aconteceu" + +#: io.c:1325 +#, c-format +msgid "close: redirection `%s' not opened with `|&', second argument ignored" +msgstr "" +"close: redireccionamento \"%s\" não aberto com \"|&\", 2º argumento ignorado" + +#: io.c:1342 +#, c-format +msgid "failure status (%d) on pipe close of `%s' (%s)" +msgstr "estado da falha (%d) ao fechar túnel \"%s\" (%s)" + +#: io.c:1345 +#, c-format +msgid "failure status (%d) on file close of `%s' (%s)" +msgstr "estado da falha (%d) ao fechar ficheiro \"%s\" (%s)" + +#: io.c:1365 +#, c-format +msgid "no explicit close of socket `%s' provided" +msgstr "sem fecho de socket \"%s\" específico fornecido" + +#: io.c:1368 +#, c-format +msgid "no explicit close of co-process `%s' provided" +msgstr "sem fecho de co-processo \"%s\" específico fornecido" + +#: io.c:1371 +#, c-format +msgid "no explicit close of pipe `%s' provided" +msgstr "sem fecho de túnel \"%s\" específico fornecido" + +#: io.c:1374 +#, c-format +msgid "no explicit close of file `%s' provided" +msgstr "sem fecho de ficheiro \"%s\" específico fornecido" + +#: io.c:1411 +#, c-format +msgid "fflush: cannot flush standard output: %s" +msgstr "fflush: impossível despejar a saída padrão: %s" + +#: io.c:1412 +#, c-format +msgid "fflush: cannot flush standard error: %s" +msgstr "fflush: impossível despejar o erro padrão: %s" + +#: io.c:1417 io.c:1508 main.c:664 main.c:711 +#, c-format +msgid "error writing standard output (%s)" +msgstr "erro ao escrever na saída padrão (%s)" + +#: io.c:1418 io.c:1521 main.c:666 +#, c-format +msgid "error writing standard error (%s)" +msgstr "erro ao escrever no erro padrão (%s)" + +#: io.c:1457 +#, c-format +msgid "pipe flush of `%s' failed (%s)." +msgstr "falhou o despejo de túnel \"%s\" (%s)." + +#: io.c:1460 +#, c-format +msgid "co-process flush of pipe to `%s' failed (%s)." +msgstr "falhou o despejo de co-processo \"%s\" (%s)." + +#: io.c:1463 +#, c-format +msgid "file flush of `%s' failed (%s)." +msgstr "falhou o despejo de ficheiro \"%s\" (%s)." + +#: io.c:1610 +#, c-format +msgid "local port %s invalid in `/inet': %s" +msgstr "porta local %s inválida em \"/inet\": %s" + +#: io.c:1613 +#, c-format +msgid "local port %s invalid in `/inet'" +msgstr "porta local %s inválida em \"/inet\"" + +#: io.c:1636 +#, c-format +msgid "remote host and port information (%s, %s) invalid: %s" +msgstr "informação de anfitrião remoto e porta (%s, %s) inválidas: %s" + +#: io.c:1639 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "informação de anfitrião remoto e porta (%s, %s) inválidas" + +#: io.c:1881 +msgid "TCP/IP communications are not supported" +msgstr "comunicações TCP/IP não suportadas" + +#: io.c:2009 io.c:2052 +#, c-format +msgid "could not open `%s', mode `%s'" +msgstr "impossível abrir \"%s\", modo \"%s\"" + +#: io.c:2017 io.c:2069 +#, c-format +msgid "close of master pty failed (%s)" +msgstr "falha ao fechar pty mestre (%s)" + +#: io.c:2019 io.c:2071 io.c:2418 io.c:2662 +#, c-format +msgid "close of stdout in child failed (%s)" +msgstr "falha ao fechar stdout em filho (%s)" + +#: io.c:2022 io.c:2074 +#, c-format +msgid "moving slave pty to stdout in child failed (dup: %s)" +msgstr "falha ao mover pty escravo para stdout em filho (dup: %s)" + +#: io.c:2024 io.c:2076 io.c:2423 +#, c-format +msgid "close of stdin in child failed (%s)" +msgstr "falha ao fechar stdin em filho (%s)" + +#: io.c:2027 io.c:2079 +#, c-format +msgid "moving slave pty to stdin in child failed (dup: %s)" +msgstr "falha ao mover pty escravo para stdin em filho (dup: %s)" + +#: io.c:2029 io.c:2081 io.c:2103 +#, c-format +msgid "close of slave pty failed (%s)" +msgstr "falha ao fechar pty escravo (%s)" + +#: io.c:2265 +msgid "could not create child process or open pty" +msgstr "impossível criar processo-filho ou pty aberto" + +#: io.c:2353 io.c:2421 io.c:2633 io.c:2665 +#, c-format +msgid "moving pipe to stdout in child failed (dup: %s)" +msgstr "falha ao mover túnel para stdout em filho (dup: %s)" + +#: io.c:2360 io.c:2426 +#, c-format +msgid "moving pipe to stdin in child failed (dup: %s)" +msgstr "falha ao mover túnel para stdin em filho (dup: %s)" + +#: io.c:2386 io.c:2655 +msgid "restoring stdout in parent process failed" +msgstr "falha ao restaurar stdout em processo-mãe" + +#: io.c:2394 +msgid "restoring stdin in parent process failed" +msgstr "falha ao restaurar stdin em processo-mãe" + +#: io.c:2429 io.c:2667 io.c:2682 +#, c-format +msgid "close of pipe failed (%s)" +msgstr "falha ao fechar túnel (%s)" + +#: io.c:2488 +msgid "`|&' not supported" +msgstr "\"|&\" não suportado" + +#: io.c:2618 +#, c-format +msgid "cannot open pipe `%s' (%s)" +msgstr "impossível abrir túnel \"%s\" (%s)" + +#: io.c:2676 +#, c-format +msgid "cannot create child process for `%s' (fork: %s)" +msgstr "impossível criar processo-filho para \"%s\" (bifurcação: %s)" + +#: io.c:2814 +msgid "getline: attempt to read from closed read end of two-way pipe" +msgstr "" +"getline: tentativa de ler do lado de leitura fechado de um túnel de duas vias" + +#: io.c:3138 +msgid "register_input_parser: received NULL pointer" +msgstr "register_input_parser: recebido ponteiro NULL" + +#: io.c:3166 +#, c-format +msgid "input parser `%s' conflicts with previously installed input parser `%s'" +msgstr "" +"processador de entrada \"%s\" conflitua com o processador de entrada \"%s\" " +"anteriormente instalado" + +#: io.c:3173 +#, c-format +msgid "input parser `%s' failed to open `%s'" +msgstr "processador de entrada \"%s\" falhou ao abrir \"%s\"" + +#: io.c:3193 +msgid "register_output_wrapper: received NULL pointer" +msgstr "register_output_wrapper: recebido ponteiro NULL" + +#: io.c:3221 +#, c-format +msgid "" +"output wrapper `%s' conflicts with previously installed output wrapper `%s'" +msgstr "" +"invólucro de saída \"%s\" conflitua com o invólucro de saída \"%s\" " +"anteriormente instalado" + +#: io.c:3228 +#, c-format +msgid "output wrapper `%s' failed to open `%s'" +msgstr "invólucro de saída \"%s\" falhou ao abrir \"%s\"" + +#: io.c:3249 +msgid "register_output_processor: received NULL pointer" +msgstr "register_output_processor: recebido ponteiro NULL" + +#: io.c:3278 +#, c-format +msgid "" +"two-way processor `%s' conflicts with previously installed two-way processor " +"`%s'" +msgstr "" +"processador de duas vias \"%s\" conflitua com o processador de duas vias \"%s" +"\" anteriormente instalado" + +#: io.c:3287 +#, c-format +msgid "two way processor `%s' failed to open `%s'" +msgstr "processador de duas vias \"%s\" falhou ao abrir \"%s\"" + +#: io.c:3411 +#, c-format +msgid "data file `%s' is empty" +msgstr "ficheiro de dados \"%s\" está vazio" + +#: io.c:3453 io.c:3461 +msgid "could not allocate more input memory" +msgstr "impossível alocar mais memória de entrada" + +#: io.c:4079 +msgid "multicharacter value of `RS' is a gawk extension" +msgstr "valor multi-carácter de \"RS\" é uma extensão gawk" + +#: io.c:4233 +msgid "IPv6 communication is not supported" +msgstr "comunicação IPv6 não suportada" + +#: main.c:335 +msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" +msgstr "variável de ambiente \"POSIXLY_CORRECT\" definida: a ligar \"--posix\"" + +#: main.c:342 +msgid "`--posix' overrides `--traditional'" +msgstr "\"--posix\" sobrepõe-se a \"--traditional\"" + +#: main.c:353 +msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" +msgstr "\"--posix\"/\"--traditional\" sobrepõe-se a \"--non-decimal-data\"" + +#: main.c:358 +msgid "`--posix' overrides `--characters-as-bytes'" +msgstr "\"--posix\" sobrepõe-se a \"--characters-as-bytes\"" + +#: main.c:367 +#, c-format +msgid "running %s setuid root may be a security problem" +msgstr "executar %s setuid root pode ser um problema de segurança" + +#: main.c:420 +#, c-format +msgid "can't set binary mode on stdin (%s)" +msgstr "impossível definir o modo binário em stdin (%s)" + +#: main.c:423 +#, c-format +msgid "can't set binary mode on stdout (%s)" +msgstr "impossível definir o modo binário em stdout (%s)" + +#: main.c:425 +#, c-format +msgid "can't set binary mode on stderr (%s)" +msgstr "impossível definir o modo binário em stderr (%s)" + +#: main.c:487 +msgid "no program text at all!" +msgstr "sem texto de programa!" + +#: main.c:581 +#, c-format +msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" +msgstr "" +"Uso: %s [opções de estilo POSIX ou GNU] -f fichprog [--] ficheiro ...\n" + +#: main.c:583 +#, c-format +msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" +msgstr "" +"Uso: %s [opções de estilo POSIX ou GNU] [--] %cprograma%c ficheiro ...\n" + +#: main.c:588 +msgid "POSIX options:\t\tGNU long options: (standard)\n" +msgstr "Opções POSIX:\t\topções longas GNU: (padrão)\n" + +#: main.c:589 +msgid "\t-f progfile\t\t--file=progfile\n" +msgstr "\t-f fichprog\t\t--file=fichprog\n" + +#: main.c:590 +msgid "\t-F fs\t\t\t--field-separator=fs\n" +msgstr "\t-F fs\t\t\t--field-separator=fs\n" + +#: main.c:591 +msgid "\t-v var=val\t\t--assign=var=val\n" +msgstr "\t-v var=val\t\t--assign=var=val\n" + +#: main.c:592 +msgid "Short options:\t\tGNU long options: (extensions)\n" +msgstr "Opções curtas:\t\topções longas GNU: (extensões)\n" + +#: main.c:593 +msgid "\t-b\t\t\t--characters-as-bytes\n" +msgstr "\t-b\t\t\t--characters-as-bytes\n" + +#: main.c:594 +msgid "\t-c\t\t\t--traditional\n" +msgstr "\t-c\t\t\t--traditional\n" + +#: main.c:595 +msgid "\t-C\t\t\t--copyright\n" +msgstr "\t-C\t\t\t--copyright\n" + +#: main.c:596 +msgid "\t-d[file]\t\t--dump-variables[=file]\n" +msgstr "\t-d[fich]\t\t--dump-variables[=fich]\n" + +#: main.c:597 +msgid "\t-D[file]\t\t--debug[=file]\n" +msgstr "\t-D[fich]\t\t--debug[=fich]\n" + +#: main.c:598 +msgid "\t-e 'program-text'\t--source='program-text'\n" +msgstr "\t-e 'program-text'\t--source='program-text'\n" + +#: main.c:599 +msgid "\t-E file\t\t\t--exec=file\n" +msgstr "\t-E fich\t\t\t--exec=fich\n" + +#: main.c:600 +msgid "\t-g\t\t\t--gen-pot\n" +msgstr "\t-g\t\t\t--gen-pot\n" + +#: main.c:601 +msgid "\t-h\t\t\t--help\n" +msgstr "\t-h\t\t\t--help\n" + +#: main.c:602 +msgid "\t-i includefile\t\t--include=includefile\n" +msgstr "\t-i fichinclude\t\t--include=fichinclude\n" + +#: main.c:603 +msgid "\t-l library\t\t--load=library\n" +msgstr "\t-l biblioteca\t\t--load=biblioteca\n" + +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal +#. values, they should not be translated. Thanks. +#. +#: main.c:608 +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" +msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" + +#: main.c:609 +msgid "\t-M\t\t\t--bignum\n" +msgstr "\t-M\t\t\t--bignum\n" + +#: main.c:610 +msgid "\t-N\t\t\t--use-lc-numeric\n" +msgstr "\t-N\t\t\t--use-lc-numeric\n" + +#: main.c:611 +msgid "\t-n\t\t\t--non-decimal-data\n" +msgstr "\t-n\t\t\t--non-decimal-data\n" + +#: main.c:612 +msgid "\t-o[file]\t\t--pretty-print[=file]\n" +msgstr "\t-o[fich]\t\t--pretty-print[=fich]\n" + +#: main.c:613 +msgid "\t-O\t\t\t--optimize\n" +msgstr "\t-O\t\t\t--optimize\n" + +#: main.c:614 +msgid "\t-p[file]\t\t--profile[=file]\n" +msgstr "\t-p[fich]\t\t--profile[=fich]\n" + +#: main.c:615 +msgid "\t-P\t\t\t--posix\n" +msgstr "\t-P\t\t\t--posix\n" + +#: main.c:616 +msgid "\t-r\t\t\t--re-interval\n" +msgstr "\t-r\t\t\t--re-interval\n" + +#: main.c:617 +msgid "\t-s\t\t\t--no-optimize\n" +msgstr "\t-s\t\t\t--no-optimize\n" + +#: main.c:618 +msgid "\t-S\t\t\t--sandbox\n" +msgstr "\t-S\t\t\t--sandbox\n" + +#: main.c:619 +msgid "\t-t\t\t\t--lint-old\n" +msgstr "\t-t\t\t\t--lint-old\n" + +#: main.c:620 +msgid "\t-V\t\t\t--version\n" +msgstr "\t-V\t\t\t--version\n" + +#: main.c:622 +msgid "\t-W nostalgia\t\t--nostalgia\n" +msgstr "\t-W nostalgia\t\t--nostalgia\n" + +#: main.c:625 +msgid "\t-Y\t\t\t--parsedebug\n" +msgstr "\t-Y\t\t\t--parsedebug\n" + +#: main.c:628 +msgid "\t-Z locale-name\t\t--locale=locale-name\n" +msgstr "\t-Z nome-idioma\t\t--locale=nome-idioma\n" + +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:637 +#, fuzzy +msgid "" +"\n" +"To report bugs, see node `Bugs' in `gawk.info'\n" +"which is section `Reporting Problems and Bugs' in the\n" +"printed version. This same information may be found at\n" +"https://www.gnu.org/software/gawk/manual/html_node/Bugs.html.\n" +"PLEASE do NOT try to report bugs by posting in comp.lang.awk,\n" +"or by using a web forum such as Stack Overflow.\n" +"\n" +msgstr "" +"\n" +"Para reportar erros, veja o nó \"Bugs\" em \"gawk.info\"\n" +"que é a secção \"Reporting Problems and Bugs\" na versão\n" +"impressa. Esta mesma informação pode ser encontrada em\n" +"https://www.gnu.org/software/gawk/manual/html_node/Bugs.html.\n" +"POR FAVOR NÃO tente reportar erros através de comp.lang.awk,\n" +"\n" +"ou usando um fórum web como o Stack Overflow.\n" +"\n" + +#: main.c:645 +msgid "" +"gawk is a pattern scanning and processing language.\n" +"By default it reads standard input and writes standard output.\n" +"\n" +msgstr "" +"O gawk é uma linguagem de análise e processamento de padrões.\n" +"Por predefinição, lê da entrada padrão e escreve na saída padrão.\n" +"\n" + +#: main.c:649 +msgid "" +"Examples:\n" +"\tgawk '{ sum += $1 }; END { print sum }' file\n" +"\tgawk -F: '{ print $1 }' /etc/passwd\n" +msgstr "" +"Exemplos:\n" +"\tgawk '{ sum += $1 }; END { print sum }' ficheiro\n" +"\tgawk -F: '{ print $1 }' /etc/passwd\n" + +#: main.c:681 +#, c-format +msgid "" +"Copyright (C) 1989, 1991-%d Free Software Foundation.\n" +"\n" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 3 of the License, or\n" +"(at your option) any later version.\n" +"\n" +msgstr "" +"Copyright (C) 1989, 1991-%d Free Software Foundation.\n" +"\n" +"Este é um programa grátis: pode redistribuí-lo e/ou modificá-lo.\"\n" +"sob os termos da GNU General Public License tal como publicada pela\n" +"Free Software Foundation; seja a versão 3 da License, ou\n" +"(à sua escolha) qualquer versão posterior.\n" +"\n" + +#: main.c:689 +msgid "" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +msgstr "" +"Este programa é distribuído na esperança de ser útil, mas\n" +"sem QUALQUER GARANTIA; nem mesmo a garantia implícita de\n" +"COMERCIALIZAÇÃO ou CONFORMIDADE PARA UM DETERMINADO FIM.\n" +"Veja a GNU General Public License para mais detalhes.\n" +"\n" + +#: main.c:695 +msgid "" +"You should have received a copy of the GNU General Public License\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" +msgstr "" +"Deverá ter recebido uma cópia da GNU General Public License\n" +"juntamente com este programa. Se não recebeu, veja http://www.gnu.org/" +"licenses/.\n" + +#: main.c:736 +msgid "-Ft does not set FS to tab in POSIX awk" +msgstr "-Ft não define FS para tabulação em awk POSIX" + +#: main.c:1151 +#, c-format +msgid "" +"%s: `%s' argument to `-v' not in `var=value' form\n" +"\n" +msgstr "" +"%s: argumento \"%s\" para \"-v\" não está no formato \"var=valor\"\n" +"\n" + +#: main.c:1177 +#, c-format +msgid "`%s' is not a legal variable name" +msgstr "\"%s\" não é um nome de variável legal" + +#: main.c:1180 +#, c-format +msgid "`%s' is not a variable name, looking for file `%s=%s'" +msgstr "\"%s\" não é um nome de variável, a procurar o ficheiro \"%s=%s\"" + +#: main.c:1194 +#, c-format +msgid "cannot use gawk builtin `%s' as variable name" +msgstr "impossível usar \"%s\" interna do gawk como nome de variável" + +#: main.c:1199 +#, c-format +msgid "cannot use function `%s' as variable name" +msgstr "impossível usar a função \"%s\" como nome de variável" + +#: main.c:1277 +msgid "floating point exception" +msgstr "excepção de vírgula flutuante" + +#: main.c:1287 +msgid "fatal error: internal error" +msgstr "erro fatal: erro interno" + +#: main.c:1307 +msgid "fatal error: internal error: segfault" +msgstr "erro fatal: erro interno: segfault" + +#: main.c:1320 +msgid "fatal error: internal error: stack overflow" +msgstr "erro fatal: erro interno: transporte de pilha" + +#: main.c:1380 +#, c-format +msgid "no pre-opened fd %d" +msgstr "sem fd %d pré-aberto" + +#: main.c:1387 +#, c-format +msgid "could not pre-open /dev/null for fd %d" +msgstr "impossível pré-abrir /dev/null para fd %d" + +#: main.c:1601 +msgid "empty argument to `-e/--source' ignored" +msgstr "argumento vazio para \"-e/--source\" ignorado" + +#: main.c:1662 main.c:1667 +msgid "`--profile' overrides `--pretty-print'" +msgstr "\"--profile\" sobrepõe-se a \"--pretty-print\"" + +#: main.c:1679 +msgid "-M ignored: MPFR/GMP support not compiled in" +msgstr "-M ignorado: suporte a MPFR/GMP não compilado" + +#: main.c:1704 +#, c-format +msgid "%s: option `-W %s' unrecognized, ignored\n" +msgstr "%s: opção \"-W %s\" não reconhecida, ignorado\n" + +#: main.c:1757 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: a opção requer um argumento -- %c\n" + +#: mpfr.c:551 +#, c-format +msgid "PREC value `%.*s' is invalid" +msgstr "valor PREC \"%.*s\" inválido" + +#: mpfr.c:610 +#, c-format +msgid "RNDMODE value `%.*s' is invalid" +msgstr "valor RNDMODE \"%.*s\" inválido" + +#: mpfr.c:707 +#, c-format +msgid "%s: received non-numeric argument" +msgstr "%s: recebido argumento não-numérico" + +#: mpfr.c:816 +msgid "compl(%Rg): negative value is not allowed" +msgstr "compl(%Rg): valor negativo não permitido" + +#: mpfr.c:821 +msgid "comp(%Rg): fractional value will be truncated" +msgstr "comp(%Rg): valor fraccional será truncado" + +#: mpfr.c:832 +#, c-format +msgid "compl(%Zd): negative values are not allowed" +msgstr "compl(%Zd): valores negativos não permitidos" + +#: mpfr.c:850 +#, c-format +msgid "%s: received non-numeric argument #%d" +msgstr "%s: recebido argumento não-numérico nº %d" + +#: mpfr.c:860 +msgid "%s: argument #%d has invalid value %Rg, using 0" +msgstr "%s: argumento nº %d tem valor %Rg inválido, a usar 0" + +#: mpfr.c:871 +msgid "%s: argument #%d negative value %Rg is not allowed" +msgstr "%s: argumento nº %d com valor %Rg negativo não é permitido" + +#: mpfr.c:878 +msgid "%s: argument #%d fractional value %Rg will be truncated" +msgstr "%s: argumento nº %d valor %Rg fraccional será truncado" + +#: mpfr.c:892 +#, c-format +msgid "%s: argument #%d negative value %Zd is not allowed" +msgstr "%s: argumento nº %d com valor %Zd negativo não é permitido" + +#: msg.c:75 +#, c-format +msgid "cmd. line:" +msgstr "linha de comandos:" + +#: node.c:481 +msgid "could not make typed regex" +msgstr "impossível fazer regexp digitada" + +#: node.c:555 +#, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "o awl antigo não suporta a sequência de escape \"\\%c\"" + +#: node.c:606 +msgid "POSIX does not allow `\\x' escapes" +msgstr "POSIX não permite escapes \"\\x\"" + +#: node.c:612 +msgid "no hex digits in `\\x' escape sequence" +msgstr "sem dígitos hexadecimais na sequência de escape \"\\x\"" + +#: node.c:633 +#, c-format +msgid "" +"hex escape \\x%.*s of %d characters probably not interpreted the way you " +"expect" +msgstr "" +"escape hexadecimal \\x%.*s de %d caracteres provavelmente não será " +"interpretado da forma esperada" + +#: node.c:648 +#, c-format +msgid "escape sequence `\\%c' treated as plain `%c'" +msgstr "sequência de escape \"\\%c\" tratada como \"%c\" simples" + +#: node.c:784 +msgid "" +"Invalid multibyte data detected. There may be a mismatch between your data " +"and your locale." +msgstr "" +"Detectados dados multi-byte inválidos. Pode haver confusão entre os dados e " +"as definições regionais." + +#: posix/gawkmisc.c:177 +#, c-format +msgid "%s %s `%s': could not get fd flags: (fcntl F_GETFD: %s)" +msgstr "%s %s \"%s\": impossível obter bandeiras fd: (fcntl F_GETFD: %s)" + +#: posix/gawkmisc.c:189 +#, c-format +msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)" +msgstr "%s %s \"%s\": impossível definir close-on-exec: (fcntl F_SETFD: %s)" + +#: profile.c:73 +msgid "Program indentation level too deep. Consider refactoring your code" +msgstr "" +"Nível de indentação do programa muito profundo. Considere re-fabricar o " +"código" + +#: profile.c:110 +#, c-format +msgid "could not open `%s' for writing: %s" +msgstr "impossível abrir \"%s\" para escrita: %s" + +#: profile.c:112 +msgid "sending profile to standard error" +msgstr "a enviar perfil para erro padrão" + +#: profile.c:271 +#, c-format +msgid "" +"\t# %s rule(s)\n" +"\n" +msgstr "" +"\t# %s regra(s)\n" +"\n" + +#: profile.c:279 +#, c-format +msgid "" +"\t# Rule(s)\n" +"\n" +msgstr "" +"\t# Regra(s)\n" +"\n" + +#: profile.c:367 +#, c-format +msgid "internal error: %s with null vname" +msgstr "erro interno: %s com vname nulo" + +#: profile.c:658 +msgid "internal error: builtin with null fname" +msgstr "erro interno: interno com fname nulo" + +#: profile.c:1302 +#, c-format +msgid "" +"%s# Loaded extensions (-l and/or @load)\n" +"\n" +msgstr "" +"%s# Extensões carregadas (-l e/ou @load)\n" +"\n" + +#: profile.c:1333 +#, c-format +msgid "" +"\n" +"# Included files (-i and/or @include)\n" +"\n" +msgstr "" +"\n" +"# Ficheiros incluídos (-i e/ou @include)\n" +"\n" + +#: profile.c:1397 +#, c-format +msgid "\t# gawk profile, created %s\n" +msgstr "\t# perfil gawk, criado %s\n" + +#: profile.c:1962 +#, c-format +msgid "" +"\n" +"\t# Functions, listed alphabetically\n" +msgstr "" +"\n" +"\t# Funções, listadas alfabeticamente\n" + +#: profile.c:2023 +#, c-format +msgid "redir2str: unknown redirection type %d" +msgstr "redir2str: tipo de redireccionamento %d desconhecido" + +#: re.c:58 re.c:161 +msgid "" +"behavior of matching a regexp containing NUL characters is not defined by " +"POSIX" +msgstr "" +"o comportamento de comparação de uma regexp contendo caracteres NUL não é " +"definido pelo POSIX" + +#: re.c:125 +msgid "invalid NUL byte in dynamic regexp" +msgstr "byte NUL inválido em regexp dinâmica" + +#: re.c:172 +#, c-format +msgid "regexp escape sequence `\\%c' treated as plain `%c'" +msgstr "sequência de escape de regexp \"\\%c\" tratada como \"%c\" simples" + +#: re.c:191 +#, c-format +msgid "regexp escape sequence `\\%c' is not a known regexp operator" +msgstr "" +"sequência de escape de regexp \"\\%c\" não é um operador regexp conhecido" + +#: re.c:650 +#, c-format +msgid "regexp component `%.*s' should probably be `[%.*s]'" +msgstr "componente regexp \"%.*s\" provavelmente deveria ser \"[%.*s]\"" + +#: support/dfa.c:1017 +msgid "unbalanced [" +msgstr "[ sem par" + +#: support/dfa.c:1138 +msgid "invalid character class" +msgstr "classe de carácter inválida" + +#: support/dfa.c:1264 +msgid "character class syntax is [[:space:]], not [:space:]" +msgstr "a sintaxe da classe de carácter é [[:espaço:]], não [:espaço:]" + +#: support/dfa.c:1331 +msgid "unfinished \\ escape" +msgstr "escape \\ não terminado" + +#: support/dfa.c:1492 +msgid "invalid content of \\{\\}" +msgstr "conteúdo de \\{\\} inválido" + +#: support/dfa.c:1495 +msgid "regular expression too big" +msgstr "expressão regular muito grande" + +#: support/dfa.c:1910 +msgid "unbalanced (" +msgstr "( sem par" + +#: support/dfa.c:2028 +msgid "no syntax specified" +msgstr "sem sintaxe especificada" + +#: support/dfa.c:2039 +msgid "unbalanced )" +msgstr ") sem par" + +#: support/getopt.c:605 support/getopt.c:634 +#, c-format +msgid "%s: option '%s' is ambiguous; possibilities:" +msgstr "%s: opção \"%s\" é ambígua; possibilidades:" + +#: support/getopt.c:680 support/getopt.c:684 +#, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: a opção \"--%s\" não permite um argumento\n" + +#: support/getopt.c:693 support/getopt.c:698 +#, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: a opção \"%c%s\" não permite um argumento\n" + +#: support/getopt.c:741 support/getopt.c:760 +#, c-format +msgid "%s: option '--%s' requires an argument\n" +msgstr "%s: a opção \"--%s\" requer um argumento\n" + +#: support/getopt.c:798 support/getopt.c:801 +#, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: opção não reconhecida \"--%s\"\n" + +#: support/getopt.c:809 support/getopt.c:812 +#, c-format +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: opção não reconhecida \"%c%s\"\n" + +#: support/getopt.c:861 support/getopt.c:864 +#, c-format +msgid "%s: invalid option -- '%c'\n" +msgstr "%s: opção inválida -- \"%c\"\n" + +#: support/getopt.c:917 support/getopt.c:934 support/getopt.c:1144 +#: support/getopt.c:1162 +#, c-format +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s: a opção requer um argumento -- \"%c\"\n" + +#: support/getopt.c:990 support/getopt.c:1006 +#, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: a opção \"-W %s\" é ambígua\n" + +#: support/getopt.c:1030 support/getopt.c:1048 +#, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: a opção \"-W %s\" não permite argumentos\n" + +#: support/getopt.c:1069 support/getopt.c:1087 +#, c-format +msgid "%s: option '-W %s' requires an argument\n" +msgstr "%s: a opção \"-W %s\" requer um argumento\n" + +#: support/regcomp.c:135 +msgid "Success" +msgstr "Sucesso" + +#: support/regcomp.c:138 +msgid "No match" +msgstr "Sem correspondência" + +#: support/regcomp.c:141 +msgid "Invalid regular expression" +msgstr "Expressão regular inválida" + +#: support/regcomp.c:144 +msgid "Invalid collation character" +msgstr "Carácter de agrupamento inválido" + +#: support/regcomp.c:147 +msgid "Invalid character class name" +msgstr "Nome de classe de carácter inválido" + +#: support/regcomp.c:150 +msgid "Trailing backslash" +msgstr "Barra invertida final" + +#: support/regcomp.c:153 +msgid "Invalid back reference" +msgstr "Referência de recuo inválida" + +#: support/regcomp.c:156 +msgid "Unmatched [, [^, [:, [., or [=" +msgstr "[, [^, [:, [., ou [= sem par" + +#: support/regcomp.c:159 +msgid "Unmatched ( or \\(" +msgstr "( ou \\( sem par" + +#: support/regcomp.c:162 +msgid "Unmatched \\{" +msgstr "\\{ sem par" + +#: support/regcomp.c:165 +msgid "Invalid content of \\{\\}" +msgstr "Conteúdo de \\{\\} inválido" + +#: support/regcomp.c:168 +msgid "Invalid range end" +msgstr "Fim de intervalo inválido" + +#: support/regcomp.c:171 +msgid "Memory exhausted" +msgstr "Memória esgotada" + +#: support/regcomp.c:174 +msgid "Invalid preceding regular expression" +msgstr "Expressão regular precedente inválida" + +#: support/regcomp.c:177 +msgid "Premature end of regular expression" +msgstr "Fim prematuro de expressão regular" + +#: support/regcomp.c:180 +msgid "Regular expression too big" +msgstr "Expressão regular muito grande" + +#: support/regcomp.c:183 +msgid "Unmatched ) or \\)" +msgstr ") ou \\) sem par" + +#: support/regcomp.c:676 +msgid "No previous regular expression" +msgstr "Sem expressão regular anterior" + +#: symbol.c:688 +#, c-format +msgid "function `%s': can't use function `%s' as a parameter name" +msgstr "função \"%s\": impossível usar a função \"%s\" como nome de parâmetro" + +#: symbol.c:818 +msgid "can not pop main context" +msgstr "impossível abrir o contexto principal" diff -urN gawk-5.0.0/po/sv.po gawk-5.0.1/po/sv.po --- gawk-5.0.0/po/sv.po 2019-04-12 12:29:29.000000000 +0300 +++ gawk-5.0.1/po/sv.po 2019-06-18 20:07:23.000000000 +0300 @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: gawk 4.2.63\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2019-03-09 21:06+0100\n" "Last-Translator: Göran Uddeborg \n" "Language-Team: Swedish \n" @@ -41,8 +41,8 @@ msgstr "försök att använda skalären â€%s†som en vektor" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "försök att använda vektorn â€%s†i skalärsammanhang" @@ -245,11 +245,11 @@ msgid "invalid subscript expression" msgstr "ogiltig indexuttryck" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "varning: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "ödesdigert: " @@ -397,7 +397,7 @@ msgid "unterminated string" msgstr "oavslutad sträng" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX tillÃ¥ter inte fysiska nyrader i strängvärden" @@ -1122,6 +1122,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "typeof: okänd argumenttyp â€%sâ€" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1427,7 +1432,7 @@ "where [N] — (samma som backtrace) skriv ett spÃ¥r över alla eller N innersta " "(yttersta om N < 0) ramar." -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "fel: " @@ -2047,53 +2052,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "felaktig â€%sFMTâ€-specifikation â€%sâ€" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "slÃ¥r av â€--lint†pÃ¥ grund av en tilldelning till â€LINTâ€" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "referens till icke initierat argument â€%sâ€" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "referens till icke initierad variabel â€%sâ€" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "försök att fältreferera frÃ¥n ickenumeriskt värde" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "försök till fältreferens frÃ¥n en tom sträng" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "försök att komma Ã¥t fält nummer %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "referens till icke initierat fält â€$%ldâ€" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "funktionen â€%s†anropad med fler argument än vad som deklarerats" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: oväntad typ â€%sâ€" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "försökte dividera med noll i â€/=â€" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "försökte dividera med noll i â€%%=â€" @@ -2178,7 +2183,8 @@ msgstr "funktionen â€%sâ€: argument %d: försök att använda vektor som skalär" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "dynamisk laddning av bibliotek stödjs inte" #: extension/filefuncs.c:442 @@ -2480,90 +2486,90 @@ msgid "accessing fields from an END rule may not be portable" msgstr "att komma Ã¥t fält frÃ¥n en END-regel är inte med säkerhet portabelt" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split: fjärde argumentet är en gawk-utökning" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split: fjärde argumentet är inte en vektor" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: andra argumentet är inte en vektor" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" "split: det gÃ¥r inte att använda samma vektor som andra och fjärde argument" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split: det gÃ¥r inte att använda en delvektor av andra argumentet som fjärde " "argument" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split: det gÃ¥r inte att använda en delvektor av fjärde argumentet som andra " "argument" -#: field.c:1035 +#: field.c:1036 msgid "split: null string for third arg is a non-standard extension" msgstr "split: tom sträng som tredje argument är en icke-standard-utökning" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: fjärde argumentet är inte en vektor" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: andra argumentet är inte en vektor" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: tredje argumentet fÃ¥r inte vara tomt" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit: det gÃ¥r inte att använda samma vektor som andra och fjärde argument" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit: det gÃ¥r inte att använda en delvektor av andra argumentet som " "fjärde argument" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit: det gÃ¥r inte att använda en delvektor av fjärde argumentet som " "andra argument" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "â€FIELDWIDTHS†är en gawk-utökning" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "â€*†mÃ¥ste vara den sista beteckningen i FIELDWIDTHS" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "ogiltigt FIELDWITHS-värde, för fält %d, i närheten av â€%sâ€" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "tom sträng som â€FS†är en gawk-utökning" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "gamla awk stöder inte reguljära uttryck som värden pÃ¥ â€FSâ€" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "â€FPAT†är en gawk-utökning" @@ -3111,11 +3117,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-l bibliotek\t\t--load=bibliotek\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3272,77 +3279,77 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft sätter inte FS till tab i POSIX-awk" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "%s: Argumentet â€%s†till â€-v†är inte pÃ¥ formatet â€var=värdeâ€\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "â€%s†är inte ett giltigt variabelnamn" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "â€%s†är inte ett variabelnamn, letar efter filen â€%s=%sâ€" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "kan inte använda gawks inbyggda â€%s†som ett funktionsnamn" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "kan inte använda funktionen â€%s†som variabelnamn" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "flyttalsundantag" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "ödesdigert fel: internt fel" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "ödesdigert fel: internt fel: segmenteringsfel" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "ödesdigert fel: internt fel: stackspill" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "ingen föröppnad fd %d" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "kunde inte föröppna /dev/null för fd %d" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "tomt argument till â€-e/--source†ignorerat" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 msgid "`--profile' overrides `--pretty-print'" msgstr "â€--profile†åsidosätter â€--pretty-printâ€" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "-M ignoreras: MPFR/GMP-stöd är inte inkompilerat" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: flaggan â€-W %s†okänd, ignorerad\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: flaggan kräver ett argument -- %c\n" @@ -3397,7 +3404,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s: argument nr. %d:s negativa värde %Zd är inte tillÃ¥tet" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "kommandorad:" @@ -3559,39 +3566,39 @@ msgid "regexp component `%.*s' should probably be `[%.*s]'" msgstr "komponenten â€%.*s†i reguljäruttryck skall förmodligen vara â€[%.*s]â€" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "obalanserad [" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "ogiltig teckenklass" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "syntaxen för teckenklass är [[:space:]], inte [:space:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "oavslutad \\-följd" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "ogiltigt innehÃ¥ll i \\{\\}" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "reguljärt uttryck för stort" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "obalanserad (" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "ingen syntax angiven" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "obalanserad )" @@ -3719,7 +3726,7 @@ msgid "Unmatched ) or \\)" msgstr "Obalanserad ) eller \\)" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "Inget föregÃ¥ende reguljärt uttryck" diff -urN gawk-5.0.0/po/vi.po gawk-5.0.1/po/vi.po --- gawk-5.0.0/po/vi.po 2019-04-12 12:29:29.000000000 +0300 +++ gawk-5.0.1/po/vi.po 2019-06-18 20:07:23.000000000 +0300 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: gawk 4.2.0e\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2018-01-30 08:07+0700\n" "Last-Translator: Trần Ngá»c Quân \n" "Language-Team: Vietnamese \n" @@ -41,8 +41,8 @@ msgstr "cố dùng “%s†vô hÆ°á»›ng nhÆ° là mảng" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "cố gắng dùng mảng “%s†trong má»™t ngữ cảnh vô hÆ°á»›ng" @@ -257,11 +257,11 @@ msgid "invalid subscript expression" msgstr "biểu thức in thấp không hợp lệ" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "cảnh báo: " -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "lá»—i nghiêm trá»ng: " @@ -411,7 +411,7 @@ msgid "unterminated string" msgstr "chuá»—i không được chấm dứt" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 #, fuzzy msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX không cho phép thoát chuá»—i “\\xâ€" @@ -1139,6 +1139,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "typeof: không biết kiểu tham số “%sâ€" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1446,7 +1451,7 @@ "where [N] - (giống nhÆ° backtrace) in vết của tất cả hay N khung trong cùng " "nhất (ngoài cùng nhất nếu N < 0)." -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "lá»—i: " @@ -2064,53 +2069,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "đặc tả “%sFMT†sai “%sâ€" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "Ä‘ang tắt “--lint†do việc gán cho “LINTâ€" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "gặp tham chiếu đến đối số chÆ°a được khởi tạo “%sâ€" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "gặp tham chiếu đến biến chÆ°a được khởi tạo “%sâ€" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "cố gắng tham chiếu trÆ°á»ng từ giá trị khác thuá»™c số" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "cố gắng tham chiếu trÆ°á»ng từ chuá»—i trống rá»—ng" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "cố gắng để truy cập trÆ°á»ng %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "tham chiếu đến trÆ°á»ng chÆ°a được khởi tạo “$%ldâ€" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "hàm “%s†được gá»i vá»›i nhiá»u số đối số hÆ¡n số được khai báo" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack: không cần kiểu “%sâ€" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "gặp phép chia cho số không trong “/=â€" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "gặp phép chia cho số không trong “%%=â€" @@ -2197,7 +2202,8 @@ msgstr "hàm “%sâ€: đối số thứ %d: cố gắng dùng mảng nhÆ° là kiểu vô hÆ°á»›ng" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "tải Ä‘á»™ng của thÆ° viện không được há»— trợ" #: extension/filefuncs.c:442 @@ -2502,95 +2508,95 @@ msgid "accessing fields from an END rule may not be portable" msgstr "" -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split (chia tách): đối số thứ tÆ° là phần mở rá»™ng gawk" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split (chia tách): đối số thứ tÆ° không phải là mảng" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split: (chia tách) đối số thứ hai không phải là mảng" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "" "split (chia tách): không thể sá»­ dụng cùng má»™t mảng có cả đối số thứ hai và " "thứ tÆ°" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "" "split (phân tách): không thể sá»­ dụng mảng con của tham số thứ hai cho tham " "số thứ tÆ°" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "" "split (phân tách): không thể sá»­ dụng mảng con của tham số thứ tÆ° cho tham số " "thứ hai" -#: field.c:1035 +#: field.c:1036 #, fuzzy msgid "split: null string for third arg is a non-standard extension" msgstr "" "split: (chia tách) chuá»—i vô giá trị cho đối số thứ ba là phần mở rá»™ng gawk" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit: đối số thứ tÆ° không phải là mảng" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit: đối số thứ hai không phải là mảng" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit: đối số thứ ba không phải không rá»—ng" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "" "patsplit (chÆ°Æ¡ng trình chia tách): không thể sá»­ dụng cùng má»™t mảng cho cả " "hai đối số thứ hai và thứ tÆ°" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "" "patsplit (chÆ°Æ¡ng trình phân tách): không thể sá»­ dụng mảng con của tham số " "thứ hai cho tham số thứ tÆ°" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "" "patsplit (chÆ°Æ¡ng trình phân tách): không thể sá»­ dụng mảng con của tham số " "thứ tÆ° cho tham số thứ hai" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "“FIELDWIDTHS†(Ä‘á»™ rá»™ng trÆ°á»ng) là phần mở rá»™ng gawk" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "“*†phải là bá»™ định danh cuối cùng trong FIELDWIDTHS" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "" "giá trị FIELDWIDTHS (Ä‘á»™ rá»™ng trÆ°á»ng) không hợp lệ, cho trÆ°á»ng %d, gần “%sâ€" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "chuá»—i vô giá trị cho “FS†là phần mở rá»™ng gawk" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "awk cÅ© không há»— trợ biểu thức chính quy làm giá trị của “FSâ€" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "“FPAT†là phần mở rá»™ng của gawk" @@ -3159,11 +3165,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-l library\t\t--load=thÆ°-viện\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L [fatal|invalid]\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3322,7 +3329,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft không đặt FS (hệ thống tập tin?) vào tab trong awk POSIX" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3331,71 +3338,71 @@ "%s: đối số “%s†cho “-v†không có dạng “biến=giá_trịâ€\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "“%s†không phải là tên biến hợp lệ" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "“%s†không phải là tên biến; Ä‘ang tìm tập tin “%s=%sâ€" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "không thể dùng builtin (dá»±ng sẵn) của gawk “%s†nhÆ° là tên biến" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "không thể dùng hàm “%s†nhÆ° là tên biến" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "ngoại lệ số thá»±c dấu chấm Ä‘á»™ng" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "lá»—i nghiêm trá»ng: lá»—i ná»™i bá»™" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "lá»—i nghiêm trá»ng: lá»—i ná»™i bá»™: lá»—i phân Ä‘oạn" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "lá»—i nghiêm trá»ng: lá»—i ná»™i bá»™: tràn ngăn xếp" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "không có fd (bá»™ mô tả tập tin) %d đã mở trÆ°á»›c" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "không thể mở trÆ°á»›c “/dev/null†cho fd %d" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "đối số rá»—ng cho tùy chá»n “-e/--source†bị bá» qua" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 #, fuzzy msgid "`--profile' overrides `--pretty-print'" msgstr "tùy chá»n “--posix†có quyá»n cao hÆ¡n “--traditional†(truyá»n thống)" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "-M bị bá» qua: chÆ°a biên dịch phần há»— trợ MPFR/GMP" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: tùy chá»n “-W %s†không được nhận diện nên bị bá» qua\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: tùy chá»n cần đến đối số “-- %câ€\n" @@ -3450,7 +3457,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s: đối số #%d có giá trị âm %Zd là không được phép" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "dòng lệnh:" @@ -3611,39 +3618,39 @@ "thành phần của biểu thức chính qui (regexp) “%.*s†gần nhÆ° chắc chắn nên là " "“[%.*s]â€" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "thiếu dấu ngoặc vuông mở [" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "sai lá»›p ký tá»±" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "cú pháp lá»›p ký tá»± là [[:dấu_cách:]], không phải [:dấu_cách:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "chÆ°a kết thúc dãy thoát \\" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "ná»™i dung của “\\{\\}†không hợp lệ" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "biểu thức chính quy quá lá»›n" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "thiếu dấu (" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "chÆ°a chỉ rõ cú pháp" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr "thiếu dấu )" @@ -3771,7 +3778,7 @@ msgid "Unmatched ) or \\)" msgstr "ChÆ°a khá»›p “)†hoặc “\\)â€" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "Không có biểu thức chính quy nằm trÆ°á»›c" diff -urN gawk-5.0.0/po/zh_CN.po gawk-5.0.1/po/zh_CN.po --- gawk-5.0.0/po/zh_CN.po 2019-04-12 12:29:29.000000000 +0300 +++ gawk-5.0.1/po/zh_CN.po 2019-06-18 20:07:23.000000000 +0300 @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: gawk 4.2.63\n" "Report-Msgid-Bugs-To: bug-gawk@gnu.org\n" -"POT-Creation-Date: 2019-04-12 12:29+0300\n" +"POT-Creation-Date: 2019-06-18 20:07+0300\n" "PO-Revision-Date: 2019-03-19 17:46+0100\n" "Last-Translator: Tianze Wang \n" "Language-Team: Chinese (simplified) \n" @@ -42,8 +42,8 @@ msgstr "试图把标é‡â€œ%sâ€å½“数组使用" #: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732 -#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1149 eval.c:1153 -#: eval.c:1528 +#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155 +#: eval.c:1530 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "试图在标é‡çŽ¯å¢ƒä¸­ä½¿ç”¨æ•°ç»„“%sâ€" @@ -237,11 +237,11 @@ msgid "invalid subscript expression" msgstr "无效的下标表达å¼" -#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:130 +#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137 msgid "warning: " msgstr "警告:" -#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:162 +#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169 msgid "fatal: " msgstr "致命错误:" @@ -386,7 +386,7 @@ msgid "unterminated string" msgstr "未结æŸçš„字符串" -#: awkgram.y:4048 main.c:1202 +#: awkgram.y:4048 main.c:1220 msgid "POSIX does not allow physical newlines in string values" msgstr "POSIX ä¸å…许字符串的值中包å«æ¢è¡Œç¬¦" @@ -1085,6 +1085,11 @@ msgid "typeof: unknown argument type `%s'" msgstr "typeof:å‚数类型“%sâ€æœªçŸ¥" +#: cint_array.c:1268 cint_array.c:1296 +#, c-format +msgid "cannot add a new file (%.*s) to ARGV in sandbox mode" +msgstr "" + #: command.y:227 #, c-format msgid "Type (g)awk statement(s). End with the command \"end\"\n" @@ -1374,7 +1379,7 @@ "where [N] - (与backtrace相åŒ) 显示所有或最近 N 层 (è‹¥ N < 0,则显示最远 N " "层) 调用。" -#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139 +#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:146 #, c-format msgid "error: " msgstr "错误:" @@ -1987,53 +1992,53 @@ msgid "bad `%sFMT' specification `%s'" msgstr "错误的“%sFMTâ€å®žçŽ°â€œ%sâ€" -#: eval.c:980 +#: eval.c:982 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "由于对“LINTâ€èµ‹å€¼æ‰€ä»¥å…³é—­â€œ--lintâ€" -#: eval.c:1174 +#: eval.c:1176 #, c-format msgid "reference to uninitialized argument `%s'" msgstr "引用未åˆå§‹åŒ–çš„å‚数“%sâ€" -#: eval.c:1175 +#: eval.c:1177 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "引用未åˆå§‹åŒ–çš„å˜é‡â€œ%sâ€" -#: eval.c:1193 +#: eval.c:1195 msgid "attempt to field reference from non-numeric value" msgstr "试图从éžæ•°å€¼å¼•ç”¨å­—段编å·" -#: eval.c:1195 +#: eval.c:1197 msgid "attempt to field reference from null string" msgstr "试图从空字符串引用字段编å·" -#: eval.c:1203 +#: eval.c:1205 #, c-format msgid "attempt to access field %ld" msgstr "试图访问字段 %ld" -#: eval.c:1212 +#: eval.c:1214 #, c-format msgid "reference to uninitialized field `$%ld'" msgstr "引用未åˆå§‹åŒ–的字段“$%ldâ€" -#: eval.c:1276 +#: eval.c:1278 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "函数“%sâ€è¢«è°ƒç”¨æ—¶æ供了比声明时更多的å‚æ•°" -#: eval.c:1473 +#: eval.c:1475 #, c-format msgid "unwind_stack: unexpected type `%s'" msgstr "unwind_stack:未预期的类型“%sâ€" -#: eval.c:1566 +#: eval.c:1568 msgid "division by zero attempted in `/='" msgstr "在“/=â€ä¸­è¯•å›¾é™¤0" -#: eval.c:1573 +#: eval.c:1575 #, c-format msgid "division by zero attempted in `%%='" msgstr "在“%%=â€ä¸­è¯•å›¾é™¤0" @@ -2115,7 +2120,8 @@ msgstr "函数“%sâ€ï¼šç¬¬ %d 个å‚数:试图把数组当标é‡ä½¿ç”¨" #: ext.c:232 -msgid "dynamic loading of library not supported" +#, fuzzy +msgid "dynamic loading of libraries is not supported" msgstr "ä¸æ”¯æŒåŠ¨æ€åŠ è½½åº“" #: extension/filefuncs.c:442 @@ -2416,80 +2422,80 @@ msgid "accessing fields from an END rule may not be portable" msgstr "其他 awk å¯èƒ½ä¸æ”¯æŒä½¿ç”¨ END " -#: field.c:975 field.c:982 +#: field.c:976 field.c:983 msgid "split: fourth argument is a gawk extension" msgstr "split:第四个å‚数是 gawk 扩展" -#: field.c:979 +#: field.c:980 msgid "split: fourth argument is not an array" msgstr "split:第四个å‚æ•°ä¸æ˜¯æ•°ç»„" -#: field.c:989 +#: field.c:990 msgid "split: second argument is not an array" msgstr "split:第二个å‚æ•°ä¸æ˜¯æ•°ç»„" -#: field.c:993 +#: field.c:994 msgid "split: cannot use the same array for second and fourth args" msgstr "split:无法将åŒä¸€ä¸ªæ•°ç»„用于第二和第四个å‚æ•°" -#: field.c:998 +#: field.c:999 msgid "split: cannot use a subarray of second arg for fourth arg" msgstr "split:无法将第二个å‚æ•°çš„å­æ•°ç»„用于第四个å‚æ•°" -#: field.c:1001 +#: field.c:1002 msgid "split: cannot use a subarray of fourth arg for second arg" msgstr "split:无法将第四个å‚æ•°çš„å­æ•°ç»„用于第二个å‚æ•°" -#: field.c:1035 +#: field.c:1036 msgid "split: null string for third arg is a non-standard extension" msgstr "split:第三个å‚数为空字符串:其他 awk å¯èƒ½ä¸æ”¯æŒè¿™ä¸€ç‰¹æ€§" -#: field.c:1072 +#: field.c:1073 msgid "patsplit: fourth argument is not an array" msgstr "patsplit:第四个å‚æ•°ä¸æ˜¯æ•°ç»„" -#: field.c:1077 +#: field.c:1078 msgid "patsplit: second argument is not an array" msgstr "patsplit:第二个å‚æ•°ä¸æ˜¯æ•°ç»„" -#: field.c:1086 +#: field.c:1087 msgid "patsplit: third argument must be non-null" msgstr "patsplit:第三个å‚æ•°å¿…é¡»ä¸ä¸ºç©º" -#: field.c:1090 +#: field.c:1091 msgid "patsplit: cannot use the same array for second and fourth args" msgstr "patsplit:无法将åŒä¸€ä¸ªæ•°ç»„用于第二和第四个å‚æ•°" -#: field.c:1095 +#: field.c:1096 msgid "patsplit: cannot use a subarray of second arg for fourth arg" msgstr "patsplit:无法将第二个å‚æ•°çš„å­æ•°ç»„用于第四个å‚æ•°" -#: field.c:1098 +#: field.c:1099 msgid "patsplit: cannot use a subarray of fourth arg for second arg" msgstr "patsplit:无法将第四个å‚æ•°çš„å­æ•°ç»„用于第二个å‚æ•°" -#: field.c:1148 +#: field.c:1149 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "“FIELDWIDTHSâ€æ˜¯ gawk 扩展" -#: field.c:1217 +#: field.c:1218 msgid "`*' must be the last designator in FIELDWIDTHS" msgstr "FIELDWIDTHS中的“*â€å¿…é¡»ä½äºŽæ‰€æœ‰é€šé…符的末尾" -#: field.c:1238 +#: field.c:1239 #, c-format msgid "invalid FIELDWIDTHS value, for field %d, near `%s'" msgstr "第 %d 字段中的 FIELDWIDTHS 值无效(ä½äºŽâ€œ%sâ€é™„近)" -#: field.c:1311 +#: field.c:1312 msgid "null string for `FS' is a gawk extension" msgstr "给“FSâ€ä¼ é€’了空字符串,应为 gawk 扩展" -#: field.c:1315 +#: field.c:1316 msgid "old awk does not support regexps as value of `FS'" msgstr "è€ awk ä¸æ”¯æŒæŠŠâ€œFSâ€è®¾ç½®ä¸ºæ­£åˆ™è¡¨è¾¾å¼" -#: field.c:1442 +#: field.c:1443 msgid "`FPAT' is a gawk extension" msgstr "“FPATâ€æ˜¯ gawk 扩展" @@ -3020,11 +3026,12 @@ msgid "\t-l library\t\t--load=library\n" msgstr "\t-l 库\t\t--load=库\n" -#. TRANSLATORS: the "fatal" and "invalid" here are literal +#. TRANSLATORS: the "fatal", "invalid" and "no-ext" here are literal #. values, they should not be translated. Thanks. #. #: main.c:608 -msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" +#, fuzzy +msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n" msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n" #: main.c:609 @@ -3174,7 +3181,7 @@ msgid "-Ft does not set FS to tab in POSIX awk" msgstr "在 POSIX awk 中 -Ft ä¸ä¼šå°† FS 设为制表符(tab)" -#: main.c:1133 +#: main.c:1151 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -3183,70 +3190,70 @@ "%s:“-vâ€çš„å‚数“%sâ€ä¸æ˜¯â€œvar=valueâ€å½¢å¼\n" "\n" -#: main.c:1159 +#: main.c:1177 #, c-format msgid "`%s' is not a legal variable name" msgstr "“%sâ€ä¸æ˜¯ä¸€ä¸ªåˆæ³•çš„å˜é‡å" -#: main.c:1162 +#: main.c:1180 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "“%sâ€ä¸æ˜¯ä¸€ä¸ªå˜é‡å,查找文件“%s=%sâ€" -#: main.c:1176 +#: main.c:1194 #, c-format msgid "cannot use gawk builtin `%s' as variable name" msgstr "无法将 gawk 内置的 “%s†作为å˜é‡å" -#: main.c:1181 +#: main.c:1199 #, c-format msgid "cannot use function `%s' as variable name" msgstr "无法将函数å“%sâ€ä½œä¸ºå˜é‡å" -#: main.c:1259 +#: main.c:1277 msgid "floating point exception" msgstr "浮点数异常" -#: main.c:1266 +#: main.c:1287 msgid "fatal error: internal error" msgstr "致命错误:内部错误" -#: main.c:1283 +#: main.c:1307 msgid "fatal error: internal error: segfault" msgstr "致命错误:内部错误:段错误" -#: main.c:1296 +#: main.c:1320 msgid "fatal error: internal error: stack overflow" msgstr "致命错误:内部错误:栈溢出" -#: main.c:1356 +#: main.c:1380 #, c-format msgid "no pre-opened fd %d" msgstr "文件æ述符 %d 未被打开" -#: main.c:1363 +#: main.c:1387 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "无法为文件æ述符 %d 预打开 /dev/null" -#: main.c:1577 +#: main.c:1601 msgid "empty argument to `-e/--source' ignored" msgstr "“-e/--sourceâ€çš„空å‚数被忽略" -#: main.c:1635 main.c:1640 +#: main.c:1662 main.c:1667 msgid "`--profile' overrides `--pretty-print'" msgstr "“--profileâ€è¦†ç›–“--pretty-printâ€" -#: main.c:1652 +#: main.c:1679 msgid "-M ignored: MPFR/GMP support not compiled in" msgstr "忽略 -M ignored:未将 MPFR/GMP 支æŒç¼–译于" -#: main.c:1677 +#: main.c:1704 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s:选项“-W %sâ€æ— æ³•è¯†åˆ«ï¼Œå¿½ç•¥\n" -#: main.c:1730 +#: main.c:1757 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s:选项需è¦ä¸€ä¸ªå‚æ•° -- %c\n" @@ -3301,7 +3308,7 @@ msgid "%s: argument #%d negative value %Zd is not allowed" msgstr "%s:第 %d 个å‚æ•° %Zd ä¸èƒ½ä¸ºè´Ÿå€¼" -#: msg.c:68 +#: msg.c:75 #, c-format msgid "cmd. line:" msgstr "命令行:" @@ -3455,39 +3462,39 @@ msgid "regexp component `%.*s' should probably be `[%.*s]'" msgstr "正则表达å¼æˆåˆ†â€œ%.*sâ€å¯èƒ½åº”为“[%.*s]â€" -#: support/dfa.c:1015 +#: support/dfa.c:1017 msgid "unbalanced [" msgstr "[ ä¸é…对" -#: support/dfa.c:1136 +#: support/dfa.c:1138 msgid "invalid character class" msgstr "无效的字符类型å" -#: support/dfa.c:1262 +#: support/dfa.c:1264 msgid "character class syntax is [[:space:]], not [:space:]" msgstr "字符类型的语法为 [[:space:]],而ä¸æ˜¯ [:space:]" -#: support/dfa.c:1329 +#: support/dfa.c:1331 msgid "unfinished \\ escape" msgstr "ä¸å®Œæ•´çš„ \\ 转义" -#: support/dfa.c:1490 +#: support/dfa.c:1492 msgid "invalid content of \\{\\}" msgstr "\\{\\} 中内容无效" -#: support/dfa.c:1493 +#: support/dfa.c:1495 msgid "regular expression too big" msgstr "正则表达å¼è¿‡å¤§" -#: support/dfa.c:1908 +#: support/dfa.c:1910 msgid "unbalanced (" msgstr "( ä¸é…对" -#: support/dfa.c:2026 +#: support/dfa.c:2028 msgid "no syntax specified" msgstr "未指定语法" -#: support/dfa.c:2037 +#: support/dfa.c:2039 msgid "unbalanced )" msgstr ") ä¸é…对" @@ -3615,7 +3622,7 @@ msgid "Unmatched ) or \\)" msgstr "未匹é…çš„ ) 或 \\)" -#: support/regcomp.c:688 +#: support/regcomp.c:676 msgid "No previous regular expression" msgstr "å‰é¢æ²¡æœ‰æ­£åˆ™è¡¨è¾¾å¼" diff -urN gawk-5.0.0/posix/ChangeLog gawk-5.0.1/posix/ChangeLog --- gawk-5.0.0/posix/ChangeLog 2019-04-12 12:25:25.000000000 +0300 +++ gawk-5.0.1/posix/ChangeLog 2019-06-18 20:53:42.000000000 +0300 @@ -1,3 +1,7 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/POSIX.STD gawk-5.0.1/POSIX.STD --- gawk-5.0.0/POSIX.STD 2018-12-23 22:01:42.000000000 +0200 +++ gawk-5.0.1/POSIX.STD 2019-04-21 18:03:57.000000000 +0300 @@ -1,11 +1,11 @@ - Copyright (C) 1992, 1995, 1998, 2001, 2006, 2007, 2010, 2011, 2015 + Copyright (C) 1992, 1995, 1998, 2001, 2006, 2007, 2010, 2011, 2015, 2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. -------------------------------------------------------------------------- -Thu Feb 12 08:51:22 IST 2015 +Sun Apr 21 14:27:19 IDT 2019 ============================ This file documents several things related to the 2008 POSIX standard that I noted after reviewing it. @@ -43,6 +43,14 @@ Gawk enforces this only with --posix. +5. According to POSIX (following the A, K, & W book), when RS = "", then + newline is also a separator, "no matter what the value of FS is", implying + that this is true even if FS is a regexp. + + In fact, UNIX awk has never behaved that, way; it adds \n to the list + for FS = " " or any other single character, and gawk does too. This is + essentially a bug in POSIX. + The following things aren't described by POSIX but ought to be: 1. The value of $0 in an END rule diff -urN gawk-5.0.0/README gawk-5.0.1/README --- gawk-5.0.0/README 2019-04-12 11:59:38.000000000 +0300 +++ gawk-5.0.1/README 2019-06-18 20:54:15.000000000 +0300 @@ -7,11 +7,11 @@ README: -This is GNU Awk 5.0.0. It is upwardly compatible with Brian Kernighan's +This is GNU Awk 5.0.1. It is upwardly compatible with Brian Kernighan's version of Unix awk. It is almost completely compliant with the 2018 POSIX 1003.1 standard for awk. (See the note below about POSIX.) -This is a major release. See NEWS and ChangeLog for details. +This is a bug-fix release. See NEWS and ChangeLog for details. Work to be done is described briefly in the TODO file, which is available only in the 'master' branch in the Git repo. diff -urN gawk-5.0.0/README_d/ChangeLog gawk-5.0.1/README_d/ChangeLog --- gawk-5.0.0/README_d/ChangeLog 2019-04-12 12:18:10.000000000 +0300 +++ gawk-5.0.1/README_d/ChangeLog 2019-06-18 20:52:26.000000000 +0300 @@ -1,3 +1,7 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/support/cdefs.h gawk-5.0.1/support/cdefs.h --- gawk-5.0.0/support/cdefs.h 2019-04-05 10:38:16.000000000 +0300 +++ gawk-5.0.1/support/cdefs.h 2019-05-22 21:00:52.000000000 +0300 @@ -198,7 +198,7 @@ `__attribute__' syntax. All of the ways we use this do fine if they are omitted for compilers that don't understand it. */ #if !defined __GNUC__ || __GNUC__ < 2 -# define __attribute__(arg) /* Ignore */ +# define __attribute__(xyz) /* Ignore */ #endif /* At some point during the gcc 2.96 development the `malloc' attribute diff -urN gawk-5.0.0/support/ChangeLog gawk-5.0.1/support/ChangeLog --- gawk-5.0.0/support/ChangeLog 2019-04-12 12:27:04.000000000 +0300 +++ gawk-5.0.1/support/ChangeLog 2019-06-18 20:52:55.000000000 +0300 @@ -1,3 +1,15 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + +2019-05-22 Arnold D. Robbins + + * cdefs.h, dfa.h, dfa.c, verify.h: Sync from GNULIB. + +2019-04-23 Arnold D. Robbins + + * regcomp.c, regex_internal.h: Sync from GNULIB. + 2019-04-12 Arnold D. Robbins * ChangeLog.0: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/support/dfa.c gawk-5.0.1/support/dfa.c --- gawk-5.0.0/support/dfa.c 2019-04-05 10:38:16.000000000 +0300 +++ gawk-5.0.1/support/dfa.c 2019-05-22 21:00:52.000000000 +0300 @@ -262,6 +262,7 @@ comparisons to END. */ /* Ordinary character values are terminal symbols that match themselves. */ + /* CSET must come last in the following list of special tokens. Otherwise, the list order matters only for performance. Related special tokens should have nearby values so that code like (t == ANYCHAR || t == MBCSET @@ -301,9 +302,11 @@ WCHAR, /* Only returned by lex. wctok contains the wide character representation. */ + ANYCHAR, /* ANYCHAR is a terminal symbol that matches a valid multibyte (or single byte) character. It is used only if MB_CUR_MAX > 1. */ + BEG, /* BEG is an initial symbol that matches the beginning of input. */ @@ -340,7 +343,6 @@ MBCSET, /* MBCSET is similar to CSET, but for multibyte characters. */ - CSET /* CSET and (and any value greater) is a terminal symbol that matches any of a class of characters. */ @@ -2365,6 +2367,7 @@ return context; } + /* Returns the contexts on which the position set S depends. Each context in the set of returned contexts (let's call it SC) may have a different follow set than other contexts in SC, and also different from the @@ -2837,7 +2840,6 @@ } #endif - pos.index = 0; pos.constraint = NO_CONSTRAINT; @@ -3163,7 +3165,6 @@ /* Find the state(s) corresponding to the union of the follows. */ if (possible_contexts & ~separate_contexts) state = state_index (d, &group, separate_contexts ^ CTX_ANY); - else state = -1; if (separate_contexts & possible_contexts & CTX_NEWLINE) diff -urN gawk-5.0.0/support/dfa.h gawk-5.0.1/support/dfa.h --- gawk-5.0.0/support/dfa.h 2019-04-05 10:38:16.000000000 +0300 +++ gawk-5.0.1/support/dfa.h 2019-05-22 21:00:52.000000000 +0300 @@ -22,12 +22,6 @@ #include #include -#if 3 <= __GNUC__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -#else -# define _GL_ATTRIBUTE_MALLOC -#endif - struct localeinfo; /* See localeinfo.h. */ /* Element of a list of strings, at least one of which is known to @@ -48,7 +42,7 @@ /* Allocate a struct dfa. The struct dfa is completely opaque. The returned pointer should be passed directly to free() after calling dfafree() on it. */ -extern struct dfa *dfaalloc (void) _GL_ATTRIBUTE_MALLOC; +extern struct dfa *dfaalloc (void) /* _GL_ATTRIBUTE_MALLOC */; /* DFA options that can be ORed together, for dfasyntax's 4th arg. */ enum diff -urN gawk-5.0.0/support/regcomp.c gawk-5.0.1/support/regcomp.c --- gawk-5.0.0/support/regcomp.c 2019-04-05 10:38:16.000000000 +0300 +++ gawk-5.0.1/support/regcomp.c 2019-04-23 11:05:32.000000000 +0300 @@ -233,9 +233,7 @@ return NULL; return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } -#ifdef _LIBC weak_alias (__re_compile_pattern, re_compile_pattern) -#endif /* Set by 're_set_syntax' to the current regexp syntax to recognize. Can also be assigned to arbitrarily: each pattern buffer stores its own @@ -260,9 +258,7 @@ re_syntax_options = syntax; return ret; } -#ifdef _LIBC weak_alias (__re_set_syntax, re_set_syntax) -#endif int re_compile_fastmap (struct re_pattern_buffer *bufp) @@ -281,9 +277,7 @@ bufp->fastmap_accurate = 1; return 0; } -#ifdef _LIBC weak_alias (__re_compile_fastmap, re_compile_fastmap) -#endif static inline void __attribute__ ((always_inline)) @@ -464,7 +458,7 @@ the return codes and their meanings.) */ int -regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags) +regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags) { reg_errcode_t ret; reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED @@ -515,16 +509,14 @@ return (int) ret; } -#ifdef _LIBC libc_hidden_def (__regcomp) weak_alias (__regcomp, regcomp) -#endif /* Returns a message corresponding to an error code, ERRCODE, returned from either regcomp or regexec. We don't use PREG here. */ size_t -regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf, +regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf, size_t errbuf_size) { const char *msg; @@ -555,9 +547,7 @@ return msg_size; } -#ifdef _LIBC weak_alias (__regerror, regerror) -#endif #ifdef RE_ENABLE_I18N @@ -657,10 +647,8 @@ re_free (preg->translate); preg->translate = NULL; } -#ifdef _LIBC libc_hidden_def (__regfree) weak_alias (__regfree, regfree) -#endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ diff -urN gawk-5.0.0/support/regex_internal.h gawk-5.0.1/support/regex_internal.h --- gawk-5.0.0/support/regex_internal.h 2019-04-05 10:38:16.000000000 +0300 +++ gawk-5.0.1/support/regex_internal.h 2019-04-23 11:05:32.000000000 +0300 @@ -144,13 +144,8 @@ # define __mbrtowc mbrtowc # define __wcrtomb wcrtomb # define __regfree regfree -# define attribute_hidden #endif /* not _LIBC */ -#if __GNUC__ < 3 + (__GNUC_MINOR__ < 1) -# define __attribute__(arg) -#endif - #ifndef SSIZE_MAX # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) #endif @@ -868,23 +863,6 @@ } #endif /* RE_ENABLE_I18N */ -#ifndef __GNUC_PREREQ -# if defined __GNUC__ && defined __GNUC_MINOR__ -# define __GNUC_PREREQ(maj, min) \ - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) -# else -# define __GNUC_PREREQ(maj, min) 0 -# endif -#endif - -#if __GNUC_PREREQ (3,4) -# undef __attribute_warn_unused_result__ -# define __attribute_warn_unused_result__ \ - __attribute__ ((__warn_unused_result__)) -#else -# define __attribute_warn_unused_result__ /* empty */ -#endif - #ifndef FALLTHROUGH # if __GNUC__ < 7 # define FALLTHROUGH ((void) 0) diff -urN gawk-5.0.0/support/verify.h gawk-5.0.1/support/verify.h --- gawk-5.0.0/support/verify.h 2019-04-05 10:38:16.000000000 +0300 +++ gawk-5.0.1/support/verify.h 2019-05-22 21:00:52.000000000 +0300 @@ -21,29 +21,37 @@ #define _GL_VERIFY_H -/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11. - This is supported by GCC 4.6.0 and later, in C mode, and its use - here generates easier-to-read diagnostics when verify (R) fails. - - Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11. - This is supported by GCC 6.1.0 and later, in C++ mode. - - Use this only with GCC. If we were willing to slow 'configure' - down we could also use it with other compilers, but since this - affects only the quality of diagnostics, why bother? */ -#if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \ - && (201112L <= __STDC_VERSION__ || !defined __STRICT_ANSI__) \ - && !defined __cplusplus) -# define _GL_HAVE__STATIC_ASSERT 1 -#endif -#if (6 <= __GNUC__) && defined __cplusplus -# define _GL_HAVE_STATIC_ASSERT 1 +/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC) + works as per C11. This is supported by GCC 4.6.0 and later, in C + mode. + + Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as + per C2X, and define _GL_HAVE_STATIC_ASSERT1 if static_assert (R) + works as per C++17. This is supported by GCC 9.1 and later. + + Support compilers claiming conformance to the relevant standard, + and also support GCC when not pedantic. If we were willing to slow + 'configure' down we could also use it with other compilers, but + since this affects only the quality of diagnostics, why bother? */ +#ifndef __cplusplus +# if (201112L <= __STDC_VERSION__ \ + || (!defined __STRICT_ANSI__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__))) +# define _GL_HAVE__STATIC_ASSERT 1 +# endif +# if (202000L <= __STDC_VERSION__ \ + || (!defined __STRICT_ANSI__ && 9 <= __GNUC__)) +# define _GL_HAVE__STATIC_ASSERT1 1 +# endif +#else +# if 201703L <= __cplusplus || 9 <= __GNUC__ +# define _GL_HAVE_STATIC_ASSERT1 1 +# endif #endif /* FreeBSD 9.1 , included by and lots of other system headers, defines a conflicting _Static_assert that is no better than ours; override it. */ -#ifndef _GL_HAVE_STATIC_ASSERT +#ifndef _GL_HAVE__STATIC_ASSERT # include # undef _Static_assert #endif @@ -141,9 +149,9 @@ which do not support _Static_assert, also do not warn about the last declaration mentioned above. - * GCC warns if -Wnested-externs is enabled and verify() is used + * GCC warns if -Wnested-externs is enabled and 'verify' is used within a function body; but inside a function, you can always - arrange to use verify_expr() instead. + arrange to use verify_expr instead. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ @@ -167,11 +175,9 @@ #define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) /* Verify requirement R at compile-time, as an integer constant expression - that returns 1. If R is false, fail at compile-time, preferably - with a diagnostic that includes the string-literal DIAGNOSTIC. */ + that returns 1. If R is false, fail at compile-time. */ -#define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ - (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) +#define _GL_VERIFY_TRUE(R) (!!sizeof (_GL_VERIFY_TYPE (R))) #ifdef __cplusplus # if !GNULIB_defined_struct__gl_verify_type @@ -181,40 +187,43 @@ }; # define GNULIB_defined_struct__gl_verify_type 1 # endif -# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ - _gl_verify_type<(R) ? 1 : -1> -#elif defined _GL_HAVE__STATIC_ASSERT -# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ +# define _GL_VERIFY_TYPE(R) _gl_verify_type<(R) ? 1 : -1> +#elif defined _GL_HAVE__STATIC_ASSERT1 +# define _GL_VERIFY_TYPE(R) \ struct { \ - _Static_assert (R, DIAGNOSTIC); \ + _Static_assert (R); \ int _gl_dummy; \ } #else -# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ +# define _GL_VERIFY_TYPE(R) \ struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } #endif /* Verify requirement R at compile-time, as a declaration without a - trailing ';'. If R is false, fail at compile-time, preferably - with a diagnostic that includes the string-literal DIAGNOSTIC. + trailing ';'. If R is false, fail at compile-time. + + This macro requires three or more arguments but uses at most the first + two, so that the _Static_assert macro optionally defined below supports + both the C11 two-argument syntax and the C2X one-argument syntax. Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ -#ifdef _GL_HAVE__STATIC_ASSERT -# define _GL_VERIFY _Static_assert +#if defined _GL_HAVE__STATIC_ASSERT +# define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) #else -# define _GL_VERIFY(R, DIAGNOSTIC) \ +# define _GL_VERIFY(R, DIAGNOSTIC, ...) \ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ - [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] + [_GL_VERIFY_TRUE (R)] #endif /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ #ifdef _GL_STATIC_ASSERT_H -# if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert -# define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC) +# if !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert +# define _Static_assert(...) \ + _GL_VERIFY (__VA_ARGS__, "static assertion failed", -) # endif -# if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert +# if !defined _GL_HAVE_STATIC_ASSERT1 && !defined static_assert # define static_assert _Static_assert /* C11 requires this #define. */ # endif #endif @@ -226,31 +235,24 @@ assert (R), there is no run-time overhead. There are two macros, since no single macro can be used in all - contexts in C. verify_true (R) is for scalar contexts, including + contexts in C. verify_expr (R, E) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. */ -/* Verify requirement R at compile-time, as an integer constant expression. - Return 1. This is equivalent to verify_expr (R, 1). - - verify_true is obsolescent; please use verify_expr instead. */ - -#define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")") - /* Verify requirement R at compile-time. Return the value of the expression E. */ -#define verify_expr(R, E) \ - (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) +#define verify_expr(R, E) (_GL_VERIFY_TRUE (R) ? (E) : (E)) /* Verify requirement R at compile-time, as a declaration without a - trailing ';'. */ + trailing ';'. verify (R) acts like static_assert (R) except that + it is portable to C11/C++14 and earlier, and its name is shorter + and may be more convenient. */ -#ifdef __GNUC__ -# define verify(R) _GL_VERIFY (R, "verify (" #R ")") +#ifdef _GL_HAVE__STATIC_ASSERT1 +# define verify(R) _Static_assert (R) #else -/* PGI barfs if R is long. Play it safe. */ -# define verify(R) _GL_VERIFY (R, "verify (...)") +# define verify(R) _GL_VERIFY (R, "verify (...)", -) #endif #ifndef __has_builtin diff -urN gawk-5.0.0/test/assignnumfield2.awk gawk-5.0.1/test/assignnumfield2.awk --- gawk-5.0.0/test/assignnumfield2.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/test/assignnumfield2.awk 2019-04-23 11:05:32.000000000 +0300 @@ -0,0 +1,4 @@ +BEGIN { + $0 = 1 + print $1 +} diff -urN gawk-5.0.0/test/assignnumfield2.ok gawk-5.0.1/test/assignnumfield2.ok --- gawk-5.0.0/test/assignnumfield2.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/test/assignnumfield2.ok 2019-04-23 11:05:32.000000000 +0300 @@ -0,0 +1 @@ +1 diff -urN gawk-5.0.0/test/badargs.ok gawk-5.0.1/test/badargs.ok --- gawk-5.0.0/test/badargs.ok 2019-04-05 10:38:16.000000000 +0300 +++ gawk-5.0.1/test/badargs.ok 2019-05-22 21:00:52.000000000 +0300 @@ -17,7 +17,7 @@ -h --help -i includefile --include=includefile -l library --load=library - -L[fatal|invalid] --lint[=fatal|invalid] + -L[fatal|invalid|no-ext] --lint[=fatal|invalid|no-ext] -M --bignum -N --use-lc-numeric -n --non-decimal-data diff -urN gawk-5.0.0/test/ChangeLog gawk-5.0.1/test/ChangeLog --- gawk-5.0.0/test/ChangeLog 2019-04-12 12:18:54.000000000 +0300 +++ gawk-5.0.1/test/ChangeLog 2019-06-18 20:52:40.000000000 +0300 @@ -1,3 +1,38 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + +2019-05-22 Arnold D. Robbins + + * badargs.ok: Updated after code changes. + +2019-05-07 Arnold D. Robbins + + * Gentests: Finish handlinig NEED_SANDBOX. + +2019-05-06 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): New test: sandbox1. + (NEED_SANDBOX): New list of tests. + * Gentests: Handle NEED_SANDBOX. + * sandbox1.awk, sandbox1.ok: New files. + +2019-02-22 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): New test: assignnumfield2. + * assignnumfield2.awk, assignnumfield2.ok: New files. + +2019-04-21 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): New test: fscaret. + * fscaret.awk, fscaret.in, fscaret.ok: New files. + +2019-04-18 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add ChangeLog.1 to the list. Ooops. + (synerr3): New test. + * synerr3.awk, synerr3.ok: New files. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/test/ChangeLog.1 gawk-5.0.1/test/ChangeLog.1 --- gawk-5.0.0/test/ChangeLog.1 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/test/ChangeLog.1 2019-04-12 12:45:07.000000000 +0300 @@ -0,0 +1,2423 @@ +2019-04-07 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): New test: range2. Needs LC_ALL=C. + * range2.awk, range2.ok: New files. + +2019-03-17 Arnold D. Robbins + + * Makefile.am (mbprintf5): Add a minus so that the tests + will keep going if this one fails. + +2019-03-03 Arnold D. Robbins + + * badargs.ok: Update after code changes. + +2019-02-25 Arnold D. Robbins + + * nsprof2.ok, profile5.ok: Updated after code changes. + +2019-02-25 Arnold D. Robbins + + * Makefile.am (EXPECTED_FAIL_ZOS): New group of tests expected to + fail on ZOS. + (ZOS_FAIL): New macro set by autoconf. + +2019-02-22 Eli Zaretskii + + * Makefile.in (EXPECTED_FAIL_MINGW): + * Makefile.am (EXPECTED_FAIL_MINGW): Remove readdir_test and + readdir_retest. + +2019-02-17 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): New test: dbugeval3. + * dbugeval3.awk, dbugeval3.in, dbugeval3.ok: New files. + +2019-02-17 Andrew J. Schorr + + * timeout.awk, timeout.ok: Increase READ_TIMEOUT to 400 to increase + the scheduler margin of error from 100 ms to 200 ms to reduce the + likelihood of spurious test failures. + +2019-02-15 Arnold D. Robbins + + * profile11.ok: Updated after code fix. + * Makefile.am (EXTRA_DIST): Add profile12 files, new test. + * profile12.awk, profile12.in, profil12.ok: New files. + +2019-02-05 Juan Manuel Guerrero + + * Makefile.am (EXPECTED_FAIL_DJGPP): Add randtest and symtab6 + to the list. + +2019-01-28 Arnold D. Robbins + + * Makefile.am (symtab6): Fix the test's recipe. + Update copyright year. + * symtab6.ok: Adjust to have correct content. + +2019-01-26 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Use correct filenames for dfacheck test. + (symtab6, eofsrc1): Make tests work for out of tree builds. + * symtab6.ok, eofsrc1.ok: Update after change. + +2018-01-25 Arnold D. Robbins + + * badargs.ok: Adjust after code changes. + +2018-01-24 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): New test: nsforloop. + * nsforloop.awk, nsforloop.ok: New files. + +2018-01-23 Arnold D. Robbins + + * nsprof2.ok: Adjust after code changes. + +2018-01-23 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): New test: nsfuncrecurse. + * nsfuncrecurse.awk, nsfuncrecurse.ok: New files. + +2019-01-09 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): New test: arraytype. + * arraytype.awk, arraytype.ok: New files. + +2018-12-24 Arnold D. Robbins + + * Makefile.am (inetdayt, inetdayu, inetecht, inetechu): Add + leading '-' so that if it fails tests keep going. + +2018-12-23 Arnold D. Robbins + + * inftest.ok: Updated after code changes. + +2018-12-21 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): New test: dfacheck1. + * dfacheck1.awk, dfacheck1.in, dfacheck1.ok: New files. + +2018-12-12 Arnold D. Robbins + + * nsprof2.awk: Add extra @namespace lines for testing. + * nsprof2.ok: Adjusted. + +2018-12-06 Arnold D. Robbins + + * nsprof2.awk, nsprof2.ok: Updated after code changes. + +2018-11-28 Arnold D. Robbins + + * profile11.ok: Updated after code change. + +2018-11-27 Arnold D. Robbins + + * profile11.awk: Disambiguate some comments. + * profile5.ok, profile11.ok: Updated after code change. + +2018-11-26 Arnold D. Robbins + + * profile5.ok: Updated after code change. + * Makefile.am (GAWK_EXT_TESTS): New test, profile11.ok. Add + to the other relevant macros. + * profile11.awk, profile11.ok: New files. + +2018-11-25 Arnold D. Robbins + + * Makefile.am (GAWK_EXT_TESTS): Fix layout of the list. + +2018-11-24 Arnold D. Robbins + + * profile5.ok: Updated after code change. + +2018-11-24 Arnold D. Robbins + + * spacere.awk: Move setting of LC_ALL=C out to ... + * Makefile.am (spacere): ... here. Added test. + Per request from Eli Zaretskii to help porting to MinGW. + + Unrelated: + + * Makefile.am (EXTRA_DIST): New test: typedregex4. + * typedregex4.awk, typedregex4.ok: New files. + +2018-11-11 Arnold D. Robbins + + * profile10.ok: Updated after code change. + +2018-10-14 Arnold D. Robbins + + * profile0.ok: Updated after code change. + +2018-10-10 Arnold D. Robbins + + * Makefile.am (profile1): Add minus to ignore errors on final + step of the recipe. Allows make to keep going. + +2018-09-27 Arnold D. Robbins + + * Maefile.am (EXTRA_DIST): New test: mpfrbigint2. + * mpfrbigint2.awk, mpfrbigint2.in, mpfrbigint2.ok: New files. + +2018-09-21 Arnold D. Robbins + + * Maefile.am (EXTRA_DIST): New test: trailbs. + * trailbs.awk, trailbs.in, trailbs.ok: New files. + +2018-09-16 Arnold D. Robbins + + * Makefile.in: Regenerated, using Automake 1.16.1. + +2018-08-27 Arnold D. Robbins + + * Makefile.am (fmtspcl): Disable test. It was causing too many + portability problems. + +2018-07-31 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add assignnumfield files. + * assignnumfield.awk, assignnumfield.in, assignnumfield.ok: New files. + +2018-07-31 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add arraysort2 files. + * arraysort2.awk, arraysort2.ok: New files. + +2018-07-27 Arnold D. Robbins + + * back89.ok, funstack.ok, gsubtst5.ok: Update after code changes. + * lintwarn.ok: Ditto. + +2018-07-13 Arnold D. Robbins + + * fmtspcl.awk, fmtspcl.tok, numrange.ok: Revised after code changes + in gawk. + * fix-fmtscl.awk: New file. + * Makefile.am (fmtspcl.tok): Use fix-fmtscpl.awk instead of + inline program. + +2018-07-12 Arnold D. Robbins + + * fmtspcl.awk: Improve the formatting, add testing of uppercase + formats, fix a bug. + * fmtspcl.tok: Adjust for code changes. + +2018-06-22 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add files for numrange. + * numrange.awk, numrange.ok: New files. + +2018-05-24 Arnold D. Robbins + + * noeffect.awk, noeffect.ok: Updated. + +2018-05-23 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add files for spacere. + * spacere.awk, spacere.ok: New files. + +2018-05-12 Eli Zaretskii + + * Makefile.am (readfile): Fix a typo. + +2018-05-10 Arnold D. Robbins + + * Makefile.am (readfile): Use $(srcdir)/Makefile.am as the + target to read and compare against. We hope this avoids + issues with CR/LF on Windows... + +2018-05-06 Arnold D. Robbins + + * Makefile.am (SORT): New variable, to improve consistency with + PC test suite. + (profile2): Use $(SORT) instead of literal "sort". + (msg): Use $(CMP) in message instead of literal "cmp". + Thanks to Eli Z. for the suggested changes. + +2018-05-03 Arnold D. Robbins + + * Makefile.am (EXPECTED_FAIL_MINGW): Per Eli Z., remove clos1way5. + +2018-04-30 Arnold D. Robbins + + * readdir0.awk: Handle symbolic links in the top level + source directory. (Useful if testing for PC where the PC + test makefile wants a gawk.exe to exist.) + +2018-04-24 Scott Deifik + + * Makefile.am (EXPECTED_FAIL_MINGW): Add clos1way5. + +2018-04-24 Juan Manuel Guerrero + + * Makefile.am (EXPECTED_FAIL_DJGPP): Add mpfrsqrt. + +2018-04-23 Arnold D. Robbins + + * Makefile.am (EXPECTED_FAIL_MINGW): Remove fmtspcl and + and add readdir_retest. + (mbprintf5): Add checks for MinGW and DJGPP along with Cygwin. + Thanks to Scott Deifik for the report. + (nlstringtest): Redirect $(CMP) output to /dev/null. Not sure + why this is necessary but it seems to be. + +2018-04-22 Juan Manuel Guerrero + + * Makefile.am (EXPECTED_FAIL_DJGPP): Add gnuops3, gnureops, + regx8bit and sigpipe1 to the list. + +2018-04-20 Arnold D. Robbins + + * Makefile.am (readdir_retest): Use $(srcdir) to reference source + files so that out of tree builds can run make check. Thanks + to Juan Manuel Guerrero for the report. + +2018-04-19 Arnold D. Robbins + + * Makefile.am (EXPECTED_FAIL_MINGW): Add clos1way6. + (readdir, fts): Move the 'echo $@' to be the first line. + (nonfatal1): Adapt inline awk script to work with MSYS too. + (charset-tests-all): Check for MinGW or DJGPP and just run + the tests if so, otherwise check for needed locales as + previously. + +2018-04-19 Arnold D. Robbins + + * nonfatal1.awk, nonfatal1.ok: Change to use 1.2.3.4.5 + as the host. Thanks again to Mike Burkett . + +2018-04-18 Arnold D. Robbins + + * Makefile.am (NEED_TESTOUTCMP): New list of tests that need + a different cmp program. + (charasbytes): Add -v BINMODE=2. + (longwrds): Need an explicit recipe to have sort command. + +2018-04-17 Arnold D. Robbins + + * nonfatal1.awk, nonfatal1.ok: Add a bunch of bad characters + to the hostname so that ISPs who resove local:host don't + cause the test to time out instead of failing. Thanks to + Mike Burkett for the report. + + Unrelated: + + * Makefile.am (NEED_RE_INTERVAL): Spell the macro correctly. + (strftime): Pass -v DATECMD="$(DATE)" to match pc usage. + +2018-04-14 Manuel Collado + + * Makefile.am (readdir_retest): Add new test. + * readdir_retest.awk: New file. + +2018-04-16 Arnold D. Robbins + + * Gentests: Remove VMS stuff. It hasn't been used in years. + * Gentests.vms: Removed. + * Makefile.am (EXTRA_DIST): Remove Gentests.vms. + (regtest): Add an echo $@ and make last line start with @, + for consistency with other tests. + +2018-04-12 Arnold D. Robbins + + * Gentests: Add support tests that need --re-interval. + * Makefile.am (NEED_RE_INTERVAL): New list of tests. + (NEED_LOCALE_EN): Add reint2 to the list. + * gsubtst3.awk, leaddig.awk: Modified to support automating. + + Unrelated: Start on being able to generate pc/Makefile.tst. + + * Makfile.am (EXPECTED_FAIL_DJGPP, EXPECTED_FAIL_MINGW): + New lists of test expected to fail on the given platforms. + +2018-04-11 Arnold D. Robbins + + * Gentests: Add support for tests that need a specific locale. + * Makefile.am (NEED_LOCALE_C, NEED_LOCALE_EN, NEED_LOCALE_JP, + NEED_LOCALE_RU): New lists of such tests. + + Unrelated: + + * Makefile.am: Add printing exit status to results for many + tests that lacked it. This makes the tests more consistent + with each other and with the auto-generated tests. + +2018-04-09 Arnold D. Robbins + + * Makefile.am (RUN_SHELL): List of tests that run a .sh file. + * Gentests: Add support for such tests. + * randtest.sh: Use $AWK, not $GAWK so it can be generated. + + Unrelated: + + * Makefile.am (clos1way): Use standard locale verbiage in + preparation for later automation of specialized locale tests. + +2018-04-08 Arnold D. Robbins + + * Makefile.am (manyfiles, pid): Use echo $@ to echo test name. + (EXTRA_DIST): Remove longdbl.* files. + (TESTS_WE_ARE_NOT_DOING_YET_FIXME_ONE_DAY): Removed. + * longdbl.awk, longdbl.in, longdbl.ok: Removed. + +2018-04-05 Arnold D. Robbins + + * Gentests: Add support for tests needing --debug and + --non-decimal-data. + * Makefile.am (NEED_DEBUG, NEED_NONDEC): New macros. + +2018-04-04 Arnold D. Robbins + + * Gentests: Add support for tests needing --pretty-print. + Improve checking in the END rule. + * Makefile.am (NEED_PRETTY): New macro. + +2018-04-03 Arnold D. Robbins + + * Gentests: Add special support for MPFR tests, tests needing + --posix and --traditional. + * Makefile.am (NEED_MPFR): Renamed from MPFR_TESTS. + (NEED_POSIX, NEED_TRADITIONAL): New groupings. Removed related + individual recipes. + (GENTESTS_UNUSED): Updated. + * litoct.in, nonl.in: New files. + +2018-04-01 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add files for mpfrfield. + (MPFR_TESTS): Add mpfrfield. + * mpfrfield.awk, mpfrfield.in, mpfrfield.ok: New files. + +2018-03-26 Arnold D. Robbins + + * fwtest3.in, mmap8k.awk, mmap8k.ok, rsstart2.in: New files. + * Makefile.am (fwtest3, mmap8k, rsstart1, rsstart2): Remove manual + recipes, they can be autogenerated. + (errno): Note that manual recipe is needed as-is. + (clean-local): Don't remove mmap8k.ok. + +2018-03-26 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add tailrecurse.awk, tailrecurse.ok. + * tailrecurse.awk, tailrecurse.ok: New files. + +2018-03-13 Arnold D. Robbins + + * Makefile.am: Update copyright year. + +2018-03-05 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add nlstringtest-nogettext.ok. + * (nlstringtest): Compare to nlstringtest-nogettext.ok first, + in case gawk was built without GNU gettext. + * nlstringtest-nogettext.ok: New file. + +2018-02-25 Arnold D. Robbins + + * 4.2.1: Release tar ball made. + +2018-02-10 Arnold D. Robbins + + * Makefile.am (mtchi18n): Move into locale tests. + Thanks to Kiyoshi KANAZAWA + for the report. + +2018-02-07 Andrew J. Schorr + + * Makefile.am (uplus, mpfruplus): Add new tests. + * uplus.awk, uplus.ok, mpfruplus.ok: New files. + +2018-02-05 Arnold D. Robbins + + * Makefile.am (MPFR_TESTS): Sort tests and use backslash + continuation to get the full list. A HUGE thank you to + Eli Zaretskii for the report. + +2018-02-01 Arnold D. Robbins + + * Makefile.am (AWK): Move LANGUAGE= to here instead of + having it in individual tests. + +2018-01-24 John E. Malmberg + + * lintold.awk: Minor change to allow test to run on + 32 bit VAX/VMS with out a floating overflow. + +2018-01-18 Arnold D. Robbins + + * Makefile.am (pty2): Instead of sed, use simpler awk goop + to canonicalize the output from od. Thanks to Michal + Jaegermann for the tip. + * pty2.ok: Updated. + +2018-01-17 Arnold D. Robbins + + * Makefile.am (charset-tests-all): Add punctuation in the message. + (charset-msg-start): Add fr_FR.UTF-8 to list of desired locales, + reformat the message. + (isarrayunset): New test. + * isarrayunset.awk, isarrayunset.ok: New files. + * pty2: Add some sed goop to canonicalize the output of od; + this works around the Mac OS X od which produces different + output, avoiding a spurious test failure. + +2018-01-15 Arnold D. Robbins + + * Makefile.am (nlstringtest): New test. + * nlstringtest.awk, nlstringtest.ok, nlstringtest.po, + fr/LC_MESSAGES/nlstringtest.mo: New files. Thanks to + Bruno Haible for the test. + +2018-01-04 Arnold D. Robbins + + Thanks to Andrew Schorr for the basics of this test. + + * Makefile.am (pty2): New test. + * pty2.awk, pty2.ok: New files. + +2018-01-02 Arnold D. Robbins + + Thanks to Nethox for this test. + + * Makefile.am (mpfrrndeval): New test. + * mpfrrndeval.awk, mpfrrndeval.ok: New files. + +2017-12-28 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add numstr1 files. + * numstr1.awk, numstr1.ok: New files. + +2017-11-14 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add new tests setrec0 and setrec1. + (BASIC_TESTS): Add setrec0 and setrec1. + * setrec0.awk, setrec0.in, setrec0.ok: New files. + * setrec1.awk, setrec1.ok: New files. + +2017-11-10 Arnold D. Robbins + + * badargs.ok: Updated after code change. + +2017-10-19 Arnold D. Robbins + + * 4.2.0: Release tar ball made. + +2017-10-17 Arnold D. Robbins + + * forcenum.awk: Convert values manually to number and then + to string and remove leading sign, to avoid C library + differences across platforms. Thanks to Corinna Vinschen + for the report. + * forcenum.ok: Adjust for above change. + +2017-10-12 Arnold D. Robbins + + * fork.awk: Close the file in the parent after reading it. + * fork2.awk: Ditto. + +2017-10-08 Arnold D. Robbins + + * Makefile.am (randtest): Minor fix from Andreas for OS/2. + +2017-09-14 Andrew J. Schorr + + * Makefile.am (nonfatal1): New rule with postprocessing to remove + the platform-specific portion of the error message. + * nonfatal1.ok: Remove the platform-specific portion of the error + message. + +2017-09-12 Arnold D. Robbins + + * Makefile.am (readdir): Add to message that test can fail on + a JFS filesystem also. Thanks to Nelson Beebe for the info + and suggestion. + +2017-08-28 Arnold D. Robbins + + * nonfatal1.ok: Update after code change. + +2017-08-23 Arnold D. Robbins + + * Makefile.am (testext): Fix spelling of testexttmp.txt. + +2017-08-21 Eli Zaretskii + + * Makefile.am (testext): Remove testexttmp.txt. + +2017-08-16 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add aryunasgn files. + (arrdbg): Make test work on out-of-tree builds in order + to pass `make distcheck'. + +2017-08-13 Arnold D. Robbins + + * Makefile.am: Sort and prettify the lists of tests. + +2017-08-09 Arnold D. Robbins + + * badargs.ok: Update after code changes. + + Unrelated: + + * Makefile.am (aryunasgn): New test. + * aryunasgn.awk, aryunasgn.ok: New files. + +2017-08-04 Arnold D. Robbins + + * Makefile.am: Update copyright year. + +2017-07-30 Arnold D. Robbins + + * Makefile.am (mprintf5): Put an @ on the echo statement. + Thanks to Hermann Peifer for the report. + +2017-07-28 Arnold D. Robbins + + * inplace1.ok, inplace2.ok, inplace3.ok: Update after + adding license to inplace.awk. + +2017-07-26 Arnold D. Robbins + + * Makefile.am (nsbad_cmd, nsindirect1, nsindirect2): New tests. + * nsbad_cmd.ok, nsindirect1.awk, nsindirect1.ok, nsindirect2.awk, + nsindirect2.ok: New files. + +2017-07-26 Arnold D. Robbins + + * Makefile.am (nsbad): New test. + * nsbad.awk, nsbad.ok: New files. + +2017-07-20 Arnold D. Robbins + + * Makefile.am (inplace1, inplace2, inplace3): Update to use + inplace::suffix instead of INPLACE_SUFFIX. + * inplace1.ok, inplace2.ok, inplace3.ok: Update after code + changes. + +2017-07-07 Arnold D. Robbins + + * Makefile.am (eofsrc1): New test. + * eofsrc1a.awk, eofsrc1b.awk, eofsrc1.ok: New files. + * unterm.ok: Updated after code change. + +2017-07-01 Arnold D. Robbins + + * Makefile.am (nsprof2): New test. + * nsprof2.awk, nsprof2.ok: New files. + +2017-06-30 Arnold D. Robbins + + * Makefile.am (nsprof1): New test. + * nsprof1.awk, nsprof1.ok: New files. + +2017-06-27 Arnold D. Robbins + + * Makefile.am (mbprintf5): Skip this test on Cygwin. + +2017-06-22 Arnold D. Robbins + + * profile4.ok, profile5.ok, profile7.ok: Updated after code changes. + * profile7.awk: Added two more statements. + +2017-06-18 Arnold D. Robbins + + * Makefile.am (mbprintf5): New test. + * mbprintf5.awk, mbprintf5.in, mbprintf5.ok: New files. + +2017-05-30 Arnold D. Robbins + + * sourceplit.ok: Revise to match changed code. + +2017-05-24 Andrew J. Schorr + + * fwtest8.ok: Fix field number in error message, thanks to a bug + report from Michal Jaegermann. + +2017-05-23 Arnold D. Robbins + + * Makefile.am (fwtest5, fwtest6, fwtest7, fwtest8): New tests. + * fwtest5.awk, fwtest5.in, fwtest5.ok, fwtest6.awk, fwtest6.in, + fwtest6.ok, fwtest7.awk, fwtest7.in, fwtest7.ok, fwtest8.awk, + fwtest8.in, fwtest8.ok: New files. + +2017-05-20 Arnold D. Robbins + + * noeffect.awk, noeffect.ok: Updated after code change. + +2017-05-01 Aharon Robbins + + * Makefile.am (sourcesplit): New test. + * sourcesplit.ok: New file. + Thanks to Hermann Peifer for the report. + + Unrelated: + + * Makefile.am (charset-msg-start): Document that having + el_GR.iso88597 is helpful. + +2017-04-16 Arnold D. Robbins + + * mpfrsqrt.awk: Add `@load intdiv'. + * dumpvars.ok, id.ok, symtab6.ok, symtab8.ok: Updated. + +2017-04-12 Manuel Collado + + * Makefile.am (fpat6): New test. + * fpat6.awk, fpat6.in, fpat6.ok: New files. + Check for the bug reported by Ed Morton in the bug-gawk mailing list. + * patsplit.ok: Updated to the new patsplit behavior. + +2017-04-12 Arnold D. Robbins + + * Makefile.am (memleak): New test. + * memleak.awk, memleak.ok: New files. + +2017-03-27 Arnold D. Robbins + + * fwtest4: Renamed from fwtest3. + * fwtest3: Renamed from fwtest2b. + * Makefile.am: Updated. + +2017-03-21 Andrew J. Schorr + + * Makefile.am (fwtest2b): Add new test of enhanced FIELDWIDTHS syntax. + * fwtest2b.awk, fwtest2b.ok: New files. + +2017-03-19 Andrew J. Schorr + + * Makefile.am (argarray): Always copy argarray.in to the local + directory as argarray.input instead of trying to figure out whether + $(srcdir) is the current directory. + * argarray.ok: Replace argarray.in with argarray.input. + +2017-03-06 Andrew J. Schorr + + * Makefile.am (readdir_test): New test to check whether get_record + field_width parsing is working by comparing the results from the + readdir and readdir_test extensions. + (SHLIB_TESTS): Add readdir_test. + +2017-02-21 Andrew J. Schorr + + * Makefile.am (mktime): New test. + * mktime.awk, mktime.in, mktime.ok: New files. + +2017-02-17 Arnold D. Robbins + + * Makefile.am (typeof5): New test. + * typeof5.awk, typeof5.in, typeof5.ok: New files. + Thanks to Andrew Schorr for part of the tests. + +2017-01-27 Andrew J. Schorr + + * Makefile.am (gensub3): New test. + * gensub3.awk, gensub3.in, gensub3.ok: New files. + +2017-01-26 Andrew J. Schorr + + * Makefile.am (strftfld): New test. + * strftfld.awk, strftfld.in, strftfld.ok: New files. + +2017-01-15 Andrew J. Schorr + + * Makefile.am (concat5): New test. + * concat5.awk, concat5.ok: New files. + Check for bug forwarded by Corinna Vinschen from Cygwin mailing list. + +2016-12-05 Andrew J. Schorr + + * rwarray.awk: Check that strnum is recreated correctly. + +2016-11-30 Arnold D. Robbins + + * rwarray.awk: Use typeof() to verify that typed regex is + created correctly upon reading. + +2016-11-29 Arnold D. Robbins + + * rwarray.awk: Add a typed regex into the array before + writing it out and reading it back. + +2016-11-21 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add valgrind.awk to the list. + +2016-11-07 Arnold D. Robbins + + * valgrind.awk: New file. Based on original valgrind-scan code. + Having it in a separate file makes it easier to adjust. + Commented out several checks that just produced false positives. + Add check for invalid read and write. + * Makefile.am (valgrind-scan): Use valgrind.awk. + +2016-11-04 Fabio Berton + + * arrayind1.awk: Remove "#!/usr/local/bin/awk -f" as none of the + other awk scripts in the test suite have a hashbang. + +2016-10-07 Arnold D. Robbins + + * mpfrmemok1.ok: Update after code change. + +2016-09-09 Norihiro Tanaka + + * Makefile.am (anchor): New test. + * anchor.awk, anchor.in, anchor.ok: New files. + +2016-08-25 Arnold D. Robbins + + * 4.1.4: Release tar ball made. + +2016-08-16 Andrew J. Schorr + + * Makefile.am (arrdbg): New test using adump. + (ARRAYDEBUG_TESTS): New test group requiring ARRAYDEBUG compilation. + (check): Add arraydebug-tests. + (arraydebug-tests): Check $(ARRAYDEBUG_TESTS) when compiled with + ARRAYDEBUG. + * arrdbg.awk: New test using adump to check array type. + +2016-08-14 Andrew J. Schorr + + * intarray.awk, intarray.ok: Updated. + +2016-08-03 Arnold D. Robbins + + Restore typed regexp tests. + + * typeof1.awk, typeof1.ok: Adjusted. + * typeof3.awk, typeof3.ok: Adjusted. + * gsubind.awk, gsubind.ok: Adjusted. + * Makefile.am (TYPED_RE_TESTS): Removed. + (dbugtypedre1, dbugtypedre2, typedregex1, typedregex2, + typedregex3): Moved back into regular tests. + +2016-08-03 Arnold D. Robbins + + Remove typed regexes until they can be done correctly. + + * typeof1.awk, typeof1.ok: Adjusted. + * typeof3.awk, typeof3.ok: Adjusted. + * gsubind.awk, gsubind.ok: Adjusted. + * Makefile.am (TYPED_RE_TESTS): New macro to hold typed regexp tests. + (dbugtypedre1, dbugtypedre2, typedregex1, typedregex2, + typedregex3): Moved into it. + +2016-08-01 Arnold D. Robbins + + * Makefile.am (ignrcas3): Adjust to check that the el_GR.xxx locale + is present. Move it to extra tests so it's not run by default. + +2016-08-02 Arnold D. Robbins + + * Makefile.am (sortfor2): New test. + * sortfor2.awk, sortfor2.in, sortfor2.ok: New files. + Thanks Christian Schneider + for the report. + + Unrelated: + + * Makefile.am (ignrcas3): New test. + * ignrcas3.awk, ignrcas3.ok: New files. + Based on test code from Norihiro Tanaka . + + * Makefile.am (ignrcas4): New test. + * ignrcas4.awk, ignrcas4.ok: Andrew Schorr's files, renamed. + +2016-07-23 Arnold D. Robbins + + * Makefile.am (status-close): New test. + * status-close.awk, status-close.ok: New files. + +2015-06-17 Arnold D. Robbins + + * Makefile.am (ofmtstrnum): New test. + * ofmtstrnum.awk, ofmtstrnum.ok: New files. + +2016-07-20 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Remove clos1way6.ok2. + (close1way6): Removed test, it will be autogenerated back into + the right place. + * clos1way6.awk: Use gensub on ERRNO to force the right text. + Thanks to Andrew Schorr for the suggestion. + * clos1way6.ok2: Removed. + +2016-07-19 Arnold D. Robbins + + * Makefile.am (clos1way6): Add additional file to check result + against for 32 bit Solaris. Thanks to Dagobert Michelsen for + the report. + * clos1way6.ok2: New file. + +2016-07-08 Andrew J. Schorr + + * Makefile.am (apiterm, fldterm): New tests to make sure that we + are handling unterminated field string values properly. + * apiterm.awk, apiterm.in, apiterm.ok: New files. + * fldterm.awk, fldterm.in, fldterm.ok: New files. + +2016-07-06 Andrew J. Schorr + + * forcenum.awk: We no longer need to force the strnum conversion, + since typeof now does this automatically. + * forcenum.ok: Change "number" to "strnum" for the numeric strings. + * rebuild.in: Change input to include a strnum. + * rebuild.ok: Update results. + +2016-07-04 Andrew J. Schorr + + * Makefile.am (arrayind3): New test. + * arrayind3.awk, arrayind3.ok: New files. + +2016-07-03 Andrew J. Schorr + + * Makefile.am (rebuild): New test. + * rebuild.awk, rebuild.in, rebuild.ok: New files. + +2016-07-01 Arnold D. Robbins + + * arrayind1.awk, arrayind1.ok: Comment out prints to stderr to + avoid buffer flushing on obscure systems. + * dumpvars.ok, symtab6.ok, symtab8.ok: Update after code changes. + +2016-06-26 Andrew J. Schorr + + * strnum2.ok: Fix results, since print for a strnum should not be + affected by OFMT or CONVFMT. + +2016-06-22 Andrew J. Schorr + + * strnum2.awk, strnum2.ok: Improve test case to show both OFMT and + CONVFMT conversions. + +2016-06-20 Andrew J. Schorr + + * Makefile.am (strnum2): New test. + * strnum2.awk, strnum2.ok: New files. + +2016-06-14 Arnold D. Robbins + + * Makefile.am (subback): New test. + * subback.awk, subback.in, subback.ok: New files. + Thanks to Mike Brennan for the test. + + Unrelated: + + * Makefile.am (FAIL_CODE1): Update the list. + +2016-06-14 Arnold D. Robbins + + * Makefile.am (GAWK_EXT_TESTS): Add mixed1. Who knows + how long that's been broken... + * mixed1.ok: Adjust to match what the code produces. + Thanks to John E. Malmberg for the report. + +2016-06-13 Andrew J. Schorr + + * Makefile.am (forcenum, ignrcas3, intarray, lintexp, lintindex, + lintint, lintlength, lintset, mpfrstrtonum, mpgforcenum, printfchar, + strtonum1): New tests. + * forcenum.awk, forcenum.ok, ignrcas3.awk, ignrcas3.ok, intarray.awk, + intarray.ok, lintexp.awk, lintexp.ok, lintindex.awk, lintindex.ok, + lintint.awk, lintint.ok, lintlength.awk, lintlength.ok, lintset.awk, + lintset.ok, mpfrstrtonum.awk, mpfrstrtonum.ok, mpgforcenum.awk, + mpgforcenum.ok, printfchar.awk, printfchar.ok, strtonum1.awk, + strtonum1.ok: New files. + +2016-06-08 Arnold D. Robbins + + * symtab10.awk, symtab10.in, symtab10.ok: New files. + * Makefile.am (symtab10): New test. + Thanks to Hermann Peifer for the report. + +2016-06-01 Arnold D. Robbins + + * Makefile.am (hex2): New test. + * hex2.awk, hex2.in, hex2.ok: New files. + +2016-05-30 Arnold D. Robbins + + * Makefile.am (fsnul1): New test. + * fsnul1.awk, fsnul1.in, fsnul1.ok: New files. + +2016-05-26 Arnold D. Robbins + + * Makefile.am (arrayind2): New test. + * arrayind2.awk, arrayind2.ok: New files. + Thanks to Andrew J. Schorr . + +2016-05-25 Arnold D. Robbins + + * arrayind1.awk: Flush writes to stderr. We hope this helps + with the MinGW version. + +2016-05-12 Arnold D. Robbins + + * Makefile.am (arrayind1): New test. + * arrayind1.awk, arrayind1.in, arrayind1.ok: New files. + * Makefile.am (sigpipe1): New test. + * sigpipe1.awk, sigpipe1.ok: New files. + +2016-04-27 Arnold D. Robbins + + * Makefile.am (rscompat): New test. + * rscompat.awk, rscompat.in, rscompat.ok: New files. + +2016-04-24 Arnold D. Robbins + + * Makefile.am (pty1): Ignore errors. + +2016-04-17 Arnold D. Robbins + + * Makefile.am (pty1): Really disable test on z/OS. + +2016-04-11 Arnold D. Robbins + + * clos1way2.ok, clos1way3.ok, clos1way4.ok, clos1way5.ok: Update + after Eli's code changes. + * Makefile.am (pty1): Disable test on z/OS. + +2016-04-08 Eli Zaretskii + + * clos1way2.awk: + * clos1way3.awk: + * clos1way4.awk: + * clos1way5.awk: Use "&&" instead of ";" to chain commands, so + that it works with stock MS-Windows shells as well. + * clos1way2.ok: Adjust the error message to the change in command. + +2016-04-08 Arnold D. Robbins + + * watchpoint1: Use $(srcdir) on input file so out-of-tree + builds can run the test suite. + +2016-04-07 Arnold D. Robbins + + * clos1way2.ok, clos1way3.ok, clos1way4.ok: Updated after + code changes. + +2016-04-06 Arnold D. Robbins + + * Makefile.am (clos1way6): New test. + * clos1way6.awk, clos1way6.ok: New files. + +2016-04-04 Arnold D. Robbins + + * Makefile.am (clos1way2, clos1way3, clos1way4, clos1way5): + New tests. + * clos1way2.awk, clos1way2.in, clos1way2.ok, clos1way3.awk, + clos1way3.ok, clos1way4.awk, clos1way4.ok, clos1way5.awk, + clos1way5.ok: New files. + * clos1way2.awk: Add call to fflush() to test it too. + * clos1way2.ok: Updated after code change. + +2016-03-27 Arnold D. Robbins + + * profile5.ok: Adjust after code changes. + +2016-03-21 Arnold D. Robbins + + * profile5.ok, profile10.awk, profile10.ok: Adjust after code changes. + +2016-03-19 Arnold D. Robbins + + * profile5.ok: Adjust after code changes. + * Makefile.am (profile10): New test. + * profile10.awk, profile10.ok: New files. + +2016-02-21 Nelson H.F. Beebe + + * rand.ok: Updated after code change. + +2016-02-18 Arnold D. Robbins + + * profile2.ok, profile5.ok: Adjust after code changes. + +2016-02-05 Arnold D. Robbins + + * badargs.ok: Update after adding Yet Another Command Line Option. + +2016-01-28 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add profile9.awk and profile9.ok. + +2016-01-14 Arnold D. Robbins + + * Makefile.am (aryprm9): New test. + * aryprm9.awk, aryprm9.ok: New files. + + Unrelated: + + * ChangeLog: Remove spurious whitespace. + +2015-12-27 Arnold D. Robbins + + These came in from gawk-4.1-stable: + + * Makefile.am (profile8): New test. + * profile8.awk, profile8.ok: New files. + + These used to be profile8: + + * Makefile.am (profile9): Renamed. + * profile9.awk, profile9.ok: Renamed files. + +2015-11-24 Arnold D. Robbins + + * Makefile.am (watchpoint1): New test. + * watchpoint1.awk, watchpoint1.in, watchpoint1.ok, + watchpoint1.script: New files. + +2015-10-28 Arnold D. Robbins + + * Makefile.am (nulinsrc): New test. + * nulinsrc.awk, nulinsrc.ok: New files. + +2015-10-26 Arnold D. Robbins + + * id.awk: Sort the output. Helps on z/OS. + * id.ok: Adjust. + +2015-10-11 Arnold D. Robbins + + * Makefile.am (readbuf): New test. + * readbuf.awk, readbuf.ok: New files. + +2015-09-26 Arnold D. Robbins + + * Makefile.am (muldimposix): New test. + * muldimposix.awk, muldimposix.ok: New files. + +2015-09-18 Arnold D. Robbins + + * Makefile.am (fpat5): New test. + * fpat5.awk, fpat5.in, fpat5.ok: New files. + +2015-09-04 Arnold D. Robbins + + * profile.ok: Updated after code change. + +2015-08-28 Daniel Richard G. + + * Makefile.am: Generate the Maketests file without + reference to its directory, because putting it directly into + srcdir can be problematic (e.g. srcdir could be read-only). + (clean-local): Renamed from "clean", as Automake already defines + "clean" and warns us as much. + +2015-08-25 Arnold D. Robbins + + * mbstr1.ok: Updated after code change. + * Makefile.am (mbstr2): New test. + * mbstr2.awk, mbstr2.in, mbstr2.ok: New files. + +2015-06-29 Arnold D. Robbins + + * Makefile.am (dbugeval2, typedregex3): New tests. + * dbugeval2.awk, dbugeval2.in, dbugeval2.ok: New files. + * typedregex3.awk, typedregex3.ok: New files. + Thanks to Hermann Peifer for the reports. + +2015-06-28 Arnold D. Robbins + + * Makefile.am (typedregex2): New test. + * typedregex2.awk, typedregex2.ok: New files. + Thanks to Hermann Peifer for the report. + +2015-06-26 Arnold D. Robbins + + * Makefile.am (dbugtypedre1): Renamed from dbugtypedre. + (dbugtypedre2): New test. + * dbugtypedre1.awk, dbugtypedre1.in, dbugtypedre1.ok: Renamed files. + * dbugtypedre2.awk, dbugtypedre2.in, dbugtypedre2.ok: New files. + + Unrelated: + + * id.ok: Update after code changes. + + Unrelated: + + * Makefile.am (getfile, dbugtypedre1, dbugtypedre2): Fixed to + work if building out of the source tree. + + Unrelated: + + * dbugtypedre1.ok, typedregex1.awk, typeof1.ok, typeof3.ok: + Update after code changes. + +2015-06-25 Arnold D. Robbins + + * Makefile.am (negtime): Fix out-of-tree test run. + + Unrelated: + + * Makefile.am (typeof3, typeof4): New tests. + * typeof2.awk, typeof2.ok, typeof3.awk, typeof3.ok: New files. + + Unrelated: + + * Makefile.am (dbugtypedre): New tests. + * dbugtypedre.awk, dbugtypedre.in, dbugtypedre.ok: New files. + +2015-06-21 Arnold D. Robbins + + * Makefile.am (typeof2): New test. + * typeof2.awk, typeof2.ok: New files. + +2015-06-19 Arnold D. Robbins + + * Makefile.am (gsubind, typedregex1, typeof1): New tests. + * gsubind.awk, gsubind.ok, typedregex1.awk, typedregex1.ok, + typeof1.awk, typeof1.ok: New files. + +2015-06-17 Andrew J. Schorr + + * inplace1.ok, inplace2.ok, inplace3.ok: Update line number in error + messages, since inplace.awk changed a bit. + +2015-05-29 Arnold D. Robbins + + * checknegtime.awk: New file. + * Makefile.am (negtime): Use checknegtime.awk to test results. + Should solve some problems with BSD and also MinGW. + +2015-05-21 Arnold D. Robbins + + * fts.awk: Really remove atime from the output. + This avoids spurious failures on heavily loaded systems. + + * Makefile.am: Add list of needed locales to "inadequate locale + support" message. + +2015-05-19 Arnold D. Robbins + + * 4.1.3: Release tar ball made. + +2015-05-05 Arnold D. Robbins + + * Makefile.am (dbugeval): Wrap in test for interactive terminal + to avoid Mac OS X failure. Thanks to Nelson H.F. Beebe for + the report. + +2015-05-05 Andrew J. Schorr + + * Makefile.am (rebrackloc): New test. + * rebrackloc.awk, rebrackloc.in, rebrackloc.ok: New files. + +2015-04-29 Arnold D. Robbins + + * 4.1.2: Release tar ball made. + +2015-04-27 Andrew J. Schorr + + * Makefile.am (inpref): New test. + * inpref.awk, inpref.in, inpref.ok: New files. + +2015-04-27 Arnold D. Robbins + + * Makefile.am (regexpbrack2): New test. + * regexpbrack2.awk, regexpbrack2.in, regexpbrack2.ok: New files. + Thanks to Nelson Beebe. + +2015-04-16 Arnold D. Robbins + + * Makefile.am (shadowbuiltin): New test. + * shadowbuiltin.awk, shadowbuiltin.ok: New files. + +2015-04-14 Arnold D. Robbins + + * indirectbuiltin.awk: Add another test (gensub 3 args). + * indirectbuiltin.ok: Update good results. + +2015-04-13 Arnold D. Robbins + + * Makefile.am (negtime): New test. + * negtime.awk, negtime.ok: New files. + +2015-04-09 Arnold D. Robbins + + * fts.awk: Skip atime to avoid spurious timestamp + differences. Thanks to Nelson Beebe for pointing this out. + * Makefile.am (charset-all): Group the charset tests + inside a check for locale support. Thanks to Nelson Beebe + for finally motivating me to do this. + (charset-msg-start): Update test of message some. + +2015-04-08 Eli Zaretskii + + * Makefile.am (mpfrmemok1): Use -p- for portability and + compatibility with pc/Makefile.tst. + +2015-04-02 Arnold D. Robbins + + * id.ok, mpfrsqrt.awk: Update after rename of div() --> intdiv(). + +2015-03-31 Arnold D. Robbins + + * Makefile.am (indirectbuiltin): New test. + * indirectbuiltin.awk, indirectbuiltin.ok: New files. + +2015-03-27 Arnold D. Robbins + + * Makefile.am: Remove defvar test and reference to files; test + code moved into extension/testext.c. + * defvar.awk, defvar.ok: Removed. + * testext.ok: Updated. + +2015-03-24 Arnold D. Robbins + + * id.ok: Update after fixes in code. + +2015-03-24 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add exitval3.awk and exitval3.ok. + (BASIC_TESTS): Add new test exitval3. + * exitval3.awk, exitval3.ok: New files. + +2015-03-17 Andrew J. Schorr + + * inplace1.ok, inplace2.ok, inplace3.ok: Update error message line + numbers to reflect changes to inplace.awk. + +2015-03-17 Arnold D. Robbins + + * Makefile.am (mpfrmemok1): New test. + * mpfrmemok1.awk, mpfrmemok1.ok: New files. + +2015-03-10 Arnold D. Robbins + + * Makefile.am (fpat4): New test. + * fpat4.awk, fpat4.ok: New files. + +2015-03-08 Arnold D. Robbins + + * nonfatal3.awk, nonfatal3.ok: Adjust for portability. + Thanks to Hermann Peifer for the report. + +2015-03-06 Arnold D. Robbins + + * charasbytes.awk, ofs1.awk, range1.awk, sortglos.awk, + sortglos.in: Remove execute permission. + +2015-03-02 Andrew J. Schorr + + * nonfatal1.awk: Do not print ERRNO, since the value appears to be + platform-dependent. Instead, print (ERRNO != ""). + * nonfatal1.ok: Update. + +2015-02-28 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add nonfatal3.{awk,ok}. + (GAWK_EXT_TESTS): Add nonfatal3. + * nonfatal1.awk: Replace "ti10/357" with "local:host/25", since + "local:host" should be a universally bad hostname due to the + invalid ":" character. + * nonfatal1.ok: Update. + * nonfatal3.{awk,ok}: New test for connecting to a TCP port where + nobody is listening. + +2015-02-27 Arnold D. Robbins + + * nonfatal1.ok: Update after code changes. + * id.ok: Updated after code change. + +2015-02-26 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add profile0.in which got forgotten + earlier. Ooops. + +2015-02-24 Arnold D. Robbins + + * Makefile.am (crlf): New test. + * crlf.awk, crlf.ok: New files. + +2015-02-10 Arnold D. Robbins + + * Makefile.am (profile0): New test. + * profile0.awk, profile0.in, profile0.ok: New files. + +2015-02-08 Arnold D. Robbins + + * nonfatal1.awk, nonfatal2.awk: String is now "NONFATAL". + +2015-02-06 Arnold D. Robbins + + * Makefile.am (nonfatal1, nonfatal2): New tests. + * nonfatal1.awk, nonfatal1.ok: New files. + * nonfatal2.awk, nonfatal2.ok: New files. + +2015-02-01 Arnold D. Robbins + + * Makefile.am (paramasfunc1, paramasfunc2): Now need --posix. + * indirectcall.awk: Restore after code change. + +2015-01-30 Arnold D. Robbins + + * Makefile.am (callparam, paramasfunc1, paramasfunc2): New tests. + * callparam.awk, callparam.ok: New files. + * paramasfunc1.awk, paramasfunc1.ok: New files. + * paramasfunc2.awk, paramasfunc2.ok: New files. + * exit.sh, indirectcall.awk: Update after code change. + +2015-01-19 Arnold D. Robbins + + * Makefile.am (profile8): Actually add the test and the files. + Thanks to Hermann Peifer for the report. + +2015-01-16 Arnold D. Robbins + + * Makefile.am (profile8): New test. + * profile8.awk, profile8.ok: New files. + +2015-01-14 Arnold D. Robbins + + * Makefile.am (dumpvars): Grep out ENVIRON and PROCINFO since + those can be different depending on who runs the test. + * dumpvars.ok, id.ok: Updated after code changes. + +2015-01-07 Arnold D. Robbins + + * Makefile.am (regexpbrack): New test. + * regexpbrack.awk, regexpbrack.in, regexpbrack.ok: New files. + + Unrelated: + + * Makefile.am (printfbad4): New test. + * printfbad4.awk, printfbad4.ok: New files. + + Unrelated: + + * testext.ok: Adjust for code changes. + +2015-01-06 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add defvar.awk and defvar.ok. + (SHLIB_TESTS): Add defvar. + (defvar): New test. + * defvar.awk, defvar.ok: New files. + +2015-01-05 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add getfile.awk and getfile.ok. + (SHLIB_TESTS): Add getfile. + (getfile): New test. + * getfile.awk, getfile.ok: New files. + +2015-01-05 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add timeout.awk and timeout.ok. + (BASIC_TESTS): Remove errno. + (GAWK_EXT_TESTS): Add errno and timeout. + * timeout.awk, timeout.ok: New files. + +2015-01-05 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add errno.awk, errno.in, and errno.ok. + (BASIC_TESTS): Add errno. + (errno): New test. + * errno.awk, errno.in, errno.ok: New files. + +2014-12-24 Arnold D. Robbins + + * Makefile.am (badbuild): New test. + * badbuild.awk, badbuild.in, badbuild.ok: New files. + +2014-12-24 Andrew J. Schorr + + * Makefile.am (check): If tests don't pass, run 'make diffout' + and exit 1. Should help distros to notice when they have built + gawk incorrectly. (Can you say "Fedora", boys and girls?) + +2014-12-12 Arnold D. Robbins + + * profile5.ok: Updated after code changes. + +2014-11-26 Arnold D. Robbins + + * Gentests: Fix gensub call after adding warning. + +2014-11-26 Arnold D. Robbins + + * gensub2.ok: Update after code changes. + +2014-11-16 Arnold D. Robbins + + * Makefile.am (sortglos): New test. + * sortglos.awk, sortglos.in, sortglos.ok: New files. + Thanks to Antonio Columbo. + +2014-11-09 Arnold D. Robbins + + * mbprintf4.awk: Add record and line number for debugging. + * mpprint4.ok: Adjust. + +2014-11-06 Andrew J. Schorr + + * testext.ok: Add results from new test_get_file test. + +2014-11-02 Arnold D. Robbins + + * Makefile.am (profile7): New test. + (profile6): Add missing @ in front of gawk run. + * profile7.awk, profile7.ok: New files. + +2014-11-01 Arnold D. Robbins + + * Makefile.am (profile6): Actually run profiling. Should make test + output consistent with what's in master. + * profile6.ok: Updated. + +2014-10-30 Arnold D. Robbins + + * Makefile.am (profile6): New test. + * profile6.awk, profile6.ok: New files. + +2014-10-17 Andrew J. Schorr + + * Makefile.am (profile1, testext): Use explicit ./foo.awk to avoid + assumptions about AWKPATH in the environment. + +2014-10-12 Arnold D. Robbins + + * Makefile.am (charset-msg-start): Add a list of needed locales. + Suggested by Shaun Jackman . + +2014-10-05 Arnold D. Robbins + + * profile2.ok, profile3.ok, profile4.ok, profile5.ok: + Adjusted after minor code change. Again. + +2014-10-04 Arnold D. Robbins + + * Makefile.am (genpot): New test. + * genpot.awk, genpot.ok: New files. + +2014-09-29 Arnold D. Robbins + + * testext.ok: Adjusted after minor code change. + +2014-09-27 Arnold D. Robbins + + * profile2.ok, profile3.ok, profile4.ok, profile5.ok: + Adjusted after minor code change. + +2014-09-18 Arnold D. Robbins + + * filefuncs.awk: Change to build directory instead of "..". + * Makefile.am (filefuncs): Pass in $(abs_top_builddir). + +2014-09-13 Stephen Davies + + * Makefile.am (profile4, profile5): Changes processing to not delete + the first two lines. This is no longer needed. + * profile4.ok, profile5.ok: Changed to suit new rules and comments. + +2014-09-10 Arnold D. Robbins + + * profile2.ok, profile4.ok, profile5.ok: Update for new code. + +2014-09-05 Arnold D. Robbins + + * functab4.awk: Changed to use stat instead of chdir since + /tmp isn't /tmp on all systems (e.g. Mac OS X). Thanks to + Hermann Peifer for the report. + + Sort of related: + + * indirectcall2.awk, indirectcall2.ok: New files. + * id.ok: Updated. + +2014-09-04 Arnold D. Robbins + + * profile2.ok: Update after code improvement in profiler. + * functab4.ok: Update after making indirect calls of + extension functions work. :-) + +2014-08-15 Arnold D. Robbins + + * badargs.ok: Adjust after revising text for -L option. + +2014-08-12 Arnold D. Robbins + + * ofs1.ok: Updated to match corrected behavior in gawk. + +2014-08-05 Arnold D. Robbins + + * Makefile.am (mpfrsqrt): New test. + * mpfrsqrt.awk, mpfrsqrt.ok: New files. + Test from Katie Wasserman . + +2014-07-25 Arnold D. Robbins + + * printhuge.awk: Add a newline to output. + * printhuge.ok: Adjust. + +2014-07-24 Arnold D. Robbins + + * badargs.ok: Adjust after correctly alphabetizing options. + +2014-07-10 Arnold D. Robbins + + * Makefile.am (printhuge): New test. + * printhuge.awk, printhuge.ok: New files. + Test from mail.green.fox@gmail.com. + +2014-06-24 Arnold D. Robbins + + * Makefile.am (profile1, profile4, profile5): Adjust for change to + --pretty-print option. + +2014-06-19 Michael Forney + + * Makefile.am (poundbang): Fix relative path of AWKPROG. + +2014-06-08 Arnold D. Robbins + + * Makefile.am (dbugeval): Add leading @ to recipe. Ooops. + +2014-05-30 Arnold D. Robbins + + * Makefile.am (regnul1, regnul2): New tests. + * regnul1.awk, regnul1.ok, regnul1.awk, regnul2.ok: New files. + +2014-05-22 Andrew J. Schorr + + * lintwarn.ok: Updated. + +2014-05-13 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Forgot dbugeval.ok. Ooops. + +2014-05-11 Arnold D. Robbins + + * Makefile.am (dbugeval): New test. + * dbugeval.in, dbugeval.ok: New files. + +2014-05-10 Andrew J. Schorr + + * Makefile.am (rsglstdin): New test. + * rsglstdin.ok: New file. + +2014-05-09 Andrew J. Schorr + + * Makefile.am (rebuf): Force buffer size to 4096 via AWKBUFSIZE + environment variable. + (rsgetline): New test. + * rsgetline.awk, rsgetline.in, rsgetline.ok: New files. + +2014-04-11 Arnold D. Robbins + + * Makefile.am (charset-msg-start): Add a warning message that tests + may fail without adequate locale support, per request from + Nelson H.F. Beebe. + +2014-04-08 Arnold D. Robbins + + * 4.1.1: Release tar ball made. + +2014-04-04 Arnold D. Robbins + + * Makefile.am: Prettify list of tests a little bit. + +2014-04-03 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add readfile2.ok. Oops. + +2014-03-27 Arnold D. Robbins + + * Makefile.am (readfile2): New test. + * readfile2.awk, readfile2.ok: New files. + +2014-02-28 Arnold D. Robbins + + * regrange.ok: Update after code improvements. + +2014-02-03 Stepan Kasal + + * strftime.awk: the default format uses %e, not %d (Introduced on + 2014-01-16; the previous code mangled the output of command "date" + to match %d.) Remove the "mucking" for cygwin, it's obsolete and + incompatible with %e. + +2014-01-28 Eli Zaretskii + + * strftime.awk: If DATECMD variable is non-empty, use it instead + of the literal "date" as the 'date'-like command. + +2014-01-19 Arnold D. Robbins + + * Makefile.am (mpfrnegzero): New test. + * mpfrnegzero.awk, mpfrnegzero.ok: New files. + +2014-01-17 Arnold D. Robbins + + * Makefile.am (readdir): Run ls commands outside the awk script. + * readdir0.awk: Read ls results from files. Helps with MinGW. + Thanks to Eli Zaretskii for the problem report. + +2014-01-17 Arnold D. Robbins + + * Makefile.am: Quote instances of $(top_srcdir) also. + +2014-01-16 Andrew J. Schorr + + * Makefile.am (strftime): Remove comment about the race condition, since + this should be fixed. And gawk now calls date inside the script. + * strftime.awk: Based on an idea from Pat Rankin, fix the race + condition by looping repeatedly over strftime/date/strftime until + the before and after strftime results match. That should fix + the race condition where the seconds field might increment between + invocations. + +2014-01-14 Arnold D. Robbins + + * Makefile.am (split_after_fpat): New test. + * split_after_fpat.awk, split_after_fpat.ok, + split_after_fpat.in: New files. + +2013-12-30 Arnold D. Robbins + + * Makefile.am (ignrcas2): Change to use en_US.UTF-8; it + seems that plain en_US doesn't exist anymore. Thanks to + Richard Palo. + +2013-12-29 John E. Malmberg + + * fts.awk: Adjust for VMS. + * rwarray.awk: Adjust for VMS. + +2013-12-10 Arnold D. Robbins + + * Makefile.am: Remove instances of "" that were incorrect. + Thanks to Scott Deifik for the report. + +2013-12-01 Arnold D. Robbins + + * Makefile.am (fts): Add a check for Cygwin on NFS and print + a message, similar to that of IRIX. Per Corinna Vinschen. + +2013-11-29 Arnold D. Robbins + + * Makefile.am (pipeio3): Removed test and reference to files. + It was too ful of race conditions to work reliably everywhere. + * pipeio3.awk, pipeio3.ok, pipeio3.ok2: Removed. + +2013-11-28 Arnold D. Robbins + + * readdir0.awk: Take argument which is directory to read. + * Makefile.am (readdir): Pass $(top_srcdir) to readdir0.awk. + +2013-11-27 Andrew J. Schorr + + * readdir0.awk: Restore fix so that we do not fail on filesysystems + such as XFS where the dirent does not contain the file type. + +2013-11-27 Andrew J. Schorr + + * Makefile.am (ordchr2): Use --load instead of -l to make sure the + long option works properly. Note that the readfile test still uses + the short version. + (include2): Use --include instead of -i to make sure that the long + option works properly. Note that many other tests use the -i short + version. + +2013-11-20 Arnold D. Robbins + + * readdir0.awk: Use `ls -lan' to get numeric user and group ID + numbers. This keeps the number of fields correct and consistent, even + on systems (like, oh, say, Windows with Cygwin) where group names + can contain spaces. + +2013-11-07 Arnold D. Robbins + + Solaris fixes. + + * readdir0.awk: Run ls -afi and ls -la separately since POSIX + says that -f turns off -l. Thanks to Dagobert Michelsen + for the report. + * Makefile.am (diffout): Don't use POSIX or bash-isms so that + it will work on Solaris. Sigh. + +2013-11-03 Arnold D. Robbins + + * Makefile.am (backsmalls2): New test. + (pipeio3): Check results against pipeio3.ok2 if + the first check fails. + * backsmalls2.awk, backsmalls2.ok: New files. + * pipeio3.ok2: New file. This is the results on PPC Mac OS X. + +2013-10-30 Arnold D. Robbins + + * Makefile.am (pipeio3): Enhance test, again, to be more resilient + to variations in error messages produced by different Bourne shells + when a command is not found. This time for Cygwin. + + Unrelated: + + (charasbytes): Translit any tabs to spaces. Should help on + some System V systems such as Solaris. We hope. + + Unrelated: + + (pass-fail): Exit non-zero if tests fail. Useful for buildbots. + +2013-10-22 Arnold D. Robbins + + * Makefile.am (pipeio3): Enhance test to be more resilient to + variations in error messages produced by different Bourne shells + when a command is not found. Initially for Mac OS X. + +2013-10-17 Arnold D. Robbins + + * Makefile.am (pipeio3): New test. + * pipeio3.awk, pipeio3.ok: New files. + +2013-10-10 Arnold D. Robbins + + * Makefile.am (backbigs1, backsmalls1): New tests. + * backbigs1.awk, backbigs1.in, backbigs1.ok: New files. + * backsmalls1.awk, backsmalls1.in, backsmalls1.ok: New files. + +2013-10-09 Arnold D. Robbins + + * Makefile.am (badassign1): New test. + * badassign1.awk, badassign1.ok: New files. + +2013-09-25 Arnold D. Robbins + + * Makefile.am (randtest): New test. + * randtest.sh, randtest.ok: New files. + * rand.ok: Updated to reflect new results based on code change. + +2013-09-13 Arnold D. Robbins + + * Makefile.am: Fix quoting for generation of Maketests file so + that it will happen correctly. + + Unrelated: + + * Makefile.am (nfloop): New test. + * nfloop.awk, nfloop.ok: New files. + +2013-08-15 Arnold D. Robbins + + * Makefile.am: Quote $(srcdir) everywhere so that tests can run + in locations with spaces in their names (think Windows or Mac OS X). + * Gentests: Ditto for when creating Maketests file. + +2013-07-30 Arnold D. Robbins + + * profile2.ok, profile5.ok: Update. + +2013-07-04 Arnold D. Robbins + + * Makefile.am (mbprintf4): New test. + * mbprintf4.awk, mbprintf4.in, mbprintf4.ok: New files. + Test cases from Nethox . + +2013-06-27 Arnold D. Robbins + + * Makefile.am (dfamb1): New test. + * dfamb1.awk, dfamb1.in, dfamb1.ok: New files. + Test case from Steven Daniels . + +2013-06-24 Arnold D. Robbins + + * Makefile.am (clos1way): Move to here since Maketests gets + regenerated whenever Makefile.am is touched. + +2013-06-22 Eli Zaretskii + + * Maketests (clos1way): Set LC_ALL=C, since clos1way.awk no longer + does. + +2013-06-03 Arnold D. Robbins + + * Makefile.am (exit2): New test. + * exit2.awk, exit2.ok: New files. + +2013-06-01 Eli Zaretskii + + * clos1way.awk: Don't use features of POSIX shells, to allow this + test to work on Windows. + + * beginfile2.sh: Leave one blank between the left quote and the + following slash. Use non-absolute name for a non-existent file. + This is to avoid breakage on Windows due to MSYS transformation of + POSIX style /foo/bar absolute file names. + + * beginfile2.ok: Adapt to changes in beginfile2.sh. + +2013-05-30 Arnold D. Robbins + + * Makefile.am (profile4, profile5): New tests. + * profile4.awk, profile4.in, profile5.awk, profile5.in: New files. + +2013-05-20 Arnold D. Robbins + + * Makefile.am (mpfr-tests, shlib-tests): Propagate Eli's changes + and comment of 2013-05-14 to here, so that they get passed into + Makefile.in whenever Makefile.am is modified. + +2013-05-14 Eli Zaretskii + + * Makefile.in (mpfr-tests, shlib-tests): Add a blank character + between ' and /FOO/ in Gawk command lines, for the benefit of + testing under MSYS Bash. + + * filefuncs.awk (BEGIN): Call 'stat' on gawkapi.o, not on gawk, + which does not exist on systems that produce gawk.exe. + +2013-05-09 Arnold D. Robbins + + * 4.1.0: Release tar ball made. + +2013-05-02 Arnold D. Robbins + + * symtab9.awk: Don't remove test file in END rule, breaks on Windows. + * Makefile.am (symtab9): Add explicit rule and remove test file file. + +2013-04-19 Arnold D. Robbins + + * Makefile.am (LOCALES): New variable split out from AWK. + (AWK): Adjust. + (next): Add LOCALES to the test so that it will pass everywhere. + Thanks to Juergen Kahrs for the report. + +2013-04-16 Arnold D. Robbins + + * Makefile.am: Prettify the lists of tests. + (GENTESTS_UNUSED): Bring the list up to date. + +2013-03-24 Arnold D. Robbins + + * Makefile.am (readdir): Add a check for GNU/Linux and NFS directory + and issue a warning if so. + (fts): Ditto for IRIX - can't check for NFS so just print the message. + (fnmatch.awk, fnmatch.ok): Improve portability. + +2013-03-20 Arnold D. Robbins + + * Makefile.am (readdir): Add -a to ls options. -f does not + automatically mean -a on all systems. + * jarebug.sh: Send error output of locale to /dev/null in case + it doesn't exist. + +2013-03-11 Arnold D. Robbins + + * Makefile.am (colonwarn): New test. + * colonwarn.awk, colonwarn.in, colonwarn.ok: New files. + +2013-02-26 Arnold D. Robbins + + * parseme.ok: Update after change in grammar. Now with new and + improved error message! + +2013-01-31 Arnold D. Robbins + + * Makefile.am: Move functab4 into shlib tests, since it uses + @load. Thanks to Anders Wallin for the report. + (shlib-tests): Check --version output for "API" and run tests + if there. + +2013-01-31 Andrew J. Schorr + + * Makefile.am: To decide whether to run MPFR tests, use the output + of gawk --version instead of the automake TEST_MPFR conditional (which + has now been removed from configure.ac). + +2013-01-27 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add all the mpfr test files. Duh. + (reginttrad): Use $(srcdir)/$@.awk. Double Duh. + +2013-01-27 Andrew J. Schorr + + * Makefile.am: Add mpfr tests if MPFR is available. + +2013-01-20 Arnold D. Robbins + + * Makefile.am (reginttrad): New test. + * reginttrad.awk, reginttrad.ok: New files. + +2013-01-16 Arnold D. Robbins + + Fix tests to work with make diffout: + + * rtlenmb.ok: New file. + * Makefile.am (clobber, mmap8k, rtlenmb): Tests adjusted. + (EXTRA_DIST): Add rtlenmb.ok. + +2013-01-15 Andrew J. Schorr + + * Gentests: Remove a debugging printf. + +2013-01-15 Andrew J. Schorr + + * Makefile.am (readdir): Try to protect against failure on filesystems + lacking type information by invoking readdir.awk before readdir0.awk + and passing the results of readdir to readdir0 for inspection. + * readdir0.awk: Analyze the results of the readdir extension. + If all file types are set to "u", we infer that this filesystem lacks + type information. + +2013-01-14 Arnold D. Robbins + + * Makefile.am (rand): Let Gentests create the test. + (fmtspcl): Add $(AWKFLAGS). + * Gentests: For MPFR tests, add $(AWKFLAGS) on the command line. + * mpfr-rand.ok: Updated. + +2013-01-14 Andrew J. Schorr + + * Makefile.am (symtab8): Use grep to remove FILENAME from the output + so the test will succeed when building outside the source tree. + * symtab8.ok: Remove FILENAME. + +2013-01-10 Andrew J. Schorr + + * inplace.1.in, inplace.2.in, inplace.in, inplace1.1.ok, inplace1.2.ok, + inplace1.ok, inplace2.1.bak.ok, inplace2.1.ok, inplace2.2.bak.ok, + inplace2.2.ok, inplace2.ok, inplace3.1.bak.ok, inplace3.1.ok, + inplace3.2.bak.ok, inplace3.2.ok, inplace3.ok: New files. + * Makefile.am (EXTRA_DIST): Add new files. + (SHLIB_TESTS): Add inplace1, inplace2, and inplace3. + (inplace1, inplace2, inplace3): New tests. + +2012-12-25 Arnold D. Robbins + + * assignconst.awk, assignconst.ok: Removed. + * Makefile.am (EXTRA_DIST): Removed assignconst.awk, assignconst.ok. + (SHLIB_TESTS): Removed assignconst. + (assignconst): Removed test. + +2012-12-24 Arnold D. Robbins + + * 4.0.2: Release tar ball made. + +2012-12-23 Arnold D. Robbins + + * Makefile.am (paramuninitglobal): New test. + * paramuninitglobal.awk, paramuninitglobal.ok: New files. + Thanks to John Haque. + +2012-12-19 Arnold D. Robbins + + * symtab9.awk, symtab9.ok: New files. + * Makefile.am (EXTRA_DIST): Add new files. + (symtab9): New test. + * symtab1.ok, testext.ok: Updated. + +2012-12-16 Arnold D. Robbins + + * symtab7.awk, symtab7.in, symtab7.ok, symtab8.awk, symtab8.in, + symtab8.ok: New files. + * Makefile.am (EXTRA_DIST): Add new files. + (symtab7, symtab8): New tests. + Thanks to Assaf Gordon . + +2012-11-19 Arnold D. Robbins + + * Makefile.am (readdir): Add a 'this could fail message'. + * readdir.awk: Revise to match simplified behavior of the extension. + +2012-11-13 Arnold D. Robbins + + * Makefile.am (GAWK_EXTRA_TESTS): Move to sorted order of tests. + +2012-11-12 Arnold D. Robbins + + * symtab6.ok: Remove PROCINFO. + * Makefile.am (symtab6): Adjust recipe. + +2012-11-10 Arnold D. Robbins + + * symtab4.awk, symtab4.in, symtab4.ok, symtab5.awk, symtab5.in, + symtab5.ok, symtab6.awk: New files. + * Makefile.am (EXTRA_DIST): Add new files. + (symtab4, symtab5, symtab6): New tests. + Thanks to Assaf Gordon . + +2012-10-28 Andrew J. Schorr + + * messages.awk, fts.awk: Adjusted so make diffout will work. + * Makefile.am (messages): Adjust to use standard failure test for + make diffout. + +2012-10-19 Arnold D. Robbins + + * symtab1.awk: Adjust to not print ENVIRON and PROCINFO which won't + be the same as on the author's machine. + * lintwarn.ok: Adjust. + +2012-10-13 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add jarebug.sh. + +2012-10-11 Andrew J. Schorr + + * Makefile.am (readdir): Use $(top_srcdir) instead of `.'. Helps + when running the valgrind tests. + +2012-10-11 Arnold D. Robbins + + * testext.ok: Updated. + +2012-10-04 Akim Demaille + + Fix VPATH builds. + + * Makefile.am (shlib-tests): config.h is in builddir. + (beginfile2): So is gawk itself. + + * Makefile.am (functab1, functab2, functab3, functab4, id, symtab1, + symtab2, symtab3): New tests. + * functab1.awk, functab1.ok, functab2.awk, functab2.ok, functab3.awk, + functab3.ok, functab4.awk, functab4.ok, id.awk, id.ok, symtab1.awk, + symtab1.ok, symtab2.awk, symtab2.ok, symtab3.awk, symtab3.ok: + New files. + +2012-09-23 Arnold D. Robbins + + * lintwarn.ok: Updated. + +2012-09-14 Arnold D. Robbins + + * testext.ok: Updated. Twice. + +2012-09-11 Arnold D. Robbins + + * Makefile.am (shlib-tests): Check if DYNAMIC is enabled and + only if so run the tests. A bit hacky. Needed at least for + z/OS. + +2012-09-07 Arnold D. Robbins + + * readdir.awk: Change argument to readdir_do_ftype(). + +2012-08-28 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add jarebug.sh. + (readdir): Use standard output filenames readdir.ok and _readdir + instead of readdir.out1 and readdir.out2. The standard names are + required for the pass-fail and diffout rules to work correctly. + (clean): Remove readdir.ok + +2012-08-26 Arnold D. Robbins + + * Makefile.am (charasbytes): Revise test to canonicalize + whitespace. (For Mac OS X 10.5, at least.) + * charasbytes.ok: Updated. + +2012-08-23 Arnold D. Robbins + + * Makefile.am (revout, revtwoway): New tests. + * revout.awk, revout.ok, revtwoway.awk, revtwoway.ok: New files. + +2012-08-11 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add inchello.awk and incdupe[4-7].ok. + (GAWK_EXT_TESTS): Add incdupe[4-7]. + (incdupe[4-7]): New tests to ensure that mixing -f with include + causes a fatal error. + * incdupe[4-7].ok, inchello.awk: New files. + +2012-08-08 Arnold D. Robbins + + * Makefile.am (fts): New test. + * fts.awk: New file. + +2012-07-30 Arnold D. Robbins + + * Makefile.am (assignconst): Use AWKPATH to get results that will + be consistent no matter where the test is run. + * assignconst.ok: Updated. + +2012-07-29 Arnold D. Robbins + + * Makefile.am (readdir): New test. + * readdir0.awk, readdir.awk: New files. + +2012-07-16 Arnold D. Robbins + + * fnmatch.awk, fnmatch.ok: Portability updates. + +2012-07-15 Arnold D. Robbins + + * testext.ok: Update contents. + +2012-07-12 Arnold D. Robbins + + * Makefile.am (fnmatch): New test. + * fnmatch.awk, fnmatch.ok: New files. + + * Makefile.am (assignconst): New test. + * assignconst.awk, assignconst.ok: New files. + +2012-06-28 Andrew J. Schorr + + * time.awk: Avoid possibly throwing a spurious error by protecting + a race condition that depends on the order of expression evaluation. + +2012-06-25 Arnold D. Robbins + + * Makefile.am (rwarray): New test. + * rwarray.awk, rwarray.in, rwarray.ok: New files. + +2012-06-21 Arnold D. Robbins + + * testext.ok: Update contents. + +2012-06-20 Arnold D. Robbins + + * testext.ok: Update contents. + +2012-06-19 Arnold D. Robbins + + * testext.ok: Update contents. + +2012-06-18 Arnold D. Robbins + + * Makefile.am (testext): New test. + (EXTRA_DIST): Add new file testext.ok. + (SHLIB_TESTS): Add testext. + (clean): Add testext.awk to the list. + * testext.ok: New file. + +2012-06-12 Arnold D. Robbins + + * Makefile.am (clean): Add fork.tmp.* to the list. + +2012-06-10 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add new files time.awk and time.ok. + (SHLIB_TESTS): Add time. + * time.awk, time.ok: New files. + +2012-05-29 Arnold D. Robbins + + * Makefile.am (clean): Add readfile.ok to list of files to removed. + +2012-05-26 Andrew J. Schorr + + * Makefile.am (readfile): Revert previous patch, and add comment + explaining that we need to create readfile.ok on failure so that + "make diffout" will work properly. + (ordchr.awk, ordchr.ok): Add more tests to catch type conversion + problems. + +2012-05-25 Arnold D. Robbins + + * Makefile.am (readfile): Don't copy the Makefile over readfile.ok + if there's a problem. + +2012-05-24 Andrew J. Schorr + + * Makefile.am (fmtspcl, include2, incdupe, incdup2, incdupe3): Fix + paths to work properly when built in another directory. + +2012-05-19 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add new files hello.awk, inclib.awk, + include.awk, include.ok, include2.ok, incdupe.ok, incdupe2.ok and + incdupe3.ok. + (GAWK_EXT_TESTS): Add include, include2, incdupe, incdupe2 and incdupe3. + (include2, incdupe, incdupe2, incdupe3): New tests. + * badargs.ok: Fix usage message to include new -i option. + * hello.awk, incdupe.ok, incdupe2.ok, incdupe3.ok, inclib.awk, + include.awk, include.ok, include2.ok: New files. + +2012-08-12 Arnold D. Robbins + + * Makefile.am (regexprange): New test. + * regexprange.awk, regexprange.ok: New files. + +2012-08-05 Arnold D. Robbins + + New test from Nelson Beebe. + + * Makefile.am (ofs1): New test. + * ofs1.awk, ofs1.in, ofs1.ok: New files. + +2012-07-13 Arnold D. Robbins + + * Makefile.am (getline5): New test. + * getline5.awk, getline5.ok: New files. + +2012-06-19 Arnold D. Robbins + + * Makefile.am (charasbytes): New test. + * charasbytes.awk, charasbytes.in, charasbytes.ok: New files. + +2012-05-20 Arnold D. Robbins + + * jarebug.sh: New file. Handles Mac OS X also. + * Makefile.am (jarebug): Use jarebug.sh to run the test. + +2012-05-16 Arnold D. Robbins + + * Makefile.am (jarebug): Remove leading `-' from $(CMP) line. + +2012-05-14 Arnold D. Robbins + + * Makefile.am (jarebug): Move to charset tests. Adjust to check + for existence of needed Japanese locale before running the test. + +2012-05-09 Arnold D. Robbins + + * Makefile.am (jarebug): New test. + * jarebug.awk, jarebug.in, jarebug.ok: New files. + +2012-04-08 Andrew J. Schorr + + * Makefile.am (VALGRIND): Set to empty to protect against random + values in the environment. + +2012-04-08 Andrew J. Schorr + + * Makefile.am (EXTRA_DIST): Add missing files fork.ok, fork2.ok + and ordchr2.ok. + +2012-04-08 Andrew J. Schorr + + * Makefile.am (AWK, PGAWK): Include new $(VALGRIND) variable in + command line (now passed in by top-level Makefile). + +2012-04-07 Andrew J. Schorr + + * Makefile.am (ordchr2, readfile): Fix so "make diffout" will work + properly. + * orchr2.ok: New file. + +2012-04-07 Andrew J. Schorr + + * Makefile.am (check): Add new shlib-tests target. + (SHLIB_TESTS): Add tests ordchr, ordchr2, fork, fork2, readfile and + filefuncs. + * ordchr.awk, ordchr.ok, fork.awk, fork.ok, fork2.awk, fork2.ok, + filefuncs.awk, filefuncs.ok: New files. + +2012-04-01 Andrew J. Schorr + + * Makefile.am (valgrind-scan): Update to match modern valgrind output. + +2012-04-01 John Haque + + * Makefile.am (mpfr-test): Add target for manual testing of MPFR + and GMP numbers. + * mpfrbigint.awk, mpfrexprange.awk, mpfrieee.awk, mpfrnr.awk, + mpfrrnd.awk, mpfrsort.awk: New tests. + (MPFR_TESTS): Add the new tests. + * mpfrnr.in, mpfrbigint.ok, mpfrexprange.ok, mpfrieee.ok, mpfrnr.ok, + mpfrrnd.ok, mpfrsort.ok: New files. + (AWK): Add AWKFLAGS; useful for testing with 'gawk -M' invocation. + +2012-02-28 Arnold D. Robbins + + * fmtspcl-mpfr.ok, fnarydel-mpfr.ok, fnparydl-mpfr.ok, + rand-mpfr.ok: New files. + * Makefile.am (EXTRA_DIST): Add them. + (CHECK_MPFR): New list of files that have MPFR variant .ok file. + * Gentests: Deal with MPFR files by modifying the generated + comparison command. + +2011-12-26 John Haque + + * badargs.ok: Adjust for new and changed command line options. + +2012-03-28 Arnold D. Robbins + + * 4.0.1: Release tar ball made. + +2012-03-20 Arnold D. Robbins + + * Makefile.am (printfbad3): New test. + * printfbad3.awk, printfbad3.ok: New files. + +2012-02-22 Arnold D. Robbins + + * Makefile.am (beginfile2, next): Set LC_ALL=C so that error + messages will be in English for comparison with .ok files. + Thanks to Jeroen Schot . + +2011-12-26 Arnold D. Robbins + + * Makefile.am (rri1): New test. + * rri1.awk, rri1.in, rri1.ok: New files. + +2011-12-06 Arnold D. Robbins + + * Makefile.am: Rationalize the $(CMP) lines wherever possible. + +2011-10-24 Arnold D. Robbins + + * beginfile2.sh: Use `...` instead of $(...) for broken systems + where /bin/sh doesn't support $(...). Thanks to Nelson Beebe for + the report. + +2011-10-21 John Haque + + * beginfile2.in, beginfile2.sh, beginfile2.ok: Adjust input file names. + +2011-10-21 Corinna Vinschen + + * Makefile.am (beginfile2): Adjust for running out of srcdir. + * beginfile2.sh: Same. + +2011-10-02 Arnold D. Robbins + + * Makefile.am (rtlen, rtlen01, rtlenmb): New tests. + * rtlen.ok, rtlen.sh, rtlen01.ok, rtlen01.sh: New files. + Thanks to Rogier as forwarded by + Jeroen Schot . + +2011-08-10 Arnold D. Robbins + + * Makefile.am (beginfile2, fpat3, fwtest3): New tests. + * beginfile2.awk, beginfile2.in, beginfile2.ok: New files. + * fpat3.awk, fpat3.in, fpat3.ok: New files. + * fwtest3.awk, fwtest3.in, fwtest3.ok: New files. + +2011-08-09 Arnold D. Robbins + + * pty1.awk, pty1.ok: New files. + * Makefile.am (pty1): New test. + (profile1, profile2, profile3): Use unique names for the profile + files to avoid problems with parallel 'make check' + +2011-07-29 Arnold D. Robbins + + * Makefile.am (next): Redirect output to output file! + +2011-07-28 Arnold D. Robbins + + * sortu.awk, sortu.ok: Modified to make numeric comparison do + a stable sort. Thanks to Peter Fales . + * backgsub.ok: Update for change in code. + * Makefile.am (posix2008sub): Add --posix to invocation. + +2011-07-26 Arnold D. Robbins + + * Makefile.am (getline4, gsubtst8): New tests. + * getline4.awk, getline4.in, getline4.ok: New files. + * gsubtst8.awk, gsubtst8.in, gsubtst8.ok: New files. + +2011-07-15 Arnold D. Robbins + + * Makefile.am (gsubtst7): New test. + * gsubtst7.awk, gsubtst7.in, gsubtst7.ok: New files. + +2011-06-24 Arnold D. Robbins + + * Makefile.am (EXTRA_DIST): Add ChangeLog.0. + * 4.0.0: Remake the tar ball. + +2011-06-23 Arnold D. Robbins + + * ChangeLog.0: Rotated ChangeLog into this file. + * ChangeLog: Created anew for gawk 4.0.0 and on. + * 4.0.0: Release tar ball made. diff -urN gawk-5.0.0/test/fscaret.awk gawk-5.0.1/test/fscaret.awk --- gawk-5.0.0/test/fscaret.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/test/fscaret.awk 2019-04-21 18:03:57.000000000 +0300 @@ -0,0 +1,8 @@ +BEGIN { + FS="^." + OFS="|" +} +{ + $1 = $1 +} +1 diff -urN gawk-5.0.0/test/fscaret.in gawk-5.0.1/test/fscaret.in --- gawk-5.0.0/test/fscaret.in 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/test/fscaret.in 2019-04-21 18:03:57.000000000 +0300 @@ -0,0 +1 @@ +foo diff -urN gawk-5.0.0/test/fscaret.ok gawk-5.0.1/test/fscaret.ok --- gawk-5.0.0/test/fscaret.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/test/fscaret.ok 2019-04-21 18:03:57.000000000 +0300 @@ -0,0 +1 @@ +|oo diff -urN gawk-5.0.0/test/Gentests gawk-5.0.1/test/Gentests --- gawk-5.0.0/test/Gentests 2019-04-05 10:38:16.000000000 +0300 +++ gawk-5.0.1/test/Gentests 2019-05-07 07:09:37.000000000 +0300 @@ -94,6 +94,13 @@ next } +/^NEED_SANDBOX *=/,/[^\\]$/ { + gsub(/(^NEED_SANDBOX *=|\\$)/,"") + for (i = 1; i <= NF; i++) + sandbox[$i] + next +} + /^GENTESTS_UNUSED *=/,/[^\\]$/ { gsub(/(^GENTESTS_UNUSED *=|\\$)/,"") for (i = 1; i <= NF; i++) @@ -204,6 +211,10 @@ s = s " --traditional" delete traditional[x] } + if (x in sandbox) { + s = s " --sandbox" + delete sandbox[x] + } if (x in pretty) { s = s " --pretty-print=_$@" delete pretty[x] @@ -274,6 +285,9 @@ for (x in traditional) if (!(x in targets)) printf "WARNING: --traditional target `%s' is missing.\n", x > "/dev/stderr" + for (x in sandbox) + if (!(x in targets)) + printf "WARNING: --sandbox target `%s' is missing.\n", x > "/dev/stderr" for (x in pretty) if (!(x in targets)) printf "WARNING: --pretty-print target `%s' is missing.\n", x > "/dev/stderr" diff -urN gawk-5.0.0/test/Makefile.am gawk-5.0.1/test/Makefile.am --- gawk-5.0.0/test/Makefile.am 2019-04-07 21:53:42.000000000 +0300 +++ gawk-5.0.1/test/Makefile.am 2019-05-07 07:07:11.000000000 +0300 @@ -27,6 +27,7 @@ reg \ lib \ ChangeLog.0 \ + ChangeLog.1 \ Gentests \ Maketests \ README \ @@ -126,6 +127,8 @@ assignnumfield.awk \ assignnumfield.in \ assignnumfield.ok \ + assignnumfield2.awk \ + assignnumfield2.ok \ awkpath.ok \ back89.awk \ back89.in \ @@ -366,6 +369,9 @@ fsbs.awk \ fsbs.in \ fsbs.ok \ + fscaret.awk \ + fscaret.in \ + fscaret.ok \ fsfwfs.awk \ fsfwfs.in \ fsfwfs.ok \ @@ -1061,6 +1067,8 @@ rwarray.awk \ rwarray.in \ rwarray.ok \ + sandbox1.awk \ + sandbox1.ok \ scalar.awk \ scalar.ok \ sclforin.awk \ @@ -1187,6 +1195,8 @@ synerr1.ok \ synerr2.awk \ synerr2.ok \ + synerr3.awk \ + synerr3.ok \ tailrecurse.awk \ tailrecurse.ok \ testext.ok \ @@ -1279,15 +1289,16 @@ addcomma anchgsub anchor argarray arrayind1 arrayind2 arrayind3 arrayparm \ arrayprm2 arrayprm3 arrayref arrymem1 arryref2 arryref3 arryref4 arryref5 \ arynasty arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \ - aryprm8 aryprm9 arysubnm aryunasgn asgext awkpath assignnumfield \ + aryprm8 aryprm9 arysubnm aryunasgn asgext awkpath \ + assignnumfield assignnumfield2 \ back89 backgsub badassign1 badbuild \ callparam childin clobber closebad clsflnam compare compare2 \ concat1 concat2 concat3 concat4 concat5 convfmt \ datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \ eofsplit eofsrc1 exit2 exitval1 exitval2 exitval3 \ fcall_exit fcall_exit2 fldchg fldchgnf fldterm fnamedat fnarray fnarray2 \ - fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fsnul1 fsrs fsspcoln \ - fstabplus funsemnl funsmnam funstack \ + fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fscaret fsnul1 \ + fsrs fsspcoln fstabplus funsemnl funsmnam funstack \ getline getline2 getline3 getline4 getline5 getlnbuf getnr2tb getnr2tm \ gsubasgn gsubtest gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 gsubtst7 \ gsubtst8 \ @@ -1310,7 +1321,7 @@ scalar sclforin sclifin setrec0 setrec1 \ sigpipe1 sortempty sortglos spacere splitargv splitarr \ splitdef splitvar splitwht status-close strcat1 strnum1 strnum2 strtod \ - subamp subback subi18n subsepnm subslash substr swaplns synerr1 synerr2 \ + subamp subback subi18n subsepnm subslash substr swaplns synerr1 synerr2 synerr3 \ tailrecurse tradanch trailbs tweakfld \ uninit2 uninit3 uninit4 uninit5 uninitialized unterm uparrfs uplus \ wideidx wideidx2 widesub widesub2 widesub3 widesub4 wjposer1 \ @@ -1345,7 +1356,8 @@ profile7 profile8 profile9 profile10 profile11 profile12 pty1 pty2 \ rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline rsglstdin \ rsstart1 rsstart2 rsstart3 rstest6 \ - shadow shadowbuiltin sortfor sortfor2 sortu sourcesplit split_after_fpat \ + sandbox1 shadow shadowbuiltin sortfor sortfor2 sortu \ + sourcesplit split_after_fpat \ splitarg4 strftfld strftime strtonum strtonum1 switch2 symtab1 symtab2 \ symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \ timeout typedregex1 typedregex2 typedregex3 typedregex4 \ @@ -1405,6 +1417,9 @@ # List of tests that need --re-interval NEED_RE_INTERVAL = gsubtst3 reint reint2 +# List of tests that need --sandbox +NEED_SANDBOX = sandbox1 + # List of tests that need --traditional NEED_TRADITIONAL = litoct tradanch rscompat diff -urN gawk-5.0.0/test/Makefile.in gawk-5.0.1/test/Makefile.in --- gawk-5.0.0/test/Makefile.in 2019-04-12 12:03:05.000000000 +0300 +++ gawk-5.0.1/test/Makefile.in 2019-06-18 20:09:32.000000000 +0300 @@ -286,6 +286,7 @@ reg \ lib \ ChangeLog.0 \ + ChangeLog.1 \ Gentests \ Maketests \ README \ @@ -385,6 +386,8 @@ assignnumfield.awk \ assignnumfield.in \ assignnumfield.ok \ + assignnumfield2.awk \ + assignnumfield2.ok \ awkpath.ok \ back89.awk \ back89.in \ @@ -625,6 +628,9 @@ fsbs.awk \ fsbs.in \ fsbs.ok \ + fscaret.awk \ + fscaret.in \ + fscaret.ok \ fsfwfs.awk \ fsfwfs.in \ fsfwfs.ok \ @@ -1320,6 +1326,8 @@ rwarray.awk \ rwarray.in \ rwarray.ok \ + sandbox1.awk \ + sandbox1.ok \ scalar.awk \ scalar.ok \ sclforin.awk \ @@ -1446,6 +1454,8 @@ synerr1.ok \ synerr2.awk \ synerr2.ok \ + synerr3.awk \ + synerr3.ok \ tailrecurse.awk \ tailrecurse.ok \ testext.ok \ @@ -1538,15 +1548,16 @@ addcomma anchgsub anchor argarray arrayind1 arrayind2 arrayind3 arrayparm \ arrayprm2 arrayprm3 arrayref arrymem1 arryref2 arryref3 arryref4 arryref5 \ arynasty arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \ - aryprm8 aryprm9 arysubnm aryunasgn asgext awkpath assignnumfield \ + aryprm8 aryprm9 arysubnm aryunasgn asgext awkpath \ + assignnumfield assignnumfield2 \ back89 backgsub badassign1 badbuild \ callparam childin clobber closebad clsflnam compare compare2 \ concat1 concat2 concat3 concat4 concat5 convfmt \ datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \ eofsplit eofsrc1 exit2 exitval1 exitval2 exitval3 \ fcall_exit fcall_exit2 fldchg fldchgnf fldterm fnamedat fnarray fnarray2 \ - fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fsnul1 fsrs fsspcoln \ - fstabplus funsemnl funsmnam funstack \ + fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fscaret fsnul1 \ + fsrs fsspcoln fstabplus funsemnl funsmnam funstack \ getline getline2 getline3 getline4 getline5 getlnbuf getnr2tb getnr2tm \ gsubasgn gsubtest gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 gsubtst7 \ gsubtst8 \ @@ -1569,7 +1580,7 @@ scalar sclforin sclifin setrec0 setrec1 \ sigpipe1 sortempty sortglos spacere splitargv splitarr \ splitdef splitvar splitwht status-close strcat1 strnum1 strnum2 strtod \ - subamp subback subi18n subsepnm subslash substr swaplns synerr1 synerr2 \ + subamp subback subi18n subsepnm subslash substr swaplns synerr1 synerr2 synerr3 \ tailrecurse tradanch trailbs tweakfld \ uninit2 uninit3 uninit4 uninit5 uninitialized unterm uparrfs uplus \ wideidx wideidx2 widesub widesub2 widesub3 widesub4 wjposer1 \ @@ -1604,7 +1615,8 @@ profile7 profile8 profile9 profile10 profile11 profile12 pty1 pty2 \ rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline rsglstdin \ rsstart1 rsstart2 rsstart3 rstest6 \ - shadow shadowbuiltin sortfor sortfor2 sortu sourcesplit split_after_fpat \ + sandbox1 shadow shadowbuiltin sortfor sortfor2 sortu \ + sourcesplit split_after_fpat \ splitarg4 strftfld strftime strtonum strtonum1 switch2 symtab1 symtab2 \ symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \ timeout typedregex1 typedregex2 typedregex3 typedregex4 \ @@ -1664,6 +1676,9 @@ # List of tests that need --re-interval NEED_RE_INTERVAL = gsubtst3 reint reint2 +# List of tests that need --sandbox +NEED_SANDBOX = sandbox1 + # List of tests that need --traditional NEED_TRADITIONAL = litoct tradanch rscompat @@ -2881,6 +2896,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +assignnumfield2: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + back89: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -3098,6 +3118,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +fscaret: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + fsnul1: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -3840,6 +3865,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +synerr3: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + tailrecurse: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -4567,6 +4597,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +sandbox1: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --sandbox >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + shadow: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff -urN gawk-5.0.0/test/Maketests gawk-5.0.1/test/Maketests --- gawk-5.0.0/test/Maketests 2019-04-12 12:02:35.000000000 +0300 +++ gawk-5.0.1/test/Maketests 2019-06-18 20:09:31.000000000 +0300 @@ -145,6 +145,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +assignnumfield2: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + back89: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -362,6 +367,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +fscaret: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + fsnul1: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1104,6 +1114,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +synerr3: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + tailrecurse: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1831,6 +1846,11 @@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +sandbox1: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --sandbox >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + shadow: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff -urN gawk-5.0.0/test/sandbox1.awk gawk-5.0.1/test/sandbox1.awk --- gawk-5.0.0/test/sandbox1.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/test/sandbox1.awk 2019-05-06 21:29:59.000000000 +0300 @@ -0,0 +1,7 @@ +BEGIN { + ARGV[ARGC++] = ARGV[1] # should be ok + ARGV[ARGC++] = "" # empty string, should be ok + ARGV[ARGC++] = "foo=bar" # assignment, should be ok + ARGV[ARGC++] = "junk::foo=bar" # assignment, should be ok + ARGV[ARGC++] = "/dev/null" # should fatal here +} diff -urN gawk-5.0.0/test/sandbox1.ok gawk-5.0.1/test/sandbox1.ok --- gawk-5.0.0/test/sandbox1.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/test/sandbox1.ok 2019-05-06 21:29:59.000000000 +0300 @@ -0,0 +1,2 @@ +gawk: sandbox1.awk:6: fatal: cannot add a new file (/dev/null) to ARGV in sandbox mode +EXIT CODE: 2 diff -urN gawk-5.0.0/test/synerr3.awk gawk-5.0.1/test/synerr3.awk --- gawk-5.0.0/test/synerr3.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/test/synerr3.awk 2019-04-21 18:03:57.000000000 +0300 @@ -0,0 +1 @@ +for (i = ) in foo bar baz diff -urN gawk-5.0.0/test/synerr3.ok gawk-5.0.1/test/synerr3.ok --- gawk-5.0.0/test/synerr3.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-5.0.1/test/synerr3.ok 2019-04-21 18:03:57.000000000 +0300 @@ -0,0 +1,5 @@ +gawk: synerr3.awk:1: for (i = ) in foo bar baz +gawk: synerr3.awk:1: ^ syntax error +gawk: synerr3.awk:1: for (i = ) in foo bar baz +gawk: synerr3.awk:1: ^ syntax error +EXIT CODE: 2 diff -urN gawk-5.0.0/vms/ChangeLog gawk-5.0.1/vms/ChangeLog --- gawk-5.0.0/vms/ChangeLog 2019-04-12 12:22:13.000000000 +0300 +++ gawk-5.0.1/vms/ChangeLog 2019-06-18 20:53:09.000000000 +0300 @@ -1,3 +1,7 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + 2019-04-12 Arnold D. Robbins * ChangeLog.1: Rotated ChangeLog into this file. diff -urN gawk-5.0.0/vms/vax/ChangeLog gawk-5.0.1/vms/vax/ChangeLog --- gawk-5.0.0/vms/vax/ChangeLog 2019-04-12 12:22:33.000000000 +0300 +++ gawk-5.0.1/vms/vax/ChangeLog 2019-06-18 20:53:12.000000000 +0300 @@ -1,3 +1,7 @@ +2019-06-18 Arnold D. Robbins + + * 5.0.1: Release tar ball made. + 2019-04-12 Arnold D. Robbins * 5.0.0: Release tar ball made. EOF # Next, create a new file # Final cleanup echo Sleeping and touching files to update timestamps. # touch list of zero length files sleep 2 touch aclocal.m4 extension/aclocal.m4 configh.in extension/configh.in touch test/Makefile.in touch awklib/Makefile.in doc/Makefile.in extension/Makefile.in Makefile.in sleep 2 touch configure extension/configure sleep 2 touch version.c echo Remove any .orig or "'~'" files that may remain. echo Use '"configure && make"' to rebuild any dependent files. echo Use "'make distclean'" to clean up.