aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--ChangeLog125
-rw-r--r--Checklist10
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.in2
-rw-r--r--NEWS24
-rw-r--r--README23
-rw-r--r--README_d/ChangeLog8
-rw-r--r--README_d/README.gcc-311
-rw-r--r--README_d/README.pc2
-rw-r--r--array.c4
-rw-r--r--awk.h5
-rw-r--r--awkgram.c4
-rw-r--r--awkgram.y4
-rw-r--r--awklib/ChangeLog9
-rw-r--r--awklib/Makefile.am1
-rw-r--r--awklib/Makefile.in1
-rw-r--r--awklib/eg/data/BBS-list11
-rw-r--r--awklib/eg/data/mail-list11
-rw-r--r--awklib/eg/lib/quicksort.awk3
-rw-r--r--awklib/eg/prog/cut.awk2
-rw-r--r--builtin.c44
-rw-r--r--cmd.h5
-rw-r--r--command.c2
-rw-r--r--command.y2
-rwxr-xr-xconfigure75
-rw-r--r--configure.ac13
-rw-r--r--debug.c2
-rw-r--r--dfa.c537
-rw-r--r--dfa.h10
-rw-r--r--doc/ChangeLog76
-rw-r--r--doc/awkcard.in13
-rw-r--r--doc/gawk.111
-rw-r--r--doc/gawk.info3205
-rw-r--r--doc/gawk.texi2020
-rw-r--r--doc/gawktexi.in2012
-rw-r--r--doc/texinfo.tex49
-rw-r--r--ext.c8
-rw-r--r--extension/ChangeLog55
-rw-r--r--extension/Makefile.am2
-rw-r--r--extension/Makefile.in2
-rw-r--r--extension/build-aux/ChangeLog4
-rw-r--r--extension/configh.in20
-rwxr-xr-xextension/configure233
-rw-r--r--extension/configure.ac10
-rw-r--r--extension/filefuncs.c8
-rw-r--r--extension/gawkfts.c4
-rw-r--r--extension/inplace.c8
-rw-r--r--extension/m4/ChangeLog4
-rw-r--r--extension/readdir.c10
-rw-r--r--extension/readfile.3am20
-rw-r--r--extension/readfile.c151
-rw-r--r--extension/revtwoway.c6
-rw-r--r--extension/rwarray.c8
-rw-r--r--extension/testext.c6
-rw-r--r--extension/time.c6
-rw-r--r--gawkapi.c125
-rw-r--r--gawkapi.h26
-rw-r--r--helpers/ChangeLog13
-rwxr-xr-xhelpers/quoteconvert2.sh49
-rw-r--r--helpers/scanfmt.c22
-rw-r--r--helpers/tryfmt.c23
-rw-r--r--interpret.h2
-rw-r--r--io.c8
-rw-r--r--m4/ChangeLog10
-rw-r--r--m4/readline.m46
-rw-r--r--main.c4
-rw-r--r--missing_d/ChangeLog4
-rw-r--r--pc/ChangeLog4
-rw-r--r--pc/Makefile11
-rw-r--r--pc/Makefile.tst2
-rw-r--r--pc/config.h6
-rw-r--r--po/ChangeLog4
-rw-r--r--po/ca.gmobin43102 -> 83005 bytes
-rw-r--r--po/ca.po1263
-rw-r--r--po/da.gmobin42270 -> 42160 bytes
-rw-r--r--po/da.po1157
-rw-r--r--po/de.gmobin45338 -> 45199 bytes
-rw-r--r--po/de.po1159
-rw-r--r--po/es.gmobin44713 -> 44600 bytes
-rw-r--r--po/es.po1157
-rw-r--r--po/fi.gmobin84555 -> 84555 bytes
-rw-r--r--po/fi.po692
-rw-r--r--po/fr.gmobin85628 -> 85628 bytes
-rw-r--r--po/fr.po702
-rw-r--r--po/gawk.pot316
-rw-r--r--po/it.gmobin81018 -> 81018 bytes
-rw-r--r--po/it.po318
-rw-r--r--po/ja.gmobin47970 -> 47970 bytes
-rw-r--r--po/ja.po1158
-rw-r--r--po/ms.gmobin1184 -> 1184 bytes
-rw-r--r--po/ms.po1153
-rw-r--r--po/nl.gmobin80863 -> 80863 bytes
-rw-r--r--po/nl.po630
-rw-r--r--po/pl.gmobin70599 -> 71101 bytes
-rw-r--r--po/pl.po1167
-rw-r--r--po/sv.gmobin80916 -> 80916 bytes
-rw-r--r--po/sv.po571
-rw-r--r--po/vi.gmobin93025 -> 93025 bytes
-rw-r--r--po/vi.po657
-rw-r--r--posix/ChangeLog4
-rw-r--r--regcomp.c2
-rw-r--r--regex_internal.c15
-rw-r--r--test/ChangeLog27
-rw-r--r--test/Makefile.am16
-rw-r--r--test/Makefile.in16
-rw-r--r--test/readfile2.awk12
-rw-r--r--test/readfile2.ok21
-rw-r--r--test/regrange.ok2
-rw-r--r--vms/ChangeLog8
-rw-r--r--vms/descrip.mms2
-rw-r--r--vms/vax/ChangeLog4
-rw-r--r--vms/vmsbuild.com5
113 files changed, 12577 insertions, 8880 deletions
diff --git a/.gitignore b/.gitignore
index 71be0874..72445191 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@
# Directories
autom4te.cache
.deps
+*.dSYM
# Single files.
Makefile
diff --git a/ChangeLog b/ChangeLog
index 02da28db..80e37072 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,128 @@
+2014-04-11 Arnold D. Robbins <arnold@skeeve.com>
+
+ * io.c (closemabyesocket): 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 <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * README: Update.
+ * configure.ac: Bump version.
+
+2014-04-03 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 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 <arnold@skeeve.com>
+
+ * dfa.c: Sync with GNU grep.
+
+2014-03-28 Arnold D. Robbins <arnold@skeeve.com>
+
+ * configure.ac: Remove duplicate AC_HEADER_TIME and rearrange
+ order of macros some. May help on older systems.
+
+2014-03-23 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 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 <arnold@skeeve.com>
+
+ * 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 <arnold@skeeve.com>
+
+ * .gitignore: Add .dSYM directories for Mac OS X.
+ Thanks to Hermann Peifer for the suggestion.
+
+2014-03-10 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 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 <aschorr@telemetry-investments.com>
+
+ * 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 <arnold@skeeve.com>
+
+ 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 <arnold@skeeve.com>
+
+ * dfa.c: Sync with grep. Yet again.
+
+2014-02-28 Arnold D. Robbins <arnold@skeeve.com>
+
+ * dfa.c: Sync with grep. Looks like good improvement with
+ respect to bracket expressions.
+
+2014-02-27 Arnold D. Robbins <arnold@skeeve.com>
+
+ 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 <arnold@skeeve.com>
+
+ * configure.ac: Set up do-nothing extension/Makefile on
+ MirBSD also.
+
+2014-02-21 Arnold D. Robbins <arnold@skeeve.com>
+
+ * dfa.h, dfa.c (parse_bracket_exp): Sync with grep.
+
2014-02-20 Arnold D. Robbins <arnold@skeeve.com>
* regex.h, regex.c, regex_internal.c, regex_internal.h: Sync
diff --git a/Checklist b/Checklist
index 98faf6cb..e0e1ffec 100644
--- a/Checklist
+++ b/Checklist
@@ -1,4 +1,4 @@
-Sun Apr 21 23:14:21 IDT 2013
+Fri Apr 4 11:43:29 IDT 2014
============================
A checklist for making releases
@@ -12,20 +12,18 @@ README_d/* edited
VMS/* version stuff up to date
vms/vmsbuild.com
vms/descrip.mms
- vms/vms-conf.h: update VERSION and PACKAGE_VERSION
NEWS is up to date
Any new options have been added to usage function
All paper work signed and sent in
All files checked in
Version information is correct in
- version.c
doc/gawk.1
doc/awkcard.in
- doc/gawk.texi
+ doc/gawktexi.in
doc/gawkinet.texi
extension/configure.ac
doc/texinfo.tex is up to date
-doc/gawk.texi is up to date
+doc/gawktexi.in is up to date
doc/gawkinet.texi is up to date
doc/gawk.1 is up to date
doc/awkcard.in is up to date
@@ -43,6 +41,8 @@ Testing on
compile with tcc
compile with clang
+ compile 32 bit tests - clang and gcc
+
configure --disable-lint
configure --disable-nls
configure --with-whiny-user-strftime
diff --git a/Makefile.am b/Makefile.am
index a8acdc48..6e5715d7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
#
# Makefile.am --- automake input file for gawk
#
-# Copyright (C) 2000-2013 the Free Software Foundation, Inc.
+# Copyright (C) 2000-2014 the Free Software Foundation, Inc.
#
# This file is part of GAWK, the GNU implementation of the
# AWK Programming Language.
diff --git a/Makefile.in b/Makefile.in
index 4fed13ff..2abf5b46 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -17,7 +17,7 @@
#
# Makefile.am --- automake input file for gawk
#
-# Copyright (C) 2000-2013 the Free Software Foundation, Inc.
+# Copyright (C) 2000-2014 the Free Software Foundation, Inc.
#
# This file is part of GAWK, the GNU implementation of the
# AWK Programming Language.
diff --git a/NEWS b/NEWS
index fe841916..fab31af4 100644
--- a/NEWS
+++ b/NEWS
@@ -20,7 +20,7 @@ Changes from 4.1.0 to 4.1.1
---------------------------
1. The "stat" extension now includes a "devbsize" element which indicates
- the units for the "nblocks" element
+ the units for the "nblocks" element.
2. The extension facility now works on MinGW. Many of the extensions can be
built and used directly.
@@ -41,14 +41,26 @@ Changes from 4.1.0 to 4.1.1
libtool 2.4.2.418.
10. The configure script now accepts a --disable-extensions option,
-which disables checking for and building the extensions.
+ which disables checking for and building the extensions.
11. The VMS port has been considerably improved. In particular config.h
-is now generated by a DCL script. Also, the extension facility works
-and several of the extensions can be built and used. Currently, the
-extension facility only works on Alpha and Itanium.
+ is now generated by a DCL script. Also, the extension facility works
+ and several of the extensions can be built and used. Currently, the
+ extension facility only works on Alpha and Itanium.
-XXX. A number of bugs have been fixed. See the ChangeLog.
+12. The API now provides functions pointers for malloc(), calloc(),
+ realloc() and free(), to insure that the same memory allocation
+ functions are always used. This bumps the minor version by one.
+
+13. The printf quote flag now works correctly in locales with a different
+ decimal point character but without a thousands separator character.
+ If the thousands separator is a string, it will be correctly added
+ to decimal numbers.
+
+14. The readfile extension now has an input parser that will read whole
+ files as a single record.
+
+15. A number of bugs have been fixed. See the ChangeLog.
Changes from 4.0.2 to 4.1.0
---------------------------
diff --git a/README b/README
index 85127f45..028637ec 100644
--- a/README
+++ b/README
@@ -7,19 +7,21 @@
README:
-This is GNU Awk 4.1.0. It is upwardly compatible with Brian Kernighan's
+This is GNU Awk 4.1.1. It is upwardly compatible with Brian Kernighan's
version of Unix awk. It is almost completely compliant with the
2008 POSIX 1003.1 standard for awk. (See the note below about POSIX.)
-This is a major new 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. Changes in this
-version are summarized in the NEWS file.
+Work to be done is described briefly in the TODO file, which is available
+only in the 'master' branch in the Git repo.
+
+Changes in this version are summarized in the NEWS file.
Read the file POSIX.STD for a discussion of issues where the standard
says one thing but gawk does something different.
-To format the documentation with TeX, use at least version 2013-03-19.11
+To format the documentation with TeX, use at least version 2014-03-18.17
of texinfo.tex. There is a usable copy of texinfo.tex in the doc directory.
INSTALLATION:
@@ -45,9 +47,12 @@ Automake.
After successful compilation, do `make check' to run the test suite.
There should be no output from the `cmp' invocations except in the
cases where there are small differences in floating point values, and
-possibly in the case of strftime. Several of the tests ignore errors
-on purpose; those are not a problem. If there are other differences,
-please investigate and report the problem.
+possibly in the case of strftime. There may be differences based on
+installed (or not installed) locales and the quality of multibyte
+character support on your system.
+
+Several of the tests ignore errors on purpose; those are not a problem.
+If there are other differences, please investigate and report the problem.
PRINTING THE MANUAL
@@ -65,7 +70,7 @@ the section in the manual on reporting bugs. Note that comp.lang.awk
is about the worst place to post a gawk bug report. Please, use the
mechanisms outlined in the manual.
-Email should be sent to bug-gawk@gnu.org. This is now a separate mailing
+Email should be sent to bug-gawk@gnu.org. This is a separate mailing
list at GNU Central. The advantage to using this address is that bug
reports are archived at GNU Central.
diff --git a/README_d/ChangeLog b/README_d/ChangeLog
index a31eca7c..6bc828d9 100644
--- a/README_d/ChangeLog
+++ b/README_d/ChangeLog
@@ -1,3 +1,11 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
+2014-04-02 Arnold D. Robbins <arnold@skeeve.com>
+
+ * README.gcc-3: New file.
+
2014-01-22 Arnold D. Robbins <arnold@skeeve.com>
* README.solaris: Updated.
diff --git a/README_d/README.gcc-3 b/README_d/README.gcc-3
new file mode 100644
index 00000000..c76a9af7
--- /dev/null
+++ b/README_d/README.gcc-3
@@ -0,0 +1,11 @@
+Wed Apr 2 21:29:17 IDT 2014
+============================
+
+I have had a report that on a GNU/Linux system using gcc 3.3.6 (32 bit)
+that the aasort test fails. Compiling without -O builds a gawk that
+does pass all tests.
+
+Caveat Emptor.
+
+Arnold Robbins
+arnold@skeeve.com
diff --git a/README_d/README.pc b/README_d/README.pc
index 32a81fc1..63ba473e 100644
--- a/README_d/README.pc
+++ b/README_d/README.pc
@@ -18,7 +18,7 @@ The `configure' step takes a long time, but works otherwise.
******************************** N O T E *******************************
* The `|&' operator only works when gawk is compiled for Cygwin or for *
-* MinGW. Neither * socket support nor two-way pipes work in any other *
+* MinGW. Neither socket support nor two-way pipes work in any other *
* Windows environment! *
************************************************************************
diff --git a/array.c b/array.c
index 37894da5..682b8ddb 100644
--- a/array.c
+++ b/array.c
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 1986, 1988, 1989, 1991-2013 the Free Software Foundation, Inc.
+ * Copyright (C) 1986, 1988, 1989, 1991-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -1279,7 +1279,7 @@ assoc_list(NODE *symbol, const char *sort_str, sort_context_t sort_ctxt)
INSTRUCTION *code = NULL;
extern int currule;
int save_rule = 0;
- assoc_kind_t assoc_kind = 0;
+ assoc_kind_t assoc_kind = ANONE;
elem_size = 1;
diff --git a/awk.h b/awk.h
index bba5e7a8..6d71a5d1 100644
--- a/awk.h
+++ b/awk.h
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 1986, 1988, 1989, 1991-2013 the Free Software Foundation, Inc.
+ * Copyright (C) 1986, 1988, 1989, 1991-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -1328,6 +1328,7 @@ if (--val) \
/* array.c */
typedef enum { SORTED_IN = 1, ASORT, ASORTI } sort_context_t;
typedef enum {
+ ANONE = 0x00, /* "unused" value */
AINDEX = 0x001, /* list of indices */
AVALUE = 0x002, /* list of values */
AINUM = 0x004, /* numeric index */
@@ -1372,7 +1373,7 @@ extern const char *getfname(NODE *(*)(int));
extern NODE *stopme(int nargs);
extern void shadow_funcs(void);
extern int check_special(const char *name);
-extern SRCFILE *add_srcfile(int stype, char *src, SRCFILE *curr, bool *already_included, int *errcode);
+extern SRCFILE *add_srcfile(enum srctype stype, char *src, SRCFILE *curr, bool *already_included, int *errcode);
extern void register_deferred_variable(const char *name, NODE *(*load_func)(void));
extern int files_are_same(char *path, SRCFILE *src);
extern void valinfo(NODE *n, Func_print print_func, FILE *fp);
diff --git a/awkgram.c b/awkgram.c
index 622799dc..192383dd 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -4687,7 +4687,7 @@ parse_program(INSTRUCTION **pcode)
/* do_add_srcfile --- add one item to srcfiles */
static SRCFILE *
-do_add_srcfile(int stype, char *src, char *path, SRCFILE *thisfile)
+do_add_srcfile(enum srctype stype, char *src, char *path, SRCFILE *thisfile)
{
SRCFILE *s;
@@ -4709,7 +4709,7 @@ do_add_srcfile(int stype, char *src, char *path, SRCFILE *thisfile)
*/
SRCFILE *
-add_srcfile(int stype, char *src, SRCFILE *thisfile, bool *already_included, int *errcode)
+add_srcfile(enum srctype stype, char *src, SRCFILE *thisfile, bool *already_included, int *errcode)
{
SRCFILE *s;
struct stat sbuf;
diff --git a/awkgram.y b/awkgram.y
index 30ac56a9..5e184c48 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -2348,7 +2348,7 @@ parse_program(INSTRUCTION **pcode)
/* do_add_srcfile --- add one item to srcfiles */
static SRCFILE *
-do_add_srcfile(int stype, char *src, char *path, SRCFILE *thisfile)
+do_add_srcfile(enum srctype stype, char *src, char *path, SRCFILE *thisfile)
{
SRCFILE *s;
@@ -2370,7 +2370,7 @@ do_add_srcfile(int stype, char *src, char *path, SRCFILE *thisfile)
*/
SRCFILE *
-add_srcfile(int stype, char *src, SRCFILE *thisfile, bool *already_included, int *errcode)
+add_srcfile(enum srctype stype, char *src, SRCFILE *thisfile, bool *already_included, int *errcode)
{
SRCFILE *s;
struct stat sbuf;
diff --git a/awklib/ChangeLog b/awklib/ChangeLog
index e47d37b2..6ef0bbde 100644
--- a/awklib/ChangeLog
+++ b/awklib/ChangeLog
@@ -1,3 +1,12 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
+2014-03-17 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 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 <arnold@skeeve.com>
* 4.1.0: Release tar ball made.
diff --git a/awklib/Makefile.am b/awklib/Makefile.am
index b10fa644..6ffbea81 100644
--- a/awklib/Makefile.am
+++ b/awklib/Makefile.am
@@ -62,6 +62,7 @@ uninstall-local:
clean-local:
rm -f $(AUXAWK) igawk *.exe
rm -fr eg.old
+ rm -fr grcat.dSYM pwcat.dSYM
$(srcdir)/stamp-eg: $(srcdir)/../doc/gawk.texi $(srcdir)/../doc/gawkinet.texi
cd $(srcdir) && \
diff --git a/awklib/Makefile.in b/awklib/Makefile.in
index 15e6c24d..d32ae04a 100644
--- a/awklib/Makefile.in
+++ b/awklib/Makefile.in
@@ -715,6 +715,7 @@ uninstall-local:
clean-local:
rm -f $(AUXAWK) igawk *.exe
rm -fr eg.old
+ rm -fr grcat.dSYM pwcat.dSYM
$(srcdir)/stamp-eg: $(srcdir)/../doc/gawk.texi $(srcdir)/../doc/gawkinet.texi
cd $(srcdir) && \
diff --git a/awklib/eg/data/BBS-list b/awklib/eg/data/BBS-list
deleted file mode 100644
index 1007417f..00000000
--- a/awklib/eg/data/BBS-list
+++ /dev/null
@@ -1,11 +0,0 @@
-aardvark 555-5553 1200/300 B
-alpo-net 555-3412 2400/1200/300 A
-barfly 555-7685 1200/300 A
-bites 555-1675 2400/1200/300 A
-camelot 555-0542 300 C
-core 555-2912 1200/300 C
-fooey 555-1234 2400/1200/300 B
-foot 555-6699 1200/300 B
-macfoo 555-6480 1200/300 A
-sdace 555-3430 2400/1200/300 A
-sabafoo 555-2127 1200/300 C
diff --git a/awklib/eg/data/mail-list b/awklib/eg/data/mail-list
new file mode 100644
index 00000000..37ff350a
--- /dev/null
+++ b/awklib/eg/data/mail-list
@@ -0,0 +1,11 @@
+Amelia 555-5553 amelia.zodiacusque@gmail.com F
+Anthony 555-3412 anthony.asserturo@hotmail.com A
+Becky 555-7685 becky.algebrarum@gmail.com A
+Bill 555-1675 bill.drowning@hotmail.com A
+Broderick 555-0542 broderick.aliquotiens@yahoo.com R
+Camilla 555-2912 camilla.infusarum@skynet.be R
+Fabius 555-1234 fabius.undevicesimus@ucb.edu F
+Julie 555-6699 julie.perscrutabor@skeeve.com F
+Martin 555-6480 martin.codicibus@hotmail.com A
+Samuel 555-3430 samuel.lanceolis@shu.edu A
+Jean-Paul 555-2127 jeanpaul.campanorum@nyu.edu R
diff --git a/awklib/eg/lib/quicksort.awk b/awklib/eg/lib/quicksort.awk
index 7a635d6f..43357ac6 100644
--- a/awklib/eg/lib/quicksort.awk
+++ b/awklib/eg/lib/quicksort.awk
@@ -1,8 +1,9 @@
# quicksort.awk --- Quicksort algorithm, with user-supplied
# comparison function
#
-# Arnold Robbins, arnoldskeeve.com, Public Domain
+# Arnold Robbins, arnold@skeeve.com, Public Domain
# January 2009
+
# quicksort --- C.A.R. Hoare's quick sort algorithm. See Wikipedia
# or almost any algorithms or computer science text
#
diff --git a/awklib/eg/prog/cut.awk b/awklib/eg/prog/cut.awk
index 16b4bdaa..1399411e 100644
--- a/awklib/eg/prog/cut.awk
+++ b/awklib/eg/prog/cut.awk
@@ -86,7 +86,7 @@ function set_fieldlist( n, m, i, j, k, f, g)
}
nfields = j - 1
}
-function set_charlist( field, i, j, f, g, t,
+function set_charlist( field, i, j, f, g, n, m, t,
filler, last, len)
{
field = 1 # count total fields
diff --git a/builtin.c b/builtin.c
index b3e2962b..875b3e5c 100644
--- a/builtin.c
+++ b/builtin.c
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 1986, 1988, 1989, 1991-2013 the Free Software Foundation, Inc.
+ * Copyright (C) 1986, 1988, 1989, 1991-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -719,7 +719,7 @@ format_tree(
mpz_ptr zi;
mpfr_ptr mf;
#endif
- enum { MP_INT_WITH_PREC = 1, MP_INT_WITHOUT_PREC, MP_FLOAT } fmt_type;
+ enum { MP_NONE = 0, MP_INT_WITH_PREC = 1, MP_INT_WITHOUT_PREC, MP_FLOAT } fmt_type;
static const char sp[] = " ";
static const char zero_string[] = "0";
@@ -817,7 +817,7 @@ format_tree(
mf = NULL;
zi = NULL;
#endif
- fmt_type = 0;
+ fmt_type = MP_NONE;
lj = alt = big_flag = bigbig_flag = small_flag = false;
fill = sp;
@@ -994,9 +994,7 @@ check_pos:
goto check_pos;
case '\'':
#if defined(HAVE_LOCALE_H)
- /* allow quote_flag if there is a thousands separator. */
- if (loc.thousands_sep[0] != '\0')
- quote_flag = true;
+ quote_flag = true;
goto check_pos;
#else
goto retry;
@@ -1196,6 +1194,9 @@ out0:
}
if (i < 1)
goto out_of_range;
+#if defined(HAVE_LOCALE_H)
+ quote_flag = (quote_flag && loc.thousands_sep[0] != 0);
+#endif
chp = &cpbufs[1].buf[i-1];
ii = jj = 0;
do {
@@ -1203,8 +1204,14 @@ out0:
chp--; i--;
#if defined(HAVE_LOCALE_H)
if (quote_flag && loc.grouping[ii] && ++jj == loc.grouping[ii]) {
- if (i) /* only add if more digits coming */
- PREPEND(loc.thousands_sep[0]); /* XXX - assumption it's one char */
+ if (i) { /* only add if more digits coming */
+ int k;
+ const char *ts = loc.thousands_sep;
+
+ for (k = strlen(ts) - 1; k >= 0; k--) {
+ PREPEND(ts[k]);
+ }
+ }
if (loc.grouping[ii+1] == 0)
jj = 0; /* keep using current val in loc.grouping[ii] */
else if (loc.grouping[ii+1] == CHAR_MAX)
@@ -1360,6 +1367,9 @@ mpf1:
#ifdef HAVE_MPFR
int0:
#endif
+#if defined(HAVE_LOCALE_H)
+ quote_flag = (quote_flag && loc.thousands_sep[0] != 0);
+#endif
/*
* When to fill with zeroes is of course not simple.
* First: No zero fill if left-justifying.
@@ -1378,8 +1388,14 @@ mpf1:
uval /= base;
#if defined(HAVE_LOCALE_H)
if (base == 10 && quote_flag && loc.grouping[ii] && ++jj == loc.grouping[ii]) {
- if (uval) /* only add if more digits coming */
- PREPEND(loc.thousands_sep[0]); /* XXX --- assumption it's one char */
+ if (uval) { /* only add if more digits coming */
+ int k;
+ const char *ts = loc.thousands_sep;
+
+ for (k = strlen(ts) - 1; k >= 0; k--) {
+ PREPEND(ts[k]);
+ }
+ }
if (loc.grouping[ii+1] == 0)
jj = 0; /* keep using current val in loc.grouping[ii] */
else if (loc.grouping[ii+1] == CHAR_MAX)
@@ -1999,10 +2015,10 @@ do_mktime(int nargs)
& hour, & minute, & second,
& dst);
- if (do_lint /* Ready? Set! Go: */
- && ( (second < 0 || second > 60)
- || (minute < 0 || minute > 60)
- || (hour < 0 || hour > 23)
+ if ( do_lint /* Ready? Set! Go: */
+ && ( (second < 0 || second > 60)
+ || (minute < 0 || minute > 59)
+ || (hour < 0 || hour > 23) /* FIXME ISO 8601 allows 24 ? */
|| (day < 1 || day > 31)
|| (month < 1 || month > 12) ))
lintwarn(_("mktime: at least one of the values is out of the default range"));
diff --git a/cmd.h b/cmd.h
index 5a5fd294..6fca6d0a 100644
--- a/cmd.h
+++ b/cmd.h
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 2004, 2010, 2011, 2013 the Free Software Foundation, Inc.
+ * Copyright (C) 2004, 2010, 2011, 2013, 2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -109,7 +109,8 @@ enum argtype {
/* non-number arguments to commands */
enum nametypeval {
- A_ARGS = 1,
+ A_NONE = 0,
+ A_ARGS,
A_BREAK,
A_DEL,
A_DISPLAY,
diff --git a/command.c b/command.c
index c4fe1e48..2d4ccf8c 100644
--- a/command.c
+++ b/command.c
@@ -2667,7 +2667,7 @@ struct argtoken argtab[] = {
{ "sources", D_info, A_SOURCES },
{ "variables", D_info, A_VARIABLES },
{ "watch", D_info, A_WATCH },
- { NULL, D_illegal, 0 },
+ { NULL, D_illegal, A_NONE },
};
diff --git a/command.y b/command.y
index 742b185a..576af159 100644
--- a/command.y
+++ b/command.y
@@ -916,7 +916,7 @@ struct argtoken argtab[] = {
{ "sources", D_info, A_SOURCES },
{ "variables", D_info, A_VARIABLES },
{ "watch", D_info, A_WATCH },
- { NULL, D_illegal, 0 },
+ { NULL, D_illegal, A_NONE },
};
diff --git a/configure b/configure
index a9bf0805..078920ae 100755
--- a/configure
+++ b/configure
@@ -8102,6 +8102,22 @@ $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h
fi
+for ac_header in arpa/inet.h fcntl.h limits.h locale.h libintl.h mcheck.h \
+ netdb.h netinet/in.h stdarg.h stddef.h string.h \
+ sys/ioctl.h sys/param.h sys/socket.h sys/time.h unistd.h \
+ termios.h stropts.h wchar.h wctype.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if ${ac_cv_header_stdc+:} false; then :
@@ -8383,22 +8399,6 @@ $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
fi
-for ac_header in arpa/inet.h fcntl.h limits.h locale.h libintl.h mcheck.h \
- netdb.h netinet/in.h stdarg.h stddef.h string.h \
- sys/ioctl.h sys/param.h sys/socket.h sys/time.h unistd.h \
- termios.h stropts.h wchar.h wctype.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
if test "$ac_cv_header_string_h" = yes
then
@@ -10068,9 +10068,7 @@ if test "x$enable_extensions" != "xno"; then
extensions_supported=no
case $host_os in
- mirbsd*)
- : ;;
- openedition*) # OS/390 z/OS POSIX layer
+ mirbsd* | openedition*) # OS/390 z/OS POSIX layer
cat << \EOF > extension/Makefile
all dist check clean distclean install uninstall distcheck:
@exit 0
@@ -10469,6 +10467,10 @@ $as_echo "$_found_readline" >&6; }
LIBS=$_readline_save_libs
if test $_found_readline = yes ; then
+ case $host_os in
+ *bsd* ) _combo="$_combo -ltermcap"
+ ;;
+ esac
$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h
@@ -10614,41 +10616,6 @@ _ACEOF
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
-$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if ${ac_cv_header_time+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-
-int
-main ()
-{
-if ((struct tm *) 0)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_time=yes
-else
- ac_cv_header_time=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
-$as_echo "$ac_cv_header_time" >&6; }
-if test $ac_cv_header_time = yes; then
-
-$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
-
-fi
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
if ${ac_cv_struct_tm+:} false; then :
diff --git a/configure.ac b/configure.ac
index ee100054..9c39db76 100644
--- a/configure.ac
+++ b/configure.ac
@@ -137,14 +137,14 @@ AM_LANGINFO_CODESET
gt_LC_MESSAGES
dnl checks for header files
-AC_HEADER_STDC
-AC_HEADER_STDBOOL
-AC_HEADER_SYS_WAIT
-AC_HEADER_TIME
AC_CHECK_HEADERS(arpa/inet.h fcntl.h limits.h locale.h libintl.h mcheck.h \
netdb.h netinet/in.h stdarg.h stddef.h string.h \
sys/ioctl.h sys/param.h sys/socket.h sys/time.h unistd.h \
termios.h stropts.h wchar.h wctype.h)
+AC_HEADER_STDC
+AC_HEADER_STDBOOL
+AC_HEADER_SYS_WAIT
+AC_HEADER_TIME
if test "$ac_cv_header_string_h" = yes
then
@@ -290,9 +290,7 @@ if test "x$enable_extensions" != "xno"; then
dnl On MirBSD (and probably other systems), don't even try.
case $host_os in
- mirbsd*)
- : ;;
- openedition*) # OS/390 z/OS POSIX layer
+ mirbsd* | openedition*) # OS/390 z/OS POSIX layer
cat << \EOF > extension/Makefile
all dist check clean distclean install uninstall distcheck:
@exit 0
@@ -380,7 +378,6 @@ GNUPG_CHECK_MPFR
dnl checks for structure members
AC_CHECK_MEMBERS([struct stat.st_blksize])
-AC_HEADER_TIME
AC_STRUCT_TM
AC_STRUCT_TIMEZONE
diff --git a/debug.c b/debug.c
index 9903a376..c4c48154 100644
--- a/debug.c
+++ b/debug.c
@@ -4852,7 +4852,7 @@ do_commands(CMDARG *arg, int cmd)
struct commands_item *c;
if (cmd == D_commands) {
- int num, type;
+ int num = -1, type;
if (arg == NULL)
type = has_break_or_watch_point(&num, true);
else {
diff --git a/dfa.c b/dfa.c
index 19ca737f..378305df 100644
--- a/dfa.c
+++ b/dfa.c
@@ -43,8 +43,15 @@
#include "missing_d/gawkbool.h"
#endif /* HAVE_STDBOOL_H */
-#include "dfa.h"
-
+/* Gawk doesn't use Gnulib, so don't assume that setlocale and
+ static_assert are present. */
+#ifndef LC_ALL
+# define setlocale(category, locale) NULL
+#endif
+#ifndef static_assert
+# define static_assert(cond, diagnostic) \
+ extern int (*foo (void)) [!!sizeof (struct { int foo: (cond) ? 8 : -1; })]
+#endif
#define STREQ(a, b) (strcmp (a, b) == 0)
@@ -84,6 +91,8 @@
#include "xalloc.h"
+#include "dfa.h"
+
#ifdef GAWK
static int
is_blank (int c)
@@ -130,7 +139,7 @@ typedef unsigned int charclass[CHARCLASS_INTS];
/* Convert a possibly-signed character to an unsigned character. This is
a bit safer than casting to unsigned char, since it catches some type
errors that the cast doesn't. */
-static inline unsigned char
+static unsigned char
to_uchar (char ch)
{
return ch;
@@ -219,7 +228,8 @@ enum
EMPTY = NOTCHAR, /* EMPTY is a terminal symbol that matches
the empty string. */
- BACKREF, /* BACKREF is generated by \<digit>; it
+ BACKREF, /* BACKREF is generated by \<digit>
+ or by any other construct that
is not completely handled. If the scanner
detects a transition on backref, it returns
a kind of "semi-success" indicating that
@@ -402,6 +412,14 @@ struct dfa
size_t nmultibyte_prop;
int *multibyte_prop;
+#if MBS_SUPPORT
+ /* A table indexed by byte values that contains the corresponding wide
+ character (if any) for that byte. WEOF means the byte is the
+ leading byte of a multibyte character. Invalid and null bytes are
+ mapped to themselves. */
+ wint_t mbrtowc_cache[NOTCHAR];
+#endif
+
/* Array of the bracket expression in the DFA. */
struct mb_char_classes *mbcsets;
size_t nmbcsets;
@@ -504,6 +522,64 @@ static void regexp (void);
} \
while (false)
+static void
+dfambcache (struct dfa *d)
+{
+#if MBS_SUPPORT
+ int i;
+ for (i = CHAR_MIN; i <= CHAR_MAX; ++i)
+ {
+ char c = i;
+ unsigned char uc = i;
+ mbstate_t s = { 0 };
+ wchar_t wc;
+ wint_t wi;
+ switch (mbrtowc (&wc, &c, 1, &s))
+ {
+ default: wi = wc; break;
+ case (size_t) -2: wi = WEOF; break;
+ case (size_t) -1: wi = uc; break;
+ }
+ d->mbrtowc_cache[uc] = wi;
+ }
+#endif
+}
+
+#if MBS_SUPPORT
+/* Given the dfa D, store into *PWC the result of converting the
+ leading bytes of the multibyte buffer S of length N bytes, updating
+ the conversion state in *MBS. On conversion error, convert just a
+ single byte as-is. Return the number of bytes converted.
+
+ This differs from mbrtowc (PWC, S, N, MBS) as follows:
+
+ * Extra arg D, containing an mbrtowc_cache for speed.
+ * N must be at least 1.
+ * S[N - 1] must be a sentinel byte.
+ * Shift encodings are not supported.
+ * The return value is always in the range 1..N.
+ * *MBS is always valid afterwards.
+ * *PWC is always set to something. */
+static size_t
+mbs_to_wchar (struct dfa *d, wchar_t *pwc, char const *s, size_t n,
+ mbstate_t *mbs)
+{
+ unsigned char uc = s[0];
+ wint_t wc = d->mbrtowc_cache[uc];
+
+ if (wc == WEOF)
+ {
+ size_t nbytes = mbrtowc (pwc, s, n, mbs);
+ if (0 < nbytes && nbytes < (size_t) -2)
+ return nbytes;
+ memset (mbs, 0, sizeof *mbs);
+ wc = uc;
+ }
+
+ *pwc = wc;
+ return 1;
+}
+#endif
#ifdef DEBUG
@@ -731,67 +807,39 @@ dfasyntax (reg_syntax_t bits, int fold, unsigned char eol)
this may happen when folding case in weird Turkish locales where
dotless i/dotted I are not included in the chosen character set.
Return whether a bit was set in the charclass. */
-#if MBS_SUPPORT
static bool
setbit_wc (wint_t wc, charclass c)
{
+#if MBS_SUPPORT
int b = wctob (wc);
if (b == EOF)
return false;
setbit (b, c);
return true;
-}
-
-/* Set a bit in the charclass for the given single byte character,
- if it is valid in the current character set. */
-static void
-setbit_c (int b, charclass c)
-{
- /* Do nothing if b is invalid in this character set. */
- if (MB_CUR_MAX > 1 && btowc (b) == WEOF)
- return;
- setbit (b, c);
-}
#else
-# define setbit_c setbit
-static inline bool
-setbit_wc (wint_t wc, charclass c)
-{
abort ();
/*NOTREACHED*/ return false;
-}
#endif
+}
-/* Like setbit_c, but if case is folded, set both cases of a letter. For
- MB_CUR_MAX > 1, the resulting charset is only used as an optimization,
- and the caller takes care of setting the appropriate field of struct
- mb_char_classes. */
+/* Set a bit for B and its case variants in the charclass C.
+ MB_CUR_MAX must be 1. */
static void
setbit_case_fold_c (int b, charclass c)
{
- if (MB_CUR_MAX > 1)
- {
- wint_t wc = btowc (b);
- if (wc == WEOF)
- return;
- setbit (b, c);
- if (case_fold && iswalpha (wc))
- setbit_wc (iswupper (wc) ? towlower (wc) : towupper (wc), c);
- }
- else
- {
- setbit (b, c);
- if (case_fold && isalpha (b))
- setbit_c (isupper (b) ? tolower (b) : toupper (b), c);
- }
+ int ub = toupper (b);
+ int i;
+ for (i = 0; i < NOTCHAR; i++)
+ if (toupper (i) == ub)
+ setbit (i, c);
}
/* UTF-8 encoding allows some optimizations that we can't otherwise
assume in a multibyte encoding. */
-static inline int
+int
using_utf8 (void)
{
static int utf8 = -1;
@@ -811,6 +859,46 @@ using_utf8 (void)
return utf8;
}
+/* Return true if the current locale is known to be a unibyte locale
+ without multicharacter collating sequences and where range
+ comparisons simply use the native encoding. These locales can be
+ processed more efficiently. */
+
+static bool
+using_simple_locale (void)
+{
+ /* True if the native character set is known to be compatible with
+ the C locale. The following test isn't perfect, but it's good
+ enough in practice, as only ASCII and EBCDIC are in common use
+ and this test correctly accepts ASCII and rejects EBCDIC. */
+ enum { native_c_charset =
+ ('\b' == 8 && '\t' == 9 && '\n' == 10 && '\v' == 11 && '\f' == 12
+ && '\r' == 13 && ' ' == 32 && '!' == 33 && '"' == 34 && '#' == 35
+ && '%' == 37 && '&' == 38 && '\'' == 39 && '(' == 40 && ')' == 41
+ && '*' == 42 && '+' == 43 && ',' == 44 && '-' == 45 && '.' == 46
+ && '/' == 47 && '0' == 48 && '9' == 57 && ':' == 58 && ';' == 59
+ && '<' == 60 && '=' == 61 && '>' == 62 && '?' == 63 && 'A' == 65
+ && 'Z' == 90 && '[' == 91 && '\\' == 92 && ']' == 93 && '^' == 94
+ && '_' == 95 && 'a' == 97 && 'z' == 122 && '{' == 123 && '|' == 124
+ && '}' == 125 && '~' == 126)
+ };
+
+ if (! native_c_charset || MB_CUR_MAX > 1)
+ return false;
+ else
+ {
+ static int unibyte_c = -1;
+ if (unibyte_c < 0)
+ {
+ char const *locale = setlocale (LC_ALL, NULL);
+ unibyte_c = (!locale
+ || STREQ (locale, "C")
+ || STREQ (locale, "POSIX"));
+ }
+ return unibyte_c;
+ }
+}
+
/* Lexical analyzer. All the dross that deals with the obnoxious
GNU Regex syntax bits is located here. The poor, suffering
reader is referred to the GNU Regex documentation for the
@@ -827,7 +915,7 @@ static int minrep, maxrep; /* Repeat counts for {m,n}. */
static int cur_mb_len = 1; /* Length of the multibyte representation of
wctok. */
/* These variables are used only if (MB_CUR_MAX > 1). */
-static mbstate_t mbs; /* Mbstate for mbrlen. */
+static mbstate_t mbs; /* mbstate for mbrtowc. */
static wchar_t wctok; /* Wide character representation of the current
multibyte character. */
static unsigned char *mblen_buf;/* Correspond to the input buffer in dfaexec.
@@ -864,32 +952,18 @@ static unsigned char const *buf_end; /* reference to end in dfaexec. */
else \
{ \
wchar_t _wc; \
- cur_mb_len = mbrtowc (&_wc, lexptr, lexleft, &mbs); \
- if (cur_mb_len <= 0) \
- { \
- cur_mb_len = 1; \
- --lexleft; \
- (wc) = (c) = to_uchar (*lexptr++); \
- } \
- else \
- { \
- lexptr += cur_mb_len; \
- lexleft -= cur_mb_len; \
- (wc) = _wc; \
- (c) = wctob (wc); \
- } \
+ size_t nbytes = mbs_to_wchar (dfa, &_wc, lexptr, lexleft, &mbs); \
+ cur_mb_len = nbytes; \
+ (wc) = _wc; \
+ (c) = nbytes == 1 ? to_uchar (*lexptr) : EOF; \
+ lexptr += nbytes; \
+ lexleft -= nbytes; \
} \
} while (0)
-# define FETCH(c, eoferr) \
- do { \
- wint_t wc; \
- FETCH_WC (c, wc, eoferr); \
- } while (0)
-
#else
/* Note that characters become unsigned here. */
-# define FETCH(c, eoferr) \
+# define FETCH_WC(c, unused, eoferr) \
do { \
if (! lexleft) \
{ \
@@ -902,14 +976,56 @@ static unsigned char const *buf_end; /* reference to end in dfaexec. */
--lexleft; \
} while (0)
-# define FETCH_WC(c, unused, eoferr) FETCH (c, eoferr)
-
#endif /* MBS_SUPPORT */
#ifndef MIN
# define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif
+/* The set of wchar_t values C such that there's a useful locale
+ somewhere where C != towupper (C) && C != towlower (towupper (C)).
+ For example, 0x00B5 (U+00B5 MICRO SIGN) is in this table, because
+ towupper (0x00B5) == 0x039C (U+039C GREEK CAPITAL LETTER MU), and
+ towlower (0x039C) == 0x03BC (U+03BC GREEK SMALL LETTER MU). */
+static short const lonesome_lower[] =
+ {
+ 0x00B5, 0x0131, 0x017F, 0x01C5, 0x01C8, 0x01CB, 0x01F2, 0x0345,
+ 0x03C2, 0x03D0, 0x03D1, 0x03D5, 0x03D6, 0x03F0, 0x03F1,
+
+ /* U+03F2 GREEK LUNATE SIGMA SYMBOL lacks a specific uppercase
+ counterpart in locales predating Unicode 4.0.0 (April 2003). */
+ 0x03F2,
+
+ 0x03F5, 0x1E9B, 0x1FBE,
+ };
+
+static_assert ((sizeof lonesome_lower / sizeof *lonesome_lower + 2
+ == CASE_FOLDED_BUFSIZE),
+ "CASE_FOLDED_BUFSIZE is wrong");
+
+/* Find the characters equal to C after case-folding, other than C
+ itself, and store them into FOLDED. Return the number of characters
+ stored. */
+int
+case_folded_counterparts (wchar_t c, wchar_t folded[CASE_FOLDED_BUFSIZE])
+{
+ int i;
+ int n = 0;
+ wint_t uc = towupper (c);
+ wint_t lc = towlower (uc);
+ if (uc != c)
+ folded[n++] = uc;
+ if (lc != uc && lc != c && towupper (lc) == uc)
+ folded[n++] = lc;
+ for (i = 0; i < sizeof lonesome_lower / sizeof *lonesome_lower; i++)
+ {
+ wint_t li = lonesome_lower[i];
+ if (li != lc && li != uc && li != c && towupper (li) == uc)
+ folded[n++] = li;
+ }
+ return n;
+}
+
typedef int predicate (int);
/* The following list maps the names of the Posix named character classes
@@ -928,7 +1044,7 @@ static const struct dfa_ctype prednames[] = {
{"upper", isupper, false},
{"lower", islower, false},
{"digit", isdigit, true},
- {"xdigit", isxdigit, true},
+ {"xdigit", isxdigit, false},
{"space", isspace, false},
{"punct", ispunct, false},
{"alnum", isalnum, false},
@@ -959,6 +1075,10 @@ parse_bracket_exp (void)
int c, c1, c2;
charclass ccl;
+ /* True if this is a bracket expression that dfaexec is known to
+ process correctly. */
+ bool known_bracket_exp = true;
+
/* Used to warn about [:space:].
Bit 0 = first character is a colon.
Bit 1 = last character is a colon.
@@ -1000,6 +1120,7 @@ parse_bracket_exp (void)
{
FETCH_WC (c, wc, _("unbalanced ["));
invert = 1;
+ known_bracket_exp = using_simple_locale ();
}
else
invert = 0;
@@ -1014,16 +1135,14 @@ parse_bracket_exp (void)
we just treat it as a bunch of ordinary characters. We can do
this because we assume regex has checked for syntax errors before
dfa is ever called. */
- if (c == '[' && (syntax_bits & RE_CHAR_CLASSES))
+ if (c == '[')
{
#define MAX_BRACKET_STRING_LEN 32
char str[MAX_BRACKET_STRING_LEN + 1];
FETCH_WC (c1, wc1, _("unbalanced ["));
- /* If pattern contains '[[:', '[[.', or '[[='. */
- if (c1 == ':'
- /* TODO: handle '[[.' and '[[=' also for MB_CUR_MAX == 1. */
- || (MB_CUR_MAX > 1 && (c1 == '.' || c1 == '=')))
+ if ((c1 == ':' && (syntax_bits & RE_CHAR_CLASSES))
+ || c1 == '.' || c1 == '=')
{
size_t len = 0;
for (;;)
@@ -1042,7 +1161,10 @@ parse_bracket_exp (void)
/* Fetch bracket. */
FETCH_WC (c, wc, _("unbalanced ["));
if (c1 == ':')
- /* build character class. */
+ /* Build character class. POSIX allows character
+ classes to match multicharacter collating elements,
+ but the regex code does not support that, so do not
+ worry about that possibility. */
{
char const *class
= (case_fold && (STREQ (str, "upper")
@@ -1064,30 +1186,11 @@ parse_bracket_exp (void)
for (c2 = 0; c2 < NOTCHAR; ++c2)
if (pred->func (c2))
- setbit_case_fold_c (c2, ccl);
+ setbit (c2, ccl);
}
+ else
+ known_bracket_exp = false;
- else if (MBS_SUPPORT && (c1 == '=' || c1 == '.'))
- {
- char *elem = xmemdup (str, len + 1);
-
- if (c1 == '=')
- /* build equivalence class. */
- {
- REALLOC_IF_NECESSARY (work_mbc->equivs,
- equivs_al, work_mbc->nequivs + 1);
- work_mbc->equivs[work_mbc->nequivs++] = elem;
- }
-
- if (c1 == '.')
- /* build collating element. */
- {
- REALLOC_IF_NECESSARY (work_mbc->coll_elems,
- coll_elems_al,
- work_mbc->ncoll_elems + 1);
- work_mbc->coll_elems[work_mbc->ncoll_elems++] = elem;
- }
- }
colon_warning_state |= 8;
/* Fetch new lookahead character. */
@@ -1109,105 +1212,96 @@ parse_bracket_exp (void)
/* build range characters. */
{
FETCH_WC (c2, wc2, _("unbalanced ["));
- if (c2 == ']')
+
+ /* A bracket expression like [a-[.aa.]] matches an unknown set.
+ Treat it like [-a[.aa.]] while parsing it, and
+ remember that the set is unknown. */
+ if (c2 == '[' && *lexptr == '.')
{
- /* In the case [x-], the - is an ordinary hyphen,
- which is left in c1, the lookahead character. */
- lexptr -= cur_mb_len;
- lexleft += cur_mb_len;
+ known_bracket_exp = false;
+ c2 = ']';
}
- }
- if (c1 == '-' && c2 != ']')
- {
- if (c2 == '\\' && (syntax_bits & RE_BACKSLASH_ESCAPE_IN_LISTS))
- FETCH_WC (c2, wc2, _("unbalanced ["));
-
- if (MB_CUR_MAX > 1)
+ if (c2 != ']')
{
- /* When case folding map a range, say [m-z] (or even [M-z])
- to the pair of ranges, [m-z] [M-Z]. */
- REALLOC_IF_NECESSARY (work_mbc->range_sts,
- range_sts_al, work_mbc->nranges + 1);
- REALLOC_IF_NECESSARY (work_mbc->range_ends,
- range_ends_al, work_mbc->nranges + 1);
- work_mbc->range_sts[work_mbc->nranges] =
- case_fold ? towlower (wc) : (wchar_t) wc;
- work_mbc->range_ends[work_mbc->nranges++] =
- case_fold ? towlower (wc2) : (wchar_t) wc2;
-
- if (case_fold && (iswalpha (wc) || iswalpha (wc2)))
+ if (c2 == '\\' && (syntax_bits & RE_BACKSLASH_ESCAPE_IN_LISTS))
+ FETCH_WC (c2, wc2, _("unbalanced ["));
+
+ if (MB_CUR_MAX > 1)
{
+ /* When case folding map a range, say [m-z] (or even [M-z])
+ to the pair of ranges, [m-z] [M-Z]. Although this code
+ is wrong in multiple ways, it's never used in practice.
+ FIXME: Remove this (and related) unused code. */
REALLOC_IF_NECESSARY (work_mbc->range_sts,
range_sts_al, work_mbc->nranges + 1);
- work_mbc->range_sts[work_mbc->nranges] = towupper (wc);
REALLOC_IF_NECESSARY (work_mbc->range_ends,
range_ends_al, work_mbc->nranges + 1);
- work_mbc->range_ends[work_mbc->nranges++] = towupper (wc2);
- }
- }
- else
- {
-#ifdef GAWK
- c1 = c;
- if (case_fold)
- {
- c1 = tolower (c1);
- c2 = tolower (c2);
+ work_mbc->range_sts[work_mbc->nranges] =
+ case_fold ? towlower (wc) : (wchar_t) wc;
+ work_mbc->range_ends[work_mbc->nranges++] =
+ case_fold ? towlower (wc2) : (wchar_t) wc2;
+
+ if (case_fold && (iswalpha (wc) || iswalpha (wc2)))
+ {
+ REALLOC_IF_NECESSARY (work_mbc->range_sts,
+ range_sts_al, work_mbc->nranges + 1);
+ work_mbc->range_sts[work_mbc->nranges] = towupper (wc);
+ REALLOC_IF_NECESSARY (work_mbc->range_ends,
+ range_ends_al, work_mbc->nranges + 1);
+ work_mbc->range_ends[work_mbc->nranges++] = towupper (wc2);
+ }
}
- for (c = c1; c <= c2; c++)
- setbit_case_fold_c (c, ccl);
-#else
- /* Defer to the system regex library about the meaning
- of range expressions. */
- regex_t re;
- char pattern[6] = { '[', 0, '-', 0, ']', 0 };
- char subject[2] = { 0, 0 };
- c1 = c;
- if (case_fold)
+ else if (using_simple_locale ())
{
- c1 = tolower (c1);
- c2 = tolower (c2);
+ for (c1 = c; c1 <= c2; c1++)
+ setbit (c1, ccl);
+ if (case_fold)
+ {
+ int uc = toupper (c);
+ int uc2 = toupper (c2);
+ for (c1 = 0; c1 < NOTCHAR; c1++)
+ {
+ int uc1 = toupper (c1);
+ if (uc <= uc1 && uc1 <= uc2)
+ setbit (c1, ccl);
+ }
+ }
}
+ else
+ known_bracket_exp = false;
- pattern[1] = c1;
- pattern[3] = c2;
- regcomp (&re, pattern, REG_NOSUB);
- for (c = 0; c < NOTCHAR; ++c)
- {
- if ((case_fold && isupper (c)))
- continue;
- subject[0] = c;
- if (regexec (&re, subject, 0, NULL, 0) != REG_NOMATCH)
- setbit_case_fold_c (c, ccl);
- }
- regfree (&re);
-#endif
+ colon_warning_state |= 8;
+ FETCH_WC (c1, wc1, _("unbalanced ["));
+ continue;
}
- colon_warning_state |= 8;
- FETCH_WC (c1, wc1, _("unbalanced ["));
- continue;
+ /* In the case [x-], the - is an ordinary hyphen,
+ which is left in c1, the lookahead character. */
+ lexptr -= cur_mb_len;
+ lexleft += cur_mb_len;
}
colon_warning_state |= (c == ':') ? 2 : 4;
if (MB_CUR_MAX == 1)
{
- setbit_case_fold_c (c, ccl);
+ if (case_fold)
+ setbit_case_fold_c (c, ccl);
+ else
+ setbit (c, ccl);
continue;
}
- if (case_fold && iswalpha (wc))
+ if (case_fold)
{
- wc = towlower (wc);
- if (!setbit_wc (wc, ccl))
- {
- REALLOC_IF_NECESSARY (work_mbc->chars, chars_al,
- work_mbc->nchars + 1);
- work_mbc->chars[work_mbc->nchars++] = wc;
- }
- wc = towupper (wc);
+ wchar_t folded[CASE_FOLDED_BUFSIZE];
+ int i, n = case_folded_counterparts (wc, folded);
+ REALLOC_IF_NECESSARY (work_mbc->chars, chars_al,
+ work_mbc->nchars + n);
+ for (i = 0; i < n; i++)
+ if (!setbit_wc (folded[i], ccl))
+ work_mbc->chars[work_mbc->nchars++] = folded[i];
}
if (!setbit_wc (wc, ccl))
{
@@ -1221,6 +1315,9 @@ parse_bracket_exp (void)
if (colon_warning_state == 7)
dfawarn (_("character class syntax is [[:space:]], not [:space:]"));
+ if (! known_bracket_exp)
+ return BACKREF;
+
if (MB_CUR_MAX > 1)
{
static charclass zeroclass;
@@ -1256,14 +1353,9 @@ lex (void)
"if (backslash) ...". */
for (i = 0; i < 2; ++i)
{
- if (MB_CUR_MAX > 1)
- {
- FETCH_WC (c, wctok, NULL);
- if ((int) c == EOF)
- goto normal_char;
- }
- else
- FETCH (c, NULL);
+ FETCH_WC (c, wctok, NULL);
+ if (c == (unsigned int) EOF)
+ goto normal_char;
switch (c)
{
@@ -1638,10 +1730,11 @@ addtok (token t)
work_mbc->nchars = 0;
}
- /* UTF-8 allows treating a simple, non-inverted MBCSET like a CSET. */
+ /* If the MBCSET is non-inverted and doesn't include neither
+ character classes including multibyte characters, range
+ expressions, equivalence classes nor collating elements,
+ it can be replaced to a simple CSET. */
if (work_mbc->invert
- || (!using_utf8 () && work_mbc->cset != -1)
- || work_mbc->nchars != 0
|| work_mbc->nch_classes != 0
|| work_mbc->nranges != 0
|| work_mbc->nequivs != 0 || work_mbc->ncoll_elems != 0)
@@ -1656,7 +1749,6 @@ addtok (token t)
that the mbcset is empty now. Do nothing in that case. */
if (work_mbc->cset != -1)
{
- assert (using_utf8 ());
addtok (CSET + work_mbc->cset);
if (need_or)
addtok (OR);
@@ -1680,16 +1772,19 @@ static void
addtok_wc (wint_t wc)
{
unsigned char buf[MB_LEN_MAX];
- mbstate_t s;
+ mbstate_t s = { 0 };
int i;
- memset (&s, 0, sizeof s);
- cur_mb_len = wcrtomb ((char *) buf, wc, &s);
+ size_t stored_bytes = wcrtomb ((char *) buf, wc, &s);
- /* This is merely stop-gap. When cur_mb_len is 0 or negative,
- buf[0] is undefined, yet skipping the addtok_mb call altogether
- can result in heap corruption. */
- if (cur_mb_len <= 0)
- buf[0] = 0;
+ if (stored_bytes != (size_t) -1)
+ cur_mb_len = stored_bytes;
+ else
+ {
+ /* This is merely stop-gap. buf[0] is undefined, yet skipping
+ the addtok_mb call altogether can corrupt the heap. */
+ cur_mb_len = 1;
+ buf[0] = 0;
+ }
addtok_mb (buf[0], cur_mb_len == 1 ? 3 : 1);
for (i = 1; i < cur_mb_len; i++)
@@ -1794,17 +1889,19 @@ add_utf8_anychar (void)
static void
atom (void)
{
- if (0)
- {
- /* empty */
- }
- else if (MBS_SUPPORT && tok == WCHAR)
+ if (MBS_SUPPORT && tok == WCHAR)
{
- addtok_wc (case_fold ? towlower (wctok) : wctok);
- if (case_fold && iswalpha (wctok))
+ addtok_wc (wctok);
+
+ if (case_fold)
{
- addtok_wc (towupper (wctok));
- addtok (OR);
+ wchar_t folded[CASE_FOLDED_BUFSIZE];
+ int i, n = case_folded_counterparts (wctok, folded);
+ for (i = 0; i < n; i++)
+ {
+ addtok_wc (folded[i]);
+ addtok (OR);
+ }
}
tok = lex ();
@@ -3308,43 +3405,26 @@ transit_state (struct dfa *d, state_num s, unsigned char const **pp)
/* Initialize mblen_buf and inputwcs with data from the next line. */
static void
-prepare_wc_buf (const char *begin, const char *end)
+prepare_wc_buf (struct dfa *d, const char *begin, const char *end)
{
#if MBS_SUPPORT
unsigned char eol = eolbyte;
- size_t remain_bytes, i;
+ size_t i;
+ size_t ilim = end - begin + 1;
buf_begin = (unsigned char *) begin;
- remain_bytes = 0;
- for (i = 0; i < end - begin + 1; i++)
+ for (i = 0; i < ilim; i++)
{
- if (remain_bytes == 0)
- {
- remain_bytes
- = mbrtowc (inputwcs + i, begin + i, end - begin - i + 1, &mbs);
- if (remain_bytes < 1
- || remain_bytes == (size_t) -1
- || remain_bytes == (size_t) -2
- || (remain_bytes == 1 && inputwcs[i] == (wchar_t) begin[i]))
- {
- remain_bytes = 0;
- inputwcs[i] = (wchar_t) begin[i];
- mblen_buf[i] = 0;
- if (begin[i] == eol)
- break;
- }
- else
- {
- mblen_buf[i] = remain_bytes;
- remain_bytes--;
- }
- }
- else
+ size_t nbytes = mbs_to_wchar (d, inputwcs + i, begin + i, ilim - i, &mbs);
+ mblen_buf[i] = nbytes - (nbytes == 1);
+ if (begin[i] == eol)
+ break;
+ while (--nbytes != 0)
{
- mblen_buf[i] = remain_bytes;
+ i++;
+ mblen_buf[i] = nbytes;
inputwcs[i] = 0;
- remain_bytes--;
}
}
@@ -3391,7 +3471,7 @@ dfaexec (struct dfa *d, char const *begin, char *end,
MALLOC (mblen_buf, end - begin + 2);
MALLOC (inputwcs, end - begin + 2);
memset (&mbs, 0, sizeof (mbstate_t));
- prepare_wc_buf ((const char *) p, end);
+ prepare_wc_buf (d, (const char *) p, end);
}
for (;;)
@@ -3481,7 +3561,7 @@ dfaexec (struct dfa *d, char const *begin, char *end,
++*count;
if (d->mb_cur_max > 1)
- prepare_wc_buf ((const char *) p, end);
+ prepare_wc_buf (d, (const char *) p, end);
}
/* Check if we've run off the end of the buffer. */
@@ -3600,6 +3680,7 @@ void
dfacomp (char const *s, size_t len, struct dfa *d, int searchflag)
{
dfainit (d);
+ dfambcache (d);
dfaparse (s, len, d);
dfamust (d);
dfaoptimize (d);
diff --git a/dfa.h b/dfa.h
index bacd4894..24fbcbe7 100644
--- a/dfa.h
+++ b/dfa.h
@@ -99,3 +99,13 @@ extern void dfawarn (const char *);
takes a single argument, a NUL-terminated string describing the error.
The user must supply a dfaerror. */
extern _Noreturn void dfaerror (const char *);
+
+extern int using_utf8 (void);
+
+/* Maximum number of characters that can be the case-folded
+ counterparts of a single character, not counting the character
+ itself. This is 1 for towupper, 1 for towlower, and 1 for each
+ entry in LONESOME_LOWER; see dfa.c. */
+enum { CASE_FOLDED_BUFSIZE = 1 + 1 + 19 };
+
+extern int case_folded_counterparts (wchar_t, wchar_t[CASE_FOLDED_BUFSIZE]);
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 52574058..d4f6881b 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,79 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 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 <arnold@skeeve.com>
+
+ * gawktexi.in: Cleanups to docbook, finish math stuff.
+
+2014-03-28 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 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 <arnold@skeeve.com>
+
+ * 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 <eliz@gnu.org>
+
+ * gawktexi.in: First round of massive indexing improvements.
+
+2014-03-27 Antonio Giovanni Colombo <azc100@gmail.com>
+
+ * 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 <arnold@skeeve.com>
+
+ * 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 <arnold@skeeve.com>
+
+ * gawktexi.in: Minor edits to the discussion of the memory allocation
+ functions.
+
+2014-03-08 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * gawktexi.in: Document new extension API functions api_malloc,
+ api_calloc, api_realloc, and api_free.
+
+2014-03-07 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Indexing improvements.
+
+2014-03-02 John E. Malmberg <wb8tyw@qsl.net>
+
+ * gawktexi.in: Remove paragraph about obsolete VMS
+ compilers. Update reference about building PCSI kit.
+
+2014-02-27 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Lots of small fixes throughout, update of
+ profiling output. Finished fixes needed before a release.
+
2014-02-20 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Add a quote to the alarm clock program.
diff --git a/doc/awkcard.in b/doc/awkcard.in
index 610032b7..ca28f0a7 100644
--- a/doc/awkcard.in
+++ b/doc/awkcard.in
@@ -1,7 +1,7 @@
.\" AWK Reference Card --- Arnold Robbins, arnold@skeeve.com
.\"
.\" Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-.\" 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013
+.\" 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013, 2014
.\" Free Software Foundation, Inc.
.\"
.\" Permission is granted to make and distribute verbatim copies of
@@ -100,7 +100,7 @@ Brian Kernighan and Michael Brennan who reviewed it.
\*(CD
.SL
.nf
-\*(FRCopyright \(co 1996\(en2005, 2007, 2009\(en2013
+\*(FRCopyright \(co 1996\(en2005, 2007, 2009\(en2014
Free Software Foundation, Inc.
.nf
.BT
@@ -1493,7 +1493,8 @@ Only has an effect when the field width is wider
than the value to be printed.
T}
\*(CB\*(FC'\*(FR T{
-Use the locale's thousands separator for \*(FC%d\fP, \*(FC%i\fP, and \*(FC%u\fP.\*(CD
+Use the locale's thousands separator and decimal
+point characters.\*(CD
T}
\*(FIwidth\fP T{
Pad the field to this width. The field is normally
@@ -1938,7 +1939,7 @@ to use the current domain.\*(CB
.ES
.nf
\*(CDHost: \*(FCftp.gnu.org\*(FR
-File: \*(FC/gnu/gawk/gawk-4.1.0.tar.gz\fP
+File: \*(FC/gnu/gawk/gawk-4.1.1.tar.gz\fP
.in +.2i
.fi
GNU \*(AK (\*(GK). There may be a later version.
@@ -1968,8 +1969,8 @@ maintains it.\*(CX
.\" --- Copying Permissions
.ES
.fi
-\*(CDCopyright \(co 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2007, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+\*(CDCopyright \(co 1996\(en2005,
+2007, 2009\(en2014 Free Software Foundation, Inc.
.sp .5
Permission is granted to make and distribute verbatim copies of this
reference card provided the copyright notice and this permission notice
diff --git a/doc/gawk.1 b/doc/gawk.1
index bd58b10c..a879b527 100644
--- a/doc/gawk.1
+++ b/doc/gawk.1
@@ -13,7 +13,7 @@
. if \w'\(rq' .ds rq "\(rq
. \}
.\}
-.TH GAWK 1 "Jan 28 2014" "Free Software Foundation" "Utility Commands"
+.TH GAWK 1 "Mar 08 2014" "Free Software Foundation" "Utility Commands"
.SH NAME
gawk \- pattern scanning and processing language
.SH SYNOPSIS
@@ -2454,6 +2454,15 @@ This applies only to the numeric output formats.
This flag only has an effect when the field width is wider than the
value to be printed.
.TP
+.B '
+A single quote character instructs
+.I gawk
+to insert the locale's thousands-separator character
+into decimal numbers, and to also use the locale's
+decimal point character with floating point formats.
+This requires correct locale support in the C library
+and in the definition of the current locale.
+.TP
.I width
The field should be padded to this width. The field is normally padded
with spaces. With the
diff --git a/doc/gawk.info b/doc/gawk.info
index 5deb6482..aad73f7a 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -9,13 +9,12 @@ START-INFO-DIR-ENTRY
* awk: (gawk)Invoking gawk. Text scanning and processing.
END-INFO-DIR-ENTRY
- Copyright (C) 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013, 2014
+ Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2014
Free Software Foundation, Inc.
This is Edition 4.1 of `GAWK: Effective AWK Programming: A User's
-Guide for GNU Awk', for the 4.1.0 (or later) version of the GNU
+Guide for GNU Awk', for the 4.1.1 (or later) version of the GNU
implementation of AWK.
Permission is granted to copy, distribute and/or modify this document
@@ -41,13 +40,12 @@ General Introduction
This file documents `awk', a program that you can use to select
particular records in a file and perform operations upon them.
- Copyright (C) 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013, 2014
+ Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2014
Free Software Foundation, Inc.
This is Edition 4.1 of `GAWK: Effective AWK Programming: A User's
-Guide for GNU Awk', for the 4.1.0 (or later) version of the GNU
+Guide for GNU Awk', for the 4.1.1 (or later) version of the GNU
implementation of AWK.
Permission is granted to copy, distribute and/or modify this document
@@ -522,6 +520,7 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
* Extension API Functions Introduction:: Introduction to the API functions.
* General Data Types:: The data types.
* Requesting Values:: How to get a value.
+* Memory Allocation Functions:: Functions for allocating memory.
* Constructor Functions:: Functions for creating values.
* Registration Functions:: Functions to register things with
`gawk'.
@@ -584,7 +583,8 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
version of `awk'.
* POSIX/GNU:: The extensions in `gawk' not
in POSIX `awk'.
-* Feature History:: The history of the features in `gawk'.
+* Feature History:: The history of the features in
+ `gawk'.
* Common Extensions:: Common Extensions Summary.
* Ranges and Locales:: How locales used to affect regexp
ranges.
@@ -1766,30 +1766,30 @@ File: gawk.info, Node: Sample Data Files, Next: Very Simple, Prev: Running ga
===============================
Many of the examples in this Info file take their input from two sample
-data files. The first, `BBS-list', represents a list of computer
-bulletin board systems together with information about those systems.
+data files. The first, `mail-list', represents a list of peoples' names
+together with their email addresses and information about those people.
The second data file, called `inventory-shipped', contains information
about monthly shipments. In both files, each line is considered to be
one "record".
- In the data file `BBS-list', each record contains the name of a
-computer bulletin board, its phone number, the board's baud rate(s),
-and a code for the number of hours it is operational. An `A' in the
-last column means the board operates 24 hours a day. A `B' in the last
-column means the board only operates on evening and weekend hours. A
-`C' means the board operates only on weekends:
-
- aardvark 555-5553 1200/300 B
- alpo-net 555-3412 2400/1200/300 A
- barfly 555-7685 1200/300 A
- bites 555-1675 2400/1200/300 A
- camelot 555-0542 300 C
- core 555-2912 1200/300 C
- fooey 555-1234 2400/1200/300 B
- foot 555-6699 1200/300 B
- macfoo 555-6480 1200/300 A
- sdace 555-3430 2400/1200/300 A
- sabafoo 555-2127 1200/300 C
+ In the data file `mail-list', each record contains the name of a
+person, his/her phone number, his/her email-address, and a code for
+their relationship with the author of the list. An `A' in the last
+column means that the person is an acquaintance. An `F' in the last
+column means that the person is a friend. An `R' means that the person
+is a relative:
+
+ Amelia 555-5553 amelia.zodiacusque@gmail.com F
+ Anthony 555-3412 anthony.asserturo@hotmail.com A
+ Becky 555-7685 becky.algebrarum@gmail.com A
+ Bill 555-1675 bill.drowning@hotmail.com A
+ Broderick 555-0542 broderick.aliquotiens@yahoo.com R
+ Camilla 555-2912 camilla.infusarum@skynet.be R
+ Fabius 555-1234 fabius.undevicesimus@ucb.edu F
+ Julie 555-6699 julie.perscrutabor@skeeve.com F
+ Martin 555-6480 martin.codicibus@hotmail.com A
+ Samuel 555-3430 samuel.lanceolis@shu.edu A
+ Jean-Paul 555-2127 jeanpaul.campanorum@nyu.edu R
The data file `inventory-shipped' represents information about
shipments during the year. Each record contains the month, the number
@@ -1826,32 +1826,32 @@ File: gawk.info, Node: Very Simple, Next: Two Rules, Prev: Sample Data Files,
========================
The following command runs a simple `awk' program that searches the
-input file `BBS-list' for the character string `foo' (a grouping of
+input file `mail-list' for the character string `li' (a grouping of
characters is usually called a "string"; the term "string" is based on
similar usage in English, such as "a string of pearls," or "a string of
cars in a train"):
- awk '/foo/ { print $0 }' BBS-list
+ awk '/li/ { print $0 }' mail-list
-When lines containing `foo' are found, they are printed because
+When lines containing `li' are found, they are printed because
`print $0' means print the current line. (Just `print' by itself means
the same thing, so we could have written that instead.)
- You will notice that slashes (`/') surround the string `foo' in the
-`awk' program. The slashes indicate that `foo' is the pattern to
-search for. This type of pattern is called a "regular expression",
-which is covered in more detail later (*note Regexp::). The pattern is
-allowed to match parts of words. There are single quotes around the
-`awk' program so that the shell won't interpret any of it as special
-shell characters.
+ You will notice that slashes (`/') surround the string `li' in the
+`awk' program. The slashes indicate that `li' is the pattern to search
+for. This type of pattern is called a "regular expression", which is
+covered in more detail later (*note Regexp::). The pattern is allowed
+to match parts of words. There are single quotes around the `awk'
+program so that the shell won't interpret any of it as special shell
+characters.
Here is what this program prints:
- $ awk '/foo/ { print $0 }' BBS-list
- -| fooey 555-1234 2400/1200/300 B
- -| foot 555-6699 1200/300 B
- -| macfoo 555-6480 1200/300 A
- -| sabafoo 555-2127 1200/300 C
+ $ awk '/li/ { print $0 }' mail-list
+ -| Amelia 555-5553 amelia.zodiacusque@gmail.com F
+ -| Broderick 555-0542 broderick.aliquotiens@yahoo.com R
+ -| Julie 555-6699 julie.perscrutabor@skeeve.com F
+ -| Samuel 555-3430 samuel.lanceolis@shu.edu A
In an `awk' rule, either the pattern or the action can be omitted,
but not both. If the pattern is omitted, then the action is performed
@@ -1860,7 +1860,7 @@ is to print all lines that match the pattern.
Thus, we could leave out the action (the `print' statement and the
curly braces) in the previous example and the result would be the same:
-`awk' prints all lines matching the pattern `foo'. By comparison,
+`awk' prints all lines matching the pattern `li'. By comparison,
omitting the `print' statement but retaining the curly braces makes an
empty action that does nothing (i.e., no lines are printed).
@@ -1966,25 +1966,19 @@ the string `21'. If a line contains both strings, it is printed twice,
once by each rule.
This is what happens if we run this program on our two sample data
-files, `BBS-list' and `inventory-shipped':
+files, `mail-list' and `inventory-shipped':
$ awk '/12/ { print $0 }
- > /21/ { print $0 }' BBS-list inventory-shipped
- -| aardvark 555-5553 1200/300 B
- -| alpo-net 555-3412 2400/1200/300 A
- -| barfly 555-7685 1200/300 A
- -| bites 555-1675 2400/1200/300 A
- -| core 555-2912 1200/300 C
- -| fooey 555-1234 2400/1200/300 B
- -| foot 555-6699 1200/300 B
- -| macfoo 555-6480 1200/300 A
- -| sdace 555-3430 2400/1200/300 A
- -| sabafoo 555-2127 1200/300 C
- -| sabafoo 555-2127 1200/300 C
+ > /21/ { print $0 }' mail-list inventory-shipped
+ -| Anthony 555-3412 anthony.asserturo@hotmail.com A
+ -| Camilla 555-2912 camilla.infusarum@skynet.be R
+ -| Fabius 555-1234 fabius.undevicesimus@ucb.edu F
+ -| Jean-Paul 555-2127 jeanpaul.campanorum@nyu.edu R
+ -| Jean-Paul 555-2127 jeanpaul.campanorum@nyu.edu R
-| Jan 21 36 64 620
-| Apr 21 70 74 514
-Note how the line beginning with `sabafoo' in `BBS-list' was printed
+Note how the line beginning with `Jean-Paul' in `mail-list' was printed
twice, once for each rule.

@@ -2060,7 +2054,7 @@ Most often, each line in an `awk' program is a separate statement or
separate rule, like this:
awk '/12/ { print $0 }
- /21/ { print $0 }' BBS-list inventory-shipped
+ /21/ { print $0 }' mail-list inventory-shipped
However, `gawk' ignores newlines after any of the following symbols
and keywords:
@@ -2480,7 +2474,7 @@ The following list describes options mandated by the POSIX standard:
`--bignum'
Force arbitrary precision arithmetic on numbers. This option has
no effect if `gawk' is not compiled to use the GNU MPFR and MP
- libraries (*note Arbitrary Precision Arithmetic::).
+ libraries (*note Gawk and MPFR::).
`-n'
`--non-decimal-data'
@@ -2748,13 +2742,14 @@ on the command-line with the `-f' option. In most `awk'
implementations, you must supply a precise path name for each program
file, unless the file is in the current directory. But in `gawk', if
the file name supplied to the `-f' or `-i' options does not contain a
-`/', then `gawk' searches a list of directories (called the "search
-path"), one by one, looking for a file with the specified name.
+directory separator `/', then `gawk' searches a list of directories
+(called the "search path"), one by one, looking for a file with the
+specified name.
The search path is a string consisting of directory names separated by
-colons. `gawk' gets its search path from the `AWKPATH' environment
+colons(1). `gawk' gets its search path from the `AWKPATH' environment
variable. If that variable does not exist, `gawk' uses a default path,
-`.:/usr/local/share/awk'.(1)
+`.:/usr/local/share/awk'.(2)
The search path feature is particularly useful for building libraries
of useful `awk' functions. The library files can be placed in a
@@ -2795,7 +2790,9 @@ found, and `gawk' no longer needs to use `AWKPATH'.
---------- Footnotes ----------
- (1) Your version of `gawk' may use a different directory; it will
+ (1) Semicolons on MS-Windows and MS-DOS.
+
+ (2) Your version of `gawk' may use a different directory; it will
depend upon how `gawk' was built and installed. The actual directory is
the value of `$(datadir)' generated when `gawk' was configured. You
probably don't need to worry about this, though.
@@ -3105,14 +3102,14 @@ A regular expression can be used as a pattern by enclosing it in
slashes. Then the regular expression is tested against the entire text
of each record. (Normally, it only needs to match some part of the
text in order to succeed.) For example, the following prints the
-second field of each record that contains the string `foo' anywhere in
+second field of each record that contains the string `li' anywhere in
it:
- $ awk '/foo/ { print $2 }' BBS-list
- -| 555-1234
+ $ awk '/li/ { print $2 }' mail-list
+ -| 555-5553
+ -| 555-0542
-| 555-6699
- -| 555-6480
- -| 555-2127
+ -| 555-3430
Regular expressions can also be used in matching expressions. These
expressions allow you to specify the string to match against; it need
@@ -3920,67 +3917,82 @@ processed, so that the very first record is read with the proper
separator. To do this, use the special `BEGIN' pattern (*note
BEGIN/END::). For example:
- awk 'BEGIN { RS = "/" }
- { print $0 }' BBS-list
-
-changes the value of `RS' to `"/"', before reading any input. This is
-a string whose first character is a slash; as a result, records are
-separated by slashes. Then the input file is read, and the second rule
-in the `awk' program (the action with no pattern) prints each record.
-Because each `print' statement adds a newline at the end of its output,
-this `awk' program copies the input with each slash changed to a
-newline. Here are the results of running the program on `BBS-list':
-
- $ awk 'BEGIN { RS = "/" }
- > { print $0 }' BBS-list
- -| aardvark 555-5553 1200
- -| 300 B
- -| alpo-net 555-3412 2400
- -| 1200
- -| 300 A
- -| barfly 555-7685 1200
- -| 300 A
- -| bites 555-1675 2400
- -| 1200
- -| 300 A
- -| camelot 555-0542 300 C
- -| core 555-2912 1200
- -| 300 C
- -| fooey 555-1234 2400
- -| 1200
- -| 300 B
- -| foot 555-6699 1200
- -| 300 B
- -| macfoo 555-6480 1200
- -| 300 A
- -| sdace 555-3430 2400
- -| 1200
- -| 300 A
- -| sabafoo 555-2127 1200
- -| 300 C
+ awk 'BEGIN { RS = "u" }
+ { print $0 }' mail-list
+
+changes the value of `RS' to `u', before reading any input. This is a
+string whose first character is the letter "u;" as a result, records
+are separated by the letter "u." Then the input file is read, and the
+second rule in the `awk' program (the action with no pattern) prints
+each record. Because each `print' statement adds a newline at the end
+of its output, this `awk' program copies the input with each `u'
+changed to a newline. Here are the results of running the program on
+`mail-list':
+
+ $ awk 'BEGIN { RS = "u" }
+ > { print $0 }' mail-list
+ -| Amelia 555-5553 amelia.zodiac
+ -| sq
+ -| e@gmail.com F
+ -| Anthony 555-3412 anthony.assert
+ -| ro@hotmail.com A
+ -| Becky 555-7685 becky.algebrar
+ -| m@gmail.com A
+ -| Bill 555-1675 bill.drowning@hotmail.com A
+ -| Broderick 555-0542 broderick.aliq
+ -| otiens@yahoo.com R
+ -| Camilla 555-2912 camilla.inf
+ -| sar
+ -| m@skynet.be R
+ -| Fabi
+ -| s 555-1234 fabi
+ -| s.
+ -| ndevicesim
+ -| s@
+ -| cb.ed
+ -| F
+ -| J
+ -| lie 555-6699 j
+ -| lie.perscr
+ -| tabor@skeeve.com F
+ -| Martin 555-6480 martin.codicib
+ -| s@hotmail.com A
+ -| Sam
+ -| el 555-3430 sam
+ -| el.lanceolis@sh
+ -| .ed
+ -| A
+ -| Jean-Pa
+ -| l 555-2127 jeanpa
+ -| l.campanor
+ -| m@ny
+ -| .ed
+ -| R
-|
-Note that the entry for the `camelot' BBS is not split. In the
-original data file (*note Sample Data Files::), the line looks like
-this:
+Note that the entry for the name `Bill' is not split. In the original
+data file (*note Sample Data Files::), the line looks like this:
- camelot 555-0542 300 C
+ Bill 555-1675 bill.drowning@hotmail.com A
-It has one baud rate only, so there are no slashes in the record,
-unlike the others which have two or more baud rates. In fact, this
-record is treated as part of the record for the `core' BBS; the newline
+It contains no `u' so there is no reason to split the record, unlike
+the others which have one or more occurrences of the `u'. In fact,
+this record is treated as part of the previous record; the newline
separating them in the output is the original newline in the data file,
not the one added by `awk' when it printed the record!
Another way to change the record separator is on the command line,
using the variable-assignment feature (*note Other Arguments::):
- awk '{ print $0 }' RS="/" BBS-list
+ awk '{ print $0 }' RS="u" mail-list
-This sets `RS' to `/' before processing `BBS-list'.
+This sets `RS' to `u' before processing `mail-list'.
- Using an unusual character such as `/' for the record separator
-produces correct behavior in the vast majority of cases.
+ Using an alphabetic character such as `u' for the record separator
+is highly likely to produce strange results. Using an unusual
+character such as `/' is more likely to produce correct behavior in the
+majority of cases, but there are no guarantees. The moral is: Know Your
+Data.
There is one unusual case, that occurs when `gawk' is being fully
POSIX-compliant (*note Options::). Then, the following (extreme)
@@ -4149,26 +4161,24 @@ get the empty string. (If used in a numeric operation, you get zero.)
field, is a special case: it represents the whole input record when you
are not interested in specific fields. Here are some more examples:
- $ awk '$1 ~ /foo/ { print $0 }' BBS-list
- -| fooey 555-1234 2400/1200/300 B
- -| foot 555-6699 1200/300 B
- -| macfoo 555-6480 1200/300 A
- -| sabafoo 555-2127 1200/300 C
+ $ awk '$1 ~ /li/ { print $0 }' mail-list
+ -| Amelia 555-5553 amelia.zodiacusque@gmail.com F
+ -| Julie 555-6699 julie.perscrutabor@skeeve.com F
-This example prints each record in the file `BBS-list' whose first
-field contains the string `foo'. The operator `~' is called a
-"matching operator" (*note Regexp Usage::); it tests whether a string
-(here, the field `$1') matches a given regular expression.
+This example prints each record in the file `mail-list' whose first
+field contains the string `li'. The operator `~' is called a "matching
+operator" (*note Regexp Usage::); it tests whether a string (here, the
+field `$1') matches a given regular expression.
- By contrast, the following example looks for `foo' in _the entire
+ By contrast, the following example looks for `li' in _the entire
record_ and prints the first field and the last field for each matching
input record:
- $ awk '/foo/ { print $1, $NF }' BBS-list
- -| fooey B
- -| foot B
- -| macfoo A
- -| sabafoo C
+ $ awk '/li/ { print $1, $NF }' mail-list
+ -| Amelia F
+ -| Broderick R
+ -| Julie F
+ -| Samuel A
---------- Footnotes ----------
@@ -4196,16 +4206,16 @@ For the twentieth record, field number 20 is printed; most likely, the
record has fewer than 20 fields, so this prints a blank line. Here is
another example of using expressions as field numbers:
- awk '{ print $(2*2) }' BBS-list
+ awk '{ print $(2*2) }' mail-list
`awk' evaluates the expression `(2*2)' and uses its value as the
number of the field to print. The `*' sign represents multiplication,
so the expression `2*2' evaluates to four. The parentheses are used so
that the multiplication is done before the `$' operation; they are
necessary whenever there is a binary operator in the field-number
-expression. This example, then, prints the hours of operation (the
-fourth field) for every line of the file `BBS-list'. (All of the `awk'
-operators are listed, in order of decreasing precedence, in *note
+expression. This example, then, prints the type of relationship (the
+fourth field) for every line of the file `mail-list'. (All of the
+`awk' operators are listed, in order of decreasing precedence, in *note
Precedence::.)
If the field number you compute is zero, you get the entire record.
@@ -4602,53 +4612,46 @@ type `-F\t' at the shell, without any quotes, the `\' gets deleted, so
TABs and not `t's. Use `-v FS="t"' or `-F"[t]"' on the command line if
you really do want to separate your fields with `t's.
- As an example, let's use an `awk' program file called `baud.awk'
-that contains the pattern `/300/' and the action `print $1':
+ As an example, let's use an `awk' program file called `edu.awk' that
+contains the pattern `/edu/' and the action `print $1':
- /300/ { print $1 }
+ /edu/ { print $1 }
Let's also set `FS' to be the `-' character and run the program on
-the file `BBS-list'. The following command prints a list of the names
-of the bulletin boards that operate at 300 baud and the first three
+the file `mail-list'. The following command prints a list of the names
+of the people that work at or attend a university, and the first three
digits of their phone numbers:
- $ awk -F- -f baud.awk BBS-list
- -| aardvark 555
- -| alpo
- -| barfly 555
- -| bites 555
- -| camelot 555
- -| core 555
- -| fooey 555
- -| foot 555
- -| macfoo 555
- -| sdace 555
- -| sabafoo 555
-
-Note the second line of output. The second line in the original file
+ $ awk -F- -f edu.awk mail-list
+ -| Fabius 555
+ -| Samuel 555
+ -| Jean
+
+Note the third line of output. The third line in the original file
looked like this:
- alpo-net 555-3412 2400/1200/300 A
+ Jean-Paul 555-2127 jeanpaul.campanorum@nyu.edu R
- The `-' as part of the system's name was used as the field
+ The `-' as part of the person's name was used as the field
separator, instead of the `-' in the phone number that was originally
intended. This demonstrates why you have to be careful in choosing
your field and record separators.
Perhaps the most common use of a single character as the field
separator occurs when processing the Unix system password file. On
-many Unix systems, each user has a separate entry in the system password
-file, one line per user. The information in these lines is separated
-by colons. The first field is the user's login name and the second is
-the user's (encrypted or shadow) password. A password file entry might
-look like this:
+many Unix systems, each user has a separate entry in the system
+password file, one line per user. The information in these lines is
+separated by colons. The first field is the user's login name and the
+second is the user's encrypted or shadow password. (A shadow password
+is indicated by the presence of a single `x' in the second field.) A
+password file entry might look like this:
- arnold:xyzzy:2076:10:Arnold Robbins:/home/arnold:/bin/bash
+ arnold:x:2076:10:Arnold Robbins:/home/arnold:/bin/bash
The following program searches the system password file and prints
-the entries for users who have no password:
+the entries for users whose full name is not indicated:
- awk -F: '$2 == ""' /etc/passwd
+ awk -F: '$5 == ""' /etc/passwd

File: gawk.info, Node: Full Line Fields, Next: Field Splitting Summary, Prev: Command Line Field Separator, Up: Field Separators
@@ -5834,13 +5837,29 @@ prints the first and second fields of each input record, separated by a
semicolon, with a blank line added after each newline:
$ awk 'BEGIN { OFS = ";"; ORS = "\n\n" }
- > { print $1, $2 }' BBS-list
- -| aardvark;555-5553
+ > { print $1, $2 }' mail-list
+ -| Amelia;555-5553
-|
- -| alpo-net;555-3412
+ -| Anthony;555-3412
+ -|
+ -| Becky;555-7685
+ -|
+ -| Bill;555-1675
+ -|
+ -| Broderick;555-0542
+ -|
+ -| Camilla;555-2912
+ -|
+ -| Fabius;555-1234
+ -|
+ -| Julie;555-6699
+ -|
+ -| Martin;555-6480
+ -|
+ -| Samuel;555-3430
+ -|
+ -| Jean-Paul;555-2127
-|
- -| barfly;555-7685
- ...
If the value of `ORS' does not contain a newline, the program's
output runs together on a single line.
@@ -6209,25 +6228,25 @@ File: gawk.info, Node: Printf Examples, Prev: Format Modifiers, Up: Printf
The following simple example shows how to use `printf' to make an
aligned table:
- awk '{ printf "%-10s %s\n", $1, $2 }' BBS-list
+ awk '{ printf "%-10s %s\n", $1, $2 }' mail-list
-This command prints the names of the bulletin boards (`$1') in the file
-`BBS-list' as a string of 10 characters that are left-justified. It
+This command prints the names of the people (`$1') in the file
+`mail-list' as a string of 10 characters that are left-justified. It
also prints the phone numbers (`$2') next on the line. This produces
an aligned two-column table of names and phone numbers, as shown here:
- $ awk '{ printf "%-10s %s\n", $1, $2 }' BBS-list
- -| aardvark 555-5553
- -| alpo-net 555-3412
- -| barfly 555-7685
- -| bites 555-1675
- -| camelot 555-0542
- -| core 555-2912
- -| fooey 555-1234
- -| foot 555-6699
- -| macfoo 555-6480
- -| sdace 555-3430
- -| sabafoo 555-2127
+ $ awk '{ printf "%-10s %s\n", $1, $2 }' mail-list
+ -| Amelia 555-5553
+ -| Anthony 555-3412
+ -| Becky 555-7685
+ -| Bill 555-1675
+ -| Broderick 555-0542
+ -| Camilla 555-2912
+ -| Fabius 555-1234
+ -| Julie 555-6699
+ -| Martin 555-6480
+ -| Samuel 555-3430
+ -| Jean-Paul 555-2127
In this case, the phone numbers had to be printed as strings because
the numbers are separated by a dash. Printing the phone numbers as
@@ -6245,14 +6264,14 @@ beginning of the `awk' program:
awk 'BEGIN { print "Name Number"
print "---- ------" }
- { printf "%-10s %s\n", $1, $2 }' BBS-list
+ { printf "%-10s %s\n", $1, $2 }' mail-list
The above example mixes `print' and `printf' statements in the same
program. Using just `printf' statements can produce the same results:
awk 'BEGIN { printf "%-10s %s\n", "Name", "Number"
printf "%-10s %s\n", "----", "------" }
- { printf "%-10s %s\n", $1, $2 }' BBS-list
+ { printf "%-10s %s\n", $1, $2 }' mail-list
Printing each column heading with the same format specification used
for the column elements ensures that the headings are aligned just like
@@ -6264,7 +6283,7 @@ be emphasized by storing it in a variable, like this:
awk 'BEGIN { format = "%-10s %s\n"
printf format, "Name", "Number"
printf format, "----", "------" }
- { printf format, $1, $2 }' BBS-list
+ { printf format, $1, $2 }' mail-list
At this point, it would be a worthwhile exercise to use the `printf'
statement to line up the headings and table data for the
@@ -6304,19 +6323,19 @@ work identically for `printf':
the same OUTPUT-FILE do not erase OUTPUT-FILE, but append to it.
(This is different from how you use redirections in shell scripts.)
If OUTPUT-FILE does not exist, it is created. For example, here
- is how an `awk' program can write a list of BBS names to one file
- named `name-list', and a list of phone numbers to another file
+ is how an `awk' program can write a list of peoples' names to one
+ file named `name-list', and a list of phone numbers to another file
named `phone-list':
$ awk '{ print $2 > "phone-list"
- > print $1 > "name-list" }' BBS-list
+ > print $1 > "name-list" }' mail-list
$ cat phone-list
-| 555-5553
-| 555-3412
...
$ cat name-list
- -| aardvark
- -| alpo-net
+ -| Amelia
+ -| Anthony
...
Each output file contains one name or number per line.
@@ -6337,12 +6356,12 @@ work identically for `printf':
The redirection argument COMMAND is actually an `awk' expression.
Its value is converted to a string whose contents give the shell
command to be run. For example, the following produces two files,
- one unsorted list of BBS names, and one list sorted in reverse
+ one unsorted list of peoples' names, and one list sorted in reverse
alphabetical order:
awk '{ print $1 > "names.unsorted"
command = "sort -r > names.sorted"
- print $1 | command }' BBS-list
+ print $1 | command }' mail-list
The unsorted list is written with an ordinary redirection, while
the sorted list is written by piping through the `sort' utility.
@@ -7072,16 +7091,16 @@ assignment is performed at a time determined by its position among the
input file arguments--after the processing of the preceding input file
argument. For example:
- awk '{ print $n }' n=4 inventory-shipped n=2 BBS-list
+ awk '{ print $n }' n=4 inventory-shipped n=2 mail-list
prints the value of field number `n' for all input records. Before the
first file is read, the command line sets the variable `n' equal to
four. This causes the fourth field to be printed in lines from
`inventory-shipped'. After the first file has finished, but before the
second file is started, `n' is set to two, so that the second field is
-printed in lines from `BBS-list':
+printed in lines from `mail-list':
- $ awk '{ print $n }' n=4 inventory-shipped n=2 BBS-list
+ $ awk '{ print $n }' n=4 inventory-shipped n=2 mail-list
-| 15
-| 24
...
@@ -7342,17 +7361,17 @@ a specific operator to represent it. Instead, concatenation is
performed by writing expressions next to one another, with no operator.
For example:
- $ awk '{ print "Field number one: " $1 }' BBS-list
- -| Field number one: aardvark
- -| Field number one: alpo-net
+ $ awk '{ print "Field number one: " $1 }' mail-list
+ -| Field number one: Amelia
+ -| Field number one: Anthony
...
Without the space in the string constant after the `:', the line
runs together. For example:
- $ awk '{ print "Field number one:" $1 }' BBS-list
- -| Field number one:aardvark
- -| Field number one:alpo-net
+ $ awk '{ print "Field number one:" $1 }' mail-list
+ -| Field number one:Amelia
+ -| Field number one:Anthony
...
Because string concatenation does not have an explicit operator, it
@@ -7998,9 +8017,9 @@ Boolean operators are:
`BOOLEAN1 && BOOLEAN2'
True if both BOOLEAN1 and BOOLEAN2 are true. For example, the
following statement prints the current input record if it contains
- both `2400' and `foo':
+ both `edu' and `li':
- if ($0 ~ /2400/ && $0 ~ /foo/) print
+ if ($0 ~ /edu/ && $0 ~ /li/) print
The subexpression BOOLEAN2 is evaluated only if BOOLEAN1 is true.
This can make a difference when BOOLEAN2 contains expressions that
@@ -8011,9 +8030,9 @@ Boolean operators are:
`BOOLEAN1 || BOOLEAN2'
True if at least one of BOOLEAN1 or BOOLEAN2 is true. For
example, the following statement prints all records in the input
- that contain _either_ `2400' or `foo' or both:
+ that contain _either_ `edu' or `li' or both:
- if ($0 ~ /2400/ || $0 ~ /foo/) print
+ if ($0 ~ /edu/ || $0 ~ /li/) print
The subexpression BOOLEAN2 is evaluated only if BOOLEAN1 is false.
This can make a difference when BOOLEAN2 contains expressions that
@@ -8433,56 +8452,53 @@ operand is either a constant regular expression enclosed in slashes
(`/REGEXP/'), or any expression whose string value is used as a dynamic
regular expression (*note Computed Regexps::). The following example
prints the second field of each input record whose first field is
-precisely `foo':
+precisely `li':
- $ awk '$1 == "foo" { print $2 }' BBS-list
+ $ awk '$1 == "li" { print $2 }' mail-list
-(There is no output, because there is no BBS site with the exact name
-`foo'.) Contrast this with the following regular expression match,
-which accepts any record with a first field that contains `foo':
+(There is no output, because there is no person with the exact name
+`li'.) Contrast this with the following regular expression match, which
+accepts any record with a first field that contains `li':
- $ awk '$1 ~ /foo/ { print $2 }' BBS-list
- -| 555-1234
+ $ awk '$1 ~ /foo/ { print $2 }' mail-list
+ -| 555-5553
-| 555-6699
- -| 555-6480
- -| 555-2127
A regexp constant as a pattern is also a special case of an
-expression pattern. The expression `/foo/' has the value one if `foo'
-appears in the current input record. Thus, as a pattern, `/foo/'
-matches any record containing `foo'.
+expression pattern. The expression `/li/' has the value one if `li'
+appears in the current input record. Thus, as a pattern, `/li/' matches
+any record containing `li'.
Boolean expressions are also commonly used as patterns. Whether the
pattern matches an input record depends on whether its subexpressions
match. For example, the following command prints all the records in
-`BBS-list' that contain both `2400' and `foo':
-
- $ awk '/2400/ && /foo/' BBS-list
- -| fooey 555-1234 2400/1200/300 B
-
- The following command prints all records in `BBS-list' that contain
-_either_ `2400' or `foo' (or both, of course):
-
- $ awk '/2400/ || /foo/' BBS-list
- -| alpo-net 555-3412 2400/1200/300 A
- -| bites 555-1675 2400/1200/300 A
- -| fooey 555-1234 2400/1200/300 B
- -| foot 555-6699 1200/300 B
- -| macfoo 555-6480 1200/300 A
- -| sdace 555-3430 2400/1200/300 A
- -| sabafoo 555-2127 1200/300 C
-
- The following command prints all records in `BBS-list' that do _not_
-contain the string `foo':
-
- $ awk '! /foo/' BBS-list
- -| aardvark 555-5553 1200/300 B
- -| alpo-net 555-3412 2400/1200/300 A
- -| barfly 555-7685 1200/300 A
- -| bites 555-1675 2400/1200/300 A
- -| camelot 555-0542 300 C
- -| core 555-2912 1200/300 C
- -| sdace 555-3430 2400/1200/300 A
+`mail-list' that contain both `edu' and `li':
+
+ $ awk '/edu/ && /li/' mail-list
+ -| Samuel 555-3430 samuel.lanceolis@shu.edu A
+
+ The following command prints all records in `mail-list' that contain
+_either_ `edu' or `li' (or both, of course):
+
+ $ awk '/edu/ || /li/' mail-list
+ -| Amelia 555-5553 amelia.zodiacusque@gmail.com F
+ -| Broderick 555-0542 broderick.aliquotiens@yahoo.com R
+ -| Fabius 555-1234 fabius.undevicesimus@ucb.edu F
+ -| Julie 555-6699 julie.perscrutabor@skeeve.com F
+ -| Samuel 555-3430 samuel.lanceolis@shu.edu A
+ -| Jean-Paul 555-2127 jeanpaul.campanorum@nyu.edu R
+
+ The following command prints all records in `mail-list' that do
+_not_ contain the string `li':
+
+ $ awk '! /li/' mail-list
+ -| Anthony 555-3412 anthony.asserturo@hotmail.com A
+ -| Becky 555-7685 becky.algebrarum@gmail.com A
+ -| Bill 555-1675 bill.drowning@hotmail.com A
+ -| Camilla 555-2912 camilla.infusarum@skynet.be R
+ -| Fabius 555-1234 fabius.undevicesimus@ucb.edu F
+ -| Martin 555-6480 martin.codicibus@hotmail.com A
+ -| Jean-Paul 555-2127 jeanpaul.campanorum@nyu.edu R
The subexpressions of a Boolean operator in a pattern can be
constant regular expressions, comparisons, or any other `awk'
@@ -8559,6 +8575,10 @@ worked around; range patterns do not combine with other patterns:
error--> gawk: cmd. line:1: (/1/,/2/) || /Yes/
error--> gawk: cmd. line:1: ^ syntax error
+ As a minor point of interest, although it is poor style, POSIX
+allows you to put a newline after the comma in a range pattern.
+(d.c.)
+

File: gawk.info, Node: BEGIN/END, Next: BEGINFILE/ENDFILE, Prev: Ranges, Up: Pattern Overview
@@ -8589,19 +8609,19 @@ read. Likewise, an `END' rule is executed once only, after all the
input is read. For example:
$ awk '
- > BEGIN { print "Analysis of \"foo\"" }
- > /foo/ { ++n }
- > END { print "\"foo\" appears", n, "times." }' BBS-list
- -| Analysis of "foo"
- -| "foo" appears 4 times.
-
- This program finds the number of records in the input file `BBS-list'
-that contain the string `foo'. The `BEGIN' rule prints a title for the
-report. There is no need to use the `BEGIN' rule to initialize the
-counter `n' to zero, since `awk' does this automatically (*note
-Variables::). The second rule increments the variable `n' every time a
-record containing the pattern `foo' is read. The `END' rule prints the
-value of `n' at the end of the run.
+ > BEGIN { print "Analysis of \"li\"" }
+ > /li/ { ++n }
+ > END { print "\"li\" appears in", n, "records." }' mail-list
+ -| Analysis of "li"
+ -| "li" appears in 4 records.
+
+ This program finds the number of records in the input file
+`mail-list' that contain the string `li'. The `BEGIN' rule prints a
+title for the report. There is no need to use the `BEGIN' rule to
+initialize the counter `n' to zero, since `awk' does this automatically
+(*note Variables::). The second rule increments the variable `n' every
+time a record containing the pattern `li' is read. The `END' rule
+prints the value of `n' at the end of the run.
The special patterns `BEGIN' and `END' cannot be used in ranges or
with Boolean operators (indeed, they cannot be used with any operators).
@@ -8752,7 +8772,7 @@ File: gawk.info, Node: Empty, Prev: BEGINFILE/ENDFILE, Up: Pattern Overview
An empty (i.e., nonexistent) pattern is considered to match _every_
input record. For example, the program:
- awk '{ print $1 }' BBS-list
+ awk '{ print $1 }' mail-list
prints the first field of every record.
@@ -9116,9 +9136,11 @@ File: gawk.info, Node: Switch Statement, Next: Break Statement, Prev: For Sta
7.4.5 The `switch' Statement
----------------------------
-The `switch' statement allows the evaluation of an expression and the
-execution of statements based on a `case' match. Case statements are
-checked for a match in the order they are defined. If no suitable
+This minor node describes a `gawk'-specific feature.
+
+ The `switch' statement allows the evaluation of an expression and
+the execution of statements based on a `case' match. Case statements
+are checked for a match in the order they are defined. If no suitable
`case' is found, the `default' section is executed, if supplied.
Each `case' contains a single constant, be it numeric, string, or
@@ -9377,12 +9399,12 @@ listed in `ARGV'.
standard. See the Austin Group website
(http://austingroupbugs.net/view.php?id=607).
- The current version of the Brian Kernighan's `awk' (*note Other
-Versions::) also supports `nextfile'. However, it doesn't allow the
-`nextfile' statement inside function bodies (*note User-defined::).
-`gawk' does; a `nextfile' inside a function body reads the next record
-and starts processing it with the first rule in the program, just as
-any other `nextfile' statement.
+ The current version of the Brian Kernighan's `awk', and `mawk'
+(*note Other Versions::) also support `nextfile'. However, they don't
+allow the `nextfile' statement inside function bodies (*note
+User-defined::). `gawk' does; a `nextfile' inside a function body
+reads the next record and starts processing it with the first rule in
+the program, just as any other `nextfile' statement.

File: gawk.info, Node: Exit Statement, Prev: Nextfile Statement, Up: Statements
@@ -9666,13 +9688,13 @@ with a pound sign (`#').
$ awk 'BEGIN {
> for (i = 0; i < ARGC; i++)
> print ARGV[i]
- > }' inventory-shipped BBS-list
+ > }' inventory-shipped mail-list
-| awk
-| inventory-shipped
- -| BBS-list
+ -| mail-list
`ARGV[0]' contains `awk', `ARGV[1]' contains `inventory-shipped',
- and `ARGV[2]' contains `BBS-list'. The value of `ARGC' is three,
+ and `ARGV[2]' contains `mail-list'. The value of `ARGC' is three,
one more than the index of the last element in `ARGV', because the
elements are numbered from zero.
@@ -9862,8 +9884,8 @@ with a pound sign (`#').
The following additional elements in the array are available to
provide information about the MPFR and GMP libraries if your
- version of `gawk' supports arbitrary precision numbers (*note
- Arbitrary Precision Arithmetic::):
+ version of `gawk' supports arbitrary precision numbers (*note Gawk
+ and MPFR::):
`PROCINFO["mpfr_version"]'
The version of the GNU MPFR library.
@@ -9942,7 +9964,7 @@ with a pound sign (`#').
the `delete' statement with the `SYMTAB' array.
You may use an index for `SYMTAB' that is not a predefined
- identifer:
+ identifier:
SYMTAB["xxx"] = 5
print SYMTAB["xxx"]
@@ -10008,13 +10030,13 @@ information contained in `ARGC' and `ARGV':
$ awk 'BEGIN {
> for (i = 0; i < ARGC; i++)
> print ARGV[i]
- > }' inventory-shipped BBS-list
+ > }' inventory-shipped mail-list
-| awk
-| inventory-shipped
- -| BBS-list
+ -| mail-list
In this example, `ARGV[0]' contains `awk', `ARGV[1]' contains
-`inventory-shipped', and `ARGV[2]' contains `BBS-list'. Notice that
+`inventory-shipped', and `ARGV[2]' contains `mail-list'. Notice that
the `awk' program is not entered in `ARGV'. The other command-line
options, with their arguments, are also not entered. This includes
variable assignments done with the `-v' option (*note Options::).
@@ -11261,9 +11283,10 @@ pound sign (`#'):
SOURCE is duplicated into DEST. DEST is then sorted, leaving the
indices of SOURCE unchanged.
- When comparing strings, `IGNORECASE' affects the sorting. If the
- SOURCE array contains subarrays as values (*note Arrays of
- Arrays::), they will come last, after all scalar values.
+ When comparing strings, `IGNORECASE' affects the sorting (*note
+ Array Sorting Functions::). If the SOURCE array contains
+ subarrays as values (*note Arrays of Arrays::), they will come
+ last, after all scalar values.
For example, if the contents of `a' are as follows:
@@ -11302,7 +11325,7 @@ pound sign (`#'):
`$0'. It returns the modified string as the result of the
function and the original target string is _not_ changed.
- `gensub()' is a general substitution function. It's purpose is to
+ `gensub()' is a general substitution function. Its purpose is to
provide more features than the standard `sub()' and `gsub()'
functions.
@@ -11978,10 +12001,10 @@ parameters are enclosed in square brackets ([ ]):
function--`gawk' also buffers its output and the `fflush()'
function forces `gawk' to flush its buffers.
- `fflush()' was added to Brian Kernighan's version of `awk' in 1994.
- For over two decades, it was not part of the POSIX standard. As
- of December, 2012, it was accepted for inclusion into the POSIX
- standard. See the Austin Group website
+ `fflush()' was added to Brian Kernighan's version of `awk' in
+ April of 1992. For two decades, it was not part of the POSIX
+ standard. As of December, 2012, it was accepted for inclusion
+ into the POSIX standard. See the Austin Group website
(http://austingroupbugs.net/view.php?id=634).
POSIX standardizes `fflush()' as follows: If there is no argument,
@@ -12184,7 +12207,8 @@ enclosed in square brackets ([ ]):
Variables::). The default string value is
`"%a %b %e %H:%M:%S %Z %Y"'. This format string produces output
that is equivalent to that of the `date' utility. You can assign
- a new value to `PROCINFO["strftime"]' to change the default format.
+ a new value to `PROCINFO["strftime"]' to change the default
+ format; see below for the various format directives.
`systime()'
Return the current time as the number of seconds since the system
@@ -12597,7 +12621,7 @@ of Arrays::).
traversing a multidimensional array: you can test if an element is
itself an array or not. The second is inside the body of a
user-defined function (not discussed yet; *note User-defined::), to
-test if a paramater is an array or not.
+test if a parameter is an array or not.
Note, however, that using `isarray()' at the global level to test
variables makes no sense. Since you are the one writing the program, you
@@ -12698,7 +12722,7 @@ a parameter with the same name as the function itself.
In addition, according to the POSIX standard, function parameters
cannot have the same name as one of the special built-in variables
(*note Built-in Variables::. Not all versions of `awk' enforce this
-restriction.
+restriction.)
The BODY-OF-FUNCTION consists of `awk' statements. It is the most
important part of the definition, because it says what the function
@@ -12741,8 +12765,8 @@ function. When this happens, we say the function is "recursive". The
act of a function calling itself is called "recursion".
All the built-in functions return a value to their caller.
-User-defined functions can do also, using the `return' statement, which
-is described in detail in *note Return Statement::. Many of the
+User-defined functions can do so also, using the `return' statement,
+which is described in detail in *note Return Statement::. Many of the
subsequent examples in this minor node use the `return' statement.
In many `awk' implementations, including `gawk', the keyword
@@ -12812,7 +12836,8 @@ elements in an array and start over with a new list of elements (*note
Delete::). Instead of having to repeat this loop everywhere that you
need to clear out an array, your program can just call `delarray'.
(This guarantees portability. The use of `delete ARRAY' to delete the
-contents of an entire array is a nonstandard extension.)
+contents of an entire array is a recent(1) addition to the POSIX
+standard.)
The following is an example of a recursive function. It takes a
string as an input parameter and returns the string in backwards order.
@@ -12852,13 +12877,19 @@ an `awk' version of `ctime()':
return strftime(format, ts)
}
+ ---------- Footnotes ----------
+
+ (1) Late in 2012.
+

File: gawk.info, Node: Function Caveats, Next: Return Statement, Prev: Function Example, Up: User-defined
9.2.3 Calling User-Defined Functions
------------------------------------
-This section describes how to call a user-defined function.
+"Calling a function" means causing the function to run and do its job.
+A function call is an expression and its value is the value returned by
+the function.
* Menu:
@@ -12872,16 +12903,12 @@ File: gawk.info, Node: Calling A Function, Next: Variable Scope, Up: Function
9.2.3.1 Writing A Function Call
...............................
-"Calling a function" means causing the function to run and do its job.
-A function call is an expression and its value is the value returned by
-the function.
-
- A function call consists of the function name followed by the
-arguments in parentheses. `awk' expressions are what you write in the
-call for the arguments. Each time the call is executed, these
-expressions are evaluated, and the values become the actual arguments.
-For example, here is a call to `foo()' with three arguments (the first
-being a string concatenation):
+A function call consists of the function name followed by the arguments
+in parentheses. `awk' expressions are what you write in the call for
+the arguments. Each time the call is executed, these expressions are
+evaluated, and the values become the actual arguments. For example,
+here is a call to `foo()' with three arguments (the first being a
+string concatenation):
foo(x y, "lose", 4 * z)
@@ -13276,7 +13303,7 @@ and then a closing right parenthesis, with the addition of a leading `@'
character:
the_func = "sum"
- result = @the_func() # calls the `sum' function
+ result = @the_func() # calls the sum() function
Here is a full program that processes the previously shown data,
using indirect function calls.
@@ -13427,8 +13454,8 @@ order.
Next comes a sorting function. It is parameterized with the
starting and ending field numbers and the comparison function. It
-builds an array with the data and calls `quicksort' appropriately, and
-then formats the results as a single string:
+builds an array with the data and calls `quicksort()' appropriately,
+and then formats the results as a single string:
# do_sort --- sort the data according to `compare'
# and return it as a string
@@ -13628,7 +13655,7 @@ will be accidentally shared with the user's program.
In addition, several of the library functions use a prefix that helps
indicate what function or set of functions use the variables--for
-example, `_pw_byname' in the user database routines (*note Passwd
+example, `_pw_byname()' in the user database routines (*note Passwd
Functions::). This convention is recommended, since it even further
decreases the chance of inadvertent conflict among variable names.
Note that this convention is used equally well for variable names and
@@ -13879,9 +13906,9 @@ File: gawk.info, Node: Round Function, Next: Cliff Random Function, Prev: Ass
The way `printf' and `sprintf()' (*note Printf::) perform rounding
often depends upon the system's C `sprintf()' subroutine. On many
-machines, `sprintf()' rounding is "unbiased," which means it doesn't
-always round a trailing `.5' up, contrary to naive expectations. In
-unbiased rounding, `.5' rounds to even, rather than always up, so 1.5
+machines, `sprintf()' rounding is "unbiased", which means it doesn't
+always round a trailing .5 up, contrary to naive expectations. In
+unbiased rounding, .5 rounds to even, rather than always up, so 1.5
rounds to 2 but 4.5 rounds to 4. This means that if you are using a
format that does rounding (e.g., `"%.0f"'), you should check what your
system does. The following function does traditional rounding; it
@@ -13915,7 +13942,7 @@ might be useful if your `awk''s `printf' does unbiased rounding:
}
# test harness
- { print $0, round($0) }
+ # { print $0, round($0) }

File: gawk.info, Node: Cliff Random Function, Next: Ordinal Functions, Prev: Round Function, Up: General Functions
@@ -13991,8 +14018,8 @@ corresponding character. Both functions are written very nicely in
}
}
- Some explanation of the numbers used by `chr()' is worthwhile. The
-most prominent character set in use today is ASCII.(1) Although an
+ Some explanation of the numbers used by `_ord_init()' is worthwhile.
+The most prominent character set in use today is ASCII.(1) Although an
8-bit byte can hold 256 distinct values (from 0 to 255), ASCII only
defines characters that use the values from 0 to 127.(2) In the now
distant past, at least one minicomputer manufacturer used ASCII, but
@@ -14042,7 +14069,7 @@ tests such as used here prohibitively expensive.
(2) ASCII has been extended in many countries to use the values from
128 to 255 for country-specific characters. If your system uses these
-extensions, you can simplify `_ord_init' to loop from 0 to 255.
+extensions, you can simplify `_ord_init()' to loop from 0 to 255.

File: gawk.info, Node: Join Function, Next: Getlocaltime Function, Prev: Ordinal Functions, Up: General Functions
@@ -14483,7 +14510,7 @@ File: gawk.info, Node: Ignoring Assigns, Prev: Empty Files, Up: Data File Man
Occasionally, you might not want `awk' to process command-line variable
assignments (*note Assignment Options::). In particular, if you have a
-file name that contain an `=' character, `awk' treats the file name as
+file name that contains an `=' character, `awk' treats the file name as
an assignment, and does not process it.
Some users have suggested an additional command-line option for
@@ -14979,7 +15006,7 @@ later. The test can only be true for `gawk'. It is false if using
`FS' or `FPAT', or on some other `awk' implementation.
The code that checks for using `FPAT', using `using_fpat' and
-`PROCINFO["FS"]' is similar.
+`PROCINFO["FS"]', is similar.
The main part of the function uses a loop to read database lines,
split the line into fields, and then store the line into each array as
@@ -14999,9 +15026,9 @@ create the element with the null string as its value:
return _pw_byname[name]
}
- Similarly, the `getpwuid' function takes a user ID number argument.
-If that user number is in the database, it returns the appropriate
-line. Otherwise, it returns the null string:
+ Similarly, the `getpwuid()' function takes a user ID number
+argument. If that user number is in the database, it returns the
+appropriate line. Otherwise, it returns the null string:
function getpwuid(uid)
{
@@ -15348,8 +15375,8 @@ index and value, use the indirect function call syntax (*note Indirect
Calls::) on `process', passing it the index and the value.
When calling `walk_array()', you would pass the name of a
-user-defined function that expects to receive and index and a value,
-and then processes the element.
+user-defined function that expects to receive an index and a value, and
+then processes the element.

File: gawk.info, Node: Sample Programs, Next: Advanced Features, Prev: Library Functions, Up: Top
@@ -15610,7 +15637,7 @@ fields to print are `$1', `$3', and `$5'. The intermediate fields are
the fields to print, and `t' tracks the complete field list, including
filler fields:
- function set_charlist( field, i, j, f, g, t,
+ function set_charlist( field, i, j, f, g, n, m, t,
filler, last, len)
{
field = 1 # count total fields
@@ -16014,9 +16041,9 @@ groups in the `PROCINFO' array have the indices `"group1"' through
However, we don't know in advance how many of these groups there are.
This loop works by starting at one, concatenating the value with
-`"group"', and then using `in' to see if that value is in the array.
-Eventually, `i' is incremented past the last group in the array and the
-loop exits.
+`"group"', and then using `in' to see if that value is in the array
+(*note Reference to Elements::). Eventually, `i' is incremented past
+the last group in the array and the loop exits.
The loop is also correct if there are _no_ supplementary groups;
then the condition is false the first time it's tested, and the loop
@@ -18536,7 +18563,8 @@ regular pipes.
---------- Footnotes ----------
- (1) This is very different from the same operator in the C shell.
+ (1) This is very different from the same operator in the C shell and
+in Bash.

File: gawk.info, Node: TCP/IP Networking, Next: Profiling, Prev: Two-way I/O, Up: Advanced Features
@@ -18674,56 +18702,64 @@ First, the `awk' program:
junk
Here is the `awkprof.out' that results from running the `gawk'
-profiler on this program and data (this example also illustrates that
-`awk' programmers sometimes have to work late):
+profiler on this program and data. (This example also illustrates that
+`awk' programmers sometimes get up very early in the morning to work.)
- # gawk profile, created Sun Aug 13 00:00:15 2000
+ # gawk profile, created Thu Feb 27 05:16:21 2014
- # BEGIN block(s)
+ # BEGIN block(s)
- BEGIN {
- 1 print "First BEGIN rule"
- 1 print "Second BEGIN rule"
- }
+ BEGIN {
+ 1 print "First BEGIN rule"
+ }
- # Rule(s)
+ BEGIN {
+ 1 print "Second BEGIN rule"
+ }
- 5 /foo/ { # 2
- 2 print "matched /foo/, gosh"
- 6 for (i = 1; i <= 3; i++) {
- 6 sing()
- }
- }
+ # Rule(s)
- 5 {
- 5 if (/foo/) { # 2
- 2 print "if is true"
- 3 } else {
- 3 print "else is true"
- }
- }
+ 5 /foo/ { # 2
+ 2 print "matched /foo/, gosh"
+ 6 for (i = 1; i <= 3; i++) {
+ 6 sing()
+ }
+ }
+
+ 5 {
+ 5 if (/foo/) { # 2
+ 2 print "if is true"
+ 3 } else {
+ 3 print "else is true"
+ }
+ }
- # END block(s)
+ # END block(s)
- END {
- 1 print "First END rule"
- 1 print "Second END rule"
- }
+ END {
+ 1 print "First END rule"
+ }
+
+ END {
+ 1 print "Second END rule"
+ }
- # Functions, listed alphabetically
- 6 function sing(dummy)
- {
- 6 print "I gotta be me!"
- }
+ # Functions, listed alphabetically
+
+ 6 function sing(dummy)
+ {
+ 6 print "I gotta be me!"
+ }
This example illustrates many of the basic features of profiling
output. They are as follows:
- * The program is printed in the order `BEGIN' rule, `BEGINFILE' rule,
- pattern/action rules, `ENDFILE' rule, `END' rule and functions,
- listed alphabetically. Multiple `BEGIN' and `END' rules are
- merged together, as are multiple `BEGINFILE' and `ENDFILE' rules.
+ * The program is printed in the order `BEGIN' rules, `BEGINFILE'
+ rules, pattern/action rules, `ENDFILE' rules, `END' rules and
+ functions, listed alphabetically. Multiple `BEGIN' and `END'
+ rules retain their separate identities, as do multiple `BEGINFILE'
+ and `ENDFILE' rules.
* Pattern-action rules have two counts. The first count, to the
left of the rule, shows how many times the rule's pattern was
@@ -18774,8 +18810,7 @@ you typed when you wrote it. This is because `gawk' creates the
profiled version by "pretty printing" its internal representation of
the program. The advantage to this is that `gawk' can produce a
standard representation. The disadvantage is that all source-code
-comments are lost, as are the distinctions among multiple `BEGIN',
-`END', `BEGINFILE', and `ENDFILE' rules. Also, things such as:
+comments are lost. Also, things such as:
/foo/
@@ -18834,6 +18869,9 @@ by the `Ctrl-<\>' key.
called this way, `gawk' "pretty prints" the program into `awkprof.out',
without any execution counts.
+ NOTE: The `--pretty-print' option still runs your program. This
+ will change in the next major release.
+

File: gawk.info, Node: Internationalization, Next: Debugger, Prev: Advanced Features, Up: Top
@@ -19127,9 +19165,9 @@ File: gawk.info, Node: Translator i18n, Next: I18N Example, Prev: Programmer
===============================
Once a program's translatable strings have been marked, they must be
-extracted to create the initial `.po' file. As part of translation, it
-is often helpful to rearrange the order in which arguments to `printf'
-are output.
+extracted to create the initial `.pot' file. As part of translation,
+it is often helpful to rearrange the order in which arguments to
+`printf' are output.
`gawk''s `--gen-pot' command-line option extracts the messages and
is discussed next. After that, `printf''s ability to rearrange the
@@ -19202,7 +19240,7 @@ second:
$ gawk 'BEGIN {
> string = "Dont Panic"
- > printf _"%2$d characters live in \"%1$s\"\n",
+ > printf "%2$d characters live in \"%1$s\"\n",
> string, length(string)
> }'
-| 10 characters live in "Dont Panic"
@@ -19227,7 +19265,7 @@ precision capability:
`gawk' does not allow you to mix regular format specifiers and those
with positional specifiers in the same string:
- $ gawk 'BEGIN { printf _"%d %3$s\n", 1, 2, "hi" }'
+ $ gawk 'BEGIN { printf "%d %3$s\n", 1, 2, "hi" }'
error--> gawk: cmd. line:1: fatal: must use `count$' on all formats or none
NOTE: There are some pathological cases that `gawk' may fail to
@@ -19589,7 +19627,7 @@ File: gawk.info, Node: Debugger Invocation, Next: Finding The Bug, Up: Sample
14.2.1 How to Start the Debugger
--------------------------------
-Starting the debugger is almost exactly like running `awk', except you
+Starting the debugger is almost exactly like running `gawk', except you
have to pass an additional option `--debug' or the corresponding short
option `-D'. The file(s) containing the program and any supporting
code are given on the command line as arguments to one or more `-f'
@@ -19702,8 +19740,8 @@ our test input above. Let's look at `NR':
-| NR = number (2)
So we can see that `are_equal()' was only called for the second record
-of the file. Of course, this is because our program contained a rule
-for `NR == 1':
+of the file. Of course, this is because our program contains a rule for
+`NR == 1':
NR == 1 {
last = $0
@@ -21144,11 +21182,15 @@ need it.
arbitrary precision arithmetic. The easiest way to find out is to look
at the output of the following command:
- $ gawk --version
- -| GNU Awk 4.1.0, API: 1.0 (GNU MPFR 3.1.0-p3, GNU MP 5.0.2)
- -| Copyright (C) 1989, 1991-2013 Free Software Foundation.
+ $ ./gawk --version
+ -| GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.0-p3, GNU MP 5.0.2)
+ -| Copyright (C) 1989, 1991-2014 Free Software Foundation.
...
+(You may see different version numbers than what's shown here. That's
+OK; what's important is to see that GNU MPFR and GNU MP are listed in
+the output.)
+
`gawk' uses the GNU MPFR (http://www.mpfr.org) and GNU MP
(http://gmplib.org) (GMP) libraries for arbitrary precision arithmetic
on numbers. So if you do not see the names of these libraries in the
@@ -21518,7 +21560,7 @@ floating-point value to begin with:
gawk -M 'BEGIN { n = 13.0; print n % 2.0 }'
- Note that for the particular example above, there is likely best to
+ Note that for the particular example above, it is likely best to
just use the following:
gawk -M 'BEGIN { n = 13; print n % 2 }'
@@ -21722,6 +21764,7 @@ This (rather large) minor node describes the API in detail.
* Extension API Functions Introduction:: Introduction to the API functions.
* General Data Types:: The data types.
* Requesting Values:: How to get a value.
+* Memory Allocation Functions:: Functions for allocating memory.
* Constructor Functions:: Functions for creating values.
* Registration Functions:: Functions to register things with
`gawk'.
@@ -21770,6 +21813,8 @@ operations:
* Symbol table access: retrieving a global variable, creating one,
or changing one.
+ * Allocating, reallocating, and releasing memory.
+
* Creating and releasing cached values; this provides an efficient
way to use values for multiple variables and can be a big
performance win.
@@ -21798,10 +21843,8 @@ operations:
`EOF' `<stdio.h>'
`FILE' `<stdio.h>'
`NULL' `<stddef.h>'
- `malloc()' `<stdlib.h>'
`memcpy()' `<string.h>'
`memset()' `<string.h>'
- `realloc()' `<stdlib.h>'
`size_t' `<sys/types.h>'
`struct stat' `<sys/stat.h>'
@@ -21827,7 +21870,9 @@ operations:
* All pointers filled in by `gawk' are to memory managed by `gawk'
and should be treated by the extension as read-only. Memory for
_all_ strings passed into `gawk' from the extension _must_ come
- from `malloc()' and is managed by `gawk' from then on.
+ from calling the API-provided function pointers `api_malloc()',
+ `api_calloc()' or `api_realloc()', and is managed by `gawk' from
+ then on.
* The API defines several simple `struct's that map values as seen
from `awk'. A value can be a `double', a string, or an array (as
@@ -21899,7 +21944,9 @@ that use them.
`} awk_string_t;'
This represents a mutable string. `gawk' owns the memory pointed
to if it supplied the value. Otherwise, it takes ownership of the
- memory pointed to. *Such memory must come from `malloc()'!*
+ memory pointed to. *Such memory must come from calling the
+ API-provided function pointers `api_malloc()', `api_calloc()', or
+ `api_realloc()'!*
As mentioned earlier, strings are maintained using the current
multibyte encoding.
@@ -22004,7 +22051,7 @@ the value.
See also the entry for "Cookie" in the *note Glossary::.

-File: gawk.info, Node: Requesting Values, Next: Constructor Functions, Prev: General Data Types, Up: Extension API Description
+File: gawk.info, Node: Requesting Values, Next: Memory Allocation Functions, Prev: General Data Types, Up: Extension API Description
16.4.3 Requesting Values
------------------------
@@ -22037,46 +22084,43 @@ Requested: Scalar Scalar Scalar false false
Table 16.1: Value Types Returned

-File: gawk.info, Node: Constructor Functions, Next: Registration Functions, Prev: Requesting Values, Up: Extension API Description
+File: gawk.info, Node: Memory Allocation Functions, Next: Constructor Functions, Prev: Requesting Values, Up: Extension API Description
-16.4.4 Constructor Functions and Convenience Macros
----------------------------------------------------
+16.4.4 Memory Allocation Functions and Convenience Macros
+---------------------------------------------------------
-The API provides a number of "constructor" functions for creating
-string and numeric values, as well as a number of convenience macros.
-This node presents them all as function prototypes, in the way that
-extension code would use them.
+The API provides a number of "memory allocation" functions for
+allocating memory that can be passed to `gawk', as well as a number of
+convenience macros.
-`static inline awk_value_t *'
-`make_const_string(const char *string, size_t length, awk_value_t *result)'
- This function creates a string value in the `awk_value_t' variable
- pointed to by `result'. It expects `string' to be a C string
- constant (or other string data), and automatically creates a
- _copy_ of the data for storage in `result'. It returns `result'.
+`void *gawk_malloc(size_t size);'
+ Call `gawk'-provided `api_malloc()' to allocate storage that may
+ be passed to `gawk'.
-`static inline awk_value_t *'
-`make_malloced_string(const char *string, size_t length, awk_value_t *result)'
- This function creates a string value in the `awk_value_t' variable
- pointed to by `result'. It expects `string' to be a `char *' value
- pointing to data previously obtained from `malloc()'. The idea here
- is that the data is passed directly to `gawk', which assumes
- responsibility for it. It returns `result'.
+`void *gawk_calloc(size_t nmemb, size_t size);'
+ Call `gawk'-provided `api_calloc()' to allocate storage that may
+ be passed to `gawk'.
-`static inline awk_value_t *'
-`make_null_string(awk_value_t *result)'
- This specialized function creates a null string (the "undefined"
- value) in the `awk_value_t' variable pointed to by `result'. It
- returns `result'.
+`void *gawk_realloc(void *ptr, size_t size);'
+ Call `gawk'-provided `api_realloc()' to allocate storage that may
+ be passed to `gawk'.
-`static inline awk_value_t *'
-`make_number(double num, awk_value_t *result)'
- This function simply creates a numeric value in the `awk_value_t'
- variable pointed to by `result'.
+`void gawk_free(void *ptr);'
+ Call `gawk'-provided `api_free()' to release storage that was
+ allocated with `gawk_malloc()', `gawk_calloc()' or
+ `gawk_realloc()'.
- Two convenience macros may be used for allocating storage from
-`malloc()' and `realloc()'. If the allocation fails, they cause `gawk'
-to exit with a fatal error message. They should be used as if they were
-procedure calls that do not return a value.
+ The API has to provide these functions because it is possible for an
+extension to be compiled and linked against a different version of the
+C library than was used for the `gawk' executable.(1) If `gawk' were to
+use its version of `free()' when the memory came from an unrelated
+version of `malloc()', unexpected behavior would likely result.
+
+ Two convenience macros may be used for allocating storage from the
+API-provided function pointers `api_malloc()' and `api_realloc()'. If
+the allocation fails, they cause `gawk' to exit with a fatal error
+message. They should be used as if they were procedure calls that do
+not return a value.
`#define emalloc(pointer, type, size, message) ...'
The arguments to this macro are as follows:
@@ -22085,7 +22129,7 @@ procedure calls that do not return a value.
`type'
The type of the pointer variable, used to create a cast for
- the call to `malloc()'.
+ the call to `api_malloc()'.
`size'
The total number of bytes to be allocated.
@@ -22105,14 +22149,57 @@ procedure calls that do not return a value.
make_malloced_string(message, strlen(message), & result);
`#define erealloc(pointer, type, size, message) ...'
- This is like `emalloc()', but it calls `realloc()', instead of
- `malloc()'. The arguments are the same as for the `emalloc()'
+ This is like `emalloc()', but it calls `api_realloc()', instead of
+ `api_malloc()'. The arguments are the same as for the `emalloc()'
macro.
+ ---------- Footnotes ----------
+
+ (1) This is more common on MS-Windows systems, but can happen on
+Unix-like systems as well.
+
+
+File: gawk.info, Node: Constructor Functions, Next: Registration Functions, Prev: Memory Allocation Functions, Up: Extension API Description
+
+16.4.5 Constructor Functions
+----------------------------
+
+The API provides a number of "constructor" functions for creating
+string and numeric values, as well as a number of convenience macros.
+This node presents them all as function prototypes, in the way that
+extension code would use them.
+
+`static inline awk_value_t *'
+`make_const_string(const char *string, size_t length, awk_value_t *result)'
+ This function creates a string value in the `awk_value_t' variable
+ pointed to by `result'. It expects `string' to be a C string
+ constant (or other string data), and automatically creates a
+ _copy_ of the data for storage in `result'. It returns `result'.
+
+`static inline awk_value_t *'
+`make_malloced_string(const char *string, size_t length, awk_value_t *result)'
+ This function creates a string value in the `awk_value_t' variable
+ pointed to by `result'. It expects `string' to be a `char *' value
+ pointing to data previously obtained from the api-provided
+ functions `api_malloc()', `api_calloc()' or `api_realloc()'. The
+ idea here is that the data is passed directly to `gawk', which
+ assumes responsibility for it. It returns `result'.
+
+`static inline awk_value_t *'
+`make_null_string(awk_value_t *result)'
+ This specialized function creates a null string (the "undefined"
+ value) in the `awk_value_t' variable pointed to by `result'. It
+ returns `result'.
+
+`static inline awk_value_t *'
+`make_number(double num, awk_value_t *result)'
+ This function simply creates a numeric value in the `awk_value_t'
+ variable pointed to by `result'.
+

File: gawk.info, Node: Registration Functions, Next: Printing Messages, Prev: Constructor Functions, Up: Extension API Description
-16.4.5 Registration Functions
+16.4.6 Registration Functions
-----------------------------
This minor node describes the API functions for registering parts of
@@ -22130,7 +22217,7 @@ your extension with `gawk'.

File: gawk.info, Node: Extension Functions, Next: Exit Callback Functions, Up: Registration Functions
-16.4.5.1 Registering An Extension Function
+16.4.6.1 Registering An Extension Function
..........................................
Extension functions are described by the following record:
@@ -22155,8 +22242,10 @@ Extension functions are described by the following record:
`awk_value_t *(*function)(int num_actual_args, awk_value_t *result);'
This is a pointer to the C function that provides the desired
functionality. The function must fill in the result with either a
- number or a string. `awk' takes ownership of any string memory.
- As mentioned earlier, string memory *must* come from `malloc()'.
+ number or a string. `gawk' takes ownership of any string memory.
+ As mentioned earlier, string memory *must* come from the
+ api-provided functions `api_malloc()', `api_calloc()' or
+ `api_realloc()'.
The `num_actual_args' argument tells the C function how many
actual parameters were passed from the calling `awk' code.
@@ -22182,7 +22271,7 @@ register it with `gawk' using this API function:

File: gawk.info, Node: Exit Callback Functions, Next: Extension Version String, Prev: Extension Functions, Up: Registration Functions
-16.4.5.2 Registering An Exit Callback Function
+16.4.6.2 Registering An Exit Callback Function
..............................................
An "exit callback" function is a function that `gawk' calls before it
@@ -22211,7 +22300,7 @@ order--that is, in the reverse order in which they are registered with

File: gawk.info, Node: Extension Version String, Next: Input Parsers, Prev: Exit Callback Functions, Up: Registration Functions
-16.4.5.3 Registering An Extension Version String
+16.4.6.3 Registering An Extension Version String
................................................
You can register a version string which indicates the name and version
@@ -22227,7 +22316,7 @@ invoked with the `--version' option.

File: gawk.info, Node: Input Parsers, Next: Output Wrappers, Prev: Extension Version String, Up: Registration Functions
-16.4.5.4 Customized Input Parsers
+16.4.6.4 Customized Input Parsers
.................................
By default, `gawk' reads text files as its input. It uses the value of
@@ -22449,7 +22538,7 @@ whether or not to activate an input parser (*note BEGINFILE/ENDFILE::).

File: gawk.info, Node: Output Wrappers, Next: Two-way processors, Prev: Input Parsers, Up: Registration Functions
-16.4.5.5 Customized Output Wrappers
+16.4.6.5 Customized Output Wrappers
...................................
An "output wrapper" is the mirror image of an input parser. It allows
@@ -22556,7 +22645,7 @@ normally.

File: gawk.info, Node: Two-way processors, Prev: Output Wrappers, Up: Registration Functions
-16.4.5.6 Customized Two-way Processors
+16.4.6.6 Customized Two-way Processors
......................................
A "two-way processor" combines an input parser and an output wrapper for
@@ -22609,7 +22698,7 @@ can take this" and "take over for this" functions,

File: gawk.info, Node: Printing Messages, Next: Updating `ERRNO', Prev: Registration Functions, Up: Extension API Description
-16.4.6 Printing Messages
+16.4.7 Printing Messages
------------------------
You can print different kinds of warning messages from your extension,
@@ -22640,7 +22729,7 @@ the pity.

File: gawk.info, Node: Updating `ERRNO', Next: Accessing Parameters, Prev: Printing Messages, Up: Extension API Description
-16.4.7 Updating `ERRNO'
+16.4.8 Updating `ERRNO'
-----------------------
The following functions allow you to update the `ERRNO' variable:
@@ -22661,7 +22750,7 @@ The following functions allow you to update the `ERRNO' variable:

File: gawk.info, Node: Accessing Parameters, Next: Symbol Table Access, Prev: Updating `ERRNO', Up: Extension API Description
-16.4.8 Accessing and Updating Parameters
+16.4.9 Accessing and Updating Parameters
----------------------------------------
Two functions give you access to the arguments (parameters) passed to
@@ -22687,8 +22776,8 @@ your extension function. They are:

File: gawk.info, Node: Symbol Table Access, Next: Array Manipulation, Prev: Accessing Parameters, Up: Extension API Description
-16.4.9 Symbol Table Access
---------------------------
+16.4.10 Symbol Table Access
+---------------------------
Two sets of routines provide access to global variables, and one set
allows you to create and release cached values.
@@ -22702,8 +22791,8 @@ allows you to create and release cached values.

File: gawk.info, Node: Symbol table by name, Next: Symbol table by cookie, Up: Symbol Table Access
-16.4.9.1 Variable Access and Update by Name
-...........................................
+16.4.10.1 Variable Access and Update by Name
+............................................
The following routines provide the ability to access and update global
`awk'-level variables by name. In compiler terminology, identifiers of
@@ -22735,11 +22824,16 @@ termed a "symbol table".
However, with the exception of the `PROCINFO' array, an extension
cannot change any of those variables.
+ NOTE: It is possible for the lookup of `PROCINFO' to fail. This
+ happens if the `awk' program being run does not reference
+ `PROCINFO'; in this case `gawk' doesn't bother to create the array
+ and populate it.
+

File: gawk.info, Node: Symbol table by cookie, Next: Cached values, Prev: Symbol table by name, Up: Symbol Table Access
-16.4.9.2 Variable Access and Update by Cookie
-.............................................
+16.4.10.2 Variable Access and Update by Cookie
+..............................................
A "scalar cookie" is an opaque handle that provides access to a global
variable or array. It is an optimization that avoids looking up
@@ -22851,8 +22945,8 @@ like this:

File: gawk.info, Node: Cached values, Prev: Symbol table by cookie, Up: Symbol Table Access
-16.4.9.3 Creating and Using Cached Values
-.........................................
+16.4.10.3 Creating and Using Cached Values
+..........................................
The routines in this section allow you to create and release cached
values. As with scalar cookies, in theory, cached values are not
@@ -22862,8 +22956,9 @@ variables using `sym_update()' or `sym_update_scalar()', as you like.
However, you can understand the point of cached values if you
remember that _every_ string value's storage _must_ come from
-`malloc()'. If you have 20 variables, all of which have the same
-string value, you must create 20 identical copies of the string.(1)
+`api_malloc()', `api_calloc()' or `api_realloc()'. If you have 20
+variables, all of which have the same string value, you must create 20
+identical copies of the string.(1)
It is clearly more efficient, if possible, to create a value once,
and then tell `gawk' to reuse the value for multiple variables. That is
@@ -22946,7 +23041,7 @@ using `release_value()'.

File: gawk.info, Node: Array Manipulation, Next: Extension API Variables, Prev: Symbol Table Access, Up: Extension API Description
-16.4.10 Array Manipulation
+16.4.11 Array Manipulation
--------------------------
The primary data structure(1) in `awk' is the associative array (*note
@@ -22973,7 +23068,7 @@ arrays of arrays (*note General Data Types::).

File: gawk.info, Node: Array Data Types, Next: Array Functions, Up: Array Manipulation
-16.4.10.1 Array Data Types
+16.4.11.1 Array Data Types
..........................
The data types associated with arrays are listed below.
@@ -23040,7 +23135,7 @@ overuse this term.

File: gawk.info, Node: Array Functions, Next: Flattening Arrays, Prev: Array Data Types, Up: Array Manipulation
-16.4.10.2 Array Functions
+16.4.11.2 Array Functions
.........................
The following functions relate to individual array elements.
@@ -23066,7 +23161,8 @@ The following functions relate to individual array elements.
strings (*note Conversion::); thus using integral values is safest.
As with _all_ strings passed into `gawk' from an extension, the
- string value of `index' must come from `malloc()', and `gawk'
+ string value of `index' must come from the API-provided functions
+ `api_malloc()', `api_calloc()' or `api_realloc()' and `gawk'
releases the storage.
`awk_bool_t set_array_element(awk_array_t a_cookie,'
@@ -23117,7 +23213,7 @@ The following functions relate to individual array elements.

File: gawk.info, Node: Flattening Arrays, Next: Creating Arrays, Prev: Array Functions, Up: Array Manipulation
-16.4.10.3 Working With All The Elements of an Array
+16.4.11.3 Working With All The Elements of an Array
...................................................
To "flatten" an array is create a structure that represents the full
@@ -23291,7 +23387,7 @@ return value to success, and returns:

File: gawk.info, Node: Creating Arrays, Prev: Flattening Arrays, Up: Array Manipulation
-16.4.10.4 How To Create and Populate Arrays
+16.4.11.4 How To Create and Populate Arrays
...........................................
Besides working with arrays created by `awk' code, you can create
@@ -23430,7 +23526,7 @@ environment variable.)

File: gawk.info, Node: Extension API Variables, Next: Extension API Boilerplate, Prev: Array Manipulation, Up: Extension API Description
-16.4.11 API Variables
+16.4.12 API Variables
---------------------
The API provides two sets of variables. The first provides information
@@ -23447,7 +23543,7 @@ information about how `gawk' was invoked.

File: gawk.info, Node: Extension Versioning, Next: Extension API Informational Variables, Up: Extension API Variables
-16.4.11.1 API Version Constants and Variables
+16.4.12.1 API Version Constants and Variables
.............................................
The API provides both a "major" and a "minor" version number. The API
@@ -23496,7 +23592,7 @@ Boilerplate::).

File: gawk.info, Node: Extension API Informational Variables, Prev: Extension Versioning, Up: Extension API Variables
-16.4.11.2 Informational Variables
+16.4.12.2 Informational Variables
.................................
The API provides access to several variables that describe whether the
@@ -23532,7 +23628,7 @@ change during execution.

File: gawk.info, Node: Extension API Boilerplate, Prev: Extension API Variables, Up: Extension API Description
-16.4.12 Boilerplate Code
+16.4.13 Boilerplate Code
------------------------
As mentioned earlier (*note Extension Mechanism Outline::), the function
@@ -24050,7 +24146,7 @@ declarations and argument checking:
awk_array_t array;
int ret;
struct stat sbuf;
- /* default is stat() */
+ /* default is lstat() */
int (*statfunc)(const char *path, struct stat *sbuf) = lstat;
assert(result != NULL);
@@ -24448,12 +24544,16 @@ File: gawk.info, Node: Extension Sample Fnmatch, Next: Extension Sample Fork,
This extension provides an interface to the C library `fnmatch()'
function. The usage is:
- @load "fnmatch"
+`@load "fnmatch"'
+ This is how you load the extension.
- result = fnmatch(pattern, string, flags)
+`result = fnmatch(pattern, string, flags)'
+ The return value is zero on success, `FNM_NOMATCH' if the string
+ did not match the pattern, or a different non-zero value if an
+ error occurred.
- The `fnmatch' extension adds a single function named `fnmatch()',
-one constant (`FNM_NOMATCH'), and an array of flag values named `FNM'.
+ Besides the `fnmatch()' function, the `fnmatch' extension adds one
+constant (`FNM_NOMATCH'), and an array of flag values named `FNM'.
The arguments to `fnmatch()' are:
@@ -24467,10 +24567,6 @@ one constant (`FNM_NOMATCH'), and an array of flag values named `FNM'.
Either zero, or the bitwise OR of one or more of the flags in the
`FNM' array.
- The return value is zero on success, `FNM_NOMATCH' if the string did
-not match the pattern, or a different non-zero value if an error
-occurred.
-
The flags are follows:
`FNM["CASEFOLD"]' Corresponds to the `FNM_CASEFOLD' flag as defined in
@@ -24506,14 +24602,14 @@ The `fork' extension adds three functions, as follows.
This is how you load the extension.
`pid = fork()'
- This function creates a new process. The return value is the zero
- in the child and the process-id number of the child in the parent,
- or -1 upon error. In the latter case, `ERRNO' indicates the
- problem. In the child, `PROCINFO["pid"]' and `PROCINFO["ppid"]'
- are updated to reflect the correct values.
+ This function creates a new process. The return value is zero in
+ the child and the process-ID number of the child in the parent, or
+ -1 upon error. In the latter case, `ERRNO' indicates the problem.
+ In the child, `PROCINFO["pid"]' and `PROCINFO["ppid"]' are updated
+ to reflect the correct values.
`ret = waitpid(pid)'
- This function takes a numeric argument, which is the process-id to
+ This function takes a numeric argument, which is the process-ID to
wait for. The return value is that of the `waitpid()' system call.
`ret = wait()'
@@ -24746,7 +24842,8 @@ File: gawk.info, Node: Extension Sample Readfile, Next: Extension Sample API T
16.7.10 Reading An Entire File
------------------------------
-The `readfile' extension adds a single function named `readfile()':
+The `readfile' extension adds a single function named `readfile()', and
+an input parser:
`@load "readfile"'
This is how you load the extension.
@@ -24756,6 +24853,12 @@ The `readfile' extension adds a single function named `readfile()':
a string containing the entire contents of the requested file.
Upon error, the function returns the empty string and sets `ERRNO'.
+`BEGIN { PROCINFO["readfile"] = 1 }'
+ In addition, the extension adds an input parser that is activated
+ if `PROCINFO["readfile"]' exists. When activated, each input file
+ is returned in its entirety as `$0'. `RT' is set to the null
+ string.
+
Here is an example:
@load "readfile"
@@ -25603,7 +25706,7 @@ in POSIX `awk', in the order they were added to `gawk'.
- The `-i' and `--include' options load `awk' library files.
- - The `-l' and `--load' options for load compiled dynamic
+ - The `-l' and `--load' options load compiled dynamic
extensions.
- The `-M' and `--bignum' options enable MPFR.
@@ -25617,8 +25720,9 @@ in POSIX `awk', in the order they were added to `gawk'.
* Support for high precision arithmetic with MPFR. (*note Gawk and
MPFR::).
- * The `and()', `or()' and `xor()' functions allow any number of
- arguments, with a minimum of two (*note Bitwise Functions::).
+ * The `and()', `or()' and `xor()' functions changed to allow any
+ number of arguments, with a minimum of two (*note Bitwise
+ Functions::).
* The dynamic extension interface was completely redone (*note
Dynamic Extensions::).
@@ -25637,18 +25741,18 @@ available versions of `awk' (*note Other Versions::).
Feature BWK Awk Mawk GNU Awk
--------------------------------------------------------
`\x' Escape sequence X X X
-`RS' as regexp X X
`FS' as null string X X X
`/dev/stdin' special file X X X
`/dev/stdout' special file X X X
`/dev/stderr' special file X X X
-`**' and `**=' operators X X
-`fflush()' function X X X
-`func' keyword X X
-`nextfile' statement X X X
`delete' without subscript X X X
+`fflush()' function X X X
`length()' of an array X X X
+`nextfile' statement X X X
+`**' and `**=' operators X X
+`func' keyword X X
`BINMODE' variable X X
+`RS' as regexp X X
Time related functions X X
(Technically speaking, as of late 2012, `fflush()', `delete ARRAY',
@@ -25681,7 +25785,7 @@ as working in this fashion, and in particular, would teach that the
`[A-Z]' was the "correct" way to match uppercase letters. And indeed,
this was true.(1)
- The 1993 POSIX standard introduced the idea of locales (*note
+ The 1992 POSIX standard introduced the idea of locales (*note
Locales::). Since many locales include other letters besides the plain
twenty-six letters of the American English alphabet, the POSIX standard
added character classes (*note Bracket Expressions::) as a way to match
@@ -25744,17 +25848,17 @@ of range expressions was _undefined_.(3)
By using this lovely technical term, the standard gives license to
implementors to implement ranges in whatever way they choose. The
`gawk' maintainer chose to apply the pre-POSIX meaning in all cases:
-the default regexp matching; with `--traditional', and with `--posix';
+the default regexp matching; with `--traditional' and with `--posix';
in all cases, `gawk' remains POSIX compliant.
---------- Footnotes ----------
(1) And Life was good.
- (2) And thus was born the Campain for Rational Range Interpretation
-(or RRI). A number of GNU tools, such as `grep' and `sed', have either
-implemented this change, or will soon. Thanks to Karl Berry for
-coining the phrase "Rational Range Interpretation."
+ (2) And thus was born the Campaign for Rational Range Interpretation
+(or RRI). A number of GNU tools have either implemented this change, or
+will soon. Thanks to Karl Berry for coining the phrase "Rational Range
+Interpretation."
(3) See the standard
(http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03_05)
@@ -25866,6 +25970,9 @@ Info file, in approximate chronological order:
* Anders Wallin helped keep the VMS port going for several years.
+ * Assaf Gordon contributed the code to implement the `--sandbox'
+ option.
+
* John Haque made the following contributions:
- The modifications to convert `gawk' into a byte-code
@@ -25893,6 +26000,10 @@ Info file, in approximate chronological order:
4.1 was driven primarily by Arnold Robbins and Andrew Schorr, with
notable contributions from the rest of the development team.
+ * Antonio Giovanni Colombo rewrote a number of examples in the early
+ chapters that were severely dated, for which I am incredibly
+ grateful.
+
* Arnold Robbins has been working on `gawk' since 1988, at first
helping David Trueman, and as the primary maintainer since around
1994.
@@ -25949,7 +26060,7 @@ There are three ways to get GNU software:
supported. If you have the `wget' program, you can use a command
like the following:
- wget http://ftp.gnu.org/gnu/gawk/gawk-4.1.0.tar.gz
+ wget http://ftp.gnu.org/gnu/gawk/gawk-4.1.1.tar.gz
The GNU software archive is mirrored around the world. The
up-to-date list of mirror sites is available from the main FSF web site
@@ -25968,26 +26079,26 @@ compression programs: `gzip', `bzip2', and `xz'. For simplicity, the
rest of these instructions assume you are using the one compressed with
the GNU Zip program, `gzip'.
- Once you have the distribution (for example, `gawk-4.1.0.tar.gz'),
+ Once you have the distribution (for example, `gawk-4.1.1.tar.gz'),
use `gzip' to expand the file and then use `tar' to extract it. You
can use the following pipeline to produce the `gawk' distribution:
# Under System V, add 'o' to the tar options
- gzip -d -c gawk-4.1.0.tar.gz | tar -xvpf -
+ gzip -d -c gawk-4.1.1.tar.gz | tar -xvpf -
On a system with GNU `tar', you can let `tar' do the decompression
for you:
- tar -xvpzf gawk-4.1.0.tar.gz
+ tar -xvpzf gawk-4.1.1.tar.gz
-Extracting the archive creates a directory named `gawk-4.1.0' in the
+Extracting the archive creates a directory named `gawk-4.1.1' in the
current directory.
The distribution file name is of the form `gawk-V.R.P.tar.gz'. The
V represents the major version of `gawk', the R represents the current
release of version V, and the P represents a "patch level", meaning
that minor bugs have been fixed in the release. The current patch
-level is 0, but when retrieving distributions, you should get the
+level is 1, but when retrieving distributions, you should get the
version with the highest version, release, and patch level. (Note,
however, that patch levels greater than or equal to 70 denote "beta" or
nonproduction software; you might not want to retrieve such a version
@@ -26197,7 +26308,7 @@ Unix-derived systems, GNU/Linux, BSD-based systems, and the Cygwin
environment for MS-Windows.
After you have extracted the `gawk' distribution, `cd' to
-`gawk-4.1.0'. Like most GNU software, `gawk' is configured
+`gawk-4.1.1'. Like most GNU software, `gawk' is configured
automatically for your system by running the `configure' program. This
program is a Bourne shell script that is generated automatically using
GNU `autoconf'. (The `autoconf' software is described fully starting
@@ -26236,8 +26347,8 @@ failure is not described there, please send in a bug report (*note
Bugs::).
Of course, once you've built `gawk', it is likely that you will wish
-to install it. To do so, you need to run the command `make check', as
-a user with the appropriate permissions. How to do this varies by
+to install it. To do so, you need to run the command `make install',
+as a user with the appropriate permissions. How to do this varies by
system, but on many systems you can use the `sudo' command to do so.
The command then becomes `sudo make install'. It is likely that you
will be asked for your password, and you will have to have been set up
@@ -26520,10 +26631,9 @@ File: gawk.info, Node: PC Using, Next: Cygwin, Prev: PC Testing, Up: PC Inst
B.3.1.4 Using `gawk' on PC Operating Systems
............................................
-With the exception of the Cygwin environment, the `|&' operator and
-TCP/IP networking (*note TCP/IP Networking::) are not supported for
-MS-DOS or MS-Windows. EMX (OS/2 only) does support at least the `|&'
-operator.
+Under MS-DOS and MS-Windows, the Cygwin and MinGW environments support
+both the `|&' operator and TCP/IP networking (*note TCP/IP
+Networking::). EMX (OS/2 only) supports at least the `|&' operator.
The MS-DOS and MS-Windows versions of `gawk' search for program
files as described in *note AWKPATH Variable::. However, semicolons
@@ -26616,13 +26726,13 @@ B.3.1.5 Using `gawk' In The Cygwin Environment
`gawk' can be built and used "out of the box" under MS-Windows if you
are using the Cygwin environment (http://www.cygwin.com). This
-environment provides an excellent simulation of Unix, using the GNU
-tools, such as Bash, the GNU Compiler Collection (GCC), GNU Make, and
-other GNU programs. Compilation and installation for Cygwin is the
+environment provides an excellent simulation of GNU/Linux, using the
+GNU tools, such as Bash, the GNU Compiler Collection (GCC), GNU Make,
+and other GNU programs. Compilation and installation for Cygwin is the
same as for a Unix system:
- tar -xvpzf gawk-4.1.0.tar.gz
- cd gawk-4.1.0
+ tar -xvpzf gawk-4.1.1.tar.gz
+ cd gawk-4.1.1
./configure
make
@@ -26630,10 +26740,6 @@ same as for a Unix system:
on Cygwin takes considerably longer. However, it does finish, and then
the `make' proceeds as usual.
- NOTE: The `|&' operator and TCP/IP networking (*note TCP/IP
- Networking::) are fully supported in the Cygwin environment. This
- is not true for any other environment on MS-Windows.
-

File: gawk.info, Node: MSYS, Prev: Cygwin, Up: PC Installation
@@ -26695,20 +26801,13 @@ available from `https://github.com/endlesssoftware/mmk'.
With `ODS-5' volumes and extended parsing enabled, the case of the
target parameter may need to be exact.
- Older versions of `gawk' could be built with VAX C or GNU C on
-VAX/VMS, as well as with DEC C, but that is no longer supported. DEC C
-(also briefly known as "Compaq C" and now known as "HP C," but referred
-to here as "DEC C") is required. Both `vmsbuild.com' and `descrip.mms'
-contain some obsolete support for the older compilers but are set up to
-use DEC C by default.
-
`gawk' has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1 using
Compaq C V6.4, and Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3.
The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both Alpha
and IA64 VMS 8.4 used HP C 7.3.(1)
- Work is currently being done for a procedure to build `gawk' and
-create a PCSI kit for compatible with the GNV product.
+ The `[.vms]gawk_build_steps.txt' provides information on how to build
+`gawk' into a PCSI kit that is compatible with the GNV product.
---------- Footnotes ----------
@@ -26797,7 +26896,8 @@ add the `gawk' and `awk' to the system wide `DCLTABLES'.
The DCL syntax is documented in the `gawk.hlp' file.
- Optionally, `gawk.hlp' entry can be loaded into a VMS help library:
+ Optionally, the `gawk.hlp' entry can be loaded into a VMS help
+library:
$ LIBRARY/HELP sys$help:helplib [.vms]gawk.hlp
@@ -27926,7 +28026,7 @@ D.1 What a Program Does
=======================
At the most basic level, the job of a program is to process some input
-data and produce results. See *note figure-general-flow::.
+data and produce results. See *note figure-general-flow::.
_______
+------+ / \ +---------+
@@ -28159,9 +28259,6 @@ Bash
The GNU version of the standard shell (the Bourne-Again SHell).
See also "Bourne Shell."
-BBS
- See "Bulletin Board System."
-
Bit
Short for "Binary Digit." All values in computer memory
ultimately reduce to binary digits: values that are either zero or
@@ -28207,11 +28304,6 @@ Built-in Variable
Braces
See "Curly Braces."
-Bulletin Board System
- A computer system allowing users to log in and read and/or leave
- messages for other users of the system, much like leaving paper
- notes on a bulletin board.
-
C
The system programming language that most GNU software is written
in. The `awk' programming language has C-like syntax, and this
@@ -28318,8 +28410,8 @@ Dynamic Regular Expression
(*Note Computed Regexps::.)
Environment
- A collection of strings, of the form NAME`='VAL, that each program
- has available to it. Users generally place values into the
+ A collection of strings, of the form NAME`='`val', that each
+ program has available to it. Users generally place values into the
environment in order to provide information to various programs.
Typical examples are the environment variables `HOME' and `PATH'.
@@ -28734,7 +28826,6 @@ GNU General Public License
**************************
Version 3, 29 June 2007
-
Copyright (C) 2007 Free Software Foundation, Inc. `http://fsf.org/'
Everyone is permitted to copy and distribute verbatim copies of this
@@ -29457,7 +29548,6 @@ GNU Free Documentation License
******************************
Version 1.3, 3 November 2008
-
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
`http://fsf.org/'
@@ -29961,17 +30051,17 @@ Index
* ! (exclamation point), !~ operator <5>: Computed Regexps. (line 6)
* ! (exclamation point), !~ operator <6>: Case-sensitivity. (line 26)
* ! (exclamation point), !~ operator: Regexp Usage. (line 19)
-* " (double quote) <1>: Quoting. (line 37)
-* " (double quote): Read Terminal. (line 25)
+* " (double quote) in shell commands: Read Terminal. (line 25)
* " (double quote), in regexp constants: Computed Regexps. (line 28)
+* " (double quote), in shell commands: Quoting. (line 37)
* # (number sign), #! (executable scripts): Executable Scripts.
(line 6)
* # (number sign), commenting: Comments. (line 6)
-* $ (dollar sign): Regexp Operators. (line 35)
* $ (dollar sign), $ field operator <1>: Precedence. (line 43)
* $ (dollar sign), $ field operator: Fields. (line 19)
* $ (dollar sign), incrementing fields and arrays: Increment Ops.
(line 30)
+* $ (dollar sign), regexp operator: Regexp Operators. (line 35)
* % (percent sign), % operator: Precedence. (line 55)
* % (percent sign), %= operator <1>: Precedence. (line 95)
* % (percent sign), %= operator: Assignment Ops. (line 129)
@@ -29979,13 +30069,13 @@ Index
* & (ampersand), && operator: Boolean Ops. (line 57)
* & (ampersand), gsub()/gensub()/sub() functions and: Gory Details.
(line 6)
-* ' (single quote) <1>: Quoting. (line 31)
-* ' (single quote) <2>: Long. (line 33)
* ' (single quote): One-shot. (line 15)
+* ' (single quote) in gawk command lines: Long. (line 33)
+* ' (single quote), in shell commands: Quoting. (line 31)
* ' (single quote), vs. apostrophe: Comments. (line 27)
* ' (single quote), with double quotes: Quoting. (line 53)
-* () (parentheses) <1>: Profiling. (line 138)
-* () (parentheses): Regexp Operators. (line 79)
+* () (parentheses), in a profile: Profiling. (line 146)
+* () (parentheses), regexp operator: Regexp Operators. (line 79)
* * (asterisk), * operator, as multiplication operator: Precedence.
(line 55)
* * (asterisk), * operator, as regexp operator: Regexp Operators.
@@ -29998,12 +30088,12 @@ Index
* * (asterisk), **= operator: Assignment Ops. (line 129)
* * (asterisk), *= operator <1>: Precedence. (line 95)
* * (asterisk), *= operator: Assignment Ops. (line 129)
-* + (plus sign): Regexp Operators. (line 102)
* + (plus sign), + operator: Precedence. (line 52)
* + (plus sign), ++ operator <1>: Precedence. (line 46)
* + (plus sign), ++ operator: Increment Ops. (line 11)
* + (plus sign), += operator <1>: Precedence. (line 95)
* + (plus sign), += operator: Assignment Ops. (line 82)
+* + (plus sign), regexp operator: Regexp Operators. (line 102)
* , (comma), in range patterns: Ranges. (line 6)
* - (hyphen), - operator: Precedence. (line 52)
* - (hyphen), -- operator <1>: Precedence. (line 46)
@@ -30023,8 +30113,9 @@ Index
(line 15)
* --disable-nls configuration option: Additional Configuration Options.
(line 30)
-* --dump-variables option <1>: Library Names. (line 45)
* --dump-variables option: Options. (line 93)
+* --dump-variables option, using for library functions: Library Names.
+ (line 45)
* --exec option: Options. (line 125)
* --field-separator option: Options. (line 21)
* --file option: Options. (line 25)
@@ -30067,12 +30158,12 @@ Index
* -d option: Options. (line 93)
* -E option: Options. (line 125)
* -e option: Options. (line 117)
-* -F option: Command Line Field Separator.
- (line 6)
* -f option: Options. (line 25)
* -F option: Options. (line 21)
* -f option: Long. (line 12)
* -F option, -Ft sets FS to TAB: Options. (line 301)
+* -F option, command line: Command Line Field Separator.
+ (line 6)
* -f option, multiple uses: Options. (line 306)
* -g option: Options. (line 147)
* -h option: Options. (line 154)
@@ -30092,7 +30183,7 @@ Index
* -V option: Options. (line 293)
* -v option: Options. (line 32)
* -W option: Options. (line 46)
-* . (period): Regexp Operators. (line 43)
+* . (period), regexp operator: Regexp Operators. (line 43)
* .gmo files: Explaining gettext. (line 41)
* .gmo files, converting from .po: I18N Example. (line 62)
* .gmo files, specifying directory of <1>: Programmer i18n. (line 47)
@@ -30101,7 +30192,7 @@ Index
* .po files: Explaining gettext. (line 36)
* .po files, converting to .gmo: I18N Example. (line 62)
* .pot files: Explaining gettext. (line 30)
-* / (forward slash): Regexp. (line 10)
+* / (forward slash) to enclose regular expressions: Regexp. (line 10)
* / (forward slash), / operator: Precedence. (line 55)
* / (forward slash), /= operator <1>: Precedence. (line 95)
* / (forward slash), /= operator: Assignment Ops. (line 129)
@@ -30109,17 +30200,18 @@ Index
(line 147)
* / (forward slash), patterns and: Expression Patterns. (line 24)
* /= operator vs. /=.../ regexp constant: Assignment Ops. (line 147)
-* /dev/... special files (gawk): Special FD. (line 46)
-* /dev/fd/N special files: Special FD. (line 46)
+* /dev/... special files: Special FD. (line 46)
+* /dev/fd/N special files (gawk): Special FD. (line 46)
* /inet/... special files (gawk): TCP/IP Networking. (line 6)
* /inet4/... special files (gawk): TCP/IP Networking. (line 6)
* /inet6/... special files (gawk): TCP/IP Networking. (line 6)
-* ; (semicolon): Statements/Lines. (line 91)
-* ; (semicolon), AWKPATH variable and: PC Using. (line 11)
+* ; (semicolon), AWKPATH variable and: PC Using. (line 10)
* ; (semicolon), separating statements in actions <1>: Statements.
(line 10)
-* ; (semicolon), separating statements in actions: Action Overview.
+* ; (semicolon), separating statements in actions <2>: Action Overview.
(line 19)
+* ; (semicolon), separating statements in actions: Statements/Lines.
+ (line 91)
* < (left angle bracket), < operator <1>: Precedence. (line 65)
* < (left angle bracket), < operator: Comparison Operators.
(line 11)
@@ -30140,15 +30232,13 @@ Index
(line 11)
* > (right angle bracket), >> operator (I/O) <1>: Precedence. (line 65)
* > (right angle bracket), >> operator (I/O): Redirection. (line 50)
-* ? (question mark) regexp operator <1>: GNU Regexp Operators.
- (line 59)
-* ? (question mark) regexp operator: Regexp Operators. (line 111)
* ? (question mark), ?: operator: Precedence. (line 92)
-* [] (square brackets): Regexp Operators. (line 55)
-* \ (backslash) <1>: Regexp Operators. (line 18)
-* \ (backslash) <2>: Quoting. (line 31)
-* \ (backslash) <3>: Comments. (line 50)
-* \ (backslash): Read Terminal. (line 25)
+* ? (question mark), regexp operator <1>: GNU Regexp Operators.
+ (line 59)
+* ? (question mark), regexp operator: Regexp Operators. (line 111)
+* [] (square brackets), regexp operator: Regexp Operators. (line 55)
+* \ (backslash): Comments. (line 50)
+* \ (backslash) in shell commands: Read Terminal. (line 25)
* \ (backslash), \" escape sequence: Escape Sequences. (line 76)
* \ (backslash), \' operator (gawk): GNU Regexp Operators.
(line 56)
@@ -30195,22 +30285,27 @@ Index
* \ (backslash), in escape sequences, POSIX and: Escape Sequences.
(line 112)
* \ (backslash), in regexp constants: Computed Regexps. (line 28)
-* ^ (caret): GNU Regexp Operators.
- (line 59)
+* \ (backslash), in shell commands: Quoting. (line 31)
+* \ (backslash), regexp operator: Regexp Operators. (line 18)
* ^ (caret), ^ operator: Precedence. (line 49)
* ^ (caret), ^= operator <1>: Precedence. (line 95)
* ^ (caret), ^= operator: Assignment Ops. (line 129)
* ^ (caret), in bracket expressions: Bracket Expressions. (line 17)
-* ^ (caret), regexp operator: Regexp Operators. (line 22)
-* ^, in FS: Regexp Field Splitting.
+* ^ (caret), in FS: Regexp Field Splitting.
(line 59)
+* ^ (caret), regexp operator <1>: GNU Regexp Operators.
+ (line 59)
+* ^ (caret), regexp operator: Regexp Operators. (line 22)
* _ (underscore), C macro: Explaining gettext. (line 70)
* _ (underscore), in names of private variables: Library Names.
(line 29)
* _ (underscore), translatable string: Programmer i18n. (line 69)
* _gr_init() user-defined function: Group Functions. (line 82)
+* _ord_init() user-defined function: Ordinal Functions. (line 16)
* _pw_init() user-defined function: Passwd Functions. (line 105)
* accessing fields: Fields. (line 6)
+* accessing global variables from extensions: Symbol Table Access.
+ (line 6)
* account information <1>: Group Functions. (line 6)
* account information: Passwd Functions. (line 16)
* actions: Action Overview. (line 6)
@@ -30222,8 +30317,6 @@ Index
* adding, fields: Changing Fields. (line 53)
* advanced features, fixed-width data: Constant Size. (line 10)
* advanced features, gawk: Advanced Features. (line 6)
-* advanced features, network connections, See Also networks, connections: Advanced Features.
- (line 6)
* advanced features, network programming: TCP/IP Networking. (line 6)
* advanced features, nondecimal input data: Nondecimal Data. (line 6)
* advanced features, processes, communicating with: Two-way I/O.
@@ -30235,6 +30328,8 @@ Index
* alarm clock example program: Alarm Program. (line 11)
* alarm.awk program: Alarm Program. (line 31)
* algorithms: Basic High Level. (line 68)
+* allocating memory for extensions: Memory Allocation Functions.
+ (line 6)
* Alpha (DEC): Manual History. (line 28)
* amazing awk assembler (aaa): Glossary. (line 12)
* amazingly workable formatter (awf): Glossary. (line 25)
@@ -30245,17 +30340,25 @@ Index
* ampersand (&), gsub()/gensub()/sub() functions and: Gory Details.
(line 6)
* anagram.awk program: Anagram Program. (line 22)
+* anagrams, finding: Anagram Program. (line 6)
+* and: Bitwise Functions. (line 39)
* AND bitwise operation: Bitwise Functions. (line 6)
* and Boolean-logic operator: Boolean Ops. (line 6)
-* and() function (gawk): Bitwise Functions. (line 39)
* ANSI: Glossary. (line 35)
+* API informational variables: Extension API Informational Variables.
+ (line 6)
+* API version: Extension Versioning.
+ (line 6)
* arbitrary precision: Arbitrary Precision Arithmetic.
(line 6)
+* arbitrary precision integers: Arbitrary Precision Integers.
+ (line 6)
* archeologists: Bugs. (line 6)
-* ARGC/ARGV variables <1>: ARGC and ARGV. (line 6)
+* arctangent: Numeric Functions. (line 11)
* ARGC/ARGV variables: Auto-set. (line 11)
* ARGC/ARGV variables, command-line arguments: Other Arguments.
(line 12)
+* ARGC/ARGV variables, how to use: ARGC and ARGV. (line 6)
* ARGC/ARGV variables, portability and: Executable Scripts. (line 42)
* ARGIND variable: Auto-set. (line 40)
* ARGIND variable, command-line arguments: Other Arguments. (line 12)
@@ -30265,53 +30368,69 @@ Index
* arguments, command-line, invoking awk: Command Line. (line 6)
* arguments, in function calls: Function Calls. (line 16)
* arguments, processing: Getopt Function. (line 6)
+* ARGV array, indexing into: Other Arguments. (line 12)
* arithmetic operators: Arithmetic Ops. (line 6)
+* array manipulation in extensions: Array Manipulation. (line 6)
+* array members: Reference to Elements.
+ (line 6)
+* array scanning order, controlling: Controlling Scanning.
+ (line 12)
+* array, number of elements: String Functions. (line 194)
* arrays: Arrays. (line 6)
+* arrays of arrays: Arrays of Arrays. (line 6)
+* arrays, an example of using: Array Example. (line 6)
+* arrays, and IGNORECASE variable: Array Intro. (line 91)
* arrays, as parameters to functions: Pass By Value/Reference.
(line 47)
* arrays, associative: Array Intro. (line 49)
* arrays, associative, library functions and: Library Names. (line 57)
* arrays, deleting entire contents: Delete. (line 39)
-* arrays, elements, assigning: Assigning Elements. (line 6)
+* arrays, elements that don't exist: Reference to Elements.
+ (line 23)
+* arrays, elements, assigning values: Assigning Elements. (line 6)
* arrays, elements, deleting: Delete. (line 6)
-* arrays, elements, order of: Scanning an Array. (line 48)
-* arrays, elements, referencing: Reference to Elements.
- (line 6)
+* arrays, elements, order of access by in operator: Scanning an Array.
+ (line 48)
* arrays, elements, retrieving number of: String Functions. (line 32)
* arrays, for statement and: Scanning an Array. (line 20)
-* arrays, IGNORECASE variable and: Array Intro. (line 91)
* arrays, indexing: Array Intro. (line 49)
* arrays, merging into strings: Join Function. (line 6)
* arrays, multidimensional: Multidimensional. (line 10)
* arrays, multidimensional, scanning: Multiscanning. (line 11)
-* arrays, names of: Arrays. (line 18)
+* arrays, names of, and names of functions/variables: Arrays. (line 18)
+* arrays, numeric subscripts: Numeric Array Subscripts.
+ (line 6)
+* arrays, referencing elements: Reference to Elements.
+ (line 6)
* arrays, scanning: Scanning an Array. (line 6)
* arrays, sorting: Array Sorting Functions.
(line 6)
-* arrays, sorting, IGNORECASE variable and: Array Sorting Functions.
+* arrays, sorting, and IGNORECASE variable: Array Sorting Functions.
(line 83)
* arrays, sparse: Array Intro. (line 70)
-* arrays, subscripts: Numeric Array Subscripts.
- (line 6)
* arrays, subscripts, uninitialized variables as: Uninitialized Subscripts.
(line 6)
+* arrays, unassigned elements: Reference to Elements.
+ (line 18)
* artificial intelligence, gawk and: Distribution contents.
(line 52)
-* ASCII <1>: Glossary. (line 141)
+* ASCII <1>: Glossary. (line 133)
* ASCII: Ordinal Functions. (line 45)
-* asort() function (gawk) <1>: Array Sorting Functions.
+* asort <1>: Array Sorting Functions.
(line 6)
-* asort() function (gawk): String Functions. (line 32)
+* asort: String Functions. (line 32)
* asort() function (gawk), arrays, sorting: Array Sorting Functions.
(line 6)
-* asorti() function (gawk) <1>: Array Sorting Functions.
+* asorti <1>: Array Sorting Functions.
(line 6)
-* asorti() function (gawk): String Functions. (line 32)
+* asorti: String Functions. (line 32)
* asorti() function (gawk), arrays, sorting: Array Sorting Functions.
(line 6)
* assert() function (C library): Assert Function. (line 6)
* assert() user-defined function: Assert Function. (line 28)
* assertions: Assert Function. (line 6)
+* assign values to variables, in debugger: Viewing And Changing Data.
+ (line 59)
* assignment operators: Assignment Ops. (line 6)
* assignment operators, evaluation order: Assignment Ops. (line 111)
* assignment operators, lvalues/rvalues: Assignment Ops. (line 32)
@@ -30329,7 +30448,8 @@ Index
* asterisk (*), **= operator: Assignment Ops. (line 129)
* asterisk (*), *= operator <1>: Precedence. (line 95)
* asterisk (*), *= operator: Assignment Ops. (line 129)
-* atan2() function: Numeric Functions. (line 11)
+* atan2: Numeric Functions. (line 11)
+* automatic displays, in debugger: Debugger Info. (line 24)
* awf (amazingly workable formatter) program: Glossary. (line 25)
* awk debugging, enabling: Options. (line 108)
* awk language, POSIX version: Assignment Ops. (line 136)
@@ -30385,16 +30505,14 @@ Index
* awk, versions of, See Also Brian Kernighan's awk: BTL. (line 6)
* awka compiler for awk: Other Versions. (line 64)
* AWKLIBPATH environment variable: AWKLIBPATH Variable. (line 6)
-* AWKPATH environment variable <1>: PC Using. (line 11)
+* AWKPATH environment variable <1>: PC Using. (line 10)
* AWKPATH environment variable: AWKPATH Variable. (line 6)
* awkprof.out file: Profiling. (line 6)
* awksed.awk program: Simple Sed. (line 25)
* awkvars.out file: Options. (line 93)
* b debugger command (alias for break): Breakpoint Control. (line 11)
-* backslash (\) <1>: Regexp Operators. (line 18)
-* backslash (\) <2>: Quoting. (line 31)
-* backslash (\) <3>: Comments. (line 50)
-* backslash (\): Read Terminal. (line 25)
+* backslash (\): Comments. (line 50)
+* backslash (\) in shell commands: Read Terminal. (line 25)
* backslash (\), \" escape sequence: Escape Sequences. (line 76)
* backslash (\), \' operator (gawk): GNU Regexp Operators.
(line 56)
@@ -30441,17 +30559,18 @@ Index
* backslash (\), in escape sequences, POSIX and: Escape Sequences.
(line 112)
* backslash (\), in regexp constants: Computed Regexps. (line 28)
+* backslash (\), in shell commands: Quoting. (line 31)
+* backslash (\), regexp operator: Regexp Operators. (line 18)
* backtrace debugger command: Execution Stack. (line 13)
-* BBS-list file: Sample Data Files. (line 6)
-* Beebe, Nelson <1>: Other Versions. (line 78)
-* Beebe, Nelson: Acknowledgments. (line 60)
-* BEGIN pattern <1>: Profiling. (line 62)
+* Beebe, Nelson H.F. <1>: Other Versions. (line 78)
+* Beebe, Nelson H.F.: Acknowledgments. (line 60)
+* BEGIN pattern <1>: Using BEGIN/END. (line 6)
* BEGIN pattern <2>: BEGIN/END. (line 6)
-* BEGIN pattern <3>: Field Separators. (line 45)
-* BEGIN pattern: Records. (line 29)
+* BEGIN pattern: Field Separators. (line 45)
+* BEGIN pattern, and profiling: Profiling. (line 62)
* BEGIN pattern, assert() user-defined function and: Assert Function.
(line 83)
-* BEGIN pattern, Boolean patterns and: Expression Patterns. (line 73)
+* BEGIN pattern, Boolean patterns and: Expression Patterns. (line 70)
* BEGIN pattern, exit statement and: Exit Statement. (line 12)
* BEGIN pattern, getline and: Getline Notes. (line 19)
* BEGIN pattern, headings, adding: Print Examples. (line 43)
@@ -30468,29 +30587,36 @@ Index
* BEGIN pattern, TEXTDOMAIN variable and: Programmer i18n. (line 60)
* BEGINFILE pattern: BEGINFILE/ENDFILE. (line 6)
* BEGINFILE pattern, Boolean patterns and: Expression Patterns.
- (line 73)
+ (line 70)
* beginfile() user-defined function: Filetrans Function. (line 62)
+* Bentley, Jon: Glossary. (line 143)
* Benzinger, Michael: Contributors. (line 97)
+* Berry, Karl <1>: Ranges and Locales. (line 74)
* Berry, Karl: Acknowledgments. (line 33)
* binary input/output: User-modified. (line 10)
+* bindtextdomain <1>: Programmer i18n. (line 47)
+* bindtextdomain: I18N Functions. (line 12)
* bindtextdomain() function (C library): Explaining gettext. (line 49)
-* bindtextdomain() function (gawk) <1>: Programmer i18n. (line 47)
-* bindtextdomain() function (gawk): I18N Functions. (line 12)
* bindtextdomain() function (gawk), portability and: I18N Portability.
(line 33)
-* BINMODE variable <1>: PC Using. (line 34)
+* BINMODE variable <1>: PC Using. (line 33)
* BINMODE variable: User-modified. (line 10)
+* bit-manipulation functions: Bitwise Functions. (line 6)
* bits2str() user-defined function: Bitwise Functions. (line 70)
+* bitwise AND: Bitwise Functions. (line 39)
+* bitwise complement: Bitwise Functions. (line 43)
+* bitwise OR: Bitwise Functions. (line 49)
+* bitwise XOR: Bitwise Functions. (line 55)
* bitwise, complement: Bitwise Functions. (line 25)
* bitwise, operations: Bitwise Functions. (line 6)
* bitwise, shift: Bitwise Functions. (line 32)
* body, in actions: Statements. (line 10)
* body, in loops: While Statement. (line 14)
* Boolean expressions: Boolean Ops. (line 6)
-* Boolean expressions, as patterns: Expression Patterns. (line 41)
+* Boolean expressions, as patterns: Expression Patterns. (line 39)
* Boolean operators, See Boolean expressions: Boolean Ops. (line 6)
* Bourne shell, quoting rules for: Quoting. (line 18)
-* braces ({}): Profiling. (line 134)
+* braces ({}): Profiling. (line 142)
* braces ({}), actions and: Action Overview. (line 19)
* braces ({}), statements, grouping: Statements. (line 10)
* bracket expressions <1>: Bracket Expressions. (line 6)
@@ -30509,17 +30635,44 @@ Index
(line 6)
* break debugger command: Breakpoint Control. (line 11)
* break statement: Break Statement. (line 6)
+* breakpoint: Debugging Terms. (line 33)
+* breakpoint at location, how to delete: Breakpoint Control. (line 36)
+* breakpoint commands: Debugger Execution Control.
+ (line 10)
+* breakpoint condition: Breakpoint Control. (line 54)
+* breakpoint, delete by number: Breakpoint Control. (line 64)
+* breakpoint, how to disable or enable: Breakpoint Control. (line 69)
+* breakpoint, setting: Breakpoint Control. (line 11)
* Brennan, Michael <1>: Other Versions. (line 6)
* Brennan, Michael <2>: Two-way I/O. (line 6)
* Brennan, Michael <3>: Simple Sed. (line 25)
-* Brennan, Michael: Delete. (line 56)
-* Brian Kernighan's awk: Other Versions. (line 13)
+* Brennan, Michael <4>: Delete. (line 56)
+* Brennan, Michael: Foreword. (line 83)
+* Brian Kernighan's awk <1>: I/O Functions. (line 40)
+* Brian Kernighan's awk <2>: Gory Details. (line 15)
+* Brian Kernighan's awk <3>: String Functions. (line 490)
+* Brian Kernighan's awk <4>: Delete. (line 48)
+* Brian Kernighan's awk <5>: Nextfile Statement. (line 47)
+* Brian Kernighan's awk <6>: Continue Statement. (line 43)
+* Brian Kernighan's awk <7>: Break Statement. (line 51)
+* Brian Kernighan's awk <8>: I/O And BEGIN/END. (line 16)
+* Brian Kernighan's awk <9>: Concatenation. (line 36)
+* Brian Kernighan's awk <10>: Getline/Pipe. (line 62)
+* Brian Kernighan's awk <11>: Regexp Field Splitting.
+ (line 67)
+* Brian Kernighan's awk <12>: GNU Regexp Operators.
+ (line 83)
+* Brian Kernighan's awk <13>: Escape Sequences. (line 116)
+* Brian Kernighan's awk <14>: When. (line 21)
+* Brian Kernighan's awk: Preface. (line 15)
* Brian Kernighan's awk, extensions: BTL. (line 6)
+* Brian Kernighan's awk, source code: Other Versions. (line 13)
+* Brini, Davide: Signature Program. (line 6)
* Broder, Alan J.: Contributors. (line 88)
* Brown, Martin: Contributors. (line 82)
-* BSD-based operating systems: Glossary. (line 624)
+* BSD-based operating systems: Glossary. (line 616)
* bt debugger command (alias for backtrace): Execution Stack. (line 13)
-* Buening, Andreas <1>: Bugs. (line 71)
+* Buening, Andreas <1>: Bugs. (line 70)
* Buening, Andreas <2>: Contributors. (line 92)
* Buening, Andreas: Acknowledgments. (line 60)
* buffering, input/output <1>: Two-way I/O. (line 70)
@@ -30541,24 +30694,29 @@ Index
(line 47)
* call by value: Pass By Value/Reference.
(line 18)
-* caret (^): GNU Regexp Operators.
- (line 59)
+* call stack, display in debugger: Execution Stack. (line 13)
* caret (^), ^ operator: Precedence. (line 49)
* caret (^), ^= operator <1>: Precedence. (line 95)
* caret (^), ^= operator: Assignment Ops. (line 129)
* caret (^), in bracket expressions: Bracket Expressions. (line 17)
+* caret (^), regexp operator <1>: GNU Regexp Operators.
+ (line 59)
* caret (^), regexp operator: Regexp Operators. (line 22)
* case keyword: Switch Statement. (line 6)
+* case sensitivity, and regexps: User-modified. (line 82)
+* case sensitivity, and string comparisons: User-modified. (line 82)
* case sensitivity, array indices and: Array Intro. (line 91)
-* case sensitivity, converting case: String Functions. (line 519)
+* case sensitivity, converting case: String Functions. (line 520)
* case sensitivity, example programs: Library Functions. (line 53)
* case sensitivity, gawk: Case-sensitivity. (line 26)
-* case sensitivity, regexps and <1>: User-modified. (line 82)
* case sensitivity, regexps and: Case-sensitivity. (line 6)
-* case sensitivity, string comparisons and: User-modified. (line 82)
* CGI, awk scripts for: Options. (line 125)
+* changing precision of a number: Changing Precision. (line 6)
+* character classes, See bracket expressions: Regexp Operators.
+ (line 55)
+* character lists in regular expression: Bracket Expressions. (line 6)
* character lists, See bracket expressions: Regexp Operators. (line 55)
-* character sets (machine character encodings) <1>: Glossary. (line 141)
+* character sets (machine character encodings) <1>: Glossary. (line 133)
* character sets (machine character encodings): Ordinal Functions.
(line 45)
* character sets, See Also bracket expressions: Regexp Operators.
@@ -30569,7 +30727,7 @@ Index
* Chassell, Robert J.: Acknowledgments. (line 33)
* chdir() extension function: Extension Sample File Functions.
(line 12)
-* chem utility: Glossary. (line 151)
+* chem utility: Glossary. (line 143)
* chr() extension function: Extension Sample Ord.
(line 15)
* chr() user-defined function: Ordinal Functions. (line 16)
@@ -30578,12 +30736,12 @@ Index
(line 6)
* cliff_rand() user-defined function: Cliff Random Function.
(line 12)
-* close() function <1>: I/O Functions. (line 10)
-* close() function <2>: Close Files And Pipes.
+* close <1>: I/O Functions. (line 10)
+* close: Close Files And Pipes.
(line 18)
-* close() function <3>: Getline/Pipe. (line 27)
-* close() function: Getline/Variable/File.
- (line 30)
+* close file or coprocess: I/O Functions. (line 10)
+* close() function, portability: Close Files And Pipes.
+ (line 81)
* close() function, return value: Close Files And Pipes.
(line 130)
* close() function, two-way pipes and: Two-way I/O. (line 77)
@@ -30592,10 +30750,12 @@ Index
* Collado, Manuel: Acknowledgments. (line 60)
* collating elements: Bracket Expressions. (line 69)
* collating symbols: Bracket Expressions. (line 76)
+* Colombo, Antonio <1>: Contributors. (line 135)
* Colombo, Antonio: Acknowledgments. (line 60)
* columns, aligning: Print Examples. (line 70)
* columns, cutting: Cut Program. (line 6)
* comma (,), in range patterns: Ranges. (line 6)
+* command completion, in debugger: Readline Support. (line 6)
* command line, arguments <1>: ARGC and ARGV. (line 6)
* command line, arguments <2>: Auto-set. (line 11)
* command line, arguments: Other Arguments. (line 6)
@@ -30605,16 +30765,16 @@ Index
* command line, FS on, setting: Command Line Field Separator.
(line 6)
* command line, invoking awk from: Command Line. (line 6)
-* command line, options <1>: Command Line Field Separator.
- (line 6)
-* command line, options <2>: Options. (line 6)
-* command line, options: Long. (line 12)
+* command line, option -f: Long. (line 12)
+* command line, options: Options. (line 6)
* command line, options, end of: Options. (line 54)
* command line, variables, assigning on: Assignment Options. (line 6)
* command-line options, processing: Getopt Function. (line 6)
* command-line options, string extraction: String Extraction. (line 6)
* commands debugger command: Debugger Execution Control.
(line 10)
+* commands to execute at breakpoint: Debugger Execution Control.
+ (line 10)
* commenting: Comments. (line 6)
* commenting, backslash continuation and: Statements/Lines. (line 76)
* common extensions, ** operator: Arithmetic Ops. (line 30)
@@ -30623,12 +30783,12 @@ Index
* common extensions, /dev/stdin special file: Special FD. (line 46)
* common extensions, /dev/stdout special file: Special FD. (line 46)
* common extensions, \x escape sequence: Escape Sequences. (line 61)
-* common extensions, BINMODE variable: PC Using. (line 34)
+* common extensions, BINMODE variable: PC Using. (line 33)
* common extensions, delete to delete entire arrays: Delete. (line 39)
* common extensions, func keyword: Definition Syntax. (line 83)
* common extensions, length() applied to an array: String Functions.
- (line 193)
-* common extensions, RS as a regexp: Records. (line 120)
+ (line 194)
+* common extensions, RS as a regexp: Records. (line 135)
* common extensions, single character fields: Single Character Fields.
(line 6)
* comp.lang.awk newsgroup: Bugs. (line 38)
@@ -30644,13 +30804,13 @@ Index
* compatibility mode (gawk), octal numbers: Nondecimal-numbers.
(line 60)
* compatibility mode (gawk), specifying: Options. (line 81)
-* compiled programs <1>: Glossary. (line 165)
+* compiled programs <1>: Glossary. (line 157)
* compiled programs: Basic High Level. (line 15)
* compiling gawk for Cygwin: Cygwin. (line 6)
* compiling gawk for MS-DOS and MS-Windows: PC Compiling. (line 13)
* compiling gawk for VMS: VMS Compilation. (line 6)
* compiling gawk with EMX for OS/2: PC Compiling. (line 28)
-* compl() function (gawk): Bitwise Functions. (line 43)
+* compl: Bitwise Functions. (line 43)
* complement, bitwise: Bitwise Functions. (line 25)
* compound statements, control statements and: Statements. (line 10)
* concatenating: Concatenation. (line 8)
@@ -30666,46 +30826,59 @@ Index
(line 35)
* configuration options, gawk: Additional Configuration Options.
(line 6)
+* constant regexps: Regexp Usage. (line 57)
* constants, floating-point: Floating-point Constants.
(line 6)
* constants, nondecimal: Nondecimal Data. (line 6)
+* constants, numeric: Scalar Constants. (line 6)
* constants, types of: Constants. (line 6)
* context, floating-point: Floating-point Context.
(line 6)
+* continue program, in debugger: Debugger Execution Control.
+ (line 33)
* continue statement: Continue Statement. (line 6)
* control statements: Statements. (line 6)
-* converting, case: String Functions. (line 519)
-* converting, dates to timestamps: Time Functions. (line 75)
-* converting, during subscripting: Numeric Array Subscripts.
+* controlling array scanning order: Controlling Scanning.
+ (line 12)
+* convert string to lower case: String Functions. (line 521)
+* convert string to number: String Functions. (line 385)
+* convert string to upper case: String Functions. (line 527)
+* converting integer array subscripts: Numeric Array Subscripts.
(line 31)
+* converting, dates to timestamps: Time Functions. (line 76)
* converting, numbers to strings <1>: Bitwise Functions. (line 109)
* converting, numbers to strings: Conversion. (line 6)
* converting, strings to numbers <1>: Bitwise Functions. (line 109)
* converting, strings to numbers: Conversion. (line 6)
* CONVFMT variable <1>: User-modified. (line 28)
* CONVFMT variable: Conversion. (line 29)
-* CONVFMT variable, array subscripts and: Numeric Array Subscripts.
+* CONVFMT variable, and array subscripts: Numeric Array Subscripts.
(line 6)
-* cookie: Glossary. (line 157)
+* cookie: Glossary. (line 149)
* coprocesses <1>: Two-way I/O. (line 44)
* coprocesses: Redirection. (line 102)
* coprocesses, closing: Close Files And Pipes.
(line 6)
* coprocesses, getline from: Getline/Coprocess. (line 6)
-* cos() function: Numeric Functions. (line 15)
+* cos: Numeric Functions. (line 15)
+* cosine: Numeric Functions. (line 15)
* counting: Wc Program. (line 6)
* csh utility: Statements/Lines. (line 44)
* csh utility, POSIXLY_CORRECT environment variable: Options. (line 348)
* csh utility, |& operator, comparison with: Two-way I/O. (line 44)
-* ctime() user-defined function: Function Example. (line 72)
+* ctime() user-defined function: Function Example. (line 73)
* currency symbols, localization: Explaining gettext. (line 103)
+* current system time: Time Functions. (line 66)
* custom.h file: Configuration Philosophy.
(line 30)
+* customized input parser: Input Parsers. (line 6)
+* customized output wrapper: Output Wrappers. (line 6)
+* customized two-way processor: Two-way processors. (line 6)
* cut utility: Cut Program. (line 6)
* cut.awk program: Cut Program. (line 45)
* d debugger command (alias for delete): Breakpoint Control. (line 64)
* d.c., See dark corner: Conventions. (line 38)
-* dark corner <1>: Glossary. (line 197)
+* dark corner <1>: Glossary. (line 189)
* dark corner: Conventions. (line 38)
* dark corner, "0" is actually true: Truth Values. (line 24)
* dark corner, /= operator vs. /=.../ regexp constant: Assignment Ops.
@@ -30732,9 +30905,9 @@ Index
* dark corner, format-control characters: Control Letters. (line 18)
* dark corner, FS as null string: Single Character Fields.
(line 20)
-* dark corner, input files: Records. (line 103)
+* dark corner, input files: Records. (line 118)
* dark corner, invoking awk: Command Line. (line 16)
-* dark corner, length() function: String Functions. (line 179)
+* dark corner, length() function: String Functions. (line 180)
* dark corner, locale's decimal point character: Conversion. (line 77)
* dark corner, multiline records: Multiple Line. (line 35)
* dark corner, NF variable, decrementing: Changing Fields. (line 107)
@@ -30745,26 +30918,26 @@ Index
(line 147)
* dark corner, regexp constants, as arguments to user-defined functions: Using Constant Regexps.
(line 43)
-* dark corner, split() function: String Functions. (line 358)
-* dark corner, strings, storing: Records. (line 195)
+* dark corner, split() function: String Functions. (line 359)
+* dark corner, strings, storing: Records. (line 210)
* dark corner, value of ARGV[0]: Auto-set. (line 35)
* data, fixed-width: Constant Size. (line 10)
* data-driven languages: Basic High Level. (line 85)
* database, group, reading: Group Functions. (line 6)
* database, users, reading: Passwd Functions. (line 6)
* date utility, GNU: Time Functions. (line 17)
-* date utility, POSIX: Time Functions. (line 262)
-* dates, converting to timestamps: Time Functions. (line 75)
+* date utility, POSIX: Time Functions. (line 263)
+* dates, converting to timestamps: Time Functions. (line 76)
* dates, information related to, localization: Explaining gettext.
(line 115)
* Davies, Stephen <1>: Contributors. (line 74)
* Davies, Stephen: Acknowledgments. (line 60)
-* dcgettext() function (gawk) <1>: Programmer i18n. (line 19)
-* dcgettext() function (gawk): I18N Functions. (line 22)
+* dcgettext <1>: Programmer i18n. (line 19)
+* dcgettext: I18N Functions. (line 22)
* dcgettext() function (gawk), portability and: I18N Portability.
(line 33)
-* dcngettext() function (gawk) <1>: Programmer i18n. (line 36)
-* dcngettext() function (gawk): I18N Functions. (line 28)
+* dcngettext <1>: Programmer i18n. (line 36)
+* dcngettext: I18N Functions. (line 28)
* dcngettext() function (gawk), portability and: I18N Portability.
(line 33)
* deadlocks: Two-way I/O. (line 70)
@@ -30864,6 +31037,13 @@ Index
(line 67)
* debugger commands, watch: Viewing And Changing Data.
(line 67)
+* debugger default list amount: Debugger Info. (line 69)
+* debugger history file: Debugger Info. (line 80)
+* debugger history size: Debugger Info. (line 65)
+* debugger options: Debugger Info. (line 57)
+* debugger prompt: Debugger Info. (line 77)
+* debugger, how to start: Debugger Invocation. (line 6)
+* debugger, read commands from a file: Debugger Info. (line 96)
* debugging awk programs: Debugger. (line 6)
* debugging gawk, bug reports: Bugs. (line 9)
* decimal point character, locale specific: Options. (line 263)
@@ -30872,12 +31052,18 @@ Index
* Deifik, Scott <1>: Bugs. (line 70)
* Deifik, Scott <2>: Contributors. (line 53)
* Deifik, Scott: Acknowledgments. (line 60)
+* delete ARRAY: Delete. (line 39)
+* delete breakpoint at location: Breakpoint Control. (line 36)
+* delete breakpoint by number: Breakpoint Control. (line 64)
* delete debugger command: Breakpoint Control. (line 64)
* delete statement: Delete. (line 6)
+* delete watchpoint: Viewing And Changing Data.
+ (line 84)
* deleting elements in arrays: Delete. (line 6)
* deleting entire arrays: Delete. (line 39)
* Demaille, Akim: Acknowledgments. (line 60)
-* differences between gawk and awk: String Functions. (line 193)
+* describe call stack frame, in debugger: Debugger Info. (line 27)
+* differences between gawk and awk: String Functions. (line 194)
* differences in awk and gawk, ARGC/ARGV variables: ARGC and ARGV.
(line 88)
* differences in awk and gawk, ARGIND variable: Auto-set. (line 40)
@@ -30892,11 +31078,13 @@ Index
* differences in awk and gawk, BEGINFILE/ENDFILE patterns: BEGINFILE/ENDFILE.
(line 6)
* differences in awk and gawk, BINMODE variable <1>: PC Using.
- (line 34)
+ (line 33)
* differences in awk and gawk, BINMODE variable: User-modified.
(line 23)
* differences in awk and gawk, close() function: Close Files And Pipes.
(line 81)
+* differences in awk and gawk, command line directories: Command line directories.
+ (line 6)
* differences in awk and gawk, ERRNO variable: Auto-set. (line 82)
* differences in awk and gawk, error messages: Special FD. (line 16)
* differences in awk and gawk, FIELDWIDTHS variable: User-modified.
@@ -30922,25 +31110,23 @@ Index
(line 34)
* differences in awk and gawk, LINT variable: User-modified. (line 98)
* differences in awk and gawk, match() function: String Functions.
- (line 256)
+ (line 257)
* differences in awk and gawk, print/printf statements: Format Modifiers.
(line 13)
* differences in awk and gawk, PROCINFO array: Auto-set. (line 142)
-* differences in awk and gawk, record separators: Records. (line 117)
+* differences in awk and gawk, record separators: Records. (line 132)
* differences in awk and gawk, regexp constants: Using Constant Regexps.
(line 43)
* differences in awk and gawk, regular expressions: Case-sensitivity.
(line 26)
-* differences in awk and gawk, RS/RT variables: Records. (line 172)
+* differences in awk and gawk, RS/RT variables: Records. (line 187)
* differences in awk and gawk, RT variable: Auto-set. (line 275)
* differences in awk and gawk, single-character fields: Single Character Fields.
(line 6)
* differences in awk and gawk, split() function: String Functions.
- (line 346)
+ (line 347)
* differences in awk and gawk, strings: Scalar Constants. (line 20)
-* differences in awk and gawk, strings, storing: Records. (line 191)
-* differences in awk and gawk, strtonum() function (gawk): String Functions.
- (line 401)
+* differences in awk and gawk, strings, storing: Records. (line 206)
* differences in awk and gawk, SYMTAB variable: Auto-set. (line 283)
* differences in awk and gawk, TEXTDOMAIN variable: User-modified.
(line 162)
@@ -30948,57 +31134,71 @@ Index
(line 66)
* directories, command line: Command line directories.
(line 6)
-* directories, searching <1>: Igawk Program. (line 368)
-* directories, searching <2>: AWKLIBPATH Variable. (line 6)
-* directories, searching: AWKPATH Variable. (line 6)
+* directories, searching: Igawk Program. (line 368)
+* directories, searching for shared libraries: AWKLIBPATH Variable.
+ (line 6)
+* directories, searching for source files: AWKPATH Variable. (line 6)
+* disable breakpoint: Breakpoint Control. (line 69)
* disable debugger command: Breakpoint Control. (line 69)
* display debugger command: Viewing And Changing Data.
(line 8)
+* display debugger options: Debugger Info. (line 57)
* division: Arithmetic Ops. (line 44)
-* do-while statement <1>: Do Statement. (line 6)
-* do-while statement: Regexp Usage. (line 19)
+* do-while statement: Do Statement. (line 6)
+* do-while statement, use of regexps in: Regexp Usage. (line 19)
* documentation, of awk programs: Library Names. (line 6)
* documentation, online: Manual History. (line 11)
* documents, searching: Dupword Program. (line 6)
-* dollar sign ($): Regexp Operators. (line 35)
* dollar sign ($), $ field operator <1>: Precedence. (line 43)
* dollar sign ($), $ field operator: Fields. (line 19)
* dollar sign ($), incrementing fields and arrays: Increment Ops.
(line 30)
+* dollar sign ($), regexp operator: Regexp Operators. (line 35)
* double precision floating-point: General Arithmetic. (line 21)
-* double quote (") <1>: Quoting. (line 37)
-* double quote ("): Read Terminal. (line 25)
+* double quote (") in shell commands: Read Terminal. (line 25)
* double quote ("), in regexp constants: Computed Regexps. (line 28)
+* double quote ("), in shell commands: Quoting. (line 37)
* down debugger command: Execution Stack. (line 21)
* Drepper, Ulrich: Acknowledgments. (line 52)
+* dump all variables of a program: Options. (line 93)
* dump debugger command: Miscellaneous Debugger Commands.
(line 9)
* dupword.awk program: Dupword Program. (line 31)
+* dynamic profiling: Profiling. (line 179)
+* dynamically loaded extensions: Dynamic Extensions. (line 6)
* e debugger command (alias for enable): Breakpoint Control. (line 73)
* EBCDIC: Ordinal Functions. (line 45)
+* effective group ID of gawk user: Auto-set. (line 147)
+* effective user ID of gawk user: Auto-set. (line 151)
* egrep utility <1>: Egrep Program. (line 6)
* egrep utility: Bracket Expressions. (line 24)
* egrep.awk program: Egrep Program. (line 54)
-* elements in arrays: Reference to Elements.
- (line 6)
-* elements in arrays, assigning: Assigning Elements. (line 6)
+* elements in arrays, assigning values: Assigning Elements. (line 6)
* elements in arrays, deleting: Delete. (line 6)
-* elements in arrays, order of: Scanning an Array. (line 48)
+* elements in arrays, order of access by in operator: Scanning an Array.
+ (line 48)
* elements in arrays, scanning: Scanning an Array. (line 6)
+* elements of arrays: Reference to Elements.
+ (line 6)
* email address for bug reports, bug-gawk@gnu.org: Bugs. (line 30)
* EMISTERED: TCP/IP Networking. (line 6)
+* empty array elements: Reference to Elements.
+ (line 18)
* empty pattern: Empty. (line 6)
+* empty strings: Records. (line 122)
* empty strings, See null strings: Regexp Field Splitting.
(line 43)
+* enable breakpoint: Breakpoint Control. (line 73)
* enable debugger command: Breakpoint Control. (line 73)
* end debugger command: Debugger Execution Control.
(line 10)
-* END pattern <1>: Profiling. (line 62)
+* END pattern <1>: Using BEGIN/END. (line 6)
* END pattern: BEGIN/END. (line 6)
+* END pattern, and profiling: Profiling. (line 62)
* END pattern, assert() user-defined function and: Assert Function.
(line 75)
* END pattern, backslash continuation and: Egrep Program. (line 220)
-* END pattern, Boolean patterns and: Expression Patterns. (line 73)
+* END pattern, Boolean patterns and: Expression Patterns. (line 70)
* END pattern, exit statement and: Exit Statement. (line 12)
* END pattern, next/nextfile statements and <1>: Next Statement.
(line 45)
@@ -31007,34 +31207,38 @@ Index
* END pattern, operators and: Using BEGIN/END. (line 17)
* END pattern, print statement and: I/O And BEGIN/END. (line 16)
* ENDFILE pattern: BEGINFILE/ENDFILE. (line 6)
-* ENDFILE pattern, Boolean patterns and: Expression Patterns. (line 73)
+* ENDFILE pattern, Boolean patterns and: Expression Patterns. (line 70)
* endfile() user-defined function: Filetrans Function. (line 62)
* endgrent() function (C library): Group Functions. (line 215)
* endgrent() user-defined function: Group Functions. (line 218)
* endpwent() function (C library): Passwd Functions. (line 210)
* endpwent() user-defined function: Passwd Functions. (line 213)
* ENVIRON array: Auto-set. (line 60)
-* environment variables: Auto-set. (line 60)
-* epoch, definition of: Glossary. (line 243)
+* environment variables used by gawk: Environment Variables.
+ (line 6)
+* environment variables, in ENVIRON array: Auto-set. (line 60)
+* epoch, definition of: Glossary. (line 235)
* equals sign (=), = operator: Assignment Ops. (line 6)
* equals sign (=), == operator <1>: Precedence. (line 65)
* equals sign (=), == operator: Comparison Operators.
(line 11)
* EREs (Extended Regular Expressions): Bracket Expressions. (line 24)
* ERRNO variable <1>: TCP/IP Networking. (line 54)
-* ERRNO variable <2>: Auto-set. (line 82)
-* ERRNO variable <3>: BEGINFILE/ENDFILE. (line 26)
-* ERRNO variable <4>: Close Files And Pipes.
+* ERRNO variable: Auto-set. (line 82)
+* ERRNO variable, with BEGINFILE pattern: BEGINFILE/ENDFILE. (line 26)
+* ERRNO variable, with close() function: Close Files And Pipes.
(line 138)
-* ERRNO variable: Getline. (line 19)
+* ERRNO variable, with getline command: Getline. (line 19)
* error handling: Special FD. (line 16)
* error handling, ERRNO variable and: Auto-set. (line 82)
* error output: Special FD. (line 6)
* escape processing, gsub()/gensub()/sub() functions: Gory Details.
(line 6)
-* escape sequences: Escape Sequences. (line 6)
+* escape sequences, in strings: Escape Sequences. (line 6)
* eval debugger command: Viewing And Changing Data.
(line 23)
+* evaluate expressions, in debugger: Viewing And Changing Data.
+ (line 23)
* evaluation order: Increment Ops. (line 60)
* evaluation order, concatenation: Concatenation. (line 41)
* evaluation order, functions: Calling Built-in. (line 30)
@@ -31057,9 +31261,12 @@ Index
* exit statement: Exit Statement. (line 6)
* exit status, of gawk: Exit Status. (line 6)
* exit status, of VMS: VMS Running. (line 29)
-* exp() function: Numeric Functions. (line 18)
+* exit the debugger: Miscellaneous Debugger Commands.
+ (line 99)
+* exp: Numeric Functions. (line 18)
* expand utility: Very Simple. (line 69)
* Expat XML parser library: gawkextlib. (line 35)
+* exponent: Numeric Functions. (line 18)
* expressions: Expressions. (line 6)
* expressions, as patterns: Expression Patterns. (line 6)
* expressions, assignment: Assignment Ops. (line 6)
@@ -31071,6 +31278,20 @@ Index
(line 9)
* expressions, selecting: Conditional Exp. (line 6)
* Extended Regular Expressions (EREs): Bracket Expressions. (line 24)
+* extension API: Extension API Description.
+ (line 6)
+* extension API informational variables: Extension API Informational Variables.
+ (line 6)
+* extension API version: Extension Versioning.
+ (line 6)
+* extension API, version number: Auto-set. (line 238)
+* extension example: Extension Example. (line 6)
+* extension registration: Registration Functions.
+ (line 6)
+* extension search path: Finding Extensions. (line 6)
+* extensions distributed with gawk: Extension Samples. (line 6)
+* extensions, allocating memory: Memory Allocation Functions.
+ (line 6)
* extensions, Brian Kernighan's awk <1>: Common Extensions. (line 6)
* extensions, Brian Kernighan's awk: BTL. (line 6)
* extensions, common, ** operator: Arithmetic Ops. (line 30)
@@ -31079,43 +31300,45 @@ Index
* extensions, common, /dev/stdin special file: Special FD. (line 46)
* extensions, common, /dev/stdout special file: Special FD. (line 46)
* extensions, common, \x escape sequence: Escape Sequences. (line 61)
-* extensions, common, BINMODE variable: PC Using. (line 34)
+* extensions, common, BINMODE variable: PC Using. (line 33)
* extensions, common, delete to delete entire arrays: Delete. (line 39)
+* extensions, common, fflush() function: I/O Functions. (line 40)
* extensions, common, func keyword: Definition Syntax. (line 83)
* extensions, common, length() applied to an array: String Functions.
- (line 193)
-* extensions, common, RS as a regexp: Records. (line 120)
+ (line 194)
+* extensions, common, RS as a regexp: Records. (line 135)
* extensions, common, single character fields: Single Character Fields.
(line 6)
* extensions, in gawk, not in POSIX awk: POSIX/GNU. (line 6)
* extensions, mawk: Common Extensions. (line 6)
+* extensions, where to find: gawkextlib. (line 6)
* extract.awk program: Extract Program. (line 79)
* extraction, of marked strings (internationalization): String Extraction.
(line 6)
* f debugger command (alias for frame): Execution Stack. (line 25)
* false, logical: Truth Values. (line 6)
* FDL (Free Documentation License): GNU Free Documentation License.
- (line 6)
+ (line 7)
* features, adding to gawk: Adding Code. (line 6)
* features, advanced, See advanced features: Obsolete. (line 6)
* features, deprecated: Obsolete. (line 6)
* features, undocumented: Undocumented. (line 6)
* Fenlason, Jay <1>: Contributors. (line 18)
* Fenlason, Jay: History. (line 30)
-* fflush() function: I/O Functions. (line 25)
+* fflush: I/O Functions. (line 25)
* field numbers: Nonconstant Fields. (line 6)
* field operator $: Fields. (line 19)
* field operators, dollar sign as: Fields. (line 19)
+* field separator, in multiline records: Multiple Line. (line 41)
+* field separator, on command line: Command Line Field Separator.
+ (line 6)
+* field separator, POSIX and: Field Splitting Summary.
+ (line 40)
* field separators <1>: User-modified. (line 56)
* field separators: Field Separators. (line 15)
* field separators, choice of: Field Separators. (line 51)
* field separators, FIELDWIDTHS variable and: User-modified. (line 35)
* field separators, FPAT variable and: User-modified. (line 45)
-* field separators, in multiline records: Multiple Line. (line 41)
-* field separators, on command line: Command Line Field Separator.
- (line 6)
-* field separators, POSIX and <1>: Field Splitting Summary.
- (line 40)
* field separators, POSIX and: Fields. (line 6)
* field separators, regular expressions as <1>: Regexp Field Splitting.
(line 6)
@@ -31157,7 +31380,6 @@ Index
* files, /inet/... (gawk): TCP/IP Networking. (line 6)
* files, /inet4/... (gawk): TCP/IP Networking. (line 6)
* files, /inet6/... (gawk): TCP/IP Networking. (line 6)
-* files, as single records: Records. (line 204)
* files, awk programs in: Long. (line 6)
* files, awkprof.out: Profiling. (line 6)
* files, awkvars.out: Options. (line 93)
@@ -31196,19 +31418,22 @@ Index
* files, source, search path for: Igawk Program. (line 368)
* files, splitting: Split Program. (line 6)
* files, Texinfo, extracting programs from: Extract Program. (line 6)
+* find substring in string: String Functions. (line 151)
+* finding extensions: Finding Extensions. (line 6)
* finish debugger command: Debugger Execution Control.
(line 39)
* Fish, Fred: Contributors. (line 50)
* fixed-width data: Constant Size. (line 10)
* flag variables <1>: Tee Program. (line 20)
* flag variables: Boolean Ops. (line 67)
-* floating-point numbers, arbitrary precision: Arbitrary Precision Arithmetic.
- (line 6)
* floating-point, numbers <1>: Unexpected Results. (line 6)
* floating-point, numbers: General Arithmetic. (line 6)
+* floating-point, numbers, arbitrary precision: Arbitrary Precision Arithmetic.
+ (line 6)
* floating-point, VAX/VMS: VMS Running. (line 51)
+* flush buffered output: I/O Functions. (line 25)
* fnmatch() extension function: Extension Sample Fnmatch.
- (line 6)
+ (line 12)
* FNR variable <1>: Auto-set. (line 112)
* FNR variable: Records. (line 6)
* FNR variable, changing: Auto-set. (line 323)
@@ -31216,15 +31441,17 @@ Index
* for statement, looping over arrays: Scanning an Array. (line 20)
* fork() extension function: Extension Sample Fork.
(line 11)
+* format specifiers: Basic Printf. (line 15)
* format specifiers, mixing regular with positional specifiers: Printf Ordering.
(line 57)
* format specifiers, printf statement: Control Letters. (line 6)
* format specifiers, strftime() function (gawk): Time Functions.
- (line 88)
-* format strings: Basic Printf. (line 15)
+ (line 89)
+* format time string: Time Functions. (line 48)
* formats, numeric output: OFMT. (line 6)
* formatting output: Printf. (line 6)
-* forward slash (/): Regexp. (line 10)
+* formatting strings: String Functions. (line 378)
+* forward slash (/) to enclose regular expressions: Regexp. (line 10)
* forward slash (/), / operator: Precedence. (line 55)
* forward slash (/), /= operator <1>: Precedence. (line 95)
* forward slash (/), /= operator: Assignment Ops. (line 129)
@@ -31236,11 +31463,11 @@ Index
(line 27)
* frame debugger command: Execution Stack. (line 25)
* Free Documentation License (FDL): GNU Free Documentation License.
- (line 6)
-* Free Software Foundation (FSF) <1>: Glossary. (line 305)
+ (line 7)
+* Free Software Foundation (FSF) <1>: Glossary. (line 297)
* Free Software Foundation (FSF) <2>: Getting. (line 10)
* Free Software Foundation (FSF): Manual History. (line 6)
-* FreeBSD: Glossary. (line 624)
+* FreeBSD: Glossary. (line 616)
* FS variable <1>: User-modified. (line 56)
* FS variable: Field Separators. (line 15)
* FS variable, --field-separator option and: Options. (line 21)
@@ -31253,7 +31480,8 @@ Index
(line 6)
* FS, containing ^: Regexp Field Splitting.
(line 59)
-* FSF (Free Software Foundation) <1>: Glossary. (line 305)
+* FS, in multiline records: Multiple Line. (line 41)
+* FSF (Free Software Foundation) <1>: Glossary. (line 297)
* FSF (Free Software Foundation) <2>: Getting. (line 10)
* FSF (Free Software Foundation): Manual History. (line 6)
* fts() extension function: Extension Sample File Functions.
@@ -31261,6 +31489,7 @@ Index
* FUNCTAB array: Auto-set. (line 128)
* function calls: Function Calls. (line 6)
* function calls, indirect: Indirect Calls. (line 6)
+* function definition example: Function Example. (line 6)
* function pointers: Indirect Calls. (line 6)
* functions, arrays as parameters to: Pass By Value/Reference.
(line 47)
@@ -31297,8 +31526,8 @@ Index
* functions, undefined: Pass By Value/Reference.
(line 71)
* functions, user-defined: User-defined. (line 6)
-* functions, user-defined, calling: Calling A Function. (line 6)
-* functions, user-defined, counts: Profiling. (line 129)
+* functions, user-defined, calling: Function Caveats. (line 6)
+* functions, user-defined, counts, in a profile: Profiling. (line 137)
* functions, user-defined, library of: Library Functions. (line 6)
* functions, user-defined, next/nextfile statements and <1>: Nextfile Statement.
(line 47)
@@ -31306,7 +31535,8 @@ Index
(line 45)
* G-d: Acknowledgments. (line 78)
* Garfinkle, Scott: Contributors. (line 34)
-* gawk program, dynamic profiling: Profiling. (line 172)
+* gawk program, dynamic profiling: Profiling. (line 179)
+* gawk version: Auto-set. (line 213)
* gawk, ARGIND variable in: Other Arguments. (line 12)
* gawk, awk and <1>: This Manual. (line 14)
* gawk, awk and: Preface. (line 23)
@@ -31315,7 +31545,7 @@ Index
* gawk, built-in variables and: Built-in Variables. (line 14)
* gawk, character classes and: Bracket Expressions. (line 90)
* gawk, coding style in: Adding Code. (line 38)
-* gawk, command-line options: GNU Regexp Operators.
+* gawk, command-line options, and regular expressions: GNU Regexp Operators.
(line 70)
* gawk, comparison operators and: Comparison Operators.
(line 50)
@@ -31349,7 +31579,7 @@ Index
* gawk, hexadecimal numbers and: Nondecimal-numbers. (line 42)
* gawk, IGNORECASE variable in <1>: Array Sorting Functions.
(line 83)
-* gawk, IGNORECASE variable in <2>: String Functions. (line 32)
+* gawk, IGNORECASE variable in <2>: String Functions. (line 48)
* gawk, IGNORECASE variable in <3>: Array Intro. (line 91)
* gawk, IGNORECASE variable in <4>: User-modified. (line 82)
* gawk, IGNORECASE variable in: Case-sensitivity. (line 26)
@@ -31368,11 +31598,11 @@ Index
* gawk, line continuation in: Conditional Exp. (line 34)
* gawk, LINT variable in: User-modified. (line 98)
* gawk, list of contributors to: Contributors. (line 6)
-* gawk, MS-DOS version of: PC Using. (line 11)
-* gawk, MS-Windows version of: PC Using. (line 11)
+* gawk, MS-DOS version of: PC Using. (line 10)
+* gawk, MS-Windows version of: PC Using. (line 10)
* gawk, newlines in: Statements/Lines. (line 12)
* gawk, octal numbers and: Nondecimal-numbers. (line 42)
-* gawk, OS/2 version of: PC Using. (line 11)
+* gawk, OS/2 version of: PC Using. (line 10)
* gawk, PROCINFO array in <1>: Two-way I/O. (line 116)
* gawk, PROCINFO array in <2>: Time Functions. (line 47)
* gawk, PROCINFO array in: Auto-set. (line 142)
@@ -31384,10 +31614,8 @@ Index
(line 6)
* gawk, regular expressions, precedence: Regexp Operators. (line 161)
* gawk, RT variable in <1>: Auto-set. (line 275)
-* gawk, RT variable in <2>: Getline/Variable/File.
- (line 10)
-* gawk, RT variable in <3>: Multiple Line. (line 129)
-* gawk, RT variable in: Records. (line 117)
+* gawk, RT variable in <2>: Multiple Line. (line 129)
+* gawk, RT variable in: Records. (line 132)
* gawk, See Also awk: Preface. (line 36)
* gawk, source code, obtaining: Getting. (line 6)
* gawk, splitting fields and: Constant Size. (line 88)
@@ -31400,11 +31628,13 @@ Index
* gawk, VMS version of: VMS Installation. (line 6)
* gawk, word-boundary operator: GNU Regexp Operators.
(line 63)
+* gawkextlib: gawkextlib. (line 6)
* gawkextlib project: gawkextlib. (line 6)
-* General Public License (GPL): Glossary. (line 314)
+* General Public License (GPL): Glossary. (line 306)
* General Public License, See GPL: Manual History. (line 11)
-* gensub() function (gawk) <1>: String Functions. (line 81)
-* gensub() function (gawk): Using Constant Regexps.
+* generate time values: Time Functions. (line 25)
+* gensub <1>: String Functions. (line 82)
+* gensub: Using Constant Regexps.
(line 43)
* gensub() function (gawk), escape processing: Gory Details. (line 6)
* getaddrinfo() function (C library): TCP/IP Networking. (line 38)
@@ -31429,6 +31659,8 @@ Index
* getline command, FILENAME variable and: Getline Notes. (line 19)
* getline command, return values: Getline. (line 19)
* getline command, variants: Getline Summary. (line 6)
+* getline from a file: Getline/File. (line 6)
+* getline into a variable: Getline/Variable. (line 6)
* getline statement, BEGINFILE/ENDFILE patterns and: BEGINFILE/ENDFILE.
(line 54)
* getlocaltime() user-defined function: Getlocaltime Function.
@@ -31446,40 +31678,47 @@ Index
* gettext() function (C library): Explaining gettext. (line 62)
* gettimeofday() extension function: Extension Sample Time.
(line 13)
-* GMP: Arbitrary Precision Arithmetic.
- (line 6)
+* git utility <1>: Adding Code. (line 111)
+* git utility <2>: Accessing The Source.
+ (line 10)
+* git utility <3>: Other Versions. (line 29)
+* git utility: gawkextlib. (line 29)
+* git, use of for gawk source code: Derived Files. (line 6)
+* GMP: Gawk and MPFR. (line 6)
* GNITS mailing list: Acknowledgments. (line 52)
* GNU awk, See gawk: Preface. (line 49)
* GNU Free Documentation License: GNU Free Documentation License.
- (line 6)
-* GNU General Public License: Glossary. (line 314)
-* GNU Lesser General Public License: Glossary. (line 405)
+ (line 7)
+* GNU General Public License: Glossary. (line 306)
+* GNU Lesser General Public License: Glossary. (line 397)
* GNU long options <1>: Options. (line 6)
* GNU long options: Command Line. (line 13)
* GNU long options, printing list of: Options. (line 154)
-* GNU Project <1>: Glossary. (line 323)
+* GNU Project <1>: Glossary. (line 315)
* GNU Project: Manual History. (line 11)
-* GNU/Linux <1>: Glossary. (line 624)
+* GNU/Linux <1>: Glossary. (line 616)
* GNU/Linux <2>: I18N Example. (line 55)
* GNU/Linux: Manual History. (line 28)
-* GPL (General Public License) <1>: Glossary. (line 314)
+* Gordon, Assaf: Contributors. (line 105)
+* GPL (General Public License) <1>: Glossary. (line 306)
* GPL (General Public License): Manual History. (line 11)
* GPL (General Public License), printing: Options. (line 88)
* grcat program: Group Functions. (line 16)
* Grigera, Juan: Contributors. (line 57)
* group database, reading: Group Functions. (line 6)
* group file: Group Functions. (line 6)
+* group ID of gawk user: Auto-set. (line 186)
* groups, information about: Group Functions. (line 6)
-* gsub() function <1>: String Functions. (line 134)
-* gsub() function: Using Constant Regexps.
+* gsub <1>: String Functions. (line 135)
+* gsub: Using Constant Regexps.
(line 43)
-* gsub() function, arguments of: String Functions. (line 459)
+* gsub() function, arguments of: String Functions. (line 460)
* gsub() function, escape processing: Gory Details. (line 6)
* h debugger command (alias for help): Miscellaneous Debugger Commands.
(line 66)
* Hankerson, Darrel <1>: Contributors. (line 60)
* Hankerson, Darrel: Acknowledgments. (line 60)
-* Haque, John: Contributors. (line 105)
+* Haque, John: Contributors. (line 108)
* Hartholz, Elaine: Acknowledgments. (line 38)
* Hartholz, Marshall: Acknowledgments. (line 38)
* Hasegawa, Isamu: Contributors. (line 94)
@@ -31487,9 +31726,10 @@ Index
(line 66)
* hexadecimal numbers: Nondecimal-numbers. (line 6)
* hexadecimal values, enabling interpretation of: Options. (line 207)
+* history expansion, in debugger: Readline Support. (line 6)
* histsort.awk program: History Sorting. (line 25)
* Hughes, Phil: Acknowledgments. (line 43)
-* HUP signal: Profiling. (line 204)
+* HUP signal, for dynamic profiling: Profiling. (line 211)
* hyphen (-), - operator: Precedence. (line 52)
* hyphen (-), -- operator <1>: Precedence. (line 46)
* hyphen (-), -- operator: Increment Ops. (line 48)
@@ -31502,38 +31742,38 @@ Index
* id.awk program: Id Program. (line 30)
* IEEE-754 format: Floating-point Representation.
(line 6)
-* if statement <1>: If Statement. (line 6)
-* if statement: Regexp Usage. (line 19)
+* if statement: If Statement. (line 6)
* if statement, actions, changing: Ranges. (line 25)
+* if statement, use of regexps in: Regexp Usage. (line 19)
* igawk.sh program: Igawk Program. (line 124)
+* ignore breakpoint: Breakpoint Control. (line 87)
* ignore debugger command: Breakpoint Control. (line 87)
-* IGNORECASE variable <1>: Array Sorting Functions.
- (line 83)
-* IGNORECASE variable <2>: String Functions. (line 32)
-* IGNORECASE variable <3>: Array Intro. (line 91)
-* IGNORECASE variable <4>: User-modified. (line 82)
-* IGNORECASE variable: Case-sensitivity. (line 26)
-* IGNORECASE variable, array sorting and: Array Sorting Functions.
+* IGNORECASE variable: User-modified. (line 82)
+* IGNORECASE variable, and array indices: Array Intro. (line 91)
+* IGNORECASE variable, and array sorting functions: Array Sorting Functions.
(line 83)
-* IGNORECASE variable, array subscripts and: Array Intro. (line 91)
* IGNORECASE variable, in example programs: Library Functions.
(line 53)
+* IGNORECASE variable, with ~ and !~ operators: Case-sensitivity.
+ (line 26)
* Illumos: Other Versions. (line 104)
* Illumos, POSIX-compliant awk: Other Versions. (line 104)
* implementation issues, gawk: Notes. (line 6)
* implementation issues, gawk, debugging: Compatibility Mode. (line 6)
* implementation issues, gawk, limits <1>: Redirection. (line 135)
* implementation issues, gawk, limits: Getline Notes. (line 14)
-* in operator <1>: Id Program. (line 93)
-* in operator <2>: Scanning an Array. (line 17)
-* in operator <3>: Reference to Elements.
- (line 37)
-* in operator <4>: For Statement. (line 75)
-* in operator <5>: Precedence. (line 83)
+* in operator <1>: For Statement. (line 75)
+* in operator <2>: Precedence. (line 83)
* in operator: Comparison Operators.
(line 11)
+* in operator, index existence in multidimensional arrays: Multidimensional.
+ (line 43)
+* in operator, order of array access: Scanning an Array. (line 48)
+* in operator, testing if array element exists: Reference to Elements.
+ (line 37)
+* in operator, use in loops: Scanning an Array. (line 17)
* increment operators: Increment Ops. (line 6)
-* index() function: String Functions. (line 150)
+* index: String Functions. (line 151)
* indexing arrays: Array Intro. (line 49)
* indirect function calls: Indirect Calls. (line 6)
* infinite precision: Arbitrary Precision Arithmetic.
@@ -31551,6 +31791,7 @@ Index
* input files, running awk without: Read Terminal. (line 6)
* input files, variable assignments and: Other Arguments. (line 19)
* input pipeline: Getline/Pipe. (line 9)
+* input record, length of: String Functions. (line 171)
* input redirection: Getline/File. (line 6)
* input, data, nondecimal: Nondecimal Data. (line 6)
* input, explicit: Getline. (line 6)
@@ -31559,17 +31800,21 @@ Index
* input, splitting into records: Records. (line 6)
* input, standard <1>: Special FD. (line 6)
* input, standard: Read Terminal. (line 6)
+* input/output functions: I/O Functions. (line 6)
* input/output, binary: User-modified. (line 10)
* input/output, from BEGIN and END: I/O And BEGIN/END. (line 6)
* input/output, two-way: Two-way I/O. (line 44)
* insomnia, cure for: Alarm Program. (line 6)
* installation, VMS: VMS Installation. (line 6)
* installing gawk: Installation. (line 6)
-* INT signal (MS-Windows): Profiling. (line 207)
-* int() function: Numeric Functions. (line 23)
-* integer, arbitrary precision: Arbitrary Precision Integers.
- (line 6)
+* instruction tracing, in debugger: Debugger Info. (line 89)
+* int: Numeric Functions. (line 23)
+* INT signal (MS-Windows): Profiling. (line 214)
+* integer array indices: Numeric Array Subscripts.
+ (line 31)
* integers: General Arithmetic. (line 6)
+* integers, arbitrary precision: Arbitrary Precision Integers.
+ (line 6)
* integers, unsigned: General Arithmetic. (line 15)
* interacting with other programs: I/O Functions. (line 72)
* internationalization <1>: I18N and L10N. (line 6)
@@ -31588,19 +31833,20 @@ Index
* internationalization, localization, portability and: I18N Portability.
(line 6)
* internationalizing a program: Explaining gettext. (line 6)
-* interpreted programs <1>: Glossary. (line 365)
+* interpreted programs <1>: Glossary. (line 357)
* interpreted programs: Basic High Level. (line 15)
-* interval expressions: Regexp Operators. (line 116)
+* interval expressions, regexp operator: Regexp Operators. (line 116)
* inventory-shipped file: Sample Data Files. (line 32)
-* isarray() function (gawk): Type Functions. (line 11)
-* ISO: Glossary. (line 376)
-* ISO 8859-1: Glossary. (line 141)
-* ISO Latin-1: Glossary. (line 141)
+* invoke shell command: I/O Functions. (line 72)
+* isarray: Type Functions. (line 11)
+* ISO: Glossary. (line 368)
+* ISO 8859-1: Glossary. (line 133)
+* ISO Latin-1: Glossary. (line 133)
* Jacobs, Andrew: Passwd Functions. (line 90)
* Jaegermann, Michal <1>: Contributors. (line 45)
* Jaegermann, Michal: Acknowledgments. (line 60)
* Java implementation of awk: Other Versions. (line 112)
-* Java programming language: Glossary. (line 388)
+* Java programming language: Glossary. (line 380)
* jawk: Other Versions. (line 112)
* Jedi knights: Undocumented. (line 6)
* join() user-defined function: Join Function. (line 18)
@@ -31608,15 +31854,18 @@ Index
* Kahrs, Ju"rgen: Acknowledgments. (line 60)
* Kasal, Stepan: Acknowledgments. (line 60)
* Kenobi, Obi-Wan: Undocumented. (line 6)
-* Kernighan, Brian <1>: Basic Data Typing. (line 55)
-* Kernighan, Brian <2>: Other Versions. (line 13)
-* Kernighan, Brian <3>: Contributors. (line 11)
-* Kernighan, Brian <4>: BTL. (line 6)
-* Kernighan, Brian <5>: Concatenation. (line 6)
-* Kernighan, Brian <6>: Acknowledgments. (line 72)
-* Kernighan, Brian <7>: Conventions. (line 34)
+* Kernighan, Brian <1>: Glossary. (line 143)
+* Kernighan, Brian <2>: Basic Data Typing. (line 55)
+* Kernighan, Brian <3>: Other Versions. (line 13)
+* Kernighan, Brian <4>: Contributors. (line 11)
+* Kernighan, Brian <5>: BTL. (line 6)
+* Kernighan, Brian <6>: Library Functions. (line 12)
+* Kernighan, Brian <7>: Concatenation. (line 6)
+* Kernighan, Brian <8>: Getline/Pipe. (line 6)
+* Kernighan, Brian <9>: Acknowledgments. (line 72)
+* Kernighan, Brian <10>: Conventions. (line 34)
* Kernighan, Brian: History. (line 17)
-* kill command, dynamic profiling: Profiling. (line 181)
+* kill command, dynamic profiling: Profiling. (line 188)
* Knights, jedi: Undocumented. (line 6)
* Knuth, Donald: Arbitrary Precision Arithmetic.
(line 6)
@@ -31643,11 +31892,14 @@ Index
* left angle bracket (<), <= operator <1>: Precedence. (line 65)
* left angle bracket (<), <= operator: Comparison Operators.
(line 11)
+* left shift: Bitwise Functions. (line 46)
* left shift, bitwise: Bitwise Functions. (line 32)
* leftmost longest match: Multiple Line. (line 26)
-* length() function: String Functions. (line 163)
-* Lesser General Public License (LGPL): Glossary. (line 405)
-* LGPL (Lesser General Public License): Glossary. (line 405)
+* length: String Functions. (line 164)
+* length of input record: String Functions. (line 171)
+* length of string: String Functions. (line 164)
+* Lesser General Public License (LGPL): Glossary. (line 397)
+* LGPL (Lesser General Public License): Glossary. (line 397)
* libmawk: Other Versions. (line 120)
* libraries of awk functions: Library Functions. (line 6)
* libraries of awk functions, assertions: Assert Function. (line 6)
@@ -31692,50 +31944,65 @@ Index
* lint checking, undefined functions: Pass By Value/Reference.
(line 88)
* LINT variable: User-modified. (line 98)
-* Linux <1>: Glossary. (line 624)
+* Linux <1>: Glossary. (line 616)
* Linux <2>: I18N Example. (line 55)
* Linux: Manual History. (line 28)
+* list all global variables, in debugger: Debugger Info. (line 48)
* list debugger command: Miscellaneous Debugger Commands.
(line 72)
+* list function definitions, in debugger: Debugger Info. (line 30)
* loading, library: Options. (line 173)
-* local variables: Variable Scope. (line 6)
+* local variables, in a function: Variable Scope. (line 6)
* locale categories: Explaining gettext. (line 80)
* locale decimal point character: Options. (line 263)
* locale, definition of: Locales. (line 6)
* localization: I18N and L10N. (line 6)
* localization, See internationalization, localization: I18N and L10N.
(line 6)
+* log: Numeric Functions. (line 30)
* log files, timestamps in: Time Functions. (line 6)
-* log() function: Numeric Functions. (line 30)
+* logarithm: Numeric Functions. (line 30)
* logical false/true: Truth Values. (line 6)
* logical operators, See Boolean expressions: Boolean Ops. (line 6)
* login information: Passwd Functions. (line 16)
* long options: Command Line. (line 13)
* loops: While Statement. (line 6)
+* loops, break statement and: Break Statement. (line 6)
* loops, continue statements and: For Statement. (line 64)
-* loops, count for header: Profiling. (line 123)
+* loops, count for header, in a profile: Profiling. (line 131)
+* loops, do-while: Do Statement. (line 6)
* loops, exiting: Break Statement. (line 6)
+* loops, for, array scanning: Scanning an Array. (line 6)
+* loops, for, iterative: For Statement. (line 6)
* loops, See Also while statement: While Statement. (line 6)
+* loops, while: While Statement. (line 6)
* ls utility: More Complex. (line 15)
-* lshift() function (gawk): Bitwise Functions. (line 46)
+* lshift: Bitwise Functions. (line 46)
* lvalues/rvalues: Assignment Ops. (line 32)
+* mail-list file: Sample Data Files. (line 6)
* mailing labels, printing: Labels Program. (line 6)
* mailing list, GNITS: Acknowledgments. (line 52)
-* Malmberg, John <1>: Bugs. (line 72)
+* Malmberg, John <1>: Bugs. (line 70)
* Malmberg, John: Acknowledgments. (line 60)
* mark parity: Ordinal Functions. (line 45)
* marked string extraction (internationalization): String Extraction.
(line 6)
* marked strings, extracting: String Extraction. (line 6)
* Marx, Groucho: Increment Ops. (line 60)
-* match() function: String Functions. (line 203)
+* match: String Functions. (line 204)
+* match regexp in string: String Functions. (line 204)
* match() function, RSTART/RLENGTH variables: String Functions.
- (line 220)
+ (line 221)
* matching, expressions, See comparison expressions: Typing and Comparison.
(line 9)
* matching, leftmost longest: Multiple Line. (line 26)
* matching, null strings: Gory Details. (line 164)
-* mawk program: Other Versions. (line 44)
+* mawk utility <1>: Other Versions. (line 44)
+* mawk utility <2>: Nextfile Statement. (line 47)
+* mawk utility <3>: Concatenation. (line 36)
+* mawk utility <4>: Getline/Pipe. (line 62)
+* mawk utility: Escape Sequences. (line 124)
+* maximum precision supported by MPFR library: Auto-set. (line 227)
* McPhee, Patrick: Contributors. (line 100)
* message object files: Explaining gettext. (line 41)
* message object files, converting from portable object files: I18N Example.
@@ -31744,15 +32011,18 @@ Index
(line 47)
* message object files, specifying directory of: Explaining gettext.
(line 53)
+* messages from extensions: Printing Messages. (line 6)
+* metacharacters in regular expressions: Regexp Operators. (line 6)
* metacharacters, escape sequences for: Escape Sequences. (line 130)
-* mktime() function (gawk): Time Functions. (line 25)
+* minimum precision supported by MPFR library: Auto-set. (line 230)
+* mktime: Time Functions. (line 25)
* modifiers, in format specifiers: Format Modifiers. (line 6)
* monetary information, localization: Explaining gettext. (line 103)
-* MPFR: Arbitrary Precision Arithmetic.
- (line 6)
+* MPFR: Gawk and MPFR. (line 6)
* msgfmt utility: I18N Example. (line 62)
* multiple precision: Arbitrary Precision Arithmetic.
(line 6)
+* multiple-line records: Multiple Line. (line 6)
* n debugger command (alias for next): Debugger Execution Control.
(line 43)
* names, arrays/variables <1>: Library Names. (line 6)
@@ -31764,7 +32034,7 @@ Index
* namespace issues, functions: Definition Syntax. (line 20)
* nawk utility: Names. (line 17)
* negative zero: Unexpected Results. (line 34)
-* NetBSD: Glossary. (line 624)
+* NetBSD: Glossary. (line 616)
* networks, programming: TCP/IP Networking. (line 6)
* networks, support for: Special Network. (line 6)
* newlines <1>: Boolean Ops. (line 67)
@@ -31803,6 +32073,8 @@ Index
* ni debugger command (alias for nexti): Debugger Execution Control.
(line 49)
* noassign.awk program: Ignoring Assigns. (line 15)
+* non-existent array elements: Reference to Elements.
+ (line 23)
* not Boolean-logic operator: Boolean Ops. (line 6)
* NR variable <1>: Auto-set. (line 137)
* NR variable: Records. (line 6)
@@ -31811,13 +32083,15 @@ Index
* null strings <2>: Truth Values. (line 6)
* null strings <3>: Regexp Field Splitting.
(line 43)
-* null strings: Records. (line 107)
-* null strings, array elements and: Delete. (line 27)
+* null strings: Records. (line 122)
+* null strings in gawk arguments, quoting and: Quoting. (line 62)
+* null strings, and deleting array elements: Delete. (line 27)
* null strings, as array subscripts: Uninitialized Subscripts.
(line 43)
* null strings, converting numbers to strings: Conversion. (line 21)
* null strings, matching: Gory Details. (line 164)
-* null strings, quoting and: Quoting. (line 62)
+* number as string of bits: Bitwise Functions. (line 109)
+* number of array elements: String Functions. (line 194)
* number sign (#), #! (executable scripts): Executable Scripts.
(line 6)
* number sign (#), commenting: Comments. (line 6)
@@ -31832,9 +32106,9 @@ Index
* numbers, floating-point: General Arithmetic. (line 6)
* numbers, hexadecimal: Nondecimal-numbers. (line 6)
* numbers, octal: Nondecimal-numbers. (line 6)
-* numbers, random: Numeric Functions. (line 64)
* numbers, rounding: Round Function. (line 6)
-* numeric, constants: Scalar Constants. (line 6)
+* numeric constants: Scalar Constants. (line 6)
+* numeric functions: Numeric Functions. (line 6)
* numeric, output format: OFMT. (line 6)
* numeric, strings: Variable Typing. (line 6)
* o debugger command (alias for option): Debugger Info. (line 57)
@@ -31849,7 +32123,7 @@ Index
* OFS variable <1>: User-modified. (line 124)
* OFS variable <2>: Output Separators. (line 6)
* OFS variable: Changing Fields. (line 64)
-* OpenBSD: Glossary. (line 624)
+* OpenBSD: Glossary. (line 616)
* OpenSolaris: Other Versions. (line 96)
* operating systems, BSD-based: Manual History. (line 28)
* operating systems, PC, gawk on: PC Using. (line 6)
@@ -31884,10 +32158,7 @@ Index
* operators, word-boundary (gawk): GNU Regexp Operators.
(line 63)
* option debugger command: Debugger Info. (line 57)
-* options, command-line <1>: Command Line Field Separator.
- (line 6)
-* options, command-line <2>: Options. (line 6)
-* options, command-line: Long. (line 12)
+* options, command-line: Options. (line 6)
* options, command-line, end of: Options. (line 54)
* options, command-line, invoking awk: Command Line. (line 6)
* options, command-line, processing: Getopt Function. (line 6)
@@ -31895,9 +32166,9 @@ Index
* options, long <1>: Options. (line 6)
* options, long: Command Line. (line 13)
* options, printing list of: Options. (line 154)
+* or: Bitwise Functions. (line 49)
* OR bitwise operation: Bitwise Functions. (line 6)
* or Boolean-logic operator: Boolean Ops. (line 6)
-* or() function (gawk): Bitwise Functions. (line 49)
* ord() extension function: Extension Sample Ord.
(line 12)
* ord() user-defined function: Ordinal Functions. (line 16)
@@ -31908,6 +32179,7 @@ Index
* output record separator, See ORS variable: Output Separators.
(line 20)
* output redirection: Redirection. (line 6)
+* output wrapper: Output Wrappers. (line 6)
* output, buffering: I/O Functions. (line 29)
* output, duplicating into files: Tee Program. (line 6)
* output, files, closing: Close Files And Pipes.
@@ -31920,20 +32192,21 @@ Index
* output, standard: Special FD. (line 6)
* p debugger command (alias for print): Viewing And Changing Data.
(line 36)
-* P1003.1 POSIX standard: Glossary. (line 462)
-* parentheses () <1>: Profiling. (line 138)
-* parentheses (): Regexp Operators. (line 79)
+* P1003.1 POSIX standard: Glossary. (line 454)
+* parent process ID of gawk process: Auto-set. (line 195)
+* parentheses (), in a profile: Profiling. (line 146)
+* parentheses (), regexp operator: Regexp Operators. (line 79)
* password file: Passwd Functions. (line 16)
-* patsplit() function (gawk): String Functions. (line 290)
+* patsplit: String Functions. (line 291)
* patterns: Patterns and Actions.
(line 6)
* patterns, comparison expressions as: Expression Patterns. (line 14)
-* patterns, counts: Profiling. (line 110)
+* patterns, counts, in a profile: Profiling. (line 118)
* patterns, default: Very Simple. (line 34)
* patterns, empty: Empty. (line 6)
* patterns, expressions as: Regexp Patterns. (line 6)
* patterns, ranges in: Ranges. (line 6)
-* patterns, regexp constants as: Expression Patterns. (line 36)
+* patterns, regexp constants as: Expression Patterns. (line 34)
* patterns, types of: Pattern Overview. (line 15)
* pawk (profiling version of Brian Kernighan's awk): Other Versions.
(line 78)
@@ -31943,22 +32216,24 @@ Index
* percent sign (%), % operator: Precedence. (line 55)
* percent sign (%), %= operator <1>: Precedence. (line 95)
* percent sign (%), %= operator: Assignment Ops. (line 129)
-* period (.): Regexp Operators. (line 43)
+* period (.), regexp operator: Regexp Operators. (line 43)
* Perl: Future Extensions. (line 6)
* Peters, Arno: Contributors. (line 85)
* Peterson, Hal: Contributors. (line 39)
-* pipes, closing: Close Files And Pipes.
+* pipe, closing: Close Files And Pipes.
(line 6)
-* pipes, input: Getline/Pipe. (line 9)
-* pipes, output: Redirection. (line 57)
-* Pitts, Dave <1>: Bugs. (line 73)
+* pipe, input: Getline/Pipe. (line 9)
+* pipe, output: Redirection. (line 57)
+* Pitts, Dave <1>: Bugs. (line 70)
* Pitts, Dave: Acknowledgments. (line 60)
-* plus sign (+): Regexp Operators. (line 102)
+* Plauger, P.J.: Library Functions. (line 12)
+* plug-in: Extension Intro. (line 6)
* plus sign (+), + operator: Precedence. (line 52)
* plus sign (+), ++ operator <1>: Precedence. (line 46)
* plus sign (+), ++ operator: Increment Ops. (line 11)
* plus sign (+), += operator <1>: Precedence. (line 95)
* plus sign (+), += operator: Assignment Ops. (line 82)
+* plus sign (+), regexp operator: Regexp Operators. (line 102)
* pointers to functions: Indirect Calls. (line 6)
* portability: Escape Sequences. (line 94)
* portability, #! (executable scripts): Executable Scripts. (line 33)
@@ -31970,14 +32245,14 @@ Index
(line 112)
* portability, close() function and: Close Files And Pipes.
(line 81)
-* portability, data files as single record: Records. (line 179)
+* portability, data files as single record: Records. (line 194)
* portability, deleting array elements: Delete. (line 56)
* portability, example programs: Library Functions. (line 42)
* portability, functions, defining: Definition Syntax. (line 99)
* portability, gawk: New Ports. (line 6)
* portability, gettext library and: Explaining gettext. (line 10)
* portability, internationalization and: I18N Portability. (line 6)
-* portability, length() function: String Functions. (line 172)
+* portability, length() function: String Functions. (line 173)
* portability, new awk vs. old awk: Conversion. (line 55)
* portability, next statement in user-defined functions: Pass By Value/Reference.
(line 91)
@@ -31985,7 +32260,7 @@ Index
* portability, operators: Increment Ops. (line 60)
* portability, operators, not in POSIX awk: Precedence. (line 98)
* portability, POSIXLY_CORRECT environment variable: Options. (line 353)
-* portability, substr() function: String Functions. (line 509)
+* portability, substr() function: String Functions. (line 510)
* portable object files <1>: Translator i18n. (line 6)
* portable object files: Explaining gettext. (line 36)
* portable object files, converting to message object files: I18N Example.
@@ -32015,14 +32290,14 @@ Index
* POSIX awk, changes in awk versions: POSIX. (line 6)
* POSIX awk, continue statement and: Continue Statement. (line 43)
* POSIX awk, CONVFMT variable and: User-modified. (line 28)
-* POSIX awk, date utility and: Time Functions. (line 262)
+* POSIX awk, date utility and: Time Functions. (line 263)
* POSIX awk, field separators and <1>: Field Splitting Summary.
(line 40)
* POSIX awk, field separators and: Fields. (line 6)
* POSIX awk, FS variable and: User-modified. (line 66)
* POSIX awk, function keyword in: Definition Syntax. (line 83)
* POSIX awk, functions and, gsub()/sub(): Gory Details. (line 54)
-* POSIX awk, functions and, length(): String Functions. (line 172)
+* POSIX awk, functions and, length(): String Functions. (line 173)
* POSIX awk, GNU long options and: Options. (line 15)
* POSIX awk, interval expressions in: Regexp Operators. (line 135)
* POSIX awk, next/nextfile statements and: Next Statement. (line 45)
@@ -32055,6 +32330,8 @@ Index
* print statement, See Also redirection, of output: Redirection.
(line 17)
* print statement, sprintf() function and: Round Function. (line 6)
+* print variables, in debugger: Viewing And Changing Data.
+ (line 36)
* printf debugger command: Viewing And Changing Data.
(line 54)
* printf statement <1>: Printf. (line 6)
@@ -32074,22 +32351,30 @@ Index
* printf statement, sprintf() function and: Round Function. (line 6)
* printf statement, syntax of: Basic Printf. (line 6)
* printing: Printing. (line 6)
+* printing messages from extensions: Printing Messages. (line 6)
* printing, list of options: Options. (line 154)
* printing, mailing labels: Labels Program. (line 6)
* printing, unduplicated lines of text: Uniq Program. (line 6)
* printing, user information: Id Program. (line 6)
* private variables: Library Names. (line 11)
+* process group idIDof gawk process: Auto-set. (line 189)
+* process ID of gawk process: Auto-set. (line 192)
* processes, two-way communications with: Two-way I/O. (line 23)
* processing data: Basic High Level. (line 6)
-* PROCINFO array <1>: Two-way I/O. (line 116)
-* PROCINFO array <2>: Id Program. (line 15)
-* PROCINFO array <3>: Group Functions. (line 6)
-* PROCINFO array <4>: Passwd Functions. (line 6)
-* PROCINFO array <5>: Time Functions. (line 47)
-* PROCINFO array <6>: Auto-set. (line 142)
-* PROCINFO array: Obsolete. (line 11)
+* PROCINFO array <1>: Passwd Functions. (line 6)
+* PROCINFO array <2>: Time Functions. (line 47)
+* PROCINFO array: Auto-set. (line 142)
+* PROCINFO array, and communications via ptys: Two-way I/O. (line 116)
+* PROCINFO array, and group membership: Group Functions. (line 6)
+* PROCINFO array, and user and group ID numbers: Id Program. (line 15)
+* PROCINFO array, testing the field splitting: Passwd Functions.
+ (line 161)
+* PROCINFO array, uses: Auto-set. (line 248)
+* PROCINFO, values of sorted_in: Controlling Scanning.
+ (line 24)
* profiling awk programs: Profiling. (line 6)
-* profiling awk programs, dynamically: Profiling. (line 172)
+* profiling awk programs, dynamically: Profiling. (line 179)
+* program identifiers: Auto-set. (line 160)
* program, definition of: Getting Started. (line 21)
* programmers, attractiveness of: Two-way I/O. (line 6)
* programming conventions, --non-decimal-data option: Nondecimal Data.
@@ -32107,10 +32392,10 @@ Index
* programming conventions, private variable names: Library Names.
(line 23)
* programming language, recipe for: History. (line 6)
-* Programming languages, Ada: Glossary. (line 20)
+* programming languages, Ada: Glossary. (line 20)
* programming languages, data-driven vs. procedural: Getting Started.
(line 12)
-* Programming languages, Java: Glossary. (line 388)
+* programming languages, Java: Glossary. (line 380)
* programming, basic steps: Basic High Level. (line 20)
* programming, concepts: Basic Concepts. (line 6)
* pwcat program: Passwd Functions. (line 23)
@@ -32118,24 +32403,23 @@ Index
(line 99)
* QSE Awk: Other Versions. (line 130)
* Quanstrom, Erik: Alarm Program. (line 8)
-* question mark (?) regexp operator <1>: GNU Regexp Operators.
- (line 59)
-* question mark (?) regexp operator: Regexp Operators. (line 111)
* question mark (?), ?: operator: Precedence. (line 92)
+* question mark (?), regexp operator <1>: GNU Regexp Operators.
+ (line 59)
+* question mark (?), regexp operator: Regexp Operators. (line 111)
* QuikTrim Awk: Other Versions. (line 134)
* quit debugger command: Miscellaneous Debugger Commands.
(line 99)
-* QUIT signal (MS-Windows): Profiling. (line 207)
-* quoting <1>: Comments. (line 27)
-* quoting <2>: Long. (line 26)
-* quoting: Read Terminal. (line 25)
-* quoting, rules for: Quoting. (line 6)
-* quoting, tricks for: Quoting. (line 71)
+* QUIT signal (MS-Windows): Profiling. (line 214)
+* quoting in gawk command lines: Long. (line 26)
+* quoting in gawk command lines, tricks for: Quoting. (line 71)
+* quoting, for small awk programs: Comments. (line 27)
* r debugger command (alias for run): Debugger Execution Control.
(line 62)
* Rakitzis, Byron: History Sorting. (line 25)
+* Ramey, Chet <1>: General Data Types. (line 6)
* Ramey, Chet: Acknowledgments. (line 60)
-* rand() function: Numeric Functions. (line 34)
+* rand: Numeric Functions. (line 34)
* random numbers, Cliff: Cliff Random Function.
(line 6)
* random numbers, rand()/srand() functions: Numeric Functions.
@@ -32143,7 +32427,8 @@ Index
* random numbers, seed of: Numeric Functions. (line 64)
* range expressions (regexps): Bracket Expressions. (line 6)
* range patterns: Ranges. (line 6)
-* Rankin, Pat <1>: Bugs. (line 72)
+* range patterns, line continuation and: Ranges. (line 65)
+* Rankin, Pat <1>: Bugs. (line 70)
* Rankin, Pat <2>: Contributors. (line 37)
* Rankin, Pat <3>: Assignment Ops. (line 100)
* Rankin, Pat: Acknowledgments. (line 60)
@@ -32154,37 +32439,41 @@ Index
* readdir extension: Extension Sample Readdir.
(line 9)
* readfile() extension function: Extension Sample Readfile.
- (line 11)
+ (line 12)
* readfile() user-defined function: Readfile Function. (line 30)
+* reading input files: Reading Files. (line 6)
* recipe for a programming language: History. (line 6)
* record separators <1>: User-modified. (line 143)
* record separators: Records. (line 14)
-* record separators, changing: Records. (line 81)
-* record separators, regular expressions as: Records. (line 117)
+* record separators, changing: Records. (line 93)
+* record separators, regular expressions as: Records. (line 132)
* record separators, with multiline records: Multiple Line. (line 10)
* records <1>: Basic High Level. (line 73)
* records: Reading Files. (line 14)
* records, multiline: Multiple Line. (line 6)
* records, printing: Print. (line 22)
* records, splitting input into: Records. (line 6)
-* records, terminating: Records. (line 117)
-* records, treating files as: Records. (line 204)
+* records, terminating: Records. (line 132)
+* records, treating files as: Records. (line 219)
* recursive functions: Definition Syntax. (line 73)
+* redirect gawk output, in debugger: Debugger Info. (line 72)
* redirection of input: Getline/File. (line 6)
* redirection of output: Redirection. (line 6)
* reference counting, sorting arrays: Array Sorting Functions.
(line 77)
+* regexp: Regexp. (line 6)
* regexp constants <1>: Comparison Operators.
(line 102)
* regexp constants <2>: Regexp Constants. (line 6)
* regexp constants: Regexp Usage. (line 57)
* regexp constants, /=.../, /= operator and: Assignment Ops. (line 147)
-* regexp constants, as patterns: Expression Patterns. (line 36)
+* regexp constants, as patterns: Expression Patterns. (line 34)
* regexp constants, in gawk: Using Constant Regexps.
(line 28)
* regexp constants, slashes vs. quotes: Computed Regexps. (line 28)
* regexp constants, vs. string constants: Computed Regexps. (line 38)
-* regexp, See regular expressions: Regexp. (line 6)
+* register extension: Registration Functions.
+ (line 6)
* regular expressions: Regexp. (line 6)
* regular expressions as field separators: Field Separators. (line 51)
* regular expressions, anchors in: Regexp Operators. (line 22)
@@ -32192,7 +32481,7 @@ Index
(line 6)
* regular expressions, as patterns <1>: Regexp Patterns. (line 6)
* regular expressions, as patterns: Regexp Usage. (line 6)
-* regular expressions, as record separators: Records. (line 117)
+* regular expressions, as record separators: Records. (line 132)
* regular expressions, case sensitivity <1>: User-modified. (line 82)
* regular expressions, case sensitivity: Case-sensitivity. (line 6)
* regular expressions, computed: Computed Regexps. (line 6)
@@ -32219,12 +32508,13 @@ Index
* regular expressions, searching for: Egrep Program. (line 6)
* relational operators, See comparison operators: Typing and Comparison.
(line 9)
+* replace in string: String Functions. (line 406)
* return debugger command: Debugger Execution Control.
(line 54)
* return statement, user-defined functions: Return Statement. (line 6)
* return value, close() function: Close Files And Pipes.
(line 130)
-* rev() user-defined function: Function Example. (line 52)
+* rev() user-defined function: Function Example. (line 53)
* revoutput extension: Extension Sample Revout.
(line 11)
* revtwoway extension: Extension Sample Rev2way.
@@ -32239,18 +32529,20 @@ Index
(line 11)
* right angle bracket (>), >> operator (I/O) <1>: Precedence. (line 65)
* right angle bracket (>), >> operator (I/O): Redirection. (line 50)
+* right shift: Bitwise Functions. (line 52)
* right shift, bitwise: Bitwise Functions. (line 32)
* Ritchie, Dennis: Basic Data Typing. (line 55)
* RLENGTH variable: Auto-set. (line 262)
-* RLENGTH variable, match() function and: String Functions. (line 220)
+* RLENGTH variable, match() function and: String Functions. (line 221)
* Robbins, Arnold <1>: Future Extensions. (line 6)
* Robbins, Arnold <2>: Bugs. (line 32)
-* Robbins, Arnold <3>: Contributors. (line 132)
-* Robbins, Arnold <4>: Alarm Program. (line 6)
-* Robbins, Arnold <5>: Passwd Functions. (line 90)
-* Robbins, Arnold <6>: Getline/Pipe. (line 39)
+* Robbins, Arnold <3>: Contributors. (line 139)
+* Robbins, Arnold <4>: General Data Types. (line 6)
+* Robbins, Arnold <5>: Alarm Program. (line 6)
+* Robbins, Arnold <6>: Passwd Functions. (line 90)
+* Robbins, Arnold <7>: Getline/Pipe. (line 39)
* Robbins, Arnold: Command Line Field Separator.
- (line 80)
+ (line 73)
* Robbins, Bill: Getline/Pipe. (line 39)
* Robbins, Harry: Acknowledgments. (line 78)
* Robbins, Jean: Acknowledgments. (line 78)
@@ -32258,6 +32550,7 @@ Index
* Robbins, Miriam <2>: Getline/Pipe. (line 39)
* Robbins, Miriam: Acknowledgments. (line 78)
* Rommel, Kai Uwe: Contributors. (line 42)
+* round to nearest integer: Numeric Functions. (line 23)
* round() user-defined function: Round Function. (line 16)
* rounding mode, floating-point: Rounding Mode. (line 6)
* rounding numbers: Round Function. (line 6)
@@ -32267,14 +32560,12 @@ Index
* RS variable <1>: User-modified. (line 143)
* RS variable: Records. (line 20)
* RS variable, multiline records and: Multiple Line. (line 17)
-* rshift() function (gawk): Bitwise Functions. (line 52)
+* rshift: Bitwise Functions. (line 52)
* RSTART variable: Auto-set. (line 268)
-* RSTART variable, match() function and: String Functions. (line 220)
+* RSTART variable, match() function and: String Functions. (line 221)
* RT variable <1>: Auto-set. (line 275)
-* RT variable <2>: Getline/Variable/File.
- (line 10)
-* RT variable <3>: Multiple Line. (line 129)
-* RT variable: Records. (line 117)
+* RT variable <2>: Multiple Line. (line 129)
+* RT variable: Records. (line 132)
* Rubin, Paul <1>: Contributors. (line 15)
* Rubin, Paul: History. (line 30)
* rule, definition of: Getting Started. (line 21)
@@ -32283,55 +32574,80 @@ Index
* rvalues/lvalues: Assignment Ops. (line 32)
* s debugger command (alias for step): Debugger Execution Control.
(line 68)
+* sample debugging session: Sample Debugging Session.
+ (line 6)
* sandbox mode: Options. (line 279)
+* save debugger options: Debugger Info. (line 84)
+* scalar or array: Type Functions. (line 11)
* scalar values: Basic Data Typing. (line 13)
-* Schorr, Andrew <1>: Contributors. (line 128)
+* scanning arrays: Scanning an Array. (line 6)
+* scanning multidimensional arrays: Multiscanning. (line 11)
+* Schorr, Andrew <1>: Contributors. (line 131)
* Schorr, Andrew: Acknowledgments. (line 60)
* Schreiber, Bert: Acknowledgments. (line 38)
* Schreiber, Rita: Acknowledgments. (line 38)
+* search and replace in strings: String Functions. (line 82)
+* search in string: String Functions. (line 151)
* search paths <1>: VMS Running. (line 58)
-* search paths <2>: PC Using. (line 11)
-* search paths <3>: Igawk Program. (line 368)
-* search paths <4>: AWKLIBPATH Variable. (line 6)
-* search paths: AWKPATH Variable. (line 6)
+* search paths <2>: PC Using. (line 10)
+* search paths: Igawk Program. (line 368)
* search paths, for shared libraries: AWKLIBPATH Variable. (line 6)
* search paths, for source files <1>: VMS Running. (line 58)
-* search paths, for source files <2>: PC Using. (line 11)
+* search paths, for source files <2>: PC Using. (line 10)
* search paths, for source files <3>: Igawk Program. (line 368)
* search paths, for source files: AWKPATH Variable. (line 6)
-* searching: String Functions. (line 150)
* searching, files for regular expressions: Egrep Program. (line 6)
* searching, for words: Dupword Program. (line 6)
* sed utility <1>: Glossary. (line 12)
* sed utility <2>: Simple Sed. (line 6)
* sed utility: Field Splitting Summary.
(line 46)
-* semicolon (;): Statements/Lines. (line 91)
-* semicolon (;), AWKPATH variable and: PC Using. (line 11)
+* seeding random number generator: Numeric Functions. (line 64)
+* semicolon (;), AWKPATH variable and: PC Using. (line 10)
* semicolon (;), separating statements in actions <1>: Statements.
(line 10)
-* semicolon (;), separating statements in actions: Action Overview.
+* semicolon (;), separating statements in actions <2>: Action Overview.
(line 19)
+* semicolon (;), separating statements in actions: Statements/Lines.
+ (line 91)
* separators, field: User-modified. (line 56)
* separators, field, FIELDWIDTHS variable and: User-modified. (line 35)
* separators, field, FPAT variable and: User-modified. (line 45)
* separators, field, POSIX and: Fields. (line 6)
* separators, for records <1>: User-modified. (line 143)
* separators, for records: Records. (line 14)
-* separators, for records, regular expressions as: Records. (line 117)
+* separators, for records, regular expressions as: Records. (line 132)
* separators, for statements in actions: Action Overview. (line 19)
* separators, subscript: User-modified. (line 156)
+* set breakpoint: Breakpoint Control. (line 11)
* set debugger command: Viewing And Changing Data.
(line 59)
+* set directory of message catalogs: I18N Functions. (line 12)
+* set watchpoint: Viewing And Changing Data.
+ (line 67)
+* setting rounding mode: Setting Rounding Mode.
+ (line 6)
+* setting working precision: Setting Precision. (line 6)
+* shadowing of variable values: Definition Syntax. (line 61)
+* shell quoting, double quote: Read Terminal. (line 25)
+* shell quoting, rules for: Quoting. (line 6)
* shells, piping commands into: Redirection. (line 142)
* shells, quoting: Using Shell Variables.
(line 12)
* shells, quoting, rules for: Quoting. (line 18)
* shells, scripts: One-shot. (line 22)
+* shells, sea: Undocumented. (line 8)
* shells, variables: Using Shell Variables.
(line 6)
* shift, bitwise: Bitwise Functions. (line 32)
* short-circuit operators: Boolean Ops. (line 57)
+* show all source files, in debugger: Debugger Info. (line 45)
+* show breakpoints: Debugger Info. (line 21)
+* show function arguments, in debugger: Debugger Info. (line 18)
+* show local variables, in debugger: Debugger Info. (line 34)
+* show name of current source file, in debugger: Debugger Info.
+ (line 37)
+* show watchpoints: Debugger Info. (line 51)
* si debugger command (alias for stepi): Debugger Execution Control.
(line 76)
* side effects <1>: Increment Ops. (line 11)
@@ -32367,7 +32683,7 @@ Index
* sidebar, Piping into sh: Redirection. (line 140)
* sidebar, Portability Issues with #!: Executable Scripts. (line 31)
* sidebar, Recipe For A Programming Language: History. (line 6)
-* sidebar, RS = "\0" Is Not Portable: Records. (line 177)
+* sidebar, RS = "\0" Is Not Portable: Records. (line 192)
* sidebar, So Why Does gawk have BEGINFILE and ENDFILE?: Filetrans Function.
(line 83)
* sidebar, Syntactic Ambiguities Between /= and Regular Expressions: Assignment Ops.
@@ -32377,30 +32693,36 @@ Index
(line 56)
* sidebar, Using close()'s Return Value: Close Files And Pipes.
(line 128)
-* SIGHUP signal: Profiling. (line 204)
-* SIGINT signal (MS-Windows): Profiling. (line 207)
-* signals, HUP/SIGHUP: Profiling. (line 204)
-* signals, INT/SIGINT (MS-Windows): Profiling. (line 207)
-* signals, QUIT/SIGQUIT (MS-Windows): Profiling. (line 207)
-* signals, USR1/SIGUSR1: Profiling. (line 181)
-* SIGQUIT signal (MS-Windows): Profiling. (line 207)
-* SIGUSR1 signal: Profiling. (line 181)
+* SIGHUP signal, for dynamic profiling: Profiling. (line 211)
+* SIGINT signal (MS-Windows): Profiling. (line 214)
+* signals, HUP/SIGHUP, for profiling: Profiling. (line 211)
+* signals, INT/SIGINT (MS-Windows): Profiling. (line 214)
+* signals, QUIT/SIGQUIT (MS-Windows): Profiling. (line 214)
+* signals, USR1/SIGUSR1, for profiling: Profiling. (line 188)
+* signature program: Signature Program. (line 6)
+* SIGQUIT signal (MS-Windows): Profiling. (line 214)
+* SIGUSR1 signal, for dynamic profiling: Profiling. (line 188)
* silent debugger command: Debugger Execution Control.
(line 10)
-* sin() function: Numeric Functions. (line 75)
+* sin: Numeric Functions. (line 75)
+* sine: Numeric Functions. (line 75)
* single precision floating-point: General Arithmetic. (line 21)
-* single quote (') <1>: Quoting. (line 31)
-* single quote (') <2>: Long. (line 33)
* single quote ('): One-shot. (line 15)
+* single quote (') in gawk command lines: Long. (line 33)
+* single quote ('), in shell commands: Quoting. (line 31)
* single quote ('), vs. apostrophe: Comments. (line 27)
* single quote ('), with double quotes: Quoting. (line 53)
* single-character fields: Single Character Fields.
(line 6)
+* single-step execution, in the debugger: Debugger Execution Control.
+ (line 43)
* Skywalker, Luke: Undocumented. (line 6)
* sleep utility: Alarm Program. (line 111)
* sleep() extension function: Extension Sample Time.
(line 23)
* Solaris, POSIX-compliant awk: Other Versions. (line 96)
+* sort array: String Functions. (line 32)
+* sort array indices: String Functions. (line 32)
* sort function, arrays, sorting: Array Sorting Functions.
(line 6)
* sort utility: Word Sorting. (line 50)
@@ -32417,25 +32739,29 @@ Index
* source code, mawk: Other Versions. (line 44)
* source code, mixing: Options. (line 117)
* source code, pawk: Other Versions. (line 78)
+* source code, pawk (Python version): Other Versions. (line 124)
* source code, QSE Awk: Other Versions. (line 130)
* source code, QuikTrim Awk: Other Versions. (line 134)
* source code, Solaris awk: Other Versions. (line 96)
* source files, search path for: Igawk Program. (line 368)
* sparse arrays: Array Intro. (line 70)
* Spencer, Henry: Glossary. (line 12)
+* split: String Functions. (line 313)
+* split string into array: String Functions. (line 291)
* split utility: Split Program. (line 6)
-* split() function: String Functions. (line 312)
* split() function, array elements, deleting: Delete. (line 61)
* split.awk program: Split Program. (line 30)
-* sprintf() function <1>: String Functions. (line 377)
-* sprintf() function: OFMT. (line 15)
+* sprintf <1>: String Functions. (line 378)
+* sprintf: OFMT. (line 15)
* sprintf() function, OFMT variable and: User-modified. (line 124)
* sprintf() function, print/printf statements and: Round Function.
(line 6)
-* sqrt() function: Numeric Functions. (line 78)
-* square brackets ([]): Regexp Operators. (line 55)
-* srand() function: Numeric Functions. (line 82)
-* Stallman, Richard <1>: Glossary. (line 305)
+* sqrt: Numeric Functions. (line 78)
+* square brackets ([]), regexp operator: Regexp Operators. (line 55)
+* square root: Numeric Functions. (line 78)
+* srand: Numeric Functions. (line 82)
+* stack frame: Debugging Terms. (line 10)
+* Stallman, Richard <1>: Glossary. (line 297)
* Stallman, Richard <2>: Contributors. (line 23)
* Stallman, Richard <3>: Acknowledgments. (line 18)
* Stallman, Richard: Manual History. (line 6)
@@ -32443,6 +32769,7 @@ Index
* standard input <1>: Special FD. (line 6)
* standard input: Read Terminal. (line 6)
* standard output: Special FD. (line 6)
+* starting the debugger: Debugger Invocation. (line 6)
* stat() extension function: Extension Sample File Functions.
(line 18)
* statements, compound, control statements and: Statements. (line 10)
@@ -32452,35 +32779,42 @@ Index
(line 68)
* stepi debugger command: Debugger Execution Control.
(line 76)
+* stop automatic display, in debugger: Viewing And Changing Data.
+ (line 80)
* stream editors <1>: Simple Sed. (line 6)
* stream editors: Field Splitting Summary.
(line 46)
-* strftime() function (gawk): Time Functions. (line 48)
+* strftime: Time Functions. (line 48)
* string constants: Scalar Constants. (line 15)
* string constants, vs. regexp constants: Computed Regexps. (line 38)
* string extraction (internationalization): String Extraction.
(line 6)
+* string length: String Functions. (line 164)
* string operators: Concatenation. (line 8)
+* string, regular expression match: String Functions. (line 204)
+* string-manipulation functions: String Functions. (line 6)
* string-matching operators: Regexp Usage. (line 19)
+* string-translation functions: I18N Functions. (line 6)
+* strings splitting, example: String Functions. (line 333)
* strings, converting <1>: Bitwise Functions. (line 109)
* strings, converting: Conversion. (line 6)
+* strings, converting letter case: String Functions. (line 520)
* strings, converting, numbers to: User-modified. (line 28)
-* strings, empty, See null strings: Records. (line 107)
+* strings, empty, See null strings: Records. (line 122)
* strings, extracting: String Extraction. (line 6)
* strings, for localization: Programmer i18n. (line 14)
-* strings, length of: Scalar Constants. (line 20)
+* strings, length limitations: Scalar Constants. (line 20)
* strings, merging arrays into: Join Function. (line 6)
* strings, null: Regexp Field Splitting.
(line 43)
* strings, numeric: Variable Typing. (line 6)
-* strings, splitting: String Functions. (line 332)
-* strtonum() function (gawk): String Functions. (line 384)
+* strtonum: String Functions. (line 385)
* strtonum() function (gawk), --non-decimal-data option and: Nondecimal Data.
(line 36)
-* sub() function <1>: String Functions. (line 405)
-* sub() function: Using Constant Regexps.
+* sub <1>: String Functions. (line 406)
+* sub: Using Constant Regexps.
(line 43)
-* sub() function, arguments of: String Functions. (line 459)
+* sub() function, arguments of: String Functions. (line 460)
* sub() function, escape processing: Gory Details. (line 6)
* subscript separators: User-modified. (line 156)
* subscripts in arrays, multidimensional: Multidimensional. (line 10)
@@ -32491,15 +32825,19 @@ Index
* subscripts in arrays, uninitialized variables as: Uninitialized Subscripts.
(line 6)
* SUBSEP variable: User-modified. (line 156)
-* SUBSEP variable, multidimensional arrays: Multidimensional. (line 16)
-* substr() function: String Functions. (line 478)
+* SUBSEP variable, and multidimensional arrays: Multidimensional.
+ (line 16)
+* substitute in string: String Functions. (line 82)
+* substr: String Functions. (line 479)
+* substring: String Functions. (line 479)
* Sumner, Andrew: Other Versions. (line 64)
+* supplementary groups of gawk process: Auto-set. (line 243)
* switch statement: Switch Statement. (line 6)
* SYMTAB array: Auto-set. (line 283)
* syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops.
(line 147)
-* system() function: I/O Functions. (line 72)
-* systime() function (gawk): Time Functions. (line 65)
+* system: I/O Functions. (line 72)
+* systime: Time Functions. (line 66)
* t debugger command (alias for tbreak): Breakpoint Control. (line 90)
* tbreak debugger command: Breakpoint Control. (line 90)
* Tcl: Library Names. (line 57)
@@ -32507,7 +32845,8 @@ Index
* TCP/IP, support for: Special Network. (line 6)
* tee utility: Tee Program. (line 6)
* tee.awk program: Tee Program. (line 26)
-* terminating records: Records. (line 117)
+* temporary breakpoint: Breakpoint Control. (line 90)
+* terminating records: Records. (line 132)
* testbits.awk program: Bitwise Functions. (line 70)
* testext extension: Extension Sample API Tests.
(line 6)
@@ -32536,6 +32875,7 @@ Index
* tilde (~), ~ operator <5>: Computed Regexps. (line 6)
* tilde (~), ~ operator <6>: Case-sensitivity. (line 26)
* tilde (~), ~ operator: Regexp Usage. (line 19)
+* time functions: Time Functions. (line 6)
* time, alarm clock example program: Alarm Program. (line 11)
* time, localization and: Explaining gettext. (line 115)
* time, managing: Getlocaltime Function.
@@ -32543,15 +32883,18 @@ Index
* time, retrieving: Time Functions. (line 17)
* timeout, reading input: Read Timeout. (line 6)
* timestamps: Time Functions. (line 6)
-* timestamps, converting dates to: Time Functions. (line 75)
+* timestamps, converting dates to: Time Functions. (line 76)
* timestamps, formatted: Getlocaltime Function.
(line 6)
-* tolower() function: String Functions. (line 520)
-* toupper() function: String Functions. (line 526)
+* tolower: String Functions. (line 521)
+* toupper: String Functions. (line 527)
* tr utility: Translate Program. (line 6)
* trace debugger command: Miscellaneous Debugger Commands.
(line 108)
+* traceback, display in debugger: Execution Stack. (line 13)
+* translate string: I18N Functions. (line 22)
* translate.awk program: Translate Program. (line 55)
+* treating files, as single records: Records. (line 219)
* troubleshooting, --non-decimal-data option: Options. (line 207)
* troubleshooting, == operator: Comparison Operators.
(line 37)
@@ -32570,9 +32913,9 @@ Index
* troubleshooting, gawk, fatal errors, function arguments: Calling Built-in.
(line 16)
* troubleshooting, getline function: File Checking. (line 25)
-* troubleshooting, gsub()/sub() functions: String Functions. (line 469)
-* troubleshooting, match() function: String Functions. (line 285)
-* troubleshooting, patsplit() function: String Functions. (line 308)
+* troubleshooting, gsub()/sub() functions: String Functions. (line 470)
+* troubleshooting, match() function: String Functions. (line 286)
+* troubleshooting, patsplit() function: String Functions. (line 309)
* troubleshooting, print statement, omitting commas: Print Examples.
(line 31)
* troubleshooting, printing: Redirection. (line 118)
@@ -32581,7 +32924,7 @@ Index
* troubleshooting, regexp constants vs. string constants: Computed Regexps.
(line 38)
* troubleshooting, string concatenation: Concatenation. (line 26)
-* troubleshooting, substr() function: String Functions. (line 496)
+* troubleshooting, substr() function: String Functions. (line 497)
* troubleshooting, system() function: I/O Functions. (line 94)
* troubleshooting, typographical errors, global variables: Options.
(line 98)
@@ -32594,6 +32937,8 @@ Index
* type conversion: Conversion. (line 21)
* u debugger command (alias for until): Debugger Execution Control.
(line 83)
+* unassigned array elements: Reference to Elements.
+ (line 18)
* undefined functions: Pass By Value/Reference.
(line 71)
* underscore (_), C macro: Explaining gettext. (line 70)
@@ -32603,20 +32948,22 @@ Index
* undisplay debugger command: Viewing And Changing Data.
(line 80)
* undocumented features: Undocumented. (line 6)
-* Unicode: Glossary. (line 141)
+* Unicode <1>: Glossary. (line 133)
+* Unicode <2>: Ranges and Locales. (line 61)
+* Unicode: Ordinal Functions. (line 45)
* uninitialized variables, as array subscripts: Uninitialized Subscripts.
(line 6)
* uniq utility: Uniq Program. (line 6)
* uniq.awk program: Uniq Program. (line 65)
-* Unix: Glossary. (line 624)
+* Unix: Glossary. (line 616)
* Unix awk, backslashes in escape sequences: Escape Sequences.
(line 124)
* Unix awk, close() function and: Close Files And Pipes.
(line 130)
* Unix awk, password files, field separators and: Command Line Field Separator.
- (line 72)
+ (line 64)
* Unix, awk scripts and: Executable Scripts. (line 6)
-* UNIXROOT variable, on OS/2 systems: PC Using. (line 17)
+* UNIXROOT variable, on OS/2 systems: PC Using. (line 16)
* unsigned integers: General Arithmetic. (line 15)
* until debugger command: Debugger Execution Control.
(line 83)
@@ -32624,15 +32971,16 @@ Index
(line 84)
* up debugger command: Execution Stack. (line 33)
* user database, reading: Passwd Functions. (line 6)
-* user-defined, functions: User-defined. (line 6)
-* user-defined, functions, counts: Profiling. (line 129)
+* user-defined functions: User-defined. (line 6)
+* user-defined, functions, counts, in a profile: Profiling. (line 137)
* user-defined, variables: Variables. (line 6)
* user-modifiable variables: User-modified. (line 6)
* users, information about, printing: Id Program. (line 6)
* users, information about, retrieving: Passwd Functions. (line 16)
-* USR1 signal: Profiling. (line 181)
+* USR1 signal, for dynamic profiling: Profiling. (line 188)
* values, numeric: Basic Data Typing. (line 13)
* values, string: Basic Data Typing. (line 13)
+* variable assignments and input files: Other Arguments. (line 19)
* variable typing: Typing and Comparison.
(line 9)
* variables <1>: Basic Data Typing. (line 6)
@@ -32653,7 +33001,7 @@ Index
* variables, global, for library functions: Library Names. (line 11)
* variables, global, printing list of: Options. (line 93)
* variables, initializing: Using Variables. (line 20)
-* variables, local: Variable Scope. (line 6)
+* variables, local to a function: Variable Scope. (line 6)
* variables, names of: Arrays. (line 18)
* variables, private: Library Names. (line 11)
* variables, setting: Options. (line 32)
@@ -32664,6 +33012,10 @@ Index
* variables, uninitialized, as array subscripts: Uninitialized Subscripts.
(line 6)
* variables, user-defined: Variables. (line 6)
+* version of gawk: Auto-set. (line 213)
+* version of gawk extension API: Auto-set. (line 238)
+* version of GNU MP library: Auto-set. (line 224)
+* version of GNU MPFR library: Auto-set. (line 220)
* vertical bar (|): Regexp Operators. (line 69)
* vertical bar (|), | operator (I/O) <1>: Precedence. (line 65)
* vertical bar (|), | operator (I/O): Getline/Pipe. (line 9)
@@ -32687,12 +33039,13 @@ Index
* warnings, issuing: Options. (line 182)
* watch debugger command: Viewing And Changing Data.
(line 67)
+* watchpoint: Debugging Terms. (line 42)
* wc utility: Wc Program. (line 6)
* wc.awk program: Wc Program. (line 46)
* Weinberger, Peter <1>: Contributors. (line 11)
* Weinberger, Peter: History. (line 17)
-* while statement <1>: While Statement. (line 6)
-* while statement: Regexp Usage. (line 19)
+* while statement: While Statement. (line 6)
+* while statement, use of regexps in: Regexp Usage. (line 19)
* whitespace, as field separators: Default Field Splitting.
(line 6)
* whitespace, functions, calling: Calling Built-in. (line 10)
@@ -32713,16 +33066,16 @@ Index
* writea() extension function: Extension Sample Read write array.
(line 9)
* xgettext utility: String Extraction. (line 13)
+* xor: Bitwise Functions. (line 55)
* XOR bitwise operation: Bitwise Functions. (line 6)
-* xor() function (gawk): Bitwise Functions. (line 55)
-* Yawitz, Efraim: Contributors. (line 126)
+* Yawitz, Efraim: Contributors. (line 129)
* Zaretskii, Eli <1>: Bugs. (line 70)
* Zaretskii, Eli <2>: Contributors. (line 55)
* Zaretskii, Eli: Acknowledgments. (line 60)
* zero, negative vs. positive: Unexpected Results. (line 34)
* zerofile.awk program: Empty Files. (line 21)
* Zoulas, Christos: Contributors. (line 66)
-* {} (braces): Profiling. (line 134)
+* {} (braces): Profiling. (line 142)
* {} (braces), actions and: Action Overview. (line 19)
* {} (braces), statements, grouping: Statements. (line 10)
* | (vertical bar): Regexp Operators. (line 69)
@@ -32749,526 +33102,530 @@ Index

Tag Table:
-Node: Top1366
-Node: Foreword40856
-Node: Preface45201
-Ref: Preface-Footnote-148254
-Ref: Preface-Footnote-248350
-Node: History48582
-Node: Names50956
-Ref: Names-Footnote-152433
-Node: This Manual52505
-Ref: This Manual-Footnote-158279
-Node: Conventions58379
-Node: Manual History60535
-Ref: Manual History-Footnote-163983
-Ref: Manual History-Footnote-264024
-Node: How To Contribute64098
-Node: Acknowledgments65242
-Node: Getting Started69436
-Node: Running gawk71815
-Node: One-shot73001
-Node: Read Terminal74226
-Ref: Read Terminal-Footnote-175876
-Ref: Read Terminal-Footnote-276152
-Node: Long76323
-Node: Executable Scripts77699
-Ref: Executable Scripts-Footnote-179532
-Ref: Executable Scripts-Footnote-279634
-Node: Comments80181
-Node: Quoting82648
-Node: DOS Quoting87271
-Node: Sample Data Files87946
-Node: Very Simple90332
-Node: Two Rules94931
-Node: More Complex97078
-Ref: More Complex-Footnote-1100008
-Node: Statements/Lines100093
-Ref: Statements/Lines-Footnote-1104555
-Node: Other Features104820
-Node: When105748
-Node: Invoking Gawk107895
-Node: Command Line109358
-Node: Options110141
-Ref: Options-Footnote-1125536
-Node: Other Arguments125561
-Node: Naming Standard Input128219
-Node: Environment Variables129313
-Node: AWKPATH Variable129871
-Ref: AWKPATH Variable-Footnote-1132629
-Node: AWKLIBPATH Variable132889
-Node: Other Environment Variables133607
-Node: Exit Status136570
-Node: Include Files137245
-Node: Loading Shared Libraries140814
-Node: Obsolete142178
-Node: Undocumented142875
-Node: Regexp143117
-Node: Regexp Usage144506
-Node: Escape Sequences146532
-Node: Regexp Operators152201
-Ref: Regexp Operators-Footnote-1159581
-Ref: Regexp Operators-Footnote-2159728
-Node: Bracket Expressions159826
-Ref: table-char-classes161716
-Node: GNU Regexp Operators164239
-Node: Case-sensitivity167962
-Ref: Case-sensitivity-Footnote-1170930
-Ref: Case-sensitivity-Footnote-2171165
-Node: Leftmost Longest171273
-Node: Computed Regexps172474
-Node: Reading Files175811
-Node: Records177813
-Ref: Records-Footnote-1186901
-Node: Fields186938
-Ref: Fields-Footnote-1189971
-Node: Nonconstant Fields190057
-Node: Changing Fields192259
-Node: Field Separators198218
-Node: Default Field Splitting200920
-Node: Regexp Field Splitting202037
-Node: Single Character Fields205379
-Node: Command Line Field Separator206438
-Node: Full Line Fields209872
-Ref: Full Line Fields-Footnote-1210380
-Node: Field Splitting Summary210426
-Ref: Field Splitting Summary-Footnote-1213525
-Node: Constant Size213626
-Node: Splitting By Content218233
-Ref: Splitting By Content-Footnote-1221982
-Node: Multiple Line222022
-Ref: Multiple Line-Footnote-1227869
-Node: Getline228048
-Node: Plain Getline230264
-Node: Getline/Variable232359
-Node: Getline/File233506
-Node: Getline/Variable/File234847
-Ref: Getline/Variable/File-Footnote-1236446
-Node: Getline/Pipe236533
-Node: Getline/Variable/Pipe239232
-Node: Getline/Coprocess240339
-Node: Getline/Variable/Coprocess241591
-Node: Getline Notes242328
-Node: Getline Summary245115
-Ref: table-getline-variants245523
-Node: Read Timeout246435
-Ref: Read Timeout-Footnote-1250176
-Node: Command line directories250233
-Node: Printing250863
-Node: Print252494
-Node: Print Examples253831
-Node: Output Separators256615
-Node: OFMT258375
-Node: Printf259733
-Node: Basic Printf260639
-Node: Control Letters262178
-Node: Format Modifiers265990
-Node: Printf Examples271999
-Node: Redirection274714
-Node: Special Files281679
-Node: Special FD282212
-Ref: Special FD-Footnote-1285837
-Node: Special Network285911
-Node: Special Caveats286761
-Node: Close Files And Pipes287557
-Ref: Close Files And Pipes-Footnote-1294540
-Ref: Close Files And Pipes-Footnote-2294688
-Node: Expressions294838
-Node: Values295970
-Node: Constants296646
-Node: Scalar Constants297326
-Ref: Scalar Constants-Footnote-1298185
-Node: Nondecimal-numbers298367
-Node: Regexp Constants301367
-Node: Using Constant Regexps301842
-Node: Variables304897
-Node: Using Variables305552
-Node: Assignment Options307276
-Node: Conversion309148
-Ref: table-locale-affects314648
-Ref: Conversion-Footnote-1315272
-Node: All Operators315381
-Node: Arithmetic Ops316011
-Node: Concatenation318516
-Ref: Concatenation-Footnote-1321308
-Node: Assignment Ops321428
-Ref: table-assign-ops326416
-Node: Increment Ops327747
-Node: Truth Values and Conditions331181
-Node: Truth Values332264
-Node: Typing and Comparison333313
-Node: Variable Typing334106
-Ref: Variable Typing-Footnote-1338003
-Node: Comparison Operators338125
-Ref: table-relational-ops338535
-Node: POSIX String Comparison342083
-Ref: POSIX String Comparison-Footnote-1343039
-Node: Boolean Ops343177
-Ref: Boolean Ops-Footnote-1347255
-Node: Conditional Exp347346
-Node: Function Calls349078
-Node: Precedence352672
-Node: Locales356341
-Node: Patterns and Actions357430
-Node: Pattern Overview358484
-Node: Regexp Patterns360153
-Node: Expression Patterns360696
-Node: Ranges364381
-Node: BEGIN/END367347
-Node: Using BEGIN/END368109
-Ref: Using BEGIN/END-Footnote-1370840
-Node: I/O And BEGIN/END370946
-Node: BEGINFILE/ENDFILE373228
-Node: Empty376142
-Node: Using Shell Variables376458
-Node: Action Overview378743
-Node: Statements381100
-Node: If Statement382954
-Node: While Statement384453
-Node: Do Statement386497
-Node: For Statement387653
-Node: Switch Statement390805
-Node: Break Statement392902
-Node: Continue Statement394892
-Node: Next Statement396685
-Node: Nextfile Statement399075
-Node: Exit Statement401718
-Node: Built-in Variables404134
-Node: User-modified405229
-Ref: User-modified-Footnote-1413587
-Node: Auto-set413649
-Ref: Auto-set-Footnote-1427119
-Ref: Auto-set-Footnote-2427324
-Node: ARGC and ARGV427380
-Node: Arrays431231
-Node: Array Basics432736
-Node: Array Intro433562
-Node: Reference to Elements437879
-Node: Assigning Elements440149
-Node: Array Example440640
-Node: Scanning an Array442372
-Node: Controlling Scanning444686
-Ref: Controlling Scanning-Footnote-1449773
-Node: Delete450089
-Ref: Delete-Footnote-1452854
-Node: Numeric Array Subscripts452911
-Node: Uninitialized Subscripts455094
-Node: Multidimensional456721
-Node: Multiscanning459814
-Node: Arrays of Arrays461403
-Node: Functions466043
-Node: Built-in466862
-Node: Calling Built-in467940
-Node: Numeric Functions469928
-Ref: Numeric Functions-Footnote-1473760
-Ref: Numeric Functions-Footnote-2474117
-Ref: Numeric Functions-Footnote-3474165
-Node: String Functions474434
-Ref: String Functions-Footnote-1497354
-Ref: String Functions-Footnote-2497483
-Ref: String Functions-Footnote-3497731
-Node: Gory Details497818
-Ref: table-sub-escapes499497
-Ref: table-sub-posix-92500851
-Ref: table-sub-proposed502202
-Ref: table-posix-sub503556
-Ref: table-gensub-escapes505101
-Ref: Gory Details-Footnote-1506277
-Ref: Gory Details-Footnote-2506328
-Node: I/O Functions506479
-Ref: I/O Functions-Footnote-1513464
-Node: Time Functions513611
-Ref: Time Functions-Footnote-1524544
-Ref: Time Functions-Footnote-2524612
-Ref: Time Functions-Footnote-3524770
-Ref: Time Functions-Footnote-4524881
-Ref: Time Functions-Footnote-5524993
-Ref: Time Functions-Footnote-6525220
-Node: Bitwise Functions525486
-Ref: table-bitwise-ops526048
-Ref: Bitwise Functions-Footnote-1530269
-Node: Type Functions530453
-Node: I18N Functions531604
-Node: User-defined533231
-Node: Definition Syntax534035
-Ref: Definition Syntax-Footnote-1538945
-Node: Function Example539014
-Node: Function Caveats541608
-Node: Calling A Function542029
-Node: Variable Scope543144
-Node: Pass By Value/Reference546107
-Node: Return Statement549615
-Node: Dynamic Typing552596
-Node: Indirect Calls553527
-Node: Library Functions563212
-Ref: Library Functions-Footnote-1566725
-Ref: Library Functions-Footnote-2566868
-Node: Library Names567039
-Ref: Library Names-Footnote-1570510
-Ref: Library Names-Footnote-2570730
-Node: General Functions570816
-Node: Strtonum Function571844
-Node: Assert Function574774
-Node: Round Function578100
-Node: Cliff Random Function579643
-Node: Ordinal Functions580659
-Ref: Ordinal Functions-Footnote-1583731
-Ref: Ordinal Functions-Footnote-2583983
-Node: Join Function584192
-Ref: Join Function-Footnote-1585963
-Node: Getlocaltime Function586163
-Node: Readfile Function589904
-Node: Data File Management591743
-Node: Filetrans Function592375
-Node: Rewind Function596444
-Node: File Checking597831
-Node: Empty Files598925
-Node: Ignoring Assigns601155
-Node: Getopt Function602708
-Ref: Getopt Function-Footnote-1614011
-Node: Passwd Functions614214
-Ref: Passwd Functions-Footnote-1623189
-Node: Group Functions623277
-Node: Walking Arrays631361
-Node: Sample Programs633498
-Node: Running Examples634172
-Node: Clones634900
-Node: Cut Program636124
-Node: Egrep Program645969
-Ref: Egrep Program-Footnote-1653742
-Node: Id Program653852
-Node: Split Program657468
-Ref: Split Program-Footnote-1660987
-Node: Tee Program661115
-Node: Uniq Program663918
-Node: Wc Program671347
-Ref: Wc Program-Footnote-1675613
-Ref: Wc Program-Footnote-2675813
-Node: Miscellaneous Programs675905
-Node: Dupword Program677093
-Node: Alarm Program679124
-Node: Translate Program683931
-Ref: Translate Program-Footnote-1688318
-Ref: Translate Program-Footnote-2688566
-Node: Labels Program688700
-Ref: Labels Program-Footnote-1692071
-Node: Word Sorting692155
-Node: History Sorting696039
-Node: Extract Program697878
-Ref: Extract Program-Footnote-1705381
-Node: Simple Sed705509
-Node: Igawk Program708571
-Ref: Igawk Program-Footnote-1723728
-Ref: Igawk Program-Footnote-2723929
-Node: Anagram Program724067
-Node: Signature Program727135
-Node: Advanced Features728235
-Node: Nondecimal Data730121
-Node: Array Sorting731704
-Node: Controlling Array Traversal732401
-Node: Array Sorting Functions740685
-Ref: Array Sorting Functions-Footnote-1744554
-Node: Two-way I/O744748
-Ref: Two-way I/O-Footnote-1750180
-Node: TCP/IP Networking750250
-Node: Profiling753094
-Node: Internationalization760591
-Node: I18N and L10N762016
-Node: Explaining gettext762702
-Ref: Explaining gettext-Footnote-1767770
-Ref: Explaining gettext-Footnote-2767954
-Node: Programmer i18n768119
-Node: Translator i18n772321
-Node: String Extraction773114
-Ref: String Extraction-Footnote-1774075
-Node: Printf Ordering774161
-Ref: Printf Ordering-Footnote-1776945
-Node: I18N Portability777009
-Ref: I18N Portability-Footnote-1779458
-Node: I18N Example779521
-Ref: I18N Example-Footnote-1782159
-Node: Gawk I18N782231
-Node: Debugger782852
-Node: Debugging783823
-Node: Debugging Concepts784256
-Node: Debugging Terms786112
-Node: Awk Debugging788709
-Node: Sample Debugging Session789601
-Node: Debugger Invocation790121
-Node: Finding The Bug791453
-Node: List of Debugger Commands797941
-Node: Breakpoint Control799275
-Node: Debugger Execution Control802939
-Node: Viewing And Changing Data806299
-Node: Execution Stack809655
-Node: Debugger Info811122
-Node: Miscellaneous Debugger Commands815104
-Node: Readline Support820280
-Node: Limitations821111
-Node: Arbitrary Precision Arithmetic823363
-Ref: Arbitrary Precision Arithmetic-Footnote-1825012
-Node: General Arithmetic825160
-Node: Floating Point Issues826880
-Node: String Conversion Precision827761
-Ref: String Conversion Precision-Footnote-1829466
-Node: Unexpected Results829575
-Node: POSIX Floating Point Problems831728
-Ref: POSIX Floating Point Problems-Footnote-1835553
-Node: Integer Programming835591
-Node: Floating-point Programming837330
-Ref: Floating-point Programming-Footnote-1843661
-Ref: Floating-point Programming-Footnote-2843931
-Node: Floating-point Representation844195
-Node: Floating-point Context845360
-Ref: table-ieee-formats846199
-Node: Rounding Mode847583
-Ref: table-rounding-modes848062
-Ref: Rounding Mode-Footnote-1851077
-Node: Gawk and MPFR851256
-Node: Arbitrary Precision Floats852511
-Ref: Arbitrary Precision Floats-Footnote-1854954
-Node: Setting Precision855270
-Ref: table-predefined-precision-strings855956
-Node: Setting Rounding Mode858101
-Ref: table-gawk-rounding-modes858505
-Node: Floating-point Constants859692
-Node: Changing Precision861121
-Ref: Changing Precision-Footnote-1862518
-Node: Exact Arithmetic862692
-Node: Arbitrary Precision Integers865830
-Ref: Arbitrary Precision Integers-Footnote-1868848
-Node: Dynamic Extensions868995
-Node: Extension Intro870453
-Node: Plugin License871718
-Node: Extension Mechanism Outline872403
-Ref: load-extension872820
-Ref: load-new-function874298
-Ref: call-new-function875293
-Node: Extension API Description877308
-Node: Extension API Functions Introduction878521
-Node: General Data Types883387
-Ref: General Data Types-Footnote-1888989
-Node: Requesting Values889288
-Ref: table-value-types-returned890019
-Node: Constructor Functions890973
-Node: Registration Functions893993
-Node: Extension Functions894678
-Node: Exit Callback Functions896903
-Node: Extension Version String898152
-Node: Input Parsers898802
-Node: Output Wrappers908559
-Node: Two-way processors913069
-Node: Printing Messages915277
-Ref: Printing Messages-Footnote-1916354
-Node: Updating `ERRNO'916506
-Node: Accessing Parameters917245
-Node: Symbol Table Access918475
-Node: Symbol table by name918987
-Node: Symbol table by cookie920734
-Ref: Symbol table by cookie-Footnote-1924864
-Node: Cached values924927
-Ref: Cached values-Footnote-1928376
-Node: Array Manipulation928467
-Ref: Array Manipulation-Footnote-1929565
-Node: Array Data Types929604
-Ref: Array Data Types-Footnote-1932307
-Node: Array Functions932399
-Node: Flattening Arrays936165
-Node: Creating Arrays943017
-Node: Extension API Variables947742
-Node: Extension Versioning948378
-Node: Extension API Informational Variables950279
-Node: Extension API Boilerplate951365
-Node: Finding Extensions955169
-Node: Extension Example955729
-Node: Internal File Description956459
-Node: Internal File Ops960550
-Ref: Internal File Ops-Footnote-1972058
-Node: Using Internal File Ops972198
-Ref: Using Internal File Ops-Footnote-1974551
-Node: Extension Samples974817
-Node: Extension Sample File Functions976341
-Node: Extension Sample Fnmatch984826
-Node: Extension Sample Fork986552
-Node: Extension Sample Inplace987770
-Node: Extension Sample Ord989548
-Node: Extension Sample Readdir990384
-Node: Extension Sample Revout991916
-Node: Extension Sample Rev2way992509
-Node: Extension Sample Read write array993199
-Node: Extension Sample Readfile995082
-Node: Extension Sample API Tests995900
-Node: Extension Sample Time996425
-Node: gawkextlib997789
-Node: Language History1000570
-Node: V7/SVR3.11002163
-Node: SVR41004483
-Node: POSIX1005925
-Node: BTL1007311
-Node: POSIX/GNU1008045
-Node: Feature History1013644
-Node: Common Extensions1026608
-Node: Ranges and Locales1027920
-Ref: Ranges and Locales-Footnote-11032538
-Ref: Ranges and Locales-Footnote-21032565
-Ref: Ranges and Locales-Footnote-31032825
-Node: Contributors1033046
-Node: Installation1038191
-Node: Gawk Distribution1039085
-Node: Getting1039569
-Node: Extracting1040395
-Node: Distribution contents1042087
-Node: Unix Installation1047792
-Node: Quick Installation1048409
-Node: Additional Configuration Options1050853
-Node: Configuration Philosophy1052589
-Node: Non-Unix Installation1054943
-Node: PC Installation1055401
-Node: PC Binary Installation1056700
-Node: PC Compiling1058548
-Node: PC Testing1061492
-Node: PC Using1062668
-Node: Cygwin1066853
-Node: MSYS1067853
-Node: VMS Installation1068367
-Node: VMS Compilation1069131
-Ref: VMS Compilation-Footnote-11070746
-Node: VMS Dynamic Extensions1070804
-Node: VMS Installation Details1072177
-Node: VMS Running1074424
-Node: VMS GNV1077258
-Node: VMS Old Gawk1077981
-Node: Bugs1078451
-Node: Other Versions1082369
-Node: Notes1088453
-Node: Compatibility Mode1089253
-Node: Additions1090036
-Node: Accessing The Source1090963
-Node: Adding Code1092403
-Node: New Ports1098448
-Node: Derived Files1102583
-Ref: Derived Files-Footnote-11107904
-Ref: Derived Files-Footnote-21107938
-Ref: Derived Files-Footnote-31108538
-Node: Future Extensions1108636
-Node: Implementation Limitations1109219
-Node: Extension Design1110471
-Node: Old Extension Problems1111625
-Ref: Old Extension Problems-Footnote-11113133
-Node: Extension New Mechanism Goals1113190
-Ref: Extension New Mechanism Goals-Footnote-11116555
-Node: Extension Other Design Decisions1116741
-Node: Extension Future Growth1118847
-Node: Old Extension Mechanism1119683
-Node: Basic Concepts1121423
-Node: Basic High Level1122104
-Ref: figure-general-flow1122375
-Ref: figure-process-flow1122974
-Ref: Basic High Level-Footnote-11126203
-Node: Basic Data Typing1126388
-Node: Glossary1129743
-Node: Copying1155205
-Node: GNU Free Documentation License1192762
-Node: Index1217899
+Node: Top1292
+Node: Foreword40821
+Node: Preface45166
+Ref: Preface-Footnote-148219
+Ref: Preface-Footnote-248315
+Node: History48547
+Node: Names50921
+Ref: Names-Footnote-152398
+Node: This Manual52470
+Ref: This Manual-Footnote-158244
+Node: Conventions58344
+Node: Manual History60500
+Ref: Manual History-Footnote-163948
+Ref: Manual History-Footnote-263989
+Node: How To Contribute64063
+Node: Acknowledgments65207
+Node: Getting Started69401
+Node: Running gawk71780
+Node: One-shot72966
+Node: Read Terminal74191
+Ref: Read Terminal-Footnote-175841
+Ref: Read Terminal-Footnote-276117
+Node: Long76288
+Node: Executable Scripts77664
+Ref: Executable Scripts-Footnote-179497
+Ref: Executable Scripts-Footnote-279599
+Node: Comments80146
+Node: Quoting82613
+Node: DOS Quoting87236
+Node: Sample Data Files87911
+Node: Very Simple90426
+Node: Two Rules95077
+Node: More Complex96975
+Ref: More Complex-Footnote-199905
+Node: Statements/Lines99990
+Ref: Statements/Lines-Footnote-1104453
+Node: Other Features104718
+Node: When105646
+Node: Invoking Gawk107793
+Node: Command Line109256
+Node: Options110039
+Ref: Options-Footnote-1125417
+Node: Other Arguments125442
+Node: Naming Standard Input128100
+Node: Environment Variables129194
+Node: AWKPATH Variable129752
+Ref: AWKPATH Variable-Footnote-1132533
+Ref: AWKPATH Variable-Footnote-2132578
+Node: AWKLIBPATH Variable132838
+Node: Other Environment Variables133556
+Node: Exit Status136519
+Node: Include Files137194
+Node: Loading Shared Libraries140763
+Node: Obsolete142127
+Node: Undocumented142824
+Node: Regexp143066
+Node: Regexp Usage144455
+Node: Escape Sequences146480
+Node: Regexp Operators152149
+Ref: Regexp Operators-Footnote-1159529
+Ref: Regexp Operators-Footnote-2159676
+Node: Bracket Expressions159774
+Ref: table-char-classes161664
+Node: GNU Regexp Operators164187
+Node: Case-sensitivity167910
+Ref: Case-sensitivity-Footnote-1170878
+Ref: Case-sensitivity-Footnote-2171113
+Node: Leftmost Longest171221
+Node: Computed Regexps172422
+Node: Reading Files175759
+Node: Records177761
+Ref: Records-Footnote-1187284
+Node: Fields187321
+Ref: Fields-Footnote-1190277
+Node: Nonconstant Fields190363
+Node: Changing Fields192569
+Node: Field Separators198528
+Node: Default Field Splitting201230
+Node: Regexp Field Splitting202347
+Node: Single Character Fields205689
+Node: Command Line Field Separator206748
+Node: Full Line Fields210090
+Ref: Full Line Fields-Footnote-1210598
+Node: Field Splitting Summary210644
+Ref: Field Splitting Summary-Footnote-1213743
+Node: Constant Size213844
+Node: Splitting By Content218451
+Ref: Splitting By Content-Footnote-1222200
+Node: Multiple Line222240
+Ref: Multiple Line-Footnote-1228087
+Node: Getline228266
+Node: Plain Getline230482
+Node: Getline/Variable232577
+Node: Getline/File233724
+Node: Getline/Variable/File235065
+Ref: Getline/Variable/File-Footnote-1236664
+Node: Getline/Pipe236751
+Node: Getline/Variable/Pipe239450
+Node: Getline/Coprocess240557
+Node: Getline/Variable/Coprocess241809
+Node: Getline Notes242546
+Node: Getline Summary245333
+Ref: table-getline-variants245741
+Node: Read Timeout246653
+Ref: Read Timeout-Footnote-1250394
+Node: Command line directories250451
+Node: Printing251081
+Node: Print252712
+Node: Print Examples254049
+Node: Output Separators256833
+Node: OFMT258849
+Node: Printf260207
+Node: Basic Printf261113
+Node: Control Letters262652
+Node: Format Modifiers266464
+Node: Printf Examples272473
+Node: Redirection275185
+Node: Special Files282159
+Node: Special FD282692
+Ref: Special FD-Footnote-1286317
+Node: Special Network286391
+Node: Special Caveats287241
+Node: Close Files And Pipes288037
+Ref: Close Files And Pipes-Footnote-1295020
+Ref: Close Files And Pipes-Footnote-2295168
+Node: Expressions295318
+Node: Values296450
+Node: Constants297126
+Node: Scalar Constants297806
+Ref: Scalar Constants-Footnote-1298665
+Node: Nondecimal-numbers298847
+Node: Regexp Constants301847
+Node: Using Constant Regexps302322
+Node: Variables305377
+Node: Using Variables306032
+Node: Assignment Options307756
+Node: Conversion309631
+Ref: table-locale-affects315131
+Ref: Conversion-Footnote-1315755
+Node: All Operators315864
+Node: Arithmetic Ops316494
+Node: Concatenation318999
+Ref: Concatenation-Footnote-1321787
+Node: Assignment Ops321907
+Ref: table-assign-ops326895
+Node: Increment Ops328226
+Node: Truth Values and Conditions331660
+Node: Truth Values332743
+Node: Typing and Comparison333792
+Node: Variable Typing334585
+Ref: Variable Typing-Footnote-1338482
+Node: Comparison Operators338604
+Ref: table-relational-ops339014
+Node: POSIX String Comparison342562
+Ref: POSIX String Comparison-Footnote-1343518
+Node: Boolean Ops343656
+Ref: Boolean Ops-Footnote-1347726
+Node: Conditional Exp347817
+Node: Function Calls349549
+Node: Precedence353143
+Node: Locales356812
+Node: Patterns and Actions357901
+Node: Pattern Overview358955
+Node: Regexp Patterns360624
+Node: Expression Patterns361167
+Node: Ranges364948
+Node: BEGIN/END368052
+Node: Using BEGIN/END368814
+Ref: Using BEGIN/END-Footnote-1371550
+Node: I/O And BEGIN/END371656
+Node: BEGINFILE/ENDFILE373938
+Node: Empty376852
+Node: Using Shell Variables377169
+Node: Action Overview379454
+Node: Statements381811
+Node: If Statement383665
+Node: While Statement385164
+Node: Do Statement387208
+Node: For Statement388364
+Node: Switch Statement391516
+Node: Break Statement393670
+Node: Continue Statement395660
+Node: Next Statement397453
+Node: Nextfile Statement399843
+Node: Exit Statement402498
+Node: Built-in Variables404914
+Node: User-modified406009
+Ref: User-modified-Footnote-1414367
+Node: Auto-set414429
+Ref: Auto-set-Footnote-1427886
+Ref: Auto-set-Footnote-2428091
+Node: ARGC and ARGV428147
+Node: Arrays432001
+Node: Array Basics433506
+Node: Array Intro434332
+Node: Reference to Elements438649
+Node: Assigning Elements440919
+Node: Array Example441410
+Node: Scanning an Array443142
+Node: Controlling Scanning445456
+Ref: Controlling Scanning-Footnote-1450543
+Node: Delete450859
+Ref: Delete-Footnote-1453624
+Node: Numeric Array Subscripts453681
+Node: Uninitialized Subscripts455864
+Node: Multidimensional457491
+Node: Multiscanning460584
+Node: Arrays of Arrays462173
+Node: Functions466813
+Node: Built-in467632
+Node: Calling Built-in468710
+Node: Numeric Functions470698
+Ref: Numeric Functions-Footnote-1474530
+Ref: Numeric Functions-Footnote-2474887
+Ref: Numeric Functions-Footnote-3474935
+Node: String Functions475204
+Ref: String Functions-Footnote-1498162
+Ref: String Functions-Footnote-2498291
+Ref: String Functions-Footnote-3498539
+Node: Gory Details498626
+Ref: table-sub-escapes500305
+Ref: table-sub-posix-92501659
+Ref: table-sub-proposed503010
+Ref: table-posix-sub504364
+Ref: table-gensub-escapes505909
+Ref: Gory Details-Footnote-1507085
+Ref: Gory Details-Footnote-2507136
+Node: I/O Functions507287
+Ref: I/O Functions-Footnote-1514277
+Node: Time Functions514424
+Ref: Time Functions-Footnote-1525407
+Ref: Time Functions-Footnote-2525475
+Ref: Time Functions-Footnote-3525633
+Ref: Time Functions-Footnote-4525744
+Ref: Time Functions-Footnote-5525856
+Ref: Time Functions-Footnote-6526083
+Node: Bitwise Functions526349
+Ref: table-bitwise-ops526911
+Ref: Bitwise Functions-Footnote-1531132
+Node: Type Functions531316
+Node: I18N Functions532467
+Node: User-defined534094
+Node: Definition Syntax534898
+Ref: Definition Syntax-Footnote-1539812
+Node: Function Example539881
+Ref: Function Example-Footnote-1542530
+Node: Function Caveats542552
+Node: Calling A Function543070
+Node: Variable Scope544025
+Node: Pass By Value/Reference546988
+Node: Return Statement550496
+Node: Dynamic Typing553477
+Node: Indirect Calls554408
+Node: Library Functions564095
+Ref: Library Functions-Footnote-1567608
+Ref: Library Functions-Footnote-2567751
+Node: Library Names567922
+Ref: Library Names-Footnote-1571395
+Ref: Library Names-Footnote-2571615
+Node: General Functions571701
+Node: Strtonum Function572729
+Node: Assert Function575659
+Node: Round Function578985
+Node: Cliff Random Function580526
+Node: Ordinal Functions581542
+Ref: Ordinal Functions-Footnote-1584619
+Ref: Ordinal Functions-Footnote-2584871
+Node: Join Function585082
+Ref: Join Function-Footnote-1586853
+Node: Getlocaltime Function587053
+Node: Readfile Function590794
+Node: Data File Management592633
+Node: Filetrans Function593265
+Node: Rewind Function597334
+Node: File Checking598721
+Node: Empty Files599815
+Node: Ignoring Assigns602045
+Node: Getopt Function603599
+Ref: Getopt Function-Footnote-1614902
+Node: Passwd Functions615105
+Ref: Passwd Functions-Footnote-1624083
+Node: Group Functions624171
+Node: Walking Arrays632255
+Node: Sample Programs634391
+Node: Running Examples635065
+Node: Clones635793
+Node: Cut Program637017
+Node: Egrep Program646868
+Ref: Egrep Program-Footnote-1654641
+Node: Id Program654751
+Node: Split Program658400
+Ref: Split Program-Footnote-1661919
+Node: Tee Program662047
+Node: Uniq Program664850
+Node: Wc Program672279
+Ref: Wc Program-Footnote-1676545
+Ref: Wc Program-Footnote-2676745
+Node: Miscellaneous Programs676837
+Node: Dupword Program678025
+Node: Alarm Program680056
+Node: Translate Program684863
+Ref: Translate Program-Footnote-1689250
+Ref: Translate Program-Footnote-2689498
+Node: Labels Program689632
+Ref: Labels Program-Footnote-1693003
+Node: Word Sorting693087
+Node: History Sorting696971
+Node: Extract Program698810
+Ref: Extract Program-Footnote-1706313
+Node: Simple Sed706441
+Node: Igawk Program709503
+Ref: Igawk Program-Footnote-1724660
+Ref: Igawk Program-Footnote-2724861
+Node: Anagram Program724999
+Node: Signature Program728067
+Node: Advanced Features729167
+Node: Nondecimal Data731053
+Node: Array Sorting732636
+Node: Controlling Array Traversal733333
+Node: Array Sorting Functions741617
+Ref: Array Sorting Functions-Footnote-1745486
+Node: Two-way I/O745680
+Ref: Two-way I/O-Footnote-1751112
+Node: TCP/IP Networking751194
+Node: Profiling754038
+Node: Internationalization761541
+Node: I18N and L10N762966
+Node: Explaining gettext763652
+Ref: Explaining gettext-Footnote-1768720
+Ref: Explaining gettext-Footnote-2768904
+Node: Programmer i18n769069
+Node: Translator i18n773271
+Node: String Extraction774065
+Ref: String Extraction-Footnote-1775026
+Node: Printf Ordering775112
+Ref: Printf Ordering-Footnote-1777894
+Node: I18N Portability777958
+Ref: I18N Portability-Footnote-1780407
+Node: I18N Example780470
+Ref: I18N Example-Footnote-1783108
+Node: Gawk I18N783180
+Node: Debugger783801
+Node: Debugging784772
+Node: Debugging Concepts785205
+Node: Debugging Terms787061
+Node: Awk Debugging789658
+Node: Sample Debugging Session790550
+Node: Debugger Invocation791070
+Node: Finding The Bug792403
+Node: List of Debugger Commands798890
+Node: Breakpoint Control800224
+Node: Debugger Execution Control803888
+Node: Viewing And Changing Data807248
+Node: Execution Stack810604
+Node: Debugger Info812071
+Node: Miscellaneous Debugger Commands816053
+Node: Readline Support821229
+Node: Limitations822060
+Node: Arbitrary Precision Arithmetic824312
+Ref: Arbitrary Precision Arithmetic-Footnote-1825961
+Node: General Arithmetic826109
+Node: Floating Point Issues827829
+Node: String Conversion Precision828710
+Ref: String Conversion Precision-Footnote-1830415
+Node: Unexpected Results830524
+Node: POSIX Floating Point Problems832677
+Ref: POSIX Floating Point Problems-Footnote-1836502
+Node: Integer Programming836540
+Node: Floating-point Programming838279
+Ref: Floating-point Programming-Footnote-1844610
+Ref: Floating-point Programming-Footnote-2844880
+Node: Floating-point Representation845144
+Node: Floating-point Context846309
+Ref: table-ieee-formats847148
+Node: Rounding Mode848532
+Ref: table-rounding-modes849011
+Ref: Rounding Mode-Footnote-1852026
+Node: Gawk and MPFR852205
+Node: Arbitrary Precision Floats853616
+Ref: Arbitrary Precision Floats-Footnote-1856059
+Node: Setting Precision856375
+Ref: table-predefined-precision-strings857061
+Node: Setting Rounding Mode859206
+Ref: table-gawk-rounding-modes859610
+Node: Floating-point Constants860797
+Node: Changing Precision862226
+Ref: Changing Precision-Footnote-1863623
+Node: Exact Arithmetic863797
+Node: Arbitrary Precision Integers866935
+Ref: Arbitrary Precision Integers-Footnote-1869950
+Node: Dynamic Extensions870097
+Node: Extension Intro871555
+Node: Plugin License872820
+Node: Extension Mechanism Outline873505
+Ref: load-extension873922
+Ref: load-new-function875400
+Ref: call-new-function876395
+Node: Extension API Description878410
+Node: Extension API Functions Introduction879697
+Node: General Data Types884624
+Ref: General Data Types-Footnote-1890319
+Node: Requesting Values890618
+Ref: table-value-types-returned891355
+Node: Memory Allocation Functions892309
+Ref: Memory Allocation Functions-Footnote-1895055
+Node: Constructor Functions895151
+Node: Registration Functions896909
+Node: Extension Functions897594
+Node: Exit Callback Functions899896
+Node: Extension Version String901145
+Node: Input Parsers901795
+Node: Output Wrappers911552
+Node: Two-way processors916062
+Node: Printing Messages918270
+Ref: Printing Messages-Footnote-1919347
+Node: Updating `ERRNO'919499
+Node: Accessing Parameters920238
+Node: Symbol Table Access921468
+Node: Symbol table by name921982
+Node: Symbol table by cookie923958
+Ref: Symbol table by cookie-Footnote-1928090
+Node: Cached values928153
+Ref: Cached values-Footnote-1931643
+Node: Array Manipulation931734
+Ref: Array Manipulation-Footnote-1932832
+Node: Array Data Types932871
+Ref: Array Data Types-Footnote-1935574
+Node: Array Functions935666
+Node: Flattening Arrays939502
+Node: Creating Arrays946354
+Node: Extension API Variables951079
+Node: Extension Versioning951715
+Node: Extension API Informational Variables953616
+Node: Extension API Boilerplate954702
+Node: Finding Extensions958506
+Node: Extension Example959066
+Node: Internal File Description959796
+Node: Internal File Ops963887
+Ref: Internal File Ops-Footnote-1975396
+Node: Using Internal File Ops975536
+Ref: Using Internal File Ops-Footnote-1977889
+Node: Extension Samples978155
+Node: Extension Sample File Functions979679
+Node: Extension Sample Fnmatch988164
+Node: Extension Sample Fork989933
+Node: Extension Sample Inplace991146
+Node: Extension Sample Ord992924
+Node: Extension Sample Readdir993760
+Node: Extension Sample Revout995292
+Node: Extension Sample Rev2way995885
+Node: Extension Sample Read write array996575
+Node: Extension Sample Readfile998458
+Node: Extension Sample API Tests999558
+Node: Extension Sample Time1000083
+Node: gawkextlib1001447
+Node: Language History1004228
+Node: V7/SVR3.11005821
+Node: SVR41008141
+Node: POSIX1009583
+Node: BTL1010969
+Node: POSIX/GNU1011703
+Node: Feature History1017302
+Node: Common Extensions1030278
+Node: Ranges and Locales1031590
+Ref: Ranges and Locales-Footnote-11036207
+Ref: Ranges and Locales-Footnote-21036234
+Ref: Ranges and Locales-Footnote-31036468
+Node: Contributors1036689
+Node: Installation1042070
+Node: Gawk Distribution1042964
+Node: Getting1043448
+Node: Extracting1044274
+Node: Distribution contents1045966
+Node: Unix Installation1051671
+Node: Quick Installation1052288
+Node: Additional Configuration Options1054734
+Node: Configuration Philosophy1056470
+Node: Non-Unix Installation1058824
+Node: PC Installation1059282
+Node: PC Binary Installation1060581
+Node: PC Compiling1062429
+Node: PC Testing1065373
+Node: PC Using1066549
+Node: Cygwin1070717
+Node: MSYS1071526
+Node: VMS Installation1072040
+Node: VMS Compilation1072804
+Ref: VMS Compilation-Footnote-11074056
+Node: VMS Dynamic Extensions1074114
+Node: VMS Installation Details1075487
+Node: VMS Running1077738
+Node: VMS GNV1080572
+Node: VMS Old Gawk1081295
+Node: Bugs1081765
+Node: Other Versions1085683
+Node: Notes1091767
+Node: Compatibility Mode1092567
+Node: Additions1093350
+Node: Accessing The Source1094277
+Node: Adding Code1095717
+Node: New Ports1101762
+Node: Derived Files1105897
+Ref: Derived Files-Footnote-11111218
+Ref: Derived Files-Footnote-21111252
+Ref: Derived Files-Footnote-31111852
+Node: Future Extensions1111950
+Node: Implementation Limitations1112533
+Node: Extension Design1113785
+Node: Old Extension Problems1114939
+Ref: Old Extension Problems-Footnote-11116447
+Node: Extension New Mechanism Goals1116504
+Ref: Extension New Mechanism Goals-Footnote-11119869
+Node: Extension Other Design Decisions1120055
+Node: Extension Future Growth1122161
+Node: Old Extension Mechanism1122997
+Node: Basic Concepts1124737
+Node: Basic High Level1125418
+Ref: figure-general-flow1125690
+Ref: figure-process-flow1126289
+Ref: Basic High Level-Footnote-11129518
+Node: Basic Data Typing1129703
+Node: Glossary1133058
+Node: Copying1158289
+Node: GNU Free Documentation License1195845
+Node: Index1220981

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 0d780286..539ea53d 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -40,9 +40,9 @@
@c applies to and all the info about who's publishing this edition
@c These apply across the board.
-@set UPDATE-MONTH February, 2014
+@set UPDATE-MONTH April, 2014
@set VERSION 4.1
-@set PATCHLEVEL 0
+@set PATCHLEVEL 1
@set FSF
@@ -116,11 +116,19 @@
@end ifnottex
@ifnottex
+@ifnotdocbook
@macro ii{text}
@i{\text\}
@end macro
+@end ifnotdocbook
@end ifnottex
+@ifdocbook
+@macro ii{text}
+@inlineraw{docbook,<lineannotation>\text\</lineannotation>}
+@end macro
+@end ifdocbook
+
@c For HTML, spell out email addresses, to avoid problems with
@c address harvesters for spammers.
@ifhtml
@@ -134,9 +142,36 @@
@end macro
@end ifnothtml
+@c Indexing macros
+@ifinfo
+
+@macro cindexawkfunc{name}
+@cindex @code{\name\}
+@end macro
+
+@macro cindexgawkfunc{name}
+@cindex @code{\name\}
+@end macro
+
+@end ifinfo
+
+@ifnotinfo
+
+@macro cindexawkfunc{name}
+@cindex @code{\name\()} function
+@end macro
+
+@macro cindexgawkfunc{name}
+@cindex @code{\name\()} function (@command{gawk})
+@end macro
+@end ifnotinfo
+
@ignore
Some comments on the layout for TeX.
1. Use at least texinfo.tex 2014-01-30.15
+2. When using @docbook, if the last line is part of a paragraph, end
+it with a space and @c so that the lines won't run together. This is a
+quirk of the language / makeinfo, and isn't going to change.
@end ignore
@c merge the function and variable indexes into the concept index
@@ -152,6 +187,10 @@ Some comments on the layout for TeX.
@syncodeindex fn cp
@syncodeindex vr cp
@end ifxml
+@ifdocbook
+@synindex fn cp
+@synindex vr cp
+@end ifdocbook
@c If "finalout" is commented out, the printed output will show
@c black boxes that mark lines that are too long. Thus, it is
@@ -163,10 +202,26 @@ Some comments on the layout for TeX.
@end iftex
@copying
-Copyright @copyright{} 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013,
-2014
+@docbook
+<para>Published by:</para>
+
+<literallayout class="normal">Free Software Foundation
+51 Franklin Street, Fifth Floor
+Boston, MA 02110-1301 USA
+Phone: +1-617-542-5942
+Fax: +1-617-542-2652
+Email: <email>gnu@@gnu.org</email>
+URL: <ulink url="http://www.gnu.org">http://www.gnu.org/</ulink></literallayout>
+
+<literallayout class="normal">Copyright &copy; 1989, 1991, 1992, 1993, 1996&ndash;2005, 2007, 2009&ndash;2014
Free Software Foundation, Inc.
+All Rights Reserved.</literallayout>
+@end docbook
+
+@ifnotdocbook
+Copyright @copyright{} 1989, 1991, 1992, 1993, 1996--2005, 2007, 2009--2014 @*
+Free Software Foundation, Inc.
+@end ifnotdocbook
@sp 2
This is Edition @value{EDITION} of @cite{@value{TITLE}: @value{SUBTITLE}},
@@ -214,6 +269,7 @@ supports it in developing GNU and promoting software freedom.''
@subtitle @value{UPDATE-MONTH}
@author Arnold D. Robbins
+@ifnotdocbook
@c Include the Distribution inside the titlepage environment so
@c that headings are turned off. Headings on and off do not work.
@@ -238,6 +294,7 @@ URL: @uref{http://www.gnu.org/} @*
ISBN 1-882114-28-0 @*
@sp 2
@insertcopying
+@end ifnotdocbook
@end titlepage
@c Thanks to Bob Chassell for directions on doing dedications.
@@ -262,6 +319,18 @@ ISBN 1-882114-28-0 @*
@headings on
@end iftex
+@docbook
+<dedication>
+<simplelist>
+<member>To Miriam, for making me complete.</member>
+<member>To Chana, for the joy you bring us.</member>
+<member>To Rivka, for the exponential increase.</member>
+<member>To Nachum, for the added dimension.</member>
+<member>To Malka, for the new beginning.</member>
+</simplelist>
+</dedication>
+@end docbook
+
@iftex
@headings off
@evenheading @thispage@ @ @ @strong{@value{TITLE}} @| @|
@@ -270,6 +339,7 @@ ISBN 1-882114-28-0 @*
@ifnottex
@ifnotxml
+@ifnotdocbook
@node Top
@top General Introduction
@c Preface node should come right after the Top
@@ -281,6 +351,7 @@ particular records in a file and perform operations upon them.
@insertcopying
+@end ifnotdocbook
@end ifnotxml
@end ifnottex
@@ -742,6 +813,7 @@ particular records in a file and perform operations upon them.
* Extension API Functions Introduction:: Introduction to the API functions.
* General Data Types:: The data types.
* Requesting Values:: How to get a value.
+* Memory Allocation Functions:: Functions for allocating memory.
* Constructor Functions:: Functions for creating values.
* Registration Functions:: Functions to register things with
@command{gawk}.
@@ -804,7 +876,8 @@ particular records in a file and perform operations upon them.
version of @command{awk}.
* POSIX/GNU:: The extensions in @command{gawk} not
in POSIX @command{awk}.
-* Feature History:: The history of the features in @command{gawk}.
+* Feature History:: The history of the features in
+ @command{gawk}.
* Common Extensions:: Common Extensions Summary.
* Ranges and Locales:: How locales used to affect regexp
ranges.
@@ -976,21 +1049,37 @@ and the AWK prototype becomes the product.
The new @command{pgawk} (profiling @command{gawk}), produces
program execution counts.
I recently experimented with an algorithm that for
-@math{n} lines of input, exhibited
+@ifnotdocbook
+@math{n}
+@end ifnotdocbook
+@ifdocbook
+@i{n}
+@end ifdocbook
+lines of input, exhibited
@tex
$\sim\! Cn^2$
@end tex
@ifnottex
+@ifnotdocbook
~ C n^2
+@end ifnotdocbook
@end ifnottex
+@docbook
+<emphasis>&sim; Cn<superscript>2</superscript></emphasis> @c
+@end docbook
performance, while
theory predicted
@tex
$\sim\! Cn\log n$
@end tex
@ifnottex
+@ifnotdocbook
~ C n log n
+@end ifnotdocbook
@end ifnottex
+@docbook
+<emphasis>&sim; Cn log n</emphasis> @c
+@end docbook
behavior. A few minutes poring
over the @file{awkprof.out} profile pinpointed the problem to
a single line of code. @command{pgawk} is a welcome addition to
@@ -1000,6 +1089,7 @@ Arnold has distilled over a decade of experience writing and
using AWK programs, and developing @command{gawk}, into this book. If you use
AWK or want to learn how, then read this book.
+@cindex Brennan, Michael
@display
Michael Brennan
Author of @command{mawk}
@@ -1024,6 +1114,7 @@ Such jobs are often easier with @command{awk}.
The @command{awk} utility interprets a special-purpose programming language
that makes it easy to handle simple data-reformatting jobs.
+@cindex Brian Kernighan's @command{awk}
The GNU implementation of @command{awk} is called @command{gawk}; if you
invoke it with the proper options or environment variables
(@pxref{Options}), it is fully
@@ -1774,7 +1865,7 @@ significant editorial help for this @value{DOCUMENT} for the
3.1 release of @command{gawk}.
@end quotation
-@cindex Beebe, Nelson
+@cindex Beebe, Nelson H.F.@:
@cindex Buening, Andreas
@cindex Collado, Manuel
@cindex Colombo, Antonio
@@ -2067,11 +2158,11 @@ $ @kbd{awk "BEGIN @{ print \"Don't Panic!\" @}"}
@print{} Don't Panic!
@end example
-@cindex quoting
-@cindex double quote (@code{"})
-@cindex @code{"} (double quote)
-@cindex @code{\} (backslash)
-@cindex backslash (@code{\})
+@cindex shell quoting, double quote
+@cindex double quote (@code{"}) in shell commands
+@cindex @code{"} (double quote) in shell commands
+@cindex @code{\} (backslash) in shell commands
+@cindex backslash (@code{\}) in shell commands
This program does not read any input. The @samp{\} before each of the
inner double quotes is necessary because of the shell's quoting
rules---in particular because it mixes both single quotes and
@@ -2111,8 +2202,7 @@ awk -f @var{source-file} @var{input-file1} @var{input-file2} @dots{}
@end example
@cindex @option{-f} option
-@cindex command line, options
-@cindex options, command-line
+@cindex command line, option @option{-f}
The @option{-f} instructs the @command{awk} utility to get the @command{awk} program
from the file @var{source-file}. Any file name can be used for
@var{source-file}. For example, you could put the program:
@@ -2135,7 +2225,7 @@ does the same thing as this one:
awk "BEGIN @{ print \"Don't Panic!\" @}"
@end example
-@cindex quoting
+@cindex quoting in @command{gawk} command lines
@noindent
This was explained earlier
(@pxref{Read Terminal}).
@@ -2146,9 +2236,9 @@ program did not have single quotes around it. The quotes are only needed
for programs that are provided on the @command{awk} command line.
@c STARTOFRANGE sq1x
-@cindex single quote (@code{'})
+@cindex single quote (@code{'}) in @command{gawk} command lines
@c STARTOFRANGE qs2x
-@cindex @code{'} (single quote)
+@cindex @code{'} (single quote) in @command{gawk} command lines
If you want to clearly identify your @command{awk} program files as such,
you can add the extension @file{.awk} to the file name. This doesn't
affect the execution of the @command{awk} program but it does make
@@ -2297,7 +2387,7 @@ programs, but this usually isn't very useful; the purpose of a
comment is to help you or another person understand the program
when reading it at a later time.
-@cindex quoting
+@cindex quoting, for small awk programs
@cindex single quote (@code{'}), vs.@: apostrophe
@cindex @code{'} (single quote), vs.@: apostrophe
@quotation CAUTION
@@ -2338,7 +2428,7 @@ The next @value{SUBSECTION} describes the shell's quoting rules.
@node Quoting
@subsection Shell-Quoting Issues
-@cindex quoting, rules for
+@cindex shell quoting, rules for
@menu
* DOS Quoting:: Quoting in Windows Batch Files.
@@ -2373,10 +2463,10 @@ that character. The shell removes the backslash and passes the quoted
character on to the command.
@item
-@cindex @code{\} (backslash)
-@cindex backslash (@code{\})
-@cindex single quote (@code{'})
-@cindex @code{'} (single quote)
+@cindex @code{\} (backslash), in shell commands
+@cindex backslash (@code{\}), in shell commands
+@cindex single quote (@code{'}), in shell commands
+@cindex @code{'} (single quote), in shell commands
Single quotes protect everything between the opening and closing quotes.
The shell does no interpretation of the quoted text, passing it on verbatim
to the command.
@@ -2386,8 +2476,8 @@ Refer back to
for an example of what happens if you try.
@item
-@cindex double quote (@code{"})
-@cindex @code{"} (double quote)
+@cindex double quote (@code{"}), in shell commands
+@cindex @code{"} (double quote), in shell commands
Double quotes protect most things between the opening and closing quotes.
The shell does at least variable and command substitution on the quoted text.
Different shells may do additional kinds of processing on double-quoted text.
@@ -2424,7 +2514,7 @@ awk -F "" '@var{program}' @var{files} # correct
@end example
@noindent
-@cindex null strings, quoting and
+@cindex null strings in @command{gawk} arguments, quoting and
Don't use this:
@example
@@ -2437,7 +2527,7 @@ as the value of @code{FS}, and the first file name as the text of the program!
This results in syntax errors at best, and confusing behavior at worst.
@end itemize
-@cindex quoting, tricks for
+@cindex quoting in @command{gawk} command lines, tricks for
Mixing single and double quotes is difficult. You have to resort
to shell quoting tricks, like this:
@@ -2552,40 +2642,39 @@ gawk "@{ print \"\042\" $0 \"\042\" @}" @var{file}
@c For gawk >= 4.0, update these data files. No-one has such slow modems!
@cindex input files, examples
-@cindex @code{BBS-list} file
+@cindex @code{mail-list} file
Many of the examples in this @value{DOCUMENT} take their input from two sample
-data files. The first, @file{BBS-list}, represents a list of
-computer bulletin board systems together with information about those systems.
+data files. The first, @file{mail-list}, represents a list of peoples' names
+together with their email addresses and information about those people.
The second data file, called @file{inventory-shipped}, contains
information about monthly shipments. In both files,
each line is considered to be one @dfn{record}.
-In the data file @file{BBS-list}, each record contains the name of a computer
-bulletin board, its phone number, the board's baud rate(s), and a code for
-the number of hours it is operational. An @samp{A} in the last column
-means the board operates 24 hours a day. A @samp{B} in the last
-column means the board only operates on evening and weekend hours.
-A @samp{C} means the board operates only on weekends:
+In the data file @file{mail-list}, each record contains the name of a person,
+his/her phone number, his/her email-address, and a code for their relationship
+with the author of the list. An @samp{A} in the last column
+means that the person is an acquaintance. An @samp{F} in the last
+column means that the person is a friend.
+An @samp{R} means that the person is a relative:
-@c 2e: Update the baud rates to reflect today's faster modems
@example
@c system if test ! -d eg ; then mkdir eg ; fi
@c system if test ! -d eg/lib ; then mkdir eg/lib ; fi
@c system if test ! -d eg/data ; then mkdir eg/data ; fi
@c system if test ! -d eg/prog ; then mkdir eg/prog ; fi
@c system if test ! -d eg/misc ; then mkdir eg/misc ; fi
-@c file eg/data/BBS-list
-aardvark 555-5553 1200/300 B
-alpo-net 555-3412 2400/1200/300 A
-barfly 555-7685 1200/300 A
-bites 555-1675 2400/1200/300 A
-camelot 555-0542 300 C
-core 555-2912 1200/300 C
-fooey 555-1234 2400/1200/300 B
-foot 555-6699 1200/300 B
-macfoo 555-6480 1200/300 A
-sdace 555-3430 2400/1200/300 A
-sabafoo 555-2127 1200/300 C
+@c file eg/data/mail-list
+Amelia 555-5553 amelia.zodiacusque@@gmail.com F
+Anthony 555-3412 anthony.asserturo@@hotmail.com A
+Becky 555-7685 becky.algebrarum@@gmail.com A
+Bill 555-1675 bill.drowning@@hotmail.com A
+Broderick 555-0542 broderick.aliquotiens@@yahoo.com R
+Camilla 555-2912 camilla.infusarum@@skynet.be R
+Fabius 555-1234 fabius.undevicesimus@@ucb.edu F
+Julie 555-6699 julie.perscrutabor@@skeeve.com F
+Martin 555-6480 martin.codicibus@@hotmail.com A
+Samuel 555-3430 samuel.lanceolis@@shu.edu A
+Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
@c endfile
@end example
@@ -2627,23 +2716,23 @@ in the directory @file{awklib/eg/data}.
@section Some Simple Examples
The following command runs a simple @command{awk} program that searches the
-input file @file{BBS-list} for the character string @samp{foo} (a
+input file @file{mail-list} for the character string @samp{li} (a
grouping of characters is usually called a @dfn{string};
the term @dfn{string} is based on similar usage in English, such
as ``a string of pearls,'' or ``a string of cars in a train''):
@example
-awk '/foo/ @{ print $0 @}' BBS-list
+awk '/li/ @{ print $0 @}' mail-list
@end example
@noindent
-When lines containing @samp{foo} are found, they are printed because
+When lines containing @samp{li} are found, they are printed because
@w{@samp{print $0}} means print the current line. (Just @samp{print} by
itself means the same thing, so we could have written that
instead.)
-You will notice that slashes (@samp{/}) surround the string @samp{foo}
-in the @command{awk} program. The slashes indicate that @samp{foo}
+You will notice that slashes (@samp{/}) surround the string @samp{li}
+in the @command{awk} program. The slashes indicate that @samp{li}
is the pattern to search for. This type of pattern is called a
@dfn{regular expression}, which is covered in more detail later
(@pxref{Regexp}).
@@ -2655,11 +2744,11 @@ interpret any of it as special shell characters.
Here is what this program prints:
@example
-$ @kbd{awk '/foo/ @{ print $0 @}' BBS-list}
-@print{} fooey 555-1234 2400/1200/300 B
-@print{} foot 555-6699 1200/300 B
-@print{} macfoo 555-6480 1200/300 A
-@print{} sabafoo 555-2127 1200/300 C
+$ @kbd{awk '/li/ @{ print $0 @}' mail-list}
+@print{} Amelia 555-5553 amelia.zodiacusque@@gmail.com F
+@print{} Broderick 555-0542 broderick.aliquotiens@@yahoo.com R
+@print{} Julie 555-6699 julie.perscrutabor@@skeeve.com F
+@print{} Samuel 555-3430 samuel.lanceolis@@shu.edu A
@end example
@cindex actions, default
@@ -2672,7 +2761,7 @@ action is to print all lines that match the pattern.
@cindex actions, empty
Thus, we could leave out the action (the @code{print} statement and the curly
braces) in the previous example and the result would be the same:
-@command{awk} prints all lines matching the pattern @samp{foo}. By comparison,
+@command{awk} prints all lines matching the pattern @samp{li}. By comparison,
omitting the @code{print} statement but retaining the curly braces makes an
empty action that does nothing (i.e., no lines are printed).
@@ -2817,29 +2906,23 @@ This program prints every line that contains the string
strings, it is printed twice, once by each rule.
This is what happens if we run this program on our two sample data files,
-@file{BBS-list} and @file{inventory-shipped}:
+@file{mail-list} and @file{inventory-shipped}:
@example
$ @kbd{awk '/12/ @{ print $0 @}}
-> @kbd{/21/ @{ print $0 @}' BBS-list inventory-shipped}
-@print{} aardvark 555-5553 1200/300 B
-@print{} alpo-net 555-3412 2400/1200/300 A
-@print{} barfly 555-7685 1200/300 A
-@print{} bites 555-1675 2400/1200/300 A
-@print{} core 555-2912 1200/300 C
-@print{} fooey 555-1234 2400/1200/300 B
-@print{} foot 555-6699 1200/300 B
-@print{} macfoo 555-6480 1200/300 A
-@print{} sdace 555-3430 2400/1200/300 A
-@print{} sabafoo 555-2127 1200/300 C
-@print{} sabafoo 555-2127 1200/300 C
+> @kbd{/21/ @{ print $0 @}' mail-list inventory-shipped}
+@print{} Anthony 555-3412 anthony.asserturo@@hotmail.com A
+@print{} Camilla 555-2912 camilla.infusarum@@skynet.be R
+@print{} Fabius 555-1234 fabius.undevicesimus@@ucb.edu F
+@print{} Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
+@print{} Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
@print{} Jan 21 36 64 620
@print{} Apr 21 70 74 514
@end example
@noindent
-Note how the line beginning with @samp{sabafoo}
-in @file{BBS-list} was printed twice, once for each rule.
+Note how the line beginning with @samp{Jean-Paul}
+in @file{mail-list} was printed twice, once for each rule.
@node More Complex
@section A More Complex Example
@@ -2918,7 +3001,7 @@ separate rule, like this:
@example
awk '/12/ @{ print $0 @}
- /21/ @{ print $0 @}' BBS-list inventory-shipped
+ /21/ @{ print $0 @}' mail-list inventory-shipped
@end example
@cindex @command{gawk}, newlines in
@@ -3033,8 +3116,8 @@ noticed because it is ``hidden'' inside the comment. Thus, the
@code{BEGIN} is noted as a syntax error.
@cindex statements, multiple
-@cindex @code{;} (semicolon)
-@cindex semicolon (@code{;})
+@cindex @code{;} (semicolon), separating statements in actions
+@cindex semicolon (@code{;}), separating statements in actions
When @command{awk} statements within one rule are short, you might want to put
more than one of them on a line. This is accomplished by separating the statements
with a semicolon (@samp{;}).
@@ -3094,6 +3177,7 @@ used once, and thrown away. Because @command{awk} programs are interpreted, you
can avoid the (usually lengthy) compilation part of the typical
edit-compile-test-debug cycle of software development.
+@cindex Brian Kernighan's @command{awk}
Complex programs have been written in @command{awk}, including a complete
retargetable assembler for eight-bit microprocessors (@pxref{Glossary}, for
more information), and a microcode assembler for a special-purpose Prolog
@@ -3156,10 +3240,19 @@ There are two ways to run @command{awk}---with an explicit program or with
one or more program files. Here are templates for both of them; items
enclosed in [@dots{}] in these templates are optional:
+@ifnotdocbook
@example
awk @r{[@var{options}]} -f progfile @r{[@code{--}]} @var{file} @dots{}
awk @r{[@var{options}]} @r{[@code{--}]} '@var{program}' @var{file} @dots{}
@end example
+@end ifnotdocbook
+
+@c FIXME - find a better way to mark this up in docbook
+@docbook
+<screen>awk [<replaceable>options</replaceable>] -f progfile [<literal>--</literal>] <replaceable>file</replaceable> &#8230;
+awk [<replaceable>options</replaceable>] [<literal>--</literal>] '<replaceable>program</replaceable>' <replaceable>file</replaceable> &#8230;
+</screen>
+@end docbook
@cindex GNU long options
@cindex long options
@@ -3325,6 +3418,7 @@ Print the short version of the General Public License and then exit.
@itemx --dump-variables@r{[}=@var{file}@r{]}
@cindex @option{-d} option
@cindex @option{--dump-variables} option
+@cindex dump all variables of a program
@cindex @file{awkvars.out} file
@cindex files, @file{awkvars.out}
@cindex variables, global, printing list of
@@ -3478,7 +3572,7 @@ care to search for all occurrences of each inappropriate construct. As
@cindex @option{--bignum} option
Force arbitrary precision arithmetic on numbers. This option has no effect
if @command{gawk} is not compiled to use the GNU MPFR and MP libraries
-(@pxref{Arbitrary Precision Arithmetic}).
+(@pxref{Gawk and MPFR}).
@item -n
@itemx --non-decimal-data
@@ -3731,6 +3825,7 @@ file at all.
@cindex @command{gawk}, @code{ARGIND} variable in
@cindex @code{ARGIND} variable, command-line arguments
+@cindex @code{ARGV} array, indexing into
@cindex @code{ARGC}/@code{ARGV} variables, command-line arguments
All these arguments are made available to your @command{awk} program in the
@code{ARGV} array (@pxref{Built-in Variables}). Command-line options
@@ -3741,6 +3836,7 @@ sets the variable @code{ARGIND} to the index in @code{ARGV} of the
current element.
@cindex input files, variable assignments and
+@cindex variable assignments and input files
The distinction between file name arguments and variable-assignment
arguments is made when @command{awk} is about to open the next input file.
At that point in execution, it checks the file name to see whether
@@ -3818,6 +3914,7 @@ this file name itself.)
@node Environment Variables
@section The Environment Variables @command{gawk} Uses
+@cindex environment variables used by @command{gawk}
A number of environment variables influence how @command{gawk}
behaves.
@@ -3833,8 +3930,7 @@ behaves.
@node AWKPATH Variable
@subsection The @env{AWKPATH} Environment Variable
@cindex @env{AWKPATH} environment variable
-@cindex directories, searching
-@cindex search paths
+@cindex directories, searching for source files
@cindex search paths, for source files
@cindex differences in @command{awk} and @command{gawk}, @code{AWKPATH} environment variable
@ifinfo
@@ -3846,12 +3942,12 @@ implementations, you must supply a precise path name for each program
file, unless the file is in the current directory.
But in @command{gawk}, if the file name supplied to the @option{-f}
or @option{-i} options
-does not contain a @samp{/}, then @command{gawk} searches a list of
+does not contain a directory separator @samp{/}, then @command{gawk} searches a list of
directories (called the @dfn{search path}), one by one, looking for a
file with the specified name.
The search path is a string consisting of directory names
-separated by colons. @command{gawk} gets its search path from the
+separated by colons@footnote{Semicolons on MS-Windows and MS-DOS.}. @command{gawk} gets its search path from the
@env{AWKPATH} environment variable. If that variable does not exist,
@command{gawk} uses a default path,
@samp{.:/usr/local/share/awk}.@footnote{Your version of @command{gawk}
@@ -3909,8 +4005,7 @@ found, and @command{gawk} no longer needs to use @env{AWKPATH}.
@node AWKLIBPATH Variable
@subsection The @env{AWKLIBPATH} Environment Variable
@cindex @env{AWKLIBPATH} environment variable
-@cindex directories, searching
-@cindex search paths
+@cindex directories, searching for shared libraries
@cindex search paths, for shared libraries
@cindex differences in @command{awk} and @command{gawk}, @code{AWKLIBPATH} environment variable
@@ -4195,7 +4290,6 @@ they will @emph{not} be in the next release).
@c update this section for each release!
-@cindex @code{PROCINFO} array
The process-related special files @file{/dev/pid}, @file{/dev/ppid},
@file{/dev/pgrpid}, and @file{/dev/user} were deprecated in @command{gawk}
3.1, but still worked. As of version 4.0, they are no longer
@@ -4221,6 +4315,7 @@ in case some option becomes obsolete in a future version of @command{gawk}.
@author Obi-Wan
@end quotation
+@cindex shells, sea
This @value{SECTION} intentionally left
blank.
@@ -4233,7 +4328,7 @@ blank.
@table @code
@item -W nostalgia
@itemx --nostalgia
-Print the message @code{"awk: bailing out near line 1"} and dump core.
+Print the message @samp{awk: bailing out near line 1} and dump core.
This option was inspired by the common behavior of very early versions of
Unix @command{awk} and by a t--shirt.
The message is @emph{not} subject to translation in non-English locales.
@@ -4279,7 +4374,7 @@ long-undocumented ``feature'' of Unix @code{awk}.
@node Regexp
@chapter Regular Expressions
-@cindex regexp, See regular expressions
+@cindex regexp
@c STARTOFRANGE regexp
@cindex regular expressions
@@ -4288,8 +4383,8 @@ set of strings.
Because regular expressions are such a fundamental part of @command{awk}
programming, their format and use deserve a separate @value{CHAPTER}.
-@cindex forward slash (@code{/})
-@cindex @code{/} (forward slash)
+@cindex forward slash (@code{/}) to enclose regular expressions
+@cindex @code{/} (forward slash) to enclose regular expressions
A regular expression enclosed in slashes (@samp{/})
is an @command{awk} pattern that matches every input record whose text
belongs to that set.
@@ -4326,14 +4421,14 @@ slashes. Then the regular expression is tested against the
entire text of each record. (Normally, it only needs
to match some part of the text in order to succeed.) For example, the
following prints the second field of each record that contains the string
-@samp{foo} anywhere in it:
+@samp{li} anywhere in it:
@example
-$ @kbd{awk '/foo/ @{ print $2 @}' BBS-list}
-@print{} 555-1234
+$ @kbd{awk '/li/ @{ print $2 @}' mail-list}
+@print{} 555-5553
+@print{} 555-0542
@print{} 555-6699
-@print{} 555-6480
-@print{} 555-2127
+@print{} 555-3430
@end example
@cindex regular expressions, operators
@@ -4345,9 +4440,9 @@ $ @kbd{awk '/foo/ @{ print $2 @}' BBS-list}
@cindex @code{!} (exclamation point), @code{!~} operator
@cindex exclamation point (@code{!}), @code{!~} operator
@c @cindex operators, @code{!~}
-@cindex @code{if} statement
-@cindex @code{while} statement
-@cindex @code{do}-@code{while} statement
+@cindex @code{if} statement, use of regexps in
+@cindex @code{while} statement, use of regexps in
+@cindex @code{do}-@code{while} statement, use of regexps in
@c @cindex statements, @code{if}
@c @cindex statements, @code{while}
@c @cindex statements, @code{do}
@@ -4406,6 +4501,7 @@ $ @kbd{awk '$1 !~ /J/' inventory-shipped}
@end example
@cindex regexp constants
+@cindex constant regexps
@cindex regular expressions, constants, See regexp constants
When a regexp is enclosed in slashes, such as @code{/foo/}, we call it
a @dfn{regexp constant}, much like @code{5.27} is a numeric constant and
@@ -4414,7 +4510,7 @@ a @dfn{regexp constant}, much like @code{5.27} is a numeric constant and
@node Escape Sequences
@section Escape Sequences
-@cindex escape sequences
+@cindex escape sequences, in strings
@cindex backslash (@code{\}), in escape sequences
@cindex @code{\} (backslash), in escape sequences
Some characters cannot be included literally in string constants
@@ -4584,6 +4680,7 @@ leaves what happens as undefined. There are two choices:
@c @cindex automatic warnings
@c @cindex warnings, automatic
+@cindex Brian Kernighan's @command{awk}
@table @asis
@item Strip the backslash out
This is what Brian Kernighan's @command{awk} and @command{gawk} both do.
@@ -4597,6 +4694,7 @@ two backslashes in the string: @samp{FS = @w{"[ \t]+\\|[ \t]+"}}.)
@cindex @command{gawk}, escape sequences
@cindex Unix @command{awk}, backslashes in escape sequences
+@cindex @command{mawk} utility
@item Leave the backslash alone
Some other @command{awk} implementations do this.
In such implementations, typing @code{"a\qc"} is the same as typing
@@ -4625,6 +4723,7 @@ leaves what happens as undefined. There are two choices:
@c @cindex automatic warnings
@c @cindex warnings, automatic
+@cindex Brian Kernighan's @command{awk}
@table @asis
@item Strip the backslash out
This is what Brian Kernighan's @command{awk} and @command{gawk} both do.
@@ -4638,6 +4737,7 @@ two backslashes in the string: @samp{FS = @w{"[ \t]+\\|[ \t]+"}}.)
@cindex @command{gawk}, escape sequences
@cindex Unix @command{awk}, backslashes in escape sequences
+@cindex @command{mawk} utility
@item Leave the backslash alone
Some other @command{awk} implementations do this.
In such implementations, typing @code{"a\qc"} is the same as typing
@@ -4704,6 +4804,7 @@ escape sequences literally when used in regexp constants. Thus,
@section Regular Expression Operators
@c STARTOFRANGE regexpo
@cindex regular expressions, operators
+@cindex metacharacters in regular expressions
You can combine regular expressions with special characters,
called @dfn{regular expression operators} or @dfn{metacharacters}, to
@@ -4722,8 +4823,8 @@ Here is a list of metacharacters. All characters that are not escape
sequences and that are not listed in the table stand for themselves:
@table @code
-@cindex backslash (@code{\})
-@cindex @code{\} (backslash)
+@cindex backslash (@code{\}), regexp operator
+@cindex @code{\} (backslash), regexp operator
@item \
This is used to suppress the special meaning of a character when
matching. For example, @samp{\$}
@@ -4748,8 +4849,8 @@ The condition is not true in the following example:
if ("line1\nLINE 2" ~ /^L/) @dots{}
@end example
-@cindex @code{$} (dollar sign)
-@cindex dollar sign (@code{$})
+@cindex @code{$} (dollar sign), regexp operator
+@cindex dollar sign (@code{$}), regexp operator
@item $
This is similar to @samp{^}, but it matches only at the end of a string.
For example, @samp{p$}
@@ -4761,8 +4862,8 @@ The condition in the following example is not true:
if ("line1\nLINE 2" ~ /1$/) @dots{}
@end example
-@cindex @code{.} (period)
-@cindex period (@code{.})
+@cindex @code{.} (period), regexp operator
+@cindex period (@code{.}), regexp operator
@item . @r{(period)}
This matches any single character,
@emph{including} the newline character. For example, @samp{.P}
@@ -4778,11 +4879,12 @@ character, which is a character with all bits equal to zero.
Otherwise, @sc{nul} is just another character. Other versions of @command{awk}
may not be able to match the @sc{nul} character.
-@cindex @code{[]} (square brackets)
-@cindex square brackets (@code{[]})
+@cindex @code{[]} (square brackets), regexp operator
+@cindex square brackets (@code{[]}), regexp operator
@cindex bracket expressions
@cindex character sets, See Also bracket expressions
@cindex character lists, See bracket expressions
+@cindex character classes, See bracket expressions
@item [@dots{}]
This is called a @dfn{bracket expression}.@footnote{In other literature,
you may see a bracket expression referred to as either a
@@ -4815,8 +4917,8 @@ means it matches any string that starts with @samp{P} or contains a digit.
The alternation applies to the largest possible regexps on either side.
-@cindex @code{()} (parentheses)
-@cindex parentheses @code{()}
+@cindex @code{()} (parentheses), regexp operator
+@cindex parentheses @code{()}, regexp operator
@item (@dots{})
Parentheses are used for grouping in regular expressions, as in
arithmetic. They can be used to concatenate regular expressions
@@ -4844,8 +4946,8 @@ prints every record in @file{sample} containing a string of the form
Notice the escaping of the parentheses by preceding them
with backslashes.
-@cindex @code{+} (plus sign)
-@cindex plus sign (@code{+})
+@cindex @code{+} (plus sign), regexp operator
+@cindex plus sign (@code{+}), regexp operator
@item +
This symbol is similar to @samp{*}, except that the preceding expression must be
matched at least once. This means that @samp{wh+y}
@@ -4858,14 +4960,14 @@ way of writing the last @samp{*} example:
awk '/\(c[ad]+r x\)/ @{ print @}' sample
@end example
-@cindex @code{?} (question mark) regexp operator
-@cindex question mark (@code{?}) regexp operator
+@cindex @code{?} (question mark), regexp operator
+@cindex question mark (@code{?}), regexp operator
@item ?
This symbol is similar to @samp{*}, except that the preceding expression can be
matched either once or not at all. For example, @samp{fe?d}
matches @samp{fed} and @samp{fd}, but nothing else.
-@cindex interval expressions
+@cindex interval expressions, regexp operator
@item @{@var{n}@}
@itemx @{@var{n},@}
@itemx @{@var{n},@var{m}@}
@@ -4942,6 +5044,7 @@ expressions are not available in regular expressions.
@cindex bracket expressions
@cindex bracket expressions, range expressions
@cindex range expressions (regexps)
+@cindex character lists in regular expression
As mentioned earlier, a bracket expression matches any character amongst
those listed between the opening and closing square brackets.
@@ -5181,10 +5284,10 @@ Matches the empty string at the
end of a buffer (string).
@end table
-@cindex @code{^} (caret)
-@cindex caret (@code{^})
-@cindex @code{?} (question mark) regexp operator
-@cindex question mark (@code{?}) regexp operator
+@cindex @code{^} (caret), regexp operator
+@cindex caret (@code{^}), regexp operator
+@cindex @code{?} (question mark), regexp operator
+@cindex question mark (@code{?}), regexp operator
Because @samp{^} and @samp{$} always work in terms of the beginning
and end of strings, these operators don't add any new capabilities
for @command{awk}. They are provided for compatibility with other
@@ -5205,7 +5308,7 @@ lesser of two evils.
@c
@c Should really do this with file inclusion.
@cindex regular expressions, @command{gawk}, command-line options
-@cindex @command{gawk}, command-line options
+@cindex @command{gawk}, command-line options, and regular expressions
The various command-line options
(@pxref{Options})
control how @command{gawk} interprets characters in regexps:
@@ -5228,6 +5331,7 @@ Only POSIX regexps are supported; the GNU operators are not special
(e.g., @samp{\w} matches a literal @samp{w}). Interval expressions
are allowed.
+@cindex Brian Kernighan's @command{awk}
@item @code{--traditional}
Traditional Unix @command{awk} regexps are matched. The GNU operators
are not special, and interval expressions are not available.
@@ -5283,7 +5387,7 @@ This works in any POSIX-compliant @command{awk}.
@cindex tilde (@code{~}), @code{~} operator
@cindex @code{!} (exclamation point), @code{!~} operator
@cindex exclamation point (@code{!}), @code{!~} operator
-@cindex @code{IGNORECASE} variable
+@cindex @code{IGNORECASE} variable, with @code{~} and @code{!~} operators
@cindex @command{gawk}, @code{IGNORECASE} variable in
@c @cindex variables, @code{IGNORECASE}
Another method, specific to @command{gawk}, is to set the variable
@@ -5548,6 +5652,7 @@ occur often in practice, but it's worth noting for future reference.
@chapter Reading Input Files
@c STARTOFRANGE infir
+@cindex reading input files
@cindex input files, reading
@cindex input files
@cindex @code{FILENAME} variable
@@ -5634,68 +5739,79 @@ To do this, use the special @code{BEGIN} pattern
(@pxref{BEGIN/END}).
For example:
-@cindex @code{BEGIN} pattern
@example
-awk 'BEGIN @{ RS = "/" @}
- @{ print $0 @}' BBS-list
+awk 'BEGIN @{ RS = "u" @}
+ @{ print $0 @}' mail-list
@end example
@noindent
-changes the value of @code{RS} to @code{"/"}, before reading any input.
-This is a string whose first character is a slash; as a result, records
-are separated by slashes. Then the input file is read, and the second
+changes the value of @code{RS} to @samp{u}, before reading any input.
+This is a string whose first character is the letter ``u;'' as a result, records
+are separated by the letter ``u.'' Then the input file is read, and the second
rule in the @command{awk} program (the action with no pattern) prints each
record. Because each @code{print} statement adds a newline at the end of
its output, this @command{awk} program copies the input
-with each slash changed to a newline. Here are the results of running
-the program on @file{BBS-list}:
-
-@example
-$ @kbd{awk 'BEGIN @{ RS = "/" @}}
-> @kbd{@{ print $0 @}' BBS-list}
-@print{} aardvark 555-5553 1200
-@print{} 300 B
-@print{} alpo-net 555-3412 2400
-@print{} 1200
-@print{} 300 A
-@print{} barfly 555-7685 1200
-@print{} 300 A
-@print{} bites 555-1675 2400
-@print{} 1200
-@print{} 300 A
-@print{} camelot 555-0542 300 C
-@print{} core 555-2912 1200
-@print{} 300 C
-@print{} fooey 555-1234 2400
-@print{} 1200
-@print{} 300 B
-@print{} foot 555-6699 1200
-@print{} 300 B
-@print{} macfoo 555-6480 1200
-@print{} 300 A
-@print{} sdace 555-3430 2400
-@print{} 1200
-@print{} 300 A
-@print{} sabafoo 555-2127 1200
-@print{} 300 C
-@print{}
+with each @samp{u} changed to a newline. Here are the results of running
+the program on @file{mail-list}:
+
+@example
+$ @kbd{awk 'BEGIN @{ RS = "u" @}}
+> @kbd{@{ print $0 @}' mail-list}
+@print{} Amelia 555-5553 amelia.zodiac
+@print{} sq
+@print{} e@@gmail.com F
+@print{} Anthony 555-3412 anthony.assert
+@print{} ro@@hotmail.com A
+@print{} Becky 555-7685 becky.algebrar
+@print{} m@@gmail.com A
+@print{} Bill 555-1675 bill.drowning@@hotmail.com A
+@print{} Broderick 555-0542 broderick.aliq
+@print{} otiens@@yahoo.com R
+@print{} Camilla 555-2912 camilla.inf
+@print{} sar
+@print{} m@@skynet.be R
+@print{} Fabi
+@print{} s 555-1234 fabi
+@print{} s.
+@print{} ndevicesim
+@print{} s@@
+@print{} cb.ed
+@print{} F
+@print{} J
+@print{} lie 555-6699 j
+@print{} lie.perscr
+@print{} tabor@@skeeve.com F
+@print{} Martin 555-6480 martin.codicib
+@print{} s@@hotmail.com A
+@print{} Sam
+@print{} el 555-3430 sam
+@print{} el.lanceolis@@sh
+@print{} .ed
+@print{} A
+@print{} Jean-Pa
+@print{} l 555-2127 jeanpa
+@print{} l.campanor
+@print{} m@@ny
+@print{} .ed
+@print{} R
+@print{}
@end example
@noindent
-Note that the entry for the @samp{camelot} BBS is not split.
+Note that the entry for the name @samp{Bill} is not split.
In the original data file
(@pxref{Sample Data Files}),
the line looks like this:
@example
-camelot 555-0542 300 C
+Bill 555-1675 bill.drowning@@hotmail.com A
@end example
@noindent
-It has one baud rate only, so there are no slashes in the record,
-unlike the others which have two or more baud rates.
-In fact, this record is treated as part of the record
-for the @samp{core} BBS; the newline separating them in the output
+It contains no @samp{u} so there is no reason to split the record,
+unlike the others which have one or more occurrences of the @samp{u}.
+In fact, this record is treated as part of the previous record;
+the newline separating them in the output
is the original newline in the data file, not the one added by
@command{awk} when it printed the record!
@@ -5706,14 +5822,17 @@ using the variable-assignment feature
(@pxref{Other Arguments}):
@example
-awk '@{ print $0 @}' RS="/" BBS-list
+awk '@{ print $0 @}' RS="u" mail-list
@end example
@noindent
-This sets @code{RS} to @samp{/} before processing @file{BBS-list}.
+This sets @code{RS} to @samp{u} before processing @file{mail-list}.
-Using an unusual character such as @samp{/} for the record separator
-produces correct behavior in the vast majority of cases.
+Using an alphabetic character such as @samp{u} for the record separator
+is highly likely to produce strange results.
+Using an unusual character such as @samp{/} is more likely to
+produce correct behavior in the majority of cases, but there
+are no guarantees. The moral is: Know Your Data.
There is one unusual case, that occurs when @command{gawk} is
being fully POSIX-compliant (@pxref{Options}).
@@ -5735,6 +5854,7 @@ Reaching the end of an input file terminates the current input record,
even if the last character in the file is not the character in @code{RS}.
@value{DARKCORNER}
+@cindex empty strings
@cindex null strings
@cindex strings, empty, See null strings
The empty string @code{""} (a string without any characters)
@@ -5871,7 +5991,7 @@ character as a record separator. However, this is a special case:
@command{mawk} does not allow embedded @sc{nul} characters in strings.
@cindex records, treating files as
-@cindex files, as single records
+@cindex treating files, as single records
The best way to treat a whole file as a single record is to
simply read the file in, one record at a time, concatenating each
record onto the end of the previous ones.
@@ -5922,7 +6042,7 @@ character as a record separator. However, this is a special case:
@command{mawk} does not allow embedded @sc{nul} characters in strings.
@cindex records, treating files as
-@cindex files, as single records
+@cindex treating files, as single records
The best way to treat a whole file as a single record is to
simply read the file in, one record at a time, concatenating each
record onto the end of the previous ones.
@@ -6000,31 +6120,29 @@ when you are not interested in specific fields.
Here are some more examples:
@example
-$ @kbd{awk '$1 ~ /foo/ @{ print $0 @}' BBS-list}
-@print{} fooey 555-1234 2400/1200/300 B
-@print{} foot 555-6699 1200/300 B
-@print{} macfoo 555-6480 1200/300 A
-@print{} sabafoo 555-2127 1200/300 C
+$ @kbd{awk '$1 ~ /li/ @{ print $0 @}' mail-list}
+@print{} Amelia 555-5553 amelia.zodiacusque@@gmail.com F
+@print{} Julie 555-6699 julie.perscrutabor@@skeeve.com F
@end example
@noindent
-This example prints each record in the file @file{BBS-list} whose first
-field contains the string @samp{foo}. The operator @samp{~} is called a
+This example prints each record in the file @file{mail-list} whose first
+field contains the string @samp{li}. The operator @samp{~} is called a
@dfn{matching operator}
(@pxref{Regexp Usage});
it tests whether a string (here, the field @code{$1}) matches a given regular
expression.
By contrast, the following example
-looks for @samp{foo} in @emph{the entire record} and prints the first
+looks for @samp{li} in @emph{the entire record} and prints the first
field and the last field for each matching input record:
@example
-$ @kbd{awk '/foo/ @{ print $1, $NF @}' BBS-list}
-@print{} fooey B
-@print{} foot B
-@print{} macfoo A
-@print{} sabafoo C
+$ @kbd{awk '/li/ @{ print $1, $NF @}' mail-list}
+@print{} Amelia F
+@print{} Broderick R
+@print{} Julie F
+@print{} Samuel A
@end example
@c ENDOFRANGE fiex
@@ -6052,7 +6170,7 @@ the record has fewer than 20 fields, so this prints a blank line.
Here is another example of using expressions as field numbers:
@example
-awk '@{ print $(2*2) @}' BBS-list
+awk '@{ print $(2*2) @}' mail-list
@end example
@command{awk} evaluates the expression @samp{(2*2)} and uses
@@ -6061,8 +6179,8 @@ represents multiplication, so the expression @samp{2*2} evaluates to four.
The parentheses are used so that the multiplication is done before the
@samp{$} operation; they are necessary whenever there is a binary
operator in the field-number expression. This example, then, prints the
-hours of operation (the fourth field) for every line of the file
-@file{BBS-list}. (All of the @command{awk} operators are listed, in
+type of relationship (the fourth field) for every line of the file
+@file{mail-list}. (All of the @command{awk} operators are listed, in
order of decreasing precedence, in
@ref{Precedence}.)
@@ -6504,7 +6622,7 @@ was ignored when finding @code{$1}, it is not part of the new @code{$0}.
Finally, the last @code{print} statement prints the new @code{$0}.
@cindex @code{FS}, containing @code{^}
-@cindex @code{^}, in @code{FS}
+@cindex @code{^} (caret), in @code{FS}
@cindex dark corner, @code{^}, in @code{FS}
There is an additional subtlety to be aware of when using regular expressions
for field splitting.
@@ -6515,6 +6633,7 @@ different @command{awk} versions answer this question differently, and you
should not rely on any specific behavior in your programs.
@value{DARKCORNER}
+@cindex Brian Kernighan's @command{awk}
As a point of information, Brian Kernighan's @command{awk} allows @samp{^}
to match only at the beginning of the record. @command{gawk}
also works this way. For example:
@@ -6558,7 +6677,7 @@ $ @kbd{echo a b | gawk 'BEGIN @{ FS = "" @}}
@end example
@cindex dark corner, @code{FS} as null string
-@cindex FS variable, as null string
+@cindex @code{FS} variable, as null string
Traditionally, the behavior of @code{FS} equal to @code{""} was not defined.
In this case, most versions of Unix @command{awk} simply treat the entire record
as only having one field.
@@ -6570,10 +6689,8 @@ behaves this way.
@node Command Line Field Separator
@subsection Setting @code{FS} from the Command Line
-@cindex @option{-F} option
-@cindex options, command-line
-@cindex command line, options
-@cindex field separators, on command line
+@cindex @option{-F} option, command line
+@cindex field separator, on command line
@cindex command line, @code{FS} on@comma{} setting
@cindex @code{FS} variable, setting from command line
@@ -6623,66 +6740,59 @@ figures that you really want your fields to be separated with TABs and
not @samp{t}s. Use @samp{-v FS="t"} or @samp{-F"[t]"} on the command line
if you really do want to separate your fields with @samp{t}s.
-As an example, let's use an @command{awk} program file called @file{baud.awk}
-that contains the pattern @code{/300/} and the action @samp{print $1}:
+As an example, let's use an @command{awk} program file called @file{edu.awk}
+that contains the pattern @code{/edu/} and the action @samp{print $1}:
@example
-/300/ @{ print $1 @}
+/edu/ @{ print $1 @}
@end example
Let's also set @code{FS} to be the @samp{-} character and run the
-program on the file @file{BBS-list}. The following command prints a
-list of the names of the bulletin boards that operate at 300 baud and
+program on the file @file{mail-list}. The following command prints a
+list of the names of the people that work at or attend a university, and
the first three digits of their phone numbers:
@c tweaked to make the tex output look better in @smallbook
@example
-$ @kbd{awk -F- -f baud.awk BBS-list}
-@print{} aardvark 555
-@print{} alpo
-@print{} barfly 555
-@print{} bites 555
-@print{} camelot 555
-@print{} core 555
-@print{} fooey 555
-@print{} foot 555
-@print{} macfoo 555
-@print{} sdace 555
-@print{} sabafoo 555
+$ @kbd{awk -F- -f edu.awk mail-list}
+@print{} Fabius 555
+@print{} Samuel 555
+@print{} Jean
@end example
@noindent
-Note the second line of output. The second line
+Note the third line of output. The third line
in the original file looked like this:
@example
-alpo-net 555-3412 2400/1200/300 A
+Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
@end example
-The @samp{-} as part of the system's name was used as the field
+The @samp{-} as part of the person's name was used as the field
separator, instead of the @samp{-} in the phone number that was
originally intended. This demonstrates why you have to be careful in
choosing your field and record separators.
@cindex Unix @command{awk}, password files@comma{} field separators and
-Perhaps the most common use of a single character as the field
-separator occurs when processing the Unix system password file.
-On many Unix systems, each user has a separate entry in the system password
-file, one line per user. The information in these lines is separated
-by colons. The first field is the user's login name and the second is
-the user's (encrypted or shadow) password. A password file entry might look
-like this:
+Perhaps the most common use of a single character as the field separator
+occurs when processing the Unix system password file. On many Unix
+systems, each user has a separate entry in the system password file, one
+line per user. The information in these lines is separated by colons.
+The first field is the user's login name and the second is the user's
+encrypted or shadow password. (A shadow password is indicated by the
+presence of a single @samp{x} in the second field.) A password file
+entry might look like this:
@cindex Robbins, Arnold
@example
-arnold:xyzzy:2076:10:Arnold Robbins:/home/arnold:/bin/bash
+arnold:x:2076:10:Arnold Robbins:/home/arnold:/bin/bash
@end example
The following program searches the system password file and prints
-the entries for users who have no password:
+the entries for users whose full name is not indicated:
@example
-awk -F: '$2 == ""' /etc/passwd
+awk -F: '$5 == ""' /etc/passwd
@end example
@node Full Line Fields
@@ -6745,7 +6855,7 @@ POSIX standard.)
@cindex POSIX @command{awk}, field separators and
-@cindex field separators, POSIX and
+@cindex field separator, POSIX and
According to the POSIX standard, @command{awk} is supposed to behave
as if each record is split into fields at the time it is read.
In particular, this means that if you change the value of @code{FS}
@@ -6798,7 +6908,7 @@ root:nSijPlPhZZwgE:0:0:Root:/:
@cindex POSIX @command{awk}, field separators and
-@cindex field separators, POSIX and
+@cindex field separator, POSIX and
According to the POSIX standard, @command{awk} is supposed to behave
as if each record is split into fields at the time it is read.
In particular, this means that if you change the value of @code{FS}
@@ -7158,6 +7268,7 @@ available for splitting regular strings (@pxref{String Functions}).
@node Multiple Line
@section Multiple-Line Records
+@cindex multiple-line records
@c STARTOFRANGE recm
@cindex records, multiline
@c STARTOFRANGE imr
@@ -7209,7 +7320,8 @@ after the last record, the final newline is removed from the record.
In the second case, this special processing is not done.
@value{DARKCORNER}
-@cindex field separators, in multiline records
+@cindex field separator, in multiline records
+@cindex @code{FS}, in multiline records
Now that the input is separated into records, the second step is to
separate the fields in the record. One way to do this is to divide each
of the lines into fields in the normal manner. This happens by default
@@ -7357,7 +7469,7 @@ and study the @code{getline} command @emph{after} you have reviewed the
rest of this @value{DOCUMENT} and have a good knowledge of how @command{awk} works.
@cindex @command{gawk}, @code{ERRNO} variable in
-@cindex @code{ERRNO} variable
+@cindex @code{ERRNO} variable, with @command{getline} command
@cindex differences in @command{awk} and @command{gawk}, @code{getline} command
@cindex @code{getline} command, return values
@cindex @option{--sandbox} option, input redirection with @code{getline}
@@ -7453,6 +7565,7 @@ rule in the program. @xref{Next Statement}.
@node Getline/Variable
@subsection Using @code{getline} into a Variable
+@cindex @code{getline} into a variable
@cindex variables, @code{getline} command into@comma{} using
You can use @samp{getline @var{var}} to read the next record from
@@ -7504,6 +7617,7 @@ the value of @code{NF} do not change.
@node Getline/File
@subsection Using @code{getline} from a File
+@cindex @code{getline} from a file
@cindex input redirection
@cindex redirection of input
@cindex @code{<} (left angle bracket), @code{<} operator (I/O)
@@ -7552,8 +7666,6 @@ from the file
@var{file}, and put it in the variable @var{var}. As above, @var{file}
is a string-valued expression that specifies the file from which to read.
-@cindex @command{gawk}, @code{RT} variable in
-@cindex @code{RT} variable
In this version of @code{getline}, none of the built-in variables are
changed and the record is not split into fields. The only variable
changed is @var{var}.@footnote{This is not quite true. @code{RT} could
@@ -7578,7 +7690,6 @@ Note here how the name of the extra input file is not built into
the program; it is taken directly from the data, specifically from the second field on
the @samp{@@include} line.
-@cindex @code{close()} function
The @code{close()} function is called to ensure that if two identical
@samp{@@include} lines appear in the input, the entire specified file is
included twice.
@@ -7595,6 +7706,7 @@ that does handle nested @samp{@@include} statements.
@subsection Using @code{getline} from a Pipe
@c From private email, dated October 2, 1988. Used by permission, March 2013.
+@cindex Kernighan, Brian
@quotation
@i{Omniscience has much to recommend it.
Failing that, attention to details would be useful.}
@@ -7604,7 +7716,7 @@ Failing that, attention to details would be useful.}
@cindex @code{|} (vertical bar), @code{|} operator (I/O)
@cindex vertical bar (@code{|}), @code{|} operator (I/O)
@cindex input pipeline
-@cindex pipes, input
+@cindex pipe, input
@cindex operators, input/output
The output of a command can also be piped into @code{getline}, using
@samp{@var{command} | getline}. In
@@ -7628,7 +7740,6 @@ produced by running the rest of the line as a shell command:
@end example
@noindent
-@cindex @code{close()} function
The @code{close()} function is called to ensure that if two identical
@samp{@@execute} lines appear in the input, the command is run for
each one.
@@ -7682,6 +7793,8 @@ because the concatenation operator is not parenthesized. You should
write it as @samp{(@w{"echo "} "date") | getline} if you want your program
to be portable to all @command{awk} implementations.
+@cindex Brian Kernighan's @command{awk}
+@cindex @command{mawk} utility
@quotation NOTE
Unfortunately, @command{gawk} has not been consistent in its treatment
of a construct like @samp{@w{"echo "} "date" | getline}.
@@ -8006,6 +8119,7 @@ indefinitely until some other process opens it for writing.
@node Command line directories
@section Directories On The Command Line
+@cindex differences in @command{awk} and @command{gawk}, command line directories
@cindex directories, command line
@cindex command line, directories on
@@ -8249,13 +8363,29 @@ program by using a new value of @code{OFS}.
@example
$ @kbd{awk 'BEGIN @{ OFS = ";"; ORS = "\n\n" @}}
-> @kbd{@{ print $1, $2 @}' BBS-list}
-@print{} aardvark;555-5553
-@print{}
-@print{} alpo-net;555-3412
-@print{}
-@print{} barfly;555-7685
-@dots{}
+> @kbd{@{ print $1, $2 @}' mail-list}
+@print{} Amelia;555-5553
+@print{}
+@print{} Anthony;555-3412
+@print{}
+@print{} Becky;555-7685
+@print{}
+@print{} Bill;555-1675
+@print{}
+@print{} Broderick;555-0542
+@print{}
+@print{} Camilla;555-2912
+@print{}
+@print{} Fabius;555-1234
+@print{}
+@print{} Julie;555-6699
+@print{}
+@print{} Martin;555-6480
+@print{}
+@print{} Samuel;555-3430
+@print{}
+@print{} Jean-Paul;555-2127
+@print{}
@end example
If the value of @code{ORS} does not contain a newline, the program's output
@@ -8277,7 +8407,7 @@ numbers can be formatted. The different format specifications are discussed
more fully in
@ref{Control Letters}.
-@cindex @code{sprintf()} function
+@cindexawkfunc{sprintf}
@cindex @code{OFMT} variable
@cindex output, format specifier@comma{} @code{OFMT}
The built-in variable @code{OFMT} contains the default format specification
@@ -8343,7 +8473,7 @@ parentheses are necessary if any of the item expressions use the @samp{>}
relational operator; otherwise, it can be confused with an output redirection
(@pxref{Redirection}).
-@cindex format strings
+@cindex format specifiers
The difference between @code{printf} and @code{print} is the @var{format}
argument. This is an expression whose value is taken as a string; it
specifies how to output each of the other arguments. It is called the
@@ -8729,30 +8859,30 @@ The following simple example shows
how to use @code{printf} to make an aligned table:
@example
-awk '@{ printf "%-10s %s\n", $1, $2 @}' BBS-list
+awk '@{ printf "%-10s %s\n", $1, $2 @}' mail-list
@end example
@noindent
This command
-prints the names of the bulletin boards (@code{$1}) in the file
-@file{BBS-list} as a string of 10 characters that are left-justified. It also
+prints the names of the people (@code{$1}) in the file
+@file{mail-list} as a string of 10 characters that are left-justified. It also
prints the phone numbers (@code{$2}) next on the line. This
produces an aligned two-column table of names and phone numbers,
as shown here:
@example
-$ @kbd{awk '@{ printf "%-10s %s\n", $1, $2 @}' BBS-list}
-@print{} aardvark 555-5553
-@print{} alpo-net 555-3412
-@print{} barfly 555-7685
-@print{} bites 555-1675
-@print{} camelot 555-0542
-@print{} core 555-2912
-@print{} fooey 555-1234
-@print{} foot 555-6699
-@print{} macfoo 555-6480
-@print{} sdace 555-3430
-@print{} sabafoo 555-2127
+$ @kbd{awk '@{ printf "%-10s %s\n", $1, $2 @}' mail-list}
+@print{} Amelia 555-5553
+@print{} Anthony 555-3412
+@print{} Becky 555-7685
+@print{} Bill 555-1675
+@print{} Broderick 555-0542
+@print{} Camilla 555-2912
+@print{} Fabius 555-1234
+@print{} Julie 555-6699
+@print{} Martin 555-6480
+@print{} Samuel 555-3430
+@print{} Jean-Paul 555-2127
@end example
In this case, the phone numbers had to be printed as strings because
@@ -8773,7 +8903,7 @@ the @command{awk} program:
@example
awk 'BEGIN @{ print "Name Number"
print "---- ------" @}
- @{ printf "%-10s %s\n", $1, $2 @}' BBS-list
+ @{ printf "%-10s %s\n", $1, $2 @}' mail-list
@end example
The above example mixes @code{print} and @code{printf} statements in
@@ -8783,7 +8913,7 @@ same results:
@example
awk 'BEGIN @{ printf "%-10s %s\n", "Name", "Number"
printf "%-10s %s\n", "----", "------" @}
- @{ printf "%-10s %s\n", $1, $2 @}' BBS-list
+ @{ printf "%-10s %s\n", $1, $2 @}' mail-list
@end example
@noindent
@@ -8798,7 +8928,7 @@ emphasized by storing it in a variable, like this:
awk 'BEGIN @{ format = "%-10s %s\n"
printf format, "Name", "Number"
printf format, "----", "------" @}
- @{ printf format, $1, $2 @}' BBS-list
+ @{ printf format, $1, $2 @}' mail-list
@end example
@c !!! exercise
@@ -8855,20 +8985,20 @@ before the first output is written to it. Subsequent writes to the same
@var{output-file} do not erase @var{output-file}, but append to it.
(This is different from how you use redirections in shell scripts.)
If @var{output-file} does not exist, it is created. For example, here
-is how an @command{awk} program can write a list of BBS names to one
+is how an @command{awk} program can write a list of peoples' names to one
file named @file{name-list}, and a list of phone numbers to another file
named @file{phone-list}:
@example
$ @kbd{awk '@{ print $2 > "phone-list"}
-> @kbd{print $1 > "name-list" @}' BBS-list}
+> @kbd{print $1 > "name-list" @}' mail-list}
$ @kbd{cat phone-list}
@print{} 555-5553
@print{} 555-3412
@dots{}
$ @kbd{cat name-list}
-@print{} aardvark
-@print{} alpo-net
+@print{} Amelia
+@print{} Anthony
@dots{}
@end example
@@ -8886,7 +9016,7 @@ appended to the file.
If @var{output-file} does not exist, then it is created.
@cindex @code{|} (vertical bar), @code{|} operator (I/O)
-@cindex pipes, output
+@cindex pipe, output
@cindex output, pipes
@item print @var{items} | @var{command}
It is possible to send output to another program through a pipe
@@ -8897,7 +9027,7 @@ to another process created to execute @var{command}.
The redirection argument @var{command} is actually an @command{awk}
expression. Its value is converted to a string whose contents give
the shell command to be run. For example, the following produces two
-files, one unsorted list of BBS names, and one list sorted in reverse
+files, one unsorted list of peoples' names, and one list sorted in reverse
alphabetical order:
@ignore
@@ -8910,7 +9040,7 @@ alone for now and let's hope no-one notices.
@example
awk '@{ print $1 > "names.unsorted"
command = "sort -r > names.sorted"
- print $1 | command @}' BBS-list
+ print $1 | command @}' mail-list
@end example
The unsorted list is written with an ordinary redirection, while
@@ -9158,9 +9288,9 @@ has been ported to, not just those that are POSIX-compliant:
@cindex extensions, common@comma{} @code{/dev/stdout} special file
@cindex extensions, common@comma{} @code{/dev/stderr} special file
@cindex file names, standard streams in @command{gawk}
-@cindex @code{/dev/@dots{}} special files (@command{gawk})
+@cindex @code{/dev/@dots{}} special files
@cindex files, @code{/dev/@dots{}} special files
-@cindex @code{/dev/fd/@var{N}} special files
+@cindex @code{/dev/fd/@var{N}} special files (@command{gawk})
@table @file
@item /dev/stdin
The standard input (file descriptor 0).
@@ -9261,7 +9391,7 @@ Doing so results in unpredictable behavior.
@c STARTOFRANGE ofc
@cindex output, files@comma{} closing
@c STARTOFRANGE pc
-@cindex pipes, closing
+@cindex pipe, closing
@c STARTOFRANGE cc
@cindex coprocesses, closing
@cindex @code{getline} command, coprocesses@comma{} using from
@@ -9279,7 +9409,7 @@ the file name or command associated with it, and subsequent
writes to the same file or command are appended to the previous writes.
The file or pipe stays open until @command{awk} exits.
-@cindex @code{close()} function
+@cindexawkfunc{close}
This implies that special steps are necessary in order to read the same
file again from the beginning, or to rerun a shell command (rather than
reading more output from the same command). The @code{close()} function
@@ -9364,6 +9494,7 @@ a separate message.
@cindex differences in @command{awk} and @command{gawk}, @code{close()} function
@cindex portability, @code{close()} function and
+@cindex @code{close()} function, portability
If you use more files than the system allows you to have open,
@command{gawk} attempts to multiplex the available open files among
your data files. @command{gawk}'s ability to do this depends upon the
@@ -9448,7 +9579,7 @@ retval = close(command) # syntax error in many Unix awks
@end example
@cindex @command{gawk}, @code{ERRNO} variable in
-@cindex @code{ERRNO} variable
+@cindex @code{ERRNO} variable, with @command{close()} function
@command{gawk} treats @code{close()} as a function.
The return value is @minus{}1 if the argument names something
that was never opened with a redirection, or if there is
@@ -9504,7 +9635,7 @@ retval = close(command) # syntax error in many Unix awks
@end example
@cindex @command{gawk}, @code{ERRNO} variable in
-@cindex @code{ERRNO} variable
+@cindex @code{ERRNO} variable, with @command{close()} function
@command{gawk} treats @code{close()} as a function.
The return value is @minus{}1 if the argument names something
that was never opened with a redirection, or if there is
@@ -9604,7 +9735,8 @@ have different forms, but are stored identically internally.
@node Scalar Constants
@subsubsection Numeric and String Constants
-@cindex numeric, constants
+@cindex constants, numeric
+@cindex numeric constants
A @dfn{numeric constant} stands for a number. This number can be an
integer, a decimal fraction, or a number in scientific (exponential)
notation.@footnote{The internal representation of all numbers,
@@ -9630,7 +9762,7 @@ double-quotation marks. For example:
@noindent
@cindex differences in @command{awk} and @command{gawk}, strings
-@cindex strings, length of
+@cindex strings, length limitations
represents the string whose contents are @samp{parrot}. Strings in
@command{gawk} can be of any length, and they can contain any of the possible
eight-bit ASCII characters including ASCII @sc{nul} (character code zero).
@@ -9846,9 +9978,9 @@ upon the contents of the current input record.
@cindex differences in @command{awk} and @command{gawk}, regexp constants
@cindex dark corner, regexp constants, as arguments to user-defined functions
-@cindex @code{gensub()} function (@command{gawk})
-@cindex @code{sub()} function
-@cindex @code{gsub()} function
+@cindexgawkfunc{gensub}
+@cindexawkfunc{sub}
+@cindexawkfunc{gsub}
Constant regular expressions are also used as the first argument for
the @code{gensub()}, @code{sub()}, and @code{gsub()} functions, as the
second argument of the @code{match()} function,
@@ -9981,7 +10113,7 @@ its position among the input file arguments---after the processing of the
preceding input file argument. For example:
@example
-awk '@{ print $n @}' n=4 inventory-shipped n=2 BBS-list
+awk '@{ print $n @}' n=4 inventory-shipped n=2 mail-list
@end example
@noindent
@@ -9990,10 +10122,10 @@ the first file is read, the command line sets the variable @code{n}
equal to four. This causes the fourth field to be printed in lines from
@file{inventory-shipped}. After the first file has finished,
but before the second file is started, @code{n} is set to two, so that the
-second field is printed in lines from @file{BBS-list}:
+second field is printed in lines from @file{mail-list}:
@example
-$ @kbd{awk '@{ print $n @}' n=4 inventory-shipped n=2 BBS-list}
+$ @kbd{awk '@{ print $n @}' n=4 inventory-shipped n=2 mail-list}
@print{} 15
@print{} 24
@dots{}
@@ -10316,9 +10448,9 @@ specific operator to represent it. Instead, concatenation is performed by
writing expressions next to one another, with no operator. For example:
@example
-$ @kbd{awk '@{ print "Field number one: " $1 @}' BBS-list}
-@print{} Field number one: aardvark
-@print{} Field number one: alpo-net
+$ @kbd{awk '@{ print "Field number one: " $1 @}' mail-list}
+@print{} Field number one: Amelia
+@print{} Field number one: Anthony
@dots{}
@end example
@@ -10326,9 +10458,9 @@ Without the space in the string constant after the @samp{:}, the line
runs together. For example:
@example
-$ @kbd{awk '@{ print "Field number one:" $1 @}' BBS-list}
-@print{} Field number one:aardvark
-@print{} Field number one:alpo-net
+$ @kbd{awk '@{ print "Field number one:" $1 @}' mail-list}
+@print{} Field number one:Amelia
+@print{} Field number one:Anthony
@dots{}
@end example
@@ -10345,6 +10477,8 @@ name = "name"
print "something meaningful" > file name
@end example
+@cindex Brian Kernighan's @command{awk}
+@cindex @command{mawk} utility
@noindent
This produces a syntax error with some versions of Unix
@command{awk}.@footnote{It happens that Brian Kernighan's
@@ -11401,10 +11535,10 @@ The Boolean operators are:
@item @var{boolean1} && @var{boolean2}
True if both @var{boolean1} and @var{boolean2} are true. For example,
the following statement prints the current input record if it contains
-both @samp{2400} and @samp{foo}:
+both @samp{edu} and @samp{li}:
@example
-if ($0 ~ /2400/ && $0 ~ /foo/) print
+if ($0 ~ /edu/ && $0 ~ /li/) print
@end example
@cindex side effects, Boolean operators
@@ -11417,11 +11551,11 @@ no substring @samp{foo} in the record.
@item @var{boolean1} || @var{boolean2}
True if at least one of @var{boolean1} or @var{boolean2} is true.
For example, the following statement prints all records in the input
-that contain @emph{either} @samp{2400} or
-@samp{foo} or both:
+that contain @emph{either} @samp{edu} or
+@samp{li} or both:
@example
-if ($0 ~ /2400/ || $0 ~ /foo/) print
+if ($0 ~ /edu/ || $0 ~ /li/) print
@end example
The subexpression @var{boolean2} is evaluated only if @var{boolean1}
@@ -12016,7 +12150,7 @@ slashes (@code{/@var{regexp}/}), or any expression whose string value
is used as a dynamic regular expression
(@pxref{Computed Regexps}).
The following example prints the second field of each input record
-whose first field is precisely @samp{foo}:
+whose first field is precisely @samp{li}:
@cindex @code{/} (forward slash), patterns and
@cindex forward slash (@code{/}), patterns and
@@ -12025,68 +12159,65 @@ whose first field is precisely @samp{foo}:
@cindex @code{!} (exclamation point), @code{!~} operator
@cindex exclamation point (@code{!}), @code{!~} operator
@example
-$ @kbd{awk '$1 == "foo" @{ print $2 @}' BBS-list}
+$ @kbd{awk '$1 == "li" @{ print $2 @}' mail-list}
@end example
@noindent
-(There is no output, because there is no BBS site with the exact name @samp{foo}.)
+(There is no output, because there is no person with the exact name @samp{li}.)
Contrast this with the following regular expression match, which
-accepts any record with a first field that contains @samp{foo}:
+accepts any record with a first field that contains @samp{li}:
@example
-$ @kbd{awk '$1 ~ /foo/ @{ print $2 @}' BBS-list}
-@print{} 555-1234
+$ @kbd{awk '$1 ~ /foo/ @{ print $2 @}' mail-list}
+@print{} 555-5553
@print{} 555-6699
-@print{} 555-6480
-@print{} 555-2127
@end example
@cindex regexp constants, as patterns
@cindex patterns, regexp constants as
A regexp constant as a pattern is also a special case of an expression
-pattern. The expression @code{/foo/} has the value one if @samp{foo}
-appears in the current input record. Thus, as a pattern, @code{/foo/}
-matches any record containing @samp{foo}.
+pattern. The expression @code{/li/} has the value one if @samp{li}
+appears in the current input record. Thus, as a pattern, @code{/li/}
+matches any record containing @samp{li}.
@cindex Boolean expressions, as patterns
Boolean expressions are also commonly used as patterns.
Whether the pattern
matches an input record depends on whether its subexpressions match.
For example, the following command prints all the records in
-@file{BBS-list} that contain both @samp{2400} and @samp{foo}:
+@file{mail-list} that contain both @samp{edu} and @samp{li}:
@example
-$ @kbd{awk '/2400/ && /foo/' BBS-list}
-@print{} fooey 555-1234 2400/1200/300 B
+$ @kbd{awk '/edu/ && /li/' mail-list}
+@print{} Samuel 555-3430 samuel.lanceolis@@shu.edu A
@end example
The following command prints all records in
-@file{BBS-list} that contain @emph{either} @samp{2400} or @samp{foo}
+@file{mail-list} that contain @emph{either} @samp{edu} or @samp{li}
(or both, of course):
@example
-$ @kbd{awk '/2400/ || /foo/' BBS-list}
-@print{} alpo-net 555-3412 2400/1200/300 A
-@print{} bites 555-1675 2400/1200/300 A
-@print{} fooey 555-1234 2400/1200/300 B
-@print{} foot 555-6699 1200/300 B
-@print{} macfoo 555-6480 1200/300 A
-@print{} sdace 555-3430 2400/1200/300 A
-@print{} sabafoo 555-2127 1200/300 C
+$ @kbd{awk '/edu/ || /li/' mail-list}
+@print{} Amelia 555-5553 amelia.zodiacusque@@gmail.com F
+@print{} Broderick 555-0542 broderick.aliquotiens@@yahoo.com R
+@print{} Fabius 555-1234 fabius.undevicesimus@@ucb.edu F
+@print{} Julie 555-6699 julie.perscrutabor@@skeeve.com F
+@print{} Samuel 555-3430 samuel.lanceolis@@shu.edu A
+@print{} Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
@end example
The following command prints all records in
-@file{BBS-list} that do @emph{not} contain the string @samp{foo}:
+@file{mail-list} that do @emph{not} contain the string @samp{li}:
@example
-$ @kbd{awk '! /foo/' BBS-list}
-@print{} aardvark 555-5553 1200/300 B
-@print{} alpo-net 555-3412 2400/1200/300 A
-@print{} barfly 555-7685 1200/300 A
-@print{} bites 555-1675 2400/1200/300 A
-@print{} camelot 555-0542 300 C
-@print{} core 555-2912 1200/300 C
-@print{} sdace 555-3430 2400/1200/300 A
+$ @kbd{awk '! /li/' mail-list}
+@print{} Anthony 555-3412 anthony.asserturo@@hotmail.com A
+@print{} Becky 555-7685 becky.algebrarum@@gmail.com A
+@print{} Bill 555-1675 bill.drowning@@hotmail.com A
+@print{} Camilla 555-2912 camilla.infusarum@@skynet.be R
+@print{} Fabius 555-1234 fabius.undevicesimus@@ucb.edu F
+@print{} Martin 555-6480 martin.codicibus@@hotmail.com A
+@print{} Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
@end example
@cindex @code{BEGIN} pattern, Boolean patterns and
@@ -12190,6 +12321,11 @@ $ @kbd{echo Yes | gawk '(/1/,/2/) || /Yes/'}
@error{} gawk: cmd. line:1: ^ syntax error
@end example
+@cindex range patterns, line continuation and
+As a minor point of interest, although it is poor style,
+POSIX allows you to put a newline after the comma in
+a range pattern. @value{DARKCORNER}
+
@node BEGIN/END
@subsection The @code{BEGIN} and @code{END} Special Patterns
@@ -12214,28 +12350,30 @@ programmers.
@node Using BEGIN/END
@subsubsection Startup and Cleanup Actions
+@cindex @code{BEGIN} pattern
+@cindex @code{END} pattern
A @code{BEGIN} rule is executed once only, before the first input record
is read. Likewise, an @code{END} rule is executed once only, after all the
input is read. For example:
@example
$ @kbd{awk '}
-> @kbd{BEGIN @{ print "Analysis of \"foo\"" @}}
-> @kbd{/foo/ @{ ++n @}}
-> @kbd{END @{ print "\"foo\" appears", n, "times." @}' BBS-list}
-@print{} Analysis of "foo"
-@print{} "foo" appears 4 times.
+> @kbd{BEGIN @{ print "Analysis of \"li\"" @}}
+> @kbd{/li/ @{ ++n @}}
+> @kbd{END @{ print "\"li\" appears in", n, "records." @}' mail-list}
+@print{} Analysis of "li"
+@print{} "li" appears in 4 records.
@end example
@cindex @code{BEGIN} pattern, operators and
@cindex @code{END} pattern, operators and
-This program finds the number of records in the input file @file{BBS-list}
-that contain the string @samp{foo}. The @code{BEGIN} rule prints a title
+This program finds the number of records in the input file @file{mail-list}
+that contain the string @samp{li}. The @code{BEGIN} rule prints a title
for the report. There is no need to use the @code{BEGIN} rule to
initialize the counter @code{n} to zero, since @command{awk} does this
automatically (@pxref{Variables}).
The second rule increments the variable @code{n} every time a
-record containing the pattern @samp{foo} is read. The @code{END} rule
+record containing the pattern @samp{li} is read. The @code{END} rule
prints the value of @code{n} at the end of the run.
The special patterns @code{BEGIN} and @code{END} cannot be used in ranges
@@ -12288,6 +12426,7 @@ to give @code{$0} a real value is to execute a @code{getline} command
without a variable (@pxref{Getline}).
Another way is simply to assign a value to @code{$0}.
+@cindex Brian Kernighan's @command{awk}
@cindex differences in @command{awk} and @command{gawk}, @code{BEGIN}/@code{END} patterns
@cindex POSIX @command{awk}, @code{BEGIN}/@code{END} patterns
@cindex @code{print} statement, @code{BEGIN}/@code{END} patterns and
@@ -12356,7 +12495,7 @@ you can bypass the fatal error and move on to the next file on the
command line.
@cindex @command{gawk}, @code{ERRNO} variable in
-@cindex @code{ERRNO} variable
+@cindex @code{ERRNO} variable, with @code{BEGINFILE} pattern
@cindex @code{nextfile} statement, @code{BEGINFILE}/@code{ENDFILE} patterns and
You do this by checking if the @code{ERRNO} variable is not the empty
string; if so, then @command{gawk} was not able to open the file. In
@@ -12398,7 +12537,7 @@ both @code{BEGINFILE} and @code{ENDFILE}. Only the @samp{getline
In most other @command{awk} implementations, or if @command{gawk} is in
compatibility mode (@pxref{Options}), they are not special.
-@c FIXME: For 4.1 maybe deal with this?
+@c FIXME: For 4.2 maybe deal with this?
@ignore
Date: Tue, 17 May 2011 02:06:10 PDT
From: rankin@pactechdata.com (Pat Rankin)
@@ -12429,7 +12568,7 @@ An empty (i.e., nonexistent) pattern is considered to match @emph{every}
input record. For example, the program:
@example
-awk '@{ print $1 @}' BBS-list
+awk '@{ print $1 @}' mail-list
@end example
@noindent
@@ -12682,6 +12821,7 @@ the first thing on its line.
@subsection The @code{while} Statement
@cindex @code{while} statement
@cindex loops
+@cindex loops, @code{while}
@cindex loops, See Also @code{while} statement
In programming, a @dfn{loop} is a part of a program that can
@@ -12742,6 +12882,7 @@ program is harder to read without it.
@node Do Statement
@subsection The @code{do}-@code{while} Statement
@cindex @code{do}-@code{while} statement
+@cindex loops, @code{do}-@code{while}
The @code{do} loop is a variation of the @code{while} looping statement.
The @code{do} loop executes the @var{body} once and then repeats the
@@ -12787,6 +12928,7 @@ occasionally is there a real use for a @code{do} statement.
@node For Statement
@subsection The @code{for} Statement
@cindex @code{for} statement
+@cindex loops, @code{for}, iterative
The @code{for} statement makes it more convenient to count iterations of a
loop. The general form of the @code{for} statement looks like this:
@@ -12893,6 +13035,8 @@ for more information on this version of the @code{for} loop.
@cindex @code{case} keyword
@cindex @code{default} keyword
+This @value{SECTION} describes a @command{gawk}-specific feature.
+
The @code{switch} statement allows the evaluation of an expression and
the execution of statements based on a @code{case} match. Case statements
are checked for a match in the order they are defined. If no suitable
@@ -12957,6 +13101,7 @@ it is not available.
@subsection The @code{break} Statement
@cindex @code{break} statement
@cindex loops, exiting
+@cindex loops, @code{break} statement and
The @code{break} statement jumps out of the innermost @code{for},
@code{while}, or @code{do} loop that encloses it. The following example
@@ -13016,6 +13161,7 @@ This is discussed in @ref{Switch Statement}.
@cindex POSIX @command{awk}, @code{break} statement and
@cindex dark corner, @code{break} statement
@cindex @command{gawk}, @code{break} statement in
+@cindex Brian Kernighan's @command{awk}
The @code{break} statement has no meaning when
used outside the body of a loop or @code{switch}.
However, although it was never documented,
@@ -13080,6 +13226,7 @@ This program loops forever once @code{x} reaches 5.
@cindex POSIX @command{awk}, @code{continue} statement and
@cindex dark corner, @code{continue} statement
@cindex @command{gawk}, @code{continue} statement in
+@cindex Brian Kernighan's @command{awk}
The @code{continue} statement has no special meaning with respect to the
@code{switch} statement, nor does it have any meaning when used outside the
body of a loop. Historical versions of @command{awk} treated a @code{continue}
@@ -13217,8 +13364,10 @@ See @uref{http://austingroupbugs.net/view.php?id=607, the Austin Group website}.
@cindex functions, user-defined, @code{next}/@code{nextfile} statements and
@cindex @code{nextfile} statement, user-defined functions and
-The current version of the Brian Kernighan's @command{awk} (@pxref{Other
-Versions}) also supports @code{nextfile}. However, it doesn't allow the
+@cindex Brian Kernighan's @command{awk}
+@cindex @command{mawk} utility
+The current version of the Brian Kernighan's @command{awk}, and @command{mawk} (@pxref{Other
+Versions}) also support @code{nextfile}. However, they don't allow the
@code{nextfile} statement inside function bodies (@pxref{User-defined}).
@command{gawk} does; a @code{nextfile} inside a function body reads the
next record and starts processing it with the first rule in the program,
@@ -13455,8 +13604,8 @@ is to simply say @samp{FS = FS}, perhaps with an explanatory comment.
@cindex @command{gawk}, @code{IGNORECASE} variable in
@cindex @code{IGNORECASE} variable
@cindex differences in @command{awk} and @command{gawk}, @code{IGNORECASE} variable
-@cindex case sensitivity, string comparisons and
-@cindex case sensitivity, regexps and
+@cindex case sensitivity, and string comparisons
+@cindex case sensitivity, and regexps
@cindex regular expressions, case sensitivity
@item IGNORECASE #
If @code{IGNORECASE} is nonzero or non-null, then all string comparisons
@@ -13621,16 +13770,16 @@ In the following example:
$ @kbd{awk 'BEGIN @{}
> @kbd{for (i = 0; i < ARGC; i++)}
> @kbd{print ARGV[i]}
-> @kbd{@}' inventory-shipped BBS-list}
+> @kbd{@}' inventory-shipped mail-list}
@print{} awk
@print{} inventory-shipped
-@print{} BBS-list
+@print{} mail-list
@end example
@noindent
@code{ARGV[0]} contains @samp{awk}, @code{ARGV[1]}
contains @samp{inventory-shipped}, and @code{ARGV[2]} contains
-@samp{BBS-list}. The value of @code{ARGC} is three, one more than the
+@samp{mail-list}. The value of @code{ARGC} is three, one more than the
index of the last element in @code{ARGV}, because the elements are numbered
from zero.
@@ -13673,7 +13822,7 @@ or if @command{gawk} is in compatibility mode
it is not special.
@cindex @code{ENVIRON} array
-@cindex environment variables
+@cindex environment variables, in @code{ENVIRON} array
@item ENVIRON
An associative array containing the values of the environment. The array
indices are the environment variable names; the elements are the values of
@@ -13796,10 +13945,12 @@ The following elements (listed alphabetically)
are guaranteed to be available:
@table @code
+@cindex effective group ID of @command{gawk} user
@item PROCINFO["egid"]
The value of the @code{getegid()} system call.
@item PROCINFO["euid"]
+@cindex effective user ID of @command{gawk} user
The value of the @code{geteuid()} system call.
@item PROCINFO["FS"]
@@ -13809,6 +13960,7 @@ This is
or @code{"FPAT"} if field matching with @code{FPAT} is in effect.
@item PROCINFO["identifiers"]
+@cindex program identifiers
A subarray, indexed by the names of all identifiers used in the
text of the AWK program. For each identifier, the value of the element is one of the following:
@@ -13837,15 +13989,19 @@ after it has finished parsing the program; they are @emph{not} updated
while the program runs.
@item PROCINFO["gid"]
+@cindex group ID of @command{gawk} user
The value of the @code{getgid()} system call.
@item PROCINFO["pgrpid"]
+@cindex process group idIDof @command{gawk} process
The process group ID of the current process.
@item PROCINFO["pid"]
+@cindex process ID of @command{gawk} process
The process ID of the current process.
@item PROCINFO["ppid"]
+@cindex parent process ID of @command{gawk} process
The parent process ID of the current process.
@item PROCINFO["sorted_in"]
@@ -13865,25 +14021,31 @@ Assigning a new value to this element changes the default.
The value of the @code{getuid()} system call.
@item PROCINFO["version"]
+@cindex version of @command{gawk}
+@cindex @command{gawk} version
The version of @command{gawk}.
@end table
The following additional elements in the array
are available to provide information about the MPFR and GMP libraries
if your version of @command{gawk} supports arbitrary precision numbers
-(@pxref{Arbitrary Precision Arithmetic}):
+(@pxref{Gawk and MPFR}):
@table @code
+@cindex version of GNU MPFR library
@item PROCINFO["mpfr_version"]
The version of the GNU MPFR library.
@item PROCINFO["gmp_version"]
+@cindex version of GNU MP library
The version of the GNU MP library.
@item PROCINFO["prec_max"]
+@cindex maximum precision supported by MPFR library
The maximum precision supported by MPFR.
@item PROCINFO["prec_min"]
+@cindex minimum precision supported by MPFR library
The minimum precision required by MPFR.
@end table
@@ -13894,12 +14056,15 @@ of @command{gawk} supports dynamic loading of extension functions
@table @code
@item PROCINFO["api_major"]
+@cindex version of @command{gawk} extension API
+@cindex extension API, version number
The major version of the extension API.
@item PROCINFO["api_minor"]
The minor version of the extension API.
@end table
+@cindex supplementary groups of @command{gawk} process
On some systems, there may be elements in the array, @code{"group1"}
through @code{"group@var{N}"} for some @var{N}. @var{N} is the number of
supplementary groups that the process has. Use the @code{in} operator
@@ -13907,7 +14072,7 @@ to test for these elements
(@pxref{Reference to Elements}).
@cindex @command{gawk}, @code{PROCINFO} array in
-@cindex @code{PROCINFO} array
+@cindex @code{PROCINFO} array, uses
The @code{PROCINFO} array has the following additional uses:
@itemize @bullet
@@ -13979,7 +14144,7 @@ if an element in @code{SYMTAB} is an array.
Also, you may not use the @code{delete} statement with the
@code{SYMTAB} array.
-You may use an index for @code{SYMTAB} that is not a predefined identifer:
+You may use an index for @code{SYMTAB} that is not a predefined identifier:
@example
SYMTAB["xxx"] = 5
@@ -14093,7 +14258,7 @@ changed.
@node ARGC and ARGV
@subsection Using @code{ARGC} and @code{ARGV}
-@cindex @code{ARGC}/@code{ARGV} variables
+@cindex @code{ARGC}/@code{ARGV} variables, how to use
@cindex arguments, command-line
@cindex command line, arguments
@@ -14105,16 +14270,16 @@ and @code{ARGV}:
$ @kbd{awk 'BEGIN @{}
> @kbd{for (i = 0; i < ARGC; i++)}
> @kbd{print ARGV[i]}
-> @kbd{@}' inventory-shipped BBS-list}
+> @kbd{@}' inventory-shipped mail-list}
@print{} awk
@print{} inventory-shipped
-@print{} BBS-list
+@print{} mail-list
@end example
@noindent
In this example, @code{ARGV[0]} contains @samp{awk}, @code{ARGV[1]}
contains @samp{inventory-shipped}, and @code{ARGV[2]} contains
-@samp{BBS-list}.
+@samp{mail-list}.
Notice that the @command{awk} program is not entered in @code{ARGV}. The
other command-line options, with their arguments, are also not
entered. This includes variable assignments done with the @option{-v}
@@ -14238,7 +14403,7 @@ ability to support true multidimensional arrays.
@cindex variables, names of
@cindex functions, names of
-@cindex arrays, names of
+@cindex arrays, names of, and names of functions/variables
@cindex names, arrays/variables
@cindex namespace issues
@command{awk} maintains a single set
@@ -14414,10 +14579,9 @@ Here, the number @code{1} isn't double-quoted, since @command{awk}
automatically converts it to a string.
@cindex @command{gawk}, @code{IGNORECASE} variable in
-@cindex @code{IGNORECASE} variable
@cindex case sensitivity, array indices and
-@cindex arrays, @code{IGNORECASE} variable and
-@cindex @code{IGNORECASE} variable, array subscripts and
+@cindex arrays, and @code{IGNORECASE} variable
+@cindex @code{IGNORECASE} variable, and array indices
The value of @code{IGNORECASE} has no effect upon array subscripting.
The identical string value used to store an array element must be used
to retrieve it.
@@ -14433,8 +14597,9 @@ is independent of the number of elements in the array.
@node Reference to Elements
@subsection Referring to an Array Element
-@cindex arrays, elements, referencing
-@cindex elements in arrays
+@cindex arrays, referencing elements
+@cindex array members
+@cindex elements of arrays
The principal way to use an array is to refer to one of its elements.
An array reference is an expression as follows:
@@ -14451,11 +14616,16 @@ The value of the array reference is the current value of that array
element. For example, @code{foo[4.3]} is an expression for the element
of array @code{foo} at index @samp{4.3}.
+@cindex arrays, unassigned elements
+@cindex unassigned array elements
+@cindex empty array elements
A reference to an array element that has no recorded value yields a value of
@code{""}, the null string. This includes elements
that have not been assigned any value as well as elements that have been
deleted (@pxref{Delete}).
+@cindex non-existent array elements
+@cindex arrays, elements that don't exist
@quotation NOTE
A reference to an element that does not exist @emph{automatically} creates
that array element, with the null string as its value. (In some cases,
@@ -14475,7 +14645,7 @@ if it didn't exist before!
@end quotation
@c @cindex arrays, @code{in} operator and
-@cindex @code{in} operator
+@cindex @code{in} operator, testing if array element exists
To determine whether an element exists in an array at a certain index, use
the following expression:
@@ -14510,8 +14680,8 @@ if (frequencies[2] != "")
@node Assigning Elements
@subsection Assigning Array Elements
-@cindex arrays, elements, assigning
-@cindex elements in arrays, assigning
+@cindex arrays, elements, assigning values
+@cindex elements in arrays, assigning values
Array elements can be assigned values just like
@command{awk} variables:
@@ -14528,6 +14698,7 @@ assign to that element of the array.
@node Array Example
@subsection Basic Array Example
+@cindex arrays, an example of using
The following program takes a list of lines, each beginning with a line
number, and prints them out in order of line number. The line numbers
@@ -14597,7 +14768,9 @@ END @{
@node Scanning an Array
@subsection Scanning All Elements of an Array
@cindex elements in arrays, scanning
+@cindex scanning arrays
@cindex arrays, scanning
+@cindex loops, @code{for}, array scanning
In programs that use arrays, it is often necessary to use a loop that
executes once for each element of an array. In other languages, where
@@ -14614,7 +14787,7 @@ for (@var{var} in @var{array})
@end example
@noindent
-@cindex @code{in} operator
+@cindex @code{in} operator, use in loops
This loop executes @var{body} once for each index in @var{array} that the
program has previously used, with the variable @var{var} set to that index.
@@ -14653,8 +14826,9 @@ END @{
@xref{Word Sorting},
for a more detailed example of this type.
-@cindex arrays, elements, order of
-@cindex elements in arrays, order of
+@cindex arrays, elements, order of access by @code{in} operator
+@cindex elements in arrays, order of access by @code{in} operator
+@cindex @code{in} operator, order of array access
The order in which elements of the array are accessed by this statement
is determined by the internal arrangement of the array elements within
@command{awk} and normally cannot be controlled or changed. This can lead to
@@ -14672,6 +14846,8 @@ determines the order in which the array is traversed.
This order is usually based on the internal implementation of arrays
and will vary from one version of @command{awk} to the next.
+@cindex array scanning order, controlling
+@cindex controlling array scanning order
Often, though, you may wish to do something simple, such as
``traverse the array by comparing the indices in ascending order,''
or ``traverse the array by comparing the values in descending order.''
@@ -14688,6 +14864,7 @@ to use for comparison of array elements. This advanced feature
is described later, in @ref{Array Sorting}.
@end itemize
+@cindex @code{PROCINFO}, values of @code{sorted_in}
The following special values for @code{PROCINFO["sorted_in"]} are available:
@table @code
@@ -14848,7 +15025,7 @@ if (4 in foo)
print "This will never be printed"
@end example
-@cindex null strings, array elements and
+@cindex null strings, and deleting array elements
It is important to note that deleting an element is @emph{not} the
same as assigning it a null value (the empty string, @code{""}).
For example:
@@ -14870,6 +15047,7 @@ is not in the array is deleted.
@cindex extensions, common@comma{} @code{delete} to delete entire arrays
@cindex arrays, deleting entire contents
@cindex deleting entire arrays
+@cindex @code{delete} @var{array}
@cindex differences in @command{awk} and @command{gawk}, array elements, deleting
All the elements of an array may be deleted with a single statement
by leaving off the subscript in the @code{delete} statement,
@@ -14884,6 +15062,7 @@ Using this version of the @code{delete} statement is about three times
more efficient than the equivalent loop that deletes each element one
at a time.
+@cindex Brian Kernighan's @command{awk}
@quotation NOTE
For many years,
using @code{delete} without a subscript was a @command{gawk} extension.
@@ -14926,9 +15105,9 @@ a = 3
@section Using Numbers to Subscript Arrays
@cindex numbers, as array subscripts
-@cindex arrays, subscripts
+@cindex arrays, numeric subscripts
@cindex subscripts in arrays, numbers as
-@cindex @code{CONVFMT} variable, array subscripts and
+@cindex @code{CONVFMT} variable, and array subscripts
An important aspect to remember about arrays is that @emph{array subscripts
are always strings}. When a numeric value is used as a subscript,
it is converted to a string value before being used for subscripting
@@ -14958,7 +15137,8 @@ string value from @code{xyz}---this time @code{"12.15"}---because the value of
@code{CONVFMT} only allows two significant digits. This test fails,
since @code{"12.15"} is different from @code{"12.153"}.
-@cindex converting, during subscripting
+@cindex converting integer array subscripts
+@cindex integer array indices
According to the rules for conversions
(@pxref{Conversion}), integer
values are always converted to strings as integers, no matter what the
@@ -15064,7 +15244,7 @@ languages, including @command{awk}) to refer to an element of a
two-dimensional array named @code{grid} is with
@code{grid[@var{x},@var{y}]}.
-@cindex @code{SUBSEP} variable, multidimensional arrays
+@cindex @code{SUBSEP} variable, and multidimensional arrays
Multidimensional arrays are supported in @command{awk} through
concatenation of indices into one string.
@command{awk} converts the indices into strings
@@ -15096,6 +15276,7 @@ combined strings that are ambiguous. Suppose that @code{SUBSEP} is
"b@@c"]}} are indistinguishable because both are actually
stored as @samp{foo["a@@b@@c"]}.
+@cindex @code{in} operator, index existence in multidimensional arrays
To test whether a particular index sequence exists in a
multidimensional array, use the same operator (@code{in}) that is
used for single dimensional arrays. Write the whole sequence of indices
@@ -15161,6 +15342,7 @@ multidimensional @emph{way of accessing} an array.
@cindex subscripts in arrays, multidimensional, scanning
@cindex arrays, multidimensional, scanning
+@cindex scanning multidimensional arrays
However, if your program has an array that is always accessed as
multidimensional, you can get the effect of scanning it by combining
the scanning @code{for} statement
@@ -15202,6 +15384,7 @@ separate indices is recovered.
@node Arrays of Arrays
@section Arrays of Arrays
+@cindex arrays of arrays
@command{gawk} goes beyond standard @command{awk}'s multidimensional
array access and provides true arrays of
@@ -15461,6 +15644,7 @@ two arguments 11 and 10.
@node Numeric Functions
@subsection Numeric Functions
+@cindex numeric functions
The following list describes all of
the built-in functions that work with numbers.
@@ -15468,22 +15652,26 @@ Optional parameters are enclosed in square brackets@w{ ([ ]):}
@table @code
@item atan2(@var{y}, @var{x})
-@cindex @code{atan2()} function
+@cindexawkfunc{atan2}
+@cindex arctangent
Return the arctangent of @code{@var{y} / @var{x}} in radians.
You can use @samp{pi = atan2(0, -1)} to retrieve the value of @value{PI}.
@item cos(@var{x})
-@cindex @code{cos()} function
+@cindexawkfunc{cos}
+@cindex cosine
Return the cosine of @var{x}, with @var{x} in radians.
@item exp(@var{x})
-@cindex @code{exp()} function
+@cindexawkfunc{exp}
+@cindex exponent
Return the exponential of @var{x} (@code{e ^ @var{x}}) or report
an error if @var{x} is out of range. The range of values @var{x} can have
depends on your machine's floating-point representation.
@item int(@var{x})
-@cindex @code{int()} function
+@cindexawkfunc{int}
+@cindex round to nearest integer
Return the nearest integer to @var{x}, located between @var{x} and zero and
truncated toward zero.
@@ -15491,12 +15679,13 @@ For example, @code{int(3)} is 3, @code{int(3.9)} is 3, @code{int(-3.9)}
is @minus{}3, and @code{int(-3)} is @minus{}3 as well.
@item log(@var{x})
-@cindex @code{log()} function
+@cindexawkfunc{log}
+@cindex logarithm
Return the natural logarithm of @var{x}, if @var{x} is positive;
otherwise, report an error.
@item rand()
-@cindex @code{rand()} function
+@cindexawkfunc{rand}
@cindex random numbers, @code{rand()}/@code{srand()} functions
Return a random number. The values of @code{rand()} are
uniformly distributed between zero and one.
@@ -15538,7 +15727,7 @@ function roll(n) @{ return 1 + int(rand() * n) @}
@}
@end example
-@cindex numbers, random
+@cindex seeding random number generator
@cindex random numbers, seed of
@quotation CAUTION
In most @command{awk} implementations, including @command{gawk},
@@ -15554,17 +15743,19 @@ use @code{srand()}.
@end quotation
@item sin(@var{x})
-@cindex @code{sin()} function
+@cindexawkfunc{sin}
+@cindex sine
Return the sine of @var{x}, with @var{x} in radians.
@item sqrt(@var{x})
-@cindex @code{sqrt()} function
+@cindexawkfunc{sqrt}
+@cindex square root
Return the positive square root of @var{x}.
@command{gawk} prints a warning message
if @var{x} is negative. Thus, @code{sqrt(4)} is 2.
@item srand(@r{[}@var{x}@r{]})
-@cindex @code{srand()} function
+@cindexawkfunc{srand}
Set the starting point, or seed,
for generating random numbers to the value @var{x}.
@@ -15594,6 +15785,7 @@ sequences of random numbers.
@node String Functions
@subsection String-Manipulation Functions
+@cindex string-manipulation functions
The functions in this @value{SECTION} look at or change the text of one
or more strings.
@@ -15622,11 +15814,11 @@ pound sign@w{ (@samp{#}):}
@table @code
@item asort(@var{source} @r{[}, @var{dest} @r{[}, @var{how} @r{]} @r{]}) #
@itemx asorti(@var{source} @r{[}, @var{dest} @r{[}, @var{how} @r{]} @r{]}) #
-@cindex @code{asorti()} function (@command{gawk})
+@cindexgawkfunc{asorti}
+@cindex sort array
@cindex arrays, elements, retrieving number of
-@cindex @code{asort()} function (@command{gawk})
-@cindex @command{gawk}, @code{IGNORECASE} variable in
-@cindex @code{IGNORECASE} variable
+@cindexgawkfunc{asort}
+@cindex sort array indices
These two functions are similar in behavior, so they are described
together.
@@ -15644,7 +15836,9 @@ sequential integers starting with one. If the optional array @var{dest}
is specified, then @var{source} is duplicated into @var{dest}. @var{dest}
is then sorted, leaving the indices of @var{source} unchanged.
-When comparing strings, @code{IGNORECASE} affects the sorting. If the
+@cindex @command{gawk}, @code{IGNORECASE} variable in
+When comparing strings, @code{IGNORECASE} affects the sorting
+(@pxref{Array Sorting Functions}). If the
@var{source} array contains subarrays as values (@pxref{Arrays of
Arrays}), they will come last, after all scalar values.
@@ -15687,7 +15881,9 @@ a[3] = "middle"
are not available in compatibility mode (@pxref{Options}).
@item gensub(@var{regexp}, @var{replacement}, @var{how} @r{[}, @var{target}@r{]}) #
-@cindex @code{gensub()} function (@command{gawk})
+@cindexgawkfunc{gensub}
+@cindex search and replace in strings
+@cindex substitute in string
Search the target string @var{target} for matches of the regular
expression @var{regexp}. If @var{how} is a string beginning with
@samp{g} or @samp{G} (short for ``global''), then replace all matches of @var{regexp} with
@@ -15696,7 +15892,7 @@ which match of @var{regexp} to replace. If no @var{target} is supplied,
use @code{$0}. It returns the modified string as the result
of the function and the original target string is @emph{not} changed.
-@code{gensub()} is a general substitution function. It's purpose is
+@code{gensub()} is a general substitution function. Its purpose is
to provide more features than the standard @code{sub()} and @code{gsub()}
functions.
@@ -15750,7 +15946,7 @@ is the original unchanged value of @var{target}.
in compatibility mode (@pxref{Options}).
@item gsub(@var{regexp}, @var{replacement} @r{[}, @var{target}@r{]})
-@cindex @code{gsub()} function
+@cindexawkfunc{gsub}
Search @var{target} for
@emph{all} of the longest, leftmost, @emph{nonoverlapping} matching
substrings it can find and replace them with @var{replacement}.
@@ -15772,8 +15968,9 @@ As in @code{sub()}, the characters @samp{&} and @samp{\} are special,
and the third argument must be assignable.
@item index(@var{in}, @var{find})
-@cindex @code{index()} function
-@cindex searching
+@cindexawkfunc{index}
+@cindex search in string
+@cindex find substring in string
Search the string @var{in} for the first occurrence of the string
@var{find}, and return the position in characters where that occurrence
begins in the string @var{in}. Consider the following example:
@@ -15790,7 +15987,9 @@ If @var{find} is not found, @code{index()} returns zero.
It is a fatal error to use a regexp constant for @var{find}.
@item length(@r{[}@var{string}@r{]})
-@cindex @code{length()} function
+@cindexawkfunc{length}
+@cindex string length
+@cindex length of string
Return the number of characters in @var{string}. If
@var{string} is a number, the length of the digit string representing
that number is returned. For example, @code{length("abcde")} is five. By
@@ -15798,6 +15997,8 @@ contrast, @code{length(15 * 35)} works out to three. In this example, 15 * 35 =
525, and 525 is then converted to the string @code{"525"}, which has
three characters.
+@cindex length of input record
+@cindex input record, length of
If no argument is supplied, @code{length()} returns the length of @code{$0}.
@c @cindex historical features
@@ -15836,6 +16037,8 @@ warning about this.
@cindex common extensions, @code{length()} applied to an array
@cindex extensions, common@comma{} @code{length()} applied to an array
@cindex differences between @command{gawk} and @command{awk}
+@cindex number of array elements
+@cindex array, number of elements
With @command{gawk} and several other @command{awk} implementations, when given an
array argument, the @code{length()} function returns the number of elements
in the array. @value{COMMONEXT}
@@ -15849,7 +16052,9 @@ If @option{--posix} is supplied, using an array argument is a fatal error
(@pxref{Arrays}).
@item match(@var{string}, @var{regexp} @r{[}, @var{array}@r{]})
-@cindex @code{match()} function
+@cindexawkfunc{match}
+@cindex string, regular expression match
+@cindex match regexp in string
Search @var{string} for the
longest, leftmost substring matched by the regular expression,
@var{regexp} and return the character position, or @dfn{index},
@@ -15964,7 +16169,8 @@ The @var{array} argument to @code{match()} is a
using a third argument is a fatal error.
@item patsplit(@var{string}, @var{array} @r{[}, @var{fieldpat} @r{[}, @var{seps} @r{]} @r{]}) #
-@cindex @code{patsplit()} function (@command{gawk})
+@cindexgawkfunc{patsplit}
+@cindex split string into array
Divide
@var{string} into pieces defined by @var{fieldpat}
and store the pieces in @var{array} and the separator strings in the
@@ -15995,7 +16201,7 @@ The @code{patsplit()} function is a
it is not available.
@item split(@var{string}, @var{array} @r{[}, @var{fieldsep} @r{[}, @var{seps} @r{]} @r{]})
-@cindex @code{split()} function
+@cindexawkfunc{split}
Divide @var{string} into pieces separated by @var{fieldsep}
and store the pieces in @var{array} and the separator strings in the
@var{seps} array. The first piece is stored in
@@ -16024,7 +16230,7 @@ split("cul-de-sac", a, "-", seps)
@end example
@noindent
-@cindex strings, splitting
+@cindex strings splitting, example
splits the string @samp{cul-de-sac} into three fields using @samp{-} as the
separator. It sets the contents of the array @code{a} as follows:
@@ -16080,7 +16286,8 @@ If @var{string} does not match @var{fieldsep} at all (but is not null),
@var{string}.
@item sprintf(@var{format}, @var{expression1}, @dots{})
-@cindex @code{sprintf()} function
+@cindexawkfunc{sprintf}
+@cindex formatting strings
Return (without printing) the string that @code{printf} would
have printed out with the same arguments
(@pxref{Printf}).
@@ -16093,7 +16300,8 @@ pival = sprintf("pi = %.2f (approx.)", 22/7)
@noindent
assigns the string @w{@samp{pi = 3.14 (approx.)}} to the variable @code{pival}.
-@cindex @code{strtonum()} function (@command{gawk})
+@cindexgawkfunc{strtonum}
+@cindex convert string to number
@item strtonum(@var{str}) #
Examine @var{str} and return its numeric value. If @var{str}
begins with a leading @samp{0}, @code{strtonum()} assumes that @var{str}
@@ -16116,12 +16324,12 @@ you use the @option{--non-decimal-data} option, which isn't recommended.
Note also that @code{strtonum()} uses the current locale's decimal point
for recognizing numbers (@pxref{Locales}).
-@cindex differences in @command{awk} and @command{gawk}, @code{strtonum()} function (@command{gawk})
@code{strtonum()} is a @command{gawk} extension; it is not available
in compatibility mode (@pxref{Options}).
@item sub(@var{regexp}, @var{replacement} @r{[}, @var{target}@r{]})
-@cindex @code{sub()} function
+@cindexawkfunc{sub}
+@cindex replace in string
Search @var{target}, which is treated as a string, for the
leftmost, longest substring matched by the regular expression @var{regexp}.
Modify the entire string
@@ -16221,7 +16429,8 @@ Finally, if the @var{regexp} is not a regexp constant, it is converted into a
string, and then the value of that string is treated as the regexp to match.
@item substr(@var{string}, @var{start} @r{[}, @var{length}@r{]})
-@cindex @code{substr()} function
+@cindexawkfunc{substr}
+@cindex substring
Return a @var{length}-character-long substring of @var{string},
starting at character number @var{start}. The first character of a
string is character number one.@footnote{This is different from
@@ -16235,6 +16444,7 @@ suffix is also returned
if @var{length} is greater than the number of characters remaining
in the string, counting from character @var{start}.
+@cindex Brian Kernighan's @command{awk}
If @var{start} is less than one, @code{substr()} treats it as
if it was one. (POSIX doesn't specify what to do in this case:
Brian Kernighan's @command{awk} acts this way, and therefore @command{gawk}
@@ -16277,16 +16487,18 @@ string = substr(string, 1, 2) "CDE" substr(string, 6)
@end example
@cindex case sensitivity, converting case
-@cindex converting, case
+@cindex strings, converting letter case
@item tolower(@var{string})
-@cindex @code{tolower()} function
+@cindexawkfunc{tolower}
+@cindex convert string to lower case
Return a copy of @var{string}, with each uppercase character
in the string replaced with its corresponding lowercase character.
Nonalphabetic characters are left unchanged. For example,
@code{tolower("MiXeD cAsE 123")} returns @code{"mixed case 123"}.
@item toupper(@var{string})
-@cindex @code{toupper()} function
+@cindexawkfunc{toupper}
+@cindex convert string to upper case
Return a copy of @var{string}, with each lowercase character
in the string replaced with its corresponding uppercase character.
Nonalphabetic characters are left unchanged. For example,
@@ -16314,6 +16526,7 @@ and builds an internal copy of it that can be executed.
Then there is the runtime level, which is when @command{awk} actually scans the
replacement string to determine what to generate.
+@cindex Brian Kernighan's @command{awk}
At both levels, @command{awk} looks for a defined set of characters that
can come after a backslash. At the lexical level, it looks for the
escape sequences listed in @ref{Escape Sequences}.
@@ -16711,14 +16924,16 @@ Although this makes a certain amount of sense, it can be surprising.
@node I/O Functions
@subsection Input/Output Functions
+@cindex input/output functions
The following functions relate to input/output (I/O).
Optional parameters are enclosed in square brackets ([ ]):
@table @code
@item close(@var{filename} @r{[}, @var{how}@r{]})
-@cindex @code{close()} function
+@cindexawkfunc{close}
@cindex files, closing
+@cindex close file or coprocess
Close the file @var{filename} for input or output. Alternatively, the
argument may be a shell command that was used for creating a coprocess, or
for redirecting to or from a pipe; then the coprocess or pipe is closed.
@@ -16735,7 +16950,8 @@ not matter.
which discusses this feature in more detail and gives an example.
@item fflush(@r{[}@var{filename}@r{]})
-@cindex @code{fflush()} function
+@cindexawkfunc{fflush}
+@cindex flush buffered output
Flush any buffered output associated with @var{filename}, which is either a
file opened for writing or a shell command for redirecting output to
a pipe or coprocess.
@@ -16753,11 +16969,12 @@ This is the purpose of the @code{fflush()} function---@command{gawk} also
buffers its output and the @code{fflush()} function forces
@command{gawk} to flush its buffers.
-@code{fflush()} was added to Brian Kernighan's
-version of @command{awk} in 1994.
-For over two decades, it was not part of the POSIX standard.
-As of December, 2012, it was accepted for
-inclusion into the POSIX standard.
+@cindex extensions, common@comma{} @code{fflush()} function
+@cindex Brian Kernighan's @command{awk}
+@code{fflush()} was added to Brian Kernighan's version of @command{awk} in
+April of 1992. For two decades, it was not part of the POSIX standard.
+As of December, 2012, it was accepted for inclusion into the POSIX
+standard.
See @uref{http://austingroupbugs.net/view.php?id=634, the Austin Group website}.
POSIX standardizes @code{fflush()} as follows: If there
@@ -16793,7 +17010,8 @@ or if @var{filename} is not an open file, pipe, or coprocess.
In such a case, @code{fflush()} returns @minus{}1, as well.
@item system(@var{command})
-@cindex @code{system()} function
+@cindexawkfunc{system}
+@cindex invoke shell command
@cindex interacting with other programs
Execute the operating-system
command @var{command} and then return to the @command{awk} program.
@@ -17068,6 +17286,7 @@ you would see the latter (undesirable) output.
@node Time Functions
@subsection Time Functions
+@cindex time functions
@c STARTOFRANGE tst
@cindex timestamps
@@ -17087,7 +17306,18 @@ it is the number of seconds since
1970-01-01 00:00:00 UTC, not counting leap seconds.@footnote{@xref{Glossary},
especially the entries ``Epoch'' and ``UTC.''}
All known POSIX-compliant systems support timestamps from 0 through
-@math{2^{31} - 1}, which is sufficient to represent times through
+@iftex
+@math{2^{31} - 1},
+@end iftex
+@ifnottex
+@ifnotdocbook
+2^31 - 1,
+@end ifnotdocbook
+@end ifnottex
+@docbook
+2<superscript>31</superscript> &minus; 1, @c
+@end docbook
+which is sufficient to represent times through
2038-01-19 03:14:07 UTC. Many systems support a wider range of timestamps,
including negative timestamps that represent times before the
epoch.
@@ -17106,7 +17336,8 @@ Optional parameters are enclosed in square brackets ([ ]):
@table @code
@item mktime(@var{datespec})
-@cindex @code{mktime()} function (@command{gawk})
+@cindexgawkfunc{mktime}
+@cindex generate time values
Turn @var{datespec} into a timestamp in the same form
as is returned by @code{systime()}. It is similar to the function of the
same name in ISO C. The argument, @var{datespec}, is a string of the form
@@ -17136,7 +17367,8 @@ is out of range, @code{mktime()} returns @minus{}1.
@cindex @code{PROCINFO} array
@item strftime(@r{[}@var{format} @r{[}, @var{timestamp} @r{[}, @var{utc-flag}@r{]]]})
@c STARTOFRANGE strf
-@cindex @code{strftime()} function (@command{gawk})
+@cindexgawkfunc{strftime}
+@cindex format time string
Format the time specified by @var{timestamp}
based on the contents of the @var{format} string and return the result.
It is similar to the function of the same name in ISO C.
@@ -17153,11 +17385,12 @@ The default string value is
@code{@w{"%a %b %e %H:%M:%S %Z %Y"}}. This format string produces
output that is equivalent to that of the @command{date} utility.
You can assign a new value to @code{PROCINFO["strftime"]} to
-change the default format.
+change the default format; see below for the various format directives.
@item systime()
-@cindex @code{systime()} function (@command{gawk})
+@cindexgawkfunc{systime}
@cindex timestamps
+@cindex current system time
Return the current time as the number of seconds since
the system epoch. On POSIX systems, this is the number of seconds
since 1970-01-01 00:00:00 UTC, not counting leap seconds.
@@ -17451,6 +17684,7 @@ gawk 'BEGIN @{
@node Bitwise Functions
@subsection Bit-Manipulation Functions
+@cindex bit-manipulation functions
@c STARTOFRANGE bit
@cindex bitwise, operations
@c STARTOFRANGE and
@@ -17613,27 +17847,33 @@ bitwise operations just described. They are:
@cindex @command{gawk}, bitwise operations in
@table @code
-@cindex @code{and()} function (@command{gawk})
+@cindexgawkfunc{and}
+@cindex bitwise AND
@item and(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise AND of the arguments. There must be at least two.
-@cindex @code{compl()} function (@command{gawk})
+@cindexgawkfunc{compl}
+@cindex bitwise complement
@item compl(@var{val})
Return the bitwise complement of @var{val}.
-@cindex @code{lshift()} function (@command{gawk})
+@cindexgawkfunc{lshift}
+@cindex left shift
@item lshift(@var{val}, @var{count})
Return the value of @var{val}, shifted left by @var{count} bits.
-@cindex @code{or()} function (@command{gawk})
+@cindexgawkfunc{or}
+@cindex bitwise OR
@item or(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise OR of the arguments. There must be at least two.
-@cindex @code{rshift()} function (@command{gawk})
+@cindexgawkfunc{rshift}
+@cindex right shift
@item rshift(@var{val}, @var{count})
Return the value of @var{val}, shifted right by @var{count} bits.
-@cindex @code{xor()} function (@command{gawk})
+@cindexgawkfunc{xor}
+@cindex bitwise XOR
@item xor(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise XOR of the arguments. There must be at least two.
@end table
@@ -17725,6 +17965,7 @@ $ @kbd{gawk -f testbits.awk}
@cindex strings, converting
@cindex numbers, converting
@cindex converting, numbers to strings
+@cindex number as string of bits
The @code{bits2str()} function turns a binary number into a string.
The number @code{1} represents a binary value where the rightmost bit
is set to 1. Using this mask,
@@ -17760,7 +18001,8 @@ that traverses every element of a true multidimensional array
(@pxref{Arrays of Arrays}).
@table @code
-@cindex @code{isarray()} function (@command{gawk})
+@cindexgawkfunc{isarray}
+@cindex scalar or array
@item isarray(@var{x})
Return a true value if @var{x} is an array. Otherwise return false.
@end table
@@ -17768,7 +18010,7 @@ Return a true value if @var{x} is an array. Otherwise return false.
@code{isarray()} is meant for use in two circumstances. The first is when
traversing a multidimensional array: you can test if an element is itself
an array or not. The second is inside the body of a user-defined function
-(not discussed yet; @pxref{User-defined}), to test if a paramater is an
+(not discussed yet; @pxref{User-defined}), to test if a parameter is an
array or not.
Note, however, that using @code{isarray()} at the global level to test
@@ -17782,6 +18024,7 @@ will end up turning it into a scalar.
@subsection String-Translation Functions
@cindex @command{gawk}, string-translation functions
@cindex functions, string-translation
+@cindex string-translation functions
@cindex internationalization
@cindex @command{awk} programs, internationalizing
@@ -17793,7 +18036,8 @@ for the full story.
Optional parameters are enclosed in square brackets ([ ]):
@table @code
-@cindex @code{bindtextdomain()} function (@command{gawk})
+@cindexgawkfunc{bindtextdomain}
+@cindex set directory of message catalogs
@item bindtextdomain(@var{directory} @r{[}, @var{domain}@r{]})
Set the directory in which
@command{gawk} will look for message translation files, in case they
@@ -17806,14 +18050,15 @@ If @var{directory} is the null string (@code{""}), then
@code{bindtextdomain()} returns the current binding for the
given @var{domain}.
-@cindex @code{dcgettext()} function (@command{gawk})
+@cindexgawkfunc{dcgettext}
+@cindex translate string
@item dcgettext(@var{string} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the translation of @var{string} in
text domain @var{domain} for locale category @var{category}.
The default value for @var{domain} is the current value of @code{TEXTDOMAIN}.
The default value for @var{category} is @code{"LC_MESSAGES"}.
-@cindex @code{dcngettext()} function (@command{gawk})
+@cindexgawkfunc{dcngettext}
@item dcngettext(@var{string1}, @var{string2}, @var{number} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the plural form used for @var{number} of the
translation of @var{string1} and @var{string2} in text domain
@@ -17830,7 +18075,7 @@ The default value for @var{category} is @code{"LC_MESSAGES"}.
@section User-Defined Functions
@c STARTOFRANGE udfunc
-@cindex user-defined, functions
+@cindex user-defined functions
@c STARTOFRANGE funcud
@cindex functions, user-defined
Complicated @command{awk} programs can often be simplified by defining
@@ -17889,7 +18134,7 @@ have a parameter with the same name as the function itself.
In addition, according to the POSIX standard, function parameters cannot have the same
name as one of the special built-in variables
(@pxref{Built-in Variables}. Not all versions of @command{awk}
-enforce this restriction.
+enforce this restriction.)
The @var{body-of-function} consists of @command{awk} statements. It is the
most important part of the definition, because it says what the function
@@ -17916,6 +18161,7 @@ conventional to place some extra space between the arguments and
the local variables, in order to document how your function is supposed to be used.
@cindex variables, shadowing
+@cindex shadowing of variable values
During execution of the function body, the arguments and local variable
values hide, or @dfn{shadow}, any variables of the same names used in the
rest of the program. The shadowed variables are not accessible in the
@@ -17936,7 +18182,7 @@ function. When this happens, we say the function is @dfn{recursive}.
The act of a function calling itself is called @dfn{recursion}.
All the built-in functions return a value to their caller.
-User-defined functions can do also, using the @code{return} statement,
+User-defined functions can do so also, using the @code{return} statement,
which is described in detail in @ref{Return Statement}.
Many of the subsequent examples in this @value{SECTION} use
the @code{return} statement.
@@ -17974,6 +18220,7 @@ keyword @code{function} when defining a function.
@node Function Example
@subsection Function Definition Examples
+@cindex function definition example
Here is an example of a user-defined function, called @code{myprint()}, that
takes a number and prints it in a specific format:
@@ -18028,7 +18275,8 @@ Instead of having
to repeat this loop everywhere that you need to clear out
an array, your program can just call @code{delarray}.
(This guarantees portability. The use of @samp{delete @var{array}} to delete
-the contents of an entire array is a nonstandard extension.)
+the contents of an entire array is a recent@footnote{Late in 2012.}
+addition to the POSIX standard.)
The following is an example of a recursive function. It takes a string
as an input parameter and returns the string in backwards order.
@@ -18084,7 +18332,10 @@ function ctime(ts, format)
@subsection Calling User-Defined Functions
@c STARTOFRANGE fudc
-This section describes how to call a user-defined function.
+@cindex functions, user-defined, calling
+@dfn{Calling a function} means causing the function to run and do its job.
+A function call is an expression and its value is the value returned by
+the function.
@menu
* Calling A Function:: Don't use spaces.
@@ -18095,11 +18346,6 @@ This section describes how to call a user-defined function.
@node Calling A Function
@subsubsection Writing A Function Call
-@cindex functions, user-defined, calling
-@dfn{Calling a function} means causing the function to run and do its job.
-A function call is an expression and its value is the value returned by
-the function.
-
A function call consists of the function name followed by the arguments
in parentheses. @command{awk} expressions are what you write in the
call for the arguments. Each time the call is executed, these
@@ -18123,8 +18369,8 @@ an error.
@node Variable Scope
@subsubsection Controlling Variable Scope
-@cindex local variables
-@cindex variables, local
+@cindex local variables, in a function
+@cindex variables, local to a function
There is no way to make a variable local to a @code{@{ @dots{} @}} block in
@command{awk}, but you can make a variable local to a function. It is
good practice to do so whenever a variable is needed only in that
@@ -18569,7 +18815,7 @@ character:
@example
the_func = "sum"
-result = @@the_func() # calls the `sum' function
+result = @@the_func() # calls the sum() function
@end example
Here is a full program that processes the previously shown data,
@@ -18690,8 +18936,9 @@ We can do something similar using @command{gawk}, like this:
@ignore
@c file eg/lib/quicksort.awk
#
-# Arnold Robbins, arnold@skeeve.com, Public Domain
+# Arnold Robbins, arnold@@skeeve.com, Public Domain
# January 2009
+
@c endfile
@end ignore
@@ -18764,7 +19011,7 @@ or equal to), which yields data sorted in descending order.
Next comes a sorting function. It is parameterized with the starting and
ending field numbers and the comparison function. It builds an array with
-the data and calls @code{quicksort} appropriately, and then formats the
+the data and calls @code{quicksort()} appropriately, and then formats the
results as a single string:
@example
@@ -18902,6 +19149,8 @@ it allows you to encapsulate algorithms and program tasks in a single
place. It simplifies programming, making program development more
manageable, and making programs more readable.
+@cindex Kernighan, Brian
+@cindex Plauger, P.J.@:
In their seminal 1976 book, @cite{Software Tools},@footnote{Sadly, over 35
years later, many of the lessons taught by this book have yet to be
learned by a vast number of practicing programmers.} Brian Kernighan
@@ -19031,7 +19280,7 @@ with the user's program.
@cindex underscore (@code{_}), in names of private variables
In addition, several of the library functions use a prefix that helps
indicate what function or set of functions use the variables---for example,
-@code{_pw_byname} in the user database routines
+@code{_pw_byname()} in the user database routines
(@pxref{Passwd Functions}).
This convention is recommended, since it even further decreases the
chance of inadvertent conflict among variable names. Note that this
@@ -19050,7 +19299,7 @@ The leading capital letter indicates that it is global, while the fact that
the variable name is not all capital letters indicates that the variable is
not one of @command{awk}'s built-in variables, such as @code{FS}.
-@cindex @option{--dump-variables} option
+@cindex @option{--dump-variables} option, using for library functions
It is also important that @emph{all} variables in library
functions that do not need to save state are, in fact, declared
local.@footnote{@command{gawk}'s @option{--dump-variables} command-line
@@ -19345,9 +19594,9 @@ with an @code{exit} statement.
The way @code{printf} and @code{sprintf()}
(@pxref{Printf})
perform rounding often depends upon the system's C @code{sprintf()}
-subroutine. On many machines, @code{sprintf()} rounding is ``unbiased,''
-which means it doesn't always round a trailing @samp{.5} up, contrary
-to naive expectations. In unbiased rounding, @samp{.5} rounds to even,
+subroutine. On many machines, @code{sprintf()} rounding is @dfn{unbiased},
+which means it doesn't always round a trailing .5 up, contrary
+to naive expectations. In unbiased rounding, .5 rounds to even,
rather than always up, so 1.5 rounds to 2 but 4.5 rounds to 4. This means
that if you are using a format that does rounding (e.g., @code{"%.0f"}),
you should check what your system does. The following function does
@@ -19396,7 +19645,7 @@ function round(x, ival, aval, fraction)
@c don't include test harness in the file that gets installed
# test harness
-@{ print $0, round($0) @}
+# @{ print $0, round($0) @}
@end example
@node Cliff Random Function
@@ -19463,6 +19712,7 @@ reason to build them into the @command{awk} interpreter:
@cindex @code{ord()} user-defined function
@cindex @code{chr()} user-defined function
+@cindex @code{_ord_init()} user-defined function
@example
@c file eg/lib/ord.awk
# ord.awk --- do ord and chr
@@ -19509,8 +19759,9 @@ function _ord_init( low, high, i, t)
@cindex character sets (machine character encodings)
@cindex ASCII
@cindex EBCDIC
+@cindex Unicode
@cindex mark parity
-Some explanation of the numbers used by @code{chr()} is worthwhile.
+Some explanation of the numbers used by @code{_ord_init()} is worthwhile.
The most prominent character set in use today is ASCII.@footnote{This
is changing; many systems use Unicode, a very large character set
that includes ASCII as a subset. On systems with full Unicode support,
@@ -19521,7 +19772,7 @@ Although an
defines characters that use the values from 0 to 127.@footnote{ASCII
has been extended in many countries to use the values from 128 to 255
for country-specific characters. If your system uses these extensions,
-you can simplify @code{_ord_init} to loop from 0 to 255.}
+you can simplify @code{_ord_init()} to loop from 0 to 255.}
In the now distant past,
at least one minicomputer manufacturer
@c Pr1me, blech
@@ -20195,7 +20446,7 @@ END @{
Occasionally, you might not want @command{awk} to process command-line
variable assignments
(@pxref{Assignment Options}).
-In particular, if you have a file name that contain an @samp{=} character,
+In particular, if you have a file name that contains an @samp{=} character,
@command{awk} treats the file name as an assignment, and does not process it.
Some users have suggested an additional command-line option for @command{gawk}
@@ -20865,7 +21116,7 @@ from anywhere within a user's program, and the user may have his
or her
own way of splitting records and fields.
-@cindex @code{PROCINFO} array
+@cindex @code{PROCINFO} array, testing the field splitting
The @code{using_fw} variable checks @code{PROCINFO["FS"]}, which
is @code{"FIELDWIDTHS"} if field splitting is being done with
@code{FIELDWIDTHS}. This makes it possible to restore the correct
@@ -20874,7 +21125,7 @@ field-splitting mechanism later. The test can only be true for
or on some other @command{awk} implementation.
The code that checks for using @code{FPAT}, using @code{using_fpat}
-and @code{PROCINFO["FS"]} is similar.
+and @code{PROCINFO["FS"]}, is similar.
The main part of the function uses a loop to read database lines, split
the line into fields, and then store the line into each array as necessary.
@@ -20904,10 +21155,9 @@ function getpwnam(name)
@end example
@cindex @code{getpwuid()} function (C library)
-Similarly,
-the @code{getpwuid} function takes a user ID number argument. If that
-user number is in the database, it returns the appropriate line. Otherwise, it
-returns the null string:
+Similarly, the @code{getpwuid()} function takes a user ID number
+argument. If that user number is in the database, it returns the
+appropriate line. Otherwise, it returns the null string:
@cindex @code{getpwuid()} user-defined function
@example
@@ -20989,7 +21239,7 @@ uses these functions.
@cindex group database, reading
@c STARTOFRANGE datagr
@cindex database, group, reading
-@cindex @code{PROCINFO} array
+@cindex @code{PROCINFO} array, and group membership
@cindex @code{getgrent()} function (C library)
@cindex @code{getgrent()} user-defined function
@cindex groups@comma{} information about
@@ -21411,7 +21661,7 @@ index and value, use the indirect function call syntax
and the value.
When calling @code{walk_array()}, you would pass the name of a user-defined
-function that expects to receive and index and a value, and then processes
+function that expects to receive an index and a value, and then processes
the element.
@@ -21765,7 +22015,7 @@ complete field list, including filler fields:
@example
@c file eg/prog/cut.awk
-function set_charlist( field, i, j, f, g, t,
+function set_charlist( field, i, j, f, g, n, m, t,
filler, last, len)
@{
field = 1 # count total fields
@@ -21862,6 +22112,7 @@ of picking the input line apart by characters.
@cindex searching, files for regular expressions
@c STARTOFRANGE fsregexp
@cindex files, searching for regular expressions
+@c STARTOFRANGE egrep
@cindex @command{egrep} utility
The @command{egrep} utility searches files for patterns. It uses regular
expressions that are almost identical to those available in @command{awk}
@@ -22147,12 +22398,14 @@ or not.
@c ENDOFRANGE regexps
@c ENDOFRANGE sfregexp
@c ENDOFRANGE fsregexp
+@c ENDOFRANGE egrep
@node Id Program
@subsection Printing out User Information
@cindex printing, user information
@cindex users, information about, printing
+@c STARTOFRANGE id
@cindex @command{id} utility
The @command{id} utility lists a user's real and effective user ID numbers,
real and effective group ID numbers, and the user's group set, if any.
@@ -22165,7 +22418,7 @@ $ @kbd{id}
@print{} uid=500(arnold) gid=500(arnold) groups=6(disk),7(lp),19(floppy)
@end example
-@cindex @code{PROCINFO} array
+@cindex @code{PROCINFO} array, and user and group ID numbers
This information is part of what is provided by @command{gawk}'s
@code{PROCINFO} array (@pxref{Built-in Variables}).
However, the @command{id} utility provides a more palatable output than just
@@ -22266,7 +22519,6 @@ BEGIN \
@c endfile
@end example
-@cindex @code{in} operator
The test in the @code{for} loop is worth noting.
Any supplementary groups in the @code{PROCINFO} array have the
indices @code{"group1"} through @code{"group@var{N}"} for some
@@ -22276,7 +22528,7 @@ there are.
This loop works by starting at one, concatenating the value with
@code{"group"}, and then using @code{in} to see if that value is
-in the array. Eventually, @code{i} is incremented past
+in the array (@pxref{Reference to Elements}). Eventually, @code{i} is incremented past
the last group in the array and the loop exits.
The loop is also correct if there are @emph{no} supplementary
@@ -22289,6 +22541,7 @@ The POSIX version of @command{id} takes arguments that control which
information is printed. Modify this version to accept the same
arguments and perform in the same way.
@end ignore
+@c ENDOFRANGE id
@node Split Program
@subsection Splitting a Large File into Pieces
@@ -22297,6 +22550,7 @@ arguments and perform in the same way.
@c STARTOFRANGE filspl
@cindex files, splitting
+@c STARTOFRANGE split
@cindex @code{split} utility
The @command{split} program splits large text files into smaller pieces.
Usage is as follows:@footnote{This is the traditional usage. The
@@ -22440,12 +22694,14 @@ which isn't true for EBCDIC systems.
@c Exercise: Fix these problems.
@c BFD...
@c ENDOFRANGE filspl
+@c ENDOFRANGE split
@node Tee Program
@subsection Duplicating Output into Multiple Files
@cindex files, multiple@comma{} duplicating output into
@cindex output, duplicating into files
+@c STARTOFRANGE tee
@cindex @code{tee} utility
The @code{tee} program is known as a ``pipe fitting.'' @code{tee} copies
its standard input to its standard output and also duplicates it to the
@@ -22560,6 +22816,7 @@ END \
@}
@c endfile
@end example
+@c ENDOFRANGE tee
@node Uniq Program
@subsection Printing Nonduplicated Lines of Text
@@ -22570,6 +22827,7 @@ END \
@cindex printing, unduplicated lines of text
@c STARTOFRANGE tpul
@cindex text@comma{} printing, unduplicated lines of
+@c STARTOFRANGE uniq
@cindex @command{uniq} utility
The @command{uniq} utility reads sorted lines of data on its standard
input, and by default removes duplicate lines. In other words, it only
@@ -22821,6 +23079,7 @@ END @{
@end example
@c ENDOFRANGE prunt
@c ENDOFRANGE tpul
+@c ENDOFRANGE uniq
@node Wc Program
@subsection Counting Things
@@ -22837,6 +23096,7 @@ END @{
@cindex characters, counting
@c STARTOFRANGE lico
@cindex lines, counting
+@c STARTOFRANGE wc
@cindex @command{wc} utility
The @command{wc} (word count) utility counts lines, words, and characters in
one or more input files. Its usage is as follows:
@@ -23019,6 +23279,7 @@ END @{
@c ENDOFRANGE lico
@c ENDOFRANGE woco
@c ENDOFRANGE chco
+@c ENDOFRANGE wc
@c ENDOFRANGE posimawk
@node Miscellaneous Programs
@@ -23313,6 +23574,7 @@ seconds are necessary:
@c STARTOFRANGE chtra
@cindex characters, transliterating
+@c STARTOFRANGE tr
@cindex @command{tr} utility
The system @command{tr} utility transliterates characters. For example, it is
often used to map uppercase letters into lowercase for further processing:
@@ -23461,6 +23723,7 @@ An obvious improvement to this program would be to set up the
assumes that the ``from'' and ``to'' lists
will never change throughout the lifetime of the program.
@c ENDOFRANGE chtra
+@c ENDOFRANGE tr
@node Labels Program
@subsection Printing Mailing Labels
@@ -23520,6 +23783,7 @@ that there are two blank lines at the top and two blank lines at the bottom.
The @code{END} rule arranges to flush the final page of labels; there may
not have been an even multiple of 20 labels in the data:
+@c STARTOFRANGE labels
@cindex @code{labels.awk} program
@example
@c file eg/prog/labels.awk
@@ -23587,6 +23851,7 @@ END \
@end example
@c ENDOFRANGE prml
@c ENDOFRANGE mlprint
+@c ENDOFRANGE labels
@node Word Sorting
@subsection Generating Word-Usage Counts
@@ -23653,6 +23918,7 @@ to remove punctuation characters. Finally, we solve the third problem
by using the system @command{sort} utility to process the output of the
@command{awk} script. Here is the new version of the program:
+@c STARTOFRANGE wordfreq
@cindex @code{wordfreq.awk} program
@example
@c file eg/prog/wordfreq.awk
@@ -23714,6 +23980,7 @@ have true pipes at the command-line (or batch-file) level.
See the general operating system documentation for more information on how
to use the @command{sort} program.
@c ENDOFRANGE worus
+@c ENDOFRANGE wordfreq
@node History Sorting
@subsection Removing Duplicates from Unsorted Text
@@ -23743,6 +24010,7 @@ Each element of @code{lines} is a unique command, and the indices of
The @code{END} rule simply prints out the lines, in order:
@cindex Rakitzis, Byron
+@c STARTOFRANGE histsort
@cindex @code{histsort.awk} program
@example
@c file eg/prog/histsort.awk
@@ -23785,6 +24053,7 @@ print data[lines[i]], lines[i]
This works because @code{data[$0]} is incremented each time a line is
seen.
@c ENDOFRANGE lidu
+@c ENDOFRANGE histsort
@node Extract Program
@subsection Extracting Programs from Texinfo Source Files
@@ -23895,6 +24164,7 @@ The first rule handles calling @code{system()}, checking that a command is
given (@code{NF} is at least three) and also checking that the command
exits with a zero exit status, signifying OK:
+@c STARTOFRANGE extract
@cindex @code{extract.awk} program
@example
@c file eg/prog/extract.awk
@@ -24053,6 +24323,7 @@ END @{
@end example
@c ENDOFRANGE texse
@c ENDOFRANGE fitex
+@c ENDOFRANGE extract
@node Simple Sed
@subsection A Simple Stream Editor
@@ -24082,6 +24353,7 @@ additional arguments are treated as data file names to process. If none
are provided, the standard input is used:
@cindex Brennan, Michael
+@c STARTOFRANGE awksed
@cindex @command{awksed.awk} program
@c @cindex simple stream editor
@c @cindex stream editor, simple
@@ -24178,6 +24450,7 @@ Exercise: what are the advantages and disadvantages of this version versus sed?
Others?
@end ignore
+@c ENDOFRANGE awksed
@node Igawk Program
@subsection An Easy Way to Use Library Functions
@@ -24321,6 +24594,7 @@ program.
The program is as follows:
+@c STARTOFRANGE igawk
@cindex @code{igawk.sh} program
@example
@c file eg/prog/igawk.sh
@@ -24493,7 +24767,7 @@ BEGIN @{
@c endfile
@end example
-The stack is initialized with @code{ARGV[1]}, which will be @file{/dev/stdin}.
+The stack is initialized with @code{ARGV[1]}, which will be @samp{/dev/stdin}.
The main loop comes next. Input lines are read in succession. Lines that
do not start with @samp{@@include} are printed verbatim.
If the line does start with @samp{@@include}, the file name is in @code{$2}.
@@ -24680,10 +24954,12 @@ statements for the desired library functions.
@c ENDOFRANGE libfex
@c ENDOFRANGE flibex
@c ENDOFRANGE awkpex
+@c ENDOFRANGE igawk
@node Anagram Program
@subsection Finding Anagrams From A Dictionary
+@cindex anagrams, finding
An interesting programming challenge is to
search for @dfn{anagrams} in a
word list (such as
@@ -24703,6 +24979,7 @@ The following program uses arrays of arrays to bring together
words with the same signature and array sorting to print the words
in sorted order.
+@c STARTOFRANGE anagram
@cindex @code{anagram.awk} program
@example
@c file eg/prog/anagram.awk
@@ -24810,10 +25087,13 @@ babels beslab
babery yabber
@dots{}
@end example
+@c ENDOFRANGE anagram
@node Signature Program
@subsection And Now For Something Completely Different
+@cindex signature program
+@cindex Brini, Davide
The following program was written by Davide Brini
@c (@email{dave_br@@gmx.com})
and is published on @uref{http://backreference.org/2011/02/03/obfuscated-awk/,
@@ -24945,12 +25225,15 @@ It contains the following chapters:
@item
@ref{Dynamic Extensions}.
+@end itemize
@end ifdocbook
@end ignore
@node Advanced Features
@chapter Advanced Features of @command{gawk}
+@ifset WITH_NETWORK_CHAPTER
@cindex advanced features, network connections, See Also networks@comma{} connections
+@end ifset
@c STARTOFRANGE gawadv
@cindex @command{gawk}, features, advanced
@c STARTOFRANGE advgaw
@@ -25357,9 +25640,9 @@ sorted array traversal is not the default.
@subsection Sorting Array Values and Indices with @command{gawk}
@cindex arrays, sorting
-@cindex @code{asort()} function (@command{gawk})
+@cindexgawkfunc{asort}
@cindex @code{asort()} function (@command{gawk}), arrays@comma{} sorting
-@cindex @code{asorti()} function (@command{gawk})
+@cindexgawkfunc{asorti}
@cindex @code{asorti()} function (@command{gawk}), arrays@comma{} sorting
@cindex sort function, arrays, sorting
In most @command{awk} implementations, sorting an array requires writing
@@ -25454,9 +25737,8 @@ both arrays use the values.
@c Document It And Call It A Feature. Sigh.
@cindex @command{gawk}, @code{IGNORECASE} variable in
-@cindex @code{IGNORECASE} variable
-@cindex arrays, sorting, @code{IGNORECASE} variable and
-@cindex @code{IGNORECASE} variable, array sorting and
+@cindex arrays, sorting, and @code{IGNORECASE} variable
+@cindex @code{IGNORECASE} variable, and array sorting functions
Because @code{IGNORECASE} affects string comparisons, the value
of @code{IGNORECASE} also affects sorting for both @code{asort()} and @code{asorti()}.
Note also that the locale's sorting order does @emph{not}
@@ -25535,7 +25817,7 @@ open a @emph{two-way} pipe to another process. The second process is
termed a @dfn{coprocess}, since it runs in parallel with @command{gawk}.
The two-way connection is created using the @samp{|&} operator
(borrowed from the Korn shell, @command{ksh}):@footnote{This is very
-different from the same operator in the C shell.}
+different from the same operator in the C shell and in Bash.}
@example
do @{
@@ -25625,7 +25907,7 @@ As a side note, the assignment @samp{LC_ALL=C} in the @command{sort}
command ensures traditional Unix (ASCII) sorting from @command{sort}.
@cindex @command{gawk}, @code{PROCINFO} array in
-@cindex @code{PROCINFO} array
+@cindex @code{PROCINFO} array, and communications via ptys
You may also use pseudo-ttys (ptys) for
two-way communication instead of pipes, if your system supports them.
This is done on a per-command basis, by setting a special element
@@ -25823,52 +26105,60 @@ foo
junk
@end example
-Here is the @file{awkprof.out} that results from running the @command{gawk}
-profiler on this program and data (this example also illustrates that @command{awk}
-programmers sometimes have to work late):
+Here is the @file{awkprof.out} that results from running the
+@command{gawk} profiler on this program and data. (This example also
+illustrates that @command{awk} programmers sometimes get up very early
+in the morning to work.)
-@cindex @code{BEGIN} pattern
-@cindex @code{END} pattern
+@cindex @code{BEGIN} pattern, and profiling
+@cindex @code{END} pattern, and profiling
@example
- # gawk profile, created Sun Aug 13 00:00:15 2000
+ # gawk profile, created Thu Feb 27 05:16:21 2014
- # BEGIN block(s)
+ # BEGIN block(s)
- BEGIN @{
- 1 print "First BEGIN rule"
- 1 print "Second BEGIN rule"
- @}
+ BEGIN @{
+ 1 print "First BEGIN rule"
+ @}
- # Rule(s)
+ BEGIN @{
+ 1 print "Second BEGIN rule"
+ @}
- 5 /foo/ @{ # 2
- 2 print "matched /foo/, gosh"
- 6 for (i = 1; i <= 3; i++) @{
- 6 sing()
- @}
- @}
+ # Rule(s)
- 5 @{
- 5 if (/foo/) @{ # 2
- 2 print "if is true"
- 3 @} else @{
- 3 print "else is true"
- @}
- @}
+ 5 /foo/ @{ # 2
+ 2 print "matched /foo/, gosh"
+ 6 for (i = 1; i <= 3; i++) @{
+ 6 sing()
+ @}
+ @}
- # END block(s)
+ 5 @{
+ 5 if (/foo/) @{ # 2
+ 2 print "if is true"
+ 3 @} else @{
+ 3 print "else is true"
+ @}
+ @}
- END @{
- 1 print "First END rule"
- 1 print "Second END rule"
- @}
+ # END block(s)
- # Functions, listed alphabetically
+ END @{
+ 1 print "First END rule"
+ @}
- 6 function sing(dummy)
- @{
- 6 print "I gotta be me!"
- @}
+ END @{
+ 1 print "Second END rule"
+ @}
+
+
+ # Functions, listed alphabetically
+
+ 6 function sing(dummy)
+ @{
+ 6 print "I gotta be me!"
+ @}
@end example
This example illustrates many of the basic features of profiling output.
@@ -25876,15 +26166,16 @@ They are as follows:
@itemize @bullet
@item
-The program is printed in the order @code{BEGIN} rule,
-@code{BEGINFILE} rule,
+The program is printed in the order @code{BEGIN} rules,
+@code{BEGINFILE} rules,
pattern/action rules,
-@code{ENDFILE} rule, @code{END} rule and functions, listed
+@code{ENDFILE} rules, @code{END} rules and functions, listed
alphabetically.
-Multiple @code{BEGIN} and @code{END} rules are merged together,
-as are multiple @code{BEGINFILE} and @code{ENDFILE} rules.
+Multiple @code{BEGIN} and @code{END} rules retain their
+separate identities, as do
+multiple @code{BEGINFILE} and @code{ENDFILE} rules.
-@cindex patterns, counts
+@cindex patterns, counts, in a profile
@item
Pattern-action rules have two counts.
The first count, to the left of the rule, shows how many times
@@ -25904,7 +26195,7 @@ is a count showing how many times the condition was true.
The count for the @code{else}
indicates how many times the test failed.
-@cindex loops, count for header
+@cindex loops, count for header, in a profile
@item
The count for a loop header (such as @code{for}
or @code{while}) shows how many times the loop test was executed.
@@ -25912,8 +26203,8 @@ or @code{while}) shows how many times the loop test was executed.
statement in a rule to determine how many times the rule was executed.
If the first statement is a loop, the count is misleading.)
-@cindex functions, user-defined, counts
-@cindex user-defined, functions, counts
+@cindex functions, user-defined, counts, in a profile
+@cindex user-defined, functions, counts, in a profile
@item
For user-defined functions, the count next to the @code{function}
keyword indicates how many times the function was called.
@@ -25927,8 +26218,8 @@ The layout uses ``K&R'' style with TABs.
Braces are used everywhere, even when
the body of an @code{if}, @code{else}, or loop is only a single statement.
-@cindex @code{()} (parentheses)
-@cindex parentheses @code{()}
+@cindex @code{()} (parentheses), in a profile
+@cindex parentheses @code{()}, in a profile
@item
Parentheses are used only where needed, as indicated by the structure
of the program and the precedence rules.
@@ -25963,8 +26254,8 @@ typed when you wrote it. This is because @command{gawk} creates the
profiled version by ``pretty printing'' its internal representation of
the program. The advantage to this is that @command{gawk} can produce
a standard representation. The disadvantage is that all source-code
-comments are lost, as are the distinctions among multiple @code{BEGIN},
-@code{END}, @code{BEGINFILE}, and @code{ENDFILE} rules. Also, things such as:
+comments are lost.
+Also, things such as:
@example
/foo/
@@ -25984,6 +26275,7 @@ which is correct, but possibly surprising.
@cindex profiling @command{awk} programs, dynamically
@cindex @command{gawk} program, dynamic profiling
+@cindex dynamic profiling
Besides creating profiles when a program has completed,
@command{gawk} can produce a profile while it is running.
This is useful if your @command{awk} program goes into an
@@ -25997,9 +26289,9 @@ $ @kbd{gawk --profile -f myprog &}
@end example
@cindex @command{kill} command@comma{} dynamic profiling
-@cindex @code{USR1} signal
-@cindex @code{SIGUSR1} signal
-@cindex signals, @code{USR1}/@code{SIGUSR1}
+@cindex @code{USR1} signal, for dynamic profiling
+@cindex @code{SIGUSR1} signal, for dynamic profiling
+@cindex signals, @code{USR1}/@code{SIGUSR1}, for profiling
@noindent
The shell prints a job number and process ID number; in this case, 13992.
Use the @command{kill} command to send the @code{USR1} signal
@@ -26030,9 +26322,9 @@ You may send @command{gawk} the @code{USR1} signal as many times as you like.
Each time, the profile and function call trace are appended to the output
profile file.
-@cindex @code{HUP} signal
-@cindex @code{SIGHUP} signal
-@cindex signals, @code{HUP}/@code{SIGHUP}
+@cindex @code{HUP} signal, for dynamic profiling
+@cindex @code{SIGHUP} signal, for dynamic profiling
+@cindex signals, @code{HUP}/@code{SIGHUP}, for profiling
If you use the @code{HUP} signal instead of the @code{USR1} signal,
@command{gawk} produces the profile and the function call trace and then exits.
@@ -26054,6 +26346,11 @@ keyboard. The @code{INT} signal is generated by the
Finally, @command{gawk} also accepts another option, @option{--pretty-print}.
When called this way, @command{gawk} ``pretty prints'' the program into
@file{awkprof.out}, without any execution counts.
+
+@quotation NOTE
+The @option{--pretty-print} option still runs your program.
+This will change in the next major release.
+@end quotation
@c ENDOFRANGE advgaw
@c ENDOFRANGE gawadv
@c ENDOFRANGE awkp
@@ -26165,6 +26462,7 @@ lookup of the translations.
@cindex @code{.po} files
@cindex files, @code{.po}
+@c STARTOFRANGE portobfi
@cindex portable object files
@cindex files, portable object
@item
@@ -26176,6 +26474,7 @@ For example, there might be a @file{fr.po} for a French translation.
@cindex @code{.gmo} files
@cindex files, @code{.gmo}
@cindex message object files
+@c STARTOFRANGE portmsgfi
@cindex files, message object
@item
Each language's @file{.po} file is converted into a binary
@@ -26323,7 +26622,7 @@ String constants marked with a leading underscore
are candidates for translation at runtime.
String constants without a leading underscore are not translated.
-@cindex @code{dcgettext()} function (@command{gawk})
+@cindexgawkfunc{dcgettext}
@item dcgettext(@var{string} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the translation of @var{string} in
text domain @var{domain} for locale category @var{category}.
@@ -26349,7 +26648,7 @@ chosen to be simple and to allow for reasonable @command{awk}-style
default arguments.
@end quotation
-@cindex @code{dcngettext()} function (@command{gawk})
+@cindexgawkfunc{dcngettext}
@item dcngettext(@var{string1}, @var{string2}, @var{number} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the plural form used for @var{number} of the
translation of @var{string1} and @var{string2} in text domain
@@ -26365,7 +26664,7 @@ The same remarks about argument order as for the @code{dcgettext()} function app
@cindex files, @code{.gmo}, specifying directory of
@cindex message object files, specifying directory of
@cindex files, message object, specifying directory of
-@cindex @code{bindtextdomain()} function (@command{gawk})
+@cindexgawkfunc{bindtextdomain}
@item bindtextdomain(@var{directory} @r{[}, @var{domain}@r{]})
Change the directory in which
@code{gettext} looks for @file{.gmo} files, in case they
@@ -26467,7 +26766,7 @@ and use translations from @command{awk}.
@cindex portable object files
@cindex files, portable object
Once a program's translatable strings have been marked, they must
-be extracted to create the initial @file{.po} file.
+be extracted to create the initial @file{.pot} file.
As part of translation, it is often helpful to rearrange the order
in which arguments to @code{printf} are output.
@@ -26516,6 +26815,8 @@ second argument to @code{dcngettext()}.@footnote{The
@xref{I18N Example},
for the full list of steps to go through to create and test
translations for @command{guide}.
+@c ENDOFRANGE portobfi
+@c ENDOFRANGE portmsgfi
@node Printf Ordering
@subsection Rearranging @code{printf} Arguments
@@ -26562,7 +26863,7 @@ example, @samp{string} is the first argument and @samp{length(string)} is the se
@example
$ @kbd{gawk 'BEGIN @{}
> @kbd{string = "Dont Panic"}
-> @kbd{printf _"%2$d characters live in \"%1$s\"\n",}
+> @kbd{printf "%2$d characters live in \"%1$s\"\n",}
> @kbd{string, length(string)}
> @kbd{@}'}
@print{} 10 characters live in "Dont Panic"
@@ -26596,7 +26897,7 @@ This is somewhat counterintuitive.
and those with positional specifiers in the same string:
@example
-$ @kbd{gawk 'BEGIN @{ printf _"%d %3$s\n", 1, 2, "hi" @}'}
+$ @kbd{gawk 'BEGIN @{ printf "%d %3$s\n", 1, 2, "hi" @}'}
@error{} gawk: cmd. line:1: fatal: must use `count$' on all formats or none
@end example
@@ -26937,6 +27238,7 @@ The following list defines terms used throughout the rest of
this @value{CHAPTER}.
@table @dfn
+@cindex stack frame
@item Stack Frame
Programs generally call functions during the course of their execution.
One function can call another, or a function can call itself (recursion).
@@ -26958,6 +27260,7 @@ invoked. Commands that print the call stack print information about
each stack frame (as detailed later on).
@item Breakpoint
+@cindex breakpoint
During debugging, you often wish to let the program run until it
reaches a certain point, and then continue execution from there one
statement (or instruction) at a time. The way to do this is to set
@@ -26967,6 +27270,7 @@ take over control of the program's execution. You can add and remove
as many breakpoints as you like.
@item Watchpoint
+@cindex watchpoint
A watchpoint is similar to a breakpoint. The difference is that
breakpoints are oriented around the code: stop when a certain point in the
code is reached. A watchpoint, however, specifies that program execution
@@ -26998,6 +27302,7 @@ by the higher-level @command{awk} commands.
@node Sample Debugging Session
@section Sample Debugging Session
+@cindex sample debugging session
In order to illustrate the use of @command{gawk} as a debugger, let's look at a sample
debugging session. We will use the @command{awk} implementation of the
@@ -27011,13 +27316,16 @@ as our example.
@node Debugger Invocation
@subsection How to Start the Debugger
+@cindex starting the debugger
+@cindex debugger, how to start
-Starting the debugger is almost exactly like running @command{awk}, except you have to
-pass an additional option @option{--debug} or the corresponding short option @option{-D}.
-The file(s) containing the program and any supporting code are given on the command
-line as arguments to one or more @option{-f} options. (@command{gawk} is not designed
-to debug command-line programs, only programs contained in files.) In our case,
-we invoke the debugger like this:
+Starting the debugger is almost exactly like running @command{gawk},
+except you have to pass an additional option @option{--debug} or the
+corresponding short option @option{-D}. The file(s) containing the
+program and any supporting code are given on the command line as arguments
+to one or more @option{-f} options. (@command{gawk} is not designed
+to debug command-line programs, only programs contained in files.)
+In our case, we invoke the debugger like this:
@example
$ @kbd{gawk -D -f getopt.awk -f join.awk -f uniq.awk inputfile}
@@ -27150,7 +27458,7 @@ gawk> @kbd{p NR}
@noindent
So we can see that @code{are_equal()} was only called for the second record
-of the file. Of course, this is because our program contained a rule for
+of the file. Of course, this is because our program contains a rule for
@samp{NR == 1}:
@example
@@ -27350,21 +27658,24 @@ controlling breakpoints are:
@cindex debugger commands, @code{break}
@cindex @code{break} debugger command
@cindex @code{b} debugger command (alias for @code{break})
+@cindex set breakpoint
+@cindex breakpoint, setting
@item @code{break} [[@var{filename}@code{:}]@var{n} | @var{function}] [@code{"@var{expression}"}]
@itemx @code{b} [[@var{filename}@code{:}]@var{n} | @var{function}] [@code{"@var{expression}"}]
Without any argument, set a breakpoint at the next instruction
to be executed in the selected stack frame.
Arguments can be one of the following:
+@c @asis for docbook
@c nested table
-@table @var
-@item n
+@table @asis
+@item @var{n}
Set a breakpoint at line number @var{n} in the current source file.
-@item filename@code{:}n
+@item @var{filename}@code{:}@var{n}
Set a breakpoint at line number @var{n} in source file @var{filename}.
-@item function
+@item @var{function}
Set a breakpoint at entry to (the first instruction of)
function @var{function}.
@end table
@@ -27380,6 +27691,8 @@ it continues executing the program.
@cindex debugger commands, @code{clear}
@cindex @code{clear} debugger command
+@cindex delete breakpoint at location
+@cindex breakpoint at location, how to delete
@item @code{clear} [[@var{filename}@code{:}]@var{n} | @var{function}]
Without any argument, delete any breakpoint at the next instruction
to be executed in the selected stack frame. If the program stops at
@@ -27387,19 +27700,20 @@ a breakpoint, this deletes that breakpoint so that the program
does not stop at that location again. Arguments can be one of the following:
@c nested table
-@table @var
-@item n
+@table @asis
+@item @var{n}
Delete breakpoint(s) set at line number @var{n} in the current source file.
-@item filename@code{:}n
+@item @var{filename}@code{:}@var{n}
Delete breakpoint(s) set at line number @var{n} in source file @var{filename}.
-@item function
+@item @var{function}
Delete breakpoint(s) set at entry to function @var{function}.
@end table
@cindex debugger commands, @code{condition}
@cindex @code{condition} debugger command
+@cindex breakpoint condition
@item @code{condition} @var{n} @code{"@var{expression}"}
Add a condition to existing breakpoint or watchpoint @var{n}. The
condition is an @command{awk} expression that the debugger evaluates
@@ -27413,6 +27727,8 @@ watchpoint is made unconditional.
@cindex debugger commands, @code{delete}
@cindex @code{delete} debugger command
@cindex @code{d} debugger command (alias for @code{delete})
+@cindex delete breakpoint by number
+@cindex breakpoint, delete by number
@item @code{delete} [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
@itemx @code{d} [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
Delete specified breakpoints or a range of breakpoints. Deletes
@@ -27420,6 +27736,8 @@ all defined breakpoints if no argument is supplied.
@cindex debugger commands, @code{disable}
@cindex @code{disable} debugger command
+@cindex disable breakpoint
+@cindex breakpoint, how to disable or enable
@item @code{disable} [@var{n1 n2} @dots{} | @var{n}--@var{m}]
Disable specified breakpoints or a range of breakpoints. Without
any argument, disables all breakpoints.
@@ -27428,6 +27746,7 @@ any argument, disables all breakpoints.
@cindex debugger commands, @code{enable}
@cindex @code{enable} debugger command
@cindex @code{e} debugger command (alias for @code{enable})
+@cindex enable breakpoint
@item @code{enable} [@code{del} | @code{once}] [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
@itemx @code{e} [@code{del} | @code{once}] [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
Enable specified breakpoints or a range of breakpoints. Without
@@ -27447,6 +27766,7 @@ the program stops at the breakpoint.
@cindex debugger commands, @code{ignore}
@cindex @code{ignore} debugger command
+@cindex ignore breakpoint
@item @code{ignore} @var{n} @var{count}
Ignore breakpoint number @var{n} the next @var{count} times it is
hit.
@@ -27455,6 +27775,7 @@ hit.
@cindex debugger commands, @code{tbreak}
@cindex @code{tbreak} debugger command
@cindex @code{t} debugger command (alias for @code{tbreak})
+@cindex temporary breakpoint
@item @code{tbreak} [[@var{filename}@code{:}]@var{n} | @var{function}]
@itemx @code{t} [[@var{filename}@code{:}]@var{n} | @var{function}]
Set a temporary breakpoint (enabled for only one stop).
@@ -27475,6 +27796,8 @@ execution of the program than we saw in our earlier example:
@cindex @code{silent} debugger command
@cindex debugger commands, @code{end}
@cindex @code{end} debugger command
+@cindex breakpoint commands
+@cindex commands to execute at breakpoint
@item @code{commands} [@var{n}]
@itemx @code{silent}
@itemx @dots{}
@@ -27502,6 +27825,7 @@ gawk>
@cindex debugger commands, @code{c} (@code{continue})
@cindex debugger commands, @code{continue}
+@cindex continue program, in debugger
@item @code{continue} [@var{count}]
@itemx @code{c} [@var{count}]
Resume program execution. If continued from a breakpoint and @var{count} is
@@ -27518,6 +27842,7 @@ Print the returned value.
@cindex debugger commands, @code{next}
@cindex @code{next} debugger command
@cindex @code{n} debugger command (alias for @code{next})
+@cindex single-step execution, in the debugger
@item @code{next} [@var{count}]
@itemx @code{n} [@var{count}]
Continue execution to the next source line, stepping over function calls.
@@ -27612,6 +27937,7 @@ items on the list.
@cindex debugger commands, @code{eval}
@cindex @code{eval} debugger command
+@cindex evaluate expressions, in debugger
@item @code{eval "@var{awk statements}"}
Evaluate @var{awk statements} in the context of the running program.
You can do anything that an @command{awk} program would do: assign
@@ -27629,6 +27955,7 @@ parameters defined by the program.
@cindex debugger commands, @code{print}
@cindex @code{print} debugger command
@cindex @code{p} debugger command (alias for @code{print})
+@cindex print variables, in debugger
@item @code{print} @var{var1}[@code{,} @var{var2} @dots{}]
@itemx @code{p} @var{var1}[@code{,} @var{var2} @dots{}]
Print the value of a @command{gawk} variable or field.
@@ -27662,6 +27989,7 @@ No newline is printed unless one is specified.
@cindex debugger commands, @code{set}
@cindex @code{set} debugger command
+@cindex assign values to variables, in debugger
@item @code{set} @var{var}@code{=}@var{value}
Assign a constant (number or string) value to an @command{awk} variable
or field.
@@ -27674,6 +28002,7 @@ You can also set special @command{awk} variables, such as @code{FS},
@cindex debugger commands, @code{watch}
@cindex @code{watch} debugger command
@cindex @code{w} debugger command (alias for @code{watch})
+@cindex set watchpoint
@item @code{watch} @var{var} | @code{$}@var{n} [@code{"@var{expression}"}]
@itemx @code{w} @var{var} | @code{$}@var{n} [@code{"@var{expression}"}]
Add variable @var{var} (or field @code{$@var{n}}) to the watch list.
@@ -27690,12 +28019,14 @@ then the debugger stops execution and prompts for a command. Otherwise,
@cindex debugger commands, @code{undisplay}
@cindex @code{undisplay} debugger command
+@cindex stop automatic display, in debugger
@item @code{undisplay} [@var{n}]
Remove item number @var{n} (or all items, if no argument) from the
automatic display list.
@cindex debugger commands, @code{unwatch}
@cindex @code{unwatch} debugger command
+@cindex delete watchpoint
@item @code{unwatch} [@var{n}]
Remove item number @var{n} (or all items, if no argument) from the
watch list.
@@ -27716,6 +28047,8 @@ functions which called the one you are in. The commands for doing this are:
@cindex debugger commands, @code{backtrace}
@cindex @code{backtrace} debugger command
@cindex @code{bt} debugger command (alias for @code{backtrace})
+@cindex call stack, display in debugger
+@cindex traceback, display in debugger
@item @code{backtrace} [@var{count}]
@itemx @code{bt} [@var{count}]
Print a backtrace of all function calls (stack frames), or innermost @var{count}
@@ -27769,25 +28102,32 @@ The value for @var{what} should be one of the following:
@c nested table
@table @code
@item args
+@cindex show function arguments, in debugger
Arguments of the selected frame.
@item break
+@cindex show breakpoints
List all currently set breakpoints.
@item display
+@cindex automatic displays, in debugger
List all items in the automatic display list.
@item frame
+@cindex describe call stack frame, in debugger
Description of the selected stack frame.
@item functions
+@cindex list function definitions, in debugger
List all function definitions including source file names and
line numbers.
@item locals
+@cindex show local variables, in debugger
Local variables of the selected frame.
@item source
+@cindex show name of current source file, in debugger
The name of the current source file. Each time the program stops, the
current source file is the file containing the current instruction.
When the debugger first starts, the current source file is the first file
@@ -27796,12 +28136,15 @@ included via the @option{-f} option. The
be used at any time to change the current source.
@item sources
+@cindex show all source files, in debugger
List all program sources.
@item variables
+@cindex list all global variables, in debugger
List all global variables.
@item watch
+@cindex show watchpoints
List all items in the watch list.
@end table
@end table
@@ -27815,6 +28158,8 @@ from a file. The commands are:
@cindex debugger commands, @code{option}
@cindex @code{option} debugger command
@cindex @code{o} debugger command (alias for @code{option})
+@cindex display debugger options
+@cindex debugger options
@item @code{option} [@var{name}[@code{=}@var{value}]]
@itemx @code{o} [@var{name}[@code{=}@var{value}]]
Without an argument, display the available debugger options
@@ -27826,30 +28171,37 @@ The available options are:
@c nested table
@table @code
@item history_size
+@cindex debugger history size
The maximum number of lines to keep in the history file @file{./.gawk_history}.
The default is 100.
@item listsize
+@cindex debugger default list amount
The number of lines that @code{list} prints. The default is 15.
@item outfile
+@cindex redirect @command{gawk} output, in debugger
Send @command{gawk} output to a file; debugger output still goes
to standard output. An empty string (@code{""}) resets output to
standard output.
@item prompt
+@cindex debugger prompt
The debugger prompt. The default is @samp{@w{gawk> }}.
@item save_history @r{[}on @r{|} off@r{]}
+@cindex debugger history file
Save command history to file @file{./.gawk_history}.
The default is @code{on}.
@item save_options @r{[}on @r{|} off@r{]}
+@cindex save debugger options
Save current options to file @file{./.gawkrc} upon exit.
The default is @code{on}.
Options are read back in to the next session upon startup.
@item trace @r{[}on @r{|} off@r{]}
+@cindex instruction tracing, in debugger
Turn instruction tracing on or off. The default is @code{off}.
@end table
@@ -27858,6 +28210,7 @@ Save the commands from the current session to the given file name,
so that they can be replayed using the @command{source} command.
@item @code{source} @var{filename}
+@cindex debugger, read commands from a file
Run command(s) from a file; an error in any command does not
terminate execution of subsequent commands. Comments (lines starting
with @samp{#}) are allowed in a command file.
@@ -27956,8 +28309,8 @@ about the command @var{command}.
@cindex debugger commands, @code{list}
@cindex @code{list} debugger command
@cindex @code{l} debugger command (alias for @code{list})
-@item @code{list} [@code{-} | @code{+} | @var{n} | @var{filename@code{:}n} | @var{n}--@var{m} | @var{function}]
-@itemx @code{l} [@code{-} | @code{+} | @var{n} | @var{filename@code{:}n} | @var{n}--@var{m} | @var{function}]
+@item @code{list} [@code{-} | @code{+} | @var{n} | @var{filename}@code{:}@var{n} | @var{n}--@var{m} | @var{function}]
+@itemx @code{l} [@code{-} | @code{+} | @var{n} | @var{filename}@code{:}@var{n} | @var{n}--@var{m} | @var{function}]
Print the specified lines (default 15) from the current source file
or the file named @var{filename}. The possible arguments to @code{list}
are as follows:
@@ -27977,7 +28330,7 @@ Print lines centered around line number @var{n}.
@item @var{n}--@var{m}
Print lines from @var{n} to @var{m}.
-@item @var{filename@code{:}n}
+@item @var{filename}@code{:}@var{n}
Print lines centered around line number @var{n} in
source file @var{filename}. This command may change the current source file.
@@ -27990,6 +28343,7 @@ function @var{function}. This command may change the current source file.
@cindex debugger commands, @code{quit}
@cindex @code{quit} debugger command
@cindex @code{q} debugger command (alias for @code{quit})
+@cindex exit the debugger
@item @code{quit}
@itemx @code{q}
Exit the debugger. Debugging is great fun, but sometimes we all have
@@ -28013,6 +28367,8 @@ fairly self-explanatory, and using @code{stepi} and @code{nexti} while
@node Readline Support
@section Readline Support
+@cindex command completion, in debugger
+@cindex history expansion, in debugger
If @command{gawk} is compiled with the @code{readline} library, you
can take advantage of that library's command completion and history expansion
@@ -28100,9 +28456,7 @@ be added, and of course feel free to try to add them yourself!
@cindex arbitrary precision
@cindex multiple precision
@cindex infinite precision
-@cindex floating-point numbers, arbitrary precision
-@cindex MPFR
-@cindex GMP
+@cindex floating-point, numbers@comma{} arbitrary precision
@cindex Knuth, Donald
@quotation
@@ -28446,23 +28800,38 @@ then the answer is
@math{2^{53}}.
@end iftex
@ifnottex
+@ifnotdocbook
2^53.
+@end ifnotdocbook
@end ifnottex
+@docbook
+2<superscript>53</superscript>. @c
+@end docbook
The next representable number is the even number
@iftex
@math{2^{53} + 2},
@end iftex
@ifnottex
+@ifnotdocbook
2^53 + 2,
+@end ifnotdocbook
@end ifnottex
+@docbook
+2<superscript>53</superscript> &plus; 2, @c
+@end docbook
meaning it is unlikely that you will be able to make
@command{gawk} print
@iftex
@math{2^{53} + 1}
@end iftex
@ifnottex
+@ifnotdocbook
2^53 + 1
+@end ifnotdocbook
@end ifnottex
+@docbook
+2<superscript>53</superscript> &plus; 1 @c
+@end docbook
in integer format.
The range of integers exactly representable by a 64-bit double
is
@@ -28470,8 +28839,13 @@ is
@math{[-2^{53}, 2^{53}]}.
@end iftex
@ifnottex
+@ifnotdocbook
[@minus{}2^53, 2^53].
+@end ifnotdocbook
@end ifnottex
+@docbook
+[&minus;2<superscript>53</superscript>, 2<superscript>53</superscript>]. @c
+@end docbook
If you ever see an integer outside this range in @command{awk}
using 64-bit doubles, you have reason to be very suspicious about
the accuracy of the output. Here is a simple program with erroneous output:
@@ -28695,8 +29069,13 @@ number is then
@math{s @cdot 2^e}.
@end iftex
@ifnottex
+@ifnotdocbook
@var{s * 2^e}.
+@end ifnotdocbook
@end ifnottex
+@docbook
+<emphasis>s &sdot; 2<superscript>e</superscript></emphasis>. @c
+@end docbook
The first bit of a non-zero binary significand
is always one, so the significand in an IEEE-754 format only includes the
fractional part, leaving the leading one implicit.
@@ -28866,6 +29245,8 @@ when you change the rounding mode.
@node Gawk and MPFR
@section @command{gawk} + MPFR = Powerful Arithmetic
+@cindex MPFR
+@cindex GMP
The rest of this @value{CHAPTER} describes how to use the arbitrary precision
(also known as @dfn{multiple precision} or @dfn{infinite precision}) numeric
@@ -28878,12 +29259,17 @@ The easiest way to find out is to look at the output of
the following command:
@example
-$ @kbd{gawk --version}
-@print{} GNU Awk 4.1.0, API: 1.0 (GNU MPFR 3.1.0-p3, GNU MP 5.0.2)
-@print{} Copyright (C) 1989, 1991-2013 Free Software Foundation.
+$ @kbd{./gawk --version}
+@print{} GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.0-p3, GNU MP 5.0.2)
+@print{} Copyright (C) 1989, 1991-2014 Free Software Foundation.
@dots{}
@end example
+@noindent
+(You may see different version numbers than what's shown here. That's OK;
+what's important is to see that GNU MPFR and GNU MP are listed in
+the output.)
+
@command{gawk} uses the
@uref{http://www.mpfr.org, GNU MPFR}
and
@@ -28937,8 +29323,13 @@ numbers are not implemented.}
(@math{emax = 2^{30} - 1, emin = -emax})
@end iftex
@ifnottex
+@ifnotdocbook
(@var{emax} = 2^30 @minus{} 1, @var{emin} = @minus{}@var{emax})
+@end ifnotdocbook
@end ifnottex
+@docbook
+(<emphasis>emax</emphasis> = 2<superscript>30</superscript> &minus; 1, <emphasis>emin</emphasis> = &minus;<emphasis>emax</emphasis>) @c
+@end docbook
for all floating-point contexts.
There is no explicit mechanism to adjust the exponent range.
MPFR does not implement subnormal numbers by default,
@@ -28970,6 +29361,7 @@ your program.
@node Setting Precision
@subsection Setting the Working Precision
@cindex @code{PREC} variable
+@cindex setting working precision
@command{gawk} uses a global working precision; it does not keep track of
the precision or accuracy of individual numbers. Performing an arithmetic
@@ -29009,8 +29401,15 @@ formula:
@math{prec = 3.322 @cdot dps}
@end iftex
@ifnottex
+@ifnotdocbook
@var{prec} = 3.322 * @var{dps}
+@end ifnotdocbook
@end ifnottex
+@docbook
+<para>
+<emphasis>prec</emphasis> = 3.322 &sdot; <emphasis>dps</emphasis> @c
+</para>
+@end docbook
@noindent
Here, @var{prec} denotes the binary precision
@@ -29045,6 +29444,7 @@ issues that occur because numbers are stored internally in binary.
@node Setting Rounding Mode
@subsection Setting the Rounding Mode
@cindex @code{ROUNDMODE} variable
+@cindex setting rounding mode
The @code{ROUNDMODE} variable provides
program level control over the rounding mode.
@@ -29112,6 +29512,7 @@ In the first case, the number is stored with the default precision of 53 bits.
@node Changing Precision
@subsection Changing the Precision of a Number
+@cindex changing precision of a number
@cindex Laurie, Dirk
@quotation
@@ -29229,7 +29630,8 @@ the problem at hand is often the correct approach in such situations.
@node Arbitrary Precision Integers
@section Arbitrary Precision Integer Arithmetic with @command{gawk}
-@cindex integer, arbitrary precision
+@cindex integers, arbitrary precision
+@cindex arbitrary precision integers
If one of the options @option{--bignum} or @option{-M} is specified,
@command{gawk} performs all
@@ -29243,8 +29645,13 @@ For example, the following computes
@math{5^{4^{3^{2}}}},
@end iftex
@ifnottex
+@ifnotdocbook
5^4^3^2,
+@end ifnotdocbook
@end ifnottex
+@docbook
+5<superscript>4<superscript>3<superscript>2</superscript></superscript></superscript>, @c
+@end docbook
the result of which is beyond the
limits of ordinary @command{gawk} numbers:
@@ -29266,9 +29673,16 @@ floating-point values instead, the precision needed for correct output
would be @math{3.322 @cdot 183231},
@end iftex
@ifnottex
+@ifnotdocbook
@samp{prec = 3.322 * dps}),
would be 3.322 x 183231,
+@end ifnotdocbook
@end ifnottex
+@docbook
+<emphasis>prec</emphasis> = 3.322 &sdot; <emphasis>dps</emphasis>),
+would be
+<emphasis>prec</emphasis> = 3.322 &sdot; 183231, @c
+@end docbook
or 608693.
The result from an arithmetic operation with an integer and a floating-point value
@@ -29317,7 +29731,7 @@ to begin with:
gawk -M 'BEGIN @{ n = 13.0; print n % 2.0 @}'
@end example
-Note that for the particular example above, there is likely best
+Note that for the particular example above, it is likely best
to just use the following:
@example
@@ -29326,6 +29740,7 @@ gawk -M 'BEGIN @{ n = 13; print n % 2 @}'
@node Dynamic Extensions
@chapter Writing Extensions for @command{gawk}
+@cindex dynamically loaded extensions
It is possible to add new functions written in C or C++ to @command{gawk} using
dynamically loaded libraries. This facility is available on systems
@@ -29360,6 +29775,7 @@ When @option{--sandbox} is specified, extensions are disabled
@node Extension Intro
@section Introduction
+@cindex plug-in
An @dfn{extension} (sometimes called a @dfn{plug-in}) is a piece of
external compiled code that @command{gawk} can load at runtime to
provide additional functionality, over and above the built-in capabilities
@@ -29405,8 +29821,14 @@ Communication between
@command{gawk} and an extension is two-way. First, when an extension
is loaded, it is passed a pointer to a @code{struct} whose fields are
function pointers.
+@ifnotdocbook
This is shown in @ref{load-extension}.
+@end ifnotdocbook
+@ifdocbook
+This is shown in @inlineraw{docbook, <xref linkend="load-extension"/>}.
+@end ifdocbook
+@ifnotdocbook
@float Figure,load-extension
@caption{Loading The Extension}
@c FIXME: One day, it should not be necessary to have two cases,
@@ -29419,13 +29841,27 @@ This is shown in @ref{load-extension}.
@center @image{api-figure1, , , Loading the extension}
@end ifnotinfo
@end float
+@end ifnotdocbook
+
+@docbook
+<figure id="load-extension">
+<title>Loading the extension</title>
+<graphic fileref="api-figure1.eps"/>
+</figure>
+@end docbook
The extension can call functions inside @command{gawk} through these
function pointers, at runtime, without needing (link-time) access
to @command{gawk}'s symbols. One of these function pointers is to a
function for ``registering'' new built-in functions.
+@ifnotdocbook
This is shown in @ref{load-new-function}.
+@end ifnotdocbook
+@ifdocbook
+This is shown in @inlineraw{docbook, <xref linkend="load-new-function"/>}.
+@end ifdocbook
+@ifnotdocbook
@float Figure,load-new-function
@caption{Loading The New Function}
@ifinfo
@@ -29435,14 +29871,28 @@ This is shown in @ref{load-new-function}.
@center @image{api-figure2, , , Loading the new function}
@end ifnotinfo
@end float
+@end ifnotdocbook
+
+@docbook
+<figure id="load-new-function">
+<title>Loading the new function</title>
+<graphic fileref="api-figure2.eps"/>
+</figure>
+@end docbook
In the other direction, the extension registers its new functions
with @command{gawk} by passing function pointers to the functions that
provide the new feature (@code{do_chdir()}, for example). @command{gawk}
associates the function pointer with a name and can then call it, using a
defined calling convention.
+@ifnotdocbook
This is shown in @ref{call-new-function}.
+@end ifnotdocbook
+@ifdocbook
+This is shown in @inlineraw{docbook, <xref linkend="call-new-function"/>}.
+@end ifdocbook
+@ifnotdocbook
@float Figure,call-new-function
@caption{Calling The New Function}
@ifinfo
@@ -29452,6 +29902,14 @@ This is shown in @ref{call-new-function}.
@center @image{api-figure3, , , Calling the new function}
@end ifnotinfo
@end float
+@end ifnotdocbook
+
+@docbook
+<figure id="call-new-function">
+<title>Calling The New Function</title>
+<graphic fileref="api-figure3.eps"/>
+</figure>
+@end docbook
The @code{do_@var{xxx}()} function, in turn, then uses the function
pointers in the API @code{struct} to do its work, such as updating
@@ -29488,6 +29946,7 @@ happen, but we all know how @emph{that} goes.)
@node Extension API Description
@section API Description
+@cindex extension API
This (rather large) @value{SECTION} describes the API in detail.
@@ -29495,6 +29954,7 @@ This (rather large) @value{SECTION} describes the API in detail.
* Extension API Functions Introduction:: Introduction to the API functions.
* General Data Types:: The data types.
* Requesting Values:: How to get a value.
+* Memory Allocation Functions:: Functions for allocating memory.
* Constructor Functions:: Functions for creating values.
* Registration Functions:: Functions to register things with
@command{gawk}.
@@ -29550,6 +30010,9 @@ Symbol table access: retrieving a global variable, creating one,
or changing one.
@item
+Allocating, reallocating, and releasing memory.
+
+@item
Creating and releasing cached values; this provides an
efficient way to use values for multiple variables and
can be a big performance win.
@@ -29588,10 +30051,8 @@ corresponding standard header file @emph{before} including @file{gawkapi.h}:
@item @code{EOF} @tab @code{<stdio.h>}
@item @code{FILE} @tab @code{<stdio.h>}
@item @code{NULL} @tab @code{<stddef.h>}
-@item @code{malloc()} @tab @code{<stdlib.h>}
@item @code{memcpy()} @tab @code{<string.h>}
@item @code{memset()} @tab @code{<string.h>}
-@item @code{realloc()} @tab @code{<stdlib.h>}
@item @code{size_t} @tab @code{<sys/types.h>}
@item @code{struct stat} @tab @code{<sys/stat.h>}
@end multitable
@@ -29621,8 +30082,9 @@ does not support this keyword, you should either place
All pointers filled in by @command{gawk} are to memory
managed by @command{gawk} and should be treated by the extension as
read-only. Memory for @emph{all} strings passed into @command{gawk}
-from the extension @emph{must} come from @code{malloc()} and is managed
-by @command{gawk} from then on.
+from the extension @emph{must} come from calling the API-provided function
+pointers @code{api_malloc()}, @code{api_calloc()} or @code{api_realloc()},
+and is managed by @command{gawk} from then on.
@item
The API defines several simple @code{struct}s that map values as seen
@@ -29662,6 +30124,8 @@ the macros as if they were functions.
@node General Data Types
@subsection General Purpose Data Types
+@cindex Robbins, Arnold
+@cindex Ramey, Chet
@quotation
@i{I have a true love/hate relationship with unions.}
@author Arnold Robbins
@@ -29702,7 +30166,8 @@ A simple boolean type.
This represents a mutable string. @command{gawk}
owns the memory pointed to if it supplied
the value. Otherwise, it takes ownership of the memory pointed to.
-@strong{Such memory must come from @code{malloc()}!}
+@strong{Such memory must come from calling the API-provided function
+pointers @code{api_malloc()}, @code{api_calloc()}, or @code{api_realloc()}!}
As mentioned earlier, strings are maintained using the current
multibyte encoding.
@@ -29818,7 +30283,94 @@ print an error message, or reissue the request for the actual
value type, as appropriate. This behavior is summarized in
@ref{table-value-types-returned}.
+@c FIXME: Try to do this with spans...
+@ifdocbook
+@anchor{table-value-types-returned}
+@end ifdocbook
+@docbook
+<informaltable>
+<tgroup cols="2">
+ <colspec colwidth="50*"/><colspec colwidth="50*"/>
+ <thead>
+ <row><entry></entry><entry><para>Type of Actual Value:</para></entry></row>
+ </thead>
+ <tbody>
+ <row><entry></entry><entry></entry></row>
+ </tbody>
+</tgroup>
+<tgroup cols="6">
+ <colspec colwidth="16.6*"/>
+ <colspec colwidth="16.6*"/>
+ <colspec colwidth="19.8*"/>
+ <colspec colwidth="15*"/>
+ <colspec colwidth="15*"/>
+ <colspec colwidth="16.6*"/>
+ <thead>
+ <row>
+ <entry></entry>
+ <entry></entry>
+ <entry><para>String</para></entry>
+ <entry><para>Number</para></entry>
+ <entry><para>Array</para></entry>
+ <entry><para>Undefined</para></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry></entry>
+ <entry><para><emphasis role="bold">String</emphasis></para></entry>
+ <entry><para>String</para></entry>
+ <entry><para>String</para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para></entry>
+ </row>
+ <row>
+ <entry></entry>
+ <entry><para><emphasis role="bold">Number</emphasis></para></entry>
+ <entry><para>Number if can be converted, else false</para></entry>
+ <entry><para>Number</para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para></entry>
+ </row>
+ <row>
+ <entry><para><emphasis role="bold">Type</emphasis></para></entry>
+ <entry><para><emphasis role="bold">Array</emphasis></para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>Array</para></entry>
+ <entry><para>false</para></entry>
+ </row>
+ <row>
+ <entry><para><emphasis role="bold">Requested:</emphasis></para></entry>
+ <entry><para><emphasis role="bold">Scalar</emphasis></para></entry>
+ <entry><para>Scalar</para></entry>
+ <entry><para>Scalar</para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para></entry>
+ </row>
+ <row>
+ <entry></entry>
+ <entry><para><emphasis role="bold">Undefined</emphasis></para></entry>
+ <entry><para>String</para></entry>
+ <entry><para>Number</para></entry>
+ <entry><para>Array</para></entry>
+ <entry><para>Undefined</para></entry>
+ </row>
+ <row>
+ <entry></entry>
+ <entry><para><emphasis role="bold">Value Cookie</emphasis></para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para>
+ </entry><entry><para>false</para></entry>
+ </row>
+ </tbody>
+</tgroup>
+</informaltable>
+@end docbook
+
@ifnotplaintext
+@ifnotdocbook
@float Table,table-value-types-returned
@caption{Value Types Returned}
@multitable @columnfractions .50 .50
@@ -29834,6 +30386,7 @@ value type, as appropriate. This behavior is summarized in
@item @tab @b{Value Cookie} @tab false @tab false @tab false @tab false
@end multitable
@end float
+@end ifnotdocbook
@end ifnotplaintext
@ifplaintext
@float Table,table-value-types-returned
@@ -29864,45 +30417,46 @@ value type, as appropriate. This behavior is summarized in
@end float
@end ifplaintext
-@node Constructor Functions
-@subsection Constructor Functions and Convenience Macros
+@node Memory Allocation Functions
+@subsection Memory Allocation Functions and Convenience Macros
+@cindex allocating memory for extensions
+@cindex extensions, allocating memory
-The API provides a number of @dfn{constructor} functions for creating
-string and numeric values, as well as a number of convenience macros.
-This @value{SUBSECTION} presents them all as function prototypes, in
-the way that extension code would use them.
+The API provides a number of @dfn{memory allocation} functions for
+allocating memory that can be passed to @command{gawk}, as well as a number of
+convenience macros.
@table @code
-@item static inline awk_value_t *
-@itemx make_const_string(const char *string, size_t length, awk_value_t *result)
-This function creates a string value in the @code{awk_value_t} variable
-pointed to by @code{result}. It expects @code{string} to be a C string constant
-(or other string data), and automatically creates a @emph{copy} of the data
-for storage in @code{result}. It returns @code{result}.
+@item void *gawk_malloc(size_t size);
+Call @command{gawk}-provided @code{api_malloc()} to allocate storage that may
+be passed to @command{gawk}.
-@item static inline awk_value_t *
-@itemx make_malloced_string(const char *string, size_t length, awk_value_t *result)
-This function creates a string value in the @code{awk_value_t} variable
-pointed to by @code{result}. It expects @code{string} to be a @samp{char *}
-value pointing to data previously obtained from @code{malloc()}. The idea here
-is that the data is passed directly to @command{gawk}, which assumes
-responsibility for it. It returns @code{result}.
+@item void *gawk_calloc(size_t nmemb, size_t size);
+Call @command{gawk}-provided @code{api_calloc()} to allocate storage that may
+be passed to @command{gawk}.
-@item static inline awk_value_t *
-@itemx make_null_string(awk_value_t *result)
-This specialized function creates a null string (the ``undefined'' value)
-in the @code{awk_value_t} variable pointed to by @code{result}.
-It returns @code{result}.
+@item void *gawk_realloc(void *ptr, size_t size);
+Call @command{gawk}-provided @code{api_realloc()} to allocate storage that may
+be passed to @command{gawk}.
-@item static inline awk_value_t *
-@itemx make_number(double num, awk_value_t *result)
-This function simply creates a numeric value in the @code{awk_value_t} variable
-pointed to by @code{result}.
+@item void gawk_free(void *ptr);
+Call @command{gawk}-provided @code{api_free()} to release storage that was
+allocated with @code{gawk_malloc()}, @code{gawk_calloc()} or @code{gawk_realloc()}.
@end table
-Two convenience macros may be used for allocating storage from @code{malloc()}
-and @code{realloc()}. If the allocation fails, they cause @command{gawk} to
-exit with a fatal error message. They should be used as if they were
+The API has to provide these functions because it is possible
+for an extension to be compiled and linked against a different
+version of the C library than was used for the @command{gawk}
+executable.@footnote{This is more common on MS-Windows systems, but
+can happen on Unix-like systems as well.} If @command{gawk} were
+to use its version of @code{free()} when the memory came from an
+unrelated version of @code{malloc()}, unexpected behavior would
+likely result.
+
+Two convenience macros may be used for allocating storage
+from the API-provided function pointers @code{api_malloc()} and
+@code{api_realloc()}. If the allocation fails, they cause @command{gawk}
+to exit with a fatal error message. They should be used as if they were
procedure calls that do not return a value.
@table @code
@@ -29914,7 +30468,7 @@ The arguments to this macro are as follows:
The pointer variable to point at the allocated storage.
@item type
-The type of the pointer variable, used to create a cast for the call to @code{malloc()}.
+The type of the pointer variable, used to create a cast for the call to @code{api_malloc()}.
@item size
The total number of bytes to be allocated.
@@ -29938,13 +30492,51 @@ make_malloced_string(message, strlen(message), & result);
@end example
@item #define erealloc(pointer, type, size, message) @dots{}
-This is like @code{emalloc()}, but it calls @code{realloc()},
-instead of @code{malloc()}.
+This is like @code{emalloc()}, but it calls @code{api_realloc()},
+instead of @code{api_malloc()}.
The arguments are the same as for the @code{emalloc()} macro.
@end table
+@node Constructor Functions
+@subsection Constructor Functions
+
+The API provides a number of @dfn{constructor} functions for creating
+string and numeric values, as well as a number of convenience macros.
+This @value{SUBSECTION} presents them all as function prototypes, in
+the way that extension code would use them.
+
+@table @code
+@item static inline awk_value_t *
+@itemx make_const_string(const char *string, size_t length, awk_value_t *result)
+This function creates a string value in the @code{awk_value_t} variable
+pointed to by @code{result}. It expects @code{string} to be a C string constant
+(or other string data), and automatically creates a @emph{copy} of the data
+for storage in @code{result}. It returns @code{result}.
+
+@item static inline awk_value_t *
+@itemx make_malloced_string(const char *string, size_t length, awk_value_t *result)
+This function creates a string value in the @code{awk_value_t} variable
+pointed to by @code{result}. It expects @code{string} to be a @samp{char *}
+value pointing to data previously obtained from the api-provided functions @code{api_malloc()}, @code{api_calloc()} or @code{api_realloc()}. The idea here
+is that the data is passed directly to @command{gawk}, which assumes
+responsibility for it. It returns @code{result}.
+
+@item static inline awk_value_t *
+@itemx make_null_string(awk_value_t *result)
+This specialized function creates a null string (the ``undefined'' value)
+in the @code{awk_value_t} variable pointed to by @code{result}.
+It returns @code{result}.
+
+@item static inline awk_value_t *
+@itemx make_number(double num, awk_value_t *result)
+This function simply creates a numeric value in the @code{awk_value_t} variable
+pointed to by @code{result}.
+@end table
+
@node Registration Functions
@subsection Registration Functions
+@cindex register extension
+@cindex extension registration
This @value{SECTION} describes the API functions for
registering parts of your extension with @command{gawk}.
@@ -29989,8 +30581,8 @@ Letter case in function names is significant.
This is a pointer to the C function that provides the desired
functionality.
The function must fill in the result with either a number
-or a string. @command{awk} takes ownership of any string memory.
-As mentioned earlier, string memory @strong{must} come from @code{malloc()}.
+or a string. @command{gawk} takes ownership of any string memory.
+As mentioned earlier, string memory @strong{must} come from the api-provided functions @code{api_malloc()}, @code{api_calloc()} or @code{api_realloc()}.
The @code{num_actual_args} argument tells the C function how many
actual parameters were passed from the calling @command{awk} code.
@@ -30066,6 +30658,7 @@ is invoked with the @option{--version} option.
@node Input Parsers
@subsubsection Customized Input Parsers
+@cindex customized input parser
By default, @command{gawk} reads text files as its input. It uses the value
of @code{RS} to find the end of the record, and then uses @code{FS}
@@ -30313,7 +30906,9 @@ Register the input parser pointed to by @code{input_parser} with
@node Output Wrappers
@subsubsection Customized Output Wrappers
+@cindex customized output wrapper
+@cindex output wrapper
An @dfn{output wrapper} is the mirror image of an input parser.
It allows an extension to take over the output to a file opened
with the @samp{>} or @samp{>>} I/O redirection operators (@pxref{Redirection}).
@@ -30427,6 +31022,7 @@ Register the output wrapper pointed to by @code{output_wrapper} with
@node Two-way processors
@subsubsection Customized Two-way Processors
+@cindex customized two-way processor
A @dfn{two-way processor} combines an input parser and an output wrapper for
two-way I/O with the @samp{|&} operator (@pxref{Redirection}). It makes identical
@@ -30484,6 +31080,8 @@ Register the two-way processor pointed to by @code{two_way_processor} with
@node Printing Messages
@subsection Printing Messages
+@cindex printing messages from extensions
+@cindex messages from extensions
You can print different kinds of warning messages from your
extension, as described below. Note that for these functions,
@@ -30557,6 +31155,7 @@ for more information on creating arrays.
@node Symbol Table Access
@subsection Symbol Table Access
+@cindex accessing global variables from extensions
Two sets of routines provide access to global variables, and one set
allows you to create and release cached values.
@@ -30602,6 +31201,13 @@ An extension can look up the value of @command{gawk}'s special variables.
However, with the exception of the @code{PROCINFO} array, an extension
cannot change any of those variables.
+@quotation NOTE
+It is possible for the lookup of @code{PROCINFO} to fail. This happens if
+the @command{awk} program being run does not reference @code{PROCINFO};
+in this case @command{gawk} doesn't bother to create the array and
+populate it.
+@end quotation
+
@node Symbol table by cookie
@subsubsection Variable Access and Update by Cookie
@@ -30728,7 +31334,7 @@ assign those values to variables using @code{sym_update()}
or @code{sym_update_scalar()}, as you like.
However, you can understand the point of cached values if you remember that
-@emph{every} string value's storage @emph{must} come from @code{malloc()}.
+@emph{every} string value's storage @emph{must} come from @code{api_malloc()}, @code{api_calloc()} or @code{api_realloc()}.
If you have 20 variables, all of which have the same string value, you
must create 20 identical copies of the string.@footnote{Numeric values
are clearly less problematic, requiring only a C @code{double} to store.}
@@ -30814,6 +31420,7 @@ you should release any cached values that you created, using
@node Array Manipulation
@subsection Array Manipulation
+@cindex array manipulation in extensions
The primary data structure@footnote{Okay, the only data structure.} in @command{awk}
is the associative array (@pxref{Arrays}).
@@ -30925,7 +31532,7 @@ requires that you understand how such values are converted to strings
(@pxref{Conversion}); thus using integral values is safest.
As with @emph{all} strings passed into @code{gawk} from an extension,
-the string value of @code{index} must come from @code{malloc()}, and
+the string value of @code{index} must come from the API-provided functions @code{api_malloc()}, @code{api_calloc()} or @code{api_realloc()} and
@command{gawk} releases the storage.
@item awk_bool_t set_array_element(awk_array_t a_cookie,
@@ -31393,6 +32000,8 @@ information about how @command{gawk} was invoked.
@node Extension Versioning
@subsubsection API Version Constants and Variables
+@cindex API version
+@cindex extension API version
The API provides both a ``major'' and a ``minor'' version number.
The API versions are available at compile time as constants:
@@ -31446,6 +32055,8 @@ provided in @file{gawkapi.h} (discussed later, in
@node Extension API Informational Variables
@subsubsection Informational Variables
+@cindex API informational variables
+@cindex extension API informational variables
The API provides access to several variables that describe
whether the corresponding command-line options were enabled when
@@ -31591,6 +32202,8 @@ the version string with @command{gawk}.
@node Finding Extensions
@section How @command{gawk} Finds Extensions
+@cindex extension search path
+@cindex finding extensions
Compiled extensions have to be installed in a directory where
@command{gawk} can find them. If @command{gawk} is configured and
@@ -31601,6 +32214,7 @@ path with a list of directories to search for compiled extensions.
@node Extension Example
@section Example: Some File Functions
+@cindex extension example
@quotation
@i{No matter where you go, there you are.}
@@ -32059,7 +32673,7 @@ do_stat(int nargs, awk_value_t *result)
awk_array_t array;
int ret;
struct stat sbuf;
- /* default is stat() */
+ /* default is lstat() */
int (*statfunc)(const char *path, struct stat *sbuf) = lstat;
assert(result != NULL);
@@ -32245,6 +32859,7 @@ $ @kbd{AWKLIBPATH=$PWD gawk -f testff.awk}
@node Extension Samples
@section The Sample Extensions In The @command{gawk} Distribution
+@cindex extensions distributed with @command{gawk}
This @value{SECTION} provides brief overviews of the sample extensions
that come in the @command{gawk} distribution. Some of them are intended
@@ -32287,7 +32902,7 @@ upon success or less than zero upon error. In the latter case it updates
@code{ERRNO}.
@cindex @code{stat()} extension function
-@item result = stat("/some/path", statdata [, follow])
+@item result = stat("/some/path", statdata @r{[}, follow@r{]})
The @code{stat()} function provides a hook into the
@code{stat()} system call.
It returns zero upon success or less than zero upon error.
@@ -32497,19 +33112,23 @@ See @file{test/fts.awk} in the @command{gawk} distribution for an example.
@node Extension Sample Fnmatch
@subsection Interface To @code{fnmatch()}
-@cindex @code{fnmatch()} extension function
This extension provides an interface to the C library
@code{fnmatch()} function. The usage is:
-@example
-@@load "fnmatch"
+@table @code
+@item @@load "fnmatch"
+This is how you load the extension.
-result = fnmatch(pattern, string, flags)
-@end example
+@cindex @code{fnmatch()} extension function
+@item result = fnmatch(pattern, string, flags)
+The return value is zero on success, @code{FNM_NOMATCH}
+if the string did not match the pattern, or
+a different non-zero value if an error occurred.
+@end table
-The @code{fnmatch} extension adds a single function named
-@code{fnmatch()}, one constant (@code{FNM_NOMATCH}), and an array of
-flag values named @code{FNM}.
+Besides the @code{fnmatch()} function, the @code{fnmatch} extension
+adds one constant (@code{FNM_NOMATCH}), and an array of flag values
+named @code{FNM}.
The arguments to @code{fnmatch()} are:
@@ -32525,10 +33144,6 @@ Either zero, or the bitwise OR of one or more of the
flags in the @code{FNM} array.
@end table
-The return value is zero on success, @code{FNM_NOMATCH}
-if the string did not match the pattern, or
-a different non-zero value if an error occurred.
-
The flags are follows:
@multitable @columnfractions .25 .75
@@ -32572,15 +33187,15 @@ This is how you load the extension.
@cindex @code{fork()} extension function
@item pid = fork()
-This function creates a new process. The return value is the zero in the
-child and the process-id number of the child in the parent, or @minus{}1
+This function creates a new process. The return value is zero in the
+child and the process-ID number of the child in the parent, or @minus{}1
upon error. In the latter case, @code{ERRNO} indicates the problem.
In the child, @code{PROCINFO["pid"]} and @code{PROCINFO["ppid"]} are
updated to reflect the correct values.
@cindex @code{waitpid()} extension function
@item ret = waitpid(pid)
-This function takes a numeric argument, which is the process-id to
+This function takes a numeric argument, which is the process-ID to
wait for. The return value is that of the
@code{waitpid()} system call.
@@ -32836,7 +33451,7 @@ ret = reada("arraydump.bin", array)
@subsection Reading An Entire File
The @code{readfile} extension adds a single function
-named @code{readfile()}:
+named @code{readfile()}, and an input parser:
@table @code
@item @@load "readfile"
@@ -32847,6 +33462,12 @@ This is how you load the extension.
The argument is the name of the file to read. The return value is a
string containing the entire contents of the requested file. Upon error,
the function returns the empty string and sets @code{ERRNO}.
+
+@item BEGIN @{ PROCINFO["readfile"] = 1 @}
+In addition, the extension adds an input parser that is activated if
+@code{PROCINFO["readfile"]} exists.
+When activated, each input file is returned in its entirety as @code{$0}.
+@code{RT} is set to the null string.
@end table
Here is an example:
@@ -32905,6 +33526,8 @@ tries to use @code{nanosleep()} or @code{select()} to implement the delay.
@node gawkextlib
@section The @code{gawkextlib} Project
+@cindex @code{gawkextlib}
+@cindex extensions, where to find
@cindex @code{gawkextlib} project
The @uref{http://sourceforge.net/projects/gawkextlib/, @code{gawkextlib}}
@@ -32938,6 +33561,7 @@ The @code{time} extension described earlier (@pxref{Extension Sample
Time}) was originally from this project but has been moved in to the
main @command{gawk} distribution.
+@cindex @command{git} utility
You can check out the code for the @code{gawkextlib} project
using the @uref{http://git-scm.com, GIT} distributed source
code control system. The command is as follows:
@@ -34204,7 +34828,7 @@ The @option{-i} and @option{--include} options
load @command{awk} library files.
@item
-The @option{-l} and @option{--load} options for load compiled dynamic extensions.
+The @option{-l} and @option{--load} options load compiled dynamic extensions.
@item
The @option{-M} and @option{--bignum} options enable MPFR.
@@ -34225,7 +34849,7 @@ Support for high precision arithmetic with MPFR.
@item
The @code{and()}, @code{or()} and @code{xor()} functions
-allow any number of arguments,
+changed to allow any number of arguments,
with a minimum of two
(@pxref{Bitwise Functions}).
@@ -34250,18 +34874,18 @@ the three most widely-used freely available versions of @command{awk}
@multitable {@file{/dev/stderr} special file} {BWK Awk} {Mawk} {GNU Awk}
@headitem Feature @tab BWK Awk @tab Mawk @tab GNU Awk
@item @samp{\x} Escape sequence @tab X @tab X @tab X
-@item @code{RS} as regexp @tab @tab X @tab X
@item @code{FS} as null string @tab X @tab X @tab X
@item @file{/dev/stdin} special file @tab X @tab X @tab X
@item @file{/dev/stdout} special file @tab X @tab X @tab X
@item @file{/dev/stderr} special file @tab X @tab X @tab X
-@item @code{**} and @code{**=} operators @tab X @tab @tab X
-@item @code{fflush()} function @tab X @tab X @tab X
-@item @code{func} keyword @tab X @tab @tab X
-@item @code{nextfile} statement @tab X @tab X @tab X
@item @code{delete} without subscript @tab X @tab X @tab X
+@item @code{fflush()} function @tab X @tab X @tab X
@item @code{length()} of an array @tab X @tab X @tab X
+@item @code{nextfile} statement @tab X @tab X @tab X
+@item @code{**} and @code{**=} operators @tab X @tab @tab X
+@item @code{func} keyword @tab X @tab @tab X
@item @code{BINMODE} variable @tab @tab X @tab X
+@item @code{RS} as regexp @tab @tab X @tab X
@item Time related functions @tab @tab X @tab X
@end multitable
@@ -34292,7 +34916,7 @@ as working in this fashion, and in particular, would teach that the
that @samp{[A-Z]} was the ``correct'' way to match uppercase letters.
And indeed, this was true.@footnote{And Life was good.}
-The 1993 POSIX standard introduced the idea of locales (@pxref{Locales}).
+The 1992 POSIX standard introduced the idea of locales (@pxref{Locales}).
Since many locales include other letters besides the plain twenty-six
letters of the American English alphabet, the POSIX standard added
character classes (@pxref{Bracket Expressions}) as a way to match
@@ -34331,6 +34955,7 @@ This output is unexpected, since the @samp{bc} at the end of
This result is due to the locale setting (and thus you may not see
it on your system).
+@cindex Unicode
Similar considerations apply to other ranges. For example, @samp{["-/]}
is perfectly valid in ASCII, but is not valid in many Unicode locales,
such as @samp{en_US.UTF-8}.
@@ -34344,16 +34969,17 @@ vendors started implementing non-ASCII locales, @emph{and making them
the default}. Perhaps the most frequently asked question became something
like ``why does @samp{[A-Z]} match lowercase letters?!?''
+@cindex Berry, Karl
This situation existed for close to 10 years, if not more, and
the @command{gawk} maintainer grew weary of trying to explain that
@command{gawk} was being nicely standards-compliant, and that the issue
was in the user's locale. During the development of version 4.0,
he modified @command{gawk} to always treat ranges in the original,
pre-POSIX fashion, unless @option{--posix} was used (@pxref{Options}).@footnote{And
-thus was born the Campain for Rational Range Interpretation (or RRI). A number
-of GNU tools, such as @command{grep} and @command{sed}, have either
-implemented this change, or will soon. Thanks to Karl Berry for coining the phrase
-``Rational Range Interpretation.''}
+thus was born the Campaign for Rational Range Interpretation (or
+RRI). A number of GNU tools have either implemented this change,
+or will soon. Thanks to Karl Berry for coining the phrase ``Rational
+Range Interpretation.''}
Fortunately, shortly before the final release of @command{gawk} 4.0,
the maintainer learned that the 2008 standard had changed the
@@ -34366,7 +34992,7 @@ and
By using this lovely technical term, the standard gives license
to implementors to implement ranges in whatever way they choose.
The @command{gawk} maintainer chose to apply the pre-POSIX meaning in all
-cases: the default regexp matching; with @option{--traditional}, and with
+cases: the default regexp matching; with @option{--traditional} and with
@option{--posix}; in all cases, @command{gawk} remains POSIX compliant.
@node Contributors
@@ -34566,6 +35192,11 @@ environments.
Anders Wallin helped keep the VMS port going for several years.
@item
+@cindex Gordon, Assaf
+Assaf Gordon contributed the code to implement the
+@option{--sandbox} option.
+
+@item
@cindex Haque, John
John Haque made the following contributions:
@@ -34609,6 +35240,11 @@ Arnold Robbins and Andrew Schorr, with notable contributions from
the rest of the development team.
@item
+@cindex Colombo, Antonio
+Antonio Giovanni Colombo rewrote a number of examples in the early
+chapters that were severely dated, for which I am incredibly grateful.
+
+@item
@cindex Robbins, Arnold
Arnold Robbins
has been working on @command{gawk} since 1988, at first
@@ -35007,7 +35643,7 @@ please send in a bug report (@pxref{Bugs}).
Of course, once you've built @command{gawk}, it is likely that you will
wish to install it. To do so, you need to run the command @samp{make
-check}, as a user with the appropriate permissions. How to do this
+install}, as a user with the appropriate permissions. How to do this
varies by system, but on many systems you can use the @command{sudo}
command to do so. The command then becomes @samp{sudo make install}. It
is likely that you will be asked for your password, and you will have
@@ -35333,11 +35969,10 @@ multibyte functionality is not available.
@c STARTOFRANGE pcgawon
@cindex PC operating systems, @command{gawk} on
-With the exception of the Cygwin environment,
-the @samp{|&} operator and TCP/IP networking
-(@pxref{TCP/IP Networking})
-are not supported for MS-DOS or MS-Windows. EMX (OS/2 only) does support
-at least the @samp{|&} operator.
+Under MS-DOS and MS-Windows, the Cygwin and MinGW environments support
+both the @samp{|&} operator and TCP/IP networking
+(@pxref{TCP/IP Networking}).
+EMX (OS/2 only) supports at least the @samp{|&} operator.
@cindex search paths
@cindex search paths, for source files
@@ -35467,7 +36102,7 @@ moved into the @code{BEGIN} rule.
@command{gawk} can be built and used ``out of the box'' under MS-Windows
if you are using the @uref{http://www.cygwin.com, Cygwin environment}.
-This environment provides an excellent simulation of Unix, using the
+This environment provides an excellent simulation of GNU/Linux, using the
GNU tools, such as Bash, the GNU Compiler Collection (GCC), GNU Make,
and other GNU programs. Compilation and installation for Cygwin is the
same as for a Unix system:
@@ -35483,13 +36118,6 @@ When compared to GNU/Linux on the same system, the @samp{configure}
step on Cygwin takes considerably longer. However, it does finish,
and then the @samp{make} proceeds as usual.
-@quotation NOTE
-The @samp{|&} operator and TCP/IP networking
-(@pxref{TCP/IP Networking})
-are fully supported in the Cygwin environment. This is not true
-for any other environment on MS-Windows.
-@end quotation
-
@node MSYS
@appendixsubsubsec Using @command{gawk} In The MSYS Environment
@@ -35557,21 +36185,14 @@ can better handle @code{ODS-5} volumes with upper- and lowercase filenames.
With @code{ODS-5} volumes and extended parsing enabled, the case of the target
parameter may need to be exact.
-Older versions of @command{gawk} could be built with VAX C or
-GNU C on VAX/VMS, as well as with DEC C, but that is no longer
-supported. DEC C (also briefly known as ``Compaq C'' and now known
-as ``HP C,'' but referred to here as ``DEC C'') is required. Both
-@code{vmsbuild.com} and @code{descrip.mms} contain some obsolete support
-for the older compilers but are set up to use DEC C by default.
-
@command{gawk} has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1
using Compaq C V6.4, and Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3.
The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both
Alpha and IA64 VMS 8.4 used HP C 7.3.@footnote{The IA64 architecture
is also known as ``Itanium.''}
-Work is currently being done for a procedure to build @command{gawk} and create
-a PCSI kit for compatible with the GNV product.
+The @file{[.vms]gawk_build_steps.txt} provides information on how to build
+@command{gawk} into a PCSI kit that is compatible with the GNV product.
@node VMS Dynamic Extensions
@appendixsubsubsec Compiling @command{gawk} Dynamic Extensions on VMS
@@ -35668,7 +36289,7 @@ add the @command{gawk} and @command{awk} to the system wide @samp{DCLTABLES}.
The DCL syntax is documented in the @file{gawk.hlp} file.
-Optionally, @file{gawk.hlp} entry can be loaded into a VMS help library:
+Optionally, the @file{gawk.hlp} entry can be loaded into a VMS help library:
@example
$ @kbd{LIBRARY/HELP sys$help:helplib [.vms]gawk.hlp}
@@ -35923,22 +36544,23 @@ file should be considered authoritative if it conflicts with this
The people maintaining the non-Unix ports of @command{gawk} are
as follows:
-@multitable {MS-Windows with MINGW} {123456789012345678901234567890123456789001234567890}
+@c put the index entries outside the table, for docbook
@cindex Deifik, Scott
+@cindex Zaretskii, Eli
+@cindex Buening, Andreas
+@cindex Rankin, Pat
+@cindex Malmberg, John
+@cindex Pitts, Dave
+@multitable {MS-Windows with MINGW} {123456789012345678901234567890123456789001234567890}
@item MS-DOS with DJGPP @tab Scott Deifik, @EMAIL{scottd.mail@@sbcglobal.net,scottd dot mail at sbcglobal dot net}.
-@cindex Zaretskii, Eli
@item MS-Windows with MINGW @tab Eli Zaretskii, @EMAIL{eliz@@gnu.org,eliz at gnu dot org}.
-@cindex Buening, Andreas
@item OS/2 @tab Andreas Buening, @EMAIL{andreas.buening@@nexgo.de,andreas dot buening at nexgo dot de}.
-@cindex Rankin, Pat
-@cindex Malmberg, John
@item VMS @tab Pat Rankin, @EMAIL{r.pat.rankin@@gmail.com,r.pat.rankin at gmail.com}, and
John Malmberg, @EMAIL{wb8tyw@@qsl.net,wb8tyw at qsl.net}.
-@cindex Pitts, Dave
@item z/OS (OS/390) @tab Dave Pitts, @EMAIL{dpitts@@cozx.com,dpitts at cozx dot com}.
@end multitable
@@ -35973,7 +36595,7 @@ This @value{SECTION} briefly describes where to get them:
@cindex Kernighan, Brian
@cindex source code, Brian Kernighan's @command{awk}
@cindex @command{awk}, versions of, See Also Brian Kernighan's @command{awk}
-@cindex Brian Kernighan's @command{awk}
+@cindex Brian Kernighan's @command{awk}, source code
@item Unix @command{awk}
Brian Kernighan, one of the original designers of Unix @command{awk},
has made his implementation of
@@ -35993,6 +36615,7 @@ It is available in several archive formats:
@uref{http://www.cs.princeton.edu/~bwk/btl.mirror/awk.zip}
@end table
+@cindex @command{git} utility
You can also retrieve it from Git Hub:
@example
@@ -36012,7 +36635,7 @@ from GCC (the GNU Compiler Collection) works quite nicely.
for a list of extensions in this @command{awk} that are not in POSIX @command{awk}.
@cindex Brennan, Michael
-@cindex @command{mawk} program
+@cindex @command{mawk} utility
@cindex source code, @command{mawk}
@item @command{mawk}
Michael Brennan wrote an independent implementation of @command{awk},
@@ -36058,7 +36681,7 @@ To get @command{awka}, go to @url{http://sourceforge.net/projects/awka}.
The project seems to be frozen; no new code changes have been made
since approximately 2003.
-@cindex Beebe, Nelson
+@cindex Beebe, Nelson H.F.@:
@cindex @command{pawk} (profiling version of Brian Kernighan's @command{awk})
@cindex source code, @command{pawk}
@item @command{pawk}
@@ -36121,6 +36744,7 @@ This is an embeddable @command{awk} interpreter derived from
@uref{http://repo.hu/projects/libmawk/}.
@item @code{pawk}
+@cindex source code, @command{pawk} (Python version)
@cindex @code{pawk}, @command{awk}-like facilities for Python
This is a Python module that claims to bring @command{awk}-like
features to Python. See @uref{https://github.com/alecthomas/pawk}
@@ -36226,6 +36850,7 @@ As @command{gawk} is Free Software, the source code is always available.
@ref{Gawk Distribution}, describes how to get and build the formal,
released versions of @command{gawk}.
+@cindex @command{git} utility
However, if you want to modify @command{gawk} and contribute back your
changes, you will probably wish to work with the development version.
To do so, you will need to access the @command{gawk} source code
@@ -36401,6 +37026,7 @@ If possible, please update the @command{man} page as well.
You will also have to sign paperwork for your documentation changes.
+@cindex @command{git} utility
@item
Submit changes as unified diffs.
Use @samp{diff -u -r -N} to compare
@@ -36534,6 +37160,8 @@ coding style and brace layout that suits your taste.
@node Derived Files
@appendixsubsec Why Generated Files Are Kept In @command{git}
+@c STARTOFRANGE gawkgit
+@cindex @command{git}, use of for @command{gawk} source code
@c From emails written March 22, 2012, to the gawk developers list.
If you look at the @command{gawk} source in the @command{git}
@@ -36713,7 +37341,7 @@ wget http://git.savannah.gnu.org/cgit/gawk.git/snapshot/gawk-@var{branchname}.ta
@noindent
to retrieve a snapshot of the given branch.
-
+@c ENDOFRANGE gawkgit
@node Future Extensions
@appendixsec Probable Future Extensions
@@ -37084,8 +37712,15 @@ other introductory texts that you should refer to instead.)
@cindex processing data
At the most basic level, the job of a program is to process
-some input data and produce results. See @ref{figure-general-flow}.
+some input data and produce results.
+@ifnotdocbook
+See @ref{figure-general-flow}.
+@end ifnotdocbook
+@ifdocbook
+See @inlineraw{docbook, <xref linkend="figure-general-flow"/>}.
+@end ifdocbook
+@ifnotdocbook
@float Figure,figure-general-flow
@caption{General Program Flow}
@ifinfo
@@ -37095,6 +37730,14 @@ some input data and produce results. See @ref{figure-general-flow}.
@center @image{general-program, , , General program flow}
@end ifnotinfo
@end float
+@end ifnotdocbook
+
+@docbook
+<figure id="figure-general-flow">
+<title>General Program Flow</title>
+<graphic fileref="general-program.eps"/>
+</figure>
+@end docbook
@cindex compiled programs
@cindex interpreted programs
@@ -37110,9 +37753,15 @@ instructions in your program to process the data.
@cindex programming, basic steps
When you write a program, it usually consists
-of the following, very basic set of steps, as shown
-in @ref{figure-process-flow}:
+of the following, very basic set of steps,
+@ifnotdocbook
+as shown in @ref{figure-process-flow}:
+@end ifnotdocbook
+@ifdocbook
+as shown in @inlineraw{docbook <xref linkend="figure-process-flow"/>}:
+@end ifdocbook
+@ifnotdocbook
@float Figure,figure-process-flow
@caption{Basic Program Steps}
@ifinfo
@@ -37122,6 +37771,14 @@ in @ref{figure-process-flow}:
@center @image{process-flow, , , Basic Program Stages}
@end ifnotinfo
@end float
+@end ifnotdocbook
+
+@docbook
+<figure id="figure-process-flow">
+<title>Basic Program Stages</title>
+<graphic fileref="process-flow.eps"/>
+</figure>
+@end docbook
@table @asis
@item Initialization
@@ -37292,7 +37949,7 @@ better written in another language.
You can get it from @uref{http://awk.info/?awk100/aaa}.
@cindex Ada programming language
-@cindex Programming languages, Ada
+@cindex programming languages, Ada
@item Ada
A programming language originally defined by the U.S.@: Department of
Defense for embedded programming. It was designed to enforce good
@@ -37360,9 +38017,6 @@ The GNU version of the standard shell
@end ifinfo
See also ``Bourne Shell.''
-@item BBS
-See ``Bulletin Board System.''
-
@item Bit
Short for ``Binary Digit.''
All values in computer memory ultimately reduce to binary digits: values
@@ -37437,11 +38091,6 @@ Changing some of them affects @command{awk}'s running environment.
@item Braces
See ``Curly Braces.''
-@item Bulletin Board System
-A computer system allowing users to log in and read and/or leave messages
-for other users of the system, much like leaving paper notes on a bulletin
-board.
-
@item C
The system programming language that most GNU software is written in. The
@command{awk} programming language has C-like syntax, and this @value{DOCUMENT}
@@ -37468,6 +38117,8 @@ The @uref{http://www.unicode.org, Unicode character set} is
becoming increasingly popular and standard, and is particularly
widely used on GNU/Linux systems.
+@cindex Kernighan, Brian
+@cindex Bentley, Jon
@cindex @command{chem} utility
@item CHEM
A preprocessor for @command{pic} that reads descriptions of molecules
@@ -37604,7 +38255,7 @@ ordinary expression. It could be a string constant, such as
(@xref{Computed Regexps}.)
@item Environment
-A collection of strings, of the form @var{name@code{=}val}, that each
+A collection of strings, of the form @var{name}@code{=}@code{val}, that each
program has available to it. Users generally place values into the
environment in order to provide information to various programs. Typical
examples are the environment variables @env{HOME} and @env{PATH}.
@@ -37773,7 +38424,7 @@ information about the name of the organization and its language-independent
three-letter acronym.
@cindex Java programming language
-@cindex Programming languages, Java
+@cindex programming languages, Java
@item Java
A modern programming language originally developed by Sun Microsystems
(now Oracle) supporting Object-Oriented programming. Although usually
@@ -38060,7 +38711,12 @@ record or a string.
@c The GNU General Public License.
@node Copying
@unnumbered GNU General Public License
+@ifnotdocbook
@center Version 3, 29 June 2007
+@end ifnotdocbook
+@docbook
+<subtitle>Version 3, 29 June 2007</subtitle>
+@end docbook
@c This file is intended to be included within another document,
@c hence no sectioning command or @node.
@@ -38785,10 +39441,17 @@ first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}.
@c The GNU Free Documentation License.
@node GNU Free Documentation License
@unnumbered GNU Free Documentation License
+@ifnotdocbook
+@center Version 1.3, 3 November 2008
+@end ifnotdocbook
+
+@docbook
+<subtitle>Version 1.3, 3 November 2008</subtitle>
+@end docbook
+
@cindex FDL (Free Documentation License)
@cindex Free Documentation License (FDL)
@cindex GNU Free Documentation License
-@center Version 1.3, 3 November 2008
@c This file is intended to be included within another document,
@c hence no sectioning command or @node.
@@ -39293,8 +39956,10 @@ to permit their use in free software.
@c ispell-local-pdict: "ispell-dict"
@c End:
+@ifnotdocbook
@node Index
@unnumbered Index
+@end ifnotdocbook
@printindex cp
@bye
@@ -39405,8 +40070,6 @@ Suggestions:
% Next edition:
% 1. Standardize the error messages from the functions and programs
% in the two sample code chapters.
-% 2. Nuke the BBS stuff and use something that won't be obsolete
-% 3. Turn the advanced notes into sidebars by using @cartouche
Better sidebars can almost sort of be done with:
@@ -39438,4 +40101,3 @@ But to use it you have to say
}
which sorta sucks.
-
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 6b9acdea..791f787f 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -35,9 +35,9 @@
@c applies to and all the info about who's publishing this edition
@c These apply across the board.
-@set UPDATE-MONTH February, 2014
+@set UPDATE-MONTH April, 2014
@set VERSION 4.1
-@set PATCHLEVEL 0
+@set PATCHLEVEL 1
@set FSF
@@ -111,11 +111,19 @@
@end ifnottex
@ifnottex
+@ifnotdocbook
@macro ii{text}
@i{\text\}
@end macro
+@end ifnotdocbook
@end ifnottex
+@ifdocbook
+@macro ii{text}
+@inlineraw{docbook,<lineannotation>\text\</lineannotation>}
+@end macro
+@end ifdocbook
+
@c For HTML, spell out email addresses, to avoid problems with
@c address harvesters for spammers.
@ifhtml
@@ -129,9 +137,36 @@
@end macro
@end ifnothtml
+@c Indexing macros
+@ifinfo
+
+@macro cindexawkfunc{name}
+@cindex @code{\name\}
+@end macro
+
+@macro cindexgawkfunc{name}
+@cindex @code{\name\}
+@end macro
+
+@end ifinfo
+
+@ifnotinfo
+
+@macro cindexawkfunc{name}
+@cindex @code{\name\()} function
+@end macro
+
+@macro cindexgawkfunc{name}
+@cindex @code{\name\()} function (@command{gawk})
+@end macro
+@end ifnotinfo
+
@ignore
Some comments on the layout for TeX.
1. Use at least texinfo.tex 2014-01-30.15
+2. When using @docbook, if the last line is part of a paragraph, end
+it with a space and @c so that the lines won't run together. This is a
+quirk of the language / makeinfo, and isn't going to change.
@end ignore
@c merge the function and variable indexes into the concept index
@@ -147,6 +182,10 @@ Some comments on the layout for TeX.
@syncodeindex fn cp
@syncodeindex vr cp
@end ifxml
+@ifdocbook
+@synindex fn cp
+@synindex vr cp
+@end ifdocbook
@c If "finalout" is commented out, the printed output will show
@c black boxes that mark lines that are too long. Thus, it is
@@ -158,10 +197,26 @@ Some comments on the layout for TeX.
@end iftex
@copying
-Copyright @copyright{} 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013,
-2014
+@docbook
+<para>Published by:</para>
+
+<literallayout class="normal">Free Software Foundation
+51 Franklin Street, Fifth Floor
+Boston, MA 02110-1301 USA
+Phone: +1-617-542-5942
+Fax: +1-617-542-2652
+Email: <email>gnu@@gnu.org</email>
+URL: <ulink url="http://www.gnu.org">http://www.gnu.org/</ulink></literallayout>
+
+<literallayout class="normal">Copyright &copy; 1989, 1991, 1992, 1993, 1996&ndash;2005, 2007, 2009&ndash;2014
Free Software Foundation, Inc.
+All Rights Reserved.</literallayout>
+@end docbook
+
+@ifnotdocbook
+Copyright @copyright{} 1989, 1991, 1992, 1993, 1996--2005, 2007, 2009--2014 @*
+Free Software Foundation, Inc.
+@end ifnotdocbook
@sp 2
This is Edition @value{EDITION} of @cite{@value{TITLE}: @value{SUBTITLE}},
@@ -209,6 +264,7 @@ supports it in developing GNU and promoting software freedom.''
@subtitle @value{UPDATE-MONTH}
@author Arnold D. Robbins
+@ifnotdocbook
@c Include the Distribution inside the titlepage environment so
@c that headings are turned off. Headings on and off do not work.
@@ -233,6 +289,7 @@ URL: @uref{http://www.gnu.org/} @*
ISBN 1-882114-28-0 @*
@sp 2
@insertcopying
+@end ifnotdocbook
@end titlepage
@c Thanks to Bob Chassell for directions on doing dedications.
@@ -257,6 +314,18 @@ ISBN 1-882114-28-0 @*
@headings on
@end iftex
+@docbook
+<dedication>
+<simplelist>
+<member>To Miriam, for making me complete.</member>
+<member>To Chana, for the joy you bring us.</member>
+<member>To Rivka, for the exponential increase.</member>
+<member>To Nachum, for the added dimension.</member>
+<member>To Malka, for the new beginning.</member>
+</simplelist>
+</dedication>
+@end docbook
+
@iftex
@headings off
@evenheading @thispage@ @ @ @strong{@value{TITLE}} @| @|
@@ -265,6 +334,7 @@ ISBN 1-882114-28-0 @*
@ifnottex
@ifnotxml
+@ifnotdocbook
@node Top
@top General Introduction
@c Preface node should come right after the Top
@@ -276,6 +346,7 @@ particular records in a file and perform operations upon them.
@insertcopying
+@end ifnotdocbook
@end ifnotxml
@end ifnottex
@@ -737,6 +808,7 @@ particular records in a file and perform operations upon them.
* Extension API Functions Introduction:: Introduction to the API functions.
* General Data Types:: The data types.
* Requesting Values:: How to get a value.
+* Memory Allocation Functions:: Functions for allocating memory.
* Constructor Functions:: Functions for creating values.
* Registration Functions:: Functions to register things with
@command{gawk}.
@@ -799,7 +871,8 @@ particular records in a file and perform operations upon them.
version of @command{awk}.
* POSIX/GNU:: The extensions in @command{gawk} not
in POSIX @command{awk}.
-* Feature History:: The history of the features in @command{gawk}.
+* Feature History:: The history of the features in
+ @command{gawk}.
* Common Extensions:: Common Extensions Summary.
* Ranges and Locales:: How locales used to affect regexp
ranges.
@@ -971,21 +1044,37 @@ and the AWK prototype becomes the product.
The new @command{pgawk} (profiling @command{gawk}), produces
program execution counts.
I recently experimented with an algorithm that for
-@math{n} lines of input, exhibited
+@ifnotdocbook
+@math{n}
+@end ifnotdocbook
+@ifdocbook
+@i{n}
+@end ifdocbook
+lines of input, exhibited
@tex
$\sim\! Cn^2$
@end tex
@ifnottex
+@ifnotdocbook
~ C n^2
+@end ifnotdocbook
@end ifnottex
+@docbook
+<emphasis>&sim; Cn<superscript>2</superscript></emphasis> @c
+@end docbook
performance, while
theory predicted
@tex
$\sim\! Cn\log n$
@end tex
@ifnottex
+@ifnotdocbook
~ C n log n
+@end ifnotdocbook
@end ifnottex
+@docbook
+<emphasis>&sim; Cn log n</emphasis> @c
+@end docbook
behavior. A few minutes poring
over the @file{awkprof.out} profile pinpointed the problem to
a single line of code. @command{pgawk} is a welcome addition to
@@ -995,6 +1084,7 @@ Arnold has distilled over a decade of experience writing and
using AWK programs, and developing @command{gawk}, into this book. If you use
AWK or want to learn how, then read this book.
+@cindex Brennan, Michael
@display
Michael Brennan
Author of @command{mawk}
@@ -1019,6 +1109,7 @@ Such jobs are often easier with @command{awk}.
The @command{awk} utility interprets a special-purpose programming language
that makes it easy to handle simple data-reformatting jobs.
+@cindex Brian Kernighan's @command{awk}
The GNU implementation of @command{awk} is called @command{gawk}; if you
invoke it with the proper options or environment variables
(@pxref{Options}), it is fully
@@ -1741,7 +1832,7 @@ significant editorial help for this @value{DOCUMENT} for the
3.1 release of @command{gawk}.
@end quotation
-@cindex Beebe, Nelson
+@cindex Beebe, Nelson H.F.@:
@cindex Buening, Andreas
@cindex Collado, Manuel
@cindex Colombo, Antonio
@@ -2034,11 +2125,11 @@ $ @kbd{awk "BEGIN @{ print \"Don't Panic!\" @}"}
@print{} Don't Panic!
@end example
-@cindex quoting
-@cindex double quote (@code{"})
-@cindex @code{"} (double quote)
-@cindex @code{\} (backslash)
-@cindex backslash (@code{\})
+@cindex shell quoting, double quote
+@cindex double quote (@code{"}) in shell commands
+@cindex @code{"} (double quote) in shell commands
+@cindex @code{\} (backslash) in shell commands
+@cindex backslash (@code{\}) in shell commands
This program does not read any input. The @samp{\} before each of the
inner double quotes is necessary because of the shell's quoting
rules---in particular because it mixes both single quotes and
@@ -2078,8 +2169,7 @@ awk -f @var{source-file} @var{input-file1} @var{input-file2} @dots{}
@end example
@cindex @option{-f} option
-@cindex command line, options
-@cindex options, command-line
+@cindex command line, option @option{-f}
The @option{-f} instructs the @command{awk} utility to get the @command{awk} program
from the file @var{source-file}. Any file name can be used for
@var{source-file}. For example, you could put the program:
@@ -2102,7 +2192,7 @@ does the same thing as this one:
awk "BEGIN @{ print \"Don't Panic!\" @}"
@end example
-@cindex quoting
+@cindex quoting in @command{gawk} command lines
@noindent
This was explained earlier
(@pxref{Read Terminal}).
@@ -2113,9 +2203,9 @@ program did not have single quotes around it. The quotes are only needed
for programs that are provided on the @command{awk} command line.
@c STARTOFRANGE sq1x
-@cindex single quote (@code{'})
+@cindex single quote (@code{'}) in @command{gawk} command lines
@c STARTOFRANGE qs2x
-@cindex @code{'} (single quote)
+@cindex @code{'} (single quote) in @command{gawk} command lines
If you want to clearly identify your @command{awk} program files as such,
you can add the extension @file{.awk} to the file name. This doesn't
affect the execution of the @command{awk} program but it does make
@@ -2225,7 +2315,7 @@ programs, but this usually isn't very useful; the purpose of a
comment is to help you or another person understand the program
when reading it at a later time.
-@cindex quoting
+@cindex quoting, for small awk programs
@cindex single quote (@code{'}), vs.@: apostrophe
@cindex @code{'} (single quote), vs.@: apostrophe
@quotation CAUTION
@@ -2266,7 +2356,7 @@ The next @value{SUBSECTION} describes the shell's quoting rules.
@node Quoting
@subsection Shell-Quoting Issues
-@cindex quoting, rules for
+@cindex shell quoting, rules for
@menu
* DOS Quoting:: Quoting in Windows Batch Files.
@@ -2301,10 +2391,10 @@ that character. The shell removes the backslash and passes the quoted
character on to the command.
@item
-@cindex @code{\} (backslash)
-@cindex backslash (@code{\})
-@cindex single quote (@code{'})
-@cindex @code{'} (single quote)
+@cindex @code{\} (backslash), in shell commands
+@cindex backslash (@code{\}), in shell commands
+@cindex single quote (@code{'}), in shell commands
+@cindex @code{'} (single quote), in shell commands
Single quotes protect everything between the opening and closing quotes.
The shell does no interpretation of the quoted text, passing it on verbatim
to the command.
@@ -2314,8 +2404,8 @@ Refer back to
for an example of what happens if you try.
@item
-@cindex double quote (@code{"})
-@cindex @code{"} (double quote)
+@cindex double quote (@code{"}), in shell commands
+@cindex @code{"} (double quote), in shell commands
Double quotes protect most things between the opening and closing quotes.
The shell does at least variable and command substitution on the quoted text.
Different shells may do additional kinds of processing on double-quoted text.
@@ -2352,7 +2442,7 @@ awk -F "" '@var{program}' @var{files} # correct
@end example
@noindent
-@cindex null strings, quoting and
+@cindex null strings in @command{gawk} arguments, quoting and
Don't use this:
@example
@@ -2365,7 +2455,7 @@ as the value of @code{FS}, and the first file name as the text of the program!
This results in syntax errors at best, and confusing behavior at worst.
@end itemize
-@cindex quoting, tricks for
+@cindex quoting in @command{gawk} command lines, tricks for
Mixing single and double quotes is difficult. You have to resort
to shell quoting tricks, like this:
@@ -2480,40 +2570,39 @@ gawk "@{ print \"\042\" $0 \"\042\" @}" @var{file}
@c For gawk >= 4.0, update these data files. No-one has such slow modems!
@cindex input files, examples
-@cindex @code{BBS-list} file
+@cindex @code{mail-list} file
Many of the examples in this @value{DOCUMENT} take their input from two sample
-data files. The first, @file{BBS-list}, represents a list of
-computer bulletin board systems together with information about those systems.
+data files. The first, @file{mail-list}, represents a list of peoples' names
+together with their email addresses and information about those people.
The second data file, called @file{inventory-shipped}, contains
information about monthly shipments. In both files,
each line is considered to be one @dfn{record}.
-In the data file @file{BBS-list}, each record contains the name of a computer
-bulletin board, its phone number, the board's baud rate(s), and a code for
-the number of hours it is operational. An @samp{A} in the last column
-means the board operates 24 hours a day. A @samp{B} in the last
-column means the board only operates on evening and weekend hours.
-A @samp{C} means the board operates only on weekends:
+In the data file @file{mail-list}, each record contains the name of a person,
+his/her phone number, his/her email-address, and a code for their relationship
+with the author of the list. An @samp{A} in the last column
+means that the person is an acquaintance. An @samp{F} in the last
+column means that the person is a friend.
+An @samp{R} means that the person is a relative:
-@c 2e: Update the baud rates to reflect today's faster modems
@example
@c system if test ! -d eg ; then mkdir eg ; fi
@c system if test ! -d eg/lib ; then mkdir eg/lib ; fi
@c system if test ! -d eg/data ; then mkdir eg/data ; fi
@c system if test ! -d eg/prog ; then mkdir eg/prog ; fi
@c system if test ! -d eg/misc ; then mkdir eg/misc ; fi
-@c file eg/data/BBS-list
-aardvark 555-5553 1200/300 B
-alpo-net 555-3412 2400/1200/300 A
-barfly 555-7685 1200/300 A
-bites 555-1675 2400/1200/300 A
-camelot 555-0542 300 C
-core 555-2912 1200/300 C
-fooey 555-1234 2400/1200/300 B
-foot 555-6699 1200/300 B
-macfoo 555-6480 1200/300 A
-sdace 555-3430 2400/1200/300 A
-sabafoo 555-2127 1200/300 C
+@c file eg/data/mail-list
+Amelia 555-5553 amelia.zodiacusque@@gmail.com F
+Anthony 555-3412 anthony.asserturo@@hotmail.com A
+Becky 555-7685 becky.algebrarum@@gmail.com A
+Bill 555-1675 bill.drowning@@hotmail.com A
+Broderick 555-0542 broderick.aliquotiens@@yahoo.com R
+Camilla 555-2912 camilla.infusarum@@skynet.be R
+Fabius 555-1234 fabius.undevicesimus@@ucb.edu F
+Julie 555-6699 julie.perscrutabor@@skeeve.com F
+Martin 555-6480 martin.codicibus@@hotmail.com A
+Samuel 555-3430 samuel.lanceolis@@shu.edu A
+Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
@c endfile
@end example
@@ -2555,23 +2644,23 @@ in the directory @file{awklib/eg/data}.
@section Some Simple Examples
The following command runs a simple @command{awk} program that searches the
-input file @file{BBS-list} for the character string @samp{foo} (a
+input file @file{mail-list} for the character string @samp{li} (a
grouping of characters is usually called a @dfn{string};
the term @dfn{string} is based on similar usage in English, such
as ``a string of pearls,'' or ``a string of cars in a train''):
@example
-awk '/foo/ @{ print $0 @}' BBS-list
+awk '/li/ @{ print $0 @}' mail-list
@end example
@noindent
-When lines containing @samp{foo} are found, they are printed because
+When lines containing @samp{li} are found, they are printed because
@w{@samp{print $0}} means print the current line. (Just @samp{print} by
itself means the same thing, so we could have written that
instead.)
-You will notice that slashes (@samp{/}) surround the string @samp{foo}
-in the @command{awk} program. The slashes indicate that @samp{foo}
+You will notice that slashes (@samp{/}) surround the string @samp{li}
+in the @command{awk} program. The slashes indicate that @samp{li}
is the pattern to search for. This type of pattern is called a
@dfn{regular expression}, which is covered in more detail later
(@pxref{Regexp}).
@@ -2583,11 +2672,11 @@ interpret any of it as special shell characters.
Here is what this program prints:
@example
-$ @kbd{awk '/foo/ @{ print $0 @}' BBS-list}
-@print{} fooey 555-1234 2400/1200/300 B
-@print{} foot 555-6699 1200/300 B
-@print{} macfoo 555-6480 1200/300 A
-@print{} sabafoo 555-2127 1200/300 C
+$ @kbd{awk '/li/ @{ print $0 @}' mail-list}
+@print{} Amelia 555-5553 amelia.zodiacusque@@gmail.com F
+@print{} Broderick 555-0542 broderick.aliquotiens@@yahoo.com R
+@print{} Julie 555-6699 julie.perscrutabor@@skeeve.com F
+@print{} Samuel 555-3430 samuel.lanceolis@@shu.edu A
@end example
@cindex actions, default
@@ -2600,7 +2689,7 @@ action is to print all lines that match the pattern.
@cindex actions, empty
Thus, we could leave out the action (the @code{print} statement and the curly
braces) in the previous example and the result would be the same:
-@command{awk} prints all lines matching the pattern @samp{foo}. By comparison,
+@command{awk} prints all lines matching the pattern @samp{li}. By comparison,
omitting the @code{print} statement but retaining the curly braces makes an
empty action that does nothing (i.e., no lines are printed).
@@ -2745,29 +2834,23 @@ This program prints every line that contains the string
strings, it is printed twice, once by each rule.
This is what happens if we run this program on our two sample data files,
-@file{BBS-list} and @file{inventory-shipped}:
+@file{mail-list} and @file{inventory-shipped}:
@example
$ @kbd{awk '/12/ @{ print $0 @}}
-> @kbd{/21/ @{ print $0 @}' BBS-list inventory-shipped}
-@print{} aardvark 555-5553 1200/300 B
-@print{} alpo-net 555-3412 2400/1200/300 A
-@print{} barfly 555-7685 1200/300 A
-@print{} bites 555-1675 2400/1200/300 A
-@print{} core 555-2912 1200/300 C
-@print{} fooey 555-1234 2400/1200/300 B
-@print{} foot 555-6699 1200/300 B
-@print{} macfoo 555-6480 1200/300 A
-@print{} sdace 555-3430 2400/1200/300 A
-@print{} sabafoo 555-2127 1200/300 C
-@print{} sabafoo 555-2127 1200/300 C
+> @kbd{/21/ @{ print $0 @}' mail-list inventory-shipped}
+@print{} Anthony 555-3412 anthony.asserturo@@hotmail.com A
+@print{} Camilla 555-2912 camilla.infusarum@@skynet.be R
+@print{} Fabius 555-1234 fabius.undevicesimus@@ucb.edu F
+@print{} Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
+@print{} Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
@print{} Jan 21 36 64 620
@print{} Apr 21 70 74 514
@end example
@noindent
-Note how the line beginning with @samp{sabafoo}
-in @file{BBS-list} was printed twice, once for each rule.
+Note how the line beginning with @samp{Jean-Paul}
+in @file{mail-list} was printed twice, once for each rule.
@node More Complex
@section A More Complex Example
@@ -2846,7 +2929,7 @@ separate rule, like this:
@example
awk '/12/ @{ print $0 @}
- /21/ @{ print $0 @}' BBS-list inventory-shipped
+ /21/ @{ print $0 @}' mail-list inventory-shipped
@end example
@cindex @command{gawk}, newlines in
@@ -2961,8 +3044,8 @@ noticed because it is ``hidden'' inside the comment. Thus, the
@code{BEGIN} is noted as a syntax error.
@cindex statements, multiple
-@cindex @code{;} (semicolon)
-@cindex semicolon (@code{;})
+@cindex @code{;} (semicolon), separating statements in actions
+@cindex semicolon (@code{;}), separating statements in actions
When @command{awk} statements within one rule are short, you might want to put
more than one of them on a line. This is accomplished by separating the statements
with a semicolon (@samp{;}).
@@ -3022,6 +3105,7 @@ used once, and thrown away. Because @command{awk} programs are interpreted, you
can avoid the (usually lengthy) compilation part of the typical
edit-compile-test-debug cycle of software development.
+@cindex Brian Kernighan's @command{awk}
Complex programs have been written in @command{awk}, including a complete
retargetable assembler for eight-bit microprocessors (@pxref{Glossary}, for
more information), and a microcode assembler for a special-purpose Prolog
@@ -3084,10 +3168,19 @@ There are two ways to run @command{awk}---with an explicit program or with
one or more program files. Here are templates for both of them; items
enclosed in [@dots{}] in these templates are optional:
+@ifnotdocbook
@example
awk @r{[@var{options}]} -f progfile @r{[@code{--}]} @var{file} @dots{}
awk @r{[@var{options}]} @r{[@code{--}]} '@var{program}' @var{file} @dots{}
@end example
+@end ifnotdocbook
+
+@c FIXME - find a better way to mark this up in docbook
+@docbook
+<screen>awk [<replaceable>options</replaceable>] -f progfile [<literal>--</literal>] <replaceable>file</replaceable> &#8230;
+awk [<replaceable>options</replaceable>] [<literal>--</literal>] '<replaceable>program</replaceable>' <replaceable>file</replaceable> &#8230;
+</screen>
+@end docbook
@cindex GNU long options
@cindex long options
@@ -3253,6 +3346,7 @@ Print the short version of the General Public License and then exit.
@itemx --dump-variables@r{[}=@var{file}@r{]}
@cindex @option{-d} option
@cindex @option{--dump-variables} option
+@cindex dump all variables of a program
@cindex @file{awkvars.out} file
@cindex files, @file{awkvars.out}
@cindex variables, global, printing list of
@@ -3406,7 +3500,7 @@ care to search for all occurrences of each inappropriate construct. As
@cindex @option{--bignum} option
Force arbitrary precision arithmetic on numbers. This option has no effect
if @command{gawk} is not compiled to use the GNU MPFR and MP libraries
-(@pxref{Arbitrary Precision Arithmetic}).
+(@pxref{Gawk and MPFR}).
@item -n
@itemx --non-decimal-data
@@ -3659,6 +3753,7 @@ file at all.
@cindex @command{gawk}, @code{ARGIND} variable in
@cindex @code{ARGIND} variable, command-line arguments
+@cindex @code{ARGV} array, indexing into
@cindex @code{ARGC}/@code{ARGV} variables, command-line arguments
All these arguments are made available to your @command{awk} program in the
@code{ARGV} array (@pxref{Built-in Variables}). Command-line options
@@ -3669,6 +3764,7 @@ sets the variable @code{ARGIND} to the index in @code{ARGV} of the
current element.
@cindex input files, variable assignments and
+@cindex variable assignments and input files
The distinction between file name arguments and variable-assignment
arguments is made when @command{awk} is about to open the next input file.
At that point in execution, it checks the file name to see whether
@@ -3746,6 +3842,7 @@ this file name itself.)
@node Environment Variables
@section The Environment Variables @command{gawk} Uses
+@cindex environment variables used by @command{gawk}
A number of environment variables influence how @command{gawk}
behaves.
@@ -3761,8 +3858,7 @@ behaves.
@node AWKPATH Variable
@subsection The @env{AWKPATH} Environment Variable
@cindex @env{AWKPATH} environment variable
-@cindex directories, searching
-@cindex search paths
+@cindex directories, searching for source files
@cindex search paths, for source files
@cindex differences in @command{awk} and @command{gawk}, @code{AWKPATH} environment variable
@ifinfo
@@ -3774,12 +3870,12 @@ implementations, you must supply a precise path name for each program
file, unless the file is in the current directory.
But in @command{gawk}, if the file name supplied to the @option{-f}
or @option{-i} options
-does not contain a @samp{/}, then @command{gawk} searches a list of
+does not contain a directory separator @samp{/}, then @command{gawk} searches a list of
directories (called the @dfn{search path}), one by one, looking for a
file with the specified name.
The search path is a string consisting of directory names
-separated by colons. @command{gawk} gets its search path from the
+separated by colons@footnote{Semicolons on MS-Windows and MS-DOS.}. @command{gawk} gets its search path from the
@env{AWKPATH} environment variable. If that variable does not exist,
@command{gawk} uses a default path,
@samp{.:/usr/local/share/awk}.@footnote{Your version of @command{gawk}
@@ -3837,8 +3933,7 @@ found, and @command{gawk} no longer needs to use @env{AWKPATH}.
@node AWKLIBPATH Variable
@subsection The @env{AWKLIBPATH} Environment Variable
@cindex @env{AWKLIBPATH} environment variable
-@cindex directories, searching
-@cindex search paths
+@cindex directories, searching for shared libraries
@cindex search paths, for shared libraries
@cindex differences in @command{awk} and @command{gawk}, @code{AWKLIBPATH} environment variable
@@ -4123,7 +4218,6 @@ they will @emph{not} be in the next release).
@c update this section for each release!
-@cindex @code{PROCINFO} array
The process-related special files @file{/dev/pid}, @file{/dev/ppid},
@file{/dev/pgrpid}, and @file{/dev/user} were deprecated in @command{gawk}
3.1, but still worked. As of version 4.0, they are no longer
@@ -4149,6 +4243,7 @@ in case some option becomes obsolete in a future version of @command{gawk}.
@author Obi-Wan
@end quotation
+@cindex shells, sea
This @value{SECTION} intentionally left
blank.
@@ -4161,7 +4256,7 @@ blank.
@table @code
@item -W nostalgia
@itemx --nostalgia
-Print the message @code{"awk: bailing out near line 1"} and dump core.
+Print the message @samp{awk: bailing out near line 1} and dump core.
This option was inspired by the common behavior of very early versions of
Unix @command{awk} and by a t--shirt.
The message is @emph{not} subject to translation in non-English locales.
@@ -4207,7 +4302,7 @@ long-undocumented ``feature'' of Unix @code{awk}.
@node Regexp
@chapter Regular Expressions
-@cindex regexp, See regular expressions
+@cindex regexp
@c STARTOFRANGE regexp
@cindex regular expressions
@@ -4216,8 +4311,8 @@ set of strings.
Because regular expressions are such a fundamental part of @command{awk}
programming, their format and use deserve a separate @value{CHAPTER}.
-@cindex forward slash (@code{/})
-@cindex @code{/} (forward slash)
+@cindex forward slash (@code{/}) to enclose regular expressions
+@cindex @code{/} (forward slash) to enclose regular expressions
A regular expression enclosed in slashes (@samp{/})
is an @command{awk} pattern that matches every input record whose text
belongs to that set.
@@ -4254,14 +4349,14 @@ slashes. Then the regular expression is tested against the
entire text of each record. (Normally, it only needs
to match some part of the text in order to succeed.) For example, the
following prints the second field of each record that contains the string
-@samp{foo} anywhere in it:
+@samp{li} anywhere in it:
@example
-$ @kbd{awk '/foo/ @{ print $2 @}' BBS-list}
-@print{} 555-1234
+$ @kbd{awk '/li/ @{ print $2 @}' mail-list}
+@print{} 555-5553
+@print{} 555-0542
@print{} 555-6699
-@print{} 555-6480
-@print{} 555-2127
+@print{} 555-3430
@end example
@cindex regular expressions, operators
@@ -4273,9 +4368,9 @@ $ @kbd{awk '/foo/ @{ print $2 @}' BBS-list}
@cindex @code{!} (exclamation point), @code{!~} operator
@cindex exclamation point (@code{!}), @code{!~} operator
@c @cindex operators, @code{!~}
-@cindex @code{if} statement
-@cindex @code{while} statement
-@cindex @code{do}-@code{while} statement
+@cindex @code{if} statement, use of regexps in
+@cindex @code{while} statement, use of regexps in
+@cindex @code{do}-@code{while} statement, use of regexps in
@c @cindex statements, @code{if}
@c @cindex statements, @code{while}
@c @cindex statements, @code{do}
@@ -4334,6 +4429,7 @@ $ @kbd{awk '$1 !~ /J/' inventory-shipped}
@end example
@cindex regexp constants
+@cindex constant regexps
@cindex regular expressions, constants, See regexp constants
When a regexp is enclosed in slashes, such as @code{/foo/}, we call it
a @dfn{regexp constant}, much like @code{5.27} is a numeric constant and
@@ -4342,7 +4438,7 @@ a @dfn{regexp constant}, much like @code{5.27} is a numeric constant and
@node Escape Sequences
@section Escape Sequences
-@cindex escape sequences
+@cindex escape sequences, in strings
@cindex backslash (@code{\}), in escape sequences
@cindex @code{\} (backslash), in escape sequences
Some characters cannot be included literally in string constants
@@ -4507,6 +4603,7 @@ leaves what happens as undefined. There are two choices:
@c @cindex automatic warnings
@c @cindex warnings, automatic
+@cindex Brian Kernighan's @command{awk}
@table @asis
@item Strip the backslash out
This is what Brian Kernighan's @command{awk} and @command{gawk} both do.
@@ -4520,6 +4617,7 @@ two backslashes in the string: @samp{FS = @w{"[ \t]+\\|[ \t]+"}}.)
@cindex @command{gawk}, escape sequences
@cindex Unix @command{awk}, backslashes in escape sequences
+@cindex @command{mawk} utility
@item Leave the backslash alone
Some other @command{awk} implementations do this.
In such implementations, typing @code{"a\qc"} is the same as typing
@@ -4551,6 +4649,7 @@ escape sequences literally when used in regexp constants. Thus,
@section Regular Expression Operators
@c STARTOFRANGE regexpo
@cindex regular expressions, operators
+@cindex metacharacters in regular expressions
You can combine regular expressions with special characters,
called @dfn{regular expression operators} or @dfn{metacharacters}, to
@@ -4569,8 +4668,8 @@ Here is a list of metacharacters. All characters that are not escape
sequences and that are not listed in the table stand for themselves:
@table @code
-@cindex backslash (@code{\})
-@cindex @code{\} (backslash)
+@cindex backslash (@code{\}), regexp operator
+@cindex @code{\} (backslash), regexp operator
@item \
This is used to suppress the special meaning of a character when
matching. For example, @samp{\$}
@@ -4595,8 +4694,8 @@ The condition is not true in the following example:
if ("line1\nLINE 2" ~ /^L/) @dots{}
@end example
-@cindex @code{$} (dollar sign)
-@cindex dollar sign (@code{$})
+@cindex @code{$} (dollar sign), regexp operator
+@cindex dollar sign (@code{$}), regexp operator
@item $
This is similar to @samp{^}, but it matches only at the end of a string.
For example, @samp{p$}
@@ -4608,8 +4707,8 @@ The condition in the following example is not true:
if ("line1\nLINE 2" ~ /1$/) @dots{}
@end example
-@cindex @code{.} (period)
-@cindex period (@code{.})
+@cindex @code{.} (period), regexp operator
+@cindex period (@code{.}), regexp operator
@item . @r{(period)}
This matches any single character,
@emph{including} the newline character. For example, @samp{.P}
@@ -4625,11 +4724,12 @@ character, which is a character with all bits equal to zero.
Otherwise, @sc{nul} is just another character. Other versions of @command{awk}
may not be able to match the @sc{nul} character.
-@cindex @code{[]} (square brackets)
-@cindex square brackets (@code{[]})
+@cindex @code{[]} (square brackets), regexp operator
+@cindex square brackets (@code{[]}), regexp operator
@cindex bracket expressions
@cindex character sets, See Also bracket expressions
@cindex character lists, See bracket expressions
+@cindex character classes, See bracket expressions
@item [@dots{}]
This is called a @dfn{bracket expression}.@footnote{In other literature,
you may see a bracket expression referred to as either a
@@ -4662,8 +4762,8 @@ means it matches any string that starts with @samp{P} or contains a digit.
The alternation applies to the largest possible regexps on either side.
-@cindex @code{()} (parentheses)
-@cindex parentheses @code{()}
+@cindex @code{()} (parentheses), regexp operator
+@cindex parentheses @code{()}, regexp operator
@item (@dots{})
Parentheses are used for grouping in regular expressions, as in
arithmetic. They can be used to concatenate regular expressions
@@ -4691,8 +4791,8 @@ prints every record in @file{sample} containing a string of the form
Notice the escaping of the parentheses by preceding them
with backslashes.
-@cindex @code{+} (plus sign)
-@cindex plus sign (@code{+})
+@cindex @code{+} (plus sign), regexp operator
+@cindex plus sign (@code{+}), regexp operator
@item +
This symbol is similar to @samp{*}, except that the preceding expression must be
matched at least once. This means that @samp{wh+y}
@@ -4705,14 +4805,14 @@ way of writing the last @samp{*} example:
awk '/\(c[ad]+r x\)/ @{ print @}' sample
@end example
-@cindex @code{?} (question mark) regexp operator
-@cindex question mark (@code{?}) regexp operator
+@cindex @code{?} (question mark), regexp operator
+@cindex question mark (@code{?}), regexp operator
@item ?
This symbol is similar to @samp{*}, except that the preceding expression can be
matched either once or not at all. For example, @samp{fe?d}
matches @samp{fed} and @samp{fd}, but nothing else.
-@cindex interval expressions
+@cindex interval expressions, regexp operator
@item @{@var{n}@}
@itemx @{@var{n},@}
@itemx @{@var{n},@var{m}@}
@@ -4789,6 +4889,7 @@ expressions are not available in regular expressions.
@cindex bracket expressions
@cindex bracket expressions, range expressions
@cindex range expressions (regexps)
+@cindex character lists in regular expression
As mentioned earlier, a bracket expression matches any character amongst
those listed between the opening and closing square brackets.
@@ -5028,10 +5129,10 @@ Matches the empty string at the
end of a buffer (string).
@end table
-@cindex @code{^} (caret)
-@cindex caret (@code{^})
-@cindex @code{?} (question mark) regexp operator
-@cindex question mark (@code{?}) regexp operator
+@cindex @code{^} (caret), regexp operator
+@cindex caret (@code{^}), regexp operator
+@cindex @code{?} (question mark), regexp operator
+@cindex question mark (@code{?}), regexp operator
Because @samp{^} and @samp{$} always work in terms of the beginning
and end of strings, these operators don't add any new capabilities
for @command{awk}. They are provided for compatibility with other
@@ -5052,7 +5153,7 @@ lesser of two evils.
@c
@c Should really do this with file inclusion.
@cindex regular expressions, @command{gawk}, command-line options
-@cindex @command{gawk}, command-line options
+@cindex @command{gawk}, command-line options, and regular expressions
The various command-line options
(@pxref{Options})
control how @command{gawk} interprets characters in regexps:
@@ -5075,6 +5176,7 @@ Only POSIX regexps are supported; the GNU operators are not special
(e.g., @samp{\w} matches a literal @samp{w}). Interval expressions
are allowed.
+@cindex Brian Kernighan's @command{awk}
@item @code{--traditional}
Traditional Unix @command{awk} regexps are matched. The GNU operators
are not special, and interval expressions are not available.
@@ -5130,7 +5232,7 @@ This works in any POSIX-compliant @command{awk}.
@cindex tilde (@code{~}), @code{~} operator
@cindex @code{!} (exclamation point), @code{!~} operator
@cindex exclamation point (@code{!}), @code{!~} operator
-@cindex @code{IGNORECASE} variable
+@cindex @code{IGNORECASE} variable, with @code{~} and @code{!~} operators
@cindex @command{gawk}, @code{IGNORECASE} variable in
@c @cindex variables, @code{IGNORECASE}
Another method, specific to @command{gawk}, is to set the variable
@@ -5351,6 +5453,7 @@ occur often in practice, but it's worth noting for future reference.
@chapter Reading Input Files
@c STARTOFRANGE infir
+@cindex reading input files
@cindex input files, reading
@cindex input files
@cindex @code{FILENAME} variable
@@ -5437,68 +5540,79 @@ To do this, use the special @code{BEGIN} pattern
(@pxref{BEGIN/END}).
For example:
-@cindex @code{BEGIN} pattern
@example
-awk 'BEGIN @{ RS = "/" @}
- @{ print $0 @}' BBS-list
+awk 'BEGIN @{ RS = "u" @}
+ @{ print $0 @}' mail-list
@end example
@noindent
-changes the value of @code{RS} to @code{"/"}, before reading any input.
-This is a string whose first character is a slash; as a result, records
-are separated by slashes. Then the input file is read, and the second
+changes the value of @code{RS} to @samp{u}, before reading any input.
+This is a string whose first character is the letter ``u;'' as a result, records
+are separated by the letter ``u.'' Then the input file is read, and the second
rule in the @command{awk} program (the action with no pattern) prints each
record. Because each @code{print} statement adds a newline at the end of
its output, this @command{awk} program copies the input
-with each slash changed to a newline. Here are the results of running
-the program on @file{BBS-list}:
-
-@example
-$ @kbd{awk 'BEGIN @{ RS = "/" @}}
-> @kbd{@{ print $0 @}' BBS-list}
-@print{} aardvark 555-5553 1200
-@print{} 300 B
-@print{} alpo-net 555-3412 2400
-@print{} 1200
-@print{} 300 A
-@print{} barfly 555-7685 1200
-@print{} 300 A
-@print{} bites 555-1675 2400
-@print{} 1200
-@print{} 300 A
-@print{} camelot 555-0542 300 C
-@print{} core 555-2912 1200
-@print{} 300 C
-@print{} fooey 555-1234 2400
-@print{} 1200
-@print{} 300 B
-@print{} foot 555-6699 1200
-@print{} 300 B
-@print{} macfoo 555-6480 1200
-@print{} 300 A
-@print{} sdace 555-3430 2400
-@print{} 1200
-@print{} 300 A
-@print{} sabafoo 555-2127 1200
-@print{} 300 C
-@print{}
+with each @samp{u} changed to a newline. Here are the results of running
+the program on @file{mail-list}:
+
+@example
+$ @kbd{awk 'BEGIN @{ RS = "u" @}}
+> @kbd{@{ print $0 @}' mail-list}
+@print{} Amelia 555-5553 amelia.zodiac
+@print{} sq
+@print{} e@@gmail.com F
+@print{} Anthony 555-3412 anthony.assert
+@print{} ro@@hotmail.com A
+@print{} Becky 555-7685 becky.algebrar
+@print{} m@@gmail.com A
+@print{} Bill 555-1675 bill.drowning@@hotmail.com A
+@print{} Broderick 555-0542 broderick.aliq
+@print{} otiens@@yahoo.com R
+@print{} Camilla 555-2912 camilla.inf
+@print{} sar
+@print{} m@@skynet.be R
+@print{} Fabi
+@print{} s 555-1234 fabi
+@print{} s.
+@print{} ndevicesim
+@print{} s@@
+@print{} cb.ed
+@print{} F
+@print{} J
+@print{} lie 555-6699 j
+@print{} lie.perscr
+@print{} tabor@@skeeve.com F
+@print{} Martin 555-6480 martin.codicib
+@print{} s@@hotmail.com A
+@print{} Sam
+@print{} el 555-3430 sam
+@print{} el.lanceolis@@sh
+@print{} .ed
+@print{} A
+@print{} Jean-Pa
+@print{} l 555-2127 jeanpa
+@print{} l.campanor
+@print{} m@@ny
+@print{} .ed
+@print{} R
+@print{}
@end example
@noindent
-Note that the entry for the @samp{camelot} BBS is not split.
+Note that the entry for the name @samp{Bill} is not split.
In the original data file
(@pxref{Sample Data Files}),
the line looks like this:
@example
-camelot 555-0542 300 C
+Bill 555-1675 bill.drowning@@hotmail.com A
@end example
@noindent
-It has one baud rate only, so there are no slashes in the record,
-unlike the others which have two or more baud rates.
-In fact, this record is treated as part of the record
-for the @samp{core} BBS; the newline separating them in the output
+It contains no @samp{u} so there is no reason to split the record,
+unlike the others which have one or more occurrences of the @samp{u}.
+In fact, this record is treated as part of the previous record;
+the newline separating them in the output
is the original newline in the data file, not the one added by
@command{awk} when it printed the record!
@@ -5509,14 +5623,17 @@ using the variable-assignment feature
(@pxref{Other Arguments}):
@example
-awk '@{ print $0 @}' RS="/" BBS-list
+awk '@{ print $0 @}' RS="u" mail-list
@end example
@noindent
-This sets @code{RS} to @samp{/} before processing @file{BBS-list}.
+This sets @code{RS} to @samp{u} before processing @file{mail-list}.
-Using an unusual character such as @samp{/} for the record separator
-produces correct behavior in the vast majority of cases.
+Using an alphabetic character such as @samp{u} for the record separator
+is highly likely to produce strange results.
+Using an unusual character such as @samp{/} is more likely to
+produce correct behavior in the majority of cases, but there
+are no guarantees. The moral is: Know Your Data.
There is one unusual case, that occurs when @command{gawk} is
being fully POSIX-compliant (@pxref{Options}).
@@ -5538,6 +5655,7 @@ Reaching the end of an input file terminates the current input record,
even if the last character in the file is not the character in @code{RS}.
@value{DARKCORNER}
+@cindex empty strings
@cindex null strings
@cindex strings, empty, See null strings
The empty string @code{""} (a string without any characters)
@@ -5669,7 +5787,7 @@ character as a record separator. However, this is a special case:
@command{mawk} does not allow embedded @sc{nul} characters in strings.
@cindex records, treating files as
-@cindex files, as single records
+@cindex treating files, as single records
The best way to treat a whole file as a single record is to
simply read the file in, one record at a time, concatenating each
record onto the end of the previous ones.
@@ -5746,31 +5864,29 @@ when you are not interested in specific fields.
Here are some more examples:
@example
-$ @kbd{awk '$1 ~ /foo/ @{ print $0 @}' BBS-list}
-@print{} fooey 555-1234 2400/1200/300 B
-@print{} foot 555-6699 1200/300 B
-@print{} macfoo 555-6480 1200/300 A
-@print{} sabafoo 555-2127 1200/300 C
+$ @kbd{awk '$1 ~ /li/ @{ print $0 @}' mail-list}
+@print{} Amelia 555-5553 amelia.zodiacusque@@gmail.com F
+@print{} Julie 555-6699 julie.perscrutabor@@skeeve.com F
@end example
@noindent
-This example prints each record in the file @file{BBS-list} whose first
-field contains the string @samp{foo}. The operator @samp{~} is called a
+This example prints each record in the file @file{mail-list} whose first
+field contains the string @samp{li}. The operator @samp{~} is called a
@dfn{matching operator}
(@pxref{Regexp Usage});
it tests whether a string (here, the field @code{$1}) matches a given regular
expression.
By contrast, the following example
-looks for @samp{foo} in @emph{the entire record} and prints the first
+looks for @samp{li} in @emph{the entire record} and prints the first
field and the last field for each matching input record:
@example
-$ @kbd{awk '/foo/ @{ print $1, $NF @}' BBS-list}
-@print{} fooey B
-@print{} foot B
-@print{} macfoo A
-@print{} sabafoo C
+$ @kbd{awk '/li/ @{ print $1, $NF @}' mail-list}
+@print{} Amelia F
+@print{} Broderick R
+@print{} Julie F
+@print{} Samuel A
@end example
@c ENDOFRANGE fiex
@@ -5798,7 +5914,7 @@ the record has fewer than 20 fields, so this prints a blank line.
Here is another example of using expressions as field numbers:
@example
-awk '@{ print $(2*2) @}' BBS-list
+awk '@{ print $(2*2) @}' mail-list
@end example
@command{awk} evaluates the expression @samp{(2*2)} and uses
@@ -5807,8 +5923,8 @@ represents multiplication, so the expression @samp{2*2} evaluates to four.
The parentheses are used so that the multiplication is done before the
@samp{$} operation; they are necessary whenever there is a binary
operator in the field-number expression. This example, then, prints the
-hours of operation (the fourth field) for every line of the file
-@file{BBS-list}. (All of the @command{awk} operators are listed, in
+type of relationship (the fourth field) for every line of the file
+@file{mail-list}. (All of the @command{awk} operators are listed, in
order of decreasing precedence, in
@ref{Precedence}.)
@@ -6219,7 +6335,7 @@ was ignored when finding @code{$1}, it is not part of the new @code{$0}.
Finally, the last @code{print} statement prints the new @code{$0}.
@cindex @code{FS}, containing @code{^}
-@cindex @code{^}, in @code{FS}
+@cindex @code{^} (caret), in @code{FS}
@cindex dark corner, @code{^}, in @code{FS}
There is an additional subtlety to be aware of when using regular expressions
for field splitting.
@@ -6230,6 +6346,7 @@ different @command{awk} versions answer this question differently, and you
should not rely on any specific behavior in your programs.
@value{DARKCORNER}
+@cindex Brian Kernighan's @command{awk}
As a point of information, Brian Kernighan's @command{awk} allows @samp{^}
to match only at the beginning of the record. @command{gawk}
also works this way. For example:
@@ -6273,7 +6390,7 @@ $ @kbd{echo a b | gawk 'BEGIN @{ FS = "" @}}
@end example
@cindex dark corner, @code{FS} as null string
-@cindex FS variable, as null string
+@cindex @code{FS} variable, as null string
Traditionally, the behavior of @code{FS} equal to @code{""} was not defined.
In this case, most versions of Unix @command{awk} simply treat the entire record
as only having one field.
@@ -6285,10 +6402,8 @@ behaves this way.
@node Command Line Field Separator
@subsection Setting @code{FS} from the Command Line
-@cindex @option{-F} option
-@cindex options, command-line
-@cindex command line, options
-@cindex field separators, on command line
+@cindex @option{-F} option, command line
+@cindex field separator, on command line
@cindex command line, @code{FS} on@comma{} setting
@cindex @code{FS} variable, setting from command line
@@ -6338,66 +6453,59 @@ figures that you really want your fields to be separated with TABs and
not @samp{t}s. Use @samp{-v FS="t"} or @samp{-F"[t]"} on the command line
if you really do want to separate your fields with @samp{t}s.
-As an example, let's use an @command{awk} program file called @file{baud.awk}
-that contains the pattern @code{/300/} and the action @samp{print $1}:
+As an example, let's use an @command{awk} program file called @file{edu.awk}
+that contains the pattern @code{/edu/} and the action @samp{print $1}:
@example
-/300/ @{ print $1 @}
+/edu/ @{ print $1 @}
@end example
Let's also set @code{FS} to be the @samp{-} character and run the
-program on the file @file{BBS-list}. The following command prints a
-list of the names of the bulletin boards that operate at 300 baud and
+program on the file @file{mail-list}. The following command prints a
+list of the names of the people that work at or attend a university, and
the first three digits of their phone numbers:
@c tweaked to make the tex output look better in @smallbook
@example
-$ @kbd{awk -F- -f baud.awk BBS-list}
-@print{} aardvark 555
-@print{} alpo
-@print{} barfly 555
-@print{} bites 555
-@print{} camelot 555
-@print{} core 555
-@print{} fooey 555
-@print{} foot 555
-@print{} macfoo 555
-@print{} sdace 555
-@print{} sabafoo 555
+$ @kbd{awk -F- -f edu.awk mail-list}
+@print{} Fabius 555
+@print{} Samuel 555
+@print{} Jean
@end example
@noindent
-Note the second line of output. The second line
+Note the third line of output. The third line
in the original file looked like this:
@example
-alpo-net 555-3412 2400/1200/300 A
+Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
@end example
-The @samp{-} as part of the system's name was used as the field
+The @samp{-} as part of the person's name was used as the field
separator, instead of the @samp{-} in the phone number that was
originally intended. This demonstrates why you have to be careful in
choosing your field and record separators.
@cindex Unix @command{awk}, password files@comma{} field separators and
-Perhaps the most common use of a single character as the field
-separator occurs when processing the Unix system password file.
-On many Unix systems, each user has a separate entry in the system password
-file, one line per user. The information in these lines is separated
-by colons. The first field is the user's login name and the second is
-the user's (encrypted or shadow) password. A password file entry might look
-like this:
+Perhaps the most common use of a single character as the field separator
+occurs when processing the Unix system password file. On many Unix
+systems, each user has a separate entry in the system password file, one
+line per user. The information in these lines is separated by colons.
+The first field is the user's login name and the second is the user's
+encrypted or shadow password. (A shadow password is indicated by the
+presence of a single @samp{x} in the second field.) A password file
+entry might look like this:
@cindex Robbins, Arnold
@example
-arnold:xyzzy:2076:10:Arnold Robbins:/home/arnold:/bin/bash
+arnold:x:2076:10:Arnold Robbins:/home/arnold:/bin/bash
@end example
The following program searches the system password file and prints
-the entries for users who have no password:
+the entries for users whose full name is not indicated:
@example
-awk -F: '$2 == ""' /etc/passwd
+awk -F: '$5 == ""' /etc/passwd
@end example
@node Full Line Fields
@@ -6455,7 +6563,7 @@ POSIX standard.)
@sidebar Changing @code{FS} Does Not Affect the Fields
@cindex POSIX @command{awk}, field separators and
-@cindex field separators, POSIX and
+@cindex field separator, POSIX and
According to the POSIX standard, @command{awk} is supposed to behave
as if each record is split into fields at the time it is read.
In particular, this means that if you change the value of @code{FS}
@@ -6778,6 +6886,7 @@ available for splitting regular strings (@pxref{String Functions}).
@node Multiple Line
@section Multiple-Line Records
+@cindex multiple-line records
@c STARTOFRANGE recm
@cindex records, multiline
@c STARTOFRANGE imr
@@ -6829,7 +6938,8 @@ after the last record, the final newline is removed from the record.
In the second case, this special processing is not done.
@value{DARKCORNER}
-@cindex field separators, in multiline records
+@cindex field separator, in multiline records
+@cindex @code{FS}, in multiline records
Now that the input is separated into records, the second step is to
separate the fields in the record. One way to do this is to divide each
of the lines into fields in the normal manner. This happens by default
@@ -6977,7 +7087,7 @@ and study the @code{getline} command @emph{after} you have reviewed the
rest of this @value{DOCUMENT} and have a good knowledge of how @command{awk} works.
@cindex @command{gawk}, @code{ERRNO} variable in
-@cindex @code{ERRNO} variable
+@cindex @code{ERRNO} variable, with @command{getline} command
@cindex differences in @command{awk} and @command{gawk}, @code{getline} command
@cindex @code{getline} command, return values
@cindex @option{--sandbox} option, input redirection with @code{getline}
@@ -7073,6 +7183,7 @@ rule in the program. @xref{Next Statement}.
@node Getline/Variable
@subsection Using @code{getline} into a Variable
+@cindex @code{getline} into a variable
@cindex variables, @code{getline} command into@comma{} using
You can use @samp{getline @var{var}} to read the next record from
@@ -7124,6 +7235,7 @@ the value of @code{NF} do not change.
@node Getline/File
@subsection Using @code{getline} from a File
+@cindex @code{getline} from a file
@cindex input redirection
@cindex redirection of input
@cindex @code{<} (left angle bracket), @code{<} operator (I/O)
@@ -7172,8 +7284,6 @@ from the file
@var{file}, and put it in the variable @var{var}. As above, @var{file}
is a string-valued expression that specifies the file from which to read.
-@cindex @command{gawk}, @code{RT} variable in
-@cindex @code{RT} variable
In this version of @code{getline}, none of the built-in variables are
changed and the record is not split into fields. The only variable
changed is @var{var}.@footnote{This is not quite true. @code{RT} could
@@ -7198,7 +7308,6 @@ Note here how the name of the extra input file is not built into
the program; it is taken directly from the data, specifically from the second field on
the @samp{@@include} line.
-@cindex @code{close()} function
The @code{close()} function is called to ensure that if two identical
@samp{@@include} lines appear in the input, the entire specified file is
included twice.
@@ -7215,6 +7324,7 @@ that does handle nested @samp{@@include} statements.
@subsection Using @code{getline} from a Pipe
@c From private email, dated October 2, 1988. Used by permission, March 2013.
+@cindex Kernighan, Brian
@quotation
@i{Omniscience has much to recommend it.
Failing that, attention to details would be useful.}
@@ -7224,7 +7334,7 @@ Failing that, attention to details would be useful.}
@cindex @code{|} (vertical bar), @code{|} operator (I/O)
@cindex vertical bar (@code{|}), @code{|} operator (I/O)
@cindex input pipeline
-@cindex pipes, input
+@cindex pipe, input
@cindex operators, input/output
The output of a command can also be piped into @code{getline}, using
@samp{@var{command} | getline}. In
@@ -7248,7 +7358,6 @@ produced by running the rest of the line as a shell command:
@end example
@noindent
-@cindex @code{close()} function
The @code{close()} function is called to ensure that if two identical
@samp{@@execute} lines appear in the input, the command is run for
each one.
@@ -7302,6 +7411,8 @@ because the concatenation operator is not parenthesized. You should
write it as @samp{(@w{"echo "} "date") | getline} if you want your program
to be portable to all @command{awk} implementations.
+@cindex Brian Kernighan's @command{awk}
+@cindex @command{mawk} utility
@quotation NOTE
Unfortunately, @command{gawk} has not been consistent in its treatment
of a construct like @samp{@w{"echo "} "date" | getline}.
@@ -7626,6 +7737,7 @@ indefinitely until some other process opens it for writing.
@node Command line directories
@section Directories On The Command Line
+@cindex differences in @command{awk} and @command{gawk}, command line directories
@cindex directories, command line
@cindex command line, directories on
@@ -7869,13 +7981,29 @@ program by using a new value of @code{OFS}.
@example
$ @kbd{awk 'BEGIN @{ OFS = ";"; ORS = "\n\n" @}}
-> @kbd{@{ print $1, $2 @}' BBS-list}
-@print{} aardvark;555-5553
-@print{}
-@print{} alpo-net;555-3412
-@print{}
-@print{} barfly;555-7685
-@dots{}
+> @kbd{@{ print $1, $2 @}' mail-list}
+@print{} Amelia;555-5553
+@print{}
+@print{} Anthony;555-3412
+@print{}
+@print{} Becky;555-7685
+@print{}
+@print{} Bill;555-1675
+@print{}
+@print{} Broderick;555-0542
+@print{}
+@print{} Camilla;555-2912
+@print{}
+@print{} Fabius;555-1234
+@print{}
+@print{} Julie;555-6699
+@print{}
+@print{} Martin;555-6480
+@print{}
+@print{} Samuel;555-3430
+@print{}
+@print{} Jean-Paul;555-2127
+@print{}
@end example
If the value of @code{ORS} does not contain a newline, the program's output
@@ -7897,7 +8025,7 @@ numbers can be formatted. The different format specifications are discussed
more fully in
@ref{Control Letters}.
-@cindex @code{sprintf()} function
+@cindexawkfunc{sprintf}
@cindex @code{OFMT} variable
@cindex output, format specifier@comma{} @code{OFMT}
The built-in variable @code{OFMT} contains the default format specification
@@ -7963,7 +8091,7 @@ parentheses are necessary if any of the item expressions use the @samp{>}
relational operator; otherwise, it can be confused with an output redirection
(@pxref{Redirection}).
-@cindex format strings
+@cindex format specifiers
The difference between @code{printf} and @code{print} is the @var{format}
argument. This is an expression whose value is taken as a string; it
specifies how to output each of the other arguments. It is called the
@@ -8349,30 +8477,30 @@ The following simple example shows
how to use @code{printf} to make an aligned table:
@example
-awk '@{ printf "%-10s %s\n", $1, $2 @}' BBS-list
+awk '@{ printf "%-10s %s\n", $1, $2 @}' mail-list
@end example
@noindent
This command
-prints the names of the bulletin boards (@code{$1}) in the file
-@file{BBS-list} as a string of 10 characters that are left-justified. It also
+prints the names of the people (@code{$1}) in the file
+@file{mail-list} as a string of 10 characters that are left-justified. It also
prints the phone numbers (@code{$2}) next on the line. This
produces an aligned two-column table of names and phone numbers,
as shown here:
@example
-$ @kbd{awk '@{ printf "%-10s %s\n", $1, $2 @}' BBS-list}
-@print{} aardvark 555-5553
-@print{} alpo-net 555-3412
-@print{} barfly 555-7685
-@print{} bites 555-1675
-@print{} camelot 555-0542
-@print{} core 555-2912
-@print{} fooey 555-1234
-@print{} foot 555-6699
-@print{} macfoo 555-6480
-@print{} sdace 555-3430
-@print{} sabafoo 555-2127
+$ @kbd{awk '@{ printf "%-10s %s\n", $1, $2 @}' mail-list}
+@print{} Amelia 555-5553
+@print{} Anthony 555-3412
+@print{} Becky 555-7685
+@print{} Bill 555-1675
+@print{} Broderick 555-0542
+@print{} Camilla 555-2912
+@print{} Fabius 555-1234
+@print{} Julie 555-6699
+@print{} Martin 555-6480
+@print{} Samuel 555-3430
+@print{} Jean-Paul 555-2127
@end example
In this case, the phone numbers had to be printed as strings because
@@ -8393,7 +8521,7 @@ the @command{awk} program:
@example
awk 'BEGIN @{ print "Name Number"
print "---- ------" @}
- @{ printf "%-10s %s\n", $1, $2 @}' BBS-list
+ @{ printf "%-10s %s\n", $1, $2 @}' mail-list
@end example
The above example mixes @code{print} and @code{printf} statements in
@@ -8403,7 +8531,7 @@ same results:
@example
awk 'BEGIN @{ printf "%-10s %s\n", "Name", "Number"
printf "%-10s %s\n", "----", "------" @}
- @{ printf "%-10s %s\n", $1, $2 @}' BBS-list
+ @{ printf "%-10s %s\n", $1, $2 @}' mail-list
@end example
@noindent
@@ -8418,7 +8546,7 @@ emphasized by storing it in a variable, like this:
awk 'BEGIN @{ format = "%-10s %s\n"
printf format, "Name", "Number"
printf format, "----", "------" @}
- @{ printf format, $1, $2 @}' BBS-list
+ @{ printf format, $1, $2 @}' mail-list
@end example
@c !!! exercise
@@ -8475,20 +8603,20 @@ before the first output is written to it. Subsequent writes to the same
@var{output-file} do not erase @var{output-file}, but append to it.
(This is different from how you use redirections in shell scripts.)
If @var{output-file} does not exist, it is created. For example, here
-is how an @command{awk} program can write a list of BBS names to one
+is how an @command{awk} program can write a list of peoples' names to one
file named @file{name-list}, and a list of phone numbers to another file
named @file{phone-list}:
@example
$ @kbd{awk '@{ print $2 > "phone-list"}
-> @kbd{print $1 > "name-list" @}' BBS-list}
+> @kbd{print $1 > "name-list" @}' mail-list}
$ @kbd{cat phone-list}
@print{} 555-5553
@print{} 555-3412
@dots{}
$ @kbd{cat name-list}
-@print{} aardvark
-@print{} alpo-net
+@print{} Amelia
+@print{} Anthony
@dots{}
@end example
@@ -8506,7 +8634,7 @@ appended to the file.
If @var{output-file} does not exist, then it is created.
@cindex @code{|} (vertical bar), @code{|} operator (I/O)
-@cindex pipes, output
+@cindex pipe, output
@cindex output, pipes
@item print @var{items} | @var{command}
It is possible to send output to another program through a pipe
@@ -8517,7 +8645,7 @@ to another process created to execute @var{command}.
The redirection argument @var{command} is actually an @command{awk}
expression. Its value is converted to a string whose contents give
the shell command to be run. For example, the following produces two
-files, one unsorted list of BBS names, and one list sorted in reverse
+files, one unsorted list of peoples' names, and one list sorted in reverse
alphabetical order:
@ignore
@@ -8530,7 +8658,7 @@ alone for now and let's hope no-one notices.
@example
awk '@{ print $1 > "names.unsorted"
command = "sort -r > names.sorted"
- print $1 | command @}' BBS-list
+ print $1 | command @}' mail-list
@end example
The unsorted list is written with an ordinary redirection, while
@@ -8740,9 +8868,9 @@ has been ported to, not just those that are POSIX-compliant:
@cindex extensions, common@comma{} @code{/dev/stdout} special file
@cindex extensions, common@comma{} @code{/dev/stderr} special file
@cindex file names, standard streams in @command{gawk}
-@cindex @code{/dev/@dots{}} special files (@command{gawk})
+@cindex @code{/dev/@dots{}} special files
@cindex files, @code{/dev/@dots{}} special files
-@cindex @code{/dev/fd/@var{N}} special files
+@cindex @code{/dev/fd/@var{N}} special files (@command{gawk})
@table @file
@item /dev/stdin
The standard input (file descriptor 0).
@@ -8843,7 +8971,7 @@ Doing so results in unpredictable behavior.
@c STARTOFRANGE ofc
@cindex output, files@comma{} closing
@c STARTOFRANGE pc
-@cindex pipes, closing
+@cindex pipe, closing
@c STARTOFRANGE cc
@cindex coprocesses, closing
@cindex @code{getline} command, coprocesses@comma{} using from
@@ -8861,7 +8989,7 @@ the file name or command associated with it, and subsequent
writes to the same file or command are appended to the previous writes.
The file or pipe stays open until @command{awk} exits.
-@cindex @code{close()} function
+@cindexawkfunc{close}
This implies that special steps are necessary in order to read the same
file again from the beginning, or to rerun a shell command (rather than
reading more output from the same command). The @code{close()} function
@@ -8946,6 +9074,7 @@ a separate message.
@cindex differences in @command{awk} and @command{gawk}, @code{close()} function
@cindex portability, @code{close()} function and
+@cindex @code{close()} function, portability
If you use more files than the system allows you to have open,
@command{gawk} attempts to multiplex the available open files among
your data files. @command{gawk}'s ability to do this depends upon the
@@ -9025,7 +9154,7 @@ retval = close(command) # syntax error in many Unix awks
@end example
@cindex @command{gawk}, @code{ERRNO} variable in
-@cindex @code{ERRNO} variable
+@cindex @code{ERRNO} variable, with @command{close()} function
@command{gawk} treats @code{close()} as a function.
The return value is @minus{}1 if the argument names something
that was never opened with a redirection, or if there is
@@ -9124,7 +9253,8 @@ have different forms, but are stored identically internally.
@node Scalar Constants
@subsubsection Numeric and String Constants
-@cindex numeric, constants
+@cindex constants, numeric
+@cindex numeric constants
A @dfn{numeric constant} stands for a number. This number can be an
integer, a decimal fraction, or a number in scientific (exponential)
notation.@footnote{The internal representation of all numbers,
@@ -9150,7 +9280,7 @@ double-quotation marks. For example:
@noindent
@cindex differences in @command{awk} and @command{gawk}, strings
-@cindex strings, length of
+@cindex strings, length limitations
represents the string whose contents are @samp{parrot}. Strings in
@command{gawk} can be of any length, and they can contain any of the possible
eight-bit ASCII characters including ASCII @sc{nul} (character code zero).
@@ -9337,9 +9467,9 @@ upon the contents of the current input record.
@cindex differences in @command{awk} and @command{gawk}, regexp constants
@cindex dark corner, regexp constants, as arguments to user-defined functions
-@cindex @code{gensub()} function (@command{gawk})
-@cindex @code{sub()} function
-@cindex @code{gsub()} function
+@cindexgawkfunc{gensub}
+@cindexawkfunc{sub}
+@cindexawkfunc{gsub}
Constant regular expressions are also used as the first argument for
the @code{gensub()}, @code{sub()}, and @code{gsub()} functions, as the
second argument of the @code{match()} function,
@@ -9472,7 +9602,7 @@ its position among the input file arguments---after the processing of the
preceding input file argument. For example:
@example
-awk '@{ print $n @}' n=4 inventory-shipped n=2 BBS-list
+awk '@{ print $n @}' n=4 inventory-shipped n=2 mail-list
@end example
@noindent
@@ -9481,10 +9611,10 @@ the first file is read, the command line sets the variable @code{n}
equal to four. This causes the fourth field to be printed in lines from
@file{inventory-shipped}. After the first file has finished,
but before the second file is started, @code{n} is set to two, so that the
-second field is printed in lines from @file{BBS-list}:
+second field is printed in lines from @file{mail-list}:
@example
-$ @kbd{awk '@{ print $n @}' n=4 inventory-shipped n=2 BBS-list}
+$ @kbd{awk '@{ print $n @}' n=4 inventory-shipped n=2 mail-list}
@print{} 15
@print{} 24
@dots{}
@@ -9807,9 +9937,9 @@ specific operator to represent it. Instead, concatenation is performed by
writing expressions next to one another, with no operator. For example:
@example
-$ @kbd{awk '@{ print "Field number one: " $1 @}' BBS-list}
-@print{} Field number one: aardvark
-@print{} Field number one: alpo-net
+$ @kbd{awk '@{ print "Field number one: " $1 @}' mail-list}
+@print{} Field number one: Amelia
+@print{} Field number one: Anthony
@dots{}
@end example
@@ -9817,9 +9947,9 @@ Without the space in the string constant after the @samp{:}, the line
runs together. For example:
@example
-$ @kbd{awk '@{ print "Field number one:" $1 @}' BBS-list}
-@print{} Field number one:aardvark
-@print{} Field number one:alpo-net
+$ @kbd{awk '@{ print "Field number one:" $1 @}' mail-list}
+@print{} Field number one:Amelia
+@print{} Field number one:Anthony
@dots{}
@end example
@@ -9836,6 +9966,8 @@ name = "name"
print "something meaningful" > file name
@end example
+@cindex Brian Kernighan's @command{awk}
+@cindex @command{mawk} utility
@noindent
This produces a syntax error with some versions of Unix
@command{awk}.@footnote{It happens that Brian Kernighan's
@@ -10780,10 +10912,10 @@ The Boolean operators are:
@item @var{boolean1} && @var{boolean2}
True if both @var{boolean1} and @var{boolean2} are true. For example,
the following statement prints the current input record if it contains
-both @samp{2400} and @samp{foo}:
+both @samp{edu} and @samp{li}:
@example
-if ($0 ~ /2400/ && $0 ~ /foo/) print
+if ($0 ~ /edu/ && $0 ~ /li/) print
@end example
@cindex side effects, Boolean operators
@@ -10796,11 +10928,11 @@ no substring @samp{foo} in the record.
@item @var{boolean1} || @var{boolean2}
True if at least one of @var{boolean1} or @var{boolean2} is true.
For example, the following statement prints all records in the input
-that contain @emph{either} @samp{2400} or
-@samp{foo} or both:
+that contain @emph{either} @samp{edu} or
+@samp{li} or both:
@example
-if ($0 ~ /2400/ || $0 ~ /foo/) print
+if ($0 ~ /edu/ || $0 ~ /li/) print
@end example
The subexpression @var{boolean2} is evaluated only if @var{boolean1}
@@ -11395,7 +11527,7 @@ slashes (@code{/@var{regexp}/}), or any expression whose string value
is used as a dynamic regular expression
(@pxref{Computed Regexps}).
The following example prints the second field of each input record
-whose first field is precisely @samp{foo}:
+whose first field is precisely @samp{li}:
@cindex @code{/} (forward slash), patterns and
@cindex forward slash (@code{/}), patterns and
@@ -11404,68 +11536,65 @@ whose first field is precisely @samp{foo}:
@cindex @code{!} (exclamation point), @code{!~} operator
@cindex exclamation point (@code{!}), @code{!~} operator
@example
-$ @kbd{awk '$1 == "foo" @{ print $2 @}' BBS-list}
+$ @kbd{awk '$1 == "li" @{ print $2 @}' mail-list}
@end example
@noindent
-(There is no output, because there is no BBS site with the exact name @samp{foo}.)
+(There is no output, because there is no person with the exact name @samp{li}.)
Contrast this with the following regular expression match, which
-accepts any record with a first field that contains @samp{foo}:
+accepts any record with a first field that contains @samp{li}:
@example
-$ @kbd{awk '$1 ~ /foo/ @{ print $2 @}' BBS-list}
-@print{} 555-1234
+$ @kbd{awk '$1 ~ /foo/ @{ print $2 @}' mail-list}
+@print{} 555-5553
@print{} 555-6699
-@print{} 555-6480
-@print{} 555-2127
@end example
@cindex regexp constants, as patterns
@cindex patterns, regexp constants as
A regexp constant as a pattern is also a special case of an expression
-pattern. The expression @code{/foo/} has the value one if @samp{foo}
-appears in the current input record. Thus, as a pattern, @code{/foo/}
-matches any record containing @samp{foo}.
+pattern. The expression @code{/li/} has the value one if @samp{li}
+appears in the current input record. Thus, as a pattern, @code{/li/}
+matches any record containing @samp{li}.
@cindex Boolean expressions, as patterns
Boolean expressions are also commonly used as patterns.
Whether the pattern
matches an input record depends on whether its subexpressions match.
For example, the following command prints all the records in
-@file{BBS-list} that contain both @samp{2400} and @samp{foo}:
+@file{mail-list} that contain both @samp{edu} and @samp{li}:
@example
-$ @kbd{awk '/2400/ && /foo/' BBS-list}
-@print{} fooey 555-1234 2400/1200/300 B
+$ @kbd{awk '/edu/ && /li/' mail-list}
+@print{} Samuel 555-3430 samuel.lanceolis@@shu.edu A
@end example
The following command prints all records in
-@file{BBS-list} that contain @emph{either} @samp{2400} or @samp{foo}
+@file{mail-list} that contain @emph{either} @samp{edu} or @samp{li}
(or both, of course):
@example
-$ @kbd{awk '/2400/ || /foo/' BBS-list}
-@print{} alpo-net 555-3412 2400/1200/300 A
-@print{} bites 555-1675 2400/1200/300 A
-@print{} fooey 555-1234 2400/1200/300 B
-@print{} foot 555-6699 1200/300 B
-@print{} macfoo 555-6480 1200/300 A
-@print{} sdace 555-3430 2400/1200/300 A
-@print{} sabafoo 555-2127 1200/300 C
+$ @kbd{awk '/edu/ || /li/' mail-list}
+@print{} Amelia 555-5553 amelia.zodiacusque@@gmail.com F
+@print{} Broderick 555-0542 broderick.aliquotiens@@yahoo.com R
+@print{} Fabius 555-1234 fabius.undevicesimus@@ucb.edu F
+@print{} Julie 555-6699 julie.perscrutabor@@skeeve.com F
+@print{} Samuel 555-3430 samuel.lanceolis@@shu.edu A
+@print{} Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
@end example
The following command prints all records in
-@file{BBS-list} that do @emph{not} contain the string @samp{foo}:
+@file{mail-list} that do @emph{not} contain the string @samp{li}:
@example
-$ @kbd{awk '! /foo/' BBS-list}
-@print{} aardvark 555-5553 1200/300 B
-@print{} alpo-net 555-3412 2400/1200/300 A
-@print{} barfly 555-7685 1200/300 A
-@print{} bites 555-1675 2400/1200/300 A
-@print{} camelot 555-0542 300 C
-@print{} core 555-2912 1200/300 C
-@print{} sdace 555-3430 2400/1200/300 A
+$ @kbd{awk '! /li/' mail-list}
+@print{} Anthony 555-3412 anthony.asserturo@@hotmail.com A
+@print{} Becky 555-7685 becky.algebrarum@@gmail.com A
+@print{} Bill 555-1675 bill.drowning@@hotmail.com A
+@print{} Camilla 555-2912 camilla.infusarum@@skynet.be R
+@print{} Fabius 555-1234 fabius.undevicesimus@@ucb.edu F
+@print{} Martin 555-6480 martin.codicibus@@hotmail.com A
+@print{} Jean-Paul 555-2127 jeanpaul.campanorum@@nyu.edu R
@end example
@cindex @code{BEGIN} pattern, Boolean patterns and
@@ -11569,6 +11698,11 @@ $ @kbd{echo Yes | gawk '(/1/,/2/) || /Yes/'}
@error{} gawk: cmd. line:1: ^ syntax error
@end example
+@cindex range patterns, line continuation and
+As a minor point of interest, although it is poor style,
+POSIX allows you to put a newline after the comma in
+a range pattern. @value{DARKCORNER}
+
@node BEGIN/END
@subsection The @code{BEGIN} and @code{END} Special Patterns
@@ -11593,28 +11727,30 @@ programmers.
@node Using BEGIN/END
@subsubsection Startup and Cleanup Actions
+@cindex @code{BEGIN} pattern
+@cindex @code{END} pattern
A @code{BEGIN} rule is executed once only, before the first input record
is read. Likewise, an @code{END} rule is executed once only, after all the
input is read. For example:
@example
$ @kbd{awk '}
-> @kbd{BEGIN @{ print "Analysis of \"foo\"" @}}
-> @kbd{/foo/ @{ ++n @}}
-> @kbd{END @{ print "\"foo\" appears", n, "times." @}' BBS-list}
-@print{} Analysis of "foo"
-@print{} "foo" appears 4 times.
+> @kbd{BEGIN @{ print "Analysis of \"li\"" @}}
+> @kbd{/li/ @{ ++n @}}
+> @kbd{END @{ print "\"li\" appears in", n, "records." @}' mail-list}
+@print{} Analysis of "li"
+@print{} "li" appears in 4 records.
@end example
@cindex @code{BEGIN} pattern, operators and
@cindex @code{END} pattern, operators and
-This program finds the number of records in the input file @file{BBS-list}
-that contain the string @samp{foo}. The @code{BEGIN} rule prints a title
+This program finds the number of records in the input file @file{mail-list}
+that contain the string @samp{li}. The @code{BEGIN} rule prints a title
for the report. There is no need to use the @code{BEGIN} rule to
initialize the counter @code{n} to zero, since @command{awk} does this
automatically (@pxref{Variables}).
The second rule increments the variable @code{n} every time a
-record containing the pattern @samp{foo} is read. The @code{END} rule
+record containing the pattern @samp{li} is read. The @code{END} rule
prints the value of @code{n} at the end of the run.
The special patterns @code{BEGIN} and @code{END} cannot be used in ranges
@@ -11667,6 +11803,7 @@ to give @code{$0} a real value is to execute a @code{getline} command
without a variable (@pxref{Getline}).
Another way is simply to assign a value to @code{$0}.
+@cindex Brian Kernighan's @command{awk}
@cindex differences in @command{awk} and @command{gawk}, @code{BEGIN}/@code{END} patterns
@cindex POSIX @command{awk}, @code{BEGIN}/@code{END} patterns
@cindex @code{print} statement, @code{BEGIN}/@code{END} patterns and
@@ -11735,7 +11872,7 @@ you can bypass the fatal error and move on to the next file on the
command line.
@cindex @command{gawk}, @code{ERRNO} variable in
-@cindex @code{ERRNO} variable
+@cindex @code{ERRNO} variable, with @code{BEGINFILE} pattern
@cindex @code{nextfile} statement, @code{BEGINFILE}/@code{ENDFILE} patterns and
You do this by checking if the @code{ERRNO} variable is not the empty
string; if so, then @command{gawk} was not able to open the file. In
@@ -11777,7 +11914,7 @@ both @code{BEGINFILE} and @code{ENDFILE}. Only the @samp{getline
In most other @command{awk} implementations, or if @command{gawk} is in
compatibility mode (@pxref{Options}), they are not special.
-@c FIXME: For 4.1 maybe deal with this?
+@c FIXME: For 4.2 maybe deal with this?
@ignore
Date: Tue, 17 May 2011 02:06:10 PDT
From: rankin@pactechdata.com (Pat Rankin)
@@ -11808,7 +11945,7 @@ An empty (i.e., nonexistent) pattern is considered to match @emph{every}
input record. For example, the program:
@example
-awk '@{ print $1 @}' BBS-list
+awk '@{ print $1 @}' mail-list
@end example
@noindent
@@ -12061,6 +12198,7 @@ the first thing on its line.
@subsection The @code{while} Statement
@cindex @code{while} statement
@cindex loops
+@cindex loops, @code{while}
@cindex loops, See Also @code{while} statement
In programming, a @dfn{loop} is a part of a program that can
@@ -12121,6 +12259,7 @@ program is harder to read without it.
@node Do Statement
@subsection The @code{do}-@code{while} Statement
@cindex @code{do}-@code{while} statement
+@cindex loops, @code{do}-@code{while}
The @code{do} loop is a variation of the @code{while} looping statement.
The @code{do} loop executes the @var{body} once and then repeats the
@@ -12166,6 +12305,7 @@ occasionally is there a real use for a @code{do} statement.
@node For Statement
@subsection The @code{for} Statement
@cindex @code{for} statement
+@cindex loops, @code{for}, iterative
The @code{for} statement makes it more convenient to count iterations of a
loop. The general form of the @code{for} statement looks like this:
@@ -12272,6 +12412,8 @@ for more information on this version of the @code{for} loop.
@cindex @code{case} keyword
@cindex @code{default} keyword
+This @value{SECTION} describes a @command{gawk}-specific feature.
+
The @code{switch} statement allows the evaluation of an expression and
the execution of statements based on a @code{case} match. Case statements
are checked for a match in the order they are defined. If no suitable
@@ -12336,6 +12478,7 @@ it is not available.
@subsection The @code{break} Statement
@cindex @code{break} statement
@cindex loops, exiting
+@cindex loops, @code{break} statement and
The @code{break} statement jumps out of the innermost @code{for},
@code{while}, or @code{do} loop that encloses it. The following example
@@ -12395,6 +12538,7 @@ This is discussed in @ref{Switch Statement}.
@cindex POSIX @command{awk}, @code{break} statement and
@cindex dark corner, @code{break} statement
@cindex @command{gawk}, @code{break} statement in
+@cindex Brian Kernighan's @command{awk}
The @code{break} statement has no meaning when
used outside the body of a loop or @code{switch}.
However, although it was never documented,
@@ -12459,6 +12603,7 @@ This program loops forever once @code{x} reaches 5.
@cindex POSIX @command{awk}, @code{continue} statement and
@cindex dark corner, @code{continue} statement
@cindex @command{gawk}, @code{continue} statement in
+@cindex Brian Kernighan's @command{awk}
The @code{continue} statement has no special meaning with respect to the
@code{switch} statement, nor does it have any meaning when used outside the
body of a loop. Historical versions of @command{awk} treated a @code{continue}
@@ -12596,8 +12741,10 @@ See @uref{http://austingroupbugs.net/view.php?id=607, the Austin Group website}.
@cindex functions, user-defined, @code{next}/@code{nextfile} statements and
@cindex @code{nextfile} statement, user-defined functions and
-The current version of the Brian Kernighan's @command{awk} (@pxref{Other
-Versions}) also supports @code{nextfile}. However, it doesn't allow the
+@cindex Brian Kernighan's @command{awk}
+@cindex @command{mawk} utility
+The current version of the Brian Kernighan's @command{awk}, and @command{mawk} (@pxref{Other
+Versions}) also support @code{nextfile}. However, they don't allow the
@code{nextfile} statement inside function bodies (@pxref{User-defined}).
@command{gawk} does; a @code{nextfile} inside a function body reads the
next record and starts processing it with the first rule in the program,
@@ -12834,8 +12981,8 @@ is to simply say @samp{FS = FS}, perhaps with an explanatory comment.
@cindex @command{gawk}, @code{IGNORECASE} variable in
@cindex @code{IGNORECASE} variable
@cindex differences in @command{awk} and @command{gawk}, @code{IGNORECASE} variable
-@cindex case sensitivity, string comparisons and
-@cindex case sensitivity, regexps and
+@cindex case sensitivity, and string comparisons
+@cindex case sensitivity, and regexps
@cindex regular expressions, case sensitivity
@item IGNORECASE #
If @code{IGNORECASE} is nonzero or non-null, then all string comparisons
@@ -13000,16 +13147,16 @@ In the following example:
$ @kbd{awk 'BEGIN @{}
> @kbd{for (i = 0; i < ARGC; i++)}
> @kbd{print ARGV[i]}
-> @kbd{@}' inventory-shipped BBS-list}
+> @kbd{@}' inventory-shipped mail-list}
@print{} awk
@print{} inventory-shipped
-@print{} BBS-list
+@print{} mail-list
@end example
@noindent
@code{ARGV[0]} contains @samp{awk}, @code{ARGV[1]}
contains @samp{inventory-shipped}, and @code{ARGV[2]} contains
-@samp{BBS-list}. The value of @code{ARGC} is three, one more than the
+@samp{mail-list}. The value of @code{ARGC} is three, one more than the
index of the last element in @code{ARGV}, because the elements are numbered
from zero.
@@ -13052,7 +13199,7 @@ or if @command{gawk} is in compatibility mode
it is not special.
@cindex @code{ENVIRON} array
-@cindex environment variables
+@cindex environment variables, in @code{ENVIRON} array
@item ENVIRON
An associative array containing the values of the environment. The array
indices are the environment variable names; the elements are the values of
@@ -13175,10 +13322,12 @@ The following elements (listed alphabetically)
are guaranteed to be available:
@table @code
+@cindex effective group ID of @command{gawk} user
@item PROCINFO["egid"]
The value of the @code{getegid()} system call.
@item PROCINFO["euid"]
+@cindex effective user ID of @command{gawk} user
The value of the @code{geteuid()} system call.
@item PROCINFO["FS"]
@@ -13188,6 +13337,7 @@ This is
or @code{"FPAT"} if field matching with @code{FPAT} is in effect.
@item PROCINFO["identifiers"]
+@cindex program identifiers
A subarray, indexed by the names of all identifiers used in the
text of the AWK program. For each identifier, the value of the element is one of the following:
@@ -13216,15 +13366,19 @@ after it has finished parsing the program; they are @emph{not} updated
while the program runs.
@item PROCINFO["gid"]
+@cindex group ID of @command{gawk} user
The value of the @code{getgid()} system call.
@item PROCINFO["pgrpid"]
+@cindex process group idIDof @command{gawk} process
The process group ID of the current process.
@item PROCINFO["pid"]
+@cindex process ID of @command{gawk} process
The process ID of the current process.
@item PROCINFO["ppid"]
+@cindex parent process ID of @command{gawk} process
The parent process ID of the current process.
@item PROCINFO["sorted_in"]
@@ -13244,25 +13398,31 @@ Assigning a new value to this element changes the default.
The value of the @code{getuid()} system call.
@item PROCINFO["version"]
+@cindex version of @command{gawk}
+@cindex @command{gawk} version
The version of @command{gawk}.
@end table
The following additional elements in the array
are available to provide information about the MPFR and GMP libraries
if your version of @command{gawk} supports arbitrary precision numbers
-(@pxref{Arbitrary Precision Arithmetic}):
+(@pxref{Gawk and MPFR}):
@table @code
+@cindex version of GNU MPFR library
@item PROCINFO["mpfr_version"]
The version of the GNU MPFR library.
@item PROCINFO["gmp_version"]
+@cindex version of GNU MP library
The version of the GNU MP library.
@item PROCINFO["prec_max"]
+@cindex maximum precision supported by MPFR library
The maximum precision supported by MPFR.
@item PROCINFO["prec_min"]
+@cindex minimum precision supported by MPFR library
The minimum precision required by MPFR.
@end table
@@ -13273,12 +13433,15 @@ of @command{gawk} supports dynamic loading of extension functions
@table @code
@item PROCINFO["api_major"]
+@cindex version of @command{gawk} extension API
+@cindex extension API, version number
The major version of the extension API.
@item PROCINFO["api_minor"]
The minor version of the extension API.
@end table
+@cindex supplementary groups of @command{gawk} process
On some systems, there may be elements in the array, @code{"group1"}
through @code{"group@var{N}"} for some @var{N}. @var{N} is the number of
supplementary groups that the process has. Use the @code{in} operator
@@ -13286,7 +13449,7 @@ to test for these elements
(@pxref{Reference to Elements}).
@cindex @command{gawk}, @code{PROCINFO} array in
-@cindex @code{PROCINFO} array
+@cindex @code{PROCINFO} array, uses
The @code{PROCINFO} array has the following additional uses:
@itemize @bullet
@@ -13358,7 +13521,7 @@ if an element in @code{SYMTAB} is an array.
Also, you may not use the @code{delete} statement with the
@code{SYMTAB} array.
-You may use an index for @code{SYMTAB} that is not a predefined identifer:
+You may use an index for @code{SYMTAB} that is not a predefined identifier:
@example
SYMTAB["xxx"] = 5
@@ -13426,7 +13589,7 @@ changed.
@node ARGC and ARGV
@subsection Using @code{ARGC} and @code{ARGV}
-@cindex @code{ARGC}/@code{ARGV} variables
+@cindex @code{ARGC}/@code{ARGV} variables, how to use
@cindex arguments, command-line
@cindex command line, arguments
@@ -13438,16 +13601,16 @@ and @code{ARGV}:
$ @kbd{awk 'BEGIN @{}
> @kbd{for (i = 0; i < ARGC; i++)}
> @kbd{print ARGV[i]}
-> @kbd{@}' inventory-shipped BBS-list}
+> @kbd{@}' inventory-shipped mail-list}
@print{} awk
@print{} inventory-shipped
-@print{} BBS-list
+@print{} mail-list
@end example
@noindent
In this example, @code{ARGV[0]} contains @samp{awk}, @code{ARGV[1]}
contains @samp{inventory-shipped}, and @code{ARGV[2]} contains
-@samp{BBS-list}.
+@samp{mail-list}.
Notice that the @command{awk} program is not entered in @code{ARGV}. The
other command-line options, with their arguments, are also not
entered. This includes variable assignments done with the @option{-v}
@@ -13571,7 +13734,7 @@ ability to support true multidimensional arrays.
@cindex variables, names of
@cindex functions, names of
-@cindex arrays, names of
+@cindex arrays, names of, and names of functions/variables
@cindex names, arrays/variables
@cindex namespace issues
@command{awk} maintains a single set
@@ -13747,10 +13910,9 @@ Here, the number @code{1} isn't double-quoted, since @command{awk}
automatically converts it to a string.
@cindex @command{gawk}, @code{IGNORECASE} variable in
-@cindex @code{IGNORECASE} variable
@cindex case sensitivity, array indices and
-@cindex arrays, @code{IGNORECASE} variable and
-@cindex @code{IGNORECASE} variable, array subscripts and
+@cindex arrays, and @code{IGNORECASE} variable
+@cindex @code{IGNORECASE} variable, and array indices
The value of @code{IGNORECASE} has no effect upon array subscripting.
The identical string value used to store an array element must be used
to retrieve it.
@@ -13766,8 +13928,9 @@ is independent of the number of elements in the array.
@node Reference to Elements
@subsection Referring to an Array Element
-@cindex arrays, elements, referencing
-@cindex elements in arrays
+@cindex arrays, referencing elements
+@cindex array members
+@cindex elements of arrays
The principal way to use an array is to refer to one of its elements.
An array reference is an expression as follows:
@@ -13784,11 +13947,16 @@ The value of the array reference is the current value of that array
element. For example, @code{foo[4.3]} is an expression for the element
of array @code{foo} at index @samp{4.3}.
+@cindex arrays, unassigned elements
+@cindex unassigned array elements
+@cindex empty array elements
A reference to an array element that has no recorded value yields a value of
@code{""}, the null string. This includes elements
that have not been assigned any value as well as elements that have been
deleted (@pxref{Delete}).
+@cindex non-existent array elements
+@cindex arrays, elements that don't exist
@quotation NOTE
A reference to an element that does not exist @emph{automatically} creates
that array element, with the null string as its value. (In some cases,
@@ -13808,7 +13976,7 @@ if it didn't exist before!
@end quotation
@c @cindex arrays, @code{in} operator and
-@cindex @code{in} operator
+@cindex @code{in} operator, testing if array element exists
To determine whether an element exists in an array at a certain index, use
the following expression:
@@ -13843,8 +14011,8 @@ if (frequencies[2] != "")
@node Assigning Elements
@subsection Assigning Array Elements
-@cindex arrays, elements, assigning
-@cindex elements in arrays, assigning
+@cindex arrays, elements, assigning values
+@cindex elements in arrays, assigning values
Array elements can be assigned values just like
@command{awk} variables:
@@ -13861,6 +14029,7 @@ assign to that element of the array.
@node Array Example
@subsection Basic Array Example
+@cindex arrays, an example of using
The following program takes a list of lines, each beginning with a line
number, and prints them out in order of line number. The line numbers
@@ -13930,7 +14099,9 @@ END @{
@node Scanning an Array
@subsection Scanning All Elements of an Array
@cindex elements in arrays, scanning
+@cindex scanning arrays
@cindex arrays, scanning
+@cindex loops, @code{for}, array scanning
In programs that use arrays, it is often necessary to use a loop that
executes once for each element of an array. In other languages, where
@@ -13947,7 +14118,7 @@ for (@var{var} in @var{array})
@end example
@noindent
-@cindex @code{in} operator
+@cindex @code{in} operator, use in loops
This loop executes @var{body} once for each index in @var{array} that the
program has previously used, with the variable @var{var} set to that index.
@@ -13986,8 +14157,9 @@ END @{
@xref{Word Sorting},
for a more detailed example of this type.
-@cindex arrays, elements, order of
-@cindex elements in arrays, order of
+@cindex arrays, elements, order of access by @code{in} operator
+@cindex elements in arrays, order of access by @code{in} operator
+@cindex @code{in} operator, order of array access
The order in which elements of the array are accessed by this statement
is determined by the internal arrangement of the array elements within
@command{awk} and normally cannot be controlled or changed. This can lead to
@@ -14005,6 +14177,8 @@ determines the order in which the array is traversed.
This order is usually based on the internal implementation of arrays
and will vary from one version of @command{awk} to the next.
+@cindex array scanning order, controlling
+@cindex controlling array scanning order
Often, though, you may wish to do something simple, such as
``traverse the array by comparing the indices in ascending order,''
or ``traverse the array by comparing the values in descending order.''
@@ -14021,6 +14195,7 @@ to use for comparison of array elements. This advanced feature
is described later, in @ref{Array Sorting}.
@end itemize
+@cindex @code{PROCINFO}, values of @code{sorted_in}
The following special values for @code{PROCINFO["sorted_in"]} are available:
@table @code
@@ -14181,7 +14356,7 @@ if (4 in foo)
print "This will never be printed"
@end example
-@cindex null strings, array elements and
+@cindex null strings, and deleting array elements
It is important to note that deleting an element is @emph{not} the
same as assigning it a null value (the empty string, @code{""}).
For example:
@@ -14203,6 +14378,7 @@ is not in the array is deleted.
@cindex extensions, common@comma{} @code{delete} to delete entire arrays
@cindex arrays, deleting entire contents
@cindex deleting entire arrays
+@cindex @code{delete} @var{array}
@cindex differences in @command{awk} and @command{gawk}, array elements, deleting
All the elements of an array may be deleted with a single statement
by leaving off the subscript in the @code{delete} statement,
@@ -14217,6 +14393,7 @@ Using this version of the @code{delete} statement is about three times
more efficient than the equivalent loop that deletes each element one
at a time.
+@cindex Brian Kernighan's @command{awk}
@quotation NOTE
For many years,
using @code{delete} without a subscript was a @command{gawk} extension.
@@ -14259,9 +14436,9 @@ a = 3
@section Using Numbers to Subscript Arrays
@cindex numbers, as array subscripts
-@cindex arrays, subscripts
+@cindex arrays, numeric subscripts
@cindex subscripts in arrays, numbers as
-@cindex @code{CONVFMT} variable, array subscripts and
+@cindex @code{CONVFMT} variable, and array subscripts
An important aspect to remember about arrays is that @emph{array subscripts
are always strings}. When a numeric value is used as a subscript,
it is converted to a string value before being used for subscripting
@@ -14291,7 +14468,8 @@ string value from @code{xyz}---this time @code{"12.15"}---because the value of
@code{CONVFMT} only allows two significant digits. This test fails,
since @code{"12.15"} is different from @code{"12.153"}.
-@cindex converting, during subscripting
+@cindex converting integer array subscripts
+@cindex integer array indices
According to the rules for conversions
(@pxref{Conversion}), integer
values are always converted to strings as integers, no matter what the
@@ -14397,7 +14575,7 @@ languages, including @command{awk}) to refer to an element of a
two-dimensional array named @code{grid} is with
@code{grid[@var{x},@var{y}]}.
-@cindex @code{SUBSEP} variable, multidimensional arrays
+@cindex @code{SUBSEP} variable, and multidimensional arrays
Multidimensional arrays are supported in @command{awk} through
concatenation of indices into one string.
@command{awk} converts the indices into strings
@@ -14429,6 +14607,7 @@ combined strings that are ambiguous. Suppose that @code{SUBSEP} is
"b@@c"]}} are indistinguishable because both are actually
stored as @samp{foo["a@@b@@c"]}.
+@cindex @code{in} operator, index existence in multidimensional arrays
To test whether a particular index sequence exists in a
multidimensional array, use the same operator (@code{in}) that is
used for single dimensional arrays. Write the whole sequence of indices
@@ -14494,6 +14673,7 @@ multidimensional @emph{way of accessing} an array.
@cindex subscripts in arrays, multidimensional, scanning
@cindex arrays, multidimensional, scanning
+@cindex scanning multidimensional arrays
However, if your program has an array that is always accessed as
multidimensional, you can get the effect of scanning it by combining
the scanning @code{for} statement
@@ -14535,6 +14715,7 @@ separate indices is recovered.
@node Arrays of Arrays
@section Arrays of Arrays
+@cindex arrays of arrays
@command{gawk} goes beyond standard @command{awk}'s multidimensional
array access and provides true arrays of
@@ -14794,6 +14975,7 @@ two arguments 11 and 10.
@node Numeric Functions
@subsection Numeric Functions
+@cindex numeric functions
The following list describes all of
the built-in functions that work with numbers.
@@ -14801,22 +14983,26 @@ Optional parameters are enclosed in square brackets@w{ ([ ]):}
@table @code
@item atan2(@var{y}, @var{x})
-@cindex @code{atan2()} function
+@cindexawkfunc{atan2}
+@cindex arctangent
Return the arctangent of @code{@var{y} / @var{x}} in radians.
You can use @samp{pi = atan2(0, -1)} to retrieve the value of @value{PI}.
@item cos(@var{x})
-@cindex @code{cos()} function
+@cindexawkfunc{cos}
+@cindex cosine
Return the cosine of @var{x}, with @var{x} in radians.
@item exp(@var{x})
-@cindex @code{exp()} function
+@cindexawkfunc{exp}
+@cindex exponent
Return the exponential of @var{x} (@code{e ^ @var{x}}) or report
an error if @var{x} is out of range. The range of values @var{x} can have
depends on your machine's floating-point representation.
@item int(@var{x})
-@cindex @code{int()} function
+@cindexawkfunc{int}
+@cindex round to nearest integer
Return the nearest integer to @var{x}, located between @var{x} and zero and
truncated toward zero.
@@ -14824,12 +15010,13 @@ For example, @code{int(3)} is 3, @code{int(3.9)} is 3, @code{int(-3.9)}
is @minus{}3, and @code{int(-3)} is @minus{}3 as well.
@item log(@var{x})
-@cindex @code{log()} function
+@cindexawkfunc{log}
+@cindex logarithm
Return the natural logarithm of @var{x}, if @var{x} is positive;
otherwise, report an error.
@item rand()
-@cindex @code{rand()} function
+@cindexawkfunc{rand}
@cindex random numbers, @code{rand()}/@code{srand()} functions
Return a random number. The values of @code{rand()} are
uniformly distributed between zero and one.
@@ -14871,7 +15058,7 @@ function roll(n) @{ return 1 + int(rand() * n) @}
@}
@end example
-@cindex numbers, random
+@cindex seeding random number generator
@cindex random numbers, seed of
@quotation CAUTION
In most @command{awk} implementations, including @command{gawk},
@@ -14887,17 +15074,19 @@ use @code{srand()}.
@end quotation
@item sin(@var{x})
-@cindex @code{sin()} function
+@cindexawkfunc{sin}
+@cindex sine
Return the sine of @var{x}, with @var{x} in radians.
@item sqrt(@var{x})
-@cindex @code{sqrt()} function
+@cindexawkfunc{sqrt}
+@cindex square root
Return the positive square root of @var{x}.
@command{gawk} prints a warning message
if @var{x} is negative. Thus, @code{sqrt(4)} is 2.
@item srand(@r{[}@var{x}@r{]})
-@cindex @code{srand()} function
+@cindexawkfunc{srand}
Set the starting point, or seed,
for generating random numbers to the value @var{x}.
@@ -14927,6 +15116,7 @@ sequences of random numbers.
@node String Functions
@subsection String-Manipulation Functions
+@cindex string-manipulation functions
The functions in this @value{SECTION} look at or change the text of one
or more strings.
@@ -14955,11 +15145,11 @@ pound sign@w{ (@samp{#}):}
@table @code
@item asort(@var{source} @r{[}, @var{dest} @r{[}, @var{how} @r{]} @r{]}) #
@itemx asorti(@var{source} @r{[}, @var{dest} @r{[}, @var{how} @r{]} @r{]}) #
-@cindex @code{asorti()} function (@command{gawk})
+@cindexgawkfunc{asorti}
+@cindex sort array
@cindex arrays, elements, retrieving number of
-@cindex @code{asort()} function (@command{gawk})
-@cindex @command{gawk}, @code{IGNORECASE} variable in
-@cindex @code{IGNORECASE} variable
+@cindexgawkfunc{asort}
+@cindex sort array indices
These two functions are similar in behavior, so they are described
together.
@@ -14977,7 +15167,9 @@ sequential integers starting with one. If the optional array @var{dest}
is specified, then @var{source} is duplicated into @var{dest}. @var{dest}
is then sorted, leaving the indices of @var{source} unchanged.
-When comparing strings, @code{IGNORECASE} affects the sorting. If the
+@cindex @command{gawk}, @code{IGNORECASE} variable in
+When comparing strings, @code{IGNORECASE} affects the sorting
+(@pxref{Array Sorting Functions}). If the
@var{source} array contains subarrays as values (@pxref{Arrays of
Arrays}), they will come last, after all scalar values.
@@ -15020,7 +15212,9 @@ a[3] = "middle"
are not available in compatibility mode (@pxref{Options}).
@item gensub(@var{regexp}, @var{replacement}, @var{how} @r{[}, @var{target}@r{]}) #
-@cindex @code{gensub()} function (@command{gawk})
+@cindexgawkfunc{gensub}
+@cindex search and replace in strings
+@cindex substitute in string
Search the target string @var{target} for matches of the regular
expression @var{regexp}. If @var{how} is a string beginning with
@samp{g} or @samp{G} (short for ``global''), then replace all matches of @var{regexp} with
@@ -15029,7 +15223,7 @@ which match of @var{regexp} to replace. If no @var{target} is supplied,
use @code{$0}. It returns the modified string as the result
of the function and the original target string is @emph{not} changed.
-@code{gensub()} is a general substitution function. It's purpose is
+@code{gensub()} is a general substitution function. Its purpose is
to provide more features than the standard @code{sub()} and @code{gsub()}
functions.
@@ -15083,7 +15277,7 @@ is the original unchanged value of @var{target}.
in compatibility mode (@pxref{Options}).
@item gsub(@var{regexp}, @var{replacement} @r{[}, @var{target}@r{]})
-@cindex @code{gsub()} function
+@cindexawkfunc{gsub}
Search @var{target} for
@emph{all} of the longest, leftmost, @emph{nonoverlapping} matching
substrings it can find and replace them with @var{replacement}.
@@ -15105,8 +15299,9 @@ As in @code{sub()}, the characters @samp{&} and @samp{\} are special,
and the third argument must be assignable.
@item index(@var{in}, @var{find})
-@cindex @code{index()} function
-@cindex searching
+@cindexawkfunc{index}
+@cindex search in string
+@cindex find substring in string
Search the string @var{in} for the first occurrence of the string
@var{find}, and return the position in characters where that occurrence
begins in the string @var{in}. Consider the following example:
@@ -15123,7 +15318,9 @@ If @var{find} is not found, @code{index()} returns zero.
It is a fatal error to use a regexp constant for @var{find}.
@item length(@r{[}@var{string}@r{]})
-@cindex @code{length()} function
+@cindexawkfunc{length}
+@cindex string length
+@cindex length of string
Return the number of characters in @var{string}. If
@var{string} is a number, the length of the digit string representing
that number is returned. For example, @code{length("abcde")} is five. By
@@ -15131,6 +15328,8 @@ contrast, @code{length(15 * 35)} works out to three. In this example, 15 * 35 =
525, and 525 is then converted to the string @code{"525"}, which has
three characters.
+@cindex length of input record
+@cindex input record, length of
If no argument is supplied, @code{length()} returns the length of @code{$0}.
@c @cindex historical features
@@ -15169,6 +15368,8 @@ warning about this.
@cindex common extensions, @code{length()} applied to an array
@cindex extensions, common@comma{} @code{length()} applied to an array
@cindex differences between @command{gawk} and @command{awk}
+@cindex number of array elements
+@cindex array, number of elements
With @command{gawk} and several other @command{awk} implementations, when given an
array argument, the @code{length()} function returns the number of elements
in the array. @value{COMMONEXT}
@@ -15182,7 +15383,9 @@ If @option{--posix} is supplied, using an array argument is a fatal error
(@pxref{Arrays}).
@item match(@var{string}, @var{regexp} @r{[}, @var{array}@r{]})
-@cindex @code{match()} function
+@cindexawkfunc{match}
+@cindex string, regular expression match
+@cindex match regexp in string
Search @var{string} for the
longest, leftmost substring matched by the regular expression,
@var{regexp} and return the character position, or @dfn{index},
@@ -15297,7 +15500,8 @@ The @var{array} argument to @code{match()} is a
using a third argument is a fatal error.
@item patsplit(@var{string}, @var{array} @r{[}, @var{fieldpat} @r{[}, @var{seps} @r{]} @r{]}) #
-@cindex @code{patsplit()} function (@command{gawk})
+@cindexgawkfunc{patsplit}
+@cindex split string into array
Divide
@var{string} into pieces defined by @var{fieldpat}
and store the pieces in @var{array} and the separator strings in the
@@ -15328,7 +15532,7 @@ The @code{patsplit()} function is a
it is not available.
@item split(@var{string}, @var{array} @r{[}, @var{fieldsep} @r{[}, @var{seps} @r{]} @r{]})
-@cindex @code{split()} function
+@cindexawkfunc{split}
Divide @var{string} into pieces separated by @var{fieldsep}
and store the pieces in @var{array} and the separator strings in the
@var{seps} array. The first piece is stored in
@@ -15357,7 +15561,7 @@ split("cul-de-sac", a, "-", seps)
@end example
@noindent
-@cindex strings, splitting
+@cindex strings splitting, example
splits the string @samp{cul-de-sac} into three fields using @samp{-} as the
separator. It sets the contents of the array @code{a} as follows:
@@ -15413,7 +15617,8 @@ If @var{string} does not match @var{fieldsep} at all (but is not null),
@var{string}.
@item sprintf(@var{format}, @var{expression1}, @dots{})
-@cindex @code{sprintf()} function
+@cindexawkfunc{sprintf}
+@cindex formatting strings
Return (without printing) the string that @code{printf} would
have printed out with the same arguments
(@pxref{Printf}).
@@ -15426,7 +15631,8 @@ pival = sprintf("pi = %.2f (approx.)", 22/7)
@noindent
assigns the string @w{@samp{pi = 3.14 (approx.)}} to the variable @code{pival}.
-@cindex @code{strtonum()} function (@command{gawk})
+@cindexgawkfunc{strtonum}
+@cindex convert string to number
@item strtonum(@var{str}) #
Examine @var{str} and return its numeric value. If @var{str}
begins with a leading @samp{0}, @code{strtonum()} assumes that @var{str}
@@ -15449,12 +15655,12 @@ you use the @option{--non-decimal-data} option, which isn't recommended.
Note also that @code{strtonum()} uses the current locale's decimal point
for recognizing numbers (@pxref{Locales}).
-@cindex differences in @command{awk} and @command{gawk}, @code{strtonum()} function (@command{gawk})
@code{strtonum()} is a @command{gawk} extension; it is not available
in compatibility mode (@pxref{Options}).
@item sub(@var{regexp}, @var{replacement} @r{[}, @var{target}@r{]})
-@cindex @code{sub()} function
+@cindexawkfunc{sub}
+@cindex replace in string
Search @var{target}, which is treated as a string, for the
leftmost, longest substring matched by the regular expression @var{regexp}.
Modify the entire string
@@ -15554,7 +15760,8 @@ Finally, if the @var{regexp} is not a regexp constant, it is converted into a
string, and then the value of that string is treated as the regexp to match.
@item substr(@var{string}, @var{start} @r{[}, @var{length}@r{]})
-@cindex @code{substr()} function
+@cindexawkfunc{substr}
+@cindex substring
Return a @var{length}-character-long substring of @var{string},
starting at character number @var{start}. The first character of a
string is character number one.@footnote{This is different from
@@ -15568,6 +15775,7 @@ suffix is also returned
if @var{length} is greater than the number of characters remaining
in the string, counting from character @var{start}.
+@cindex Brian Kernighan's @command{awk}
If @var{start} is less than one, @code{substr()} treats it as
if it was one. (POSIX doesn't specify what to do in this case:
Brian Kernighan's @command{awk} acts this way, and therefore @command{gawk}
@@ -15610,16 +15818,18 @@ string = substr(string, 1, 2) "CDE" substr(string, 6)
@end example
@cindex case sensitivity, converting case
-@cindex converting, case
+@cindex strings, converting letter case
@item tolower(@var{string})
-@cindex @code{tolower()} function
+@cindexawkfunc{tolower}
+@cindex convert string to lower case
Return a copy of @var{string}, with each uppercase character
in the string replaced with its corresponding lowercase character.
Nonalphabetic characters are left unchanged. For example,
@code{tolower("MiXeD cAsE 123")} returns @code{"mixed case 123"}.
@item toupper(@var{string})
-@cindex @code{toupper()} function
+@cindexawkfunc{toupper}
+@cindex convert string to upper case
Return a copy of @var{string}, with each lowercase character
in the string replaced with its corresponding uppercase character.
Nonalphabetic characters are left unchanged. For example,
@@ -15647,6 +15857,7 @@ and builds an internal copy of it that can be executed.
Then there is the runtime level, which is when @command{awk} actually scans the
replacement string to determine what to generate.
+@cindex Brian Kernighan's @command{awk}
At both levels, @command{awk} looks for a defined set of characters that
can come after a backslash. At the lexical level, it looks for the
escape sequences listed in @ref{Escape Sequences}.
@@ -16011,14 +16222,16 @@ Although this makes a certain amount of sense, it can be surprising.
@node I/O Functions
@subsection Input/Output Functions
+@cindex input/output functions
The following functions relate to input/output (I/O).
Optional parameters are enclosed in square brackets ([ ]):
@table @code
@item close(@var{filename} @r{[}, @var{how}@r{]})
-@cindex @code{close()} function
+@cindexawkfunc{close}
@cindex files, closing
+@cindex close file or coprocess
Close the file @var{filename} for input or output. Alternatively, the
argument may be a shell command that was used for creating a coprocess, or
for redirecting to or from a pipe; then the coprocess or pipe is closed.
@@ -16035,7 +16248,8 @@ not matter.
which discusses this feature in more detail and gives an example.
@item fflush(@r{[}@var{filename}@r{]})
-@cindex @code{fflush()} function
+@cindexawkfunc{fflush}
+@cindex flush buffered output
Flush any buffered output associated with @var{filename}, which is either a
file opened for writing or a shell command for redirecting output to
a pipe or coprocess.
@@ -16053,11 +16267,12 @@ This is the purpose of the @code{fflush()} function---@command{gawk} also
buffers its output and the @code{fflush()} function forces
@command{gawk} to flush its buffers.
-@code{fflush()} was added to Brian Kernighan's
-version of @command{awk} in 1994.
-For over two decades, it was not part of the POSIX standard.
-As of December, 2012, it was accepted for
-inclusion into the POSIX standard.
+@cindex extensions, common@comma{} @code{fflush()} function
+@cindex Brian Kernighan's @command{awk}
+@code{fflush()} was added to Brian Kernighan's version of @command{awk} in
+April of 1992. For two decades, it was not part of the POSIX standard.
+As of December, 2012, it was accepted for inclusion into the POSIX
+standard.
See @uref{http://austingroupbugs.net/view.php?id=634, the Austin Group website}.
POSIX standardizes @code{fflush()} as follows: If there
@@ -16093,7 +16308,8 @@ or if @var{filename} is not an open file, pipe, or coprocess.
In such a case, @code{fflush()} returns @minus{}1, as well.
@item system(@var{command})
-@cindex @code{system()} function
+@cindexawkfunc{system}
+@cindex invoke shell command
@cindex interacting with other programs
Execute the operating-system
command @var{command} and then return to the @command{awk} program.
@@ -16240,6 +16456,7 @@ you would see the latter (undesirable) output.
@node Time Functions
@subsection Time Functions
+@cindex time functions
@c STARTOFRANGE tst
@cindex timestamps
@@ -16259,7 +16476,18 @@ it is the number of seconds since
1970-01-01 00:00:00 UTC, not counting leap seconds.@footnote{@xref{Glossary},
especially the entries ``Epoch'' and ``UTC.''}
All known POSIX-compliant systems support timestamps from 0 through
-@math{2^{31} - 1}, which is sufficient to represent times through
+@iftex
+@math{2^{31} - 1},
+@end iftex
+@ifnottex
+@ifnotdocbook
+2^31 - 1,
+@end ifnotdocbook
+@end ifnottex
+@docbook
+2<superscript>31</superscript> &minus; 1, @c
+@end docbook
+which is sufficient to represent times through
2038-01-19 03:14:07 UTC. Many systems support a wider range of timestamps,
including negative timestamps that represent times before the
epoch.
@@ -16278,7 +16506,8 @@ Optional parameters are enclosed in square brackets ([ ]):
@table @code
@item mktime(@var{datespec})
-@cindex @code{mktime()} function (@command{gawk})
+@cindexgawkfunc{mktime}
+@cindex generate time values
Turn @var{datespec} into a timestamp in the same form
as is returned by @code{systime()}. It is similar to the function of the
same name in ISO C. The argument, @var{datespec}, is a string of the form
@@ -16308,7 +16537,8 @@ is out of range, @code{mktime()} returns @minus{}1.
@cindex @code{PROCINFO} array
@item strftime(@r{[}@var{format} @r{[}, @var{timestamp} @r{[}, @var{utc-flag}@r{]]]})
@c STARTOFRANGE strf
-@cindex @code{strftime()} function (@command{gawk})
+@cindexgawkfunc{strftime}
+@cindex format time string
Format the time specified by @var{timestamp}
based on the contents of the @var{format} string and return the result.
It is similar to the function of the same name in ISO C.
@@ -16325,11 +16555,12 @@ The default string value is
@code{@w{"%a %b %e %H:%M:%S %Z %Y"}}. This format string produces
output that is equivalent to that of the @command{date} utility.
You can assign a new value to @code{PROCINFO["strftime"]} to
-change the default format.
+change the default format; see below for the various format directives.
@item systime()
-@cindex @code{systime()} function (@command{gawk})
+@cindexgawkfunc{systime}
@cindex timestamps
+@cindex current system time
Return the current time as the number of seconds since
the system epoch. On POSIX systems, this is the number of seconds
since 1970-01-01 00:00:00 UTC, not counting leap seconds.
@@ -16623,6 +16854,7 @@ gawk 'BEGIN @{
@node Bitwise Functions
@subsection Bit-Manipulation Functions
+@cindex bit-manipulation functions
@c STARTOFRANGE bit
@cindex bitwise, operations
@c STARTOFRANGE and
@@ -16785,27 +17017,33 @@ bitwise operations just described. They are:
@cindex @command{gawk}, bitwise operations in
@table @code
-@cindex @code{and()} function (@command{gawk})
+@cindexgawkfunc{and}
+@cindex bitwise AND
@item and(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise AND of the arguments. There must be at least two.
-@cindex @code{compl()} function (@command{gawk})
+@cindexgawkfunc{compl}
+@cindex bitwise complement
@item compl(@var{val})
Return the bitwise complement of @var{val}.
-@cindex @code{lshift()} function (@command{gawk})
+@cindexgawkfunc{lshift}
+@cindex left shift
@item lshift(@var{val}, @var{count})
Return the value of @var{val}, shifted left by @var{count} bits.
-@cindex @code{or()} function (@command{gawk})
+@cindexgawkfunc{or}
+@cindex bitwise OR
@item or(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise OR of the arguments. There must be at least two.
-@cindex @code{rshift()} function (@command{gawk})
+@cindexgawkfunc{rshift}
+@cindex right shift
@item rshift(@var{val}, @var{count})
Return the value of @var{val}, shifted right by @var{count} bits.
-@cindex @code{xor()} function (@command{gawk})
+@cindexgawkfunc{xor}
+@cindex bitwise XOR
@item xor(@var{v1}, @var{v2} @r{[}, @r{@dots{}]})
Return the bitwise XOR of the arguments. There must be at least two.
@end table
@@ -16897,6 +17135,7 @@ $ @kbd{gawk -f testbits.awk}
@cindex strings, converting
@cindex numbers, converting
@cindex converting, numbers to strings
+@cindex number as string of bits
The @code{bits2str()} function turns a binary number into a string.
The number @code{1} represents a binary value where the rightmost bit
is set to 1. Using this mask,
@@ -16932,7 +17171,8 @@ that traverses every element of a true multidimensional array
(@pxref{Arrays of Arrays}).
@table @code
-@cindex @code{isarray()} function (@command{gawk})
+@cindexgawkfunc{isarray}
+@cindex scalar or array
@item isarray(@var{x})
Return a true value if @var{x} is an array. Otherwise return false.
@end table
@@ -16940,7 +17180,7 @@ Return a true value if @var{x} is an array. Otherwise return false.
@code{isarray()} is meant for use in two circumstances. The first is when
traversing a multidimensional array: you can test if an element is itself
an array or not. The second is inside the body of a user-defined function
-(not discussed yet; @pxref{User-defined}), to test if a paramater is an
+(not discussed yet; @pxref{User-defined}), to test if a parameter is an
array or not.
Note, however, that using @code{isarray()} at the global level to test
@@ -16954,6 +17194,7 @@ will end up turning it into a scalar.
@subsection String-Translation Functions
@cindex @command{gawk}, string-translation functions
@cindex functions, string-translation
+@cindex string-translation functions
@cindex internationalization
@cindex @command{awk} programs, internationalizing
@@ -16965,7 +17206,8 @@ for the full story.
Optional parameters are enclosed in square brackets ([ ]):
@table @code
-@cindex @code{bindtextdomain()} function (@command{gawk})
+@cindexgawkfunc{bindtextdomain}
+@cindex set directory of message catalogs
@item bindtextdomain(@var{directory} @r{[}, @var{domain}@r{]})
Set the directory in which
@command{gawk} will look for message translation files, in case they
@@ -16978,14 +17220,15 @@ If @var{directory} is the null string (@code{""}), then
@code{bindtextdomain()} returns the current binding for the
given @var{domain}.
-@cindex @code{dcgettext()} function (@command{gawk})
+@cindexgawkfunc{dcgettext}
+@cindex translate string
@item dcgettext(@var{string} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the translation of @var{string} in
text domain @var{domain} for locale category @var{category}.
The default value for @var{domain} is the current value of @code{TEXTDOMAIN}.
The default value for @var{category} is @code{"LC_MESSAGES"}.
-@cindex @code{dcngettext()} function (@command{gawk})
+@cindexgawkfunc{dcngettext}
@item dcngettext(@var{string1}, @var{string2}, @var{number} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the plural form used for @var{number} of the
translation of @var{string1} and @var{string2} in text domain
@@ -17002,7 +17245,7 @@ The default value for @var{category} is @code{"LC_MESSAGES"}.
@section User-Defined Functions
@c STARTOFRANGE udfunc
-@cindex user-defined, functions
+@cindex user-defined functions
@c STARTOFRANGE funcud
@cindex functions, user-defined
Complicated @command{awk} programs can often be simplified by defining
@@ -17061,7 +17304,7 @@ have a parameter with the same name as the function itself.
In addition, according to the POSIX standard, function parameters cannot have the same
name as one of the special built-in variables
(@pxref{Built-in Variables}. Not all versions of @command{awk}
-enforce this restriction.
+enforce this restriction.)
The @var{body-of-function} consists of @command{awk} statements. It is the
most important part of the definition, because it says what the function
@@ -17088,6 +17331,7 @@ conventional to place some extra space between the arguments and
the local variables, in order to document how your function is supposed to be used.
@cindex variables, shadowing
+@cindex shadowing of variable values
During execution of the function body, the arguments and local variable
values hide, or @dfn{shadow}, any variables of the same names used in the
rest of the program. The shadowed variables are not accessible in the
@@ -17108,7 +17352,7 @@ function. When this happens, we say the function is @dfn{recursive}.
The act of a function calling itself is called @dfn{recursion}.
All the built-in functions return a value to their caller.
-User-defined functions can do also, using the @code{return} statement,
+User-defined functions can do so also, using the @code{return} statement,
which is described in detail in @ref{Return Statement}.
Many of the subsequent examples in this @value{SECTION} use
the @code{return} statement.
@@ -17146,6 +17390,7 @@ keyword @code{function} when defining a function.
@node Function Example
@subsection Function Definition Examples
+@cindex function definition example
Here is an example of a user-defined function, called @code{myprint()}, that
takes a number and prints it in a specific format:
@@ -17200,7 +17445,8 @@ Instead of having
to repeat this loop everywhere that you need to clear out
an array, your program can just call @code{delarray}.
(This guarantees portability. The use of @samp{delete @var{array}} to delete
-the contents of an entire array is a nonstandard extension.)
+the contents of an entire array is a recent@footnote{Late in 2012.}
+addition to the POSIX standard.)
The following is an example of a recursive function. It takes a string
as an input parameter and returns the string in backwards order.
@@ -17256,7 +17502,10 @@ function ctime(ts, format)
@subsection Calling User-Defined Functions
@c STARTOFRANGE fudc
-This section describes how to call a user-defined function.
+@cindex functions, user-defined, calling
+@dfn{Calling a function} means causing the function to run and do its job.
+A function call is an expression and its value is the value returned by
+the function.
@menu
* Calling A Function:: Don't use spaces.
@@ -17267,11 +17516,6 @@ This section describes how to call a user-defined function.
@node Calling A Function
@subsubsection Writing A Function Call
-@cindex functions, user-defined, calling
-@dfn{Calling a function} means causing the function to run and do its job.
-A function call is an expression and its value is the value returned by
-the function.
-
A function call consists of the function name followed by the arguments
in parentheses. @command{awk} expressions are what you write in the
call for the arguments. Each time the call is executed, these
@@ -17295,8 +17539,8 @@ an error.
@node Variable Scope
@subsubsection Controlling Variable Scope
-@cindex local variables
-@cindex variables, local
+@cindex local variables, in a function
+@cindex variables, local to a function
There is no way to make a variable local to a @code{@{ @dots{} @}} block in
@command{awk}, but you can make a variable local to a function. It is
good practice to do so whenever a variable is needed only in that
@@ -17741,7 +17985,7 @@ character:
@example
the_func = "sum"
-result = @@the_func() # calls the `sum' function
+result = @@the_func() # calls the sum() function
@end example
Here is a full program that processes the previously shown data,
@@ -17862,8 +18106,9 @@ We can do something similar using @command{gawk}, like this:
@ignore
@c file eg/lib/quicksort.awk
#
-# Arnold Robbins, arnold@skeeve.com, Public Domain
+# Arnold Robbins, arnold@@skeeve.com, Public Domain
# January 2009
+
@c endfile
@end ignore
@@ -17936,7 +18181,7 @@ or equal to), which yields data sorted in descending order.
Next comes a sorting function. It is parameterized with the starting and
ending field numbers and the comparison function. It builds an array with
-the data and calls @code{quicksort} appropriately, and then formats the
+the data and calls @code{quicksort()} appropriately, and then formats the
results as a single string:
@example
@@ -18074,6 +18319,8 @@ it allows you to encapsulate algorithms and program tasks in a single
place. It simplifies programming, making program development more
manageable, and making programs more readable.
+@cindex Kernighan, Brian
+@cindex Plauger, P.J.@:
In their seminal 1976 book, @cite{Software Tools},@footnote{Sadly, over 35
years later, many of the lessons taught by this book have yet to be
learned by a vast number of practicing programmers.} Brian Kernighan
@@ -18203,7 +18450,7 @@ with the user's program.
@cindex underscore (@code{_}), in names of private variables
In addition, several of the library functions use a prefix that helps
indicate what function or set of functions use the variables---for example,
-@code{_pw_byname} in the user database routines
+@code{_pw_byname()} in the user database routines
(@pxref{Passwd Functions}).
This convention is recommended, since it even further decreases the
chance of inadvertent conflict among variable names. Note that this
@@ -18222,7 +18469,7 @@ The leading capital letter indicates that it is global, while the fact that
the variable name is not all capital letters indicates that the variable is
not one of @command{awk}'s built-in variables, such as @code{FS}.
-@cindex @option{--dump-variables} option
+@cindex @option{--dump-variables} option, using for library functions
It is also important that @emph{all} variables in library
functions that do not need to save state are, in fact, declared
local.@footnote{@command{gawk}'s @option{--dump-variables} command-line
@@ -18517,9 +18764,9 @@ with an @code{exit} statement.
The way @code{printf} and @code{sprintf()}
(@pxref{Printf})
perform rounding often depends upon the system's C @code{sprintf()}
-subroutine. On many machines, @code{sprintf()} rounding is ``unbiased,''
-which means it doesn't always round a trailing @samp{.5} up, contrary
-to naive expectations. In unbiased rounding, @samp{.5} rounds to even,
+subroutine. On many machines, @code{sprintf()} rounding is @dfn{unbiased},
+which means it doesn't always round a trailing .5 up, contrary
+to naive expectations. In unbiased rounding, .5 rounds to even,
rather than always up, so 1.5 rounds to 2 but 4.5 rounds to 4. This means
that if you are using a format that does rounding (e.g., @code{"%.0f"}),
you should check what your system does. The following function does
@@ -18568,7 +18815,7 @@ function round(x, ival, aval, fraction)
@c don't include test harness in the file that gets installed
# test harness
-@{ print $0, round($0) @}
+# @{ print $0, round($0) @}
@end example
@node Cliff Random Function
@@ -18635,6 +18882,7 @@ reason to build them into the @command{awk} interpreter:
@cindex @code{ord()} user-defined function
@cindex @code{chr()} user-defined function
+@cindex @code{_ord_init()} user-defined function
@example
@c file eg/lib/ord.awk
# ord.awk --- do ord and chr
@@ -18681,8 +18929,9 @@ function _ord_init( low, high, i, t)
@cindex character sets (machine character encodings)
@cindex ASCII
@cindex EBCDIC
+@cindex Unicode
@cindex mark parity
-Some explanation of the numbers used by @code{chr()} is worthwhile.
+Some explanation of the numbers used by @code{_ord_init()} is worthwhile.
The most prominent character set in use today is ASCII.@footnote{This
is changing; many systems use Unicode, a very large character set
that includes ASCII as a subset. On systems with full Unicode support,
@@ -18693,7 +18942,7 @@ Although an
defines characters that use the values from 0 to 127.@footnote{ASCII
has been extended in many countries to use the values from 128 to 255
for country-specific characters. If your system uses these extensions,
-you can simplify @code{_ord_init} to loop from 0 to 255.}
+you can simplify @code{_ord_init()} to loop from 0 to 255.}
In the now distant past,
at least one minicomputer manufacturer
@c Pr1me, blech
@@ -19338,7 +19587,7 @@ END @{
Occasionally, you might not want @command{awk} to process command-line
variable assignments
(@pxref{Assignment Options}).
-In particular, if you have a file name that contain an @samp{=} character,
+In particular, if you have a file name that contains an @samp{=} character,
@command{awk} treats the file name as an assignment, and does not process it.
Some users have suggested an additional command-line option for @command{gawk}
@@ -20008,7 +20257,7 @@ from anywhere within a user's program, and the user may have his
or her
own way of splitting records and fields.
-@cindex @code{PROCINFO} array
+@cindex @code{PROCINFO} array, testing the field splitting
The @code{using_fw} variable checks @code{PROCINFO["FS"]}, which
is @code{"FIELDWIDTHS"} if field splitting is being done with
@code{FIELDWIDTHS}. This makes it possible to restore the correct
@@ -20017,7 +20266,7 @@ field-splitting mechanism later. The test can only be true for
or on some other @command{awk} implementation.
The code that checks for using @code{FPAT}, using @code{using_fpat}
-and @code{PROCINFO["FS"]} is similar.
+and @code{PROCINFO["FS"]}, is similar.
The main part of the function uses a loop to read database lines, split
the line into fields, and then store the line into each array as necessary.
@@ -20047,10 +20296,9 @@ function getpwnam(name)
@end example
@cindex @code{getpwuid()} function (C library)
-Similarly,
-the @code{getpwuid} function takes a user ID number argument. If that
-user number is in the database, it returns the appropriate line. Otherwise, it
-returns the null string:
+Similarly, the @code{getpwuid()} function takes a user ID number
+argument. If that user number is in the database, it returns the
+appropriate line. Otherwise, it returns the null string:
@cindex @code{getpwuid()} user-defined function
@example
@@ -20132,7 +20380,7 @@ uses these functions.
@cindex group database, reading
@c STARTOFRANGE datagr
@cindex database, group, reading
-@cindex @code{PROCINFO} array
+@cindex @code{PROCINFO} array, and group membership
@cindex @code{getgrent()} function (C library)
@cindex @code{getgrent()} user-defined function
@cindex groups@comma{} information about
@@ -20554,7 +20802,7 @@ index and value, use the indirect function call syntax
and the value.
When calling @code{walk_array()}, you would pass the name of a user-defined
-function that expects to receive and index and a value, and then processes
+function that expects to receive an index and a value, and then processes
the element.
@@ -20908,7 +21156,7 @@ complete field list, including filler fields:
@example
@c file eg/prog/cut.awk
-function set_charlist( field, i, j, f, g, t,
+function set_charlist( field, i, j, f, g, n, m, t,
filler, last, len)
@{
field = 1 # count total fields
@@ -21005,6 +21253,7 @@ of picking the input line apart by characters.
@cindex searching, files for regular expressions
@c STARTOFRANGE fsregexp
@cindex files, searching for regular expressions
+@c STARTOFRANGE egrep
@cindex @command{egrep} utility
The @command{egrep} utility searches files for patterns. It uses regular
expressions that are almost identical to those available in @command{awk}
@@ -21290,12 +21539,14 @@ or not.
@c ENDOFRANGE regexps
@c ENDOFRANGE sfregexp
@c ENDOFRANGE fsregexp
+@c ENDOFRANGE egrep
@node Id Program
@subsection Printing out User Information
@cindex printing, user information
@cindex users, information about, printing
+@c STARTOFRANGE id
@cindex @command{id} utility
The @command{id} utility lists a user's real and effective user ID numbers,
real and effective group ID numbers, and the user's group set, if any.
@@ -21308,7 +21559,7 @@ $ @kbd{id}
@print{} uid=500(arnold) gid=500(arnold) groups=6(disk),7(lp),19(floppy)
@end example
-@cindex @code{PROCINFO} array
+@cindex @code{PROCINFO} array, and user and group ID numbers
This information is part of what is provided by @command{gawk}'s
@code{PROCINFO} array (@pxref{Built-in Variables}).
However, the @command{id} utility provides a more palatable output than just
@@ -21409,7 +21660,6 @@ BEGIN \
@c endfile
@end example
-@cindex @code{in} operator
The test in the @code{for} loop is worth noting.
Any supplementary groups in the @code{PROCINFO} array have the
indices @code{"group1"} through @code{"group@var{N}"} for some
@@ -21419,7 +21669,7 @@ there are.
This loop works by starting at one, concatenating the value with
@code{"group"}, and then using @code{in} to see if that value is
-in the array. Eventually, @code{i} is incremented past
+in the array (@pxref{Reference to Elements}). Eventually, @code{i} is incremented past
the last group in the array and the loop exits.
The loop is also correct if there are @emph{no} supplementary
@@ -21432,6 +21682,7 @@ The POSIX version of @command{id} takes arguments that control which
information is printed. Modify this version to accept the same
arguments and perform in the same way.
@end ignore
+@c ENDOFRANGE id
@node Split Program
@subsection Splitting a Large File into Pieces
@@ -21440,6 +21691,7 @@ arguments and perform in the same way.
@c STARTOFRANGE filspl
@cindex files, splitting
+@c STARTOFRANGE split
@cindex @code{split} utility
The @command{split} program splits large text files into smaller pieces.
Usage is as follows:@footnote{This is the traditional usage. The
@@ -21583,12 +21835,14 @@ which isn't true for EBCDIC systems.
@c Exercise: Fix these problems.
@c BFD...
@c ENDOFRANGE filspl
+@c ENDOFRANGE split
@node Tee Program
@subsection Duplicating Output into Multiple Files
@cindex files, multiple@comma{} duplicating output into
@cindex output, duplicating into files
+@c STARTOFRANGE tee
@cindex @code{tee} utility
The @code{tee} program is known as a ``pipe fitting.'' @code{tee} copies
its standard input to its standard output and also duplicates it to the
@@ -21703,6 +21957,7 @@ END \
@}
@c endfile
@end example
+@c ENDOFRANGE tee
@node Uniq Program
@subsection Printing Nonduplicated Lines of Text
@@ -21713,6 +21968,7 @@ END \
@cindex printing, unduplicated lines of text
@c STARTOFRANGE tpul
@cindex text@comma{} printing, unduplicated lines of
+@c STARTOFRANGE uniq
@cindex @command{uniq} utility
The @command{uniq} utility reads sorted lines of data on its standard
input, and by default removes duplicate lines. In other words, it only
@@ -21964,6 +22220,7 @@ END @{
@end example
@c ENDOFRANGE prunt
@c ENDOFRANGE tpul
+@c ENDOFRANGE uniq
@node Wc Program
@subsection Counting Things
@@ -21980,6 +22237,7 @@ END @{
@cindex characters, counting
@c STARTOFRANGE lico
@cindex lines, counting
+@c STARTOFRANGE wc
@cindex @command{wc} utility
The @command{wc} (word count) utility counts lines, words, and characters in
one or more input files. Its usage is as follows:
@@ -22162,6 +22420,7 @@ END @{
@c ENDOFRANGE lico
@c ENDOFRANGE woco
@c ENDOFRANGE chco
+@c ENDOFRANGE wc
@c ENDOFRANGE posimawk
@node Miscellaneous Programs
@@ -22456,6 +22715,7 @@ seconds are necessary:
@c STARTOFRANGE chtra
@cindex characters, transliterating
+@c STARTOFRANGE tr
@cindex @command{tr} utility
The system @command{tr} utility transliterates characters. For example, it is
often used to map uppercase letters into lowercase for further processing:
@@ -22604,6 +22864,7 @@ An obvious improvement to this program would be to set up the
assumes that the ``from'' and ``to'' lists
will never change throughout the lifetime of the program.
@c ENDOFRANGE chtra
+@c ENDOFRANGE tr
@node Labels Program
@subsection Printing Mailing Labels
@@ -22663,6 +22924,7 @@ that there are two blank lines at the top and two blank lines at the bottom.
The @code{END} rule arranges to flush the final page of labels; there may
not have been an even multiple of 20 labels in the data:
+@c STARTOFRANGE labels
@cindex @code{labels.awk} program
@example
@c file eg/prog/labels.awk
@@ -22730,6 +22992,7 @@ END \
@end example
@c ENDOFRANGE prml
@c ENDOFRANGE mlprint
+@c ENDOFRANGE labels
@node Word Sorting
@subsection Generating Word-Usage Counts
@@ -22796,6 +23059,7 @@ to remove punctuation characters. Finally, we solve the third problem
by using the system @command{sort} utility to process the output of the
@command{awk} script. Here is the new version of the program:
+@c STARTOFRANGE wordfreq
@cindex @code{wordfreq.awk} program
@example
@c file eg/prog/wordfreq.awk
@@ -22857,6 +23121,7 @@ have true pipes at the command-line (or batch-file) level.
See the general operating system documentation for more information on how
to use the @command{sort} program.
@c ENDOFRANGE worus
+@c ENDOFRANGE wordfreq
@node History Sorting
@subsection Removing Duplicates from Unsorted Text
@@ -22886,6 +23151,7 @@ Each element of @code{lines} is a unique command, and the indices of
The @code{END} rule simply prints out the lines, in order:
@cindex Rakitzis, Byron
+@c STARTOFRANGE histsort
@cindex @code{histsort.awk} program
@example
@c file eg/prog/histsort.awk
@@ -22928,6 +23194,7 @@ print data[lines[i]], lines[i]
This works because @code{data[$0]} is incremented each time a line is
seen.
@c ENDOFRANGE lidu
+@c ENDOFRANGE histsort
@node Extract Program
@subsection Extracting Programs from Texinfo Source Files
@@ -23038,6 +23305,7 @@ The first rule handles calling @code{system()}, checking that a command is
given (@code{NF} is at least three) and also checking that the command
exits with a zero exit status, signifying OK:
+@c STARTOFRANGE extract
@cindex @code{extract.awk} program
@example
@c file eg/prog/extract.awk
@@ -23196,6 +23464,7 @@ END @{
@end example
@c ENDOFRANGE texse
@c ENDOFRANGE fitex
+@c ENDOFRANGE extract
@node Simple Sed
@subsection A Simple Stream Editor
@@ -23225,6 +23494,7 @@ additional arguments are treated as data file names to process. If none
are provided, the standard input is used:
@cindex Brennan, Michael
+@c STARTOFRANGE awksed
@cindex @command{awksed.awk} program
@c @cindex simple stream editor
@c @cindex stream editor, simple
@@ -23321,6 +23591,7 @@ Exercise: what are the advantages and disadvantages of this version versus sed?
Others?
@end ignore
+@c ENDOFRANGE awksed
@node Igawk Program
@subsection An Easy Way to Use Library Functions
@@ -23464,6 +23735,7 @@ program.
The program is as follows:
+@c STARTOFRANGE igawk
@cindex @code{igawk.sh} program
@example
@c file eg/prog/igawk.sh
@@ -23636,7 +23908,7 @@ BEGIN @{
@c endfile
@end example
-The stack is initialized with @code{ARGV[1]}, which will be @file{/dev/stdin}.
+The stack is initialized with @code{ARGV[1]}, which will be @samp{/dev/stdin}.
The main loop comes next. Input lines are read in succession. Lines that
do not start with @samp{@@include} are printed verbatim.
If the line does start with @samp{@@include}, the file name is in @code{$2}.
@@ -23823,10 +24095,12 @@ statements for the desired library functions.
@c ENDOFRANGE libfex
@c ENDOFRANGE flibex
@c ENDOFRANGE awkpex
+@c ENDOFRANGE igawk
@node Anagram Program
@subsection Finding Anagrams From A Dictionary
+@cindex anagrams, finding
An interesting programming challenge is to
search for @dfn{anagrams} in a
word list (such as
@@ -23846,6 +24120,7 @@ The following program uses arrays of arrays to bring together
words with the same signature and array sorting to print the words
in sorted order.
+@c STARTOFRANGE anagram
@cindex @code{anagram.awk} program
@example
@c file eg/prog/anagram.awk
@@ -23953,10 +24228,13 @@ babels beslab
babery yabber
@dots{}
@end example
+@c ENDOFRANGE anagram
@node Signature Program
@subsection And Now For Something Completely Different
+@cindex signature program
+@cindex Brini, Davide
The following program was written by Davide Brini
@c (@email{dave_br@@gmx.com})
and is published on @uref{http://backreference.org/2011/02/03/obfuscated-awk/,
@@ -24088,12 +24366,15 @@ It contains the following chapters:
@item
@ref{Dynamic Extensions}.
+@end itemize
@end ifdocbook
@end ignore
@node Advanced Features
@chapter Advanced Features of @command{gawk}
+@ifset WITH_NETWORK_CHAPTER
@cindex advanced features, network connections, See Also networks@comma{} connections
+@end ifset
@c STARTOFRANGE gawadv
@cindex @command{gawk}, features, advanced
@c STARTOFRANGE advgaw
@@ -24500,9 +24781,9 @@ sorted array traversal is not the default.
@subsection Sorting Array Values and Indices with @command{gawk}
@cindex arrays, sorting
-@cindex @code{asort()} function (@command{gawk})
+@cindexgawkfunc{asort}
@cindex @code{asort()} function (@command{gawk}), arrays@comma{} sorting
-@cindex @code{asorti()} function (@command{gawk})
+@cindexgawkfunc{asorti}
@cindex @code{asorti()} function (@command{gawk}), arrays@comma{} sorting
@cindex sort function, arrays, sorting
In most @command{awk} implementations, sorting an array requires writing
@@ -24597,9 +24878,8 @@ both arrays use the values.
@c Document It And Call It A Feature. Sigh.
@cindex @command{gawk}, @code{IGNORECASE} variable in
-@cindex @code{IGNORECASE} variable
-@cindex arrays, sorting, @code{IGNORECASE} variable and
-@cindex @code{IGNORECASE} variable, array sorting and
+@cindex arrays, sorting, and @code{IGNORECASE} variable
+@cindex @code{IGNORECASE} variable, and array sorting functions
Because @code{IGNORECASE} affects string comparisons, the value
of @code{IGNORECASE} also affects sorting for both @code{asort()} and @code{asorti()}.
Note also that the locale's sorting order does @emph{not}
@@ -24678,7 +24958,7 @@ open a @emph{two-way} pipe to another process. The second process is
termed a @dfn{coprocess}, since it runs in parallel with @command{gawk}.
The two-way connection is created using the @samp{|&} operator
(borrowed from the Korn shell, @command{ksh}):@footnote{This is very
-different from the same operator in the C shell.}
+different from the same operator in the C shell and in Bash.}
@example
do @{
@@ -24768,7 +25048,7 @@ As a side note, the assignment @samp{LC_ALL=C} in the @command{sort}
command ensures traditional Unix (ASCII) sorting from @command{sort}.
@cindex @command{gawk}, @code{PROCINFO} array in
-@cindex @code{PROCINFO} array
+@cindex @code{PROCINFO} array, and communications via ptys
You may also use pseudo-ttys (ptys) for
two-way communication instead of pipes, if your system supports them.
This is done on a per-command basis, by setting a special element
@@ -24966,52 +25246,60 @@ foo
junk
@end example
-Here is the @file{awkprof.out} that results from running the @command{gawk}
-profiler on this program and data (this example also illustrates that @command{awk}
-programmers sometimes have to work late):
+Here is the @file{awkprof.out} that results from running the
+@command{gawk} profiler on this program and data. (This example also
+illustrates that @command{awk} programmers sometimes get up very early
+in the morning to work.)
-@cindex @code{BEGIN} pattern
-@cindex @code{END} pattern
+@cindex @code{BEGIN} pattern, and profiling
+@cindex @code{END} pattern, and profiling
@example
- # gawk profile, created Sun Aug 13 00:00:15 2000
+ # gawk profile, created Thu Feb 27 05:16:21 2014
- # BEGIN block(s)
+ # BEGIN block(s)
- BEGIN @{
- 1 print "First BEGIN rule"
- 1 print "Second BEGIN rule"
- @}
+ BEGIN @{
+ 1 print "First BEGIN rule"
+ @}
- # Rule(s)
+ BEGIN @{
+ 1 print "Second BEGIN rule"
+ @}
- 5 /foo/ @{ # 2
- 2 print "matched /foo/, gosh"
- 6 for (i = 1; i <= 3; i++) @{
- 6 sing()
- @}
- @}
+ # Rule(s)
- 5 @{
- 5 if (/foo/) @{ # 2
- 2 print "if is true"
- 3 @} else @{
- 3 print "else is true"
- @}
- @}
+ 5 /foo/ @{ # 2
+ 2 print "matched /foo/, gosh"
+ 6 for (i = 1; i <= 3; i++) @{
+ 6 sing()
+ @}
+ @}
- # END block(s)
+ 5 @{
+ 5 if (/foo/) @{ # 2
+ 2 print "if is true"
+ 3 @} else @{
+ 3 print "else is true"
+ @}
+ @}
- END @{
- 1 print "First END rule"
- 1 print "Second END rule"
- @}
+ # END block(s)
- # Functions, listed alphabetically
+ END @{
+ 1 print "First END rule"
+ @}
- 6 function sing(dummy)
- @{
- 6 print "I gotta be me!"
- @}
+ END @{
+ 1 print "Second END rule"
+ @}
+
+
+ # Functions, listed alphabetically
+
+ 6 function sing(dummy)
+ @{
+ 6 print "I gotta be me!"
+ @}
@end example
This example illustrates many of the basic features of profiling output.
@@ -25019,15 +25307,16 @@ They are as follows:
@itemize @bullet
@item
-The program is printed in the order @code{BEGIN} rule,
-@code{BEGINFILE} rule,
+The program is printed in the order @code{BEGIN} rules,
+@code{BEGINFILE} rules,
pattern/action rules,
-@code{ENDFILE} rule, @code{END} rule and functions, listed
+@code{ENDFILE} rules, @code{END} rules and functions, listed
alphabetically.
-Multiple @code{BEGIN} and @code{END} rules are merged together,
-as are multiple @code{BEGINFILE} and @code{ENDFILE} rules.
+Multiple @code{BEGIN} and @code{END} rules retain their
+separate identities, as do
+multiple @code{BEGINFILE} and @code{ENDFILE} rules.
-@cindex patterns, counts
+@cindex patterns, counts, in a profile
@item
Pattern-action rules have two counts.
The first count, to the left of the rule, shows how many times
@@ -25047,7 +25336,7 @@ is a count showing how many times the condition was true.
The count for the @code{else}
indicates how many times the test failed.
-@cindex loops, count for header
+@cindex loops, count for header, in a profile
@item
The count for a loop header (such as @code{for}
or @code{while}) shows how many times the loop test was executed.
@@ -25055,8 +25344,8 @@ or @code{while}) shows how many times the loop test was executed.
statement in a rule to determine how many times the rule was executed.
If the first statement is a loop, the count is misleading.)
-@cindex functions, user-defined, counts
-@cindex user-defined, functions, counts
+@cindex functions, user-defined, counts, in a profile
+@cindex user-defined, functions, counts, in a profile
@item
For user-defined functions, the count next to the @code{function}
keyword indicates how many times the function was called.
@@ -25070,8 +25359,8 @@ The layout uses ``K&R'' style with TABs.
Braces are used everywhere, even when
the body of an @code{if}, @code{else}, or loop is only a single statement.
-@cindex @code{()} (parentheses)
-@cindex parentheses @code{()}
+@cindex @code{()} (parentheses), in a profile
+@cindex parentheses @code{()}, in a profile
@item
Parentheses are used only where needed, as indicated by the structure
of the program and the precedence rules.
@@ -25106,8 +25395,8 @@ typed when you wrote it. This is because @command{gawk} creates the
profiled version by ``pretty printing'' its internal representation of
the program. The advantage to this is that @command{gawk} can produce
a standard representation. The disadvantage is that all source-code
-comments are lost, as are the distinctions among multiple @code{BEGIN},
-@code{END}, @code{BEGINFILE}, and @code{ENDFILE} rules. Also, things such as:
+comments are lost.
+Also, things such as:
@example
/foo/
@@ -25127,6 +25416,7 @@ which is correct, but possibly surprising.
@cindex profiling @command{awk} programs, dynamically
@cindex @command{gawk} program, dynamic profiling
+@cindex dynamic profiling
Besides creating profiles when a program has completed,
@command{gawk} can produce a profile while it is running.
This is useful if your @command{awk} program goes into an
@@ -25140,9 +25430,9 @@ $ @kbd{gawk --profile -f myprog &}
@end example
@cindex @command{kill} command@comma{} dynamic profiling
-@cindex @code{USR1} signal
-@cindex @code{SIGUSR1} signal
-@cindex signals, @code{USR1}/@code{SIGUSR1}
+@cindex @code{USR1} signal, for dynamic profiling
+@cindex @code{SIGUSR1} signal, for dynamic profiling
+@cindex signals, @code{USR1}/@code{SIGUSR1}, for profiling
@noindent
The shell prints a job number and process ID number; in this case, 13992.
Use the @command{kill} command to send the @code{USR1} signal
@@ -25173,9 +25463,9 @@ You may send @command{gawk} the @code{USR1} signal as many times as you like.
Each time, the profile and function call trace are appended to the output
profile file.
-@cindex @code{HUP} signal
-@cindex @code{SIGHUP} signal
-@cindex signals, @code{HUP}/@code{SIGHUP}
+@cindex @code{HUP} signal, for dynamic profiling
+@cindex @code{SIGHUP} signal, for dynamic profiling
+@cindex signals, @code{HUP}/@code{SIGHUP}, for profiling
If you use the @code{HUP} signal instead of the @code{USR1} signal,
@command{gawk} produces the profile and the function call trace and then exits.
@@ -25197,6 +25487,11 @@ keyboard. The @code{INT} signal is generated by the
Finally, @command{gawk} also accepts another option, @option{--pretty-print}.
When called this way, @command{gawk} ``pretty prints'' the program into
@file{awkprof.out}, without any execution counts.
+
+@quotation NOTE
+The @option{--pretty-print} option still runs your program.
+This will change in the next major release.
+@end quotation
@c ENDOFRANGE advgaw
@c ENDOFRANGE gawadv
@c ENDOFRANGE awkp
@@ -25308,6 +25603,7 @@ lookup of the translations.
@cindex @code{.po} files
@cindex files, @code{.po}
+@c STARTOFRANGE portobfi
@cindex portable object files
@cindex files, portable object
@item
@@ -25319,6 +25615,7 @@ For example, there might be a @file{fr.po} for a French translation.
@cindex @code{.gmo} files
@cindex files, @code{.gmo}
@cindex message object files
+@c STARTOFRANGE portmsgfi
@cindex files, message object
@item
Each language's @file{.po} file is converted into a binary
@@ -25466,7 +25763,7 @@ String constants marked with a leading underscore
are candidates for translation at runtime.
String constants without a leading underscore are not translated.
-@cindex @code{dcgettext()} function (@command{gawk})
+@cindexgawkfunc{dcgettext}
@item dcgettext(@var{string} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the translation of @var{string} in
text domain @var{domain} for locale category @var{category}.
@@ -25492,7 +25789,7 @@ chosen to be simple and to allow for reasonable @command{awk}-style
default arguments.
@end quotation
-@cindex @code{dcngettext()} function (@command{gawk})
+@cindexgawkfunc{dcngettext}
@item dcngettext(@var{string1}, @var{string2}, @var{number} @r{[}, @var{domain} @r{[}, @var{category}@r{]]})
Return the plural form used for @var{number} of the
translation of @var{string1} and @var{string2} in text domain
@@ -25508,7 +25805,7 @@ The same remarks about argument order as for the @code{dcgettext()} function app
@cindex files, @code{.gmo}, specifying directory of
@cindex message object files, specifying directory of
@cindex files, message object, specifying directory of
-@cindex @code{bindtextdomain()} function (@command{gawk})
+@cindexgawkfunc{bindtextdomain}
@item bindtextdomain(@var{directory} @r{[}, @var{domain}@r{]})
Change the directory in which
@code{gettext} looks for @file{.gmo} files, in case they
@@ -25610,7 +25907,7 @@ and use translations from @command{awk}.
@cindex portable object files
@cindex files, portable object
Once a program's translatable strings have been marked, they must
-be extracted to create the initial @file{.po} file.
+be extracted to create the initial @file{.pot} file.
As part of translation, it is often helpful to rearrange the order
in which arguments to @code{printf} are output.
@@ -25659,6 +25956,8 @@ second argument to @code{dcngettext()}.@footnote{The
@xref{I18N Example},
for the full list of steps to go through to create and test
translations for @command{guide}.
+@c ENDOFRANGE portobfi
+@c ENDOFRANGE portmsgfi
@node Printf Ordering
@subsection Rearranging @code{printf} Arguments
@@ -25705,7 +26004,7 @@ example, @samp{string} is the first argument and @samp{length(string)} is the se
@example
$ @kbd{gawk 'BEGIN @{}
> @kbd{string = "Dont Panic"}
-> @kbd{printf _"%2$d characters live in \"%1$s\"\n",}
+> @kbd{printf "%2$d characters live in \"%1$s\"\n",}
> @kbd{string, length(string)}
> @kbd{@}'}
@print{} 10 characters live in "Dont Panic"
@@ -25739,7 +26038,7 @@ This is somewhat counterintuitive.
and those with positional specifiers in the same string:
@example
-$ @kbd{gawk 'BEGIN @{ printf _"%d %3$s\n", 1, 2, "hi" @}'}
+$ @kbd{gawk 'BEGIN @{ printf "%d %3$s\n", 1, 2, "hi" @}'}
@error{} gawk: cmd. line:1: fatal: must use `count$' on all formats or none
@end example
@@ -26080,6 +26379,7 @@ The following list defines terms used throughout the rest of
this @value{CHAPTER}.
@table @dfn
+@cindex stack frame
@item Stack Frame
Programs generally call functions during the course of their execution.
One function can call another, or a function can call itself (recursion).
@@ -26101,6 +26401,7 @@ invoked. Commands that print the call stack print information about
each stack frame (as detailed later on).
@item Breakpoint
+@cindex breakpoint
During debugging, you often wish to let the program run until it
reaches a certain point, and then continue execution from there one
statement (or instruction) at a time. The way to do this is to set
@@ -26110,6 +26411,7 @@ take over control of the program's execution. You can add and remove
as many breakpoints as you like.
@item Watchpoint
+@cindex watchpoint
A watchpoint is similar to a breakpoint. The difference is that
breakpoints are oriented around the code: stop when a certain point in the
code is reached. A watchpoint, however, specifies that program execution
@@ -26141,6 +26443,7 @@ by the higher-level @command{awk} commands.
@node Sample Debugging Session
@section Sample Debugging Session
+@cindex sample debugging session
In order to illustrate the use of @command{gawk} as a debugger, let's look at a sample
debugging session. We will use the @command{awk} implementation of the
@@ -26154,13 +26457,16 @@ as our example.
@node Debugger Invocation
@subsection How to Start the Debugger
+@cindex starting the debugger
+@cindex debugger, how to start
-Starting the debugger is almost exactly like running @command{awk}, except you have to
-pass an additional option @option{--debug} or the corresponding short option @option{-D}.
-The file(s) containing the program and any supporting code are given on the command
-line as arguments to one or more @option{-f} options. (@command{gawk} is not designed
-to debug command-line programs, only programs contained in files.) In our case,
-we invoke the debugger like this:
+Starting the debugger is almost exactly like running @command{gawk},
+except you have to pass an additional option @option{--debug} or the
+corresponding short option @option{-D}. The file(s) containing the
+program and any supporting code are given on the command line as arguments
+to one or more @option{-f} options. (@command{gawk} is not designed
+to debug command-line programs, only programs contained in files.)
+In our case, we invoke the debugger like this:
@example
$ @kbd{gawk -D -f getopt.awk -f join.awk -f uniq.awk inputfile}
@@ -26293,7 +26599,7 @@ gawk> @kbd{p NR}
@noindent
So we can see that @code{are_equal()} was only called for the second record
-of the file. Of course, this is because our program contained a rule for
+of the file. Of course, this is because our program contains a rule for
@samp{NR == 1}:
@example
@@ -26493,21 +26799,24 @@ controlling breakpoints are:
@cindex debugger commands, @code{break}
@cindex @code{break} debugger command
@cindex @code{b} debugger command (alias for @code{break})
+@cindex set breakpoint
+@cindex breakpoint, setting
@item @code{break} [[@var{filename}@code{:}]@var{n} | @var{function}] [@code{"@var{expression}"}]
@itemx @code{b} [[@var{filename}@code{:}]@var{n} | @var{function}] [@code{"@var{expression}"}]
Without any argument, set a breakpoint at the next instruction
to be executed in the selected stack frame.
Arguments can be one of the following:
+@c @asis for docbook
@c nested table
-@table @var
-@item n
+@table @asis
+@item @var{n}
Set a breakpoint at line number @var{n} in the current source file.
-@item filename@code{:}n
+@item @var{filename}@code{:}@var{n}
Set a breakpoint at line number @var{n} in source file @var{filename}.
-@item function
+@item @var{function}
Set a breakpoint at entry to (the first instruction of)
function @var{function}.
@end table
@@ -26523,6 +26832,8 @@ it continues executing the program.
@cindex debugger commands, @code{clear}
@cindex @code{clear} debugger command
+@cindex delete breakpoint at location
+@cindex breakpoint at location, how to delete
@item @code{clear} [[@var{filename}@code{:}]@var{n} | @var{function}]
Without any argument, delete any breakpoint at the next instruction
to be executed in the selected stack frame. If the program stops at
@@ -26530,19 +26841,20 @@ a breakpoint, this deletes that breakpoint so that the program
does not stop at that location again. Arguments can be one of the following:
@c nested table
-@table @var
-@item n
+@table @asis
+@item @var{n}
Delete breakpoint(s) set at line number @var{n} in the current source file.
-@item filename@code{:}n
+@item @var{filename}@code{:}@var{n}
Delete breakpoint(s) set at line number @var{n} in source file @var{filename}.
-@item function
+@item @var{function}
Delete breakpoint(s) set at entry to function @var{function}.
@end table
@cindex debugger commands, @code{condition}
@cindex @code{condition} debugger command
+@cindex breakpoint condition
@item @code{condition} @var{n} @code{"@var{expression}"}
Add a condition to existing breakpoint or watchpoint @var{n}. The
condition is an @command{awk} expression that the debugger evaluates
@@ -26556,6 +26868,8 @@ watchpoint is made unconditional.
@cindex debugger commands, @code{delete}
@cindex @code{delete} debugger command
@cindex @code{d} debugger command (alias for @code{delete})
+@cindex delete breakpoint by number
+@cindex breakpoint, delete by number
@item @code{delete} [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
@itemx @code{d} [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
Delete specified breakpoints or a range of breakpoints. Deletes
@@ -26563,6 +26877,8 @@ all defined breakpoints if no argument is supplied.
@cindex debugger commands, @code{disable}
@cindex @code{disable} debugger command
+@cindex disable breakpoint
+@cindex breakpoint, how to disable or enable
@item @code{disable} [@var{n1 n2} @dots{} | @var{n}--@var{m}]
Disable specified breakpoints or a range of breakpoints. Without
any argument, disables all breakpoints.
@@ -26571,6 +26887,7 @@ any argument, disables all breakpoints.
@cindex debugger commands, @code{enable}
@cindex @code{enable} debugger command
@cindex @code{e} debugger command (alias for @code{enable})
+@cindex enable breakpoint
@item @code{enable} [@code{del} | @code{once}] [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
@itemx @code{e} [@code{del} | @code{once}] [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
Enable specified breakpoints or a range of breakpoints. Without
@@ -26590,6 +26907,7 @@ the program stops at the breakpoint.
@cindex debugger commands, @code{ignore}
@cindex @code{ignore} debugger command
+@cindex ignore breakpoint
@item @code{ignore} @var{n} @var{count}
Ignore breakpoint number @var{n} the next @var{count} times it is
hit.
@@ -26598,6 +26916,7 @@ hit.
@cindex debugger commands, @code{tbreak}
@cindex @code{tbreak} debugger command
@cindex @code{t} debugger command (alias for @code{tbreak})
+@cindex temporary breakpoint
@item @code{tbreak} [[@var{filename}@code{:}]@var{n} | @var{function}]
@itemx @code{t} [[@var{filename}@code{:}]@var{n} | @var{function}]
Set a temporary breakpoint (enabled for only one stop).
@@ -26618,6 +26937,8 @@ execution of the program than we saw in our earlier example:
@cindex @code{silent} debugger command
@cindex debugger commands, @code{end}
@cindex @code{end} debugger command
+@cindex breakpoint commands
+@cindex commands to execute at breakpoint
@item @code{commands} [@var{n}]
@itemx @code{silent}
@itemx @dots{}
@@ -26645,6 +26966,7 @@ gawk>
@cindex debugger commands, @code{c} (@code{continue})
@cindex debugger commands, @code{continue}
+@cindex continue program, in debugger
@item @code{continue} [@var{count}]
@itemx @code{c} [@var{count}]
Resume program execution. If continued from a breakpoint and @var{count} is
@@ -26661,6 +26983,7 @@ Print the returned value.
@cindex debugger commands, @code{next}
@cindex @code{next} debugger command
@cindex @code{n} debugger command (alias for @code{next})
+@cindex single-step execution, in the debugger
@item @code{next} [@var{count}]
@itemx @code{n} [@var{count}]
Continue execution to the next source line, stepping over function calls.
@@ -26755,6 +27078,7 @@ items on the list.
@cindex debugger commands, @code{eval}
@cindex @code{eval} debugger command
+@cindex evaluate expressions, in debugger
@item @code{eval "@var{awk statements}"}
Evaluate @var{awk statements} in the context of the running program.
You can do anything that an @command{awk} program would do: assign
@@ -26772,6 +27096,7 @@ parameters defined by the program.
@cindex debugger commands, @code{print}
@cindex @code{print} debugger command
@cindex @code{p} debugger command (alias for @code{print})
+@cindex print variables, in debugger
@item @code{print} @var{var1}[@code{,} @var{var2} @dots{}]
@itemx @code{p} @var{var1}[@code{,} @var{var2} @dots{}]
Print the value of a @command{gawk} variable or field.
@@ -26805,6 +27130,7 @@ No newline is printed unless one is specified.
@cindex debugger commands, @code{set}
@cindex @code{set} debugger command
+@cindex assign values to variables, in debugger
@item @code{set} @var{var}@code{=}@var{value}
Assign a constant (number or string) value to an @command{awk} variable
or field.
@@ -26817,6 +27143,7 @@ You can also set special @command{awk} variables, such as @code{FS},
@cindex debugger commands, @code{watch}
@cindex @code{watch} debugger command
@cindex @code{w} debugger command (alias for @code{watch})
+@cindex set watchpoint
@item @code{watch} @var{var} | @code{$}@var{n} [@code{"@var{expression}"}]
@itemx @code{w} @var{var} | @code{$}@var{n} [@code{"@var{expression}"}]
Add variable @var{var} (or field @code{$@var{n}}) to the watch list.
@@ -26833,12 +27160,14 @@ then the debugger stops execution and prompts for a command. Otherwise,
@cindex debugger commands, @code{undisplay}
@cindex @code{undisplay} debugger command
+@cindex stop automatic display, in debugger
@item @code{undisplay} [@var{n}]
Remove item number @var{n} (or all items, if no argument) from the
automatic display list.
@cindex debugger commands, @code{unwatch}
@cindex @code{unwatch} debugger command
+@cindex delete watchpoint
@item @code{unwatch} [@var{n}]
Remove item number @var{n} (or all items, if no argument) from the
watch list.
@@ -26859,6 +27188,8 @@ functions which called the one you are in. The commands for doing this are:
@cindex debugger commands, @code{backtrace}
@cindex @code{backtrace} debugger command
@cindex @code{bt} debugger command (alias for @code{backtrace})
+@cindex call stack, display in debugger
+@cindex traceback, display in debugger
@item @code{backtrace} [@var{count}]
@itemx @code{bt} [@var{count}]
Print a backtrace of all function calls (stack frames), or innermost @var{count}
@@ -26912,25 +27243,32 @@ The value for @var{what} should be one of the following:
@c nested table
@table @code
@item args
+@cindex show function arguments, in debugger
Arguments of the selected frame.
@item break
+@cindex show breakpoints
List all currently set breakpoints.
@item display
+@cindex automatic displays, in debugger
List all items in the automatic display list.
@item frame
+@cindex describe call stack frame, in debugger
Description of the selected stack frame.
@item functions
+@cindex list function definitions, in debugger
List all function definitions including source file names and
line numbers.
@item locals
+@cindex show local variables, in debugger
Local variables of the selected frame.
@item source
+@cindex show name of current source file, in debugger
The name of the current source file. Each time the program stops, the
current source file is the file containing the current instruction.
When the debugger first starts, the current source file is the first file
@@ -26939,12 +27277,15 @@ included via the @option{-f} option. The
be used at any time to change the current source.
@item sources
+@cindex show all source files, in debugger
List all program sources.
@item variables
+@cindex list all global variables, in debugger
List all global variables.
@item watch
+@cindex show watchpoints
List all items in the watch list.
@end table
@end table
@@ -26958,6 +27299,8 @@ from a file. The commands are:
@cindex debugger commands, @code{option}
@cindex @code{option} debugger command
@cindex @code{o} debugger command (alias for @code{option})
+@cindex display debugger options
+@cindex debugger options
@item @code{option} [@var{name}[@code{=}@var{value}]]
@itemx @code{o} [@var{name}[@code{=}@var{value}]]
Without an argument, display the available debugger options
@@ -26969,30 +27312,37 @@ The available options are:
@c nested table
@table @code
@item history_size
+@cindex debugger history size
The maximum number of lines to keep in the history file @file{./.gawk_history}.
The default is 100.
@item listsize
+@cindex debugger default list amount
The number of lines that @code{list} prints. The default is 15.
@item outfile
+@cindex redirect @command{gawk} output, in debugger
Send @command{gawk} output to a file; debugger output still goes
to standard output. An empty string (@code{""}) resets output to
standard output.
@item prompt
+@cindex debugger prompt
The debugger prompt. The default is @samp{@w{gawk> }}.
@item save_history @r{[}on @r{|} off@r{]}
+@cindex debugger history file
Save command history to file @file{./.gawk_history}.
The default is @code{on}.
@item save_options @r{[}on @r{|} off@r{]}
+@cindex save debugger options
Save current options to file @file{./.gawkrc} upon exit.
The default is @code{on}.
Options are read back in to the next session upon startup.
@item trace @r{[}on @r{|} off@r{]}
+@cindex instruction tracing, in debugger
Turn instruction tracing on or off. The default is @code{off}.
@end table
@@ -27001,6 +27351,7 @@ Save the commands from the current session to the given file name,
so that they can be replayed using the @command{source} command.
@item @code{source} @var{filename}
+@cindex debugger, read commands from a file
Run command(s) from a file; an error in any command does not
terminate execution of subsequent commands. Comments (lines starting
with @samp{#}) are allowed in a command file.
@@ -27099,8 +27450,8 @@ about the command @var{command}.
@cindex debugger commands, @code{list}
@cindex @code{list} debugger command
@cindex @code{l} debugger command (alias for @code{list})
-@item @code{list} [@code{-} | @code{+} | @var{n} | @var{filename@code{:}n} | @var{n}--@var{m} | @var{function}]
-@itemx @code{l} [@code{-} | @code{+} | @var{n} | @var{filename@code{:}n} | @var{n}--@var{m} | @var{function}]
+@item @code{list} [@code{-} | @code{+} | @var{n} | @var{filename}@code{:}@var{n} | @var{n}--@var{m} | @var{function}]
+@itemx @code{l} [@code{-} | @code{+} | @var{n} | @var{filename}@code{:}@var{n} | @var{n}--@var{m} | @var{function}]
Print the specified lines (default 15) from the current source file
or the file named @var{filename}. The possible arguments to @code{list}
are as follows:
@@ -27120,7 +27471,7 @@ Print lines centered around line number @var{n}.
@item @var{n}--@var{m}
Print lines from @var{n} to @var{m}.
-@item @var{filename@code{:}n}
+@item @var{filename}@code{:}@var{n}
Print lines centered around line number @var{n} in
source file @var{filename}. This command may change the current source file.
@@ -27133,6 +27484,7 @@ function @var{function}. This command may change the current source file.
@cindex debugger commands, @code{quit}
@cindex @code{quit} debugger command
@cindex @code{q} debugger command (alias for @code{quit})
+@cindex exit the debugger
@item @code{quit}
@itemx @code{q}
Exit the debugger. Debugging is great fun, but sometimes we all have
@@ -27156,6 +27508,8 @@ fairly self-explanatory, and using @code{stepi} and @code{nexti} while
@node Readline Support
@section Readline Support
+@cindex command completion, in debugger
+@cindex history expansion, in debugger
If @command{gawk} is compiled with the @code{readline} library, you
can take advantage of that library's command completion and history expansion
@@ -27243,9 +27597,7 @@ be added, and of course feel free to try to add them yourself!
@cindex arbitrary precision
@cindex multiple precision
@cindex infinite precision
-@cindex floating-point numbers, arbitrary precision
-@cindex MPFR
-@cindex GMP
+@cindex floating-point, numbers@comma{} arbitrary precision
@cindex Knuth, Donald
@quotation
@@ -27589,23 +27941,38 @@ then the answer is
@math{2^{53}}.
@end iftex
@ifnottex
+@ifnotdocbook
2^53.
+@end ifnotdocbook
@end ifnottex
+@docbook
+2<superscript>53</superscript>. @c
+@end docbook
The next representable number is the even number
@iftex
@math{2^{53} + 2},
@end iftex
@ifnottex
+@ifnotdocbook
2^53 + 2,
+@end ifnotdocbook
@end ifnottex
+@docbook
+2<superscript>53</superscript> &plus; 2, @c
+@end docbook
meaning it is unlikely that you will be able to make
@command{gawk} print
@iftex
@math{2^{53} + 1}
@end iftex
@ifnottex
+@ifnotdocbook
2^53 + 1
+@end ifnotdocbook
@end ifnottex
+@docbook
+2<superscript>53</superscript> &plus; 1 @c
+@end docbook
in integer format.
The range of integers exactly representable by a 64-bit double
is
@@ -27613,8 +27980,13 @@ is
@math{[-2^{53}, 2^{53}]}.
@end iftex
@ifnottex
+@ifnotdocbook
[@minus{}2^53, 2^53].
+@end ifnotdocbook
@end ifnottex
+@docbook
+[&minus;2<superscript>53</superscript>, 2<superscript>53</superscript>]. @c
+@end docbook
If you ever see an integer outside this range in @command{awk}
using 64-bit doubles, you have reason to be very suspicious about
the accuracy of the output. Here is a simple program with erroneous output:
@@ -27838,8 +28210,13 @@ number is then
@math{s @cdot 2^e}.
@end iftex
@ifnottex
+@ifnotdocbook
@var{s * 2^e}.
+@end ifnotdocbook
@end ifnottex
+@docbook
+<emphasis>s &sdot; 2<superscript>e</superscript></emphasis>. @c
+@end docbook
The first bit of a non-zero binary significand
is always one, so the significand in an IEEE-754 format only includes the
fractional part, leaving the leading one implicit.
@@ -28009,6 +28386,8 @@ when you change the rounding mode.
@node Gawk and MPFR
@section @command{gawk} + MPFR = Powerful Arithmetic
+@cindex MPFR
+@cindex GMP
The rest of this @value{CHAPTER} describes how to use the arbitrary precision
(also known as @dfn{multiple precision} or @dfn{infinite precision}) numeric
@@ -28021,12 +28400,17 @@ The easiest way to find out is to look at the output of
the following command:
@example
-$ @kbd{gawk --version}
-@print{} GNU Awk 4.1.0, API: 1.0 (GNU MPFR 3.1.0-p3, GNU MP 5.0.2)
-@print{} Copyright (C) 1989, 1991-2013 Free Software Foundation.
+$ @kbd{./gawk --version}
+@print{} GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.0-p3, GNU MP 5.0.2)
+@print{} Copyright (C) 1989, 1991-2014 Free Software Foundation.
@dots{}
@end example
+@noindent
+(You may see different version numbers than what's shown here. That's OK;
+what's important is to see that GNU MPFR and GNU MP are listed in
+the output.)
+
@command{gawk} uses the
@uref{http://www.mpfr.org, GNU MPFR}
and
@@ -28080,8 +28464,13 @@ numbers are not implemented.}
(@math{emax = 2^{30} - 1, emin = -emax})
@end iftex
@ifnottex
+@ifnotdocbook
(@var{emax} = 2^30 @minus{} 1, @var{emin} = @minus{}@var{emax})
+@end ifnotdocbook
@end ifnottex
+@docbook
+(<emphasis>emax</emphasis> = 2<superscript>30</superscript> &minus; 1, <emphasis>emin</emphasis> = &minus;<emphasis>emax</emphasis>) @c
+@end docbook
for all floating-point contexts.
There is no explicit mechanism to adjust the exponent range.
MPFR does not implement subnormal numbers by default,
@@ -28113,6 +28502,7 @@ your program.
@node Setting Precision
@subsection Setting the Working Precision
@cindex @code{PREC} variable
+@cindex setting working precision
@command{gawk} uses a global working precision; it does not keep track of
the precision or accuracy of individual numbers. Performing an arithmetic
@@ -28152,8 +28542,15 @@ formula:
@math{prec = 3.322 @cdot dps}
@end iftex
@ifnottex
+@ifnotdocbook
@var{prec} = 3.322 * @var{dps}
+@end ifnotdocbook
@end ifnottex
+@docbook
+<para>
+<emphasis>prec</emphasis> = 3.322 &sdot; <emphasis>dps</emphasis> @c
+</para>
+@end docbook
@noindent
Here, @var{prec} denotes the binary precision
@@ -28188,6 +28585,7 @@ issues that occur because numbers are stored internally in binary.
@node Setting Rounding Mode
@subsection Setting the Rounding Mode
@cindex @code{ROUNDMODE} variable
+@cindex setting rounding mode
The @code{ROUNDMODE} variable provides
program level control over the rounding mode.
@@ -28255,6 +28653,7 @@ In the first case, the number is stored with the default precision of 53 bits.
@node Changing Precision
@subsection Changing the Precision of a Number
+@cindex changing precision of a number
@cindex Laurie, Dirk
@quotation
@@ -28372,7 +28771,8 @@ the problem at hand is often the correct approach in such situations.
@node Arbitrary Precision Integers
@section Arbitrary Precision Integer Arithmetic with @command{gawk}
-@cindex integer, arbitrary precision
+@cindex integers, arbitrary precision
+@cindex arbitrary precision integers
If one of the options @option{--bignum} or @option{-M} is specified,
@command{gawk} performs all
@@ -28386,8 +28786,13 @@ For example, the following computes
@math{5^{4^{3^{2}}}},
@end iftex
@ifnottex
+@ifnotdocbook
5^4^3^2,
+@end ifnotdocbook
@end ifnottex
+@docbook
+5<superscript>4<superscript>3<superscript>2</superscript></superscript></superscript>, @c
+@end docbook
the result of which is beyond the
limits of ordinary @command{gawk} numbers:
@@ -28409,9 +28814,16 @@ floating-point values instead, the precision needed for correct output
would be @math{3.322 @cdot 183231},
@end iftex
@ifnottex
+@ifnotdocbook
@samp{prec = 3.322 * dps}),
would be 3.322 x 183231,
+@end ifnotdocbook
@end ifnottex
+@docbook
+<emphasis>prec</emphasis> = 3.322 &sdot; <emphasis>dps</emphasis>),
+would be
+<emphasis>prec</emphasis> = 3.322 &sdot; 183231, @c
+@end docbook
or 608693.
The result from an arithmetic operation with an integer and a floating-point value
@@ -28460,7 +28872,7 @@ to begin with:
gawk -M 'BEGIN @{ n = 13.0; print n % 2.0 @}'
@end example
-Note that for the particular example above, there is likely best
+Note that for the particular example above, it is likely best
to just use the following:
@example
@@ -28469,6 +28881,7 @@ gawk -M 'BEGIN @{ n = 13; print n % 2 @}'
@node Dynamic Extensions
@chapter Writing Extensions for @command{gawk}
+@cindex dynamically loaded extensions
It is possible to add new functions written in C or C++ to @command{gawk} using
dynamically loaded libraries. This facility is available on systems
@@ -28503,6 +28916,7 @@ When @option{--sandbox} is specified, extensions are disabled
@node Extension Intro
@section Introduction
+@cindex plug-in
An @dfn{extension} (sometimes called a @dfn{plug-in}) is a piece of
external compiled code that @command{gawk} can load at runtime to
provide additional functionality, over and above the built-in capabilities
@@ -28548,8 +28962,14 @@ Communication between
@command{gawk} and an extension is two-way. First, when an extension
is loaded, it is passed a pointer to a @code{struct} whose fields are
function pointers.
+@ifnotdocbook
This is shown in @ref{load-extension}.
+@end ifnotdocbook
+@ifdocbook
+This is shown in @inlineraw{docbook, <xref linkend="load-extension"/>}.
+@end ifdocbook
+@ifnotdocbook
@float Figure,load-extension
@caption{Loading The Extension}
@c FIXME: One day, it should not be necessary to have two cases,
@@ -28562,13 +28982,27 @@ This is shown in @ref{load-extension}.
@center @image{api-figure1, , , Loading the extension}
@end ifnotinfo
@end float
+@end ifnotdocbook
+
+@docbook
+<figure id="load-extension">
+<title>Loading the extension</title>
+<graphic fileref="api-figure1.eps"/>
+</figure>
+@end docbook
The extension can call functions inside @command{gawk} through these
function pointers, at runtime, without needing (link-time) access
to @command{gawk}'s symbols. One of these function pointers is to a
function for ``registering'' new built-in functions.
+@ifnotdocbook
This is shown in @ref{load-new-function}.
+@end ifnotdocbook
+@ifdocbook
+This is shown in @inlineraw{docbook, <xref linkend="load-new-function"/>}.
+@end ifdocbook
+@ifnotdocbook
@float Figure,load-new-function
@caption{Loading The New Function}
@ifinfo
@@ -28578,14 +29012,28 @@ This is shown in @ref{load-new-function}.
@center @image{api-figure2, , , Loading the new function}
@end ifnotinfo
@end float
+@end ifnotdocbook
+
+@docbook
+<figure id="load-new-function">
+<title>Loading the new function</title>
+<graphic fileref="api-figure2.eps"/>
+</figure>
+@end docbook
In the other direction, the extension registers its new functions
with @command{gawk} by passing function pointers to the functions that
provide the new feature (@code{do_chdir()}, for example). @command{gawk}
associates the function pointer with a name and can then call it, using a
defined calling convention.
+@ifnotdocbook
This is shown in @ref{call-new-function}.
+@end ifnotdocbook
+@ifdocbook
+This is shown in @inlineraw{docbook, <xref linkend="call-new-function"/>}.
+@end ifdocbook
+@ifnotdocbook
@float Figure,call-new-function
@caption{Calling The New Function}
@ifinfo
@@ -28595,6 +29043,14 @@ This is shown in @ref{call-new-function}.
@center @image{api-figure3, , , Calling the new function}
@end ifnotinfo
@end float
+@end ifnotdocbook
+
+@docbook
+<figure id="call-new-function">
+<title>Calling The New Function</title>
+<graphic fileref="api-figure3.eps"/>
+</figure>
+@end docbook
The @code{do_@var{xxx}()} function, in turn, then uses the function
pointers in the API @code{struct} to do its work, such as updating
@@ -28631,6 +29087,7 @@ happen, but we all know how @emph{that} goes.)
@node Extension API Description
@section API Description
+@cindex extension API
This (rather large) @value{SECTION} describes the API in detail.
@@ -28638,6 +29095,7 @@ This (rather large) @value{SECTION} describes the API in detail.
* Extension API Functions Introduction:: Introduction to the API functions.
* General Data Types:: The data types.
* Requesting Values:: How to get a value.
+* Memory Allocation Functions:: Functions for allocating memory.
* Constructor Functions:: Functions for creating values.
* Registration Functions:: Functions to register things with
@command{gawk}.
@@ -28693,6 +29151,9 @@ Symbol table access: retrieving a global variable, creating one,
or changing one.
@item
+Allocating, reallocating, and releasing memory.
+
+@item
Creating and releasing cached values; this provides an
efficient way to use values for multiple variables and
can be a big performance win.
@@ -28731,10 +29192,8 @@ corresponding standard header file @emph{before} including @file{gawkapi.h}:
@item @code{EOF} @tab @code{<stdio.h>}
@item @code{FILE} @tab @code{<stdio.h>}
@item @code{NULL} @tab @code{<stddef.h>}
-@item @code{malloc()} @tab @code{<stdlib.h>}
@item @code{memcpy()} @tab @code{<string.h>}
@item @code{memset()} @tab @code{<string.h>}
-@item @code{realloc()} @tab @code{<stdlib.h>}
@item @code{size_t} @tab @code{<sys/types.h>}
@item @code{struct stat} @tab @code{<sys/stat.h>}
@end multitable
@@ -28764,8 +29223,9 @@ does not support this keyword, you should either place
All pointers filled in by @command{gawk} are to memory
managed by @command{gawk} and should be treated by the extension as
read-only. Memory for @emph{all} strings passed into @command{gawk}
-from the extension @emph{must} come from @code{malloc()} and is managed
-by @command{gawk} from then on.
+from the extension @emph{must} come from calling the API-provided function
+pointers @code{api_malloc()}, @code{api_calloc()} or @code{api_realloc()},
+and is managed by @command{gawk} from then on.
@item
The API defines several simple @code{struct}s that map values as seen
@@ -28805,6 +29265,8 @@ the macros as if they were functions.
@node General Data Types
@subsection General Purpose Data Types
+@cindex Robbins, Arnold
+@cindex Ramey, Chet
@quotation
@i{I have a true love/hate relationship with unions.}
@author Arnold Robbins
@@ -28845,7 +29307,8 @@ A simple boolean type.
This represents a mutable string. @command{gawk}
owns the memory pointed to if it supplied
the value. Otherwise, it takes ownership of the memory pointed to.
-@strong{Such memory must come from @code{malloc()}!}
+@strong{Such memory must come from calling the API-provided function
+pointers @code{api_malloc()}, @code{api_calloc()}, or @code{api_realloc()}!}
As mentioned earlier, strings are maintained using the current
multibyte encoding.
@@ -28961,7 +29424,94 @@ print an error message, or reissue the request for the actual
value type, as appropriate. This behavior is summarized in
@ref{table-value-types-returned}.
+@c FIXME: Try to do this with spans...
+@ifdocbook
+@anchor{table-value-types-returned}
+@end ifdocbook
+@docbook
+<informaltable>
+<tgroup cols="2">
+ <colspec colwidth="50*"/><colspec colwidth="50*"/>
+ <thead>
+ <row><entry></entry><entry><para>Type of Actual Value:</para></entry></row>
+ </thead>
+ <tbody>
+ <row><entry></entry><entry></entry></row>
+ </tbody>
+</tgroup>
+<tgroup cols="6">
+ <colspec colwidth="16.6*"/>
+ <colspec colwidth="16.6*"/>
+ <colspec colwidth="19.8*"/>
+ <colspec colwidth="15*"/>
+ <colspec colwidth="15*"/>
+ <colspec colwidth="16.6*"/>
+ <thead>
+ <row>
+ <entry></entry>
+ <entry></entry>
+ <entry><para>String</para></entry>
+ <entry><para>Number</para></entry>
+ <entry><para>Array</para></entry>
+ <entry><para>Undefined</para></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry></entry>
+ <entry><para><emphasis role="bold">String</emphasis></para></entry>
+ <entry><para>String</para></entry>
+ <entry><para>String</para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para></entry>
+ </row>
+ <row>
+ <entry></entry>
+ <entry><para><emphasis role="bold">Number</emphasis></para></entry>
+ <entry><para>Number if can be converted, else false</para></entry>
+ <entry><para>Number</para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para></entry>
+ </row>
+ <row>
+ <entry><para><emphasis role="bold">Type</emphasis></para></entry>
+ <entry><para><emphasis role="bold">Array</emphasis></para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>Array</para></entry>
+ <entry><para>false</para></entry>
+ </row>
+ <row>
+ <entry><para><emphasis role="bold">Requested:</emphasis></para></entry>
+ <entry><para><emphasis role="bold">Scalar</emphasis></para></entry>
+ <entry><para>Scalar</para></entry>
+ <entry><para>Scalar</para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para></entry>
+ </row>
+ <row>
+ <entry></entry>
+ <entry><para><emphasis role="bold">Undefined</emphasis></para></entry>
+ <entry><para>String</para></entry>
+ <entry><para>Number</para></entry>
+ <entry><para>Array</para></entry>
+ <entry><para>Undefined</para></entry>
+ </row>
+ <row>
+ <entry></entry>
+ <entry><para><emphasis role="bold">Value Cookie</emphasis></para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para></entry>
+ <entry><para>false</para>
+ </entry><entry><para>false</para></entry>
+ </row>
+ </tbody>
+</tgroup>
+</informaltable>
+@end docbook
+
@ifnotplaintext
+@ifnotdocbook
@float Table,table-value-types-returned
@caption{Value Types Returned}
@multitable @columnfractions .50 .50
@@ -28977,6 +29527,7 @@ value type, as appropriate. This behavior is summarized in
@item @tab @b{Value Cookie} @tab false @tab false @tab false @tab false
@end multitable
@end float
+@end ifnotdocbook
@end ifnotplaintext
@ifplaintext
@float Table,table-value-types-returned
@@ -29007,45 +29558,46 @@ value type, as appropriate. This behavior is summarized in
@end float
@end ifplaintext
-@node Constructor Functions
-@subsection Constructor Functions and Convenience Macros
+@node Memory Allocation Functions
+@subsection Memory Allocation Functions and Convenience Macros
+@cindex allocating memory for extensions
+@cindex extensions, allocating memory
-The API provides a number of @dfn{constructor} functions for creating
-string and numeric values, as well as a number of convenience macros.
-This @value{SUBSECTION} presents them all as function prototypes, in
-the way that extension code would use them.
+The API provides a number of @dfn{memory allocation} functions for
+allocating memory that can be passed to @command{gawk}, as well as a number of
+convenience macros.
@table @code
-@item static inline awk_value_t *
-@itemx make_const_string(const char *string, size_t length, awk_value_t *result)
-This function creates a string value in the @code{awk_value_t} variable
-pointed to by @code{result}. It expects @code{string} to be a C string constant
-(or other string data), and automatically creates a @emph{copy} of the data
-for storage in @code{result}. It returns @code{result}.
+@item void *gawk_malloc(size_t size);
+Call @command{gawk}-provided @code{api_malloc()} to allocate storage that may
+be passed to @command{gawk}.
-@item static inline awk_value_t *
-@itemx make_malloced_string(const char *string, size_t length, awk_value_t *result)
-This function creates a string value in the @code{awk_value_t} variable
-pointed to by @code{result}. It expects @code{string} to be a @samp{char *}
-value pointing to data previously obtained from @code{malloc()}. The idea here
-is that the data is passed directly to @command{gawk}, which assumes
-responsibility for it. It returns @code{result}.
+@item void *gawk_calloc(size_t nmemb, size_t size);
+Call @command{gawk}-provided @code{api_calloc()} to allocate storage that may
+be passed to @command{gawk}.
-@item static inline awk_value_t *
-@itemx make_null_string(awk_value_t *result)
-This specialized function creates a null string (the ``undefined'' value)
-in the @code{awk_value_t} variable pointed to by @code{result}.
-It returns @code{result}.
+@item void *gawk_realloc(void *ptr, size_t size);
+Call @command{gawk}-provided @code{api_realloc()} to allocate storage that may
+be passed to @command{gawk}.
-@item static inline awk_value_t *
-@itemx make_number(double num, awk_value_t *result)
-This function simply creates a numeric value in the @code{awk_value_t} variable
-pointed to by @code{result}.
+@item void gawk_free(void *ptr);
+Call @command{gawk}-provided @code{api_free()} to release storage that was
+allocated with @code{gawk_malloc()}, @code{gawk_calloc()} or @code{gawk_realloc()}.
@end table
-Two convenience macros may be used for allocating storage from @code{malloc()}
-and @code{realloc()}. If the allocation fails, they cause @command{gawk} to
-exit with a fatal error message. They should be used as if they were
+The API has to provide these functions because it is possible
+for an extension to be compiled and linked against a different
+version of the C library than was used for the @command{gawk}
+executable.@footnote{This is more common on MS-Windows systems, but
+can happen on Unix-like systems as well.} If @command{gawk} were
+to use its version of @code{free()} when the memory came from an
+unrelated version of @code{malloc()}, unexpected behavior would
+likely result.
+
+Two convenience macros may be used for allocating storage
+from the API-provided function pointers @code{api_malloc()} and
+@code{api_realloc()}. If the allocation fails, they cause @command{gawk}
+to exit with a fatal error message. They should be used as if they were
procedure calls that do not return a value.
@table @code
@@ -29057,7 +29609,7 @@ The arguments to this macro are as follows:
The pointer variable to point at the allocated storage.
@item type
-The type of the pointer variable, used to create a cast for the call to @code{malloc()}.
+The type of the pointer variable, used to create a cast for the call to @code{api_malloc()}.
@item size
The total number of bytes to be allocated.
@@ -29081,13 +29633,51 @@ make_malloced_string(message, strlen(message), & result);
@end example
@item #define erealloc(pointer, type, size, message) @dots{}
-This is like @code{emalloc()}, but it calls @code{realloc()},
-instead of @code{malloc()}.
+This is like @code{emalloc()}, but it calls @code{api_realloc()},
+instead of @code{api_malloc()}.
The arguments are the same as for the @code{emalloc()} macro.
@end table
+@node Constructor Functions
+@subsection Constructor Functions
+
+The API provides a number of @dfn{constructor} functions for creating
+string and numeric values, as well as a number of convenience macros.
+This @value{SUBSECTION} presents them all as function prototypes, in
+the way that extension code would use them.
+
+@table @code
+@item static inline awk_value_t *
+@itemx make_const_string(const char *string, size_t length, awk_value_t *result)
+This function creates a string value in the @code{awk_value_t} variable
+pointed to by @code{result}. It expects @code{string} to be a C string constant
+(or other string data), and automatically creates a @emph{copy} of the data
+for storage in @code{result}. It returns @code{result}.
+
+@item static inline awk_value_t *
+@itemx make_malloced_string(const char *string, size_t length, awk_value_t *result)
+This function creates a string value in the @code{awk_value_t} variable
+pointed to by @code{result}. It expects @code{string} to be a @samp{char *}
+value pointing to data previously obtained from the api-provided functions @code{api_malloc()}, @code{api_calloc()} or @code{api_realloc()}. The idea here
+is that the data is passed directly to @command{gawk}, which assumes
+responsibility for it. It returns @code{result}.
+
+@item static inline awk_value_t *
+@itemx make_null_string(awk_value_t *result)
+This specialized function creates a null string (the ``undefined'' value)
+in the @code{awk_value_t} variable pointed to by @code{result}.
+It returns @code{result}.
+
+@item static inline awk_value_t *
+@itemx make_number(double num, awk_value_t *result)
+This function simply creates a numeric value in the @code{awk_value_t} variable
+pointed to by @code{result}.
+@end table
+
@node Registration Functions
@subsection Registration Functions
+@cindex register extension
+@cindex extension registration
This @value{SECTION} describes the API functions for
registering parts of your extension with @command{gawk}.
@@ -29132,8 +29722,8 @@ Letter case in function names is significant.
This is a pointer to the C function that provides the desired
functionality.
The function must fill in the result with either a number
-or a string. @command{awk} takes ownership of any string memory.
-As mentioned earlier, string memory @strong{must} come from @code{malloc()}.
+or a string. @command{gawk} takes ownership of any string memory.
+As mentioned earlier, string memory @strong{must} come from the api-provided functions @code{api_malloc()}, @code{api_calloc()} or @code{api_realloc()}.
The @code{num_actual_args} argument tells the C function how many
actual parameters were passed from the calling @command{awk} code.
@@ -29209,6 +29799,7 @@ is invoked with the @option{--version} option.
@node Input Parsers
@subsubsection Customized Input Parsers
+@cindex customized input parser
By default, @command{gawk} reads text files as its input. It uses the value
of @code{RS} to find the end of the record, and then uses @code{FS}
@@ -29456,7 +30047,9 @@ Register the input parser pointed to by @code{input_parser} with
@node Output Wrappers
@subsubsection Customized Output Wrappers
+@cindex customized output wrapper
+@cindex output wrapper
An @dfn{output wrapper} is the mirror image of an input parser.
It allows an extension to take over the output to a file opened
with the @samp{>} or @samp{>>} I/O redirection operators (@pxref{Redirection}).
@@ -29570,6 +30163,7 @@ Register the output wrapper pointed to by @code{output_wrapper} with
@node Two-way processors
@subsubsection Customized Two-way Processors
+@cindex customized two-way processor
A @dfn{two-way processor} combines an input parser and an output wrapper for
two-way I/O with the @samp{|&} operator (@pxref{Redirection}). It makes identical
@@ -29627,6 +30221,8 @@ Register the two-way processor pointed to by @code{two_way_processor} with
@node Printing Messages
@subsection Printing Messages
+@cindex printing messages from extensions
+@cindex messages from extensions
You can print different kinds of warning messages from your
extension, as described below. Note that for these functions,
@@ -29700,6 +30296,7 @@ for more information on creating arrays.
@node Symbol Table Access
@subsection Symbol Table Access
+@cindex accessing global variables from extensions
Two sets of routines provide access to global variables, and one set
allows you to create and release cached values.
@@ -29745,6 +30342,13 @@ An extension can look up the value of @command{gawk}'s special variables.
However, with the exception of the @code{PROCINFO} array, an extension
cannot change any of those variables.
+@quotation NOTE
+It is possible for the lookup of @code{PROCINFO} to fail. This happens if
+the @command{awk} program being run does not reference @code{PROCINFO};
+in this case @command{gawk} doesn't bother to create the array and
+populate it.
+@end quotation
+
@node Symbol table by cookie
@subsubsection Variable Access and Update by Cookie
@@ -29871,7 +30475,7 @@ assign those values to variables using @code{sym_update()}
or @code{sym_update_scalar()}, as you like.
However, you can understand the point of cached values if you remember that
-@emph{every} string value's storage @emph{must} come from @code{malloc()}.
+@emph{every} string value's storage @emph{must} come from @code{api_malloc()}, @code{api_calloc()} or @code{api_realloc()}.
If you have 20 variables, all of which have the same string value, you
must create 20 identical copies of the string.@footnote{Numeric values
are clearly less problematic, requiring only a C @code{double} to store.}
@@ -29957,6 +30561,7 @@ you should release any cached values that you created, using
@node Array Manipulation
@subsection Array Manipulation
+@cindex array manipulation in extensions
The primary data structure@footnote{Okay, the only data structure.} in @command{awk}
is the associative array (@pxref{Arrays}).
@@ -30068,7 +30673,7 @@ requires that you understand how such values are converted to strings
(@pxref{Conversion}); thus using integral values is safest.
As with @emph{all} strings passed into @code{gawk} from an extension,
-the string value of @code{index} must come from @code{malloc()}, and
+the string value of @code{index} must come from the API-provided functions @code{api_malloc()}, @code{api_calloc()} or @code{api_realloc()} and
@command{gawk} releases the storage.
@item awk_bool_t set_array_element(awk_array_t a_cookie,
@@ -30536,6 +31141,8 @@ information about how @command{gawk} was invoked.
@node Extension Versioning
@subsubsection API Version Constants and Variables
+@cindex API version
+@cindex extension API version
The API provides both a ``major'' and a ``minor'' version number.
The API versions are available at compile time as constants:
@@ -30589,6 +31196,8 @@ provided in @file{gawkapi.h} (discussed later, in
@node Extension API Informational Variables
@subsubsection Informational Variables
+@cindex API informational variables
+@cindex extension API informational variables
The API provides access to several variables that describe
whether the corresponding command-line options were enabled when
@@ -30734,6 +31343,8 @@ the version string with @command{gawk}.
@node Finding Extensions
@section How @command{gawk} Finds Extensions
+@cindex extension search path
+@cindex finding extensions
Compiled extensions have to be installed in a directory where
@command{gawk} can find them. If @command{gawk} is configured and
@@ -30744,6 +31355,7 @@ path with a list of directories to search for compiled extensions.
@node Extension Example
@section Example: Some File Functions
+@cindex extension example
@quotation
@i{No matter where you go, there you are.}
@@ -31202,7 +31814,7 @@ do_stat(int nargs, awk_value_t *result)
awk_array_t array;
int ret;
struct stat sbuf;
- /* default is stat() */
+ /* default is lstat() */
int (*statfunc)(const char *path, struct stat *sbuf) = lstat;
assert(result != NULL);
@@ -31388,6 +32000,7 @@ $ @kbd{AWKLIBPATH=$PWD gawk -f testff.awk}
@node Extension Samples
@section The Sample Extensions In The @command{gawk} Distribution
+@cindex extensions distributed with @command{gawk}
This @value{SECTION} provides brief overviews of the sample extensions
that come in the @command{gawk} distribution. Some of them are intended
@@ -31430,7 +32043,7 @@ upon success or less than zero upon error. In the latter case it updates
@code{ERRNO}.
@cindex @code{stat()} extension function
-@item result = stat("/some/path", statdata [, follow])
+@item result = stat("/some/path", statdata @r{[}, follow@r{]})
The @code{stat()} function provides a hook into the
@code{stat()} system call.
It returns zero upon success or less than zero upon error.
@@ -31640,19 +32253,23 @@ See @file{test/fts.awk} in the @command{gawk} distribution for an example.
@node Extension Sample Fnmatch
@subsection Interface To @code{fnmatch()}
-@cindex @code{fnmatch()} extension function
This extension provides an interface to the C library
@code{fnmatch()} function. The usage is:
-@example
-@@load "fnmatch"
+@table @code
+@item @@load "fnmatch"
+This is how you load the extension.
-result = fnmatch(pattern, string, flags)
-@end example
+@cindex @code{fnmatch()} extension function
+@item result = fnmatch(pattern, string, flags)
+The return value is zero on success, @code{FNM_NOMATCH}
+if the string did not match the pattern, or
+a different non-zero value if an error occurred.
+@end table
-The @code{fnmatch} extension adds a single function named
-@code{fnmatch()}, one constant (@code{FNM_NOMATCH}), and an array of
-flag values named @code{FNM}.
+Besides the @code{fnmatch()} function, the @code{fnmatch} extension
+adds one constant (@code{FNM_NOMATCH}), and an array of flag values
+named @code{FNM}.
The arguments to @code{fnmatch()} are:
@@ -31668,10 +32285,6 @@ Either zero, or the bitwise OR of one or more of the
flags in the @code{FNM} array.
@end table
-The return value is zero on success, @code{FNM_NOMATCH}
-if the string did not match the pattern, or
-a different non-zero value if an error occurred.
-
The flags are follows:
@multitable @columnfractions .25 .75
@@ -31715,15 +32328,15 @@ This is how you load the extension.
@cindex @code{fork()} extension function
@item pid = fork()
-This function creates a new process. The return value is the zero in the
-child and the process-id number of the child in the parent, or @minus{}1
+This function creates a new process. The return value is zero in the
+child and the process-ID number of the child in the parent, or @minus{}1
upon error. In the latter case, @code{ERRNO} indicates the problem.
In the child, @code{PROCINFO["pid"]} and @code{PROCINFO["ppid"]} are
updated to reflect the correct values.
@cindex @code{waitpid()} extension function
@item ret = waitpid(pid)
-This function takes a numeric argument, which is the process-id to
+This function takes a numeric argument, which is the process-ID to
wait for. The return value is that of the
@code{waitpid()} system call.
@@ -31979,7 +32592,7 @@ ret = reada("arraydump.bin", array)
@subsection Reading An Entire File
The @code{readfile} extension adds a single function
-named @code{readfile()}:
+named @code{readfile()}, and an input parser:
@table @code
@item @@load "readfile"
@@ -31990,6 +32603,12 @@ This is how you load the extension.
The argument is the name of the file to read. The return value is a
string containing the entire contents of the requested file. Upon error,
the function returns the empty string and sets @code{ERRNO}.
+
+@item BEGIN @{ PROCINFO["readfile"] = 1 @}
+In addition, the extension adds an input parser that is activated if
+@code{PROCINFO["readfile"]} exists.
+When activated, each input file is returned in its entirety as @code{$0}.
+@code{RT} is set to the null string.
@end table
Here is an example:
@@ -32048,6 +32667,8 @@ tries to use @code{nanosleep()} or @code{select()} to implement the delay.
@node gawkextlib
@section The @code{gawkextlib} Project
+@cindex @code{gawkextlib}
+@cindex extensions, where to find
@cindex @code{gawkextlib} project
The @uref{http://sourceforge.net/projects/gawkextlib/, @code{gawkextlib}}
@@ -32081,6 +32702,7 @@ The @code{time} extension described earlier (@pxref{Extension Sample
Time}) was originally from this project but has been moved in to the
main @command{gawk} distribution.
+@cindex @command{git} utility
You can check out the code for the @code{gawkextlib} project
using the @uref{http://git-scm.com, GIT} distributed source
code control system. The command is as follows:
@@ -33347,7 +33969,7 @@ The @option{-i} and @option{--include} options
load @command{awk} library files.
@item
-The @option{-l} and @option{--load} options for load compiled dynamic extensions.
+The @option{-l} and @option{--load} options load compiled dynamic extensions.
@item
The @option{-M} and @option{--bignum} options enable MPFR.
@@ -33368,7 +33990,7 @@ Support for high precision arithmetic with MPFR.
@item
The @code{and()}, @code{or()} and @code{xor()} functions
-allow any number of arguments,
+changed to allow any number of arguments,
with a minimum of two
(@pxref{Bitwise Functions}).
@@ -33393,18 +34015,18 @@ the three most widely-used freely available versions of @command{awk}
@multitable {@file{/dev/stderr} special file} {BWK Awk} {Mawk} {GNU Awk}
@headitem Feature @tab BWK Awk @tab Mawk @tab GNU Awk
@item @samp{\x} Escape sequence @tab X @tab X @tab X
-@item @code{RS} as regexp @tab @tab X @tab X
@item @code{FS} as null string @tab X @tab X @tab X
@item @file{/dev/stdin} special file @tab X @tab X @tab X
@item @file{/dev/stdout} special file @tab X @tab X @tab X
@item @file{/dev/stderr} special file @tab X @tab X @tab X
-@item @code{**} and @code{**=} operators @tab X @tab @tab X
-@item @code{fflush()} function @tab X @tab X @tab X
-@item @code{func} keyword @tab X @tab @tab X
-@item @code{nextfile} statement @tab X @tab X @tab X
@item @code{delete} without subscript @tab X @tab X @tab X
+@item @code{fflush()} function @tab X @tab X @tab X
@item @code{length()} of an array @tab X @tab X @tab X
+@item @code{nextfile} statement @tab X @tab X @tab X
+@item @code{**} and @code{**=} operators @tab X @tab @tab X
+@item @code{func} keyword @tab X @tab @tab X
@item @code{BINMODE} variable @tab @tab X @tab X
+@item @code{RS} as regexp @tab @tab X @tab X
@item Time related functions @tab @tab X @tab X
@end multitable
@@ -33435,7 +34057,7 @@ as working in this fashion, and in particular, would teach that the
that @samp{[A-Z]} was the ``correct'' way to match uppercase letters.
And indeed, this was true.@footnote{And Life was good.}
-The 1993 POSIX standard introduced the idea of locales (@pxref{Locales}).
+The 1992 POSIX standard introduced the idea of locales (@pxref{Locales}).
Since many locales include other letters besides the plain twenty-six
letters of the American English alphabet, the POSIX standard added
character classes (@pxref{Bracket Expressions}) as a way to match
@@ -33474,6 +34096,7 @@ This output is unexpected, since the @samp{bc} at the end of
This result is due to the locale setting (and thus you may not see
it on your system).
+@cindex Unicode
Similar considerations apply to other ranges. For example, @samp{["-/]}
is perfectly valid in ASCII, but is not valid in many Unicode locales,
such as @samp{en_US.UTF-8}.
@@ -33487,16 +34110,17 @@ vendors started implementing non-ASCII locales, @emph{and making them
the default}. Perhaps the most frequently asked question became something
like ``why does @samp{[A-Z]} match lowercase letters?!?''
+@cindex Berry, Karl
This situation existed for close to 10 years, if not more, and
the @command{gawk} maintainer grew weary of trying to explain that
@command{gawk} was being nicely standards-compliant, and that the issue
was in the user's locale. During the development of version 4.0,
he modified @command{gawk} to always treat ranges in the original,
pre-POSIX fashion, unless @option{--posix} was used (@pxref{Options}).@footnote{And
-thus was born the Campain for Rational Range Interpretation (or RRI). A number
-of GNU tools, such as @command{grep} and @command{sed}, have either
-implemented this change, or will soon. Thanks to Karl Berry for coining the phrase
-``Rational Range Interpretation.''}
+thus was born the Campaign for Rational Range Interpretation (or
+RRI). A number of GNU tools have either implemented this change,
+or will soon. Thanks to Karl Berry for coining the phrase ``Rational
+Range Interpretation.''}
Fortunately, shortly before the final release of @command{gawk} 4.0,
the maintainer learned that the 2008 standard had changed the
@@ -33509,7 +34133,7 @@ and
By using this lovely technical term, the standard gives license
to implementors to implement ranges in whatever way they choose.
The @command{gawk} maintainer chose to apply the pre-POSIX meaning in all
-cases: the default regexp matching; with @option{--traditional}, and with
+cases: the default regexp matching; with @option{--traditional} and with
@option{--posix}; in all cases, @command{gawk} remains POSIX compliant.
@node Contributors
@@ -33709,6 +34333,11 @@ environments.
Anders Wallin helped keep the VMS port going for several years.
@item
+@cindex Gordon, Assaf
+Assaf Gordon contributed the code to implement the
+@option{--sandbox} option.
+
+@item
@cindex Haque, John
John Haque made the following contributions:
@@ -33752,6 +34381,11 @@ Arnold Robbins and Andrew Schorr, with notable contributions from
the rest of the development team.
@item
+@cindex Colombo, Antonio
+Antonio Giovanni Colombo rewrote a number of examples in the early
+chapters that were severely dated, for which I am incredibly grateful.
+
+@item
@cindex Robbins, Arnold
Arnold Robbins
has been working on @command{gawk} since 1988, at first
@@ -34150,7 +34784,7 @@ please send in a bug report (@pxref{Bugs}).
Of course, once you've built @command{gawk}, it is likely that you will
wish to install it. To do so, you need to run the command @samp{make
-check}, as a user with the appropriate permissions. How to do this
+install}, as a user with the appropriate permissions. How to do this
varies by system, but on many systems you can use the @command{sudo}
command to do so. The command then becomes @samp{sudo make install}. It
is likely that you will be asked for your password, and you will have
@@ -34476,11 +35110,10 @@ multibyte functionality is not available.
@c STARTOFRANGE pcgawon
@cindex PC operating systems, @command{gawk} on
-With the exception of the Cygwin environment,
-the @samp{|&} operator and TCP/IP networking
-(@pxref{TCP/IP Networking})
-are not supported for MS-DOS or MS-Windows. EMX (OS/2 only) does support
-at least the @samp{|&} operator.
+Under MS-DOS and MS-Windows, the Cygwin and MinGW environments support
+both the @samp{|&} operator and TCP/IP networking
+(@pxref{TCP/IP Networking}).
+EMX (OS/2 only) supports at least the @samp{|&} operator.
@cindex search paths
@cindex search paths, for source files
@@ -34610,7 +35243,7 @@ moved into the @code{BEGIN} rule.
@command{gawk} can be built and used ``out of the box'' under MS-Windows
if you are using the @uref{http://www.cygwin.com, Cygwin environment}.
-This environment provides an excellent simulation of Unix, using the
+This environment provides an excellent simulation of GNU/Linux, using the
GNU tools, such as Bash, the GNU Compiler Collection (GCC), GNU Make,
and other GNU programs. Compilation and installation for Cygwin is the
same as for a Unix system:
@@ -34626,13 +35259,6 @@ When compared to GNU/Linux on the same system, the @samp{configure}
step on Cygwin takes considerably longer. However, it does finish,
and then the @samp{make} proceeds as usual.
-@quotation NOTE
-The @samp{|&} operator and TCP/IP networking
-(@pxref{TCP/IP Networking})
-are fully supported in the Cygwin environment. This is not true
-for any other environment on MS-Windows.
-@end quotation
-
@node MSYS
@appendixsubsubsec Using @command{gawk} In The MSYS Environment
@@ -34700,21 +35326,14 @@ can better handle @code{ODS-5} volumes with upper- and lowercase filenames.
With @code{ODS-5} volumes and extended parsing enabled, the case of the target
parameter may need to be exact.
-Older versions of @command{gawk} could be built with VAX C or
-GNU C on VAX/VMS, as well as with DEC C, but that is no longer
-supported. DEC C (also briefly known as ``Compaq C'' and now known
-as ``HP C,'' but referred to here as ``DEC C'') is required. Both
-@code{vmsbuild.com} and @code{descrip.mms} contain some obsolete support
-for the older compilers but are set up to use DEC C by default.
-
@command{gawk} has been tested under VAX/VMS 7.3 and Alpha/VMS 7.3-1
using Compaq C V6.4, and Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3.
The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both
Alpha and IA64 VMS 8.4 used HP C 7.3.@footnote{The IA64 architecture
is also known as ``Itanium.''}
-Work is currently being done for a procedure to build @command{gawk} and create
-a PCSI kit for compatible with the GNV product.
+The @file{[.vms]gawk_build_steps.txt} provides information on how to build
+@command{gawk} into a PCSI kit that is compatible with the GNV product.
@node VMS Dynamic Extensions
@appendixsubsubsec Compiling @command{gawk} Dynamic Extensions on VMS
@@ -34811,7 +35430,7 @@ add the @command{gawk} and @command{awk} to the system wide @samp{DCLTABLES}.
The DCL syntax is documented in the @file{gawk.hlp} file.
-Optionally, @file{gawk.hlp} entry can be loaded into a VMS help library:
+Optionally, the @file{gawk.hlp} entry can be loaded into a VMS help library:
@example
$ @kbd{LIBRARY/HELP sys$help:helplib [.vms]gawk.hlp}
@@ -35066,22 +35685,23 @@ file should be considered authoritative if it conflicts with this
The people maintaining the non-Unix ports of @command{gawk} are
as follows:
-@multitable {MS-Windows with MINGW} {123456789012345678901234567890123456789001234567890}
+@c put the index entries outside the table, for docbook
@cindex Deifik, Scott
+@cindex Zaretskii, Eli
+@cindex Buening, Andreas
+@cindex Rankin, Pat
+@cindex Malmberg, John
+@cindex Pitts, Dave
+@multitable {MS-Windows with MINGW} {123456789012345678901234567890123456789001234567890}
@item MS-DOS with DJGPP @tab Scott Deifik, @EMAIL{scottd.mail@@sbcglobal.net,scottd dot mail at sbcglobal dot net}.
-@cindex Zaretskii, Eli
@item MS-Windows with MINGW @tab Eli Zaretskii, @EMAIL{eliz@@gnu.org,eliz at gnu dot org}.
-@cindex Buening, Andreas
@item OS/2 @tab Andreas Buening, @EMAIL{andreas.buening@@nexgo.de,andreas dot buening at nexgo dot de}.
-@cindex Rankin, Pat
-@cindex Malmberg, John
@item VMS @tab Pat Rankin, @EMAIL{r.pat.rankin@@gmail.com,r.pat.rankin at gmail.com}, and
John Malmberg, @EMAIL{wb8tyw@@qsl.net,wb8tyw at qsl.net}.
-@cindex Pitts, Dave
@item z/OS (OS/390) @tab Dave Pitts, @EMAIL{dpitts@@cozx.com,dpitts at cozx dot com}.
@end multitable
@@ -35116,7 +35736,7 @@ This @value{SECTION} briefly describes where to get them:
@cindex Kernighan, Brian
@cindex source code, Brian Kernighan's @command{awk}
@cindex @command{awk}, versions of, See Also Brian Kernighan's @command{awk}
-@cindex Brian Kernighan's @command{awk}
+@cindex Brian Kernighan's @command{awk}, source code
@item Unix @command{awk}
Brian Kernighan, one of the original designers of Unix @command{awk},
has made his implementation of
@@ -35136,6 +35756,7 @@ It is available in several archive formats:
@uref{http://www.cs.princeton.edu/~bwk/btl.mirror/awk.zip}
@end table
+@cindex @command{git} utility
You can also retrieve it from Git Hub:
@example
@@ -35155,7 +35776,7 @@ from GCC (the GNU Compiler Collection) works quite nicely.
for a list of extensions in this @command{awk} that are not in POSIX @command{awk}.
@cindex Brennan, Michael
-@cindex @command{mawk} program
+@cindex @command{mawk} utility
@cindex source code, @command{mawk}
@item @command{mawk}
Michael Brennan wrote an independent implementation of @command{awk},
@@ -35201,7 +35822,7 @@ To get @command{awka}, go to @url{http://sourceforge.net/projects/awka}.
The project seems to be frozen; no new code changes have been made
since approximately 2003.
-@cindex Beebe, Nelson
+@cindex Beebe, Nelson H.F.@:
@cindex @command{pawk} (profiling version of Brian Kernighan's @command{awk})
@cindex source code, @command{pawk}
@item @command{pawk}
@@ -35264,6 +35885,7 @@ This is an embeddable @command{awk} interpreter derived from
@uref{http://repo.hu/projects/libmawk/}.
@item @code{pawk}
+@cindex source code, @command{pawk} (Python version)
@cindex @code{pawk}, @command{awk}-like facilities for Python
This is a Python module that claims to bring @command{awk}-like
features to Python. See @uref{https://github.com/alecthomas/pawk}
@@ -35369,6 +35991,7 @@ As @command{gawk} is Free Software, the source code is always available.
@ref{Gawk Distribution}, describes how to get and build the formal,
released versions of @command{gawk}.
+@cindex @command{git} utility
However, if you want to modify @command{gawk} and contribute back your
changes, you will probably wish to work with the development version.
To do so, you will need to access the @command{gawk} source code
@@ -35544,6 +36167,7 @@ If possible, please update the @command{man} page as well.
You will also have to sign paperwork for your documentation changes.
+@cindex @command{git} utility
@item
Submit changes as unified diffs.
Use @samp{diff -u -r -N} to compare
@@ -35677,6 +36301,8 @@ coding style and brace layout that suits your taste.
@node Derived Files
@appendixsubsec Why Generated Files Are Kept In @command{git}
+@c STARTOFRANGE gawkgit
+@cindex @command{git}, use of for @command{gawk} source code
@c From emails written March 22, 2012, to the gawk developers list.
If you look at the @command{gawk} source in the @command{git}
@@ -35856,7 +36482,7 @@ wget http://git.savannah.gnu.org/cgit/gawk.git/snapshot/gawk-@var{branchname}.ta
@noindent
to retrieve a snapshot of the given branch.
-
+@c ENDOFRANGE gawkgit
@node Future Extensions
@appendixsec Probable Future Extensions
@@ -36227,8 +36853,15 @@ other introductory texts that you should refer to instead.)
@cindex processing data
At the most basic level, the job of a program is to process
-some input data and produce results. See @ref{figure-general-flow}.
+some input data and produce results.
+@ifnotdocbook
+See @ref{figure-general-flow}.
+@end ifnotdocbook
+@ifdocbook
+See @inlineraw{docbook, <xref linkend="figure-general-flow"/>}.
+@end ifdocbook
+@ifnotdocbook
@float Figure,figure-general-flow
@caption{General Program Flow}
@ifinfo
@@ -36238,6 +36871,14 @@ some input data and produce results. See @ref{figure-general-flow}.
@center @image{general-program, , , General program flow}
@end ifnotinfo
@end float
+@end ifnotdocbook
+
+@docbook
+<figure id="figure-general-flow">
+<title>General Program Flow</title>
+<graphic fileref="general-program.eps"/>
+</figure>
+@end docbook
@cindex compiled programs
@cindex interpreted programs
@@ -36253,9 +36894,15 @@ instructions in your program to process the data.
@cindex programming, basic steps
When you write a program, it usually consists
-of the following, very basic set of steps, as shown
-in @ref{figure-process-flow}:
+of the following, very basic set of steps,
+@ifnotdocbook
+as shown in @ref{figure-process-flow}:
+@end ifnotdocbook
+@ifdocbook
+as shown in @inlineraw{docbook <xref linkend="figure-process-flow"/>}:
+@end ifdocbook
+@ifnotdocbook
@float Figure,figure-process-flow
@caption{Basic Program Steps}
@ifinfo
@@ -36265,6 +36912,14 @@ in @ref{figure-process-flow}:
@center @image{process-flow, , , Basic Program Stages}
@end ifnotinfo
@end float
+@end ifnotdocbook
+
+@docbook
+<figure id="figure-process-flow">
+<title>Basic Program Stages</title>
+<graphic fileref="process-flow.eps"/>
+</figure>
+@end docbook
@table @asis
@item Initialization
@@ -36435,7 +37090,7 @@ better written in another language.
You can get it from @uref{http://awk.info/?awk100/aaa}.
@cindex Ada programming language
-@cindex Programming languages, Ada
+@cindex programming languages, Ada
@item Ada
A programming language originally defined by the U.S.@: Department of
Defense for embedded programming. It was designed to enforce good
@@ -36503,9 +37158,6 @@ The GNU version of the standard shell
@end ifinfo
See also ``Bourne Shell.''
-@item BBS
-See ``Bulletin Board System.''
-
@item Bit
Short for ``Binary Digit.''
All values in computer memory ultimately reduce to binary digits: values
@@ -36580,11 +37232,6 @@ Changing some of them affects @command{awk}'s running environment.
@item Braces
See ``Curly Braces.''
-@item Bulletin Board System
-A computer system allowing users to log in and read and/or leave messages
-for other users of the system, much like leaving paper notes on a bulletin
-board.
-
@item C
The system programming language that most GNU software is written in. The
@command{awk} programming language has C-like syntax, and this @value{DOCUMENT}
@@ -36611,6 +37258,8 @@ The @uref{http://www.unicode.org, Unicode character set} is
becoming increasingly popular and standard, and is particularly
widely used on GNU/Linux systems.
+@cindex Kernighan, Brian
+@cindex Bentley, Jon
@cindex @command{chem} utility
@item CHEM
A preprocessor for @command{pic} that reads descriptions of molecules
@@ -36747,7 +37396,7 @@ ordinary expression. It could be a string constant, such as
(@xref{Computed Regexps}.)
@item Environment
-A collection of strings, of the form @var{name@code{=}val}, that each
+A collection of strings, of the form @var{name}@code{=}@code{val}, that each
program has available to it. Users generally place values into the
environment in order to provide information to various programs. Typical
examples are the environment variables @env{HOME} and @env{PATH}.
@@ -36916,7 +37565,7 @@ information about the name of the organization and its language-independent
three-letter acronym.
@cindex Java programming language
-@cindex Programming languages, Java
+@cindex programming languages, Java
@item Java
A modern programming language originally developed by Sun Microsystems
(now Oracle) supporting Object-Oriented programming. Although usually
@@ -37203,7 +37852,12 @@ record or a string.
@c The GNU General Public License.
@node Copying
@unnumbered GNU General Public License
+@ifnotdocbook
@center Version 3, 29 June 2007
+@end ifnotdocbook
+@docbook
+<subtitle>Version 3, 29 June 2007</subtitle>
+@end docbook
@c This file is intended to be included within another document,
@c hence no sectioning command or @node.
@@ -37928,10 +38582,17 @@ first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}.
@c The GNU Free Documentation License.
@node GNU Free Documentation License
@unnumbered GNU Free Documentation License
+@ifnotdocbook
+@center Version 1.3, 3 November 2008
+@end ifnotdocbook
+
+@docbook
+<subtitle>Version 1.3, 3 November 2008</subtitle>
+@end docbook
+
@cindex FDL (Free Documentation License)
@cindex Free Documentation License (FDL)
@cindex GNU Free Documentation License
-@center Version 1.3, 3 November 2008
@c This file is intended to be included within another document,
@c hence no sectioning command or @node.
@@ -38436,8 +39097,10 @@ to permit their use in free software.
@c ispell-local-pdict: "ispell-dict"
@c End:
+@ifnotdocbook
@node Index
@unnumbered Index
+@end ifnotdocbook
@printindex cp
@bye
@@ -38548,8 +39211,6 @@ Suggestions:
% Next edition:
% 1. Standardize the error messages from the functions and programs
% in the two sample code chapters.
-% 2. Nuke the BBS stuff and use something that won't be obsolete
-% 3. Turn the advanced notes into sidebars by using @cartouche
Better sidebars can almost sort of be done with:
@@ -38581,4 +39242,3 @@ But to use it you have to say
}
which sorta sucks.
-
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index b51ac3dc..7506dffb 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2014-02-09.15}
+\def\texinfoversion{2014-03-18.17}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -3935,19 +3935,23 @@ end
}
% multitable-only commands.
-%
-% @headitem starts a heading row, which we typeset in bold.
-% Assignments have to be global since we are inside the implicit group
-% of an alignment entry. \everycr resets \everytab so we don't have to
+%
+% @headitem starts a heading row, which we typeset in bold. Assignments
+% have to be global since we are inside the implicit group of an
+% alignment entry. \everycr below resets \everytab so we don't have to
% undo it ourselves.
\def\headitemfont{\b}% for people to use in the template row; not changeable
\def\headitem{%
\checkenv\multitable
\crcr
+ \gdef\headitemcrhook{\nobreak}% attempt to avoid page break after headings
\global\everytab={\bf}% can't use \headitemfont since the parsing differs
\the\everytab % for the first item
}%
%
+% default for tables with no headings.
+\let\headitemcrhook=\relax
+%
% A \tab used to include \hskip1sp. But then the space in a template
% line is not enough. That is bad. So let's go back to just `&' until
% we again encounter the problem the 1sp was intended to solve.
@@ -3978,15 +3982,15 @@ end
%
\everycr = {%
\noalign{%
- \global\everytab={}%
+ \global\everytab={}% Reset from possible headitem.
\global\colcount=0 % Reset the column counter.
- % Check for saved footnotes, etc.
+ %
+ % Check for saved footnotes, etc.:
\checkinserts
- % Keeps underfull box messages off when table breaks over pages.
- %\filbreak
- % Maybe so, but it also creates really weird page breaks when the
- % table breaks over pages. Wouldn't \vfil be better? Wait until the
- % problem manifests itself, so it can be fixed for real --karl.
+ %
+ % Perhaps a \nobreak, then reset:
+ \headitemcrhook
+ \global\let\headitemcrhook=\relax
}%
}%
%
@@ -4428,7 +4432,7 @@ end
% complicated, when \tex is in effect and \{ is a \delimiter again.
% We can't use \lbracecmd and \rbracecmd because texindex assumes
% braces and backslashes are used only as delimiters. Perhaps we
- % should define @lbrace and @rbrace commands a la @comma.
+ % should use @lbracechar and @rbracechar?
\def\{{{\tt\char123}}%
\def\}{{\tt\char125}}%
%
@@ -4449,8 +4453,7 @@ end
% @end macro
% ...
% @funindex commtest
- %
- % The above is not enough to reproduce the bug, but it gives the flavor.
+ % This is not enough to reproduce the bug, but it gives the flavor.
%
% Sample whatsit resulting:
% .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
@@ -4663,6 +4666,9 @@ end
\let\xeatspaces = \eatspaces
}
+% For testing: output @{ and @} in index sort strings as \{ and \}.
+\newif\ifusebracesinindexes
+
% \indexnofonts is used when outputting the strings to sort the index
% by, and when constructing control sequence names. It eliminates all
% control sequences and just writes whatever the best ASCII sort string
@@ -4691,11 +4697,16 @@ end
% Unfortunately, texindex is not prepared to handle braces in the
% content at all. So for index sorting, we map @{ and @} to strings
% starting with |, since that ASCII character is between ASCII { and }.
- \def\{{|a}%
- \def\lbracechar{|a}%
+ \ifusebracesinindexes
+ \def\lbracechar{\lbracecmd}%
+ \def\rbracechar{\rbracecmd}%
+ \else
+ \def\lbracechar{|a}%
+ \def\rbracechar{|b}%
+ \fi
+ \let\{=\lbracechar
+ \let\}=\rbracechar
%
- \def\}{|b}%
- \def\rbracechar{|b}%
%
% Non-English letters.
\def\AA{AA}%
diff --git a/ext.c b/ext.c
index cae882ff..09e10164 100644
--- a/ext.c
+++ b/ext.c
@@ -221,11 +221,11 @@ make_builtin(const awk_ext_func_t *funcinfo)
fatal(_("make_builtin: missing function name"));
if (! is_letter(*sp))
- return false;
+ return awk_false;
for (sp++; (c = *sp++) != '\0';) {
if (! is_identifier_char(c))
- return false;
+ return awk_false;
}
f = lookup(name);
@@ -238,7 +238,7 @@ make_builtin(const awk_ext_func_t *funcinfo)
/* multiple extension() calls etc. */
if (do_lint)
lintwarn(_("make_builtin: function `%s' already defined"), name);
- return false;
+ return awk_false;
} else
/* variable name etc. */
fatal(_("make_builtin: function name `%s' previously defined"), name);
@@ -258,7 +258,7 @@ make_builtin(const awk_ext_func_t *funcinfo)
symbol = install_symbol(estrdup(name, strlen(name)), Node_ext_func);
symbol->code_ptr = b;
track_ext_func(name);
- return true;
+ return awk_true;
}
/* make_old_builtin --- register name to be called as func with a builtin body */
diff --git a/extension/ChangeLog b/extension/ChangeLog
index ef5c725f..869c30a5 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,58 @@
+2014-04-11 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (install-data-hook): Use $(DESTDIR) when removing
+ the .la files. Thanks to Lars Wendler <polynomial-c@gentoo.org>
+ for the report and fix.
+
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * configure.ac: Bump version before release.
+
+2014-04-04 Arnold D. Robbins <arnold@skeeve.com>
+
+ * time.c: Include <time.h> unconditionally to get declaration
+ of nanosleep on Linux. Avoids a warning. Thanks to Michal
+ Jaegermann.
+
+2014-03-31 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 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 <arnold@skeeve.com>
+
+ * 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 <arnold@skeeve.com>
+
+ * readfile.c: Add an input parser that works off of
+ PROCINFO["readfile"].
+ * readfile.3am: Document same.
+
+2014-03-23 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 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 <aschorr@telemetry-investments.com>
+
+ * 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 <wb8tyw@qsl.net>
* time.c: Better hack for nanosleep bug based on feedback from HP.
diff --git a/extension/Makefile.am b/extension/Makefile.am
index 9c49bb81..11826e2b 100644
--- a/extension/Makefile.am
+++ b/extension/Makefile.am
@@ -100,7 +100,7 @@ testext_la_LIBADD = $(MY_LIBS)
install-data-hook:
for i in $(pkgextension_LTLIBRARIES) ; do \
- $(RM) $(pkgextensiondir)/$$i ; \
+ $(RM) $(DESTDIR)$(pkgextensiondir)/$$i ; \
done
# Keep the uninstall check working:
diff --git a/extension/Makefile.in b/extension/Makefile.in
index 040cdb8f..d81b1696 100644
--- a/extension/Makefile.in
+++ b/extension/Makefile.in
@@ -1231,7 +1231,7 @@ uninstall-man: uninstall-man3
install-data-hook:
for i in $(pkgextension_LTLIBRARIES) ; do \
- $(RM) $(pkgextensiondir)/$$i ; \
+ $(RM) $(DESTDIR)$(pkgextensiondir)/$$i ; \
done
# Keep the uninstall check working:
diff --git a/extension/build-aux/ChangeLog b/extension/build-aux/ChangeLog
index b578de8b..697db607 100644
--- a/extension/build-aux/ChangeLog
+++ b/extension/build-aux/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
2014-01-03 Arnold D. Robbins <arnold@skeeve.com>
* config.guess, config.rpath, config.sub, depcomp,
diff --git a/extension/configh.in b/extension/configh.in
index 8add211a..5842f2f4 100644
--- a/extension/configh.in
+++ b/extension/configh.in
@@ -30,7 +30,8 @@
*/
#undef HAVE_DECL_DIRFD
-/* Define to 1 if you have the <dirent.h> header file. */
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
#undef HAVE_DIRENT_H
/* Define to 1 if you have the `dirfd' function. */
@@ -75,6 +76,9 @@
/* Define to 1 if you have the `nanosleep' function. */
#undef HAVE_NANOSLEEP
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
/* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT
@@ -93,6 +97,14 @@
/* Define to 1 if `st_blksize' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLKSIZE
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_H
+
/* Define to 1 if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
@@ -108,9 +120,6 @@
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
-/* Define to 1 if you have the <time.h> header file. */
-#undef HAVE_TIME_H
-
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
@@ -149,6 +158,9 @@
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#undef TIME_WITH_SYS_TIME
+
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
diff --git a/extension/configure b/extension/configure
index 025e2723..2105648d 100755
--- a/extension/configure
+++ b/extension/configure
@@ -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 4.1.0.
+# Generated by GNU Autoconf 2.69 for GNU Awk Bundled Extensions 4.1.1.
#
# Report bugs to <bug-gawk@gnu.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GNU Awk Bundled Extensions'
PACKAGE_TARNAME='gawk-extensions'
-PACKAGE_VERSION='4.1.0'
-PACKAGE_STRING='GNU Awk Bundled Extensions 4.1.0'
+PACKAGE_VERSION='4.1.1'
+PACKAGE_STRING='GNU Awk Bundled Extensions 4.1.1'
PACKAGE_BUGREPORT='bug-gawk@gnu.org'
PACKAGE_URL='http://www.gnu.org/software/gawk-extensions/'
@@ -1333,7 +1333,7 @@ if test "$ac_init_help" = "long"; then
# 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 4.1.0 to adapt to many kinds of systems.
+\`configure' configures GNU Awk Bundled Extensions 4.1.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1403,7 +1403,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GNU Awk Bundled Extensions 4.1.0:";;
+ short | recursive ) echo "Configuration of GNU Awk Bundled Extensions 4.1.1:";;
esac
cat <<\_ACEOF
@@ -1518,7 +1518,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GNU Awk Bundled Extensions configure 4.1.0
+GNU Awk Bundled Extensions configure 4.1.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1990,7 +1990,7 @@ cat >config.log <<_ACEOF
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 4.1.0, which was
+It was created by GNU Awk Bundled Extensions $as_me 4.1.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4172,7 +4172,7 @@ fi
# Define the identity of the package.
PACKAGE='gawk-extensions'
- VERSION='4.1.0'
+ VERSION='4.1.1'
cat >>confdefs.h <<_ACEOF
@@ -14034,7 +14034,7 @@ pkgextensiondir='${libdir}/gawk'
if test "$GCC" = yes
then
- CFLAGS="$CFLAGS -Wall -Wextra"
+ CFLAGS="$CFLAGS -Wall" # Don't add -Wextra, hurts older gcc
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for special development options" >&5
@@ -14052,6 +14052,177 @@ else
$as_echo "no" >&6; }
fi
+for ac_header in fnmatch.h limits.h sys/time.h sys/select.h sys/param.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/types.h defines makedev" >&5
$as_echo_n "checking whether sys/types.h defines makedev... " >&6; }
if ${ac_cv_header_sys_types_h_makedev+:} false; then :
@@ -14102,18 +14273,40 @@ fi
fi
fi
-for ac_header in dirent.h fnmatch.h limits.h time.h sys/time.h sys/select.h sys/param.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
+$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
+if ${ac_cv_header_time+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+int
+main ()
+{
+if ((struct tm *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_time=yes
+else
+ ac_cv_header_time=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
+$as_echo "$ac_cv_header_time" >&6; }
+if test $ac_cv_header_time = yes; then
-done
+$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
+
+fi
for ac_func in fdopendir fnmatch gettimeofday \
@@ -14824,7 +15017,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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 4.1.0, which was
+This file was extended by GNU Awk Bundled Extensions $as_me 4.1.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14892,7 +15085,7 @@ _ACEOF
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 4.1.0
+GNU Awk Bundled Extensions config.status 4.1.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/extension/configure.ac b/extension/configure.ac
index 412fec09..1f876a0e 100644
--- a/extension/configure.ac
+++ b/extension/configure.ac
@@ -1,7 +1,7 @@
dnl
dnl configure.ac --- autoconf input file for gawk
dnl
-dnl Copyright (C) 2012, 2013 the Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2014 the Free Software Foundation, Inc.
dnl
dnl This file is part of GAWK, the GNU implementation of the
dnl AWK Programming Language.
@@ -23,7 +23,7 @@ dnl
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([GNU Awk Bundled Extensions], 4.1.0, bug-gawk@gnu.org, gawk-extensions)
+AC_INIT([GNU Awk Bundled Extensions], 4.1.1, bug-gawk@gnu.org, gawk-extensions)
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([build-aux])
@@ -51,7 +51,7 @@ AC_SUBST([pkgextensiondir], ['${libdir}/gawk'])
if test "$GCC" = yes
then
- CFLAGS="$CFLAGS -Wall -Wextra"
+ CFLAGS="$CFLAGS -Wall" # Don't add -Wextra, hurts older gcc
fi
AC_MSG_CHECKING([for special development options])
@@ -66,8 +66,10 @@ else
AC_MSG_RESULT([no])
fi
+AC_CHECK_HEADERS(fnmatch.h limits.h sys/time.h sys/select.h sys/param.h)
+AC_HEADER_DIRENT
AC_HEADER_MAJOR
-AC_CHECK_HEADERS(dirent.h fnmatch.h limits.h time.h sys/time.h sys/select.h sys/param.h)
+AC_HEADER_TIME
AC_CHECK_FUNCS(fdopendir fnmatch gettimeofday \
getdtablesize nanosleep select GetSystemTimeAsFileTime)
diff --git a/extension/filefuncs.c b/extension/filefuncs.c
index 3eb2a6b5..d5249a4e 100644
--- a/extension/filefuncs.c
+++ b/extension/filefuncs.c
@@ -9,7 +9,7 @@
*/
/*
- * Copyright (C) 2001, 2004, 2005, 2010, 2011, 2012, 2013
+ * Copyright (C) 2001, 2004, 2005, 2010, 2011, 2012, 2013, 2014
* the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
@@ -284,7 +284,7 @@ read_symlink(const char *fname, size_t bufsize, ssize_t *linksize)
returns -1 with errno == ERANGE if the buffer is
too small. */
if (errno != ERANGE) {
- free(buf);
+ gawk_free(buf);
return NULL;
}
}
@@ -293,7 +293,7 @@ read_symlink(const char *fname, size_t bufsize, ssize_t *linksize)
buf[*linksize] = '\0';
return buf;
}
- free(buf);
+ gawk_free(buf);
if (bufsize <= MAXSIZE/2)
bufsize *= 2;
else if (bufsize < MAXSIZE)
@@ -854,7 +854,7 @@ do_fts(int nargs, awk_value_t *result)
out:
if (pathvector != NULL)
- free(pathvector);
+ gawk_free(pathvector);
if (path_array != NULL)
(void) release_flattened_array(pathlist.array_cookie, path_array);
diff --git a/extension/gawkfts.c b/extension/gawkfts.c
index 25a4c108..4a712153 100644
--- a/extension/gawkfts.c
+++ b/extension/gawkfts.c
@@ -139,6 +139,10 @@ static int fts_safe_changedir(const FTS *, const FTSENT *, int,
#define _DIAGASSERT(expression)
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 1024 /* a guess */
+#endif
+
FTS *
fts_open(char * const *argv, int options,
int (*compar)(const FTSENT **, const FTSENT **))
diff --git a/extension/inplace.c b/extension/inplace.c
index 91b1a229..e2f8b73f 100644
--- a/extension/inplace.c
+++ b/extension/inplace.c
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 2013 the Free Software Foundation, Inc.
+ * Copyright (C) 2013, 2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -96,7 +96,7 @@ at_exit(void *data, int exit_status)
(void) exit_status; /* silence warnings */
if (state.tname) {
unlink(state.tname);
- free(state.tname);
+ gawk_free(state.tname);
state.tname = NULL;
}
}
@@ -242,7 +242,7 @@ do_inplace_end(int nargs, awk_value_t *result)
if (link(filename.str_value.str, bakname) < 0)
fatal(ext_id, _("inplace_end: link(`%s', `%s') failed (%s)"),
filename.str_value.str, bakname, strerror(errno));
- free(bakname);
+ gawk_free(bakname);
}
#ifdef __MINGW32__
@@ -252,7 +252,7 @@ do_inplace_end(int nargs, awk_value_t *result)
if (rename(state.tname, filename.str_value.str) < 0)
fatal(ext_id, _("inplace_end: rename(`%s', `%s') failed (%s)"),
state.tname, filename.str_value.str, strerror(errno));
- free(state.tname);
+ gawk_free(state.tname);
state.tname = NULL;
return make_number(0, result);
}
diff --git a/extension/m4/ChangeLog b/extension/m4/ChangeLog
index 821ef9ed..349bbcc8 100644
--- a/extension/m4/ChangeLog
+++ b/extension/m4/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
2013-12-21 Arnold D. Robbins <arnold@skeeve.com>
* libtool.m4, ltoptions.m4, ltversion.m4: Update to
diff --git a/extension/readdir.c b/extension/readdir.c
index 91296801..7bcabcb0 100644
--- a/extension/readdir.c
+++ b/extension/readdir.c
@@ -10,7 +10,7 @@
*/
/*
- * Copyright (C) 2012, 2013 the Free Software Foundation, Inc.
+ * Copyright (C) 2012-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -67,6 +67,10 @@
#define _(msgid) gettext(msgid)
#define N_(msgid) msgid
+#ifndef PATH_MAX
+#define PATH_MAX 1024 /* a good guess */
+#endif
+
static const gawk_api_t *api; /* for convenience macros to work */
static awk_ext_id_t *ext_id;
static const char *ext_version = "readdir extension: version 1.0";
@@ -235,8 +239,8 @@ dir_close(awk_input_buf_t *iobuf)
the_dir = (open_directory_t *) iobuf->opaque;
closedir(the_dir->dp);
- free(the_dir->buf);
- free(the_dir);
+ gawk_free(the_dir->buf);
+ gawk_free(the_dir);
iobuf->fd = -1;
}
diff --git a/extension/readfile.3am b/extension/readfile.3am
index 688d9cd5..0cb2eb5b 100644
--- a/extension/readfile.3am
+++ b/extension/readfile.3am
@@ -1,4 +1,4 @@
-.TH READFILE 3am "Jan 15 2013" "Free Software Foundation" "GNU Awk Extension Modules"
+.TH READFILE 3am "Mar 24 2013" "Free Software Foundation" "GNU Awk Extension Modules"
.SH NAME
readfile \- return the entire contents of a file as a string
.SH SYNOPSIS
@@ -6,6 +6,14 @@ readfile \- return the entire contents of a file as a string
@load "readfile"
.sp
result = readfile("/some/path")
+.sp
+.ft R
+For making whole files be single records:
+.sp
+.ft CW
+@load "readfile"
+.br
+BEGIN { PROCINFO["readfile"] = 1 }
.ft R
.SH DESCRIPTION
The
@@ -18,6 +26,14 @@ the requested file.
.PP
Upon error, the function returns the empty string and sets
.BR ERRNO .
+.PP
+In addition, it adds an input parser that is activated if
+.ft CW
+PROCINFO["readfile"]
+.ft R
+exists.
+When activated, each input file is returned in its entirety as \f(CW$0\fR.
+\f(CWRT\fP is set to the null string.
... .SH NOTES
... .SH BUGS
.SH EXAMPLE
@@ -47,7 +63,7 @@ if (contents == "" && ERRNO != "") {
Arnold Robbins,
.BR arnold@skeeve.com .
.SH COPYING PERMISSIONS
-Copyright \(co 2012, 2013,
+Copyright \(co 2012, 2013, 2014,
Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
diff --git a/extension/readfile.c b/extension/readfile.c
index 06889c3d..d4b4aef9 100644
--- a/extension/readfile.c
+++ b/extension/readfile.c
@@ -8,10 +8,11 @@
* Revised for new dynamic function facilities
* Mon Jun 14 14:53:07 IDT 2004
* Revised for formal API May 2012
+ * Added input parser March 2014
*/
/*
- * Copyright (C) 2002, 2003, 2004, 2011, 2012, 2013
+ * Copyright (C) 2002, 2003, 2004, 2011, 2012, 2013, 2014
* the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
@@ -61,11 +62,39 @@
static const gawk_api_t *api; /* for convenience macros to work */
static awk_ext_id_t *ext_id;
-static const char *ext_version = "readfile extension: version 1.0";
-static awk_bool_t (*init_func)(void) = NULL;
+static const char *ext_version = "readfile extension: version 2.0";
+static awk_bool_t init_readfile();
+static awk_bool_t (*init_func)(void) = init_readfile;
int plugin_is_GPL_compatible;
+/* read_file_to_buffer --- handle the mechanics of reading the file */
+
+static char *
+read_file_to_buffer(int fd, const struct stat *sbuf)
+{
+ char *text = NULL;
+ int ret;
+
+ if ((sbuf->st_mode & S_IFMT) != S_IFREG) {
+ errno = EINVAL;
+ update_ERRNO_int(errno);
+ goto done;
+ }
+
+ emalloc(text, char *, sbuf->st_size + 2, "do_readfile");
+ memset(text, '\0', sbuf->st_size + 2);
+
+ if ((ret = read(fd, text, sbuf->st_size)) != sbuf->st_size) {
+ update_ERRNO_int(errno);
+ gawk_free(text);
+ text = NULL;
+ /* fall through to return */
+ }
+done:
+ return text;
+}
+
/* do_readfile --- read a file into memory */
static awk_value_t *
@@ -90,10 +119,6 @@ do_readfile(int nargs, awk_value_t *result)
if (ret < 0) {
update_ERRNO_int(errno);
goto done;
- } else if ((sbuf.st_mode & S_IFMT) != S_IFREG) {
- errno = EINVAL;
- update_ERRNO_int(errno);
- goto done;
}
if ((fd = open(filename.str_value.str, O_RDONLY|O_BINARY)) < 0) {
@@ -101,15 +126,9 @@ do_readfile(int nargs, awk_value_t *result)
goto done;
}
- emalloc(text, char *, sbuf.st_size + 2, "do_readfile");
- memset(text, '\0', sbuf.st_size + 2);
-
- if ((ret = read(fd, text, sbuf.st_size)) != sbuf.st_size) {
- (void) close(fd);
- update_ERRNO_int(errno);
- free(text);
- goto done;
- }
+ text = read_file_to_buffer(fd, & sbuf);
+ if (text == NULL)
+ goto done; /* ERRNO already updated */
close(fd);
make_malloced_string(text, sbuf.st_size, result);
@@ -117,12 +136,110 @@ do_readfile(int nargs, awk_value_t *result)
} else if (do_lint)
lintwarn(ext_id, _("readfile: called with no arguments"));
-
done:
/* Set the return value */
return result;
}
+/* readfile_get_record --- read the whole file as one record */
+
+static int
+readfile_get_record(char **out, awk_input_buf_t *iobuf, int *errcode,
+ char **rt_start, size_t *rt_len)
+{
+ char *text;
+
+ /*
+ * The caller sets *errcode to 0, so we should set it only if an
+ * error occurs.
+ */
+
+ if (out == NULL || iobuf == NULL)
+ return EOF;
+
+ if (iobuf->opaque != NULL) {
+ /*
+ * Already read the whole file,
+ * free up stuff and return EOF
+ */
+ gawk_free(iobuf->opaque);
+ iobuf->opaque = NULL;
+ return EOF;
+ }
+
+ /* read file */
+ text = read_file_to_buffer(iobuf->fd, & iobuf->sbuf);
+ if (text == NULL)
+ return EOF;
+
+ /* set up the iobuf for next time */
+ iobuf->opaque = text;
+
+ /* set return values */
+ *rt_start = NULL;
+ *rt_len = 0;
+ *out = text;
+
+ /* return count */
+ return iobuf->sbuf.st_size;
+}
+
+/* readfile_can_take_file --- return true if we want the file */
+
+static awk_bool_t
+readfile_can_take_file(const awk_input_buf_t *iobuf)
+{
+ awk_value_t array, index, value;
+
+ if (iobuf == NULL)
+ return awk_false;
+
+ /*
+ * This could fail if PROCINFO isn't referenced from
+ * the awk program. It's not a "can't happen" error.
+ */
+ if (! sym_lookup("PROCINFO", AWK_ARRAY, & array)) {
+ return awk_false;
+ }
+
+ (void) make_const_string("readfile", 8, & index);
+
+ if (! get_array_element(array.array_cookie, & index, AWK_UNDEFINED, & value)) {
+ return awk_false;
+ }
+
+ return awk_true;
+}
+
+/* readfile_take_control_of --- take over the file */
+
+static awk_bool_t
+readfile_take_control_of(awk_input_buf_t *iobuf)
+{
+ if (iobuf == NULL)
+ return awk_false;
+
+ iobuf->get_record = readfile_get_record;
+ return awk_true;
+}
+
+static awk_input_parser_t readfile_parser = {
+ "readfile",
+ readfile_can_take_file,
+ readfile_take_control_of,
+ NULL
+};
+
+/* init_readfile --- set things up */
+
+static awk_bool_t
+init_readfile()
+{
+ register_input_parser(& readfile_parser);
+
+ return awk_true;
+}
+
static awk_ext_func_t func_table[] = {
{ "readfile", do_readfile, 1 },
};
diff --git a/extension/revtwoway.c b/extension/revtwoway.c
index 5f490825..c0d9381a 100644
--- a/extension/revtwoway.c
+++ b/extension/revtwoway.c
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (C) 2012, 2013 the Free Software Foundation, Inc.
+ * Copyright (C) 2012-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -119,8 +119,8 @@ close_two_proc_data(two_way_proc_data_t *proc_data)
return;
}
- free(proc_data->data);
- free(proc_data);
+ gawk_free(proc_data->data);
+ gawk_free(proc_data);
}
/*
diff --git a/extension/rwarray.c b/extension/rwarray.c
index 6185000b..aa05a0d5 100644
--- a/extension/rwarray.c
+++ b/extension/rwarray.c
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (C) 2009, 2010, 2011, 2012, 2013 the Free Software Foundation, Inc.
+ * Copyright (C) 2009-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -408,7 +408,7 @@ read_elem(FILE *fp, awk_element_t *element)
buflen = index_len;
} else if (buflen < index_len) {
/* reallocate buffer */
- char *cp = realloc(buffer, index_len);
+ char *cp = gawk_realloc(buffer, index_len);
if (cp == NULL)
return awk_false;
@@ -468,11 +468,11 @@ read_value(FILE *fp, awk_value_t *value)
len = ntohl(len);
value->val_type = AWK_STRING;
value->str_value.len = len;
- value->str_value.str = malloc(len + 2);
+ value->str_value.str = gawk_malloc(len + 2);
memset(value->str_value.str, '\0', len + 2);
if (fread(value->str_value.str, 1, len, fp) != (ssize_t) len) {
- free(value->str_value.str);
+ gawk_free(value->str_value.str);
return awk_false;
}
}
diff --git a/extension/testext.c b/extension/testext.c
index d11272b8..2dda339f 100644
--- a/extension/testext.c
+++ b/extension/testext.c
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 2012, 2013
+ * Copyright (C) 2012, 2013, 2014
* the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
@@ -237,8 +237,8 @@ try_modify_environ(int nargs, awk_value_t *result)
printf("try_modify_environ: set_array_element of ENVIRON passed\n");
} else {
printf("try_modify_environ: set_array_element of ENVIRON failed\n");
- free(index.str_value.str);
- free(value.str_value.str);
+ gawk_free(index.str_value.str);
+ gawk_free(value.str_value.str);
}
if (! flatten_array(environ_array, & flat_array)) {
diff --git a/extension/time.c b/extension/time.c
index c336df88..e6b2b39f 100644
--- a/extension/time.c
+++ b/extension/time.c
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 2012, 2013
+ * Copyright (C) 2012, 2013, 2014
* the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
@@ -85,15 +85,13 @@ static awk_bool_t (*init_func)(void) = NULL;
int plugin_is_GPL_compatible;
+#include <time.h>
#if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)
#include <sys/time.h>
#endif
#if defined(HAVE_SELECT) && defined(HAVE_SYS_SELECT_H)
#include <sys/select.h>
#endif
-#if defined(HAVE_NANOSLEEP) && defined(HAVE_TIME_H)
-#include <time.h>
-#endif
#if defined(HAVE_GETSYSTEMTIMEASFILETIME)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
diff --git a/gawkapi.c b/gawkapi.c
index 9936d530..bcf8d90a 100644
--- a/gawkapi.c
+++ b/gawkapi.c
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 2012, 2013 the Free Software Foundation, Inc.
+ * Copyright (C) 2012-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -43,7 +43,7 @@ api_get_argument(awk_ext_id_t id, size_t count,
NODE *arg;
if (result == NULL)
- return false;
+ return awk_false;
(void) id;
@@ -59,7 +59,7 @@ api_get_argument(awk_ext_id_t id, size_t count,
*/
arg = get_argument(count);
if (arg == NULL)
- return false;
+ return awk_false;
/* if type is undefined */
if (arg->type == Node_var_new) {
@@ -84,7 +84,7 @@ array:
/* get the array here */
arg = get_array_argument(count, false);
if (arg == NULL)
- return false;
+ return awk_false;
return node_to_awk_value(arg, result, wanted);
@@ -92,11 +92,11 @@ scalar:
/* at this point we have a real type that is not an array */
arg = get_scalar_argument(count, false);
if (arg == NULL)
- return false;
+ return awk_false;
return node_to_awk_value(arg, result, wanted);
#else
- return false;
+ return awk_false;
#endif
}
@@ -114,23 +114,23 @@ api_set_argument(awk_ext_id_t id,
(void) id;
if (array == NULL || array->type != Node_var_array)
- return false;
+ return awk_false;
if ( (arg = get_argument(count)) == NULL
|| arg->type != Node_var_new)
- return false;
+ return awk_false;
arg = get_array_argument(count, false);
if (arg == NULL)
- return false;
+ return awk_false;
array->vname = arg->vname;
*arg = *array;
freenode(array);
- return true;
+ return awk_true;
#else
- return false;
+ return awk_false;
#endif
}
@@ -314,12 +314,12 @@ api_add_ext_func(awk_ext_id_t id,
(void) namespace;
if (func == NULL)
- return false;
+ return awk_false;
#ifdef DYNAMIC
return make_builtin(func);
#else
- return false;
+ return awk_false;
#endif
}
@@ -378,7 +378,7 @@ api_awk_atexit(awk_ext_id_t id,
static awk_bool_t
node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
{
- awk_bool_t ret = false;
+ awk_bool_t ret = awk_false;
if (node == NULL)
fatal(_("node_to_awk_value: received null node"));
@@ -390,7 +390,7 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
case Node_var_new: /* undefined variable */
val->val_type = AWK_UNDEFINED;
if (wanted == AWK_UNDEFINED) {
- ret = true;
+ ret = awk_true;
}
break;
@@ -399,7 +399,7 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
if (wanted == AWK_SCALAR) {
val->val_type = AWK_SCALAR;
val->scalar_cookie = (void *) node;
- ret = true;
+ ret = awk_true;
break;
}
@@ -414,7 +414,7 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
(void) force_number(node);
if ((node->flags & NUMCUR) != 0) {
val->num_value = get_number_d(node);
- ret = true;
+ ret = awk_true;
}
break;
@@ -425,7 +425,7 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
if ((node->flags & STRCUR) != 0) {
val->str_value.str = node->stptr;
val->str_value.len = node->stlen;
- ret = true;
+ ret = awk_true;
}
break;
@@ -436,7 +436,7 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
val->val_type = AWK_STRING;
} else
val->val_type = AWK_UNDEFINED;
- ret = false;
+ ret = awk_false;
break;
case AWK_UNDEFINED:
@@ -444,12 +444,12 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
if ((node->flags & NUMBER) != 0) {
val->val_type = AWK_NUMBER;
val->num_value = get_number_d(node);
- ret = true;
+ ret = awk_true;
} else if ((node->flags & STRING) != 0) {
val->val_type = AWK_STRING;
val->str_value.str = node->stptr;
val->str_value.len = node->stlen;
- ret = true;
+ ret = awk_true;
} else
val->val_type = AWK_UNDEFINED;
break;
@@ -464,15 +464,14 @@ node_to_awk_value(NODE *node, awk_value_t *val, awk_valtype_t wanted)
val->val_type = AWK_ARRAY;
if (wanted == AWK_ARRAY || wanted == AWK_UNDEFINED) {
val->array_cookie = node;
- ret = true;
- } else {
- ret = false;
- }
+ ret = awk_true;
+ } else
+ ret = awk_false;
break;
default:
val->val_type = AWK_UNDEFINED;
- ret = false;
+ ret = awk_false;
break;
}
@@ -510,7 +509,7 @@ api_sym_lookup(awk_ext_id_t id,
|| *name == '\0'
|| result == NULL
|| (node = lookup(name)) == NULL)
- return false;
+ return awk_false;
if (is_off_limits_var(name)) /* a built-in variable */
node->flags |= NO_EXT_SET;
@@ -531,7 +530,7 @@ api_sym_lookup_scalar(awk_ext_id_t id,
if (node == NULL
|| result == NULL
|| node->type != Node_var)
- return false;
+ return awk_false;
update_global_values(); /* make sure stuff like NF, NR, are up to date */
@@ -551,7 +550,7 @@ api_sym_update(awk_ext_id_t id,
if ( name == NULL
|| *name == '\0'
|| value == NULL)
- return false;
+ return awk_false;
switch (value->val_type) {
case AWK_NUMBER:
@@ -564,7 +563,7 @@ api_sym_update(awk_ext_id_t id,
default:
/* fatal(_("api_sym_update: invalid value for type of new value (%d)"), value->val_type); */
- return false;
+ return awk_false;
}
node = lookup(name);
@@ -586,7 +585,7 @@ api_sym_update(awk_ext_id_t id,
node->var_value = awk_value_to_node(value);
}
- return true;
+ return awk_true;
}
/*
@@ -596,7 +595,7 @@ api_sym_update(awk_ext_id_t id,
if ( (node->flags & NO_EXT_SET) != 0
|| is_off_limits_var(name)) { /* most built-in vars not allowed */
node->flags |= NO_EXT_SET;
- return false;
+ return awk_false;
}
if ( value->val_type != AWK_ARRAY
@@ -606,10 +605,10 @@ api_sym_update(awk_ext_id_t id,
if (node->type == Node_var_new && value->val_type != AWK_UNDEFINED)
node->type = Node_var;
- return true;
+ return awk_true;
}
- return false;
+ return awk_false;
}
/* api_sym_update_scalar --- update a scalar cookie */
@@ -625,7 +624,7 @@ api_sym_update_scalar(awk_ext_id_t id,
|| node == NULL
|| node->type != Node_var
|| (node->flags & NO_EXT_SET) != 0)
- return false;
+ return awk_false;
/*
* Optimization: if valref is 1, and the new value is a string or
@@ -650,7 +649,7 @@ api_sym_update_scalar(awk_ext_id_t id,
r->flags = MALLOC|NUMBER|NUMCUR;
r->stptr = NULL;
r->stlen = 0;
- return true;
+ return awk_true;
}
break;
case AWK_STRING:
@@ -670,7 +669,7 @@ api_sym_update_scalar(awk_ext_id_t id,
r->stfmt = -1;
r->stptr = value->str_value.str;
r->stlen = value->str_value.len;
- return true;
+ return awk_true;
}
break;
case AWK_UNDEFINED:
@@ -679,13 +678,13 @@ api_sym_update_scalar(awk_ext_id_t id,
break;
default: /* AWK_ARRAY or invalid type */
- return false;
+ return awk_false;
}
/* do it the hard (slow) way */
unref(node->var_value);
node->var_value = awk_value_to_node(value);
- return true;
+ return awk_true;
}
/*
@@ -694,7 +693,7 @@ api_sym_update_scalar(awk_ext_id_t id,
* Any scalar value is fine, so only AWK_ARRAY (or an invalid type) is illegal.
*/
-static inline int
+static inline bool
valid_subscript_type(awk_valtype_t valtype)
{
switch (valtype) {
@@ -733,21 +732,21 @@ api_get_array_element(awk_ext_id_t id,
|| result == NULL
|| index == NULL
|| ! valid_subscript_type(index->val_type))
- return false;
+ return awk_false;
subscript = awk_value_to_node(index);
/* if it doesn't exist, return false */
if (in_array(array, subscript) == NULL) {
unref(subscript);
- return false;
+ return awk_false;
}
aptr = assoc_lookup(array, subscript);
if (aptr == NULL) { /* can't happen */
unref(subscript);
- return false;
+ return awk_false;
}
unref(subscript);
@@ -777,7 +776,7 @@ api_set_array_element(awk_ext_id_t id, awk_array_t a_cookie,
|| index == NULL
|| value == NULL
|| ! valid_subscript_type(index->val_type))
- return false;
+ return awk_false;
tmp = awk_value_to_node(index);
aptr = assoc_lookup(array, tmp);
@@ -791,7 +790,7 @@ api_set_array_element(awk_ext_id_t id, awk_array_t a_cookie,
make_aname(elem);
}
- return true;
+ return awk_true;
}
/*
@@ -843,13 +842,13 @@ api_del_array_element(awk_ext_id_t id,
|| (array->flags & NO_EXT_SET) != 0
|| index == NULL
|| ! valid_subscript_type(index->val_type))
- return false;
+ return awk_false;
sub = awk_value_to_node(index);
remove_element(array, sub);
unref(sub);
- return true;
+ return awk_true;
}
/*
@@ -864,10 +863,10 @@ api_get_element_count(awk_ext_id_t id,
NODE *node = (NODE *) a_cookie;
if (count == NULL || node == NULL || node->type != Node_var_array)
- return false;
+ return awk_false;
*count = node->table_size;
- return true;
+ return awk_true;
}
/* api_create_array --- create a new array cookie to which elements may be added */
@@ -894,10 +893,10 @@ api_clear_array(awk_ext_id_t id, awk_array_t a_cookie)
if ( node == NULL
|| node->type != Node_var_array
|| (node->flags & NO_EXT_SET) != 0)
- return false;
+ return awk_false;
assoc_clear(node);
- return true;
+ return awk_true;
}
/* api_flatten_array --- flatten out an array so that it can be looped over easily. */
@@ -916,7 +915,7 @@ api_flatten_array(awk_ext_id_t id,
|| array->type != Node_var_array
|| array->table_size == 0
|| data == NULL)
- return false;
+ return awk_false;
alloc_size = sizeof(awk_flat_array_t) +
(array->table_size - 1) * sizeof(awk_element_t);
@@ -954,7 +953,7 @@ api_flatten_array(awk_ext_id_t id,
(int) i);
}
}
- return true;
+ return awk_true;
}
/*
@@ -978,7 +977,7 @@ api_release_flattened_array(awk_ext_id_t id,
|| array != (NODE *) data->opaque1
|| data->count != array->table_size
|| data->opaque2 == NULL)
- return false;
+ return awk_false;
list = (NODE **) data->opaque2;
@@ -995,7 +994,7 @@ api_release_flattened_array(awk_ext_id_t id,
efree(list);
efree(data);
- return true;
+ return awk_true;
}
/* api_create_value --- create a cached value */
@@ -1005,7 +1004,7 @@ api_create_value(awk_ext_id_t id, awk_value_t *value,
awk_value_cookie_t *result)
{
if (value == NULL || result == NULL)
- return false;
+ return awk_false;
switch (value->val_type) {
case AWK_NUMBER:
@@ -1013,10 +1012,10 @@ api_create_value(awk_ext_id_t id, awk_value_t *value,
break;
default:
/* reject anything other than a simple scalar */
- return false;
+ return awk_false;
}
- return (*result = awk_value_to_node(value)) != NULL;
+ return (awk_bool_t) ((*result = awk_value_to_node(value)) != NULL);
}
/* api_release_value --- release a cached value */
@@ -1027,10 +1026,10 @@ api_release_value(awk_ext_id_t id, awk_value_cookie_t value)
NODE *val = (NODE *) value;
if (val == NULL)
- return false;
+ return awk_false;
unref(val);
- return true;
+ return awk_true;
}
/*
@@ -1112,6 +1111,12 @@ gawk_api_t api_impl = {
api_clear_array,
api_flatten_array,
api_release_flattened_array,
+
+ /* Memory allocation */
+ malloc,
+ calloc,
+ realloc,
+ free,
};
/* init_ext_api --- init the extension API */
diff --git a/gawkapi.h b/gawkapi.h
index b26ee24c..5ccadc21 100644
--- a/gawkapi.h
+++ b/gawkapi.h
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 2012, 2013 the Free Software Foundation, Inc.
+ * Copyright (C) 2012-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -30,7 +30,6 @@
*
* FILE - <stdio.h>
* NULL - <stddef.h>
- * malloc() - <stdlib.h>
* memset(), memcpy() - <string.h>
* size_t - <sys/types.h>
* struct stat - <sys/stat.h>
@@ -62,7 +61,7 @@
*
* Additional important information:
*
- * 1. ALL string values in awk_value_t objects need to come from malloc().
+ * 1. ALL string values in awk_value_t objects need to come from api_malloc().
* Gawk will handle releasing the storage if necessary. This is slightly
* awkward, in that you can't take an awk_value_t that you got from gawk
* and reuse it directly, even for something that is conceptually pass
@@ -264,7 +263,7 @@ typedef struct awk_two_way_processor {
/* Current version of the API. */
enum {
GAWK_API_MAJOR_VERSION = 1,
- GAWK_API_MINOR_VERSION = 0
+ GAWK_API_MINOR_VERSION = 1
};
/* A number of typedefs related to different types of values. */
@@ -665,6 +664,16 @@ typedef struct gawk_api {
awk_bool_t (*api_release_flattened_array)(awk_ext_id_t id,
awk_array_t a_cookie,
awk_flat_array_t *data);
+
+ /*
+ * Hooks to provide access to gawk's memory allocation functions.
+ * This ensures that memory passed between gawk and the extension
+ * is allocated and released by the same library.
+ */
+ void *(*api_malloc)(size_t size);
+ void *(*api_calloc)(size_t nmemb, size_t size);
+ void *(*api_realloc)(void *ptr, size_t size);
+ void (*api_free)(void *ptr);
} gawk_api_t;
#ifndef GAWK /* these are not for the gawk code itself! */
@@ -736,6 +745,11 @@ typedef struct gawk_api {
#define release_flattened_array(array, data) \
(api->api_release_flattened_array(ext_id, array, data))
+#define gawk_malloc(size) (api->api_malloc(size))
+#define gawk_calloc(nmemb, size) (api->api_calloc(nmemb, size))
+#define gawk_realloc(ptr, size) (api->api_realloc(ptr, size))
+#define gawk_free(ptr) (api->api_free(ptr))
+
#define create_value(value, result) \
(api->api_create_value(ext_id, value,result))
@@ -747,13 +761,13 @@ typedef struct gawk_api {
#define emalloc(pointer, type, size, message) \
do { \
- if ((pointer = (type) malloc(size)) == 0) \
+ if ((pointer = (type) gawk_malloc(size)) == 0) \
fatal(ext_id, "%s: malloc of %d bytes failed\n", message, size); \
} while(0)
#define erealloc(pointer, type, size, message) \
do { \
- if ((pointer = (type) realloc(pointer, size)) == 0) \
+ if ((pointer = (type) gawk_realloc(pointer, size)) == 0) \
fatal(ext_id, "%s: realloc of %d bytes failed\n", message, size); \
} while(0)
diff --git a/helpers/ChangeLog b/helpers/ChangeLog
index 91d43464..17624c3f 100644
--- a/helpers/ChangeLog
+++ b/helpers/ChangeLog
@@ -1,3 +1,16 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
+2014-03-10 Arnold D. Robbins <arnold@skeeve.com>
+
+ * quoteconvert2.sh: Use .UTF-8 locales per request from
+ Michal Jaegermann.
+
+2014-03-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * quoteconvert2.sh, tryfmt.c, scanfmt.c: New files.
+
2013-12-21 Arnold D. Robbins <arnold@skeeve.com>
* testdfa.c: Fix some bugs and compiler warnings.
diff --git a/helpers/quoteconvert2.sh b/helpers/quoteconvert2.sh
new file mode 100755
index 00000000..63750a37
--- /dev/null
+++ b/helpers/quoteconvert2.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+# quoteconvert2.sh --- test locale dependent output of numbers
+# Michal Jaegermann, michal@harddata.com, 2014/Mar/1
+
+#AWK="../gawk"
+SCRIPT=`basename $0`
+
+if [ "$AWK" = "" ]
+then
+ echo $0: You must set AWK >&2
+ exit 1
+fi
+
+# The last entry on this list represents "a locale with a typo".
+
+llist="
+C
+en_US
+en_US.UTF-8
+de_DE
+de_DE.UTF-8
+fr_FR
+fr_FR.UTF-8
+pt_PT
+pt_PT.UTF-8
+pt_BR
+pt_BR.UTF-8
+ru_RU
+ru_RU.UTF-8
+pl_PX
+"
+
+error=0
+for lc in $llist ; do
+ wanted=`LC_ALL=$lc locale -c LC_NUMERIC 2>/dev/null | \
+ $AWK 'NR == 2 { decimal_point = $0 }
+ NR == 3 { thousands_sep = $0 }
+ END { printf("123%s456%s789%s15\n",
+ thousands_sep, thousands_sep, decimal_point)}'`
+ got=`LC_ALL=$lc $AWK "BEGIN {printf(\"%'.2f\n\",123456789.15)}"`
+ if [ "$wanted" != "$got" ] ; then
+ echo "$lc - unexpected output $got instead of $wanted"
+ error=1
+ fi
+done
+
+[ "$error" = 0 ] && echo ok || echo bummer
+exit $error
diff --git a/helpers/scanfmt.c b/helpers/scanfmt.c
new file mode 100644
index 00000000..2d7bd73a
--- /dev/null
+++ b/helpers/scanfmt.c
@@ -0,0 +1,22 @@
+/*
+ * Test out ' flag in different locales.
+ * Michal Jaegermann
+ * March, 2014
+ */
+
+#include <stdio.h>
+#include <locale.h>
+#include <stdlib.h>
+int
+main(int argc, char **argv)
+{
+ double t;
+
+ if (argc == 1)
+ return 1;
+
+ setlocale(LC_ALL, getenv("LC_ALL"));
+ sscanf(argv[1], "%lf", &t);
+ printf("%.2f\n", t);
+ return 0;
+}
diff --git a/helpers/tryfmt.c b/helpers/tryfmt.c
new file mode 100644
index 00000000..8166d3f1
--- /dev/null
+++ b/helpers/tryfmt.c
@@ -0,0 +1,23 @@
+/*
+ * Test out ' flag in different locales.
+ * Michal Jaegermann
+ * March, 2014
+ */
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+int
+main(int argc, char **argv)
+{
+ const char *fmt;
+ if (argc == 1)
+ fmt = "%'.2f";
+ else
+ fmt = argv[1];
+
+ setlocale(LC_ALL, getenv("LC_ALL"));
+ printf(fmt, 12456789.01);
+ printf("\n");
+ return 0;
+}
diff --git a/interpret.h b/interpret.h
index b855576a..0572583a 100644
--- a/interpret.h
+++ b/interpret.h
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 1986, 1988, 1989, 1991-2013 the Free Software Foundation, Inc.
+ * Copyright (C) 1986, 1988, 1989, 1991-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
diff --git a/io.c b/io.c
index 3e527da0..2a5c2e73 100644
--- a/io.c
+++ b/io.c
@@ -166,6 +166,12 @@
# define SOCKET int
#endif
+#else /* HAVE_SOCKETS */
+
+#ifndef closemaybesocket
+# define closemaybesocket(fd) close(fd)
+#endif
+
#endif /* HAVE_SOCKETS */
#ifndef HAVE_SETSID
@@ -3968,7 +3974,7 @@ init_output_wrapper(awk_output_buf_t *outbuf)
outbuf->mode = NULL;
outbuf->fp = NULL;
outbuf->opaque = NULL;
- outbuf->redirected = false;
+ outbuf->redirected = awk_false;
outbuf->gawk_fwrite = gawk_fwrite;
outbuf->gawk_fflush = gawk_fflush;
outbuf->gawk_ferror = gawk_ferror;
diff --git a/m4/ChangeLog b/m4/ChangeLog
index 9e2c279b..81fdcec0 100644
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,3 +1,13 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
+2014-03-11 Arnold D. Robbins <arnold@skeeve.com>
+
+ * readline.m4: Add manual check for *bsd* OS and add -ltermcap
+ if so. Hack, slash. Can you say "quick and dirty" boys and girls?
+ I knew you could.
+
2013-10-16 Arnold D. Robbins <arnold@skeeve.com>
* readline.m4: Add check for NULL return from readline() in
diff --git a/m4/readline.m4 b/m4/readline.m4
index af2745db..77ed8b25 100644
--- a/m4/readline.m4
+++ b/m4/readline.m4
@@ -1,5 +1,5 @@
dnl Check for readline and dependencies
-dnl Copyright (C) 2004, 2005, 2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2004, 2005, 2013, 2014 Free Software Foundation, Inc.
dnl
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
@@ -70,6 +70,10 @@ dnl action if cross compiling:
LIBS=$_readline_save_libs
if test $_found_readline = yes ; then
+ case $host_os in
+ *bsd* ) _combo="$_combo -ltermcap"
+ ;;
+ esac
AC_DEFINE(HAVE_LIBREADLINE,1,
[Define to 1 if you have a fully functional readline library.])
AC_SUBST(LIBREADLINE,$_combo)
diff --git a/main.c b/main.c
index 5d8e3a9a..c6fef2f1 100644
--- a/main.c
+++ b/main.c
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 1986, 1988, 1989, 1991-2013 the Free Software Foundation, Inc.
+ * Copyright (C) 1986, 1988, 1989, 1991-2014 the Free Software Foundation, Inc.
*
* This file is part of GAWK, the GNU implementation of the
* AWK Programming Language.
@@ -24,7 +24,7 @@
*/
/* FIX THIS BEFORE EVERY RELEASE: */
-#define UPDATE_YEAR 2013
+#define UPDATE_YEAR 2014
#include "awk.h"
#include "getopt.h"
diff --git a/missing_d/ChangeLog b/missing_d/ChangeLog
index f94c070d..70fbde64 100644
--- a/missing_d/ChangeLog
+++ b/missing_d/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
2013-05-09 Arnold D. Robbins <arnold@skeeve.com>
* 4.1.0: Release tar ball made.
diff --git a/pc/ChangeLog b/pc/ChangeLog
index 404bcb68..d8e60c98 100644
--- a/pc/ChangeLog
+++ b/pc/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
2014-02-03 Scott Deifik <scottd.mail@sbcglobal.net>
* Makefile.tst: Include original test/Makefile.in lines as
diff --git a/pc/Makefile b/pc/Makefile
index 9d98cb1c..d1c08069 100644
--- a/pc/Makefile
+++ b/pc/Makefile
@@ -6,6 +6,17 @@
# Tested with GNU make on Windows, OS/2 and DOS.
+# Copyright (C) 1989-2014 Free Software Foundation, Inc.
+
+# This Makefile is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
default:
@echo "Enter $(MAK) target "
@echo " where 'target' is chosen from "
diff --git a/pc/Makefile.tst b/pc/Makefile.tst
index cab49423..866b4692 100644
--- a/pc/Makefile.tst
+++ b/pc/Makefile.tst
@@ -1,6 +1,6 @@
# Makefile for GNU Awk test suite.
#
-# Copyright (C) 1988-2013 the Free Software Foundation, Inc.
+# Copyright (C) 1988-2014 the Free Software Foundation, Inc.
#
# This file is part of GAWK, the GNU implementation of the
# AWK Programming Language.
diff --git a/pc/config.h b/pc/config.h
index 1d9be09b..c5d78a96 100644
--- a/pc/config.h
+++ b/pc/config.h
@@ -423,7 +423,7 @@
#define PACKAGE_NAME "GNU Awk"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GNU Awk 4.1.0e"
+#define PACKAGE_STRING "GNU Awk 4.1.60"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gawk"
@@ -432,7 +432,7 @@
#define PACKAGE_URL "http://www.gnu.org/software/gawk/"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "4.1.0e"
+#define PACKAGE_VERSION "4.1.60"
/* Define to 1 if *printf supports %F format */
#undef PRINTF_HAS_F_FORMAT
@@ -494,7 +494,7 @@
/* Version number of package */
-#define VERSION "4.1.0e"
+#define VERSION "4.1.60"
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
diff --git a/po/ChangeLog b/po/ChangeLog
index 31d9fa1d..a9cca765 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
2013-05-09 Arnold D. Robbins <arnold@skeeve.com>
* 4.1.0: Release tar ball made.
diff --git a/po/ca.gmo b/po/ca.gmo
index 69ac0450..465f05a5 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 3d9564e7..444f09c4 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk 4.1.0b\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2014-01-14 22:23+0200\n"
-"PO-Revision-Date: 2014-02-10 07:25+0100\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
+"PO-Revision-Date: 2014-02-26 20:18+0100\n"
"Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
"Language: ca\n"
@@ -36,8 +36,8 @@ msgstr "s'ha intentat usar un parmetre escalar `%s' com a una matriu"
msgid "attempt to use scalar `%s' as an array"
msgstr "s'ha intentat usar la dada escalar `%s' com a una matriu"
-#: array.c:409 array.c:576 builtin.c:85 builtin.c:1599 builtin.c:1645
-#: builtin.c:1658 builtin.c:2086 builtin.c:2100 eval.c:1122 eval.c:1126
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
@@ -76,28 +76,36 @@ msgstr "asort: el primer argument no s una matriu"
#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
msgstr ""
+"asort: no es pot usar una submatriu com a primer argument per al segon "
+"argument"
#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
msgstr ""
+"asorti: no es pot usar una submatriu com a primer argument per al segon "
+"argument"
#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
msgstr ""
+"asort: no es pot usar una submatriu com a segon argument per al primer "
+"argument"
#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
msgstr ""
+"asorti: no es pot usar una submatriu com a segon argument per al primer "
+"argument"
#: array.c:1314
#, c-format
msgid "`%s' is invalid as a function name"
-msgstr ""
+msgstr "`%s' no s vlid com a nom de funci"
#: array.c:1318
#, c-format
msgid "sort comparison function `%s' is not defined"
-msgstr "la funci de commparaci d'ordenaci `%s' no est definida"
+msgstr "la funci de comparaci d'ordenaci `%s' no est definida"
#: awkgram.y:233
#, c-format
@@ -119,27 +127,32 @@ msgstr "`%s' s una funci interna, no pot ser redefinida"
#: awkgram.y:419
msgid "regexp constant `//' looks like a C++ comment, but is not"
-msgstr "la constant d'expressi regular `//' sembla un comentari en C++, per no ho s"
+msgstr ""
+"la constant d'expressi regular `//' sembla un comentari en C++, per no ho "
+"s"
#: awkgram.y:423
#, c-format
msgid "regexp constant `/%s/' looks like a C comment, but is not"
-msgstr "la constant d'expressi regular `/%s/' sembla un comentari en C, per no ho s"
+msgstr ""
+"la constant d'expressi regular `/%s/' sembla un comentari en C, per no ho "
+"s"
#: awkgram.y:515
#, c-format
msgid "duplicate case values in switch body: %s"
-msgstr ""
+msgstr "valors duplicats de casos al cos de l'expressi switch: %s"
#: awkgram.y:536
msgid "duplicate `default' detected in switch body"
msgstr ""
+"s'ha detectat el cas predeterminat `default' duplicat a l'expressi switch "
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr "no es permet `break' a fora d'un bucle o bifurcaci"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "no es permet `continue' a fora d'un bucle"
@@ -159,19 +172,21 @@ msgstr "`return' s usat fora del context d'una funci"
#: awkgram.y:922
msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr "el `print' simple en la regla BEGIN o END probablement ha de ser `print \"\"'"
+msgstr ""
+"el `print' simple en la regla BEGIN o END probablement ha de ser `print "
+"\"\"'"
#: awkgram.y:988 awkgram.y:1037
msgid "`delete' is not allowed with SYMTAB"
-msgstr ""
+msgstr "no es permet `delete' amb SYMTAB"
#: awkgram.y:990 awkgram.y:1039
msgid "`delete' is not allowed with FUNCTAB"
-msgstr ""
+msgstr "no es permet `delete' a FUNCTAB"
#: awkgram.y:1024 awkgram.y:1028
msgid "`delete(array)' is a non-portable tawk extension"
-msgstr "`delete(array)' s una extenci tawk no portable"
+msgstr "`delete(array)' s una extensi tawk no portable"
#: awkgram.y:1149
msgid "multistage two-way pipelines don't work"
@@ -187,11 +202,12 @@ msgstr "expressi regular a l'esquerra de l'operador `~' o `!~'"
#: awkgram.y:1291 awkgram.y:1442
msgid "old awk does not support the keyword `in' except after `for'"
-msgstr "l'antic awk no dna suport a la paraula clau `in' excepte desprs de `for'"
+msgstr ""
+"l'antic awk no dna suport a la paraula clau `in' excepte desprs de `for'"
#: awkgram.y:1301
msgid "regular expression on right of comparison"
-msgstr "expressi regular a la derta de la comparaci"
+msgstr "expressi regular a la dreta de la comparaci"
#: awkgram.y:1417
#, c-format
@@ -223,267 +239,273 @@ msgstr "les crides a funcions indirectes sn una extensi gawk"
#, c-format
msgid "can not use special variable `%s' for indirect function call"
msgstr ""
+"no es pot usar la variable especial `%s' per a una crida indirecta de funci"
#: awkgram.y:1698
msgid "invalid subscript expression"
-msgstr "expressi de subscript no vlida"
+msgstr "expressi de subndex no vlida"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:126
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
-msgstr "ADVERTIMENT: "
+msgstr "advertiment: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:158
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
-msgstr "Fatal: "
+msgstr "fatal: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "nova lnia inesperada o final d'una cadena de carcters"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:523 debug.c:539
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "no es pot obrir el fitxer font `%s' per a lectura (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "no es pot obrir la llibreria compartida `%s' per a lectura (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:135 debug.c:5206
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "motiu desconegut"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
-msgstr ""
+msgstr "no es pot incloure `%s' i usar-lo com un fitxer de programa"
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "ja s'ha incls el fitxer font `%s'"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, c-format
msgid "already loaded shared library `%s'"
-msgstr ""
+msgstr "ja s'ha carregat la biblioteca compartida `%s'"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "@include s una extensi de gawk"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
-msgstr ""
+msgstr "nom de fitxer buit desprs de @include"
-#: awkgram.y:2470
+#: awkgram.y:2494
msgid "@load is a gawk extension"
msgstr "@load s una extensi de gawk"
-#: awkgram.y:2476
+#: awkgram.y:2500
msgid "empty filename after @load"
-msgstr ""
+msgstr "fitxer buit desprs de @load"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "el text del programa en la lnia de comandaments est buit"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "no es pot llegir el fitxer font `%s' (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "el fitxer font `%s' est buit"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "el fitxer font no finalitza amb un retorn de carro"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr "expressi regular sense finalitzar acaba amb `\\' al final del fitxer"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr ""
+msgstr "%s: %d: el modificador regex tawk `/.../%c' no funciona a gawk"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr ""
+msgstr "el modificador regex tawk `/.../%c' no funciona a gawk"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "expressi regular sense finalitzar"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "expressi regular sense finalitzar al final del fitxer"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr "l's de `\\ #...' com a continuaci de lnia no s portable"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "la barra invertida no s l'ltim carcter en la lnia"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX no permet l'operador `**='"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "l'antic awk no suporta l'operador `**='"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX no permet l'operador `**'"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "l'antic awk no suporta l'operador `**='"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "l'operador `^=' no est suportat en l'antic awk"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "l'operador `^' no est suportat en l'antic awk"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "cadena sense finalitzar"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "carcter `%c' no vlid en l'expressi"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "`%s' s una extensi de gawk"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX no permet %s"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "`%s' no est suportat en l'antic awk"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
-msgstr "`goto' se considera nefast!\n"
+msgstr "`goto' es considera perjudicial!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d no s vlid com a nombre d'arguments per a %s"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
msgstr "%s: la cadena literal com a ltim argument de substituci no t efecte"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "%s el tercer parmetre no s un objecte intercanviable"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: el tercer argument s una extensi de gawk"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: el segon argument s una extensi de gawk"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
-msgstr "l's de dcgettext(_\"...\") no s correcte: elimineu el gui baix inicial"
+msgstr ""
+"l's de dcgettext(_\"...\") no s correcte: elimineu el gui baix inicial"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
-msgstr "l's de dcgettext(_\"...\") no s correcte: elimineu el gui baix inicial"
+msgstr ""
+"l's de dcgettext(_\"...\") no s correcte: elimineu el gui baix inicial"
-#: awkgram.y:3992
+#: awkgram.y:4016
msgid "index: regexp constant as second argument is not allowed"
-msgstr "ndex: no es permert una constant regexp com a segon argument"
+msgstr "ndex: no es permet una constant regexp com a segon argument"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "funci `%s': parmetre `%s' ofusca la variable global"
-#: awkgram.y:4102 debug.c:4041 debug.c:4084 debug.c:5204
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "no es pot obrir `%s' per a escriptura (%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "s'est enviant la llista de variables a l'eixida d'error estndard"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: tancament erroni (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
-msgstr "shadow_funcs() crida dos vegades!"
+msgstr "shadow_funcs() s'ha cridat dues vegades!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
-msgstr ""
+msgstr "hi ha hagut variables a l'ombra"
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "nom de la funci `%s' definida prviament"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr "funci `%s: no pot usar el nom de la funci com a parmetre"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
-msgstr "funci `%s': no es pot usar la variable especial `%s' com a un parmetre de funci"
+msgstr ""
+"funci `%s': no es pot usar la variable especial `%s' com a un parmetre de "
+"funci"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "funci `%s': parmetre #%d, `%s', duplica al parmetre #%d"
-#: awkgram.y:4359 awkgram.y:4365
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "es crida a la funci `%s' per no s'ha definit"
-#: awkgram.y:4369
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "la funci `%s' est definida per no s'ha cridat mai directament"
-#: awkgram.y:4401
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
-msgstr "l'expressi regular constant per al parmetre #%d condueix a un valor boole"
+msgstr ""
+"l'expressi regular constant per al parmetre #%d condueix a un valor boole"
-#: awkgram.y:4460
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -492,20 +514,23 @@ msgstr ""
"s'ha cridat a la funci `%s' amb espai entre el nom i el '(',\n"
"o s'ha usat com a variable o matriu"
-#: awkgram.y:4696
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "s'ha intentat una divisi per zero"
-#: awkgram.y:4705
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "s'ha intentat una divisi per zero en `%%'"
-#: awkgram.y:5025
-msgid "cannot assign a value to the result of a field post-increment expression"
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
msgstr ""
+"no es pot assignar un valor al resultat d'una expressi post-increment de "
+"camp"
-#: awkgram.y:5028
+#: awkgram.y:5052
#, c-format
msgid "invalid target of assignment (opcode %s)"
msgstr "dest no vlid d'assignaci (opcode %s)"
@@ -517,7 +542,7 @@ msgstr "%s a \"%s\" ha fallat (%s)"
#: builtin.c:134
msgid "standard output"
-msgstr "eixida estndard"
+msgstr "sortida estndard"
#: builtin.c:148
msgid "exp: received non-numeric argument"
@@ -531,12 +556,16 @@ msgstr "exp: l'argument %g est fora de rang"
#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
-msgstr "fflush: no es pot netejar: la canonada `%s' s'ha obert per a lectura, no per a escriptura"
+msgstr ""
+"fflush: no es pot netejar: la canonada `%s' s'ha obert per a lectura, no per "
+"a escriptura"
#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
-msgstr "fflush: no es pot netejar: el fitxer `%s' s'ha obert per a lectura, no per a escriptura"
+msgstr ""
+"fflush: no es pot netejar: el fitxer `%s' s'ha obert per a lectura, no per a "
+"escriptura"
#: builtin.c:244
#, c-format
@@ -578,22 +607,22 @@ msgstr "log: s'ha rebut l'argument negatiu %g"
#: builtin.c:776 builtin.c:781
msgid "fatal: must use `count$' on all formats or none"
-msgstr ""
+msgstr "fatal: s'ha d'usar `count$' a tots els format o a cap"
#: builtin.c:851
#, c-format
msgid "field width is ignored for `%%' specifier"
-msgstr ""
+msgstr "l'amplada de camp s'ignorar per a l'especificador `%%'"
#: builtin.c:853
#, c-format
msgid "precision is ignored for `%%' specifier"
-msgstr ""
+msgstr "la precisi s'ignorar per a l'especificador `%%'"
#: builtin.c:855
#, c-format
msgid "field width and precision are ignored for `%%' specifier"
-msgstr ""
+msgstr "l'amplada de camp i la precisi s'ignoraran per a l'especificador `%%'"
#: builtin.c:906
msgid "fatal: `$' is not permitted in awk formats"
@@ -606,7 +635,9 @@ msgstr "fatal: el recompte d'arguments amb `$' ha de ser > 0"
#: builtin.c:919
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
-msgstr "fatal: el recompte d'arguments %ld s major que el nombre total d'arguments proporcionats"
+msgstr ""
+"fatal: el recompte d'arguments %ld s major que el nombre total d'arguments "
+"proporcionats"
#: builtin.c:923
msgid "fatal: `$' not permitted after period in format"
@@ -614,299 +645,310 @@ msgstr "fatal: no es permet `$' desprs d'un punt en el format"
#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
-msgstr "fatal: no es proporciona `$' per a l'ample o precisi del camp de posici"
+msgstr ""
+"fatal: no es proporciona `$' per a l'ample o precisi del camp de posici"
-#: builtin.c:1011
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "`l' manca de significat en els formats awk; ser ignorat"
-#: builtin.c:1015
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
-msgstr "fatal: `l' no est perms en els formats POSIX de awk"
+msgstr "fatal: `l' no est perms en els formats POSIX de awk"
-#: builtin.c:1028
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "`L' manca de significat en els formats awk; ser ignorat"
-#: builtin.c:1032
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
-msgstr "fatal: `L' no est perms en els formats POSIX de awk"
+msgstr "fatal: `L' no est perms en els formats POSIX de awk"
-#: builtin.c:1045
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "`h' manca de significat en els formats awk; ser ignorat"
-#: builtin.c:1049
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
-msgstr "fatal: `h' no est perms en els formats POSIX de awk"
+msgstr "fatal: `h' no est perms en els formats POSIX de awk"
-#: builtin.c:1447
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
-msgstr ""
+msgstr "[s]printf: el valor %g est fora de rang per al format `%%%c'"
-#: builtin.c:1545
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
msgstr ""
+"s'ignorar el carcter especificador de format `%c': no s'ha convertit cap "
+"argument"
-#: builtin.c:1550
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr "fatal: no hi ha prou arguments per a satisfer el format d'una cadena"
-#: builtin.c:1552
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "^ desbordament per a aquest"
-#: builtin.c:1559
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: l'especificador de format no cont lletra de control"
-#: builtin.c:1562
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "s'han proporcionat masses arguments per a la cadena de format"
-#: builtin.c:1618
+#: builtin.c:1634
msgid "sprintf: no arguments"
msgstr "sprintf: sense arguments"
-#: builtin.c:1641 builtin.c:1652
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: sense arguments"
-#: builtin.c:1695
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: s'ha rebut un argument no numric"
-#: builtin.c:1699
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: cridat amb l'argument negatiu %g"
-#: builtin.c:1730
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: la longitud %g no s >= 1"
-#: builtin.c:1732
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: la longitud %g no s >= 0"
-#: builtin.c:1739
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: la longitud sobre un nombre no enter %g ser truncada"
-#: builtin.c:1744
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr ""
+"substr: la llargada %g s massa gran per a la indexaci de cadenes de "
+"carcters, es truncar a %g"
-#: builtin.c:1756
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: l'ndex d'inici %g no s vlid, usant 1"
-#: builtin.c:1761
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr "substr: l'ndex d'inici no enter %g ser truncat"
-#: builtin.c:1786
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: la cadena font s de longitud zero"
-#: builtin.c:1802
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: l'ndex d'inici %g sobrepassa l'acabament de la cadena"
-#: builtin.c:1810
+#: builtin.c:1826
#, c-format
-msgid "substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr "substr: la longitud %g a l'ndex d'inici %g excedeix la longitud del 1er argument (%lu)"
+msgid ""
+"substr: length %g at start index %g exceeds length of first argument (%lu)"
+msgstr ""
+"substr: la longitud %g a l'ndex d'inici %g excedeix la longitud del primer "
+"argument (%lu)"
-#: builtin.c:1884
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
-msgstr ""
+msgstr "strftime: el valor de format a PROCINFO[\"strftime\"] t tipus numric"
-#: builtin.c:1907
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: s'ha rebut un segon argument no numric"
-#: builtin.c:1911
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr ""
+"strftime: el segon argument s ms petit que 0 o massa gran per a time_t"
-#: builtin.c:1918
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: el primer argument rebut no s una cadena"
-#: builtin.c:1925
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: s'ha rebut una cadena de format buida"
-#: builtin.c:1991
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: s'ha rebut un argument que no s una cadena"
-#: builtin.c:2008
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
-msgstr ""
+msgstr "mktime: almenys un dels valors est forra del rang predeterminat"
-#: builtin.c:2043
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
-msgstr ""
+msgstr "la funci 'system' no es permet fora del mode entorn de proves"
-#: builtin.c:2048
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: s'ha rebut un argument que no s una cadena"
-#: builtin.c:2168
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "referncia a una variable sense inicialitzar `$%d'"
-#: builtin.c:2255
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: s'ha rebut un argument que no s una cadena"
-#: builtin.c:2289
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: s'ha rebut un argument que no s una cadena"
-#: builtin.c:2325 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: el primer argument rebut no s numric"
-#: builtin.c:2327 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: el segon argument rebut no s numric"
-#: builtin.c:2346
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: s'ha rebut un argument que no s numric"
-#: builtin.c:2362
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: s'ha rebut un argument que no s numric"
-#: builtin.c:2415 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: s'ha rebut un argument que no s numric"
-#: builtin.c:2446
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: el tercer argument no s una matriu"
-#: builtin.c:2718
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: el tercer argument de 0 s tractat com a 1"
-#: builtin.c:3014
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: el primer argument rebut no s numric"
-#: builtin.c:3016
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: el segon argument rebut no s numric"
-#: builtin.c:3022
+#: builtin.c:3038
#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr "lshift(%f, %f): els valors negatius donaran resultats estranys"
-#: builtin.c:3024
+#: builtin.c:3040
#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%f, %f): els valors fraccionaris sernn truncats"
-#: builtin.c:3026
+#: builtin.c:3042
#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
-msgstr "lshift(%f, %f): un valor de desplaament massa gran donar resultats estranys"
+msgstr ""
+"lshift(%f, %f): un valor de desplaament massa gran donar resultats estranys"
-#: builtin.c:3051
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: el primer argument rebut no s numric"
-#: builtin.c:3053
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: el segon argument rebut no s numric"
-#: builtin.c:3059
+#: builtin.c:3075
#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr "rshift(%f, %f): els valors negatius donaran resultats estranys"
-#: builtin.c:3061
+#: builtin.c:3077
#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%f, %f): els valors fraccionaris seran truncats"
-#: builtin.c:3063
+#: builtin.c:3079
#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
-msgstr "rshift(%f, %f): un valor de desplaament massa gran donar resultats estranys"
+msgstr ""
+"rshift(%f, %f): un valor de desplaament massa gran donar resultats estranys"
-#: builtin.c:3088 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
msgid "and: called with less than two arguments"
msgstr "and: cridat amb menys de dos arguments"
-#: builtin.c:3093
+#: builtin.c:3109
#, c-format
msgid "and: argument %d is non-numeric"
msgstr "exp: l'argument %d no s numric"
-#: builtin.c:3097
+#: builtin.c:3113
#, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr "and: l'argument %d amb valor negatiu %g donar resultats estranys"
-#: builtin.c:3120 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
msgid "or: called with less than two arguments"
msgstr "or: cridat amb menys de dos arguments"
-#: builtin.c:3125
+#: builtin.c:3141
#, c-format
msgid "or: argument %d is non-numeric"
msgstr "or: l'argument %d no s numric"
-#: builtin.c:3129
+#: builtin.c:3145
#, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr "or: l'argument %d amb valor negatiu %g donar resultats estranys"
-#: builtin.c:3151 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
msgid "xor: called with less than two arguments"
msgstr "xort: cridat amb menys de dos arguments"
-#: builtin.c:3157
+#: builtin.c:3173
#, c-format
msgid "xor: argument %d is non-numeric"
msgstr "xor: l'argument %d no s numric"
-#: builtin.c:3161
+#: builtin.c:3177
#, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor: l'argument %d del valor negatiu %g donar resultats estranys"
-#: builtin.c:3186 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: s'ha rebut un argument que no s numric"
-#: builtin.c:3192
+#: builtin.c:3208
#, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%f): el valor negatiu donar resultats estranys"
-#: builtin.c:3194
+#: builtin.c:3210
#, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%f): el valor fraccionari ser truncat"
-#: builtin.c:3363
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: `%s' no s una categoria local vlida"
@@ -914,7 +956,7 @@ msgstr "dcgettext: `%s' no s una categoria local vlida"
#: command.y:225
#, c-format
msgid "Type (g)awk statement(s). End with the command \"end\"\n"
-msgstr ""
+msgstr "Escriviu proposici(ns) g(awk). Termineu amb la instrucci \"end\"\n"
#: command.y:289
#, c-format
@@ -929,42 +971,44 @@ msgstr "info: opci no vlida - \"%s\""
#: command.y:321
#, c-format
msgid "source \"%s\": already sourced."
-msgstr ""
+msgstr "source \"%s\": ja s'ha utilitzat."
#: command.y:326
#, c-format
msgid "save \"%s\": command not permitted."
-msgstr ""
+msgstr "save \"%s\": ordre no permesa."
#: command.y:339
msgid "Can't use command `commands' for breakpoint/watchpoint commands"
msgstr ""
+"No es pot usar l'ordre `commands' per a ordres de punt d'interrupci/"
+"inspecci"
#: command.y:341
msgid "no breakpoint/watchpoint has been set yet"
-msgstr ""
+msgstr "no s'ha establert encara cap punt d'interrupci/verificaci"
#: command.y:343
msgid "invalid breakpoint/watchpoint number"
-msgstr ""
+msgstr "nmero de punt d'interrupci/inspecci no vlid"
#: command.y:348
#, c-format
msgid "Type commands for when %s %d is hit, one per line.\n"
-msgstr ""
+msgstr "Escriviu les ordres per a quan s'assoleix %s %d, una per lnia.\n"
#: command.y:350
#, c-format
msgid "End with the command \"end\"\n"
-msgstr ""
+msgstr "Termineu amb l'ordre \"end\"\n"
#: command.y:357
msgid "`end' valid only in command `commands' or `eval'"
-msgstr ""
+msgstr "`end' s vlid sols a les ordres `commands' o `eval'"
#: command.y:367
msgid "`silent' valid only in command `commands'"
-msgstr ""
+msgstr "`silent' s vlid sols a l'ordre `commands'"
#: command.y:373
#, c-format
@@ -973,7 +1017,7 @@ msgstr "tra: opci no vlida - \"%s\""
#: command.y:387
msgid "condition: invalid breakpoint/watchpoint number"
-msgstr ""
+msgstr "condici: nmero de punt d'interrupci/inspecci no vlid"
#: command.y:449
msgid "argument not a string"
@@ -982,12 +1026,12 @@ msgstr "l'argument no s una cadena de carcters"
#: command.y:459 command.y:464
#, c-format
msgid "option: invalid parameter - \"%s\""
-msgstr ""
+msgstr "opci: parmetre no vlid - \"%s\""
#: command.y:474
#, c-format
msgid "no such function - \"%s\""
-msgstr ""
+msgstr "no existeix aquesta funci - \"%s\""
#: command.y:531
#, c-format
@@ -1001,194 +1045,247 @@ msgstr "especificaci no vlida de rang: %d - %d"
#: command.y:659
msgid "non-numeric value for field number"
-msgstr ""
+msgstr "valor no numric per al nmero de camp"
#: command.y:680 command.y:687
msgid "non-numeric value found, numeric expected"
-msgstr ""
+msgstr "s'ha trobat un valor no numric, s'esperava un valor numric"
#: command.y:712 command.y:718
msgid "non-zero integer value"
-msgstr ""
+msgstr "valor enter no zero"
#: command.y:817
-msgid "backtrace [N] - print trace of all or N innermost (outermost if N < 0) frames."
+msgid ""
+"backtrace [N] - print trace of all or N innermost (outermost if N < 0) "
+"frames."
msgstr ""
+"backtrace [N] - imprimeix la traa de tot els N marcs interiors (exteriors "
+"si N < 0)."
#: command.y:819
-msgid "break [[filename:]N|function] - set breakpoint at the specified location."
+msgid ""
+"break [[filename:]N|function] - set breakpoint at the specified location."
msgstr ""
+"break [[fitxer:]N|funci] - estableix el punt d'interrupci a la ubicaci "
+"especificada."
#: command.y:821
msgid "clear [[filename:]N|function] - delete breakpoints previously set."
msgstr ""
+"clear [[fitxer:]N|funci] - suprimeix els punts establerts prviament."
#: command.y:823
-msgid "commands [num] - starts a list of commands to be executed at a breakpoint(watchpoint) hit."
+msgid ""
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
msgstr ""
+"commands [num] - inicia una llista d'ordres a executar quan s'arribi a un "
+"punt d'interrupci/inspecci."
#: command.y:825
msgid "condition num [expr] - set or clear breakpoint or watchpoint condition."
msgstr ""
+"condition num [expr] - estableix o neteja una condici de punt d'interrupci "
+"o d'inspecci."
#: command.y:827
msgid "continue [COUNT] - continue program being debugged."
-msgstr ""
+msgstr "continue [RECOMPTE] - continua el programa que s'est depurant."
#: command.y:829
msgid "delete [breakpoints] [range] - delete specified breakpoints."
msgstr ""
+"delete [punts d'interrupci] [rang] - esborra els punts d'interrupci "
+"especificats."
#: command.y:831
msgid "disable [breakpoints] [range] - disable specified breakpoints."
msgstr ""
+"disable [punts d'interrupci] [rang] - deshabilita els punts d'interrupci "
+"especificats."
#: command.y:833
msgid "display [var] - print value of variable each time the program stops."
msgstr ""
+"display [var] - imprimeix el valor de la variable cada cop que el programa "
+"s'atura"
#: command.y:835
msgid "down [N] - move N frames down the stack."
-msgstr ""
+msgstr "down [N] - mou N marcs cap a baix a la pila."
#: command.y:837
msgid "dump [filename] - dump instructions to file or stdout."
msgstr ""
+"dump [filename] - aboca les instruccions a un fitxer o a la sortida "
+"estndard."
#: command.y:839
msgid "enable [once|del] [breakpoints] [range] - enable specified breakpoints."
msgstr ""
+"enable [once|del] [punts d'interrupci] [rang] - habilita els punts "
+"d'interrupci especificats."
#: command.y:841
msgid "end - end a list of commands or awk statements."
-msgstr ""
+msgstr "end - finalitza una llista de ordres o declaracions awk."
#: command.y:843
msgid "eval stmt|[p1, p2, ...] - evaluate awk statement(s)."
-msgstr ""
+msgstr "eval stmt|[p1, p2, ...] - avalua la(es) declaraci(ns) awk."
#: command.y:845
msgid "finish - execute until selected stack frame returns."
msgstr ""
+"finish - executa fins que hi hagi un retorn del marc de pila seleccionat."
#: command.y:847
msgid "frame [N] - select and print stack frame number N."
-msgstr ""
+msgstr "frame [N] - selecciona i imprimeix el marc de pila amb nmero N."
#: command.y:849
msgid "help [command] - print list of commands or explanation of command."
-msgstr ""
+msgstr "help [ordre] - imprimeix una llista d'ordres o una explica de l'ordre."
#: command.y:851
msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT."
msgstr ""
+"ignore N RECOMPTE - estableix ignore-count del punt d'interrupci nmero N "
+"fins RECOMPTE."
#: command.y:853
-msgid "info topic - source|sources|variables|functions|break|frame|args|locals|display|watch."
+msgid ""
+"info topic - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch."
msgstr ""
+"info topic - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch."
#: command.y:855
msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)."
msgstr ""
+"list [-|+|[fitxer:]nmero-de-lnia|funci|rang] - fes una llista la(es) "
+"lnia(es) especificada(es)."
#: command.y:857
msgid "next [COUNT] - step program, proceeding through subroutine calls."
msgstr ""
+"next [RECOMPTE] - avana el programa pas per pas, tot procedint a travs de "
+"les crides de subrutines."
#: command.y:859
-msgid "nexti [COUNT] - step one instruction, but proceed through subroutine calls."
+msgid ""
+"nexti [COUNT] - step one instruction, but proceed through subroutine calls."
msgstr ""
+"nexti [RECOMPTE] - avana una instrucci, per procedeix a travs de crides "
+"de subrutines."
#: command.y:861
msgid "option [name[=value]] - set or display debugger option(s)."
msgstr ""
+"option [nom[=valor]] - estableix o mostra la(es) opci(ns) del depurador."
#: command.y:863
msgid "print var [var] - print value of a variable or array."
-msgstr ""
+msgstr "print var [var] - imprimeix el valor de la variable o matriu."
#: command.y:865
msgid "printf format, [arg], ... - formatted output."
-msgstr ""
+msgstr "printf format, [arg], ... - sortida amb format."
#: command.y:867
msgid "quit - exit debugger."
-msgstr ""
+msgstr "quit - surt del depurador."
#: command.y:869
msgid "return [value] - make selected stack frame return to its caller."
msgstr ""
+"return [valor] - fes que el marc seleccionat de pila retorni a l'element que "
+"l'ha cridat."
#: command.y:871
msgid "run - start or restart executing program."
-msgstr ""
+msgstr "run - inicia o reinicia el programa que s'est executant."
#: command.y:874
msgid "save filename - save commands from the session to file."
-msgstr ""
+msgstr "save filename - desa les ordres de la sessi a un fitxer."
#: command.y:877
msgid "set var = value - assign value to a scalar variable."
-msgstr ""
+msgstr "set var = valor - assigna un valor a una variable escalar."
#: command.y:879
-msgid "silent - suspends usual message when stopped at a breakpoint/watchpoint."
+msgid ""
+"silent - suspends usual message when stopped at a breakpoint/watchpoint."
msgstr ""
+"silent - suspn els missatges habituals quan s'autra a un punt d'interrupci/"
+"inspecci."
#: command.y:881
msgid "source file - execute commands from file."
-msgstr ""
+msgstr "source file - executa una ordre des d'un fitxer."
#: command.y:883
msgid "step [COUNT] - step program until it reaches a different source line."
msgstr ""
+"step [RECOMPTE] - avana pas per pas pel programa fins que arribi a una "
+"lnia diferent de la font."
#: command.y:885
msgid "stepi [COUNT] - step one instruction exactly."
-msgstr ""
+msgstr "stepi [RECOMPTE] - avana exactament una instrucci."
#: command.y:887
msgid "tbreak [[filename:]N|function] - set a temporary breakpoint."
msgstr ""
+"tbreak [[fitxer:]N|funci] - estableix un punt temporari d'interrupci."
#: command.y:889
msgid "trace on|off - print instruction before executing."
-msgstr ""
+msgstr "trace on|off - imprimeix la instrucci abans d'executar-la."
#: command.y:891
msgid "undisplay [N] - remove variable(s) from automatic display list."
msgstr ""
+"undisplay [N] - remou la(es) variable(s) de la llista automtica "
+"visualitzaci."
#: command.y:893
-msgid "until [[filename:]N|function] - execute until program reaches a different line or line N within current frame."
+msgid ""
+"until [[filename:]N|function] - execute until program reaches a different "
+"line or line N within current frame."
msgstr ""
+"until [[fitxer:]N|funci] - executa fins que el programa arribi a una lnia "
+"diferent a la lnia N dins del marc actual."
#: command.y:895
msgid "unwatch [N] - remove variable(s) from watch list."
-msgstr ""
+msgstr "unwatch [N] - remou la(es) variable(s) de la llista d'inspecci."
#: command.y:897
msgid "up [N] - move N frames up the stack."
-msgstr ""
+msgstr "up [N] - mou-te N marcs cap a dalt de la pila."
#: command.y:899
msgid "watch var - set a watchpoint for a variable."
-msgstr ""
+msgstr "watch var - estableix un punt d'inspecci per a una variable."
#: command.y:1011 debug.c:401 msg.c:135
#, c-format
msgid "error: "
-msgstr "Error: "
+msgstr "error: "
#: command.y:1051
#, c-format
msgid "can't read command (%s)\n"
-msgstr "no es pot llegir la instraucci (%s)\n"
+msgstr "no es pot llegir l'ordre (%s)\n"
#: command.y:1065
#, c-format
msgid "can't read command (%s)"
-msgstr "no es pot llegir la instrucci (%s)"
+msgstr "no es pot llegir l'ordre (%s)"
#: command.y:1116
msgid "invalid character in command"
@@ -1197,12 +1294,12 @@ msgstr "carcter no vlida en la instucci"
#: command.y:1152
#, c-format
msgid "unknown command - \"%.*s\", try help"
-msgstr ""
+msgstr "ordre desconeguda - \"%.*s\", prova l'ajuda"
#: command.y:1222
#, c-format
msgid "%s"
-msgstr ""
+msgstr "%s"
#: command.y:1284
msgid "invalid character"
@@ -1211,39 +1308,43 @@ msgstr "carcter no vlid"
#: command.y:1455
#, c-format
msgid "undefined command: %s\n"
-msgstr ""
+msgstr "ordre no definida: %s\n"
#: debug.c:252
msgid "set or show the number of lines to keep in history file."
msgstr ""
+"estableix o mostra el nmero de lnies a mantenir al fitxer d'histria."
#: debug.c:254
msgid "set or show the list command window size."
-msgstr ""
+msgstr "estableix o mostra la mida de la finestra de llista d'ordres."
#: debug.c:256
msgid "set or show gawk output file."
-msgstr ""
+msgstr "estableix o mostra el fitxer de sortida gawk."
#: debug.c:258
msgid "set or show debugger prompt."
-msgstr ""
+msgstr "estableix o mostra l'indicador del depurador."
#: debug.c:260
msgid "(un)set or show saving of command history (value=on|off)."
msgstr ""
+"estableix(anulla) o mostra el desament de la histria d'ordres (valor=on|"
+"off)."
#: debug.c:262
msgid "(un)set or show saving of options (value=on|off)."
-msgstr ""
+msgstr "estableix(anulla) o mostra el desament d'opcions (valor=on|off)."
#: debug.c:264
msgid "(un)set or show instruction tracing (value=on|off)."
msgstr ""
+"estableix(anulla) o mostra el seguiment d'instruccions (valor=on|off)."
#: debug.c:345
msgid "program not running."
-msgstr ""
+msgstr "el programa no s'est executant."
#: debug.c:448 debug.c:606
#, c-format
@@ -1257,7 +1358,7 @@ msgstr "el fitxer font `%s' est buit\n"
#: debug.c:480
msgid "no current source file."
-msgstr ""
+msgstr "no hi ha un fitxer font."
#: debug.c:505
#, c-format
@@ -1268,81 +1369,87 @@ msgstr "no es pot trobar el fitxer font `%s' (%s)"
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
msgstr ""
+"ADVERTIMENT: el fitxer font `%s' s'ha modificat des de la compilaci del "
+"programa.\n"
#: debug.c:551
#, c-format
msgid "line number %d out of range; `%s' has %d lines"
-msgstr ""
+msgstr "lnia nmero %d fora de rang; `%s' t %d lnies"
#: debug.c:611
#, c-format
msgid "unexpected eof while reading file `%s', line %d"
-msgstr "final de fitxer no esperat quan s'estava llegint el fitxer `%s', lina %d"
+msgstr ""
+"final de fitxer no esperat quan s'estava llegint el fitxer `%s', lnia %d"
#: debug.c:620
#, c-format
msgid "source file `%s' modified since start of program execution"
msgstr ""
+"el fitxer font `%s' s'ha modificat des de l'inici de l'execuci del programa"
#: debug.c:732
#, c-format
msgid "Current source file: %s\n"
-msgstr ""
+msgstr "Fitxer font actual: %s\n"
#: debug.c:733
#, c-format
msgid "Number of lines: %d\n"
-msgstr ""
+msgstr "Nombre de lnies: %d\n"
#: debug.c:740
#, c-format
msgid "Source file (lines): %s (%d)\n"
-msgstr ""
+msgstr "Fitxer font (lnies): %s (%d)\n"
#: debug.c:754
msgid ""
"Number Disp Enabled Location\n"
"\n"
msgstr ""
+"Ubicaci habilitada per nmero disp\n"
+"\n"
#: debug.c:765
#, c-format
msgid "\tno of hits = %ld\n"
-msgstr ""
+msgstr "\tnmero de accessos = %ld\n"
#: debug.c:767
#, c-format
msgid "\tignore next %ld hit(s)\n"
-msgstr ""
+msgstr "\tignora el(s) prxim(s) %ld accs(sos)\n"
#: debug.c:769 debug.c:909
#, c-format
msgid "\tstop condition: %s\n"
-msgstr ""
+msgstr "\tcondici d'aturada: %s\n"
#: debug.c:771 debug.c:911
msgid "\tcommands:\n"
-msgstr ""
+msgstr "\tordres:\n"
#: debug.c:793
#, c-format
msgid "Current frame: "
-msgstr ""
+msgstr "Marc actual: "
#: debug.c:796
#, c-format
msgid "Called by frame: "
-msgstr ""
+msgstr "Cridat per marc: "
#: debug.c:800
#, c-format
msgid "Caller of frame: "
-msgstr ""
+msgstr "Cridador de marc: "
#: debug.c:818
#, c-format
msgid "None in main().\n"
-msgstr ""
+msgstr "Cap a main().\n"
#: debug.c:848
msgid "No arguments.\n"
@@ -1350,46 +1457,54 @@ msgstr "Sense arguments.\n"
#: debug.c:849
msgid "No locals.\n"
-msgstr ""
+msgstr "No hi ha locals.\n"
#: debug.c:857
msgid ""
"All defined variables:\n"
"\n"
msgstr ""
+"Totes les variables definides:\n"
+"\n"
#: debug.c:867
msgid ""
"All defined functions:\n"
"\n"
msgstr ""
+"Totes les funcions definides:\n"
+"\n"
#: debug.c:886
msgid ""
"Auto-display variables:\n"
"\n"
msgstr ""
+"Mostra automticament les variables:\n"
+"\n"
#: debug.c:889
msgid ""
"Watch variables:\n"
"\n"
msgstr ""
+"Inspecciona les variables:\n"
+"\n"
#: debug.c:1029
#, c-format
msgid "no symbol `%s' in current context\n"
-msgstr ""
+msgstr "no hi ha el smbol `%s' al context actual\n"
#: debug.c:1041 debug.c:1427
#, c-format
msgid "`%s' is not an array\n"
-msgstr ""
+msgstr "`%s' no s una matriu\n"
#: debug.c:1055
#, c-format
msgid "$%ld = uninitialized field\n"
-msgstr ""
+msgstr "$%ld = camp sense inicialitzar\n"
#: debug.c:1076
#, c-format
@@ -1404,12 +1519,12 @@ msgstr "[\"%s\"] no est a la matriu `%s'\n"
#: debug.c:1175
#, c-format
msgid "`%s[\"%s\"]' is not an array\n"
-msgstr ""
+msgstr "`%s[\"%s\"]' no s una matriu\n"
#: debug.c:1236 debug.c:4964
#, c-format
msgid "`%s' is not a scalar variable"
-msgstr ""
+msgstr "`%s' no s una variable escalar"
#: debug.c:1258 debug.c:4994
#, c-format
@@ -1429,20 +1544,20 @@ msgstr "`%s' s una funci"
#: debug.c:1465
#, c-format
msgid "watchpoint %d is unconditional\n"
-msgstr ""
+msgstr "el punt d'inspecci %d s incondicional\n"
#: debug.c:1499
#, c-format
msgid "No display item numbered %ld"
-msgstr ""
+msgstr "No hi ha un element de visualitzaci numerat %ld"
#: debug.c:1502
#, c-format
msgid "No watch item numbered %ld"
-msgstr ""
+msgstr "No hi ha un element d'inspecci numerat %ld"
#: debug.c:1528
-#, fuzzy, c-format
+#, c-format
msgid "%d: [\"%s\"] not in array `%s'\n"
msgstr "%d: [\"%s\"] no est a la matriu `%s'\n"
@@ -1454,11 +1569,12 @@ msgstr "s'ha intentat usar una dada escalar com a una matriu"
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
msgstr ""
+"El punt d'inspecci %d s'ha esborrat perqu el parmetre est fora d'abast.\n"
#: debug.c:1867
#, c-format
msgid "Display %d deleted because parameter is out of scope.\n"
-msgstr ""
+msgstr "La vista %d s'ha suprimit perqu el parmetre est fora de l'abast.\n"
#: debug.c:1900
#, c-format
@@ -1468,17 +1584,17 @@ msgstr "al fitxer `%s', lnia %d\n"
#: debug.c:1921
#, c-format
msgid " at `%s':%d"
-msgstr ""
+msgstr " a `%s':%d"
#: debug.c:1937 debug.c:2000
#, c-format
msgid "#%ld\tin "
-msgstr ""
+msgstr "#%ld\ten "
#: debug.c:1974
#, c-format
msgid "More stack frames follow ...\n"
-msgstr ""
+msgstr "Segueixen ms marcs de pila ...\n"
#: debug.c:2017
msgid "invalid frame number"
@@ -1488,21 +1604,27 @@ msgstr "nmero no vlid de rang"
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
+"Nota: el punt d'interrupci %d (habilitat, ignora els %ld accessos "
+"segents), tamb s'ha establert a %s:%d"
#: debug.c:2207
#, c-format
msgid "Note: breakpoint %d (enabled), also set at %s:%d"
msgstr ""
+"Nota: el punt d'interrupci %d (habilitat), tamb s'ha establert a %s:%d"
#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
+"Nota: el punt d'interrupci %d (deshabilitat, ignora els %ld accessos "
+"segents), tamb s'ha establert a %s:%d"
#: debug.c:2221
#, c-format
msgid "Note: breakpoint %d (disabled), also set at %s:%d"
msgstr ""
+"Nota: el punt d'interrupci %d (deshabilitat), tamb s'ha establert a %s:%d"
#: debug.c:2238
#, c-format
@@ -1512,7 +1634,7 @@ msgstr "Punt d'interrupci %d establert al fitxer `%s', lnia %d\n"
#: debug.c:2340
#, c-format
msgid "Can't set breakpoint in file `%s'\n"
-msgstr ""
+msgstr "No es pot establir el punt d'interrupci al fitxer `%s'\n"
#: debug.c:2369 debug.c:2492 debug.c:3350
#, c-format
@@ -1522,32 +1644,34 @@ msgstr "el nmero de lnia %d al fitxer `%s' est fora de rang"
#: debug.c:2373
#, c-format
msgid "Can't find rule!!!\n"
-msgstr ""
+msgstr "No es pot trobar la regla!!!\n"
#: debug.c:2375
#, c-format
msgid "Can't set breakpoint at `%s':%d\n"
-msgstr ""
+msgstr "No es pot establir el punt d'interrupci a `%s':%d\n"
#: debug.c:2387
#, c-format
msgid "Can't set breakpoint in function `%s'\n"
-msgstr ""
+msgstr "No est pot establir el punt d'interrupci a la funci `%s'\n"
#: debug.c:2403
#, c-format
msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
msgstr ""
+"el punt d'interrupci %d establert al fitxer `%s', lnia %d s "
+"incondicional\n"
#: debug.c:2508 debug.c:2530
#, c-format
msgid "Deleted breakpoint %d"
-msgstr ""
+msgstr "Punt interrupci suprimit %d"
#: debug.c:2514
#, c-format
msgid "No breakpoint(s) at entry to function `%s'\n"
-msgstr ""
+msgstr "No hi ha punt(s) d'interrupci a l'entrada a la funci `%s'\n"
#: debug.c:2541
#, c-format
@@ -1556,113 +1680,115 @@ msgstr "No hi ha un punt d'interrupci al fitxer `%s', lnia #%d\n"
#: debug.c:2596 debug.c:2637 debug.c:2657 debug.c:2700
msgid "invalid breakpoint number"
-msgstr ""
+msgstr "nmero no vlid de punt d'interrupci"
#: debug.c:2612
msgid "Delete all breakpoints? (y or n) "
-msgstr ""
+msgstr "Suprimir tots els punts d'interrupci (s o n) "
#: debug.c:2613 debug.c:2923 debug.c:2976
msgid "y"
-msgstr ""
+msgstr "s"
#: debug.c:2662
#, c-format
msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n"
msgstr ""
+"S'ignoraran el(s) %ld creuament(s) segent(s) del punt d'interrupci %d.\n"
#: debug.c:2666
#, c-format
msgid "Will stop next time breakpoint %d is reached.\n"
msgstr ""
+"S'aturar la prxima vegada que s'assoleixi el punt d'interrupci %d.\n"
#: debug.c:2783
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
-msgstr ""
+msgstr "Sols es poden depurar programes que tenen l'opci `-f'.\n"
#: debug.c:2908
#, c-format
msgid "Failed to restart debugger"
-msgstr ""
+msgstr "No s'ha pogut reiniciar el depurador."
#: debug.c:2922
msgid "Program already running. Restart from beginning (y/n)? "
-msgstr ""
+msgstr "El programa ja est corrent. S'ha de reiniciar des del principi (s/n)?"
#: debug.c:2926
#, c-format
msgid "Program not restarted\n"
-msgstr ""
+msgstr "No s'ha reiniciat el programa\n"
#: debug.c:2936
#, c-format
msgid "error: cannot restart, operation not allowed\n"
-msgstr ""
+msgstr "error: no es pot reiniciar, l'operaci no est permesa\n"
#: debug.c:2942
#, c-format
msgid "error (%s): cannot restart, ignoring rest of the commands\n"
-msgstr ""
+msgstr "error (%s): no es pot reiniciar, s'ignoraran la resta de les ordres\n"
#: debug.c:2950
#, c-format
msgid "Starting program: \n"
-msgstr ""
+msgstr "S'est iniciant el programa: \n"
#: debug.c:2959
#, c-format
msgid "Program exited %s with exit value: %d\n"
-msgstr ""
+msgstr "El programa ha tingut la sortida %s amb el valor de sortida: %d\n"
#: debug.c:2975
msgid "The program is running. Exit anyway (y/n)? "
-msgstr ""
+msgstr "El programa s'est executant. Voleu sortir tot i aix (s/n)? "
#: debug.c:3010
#, c-format
msgid "Not stopped at any breakpoint; argument ignored.\n"
-msgstr ""
+msgstr "No s'ha detingut a cap punt d'interrupci; s'ignorar l'argument.\n"
#: debug.c:3015
#, c-format
msgid "invalid breakpoint number %d."
-msgstr ""
+msgstr "nmero no vlid de punt d'interrupci %d."
#: debug.c:3020
#, c-format
msgid "Will ignore next %ld crossings of breakpoint %d.\n"
-msgstr ""
+msgstr "S'ignoraran els prxims %ld creuaments de punt d'interrupci %d.\n"
#: debug.c:3207
#, c-format
msgid "'finish' not meaningful in the outermost frame main()\n"
-msgstr ""
+msgstr "'finish' no t significat al marc ms extern main()\n"
#: debug.c:3212
#, c-format
msgid "Run till return from "
-msgstr ""
+msgstr "Executa fins retornar de "
#: debug.c:3255
#, c-format
msgid "'return' not meaningful in the outermost frame main()\n"
-msgstr ""
+msgstr "'return' no t significat al marc ms extern main()\n"
#: debug.c:3369
#, c-format
msgid "Can't find specified location in function `%s'\n"
-msgstr ""
+msgstr "No es pot trobar la ubicaci especificada a la funci `%s'\n"
#: debug.c:3377
#, c-format
msgid "invalid source line %d in file `%s'"
-msgstr ""
+msgstr "lnia %d no vlida de font al fitxer `%s'"
#: debug.c:3392
#, c-format
msgid "Can't find specified location %d in file `%s'\n"
-msgstr ""
+msgstr "No es pot trobar la ubicaci especificada %d al fitxer `%s'\n"
#: debug.c:3424
#, c-format
@@ -1672,30 +1798,30 @@ msgstr "l'element no est a la matriu\n"
#: debug.c:3424
#, c-format
msgid "untyped variable\n"
-msgstr ""
+msgstr "variable sense tipus\n"
#: debug.c:3466
#, c-format
msgid "Stopping in %s ...\n"
-msgstr ""
+msgstr "S'est aturant a %s ...\n"
#: debug.c:3543
#, c-format
msgid "'finish' not meaningful with non-local jump '%s'\n"
-msgstr ""
+msgstr "'finish' no t significat amb salt no local '%s'\n"
#: debug.c:3550
#, c-format
msgid "'until' not meaningful with non-local jump '%s'\n"
-msgstr ""
+msgstr "'until' no t significat amb salt no local '%s'\n"
#: debug.c:4185
msgid "\t------[Enter] to continue or q [Enter] to quit------"
-msgstr ""
+msgstr "\t------[Intro] per continuar o q [Intro] per sortir------"
#: debug.c:4186
msgid "q"
-msgstr ""
+msgstr "q"
#: debug.c:5001
#, c-format
@@ -1705,67 +1831,67 @@ msgstr "[\"%s\"] no est a la matriu `%s'"
#: debug.c:5207
#, c-format
msgid "sending output to stdout\n"
-msgstr ""
+msgstr "s'est enviant la sortida a la sortida estndard\n"
#: debug.c:5247
msgid "invalid number"
-msgstr ""
+msgstr "nmero no vlid"
#: debug.c:5381
#, c-format
msgid "`%s' not allowed in current context; statement ignored"
-msgstr ""
+msgstr "`%s' no est perms al context actual; s'ignorar la declaraci"
#: debug.c:5389
msgid "`return' not allowed in current context; statement ignored"
-msgstr ""
+msgstr "`return' no est perms al context actual; s'ignorar la declaraci"
#: debug.c:5590
#, c-format
msgid "No symbol `%s' in current context"
-msgstr ""
+msgstr "No hi ha un smbol `%s' al context actual"
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1191
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr "[ sense aparellar"
-#: dfa.c:1052
+#: dfa.c:1174
msgid "invalid character class"
msgstr "classe no vlida de carcters"
-#: dfa.c:1228
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
-msgstr ""
+msgstr "la sintaxi de la classe de carcters s [[:espai:]], no [:espai:]"
-#: dfa.c:1280
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr "seqncia d'escapada \\ sense finalitzar"
-#: dfa.c:1427 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Contingut no vlid de \\{\\}"
-#: dfa.c:1430 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "L'expressi regular s massa gran"
-#: dfa.c:1847
+#: dfa.c:1936
msgid "unbalanced ("
msgstr "( sense aparellar"
-#: dfa.c:1973
+#: dfa.c:2062
msgid "no syntax specified"
-msgstr "no s'ha especificat una sintaxis"
+msgstr "no s'ha especificat una sintaxi"
-#: dfa.c:1981
+#: dfa.c:2070
msgid "unbalanced )"
msgstr ") sense aparellar"
#: eval.c:394
#, c-format
msgid "unknown nodetype %d"
-msgstr "tipo de node %d desconegut"
+msgstr "tipus de node %d desconegut"
#: eval.c:405 eval.c:419
#, c-format
@@ -1775,7 +1901,7 @@ msgstr "opcode %d desconegut"
#: eval.c:416
#, c-format
msgid "opcode %s not an operator or keyword"
-msgstr ""
+msgstr "l'opcode %s no s un operador o una paraula clau"
#: eval.c:472
msgid "buffer overflow in genflags2str"
@@ -1789,7 +1915,7 @@ msgid ""
"\n"
msgstr ""
"\n"
-"\t# Pila de Crides a les Funcions:\n"
+"\t# Pila de crida a les funcions:\n"
"\n"
#: eval.c:704
@@ -1803,7 +1929,7 @@ msgstr "`BINMODE' s una extensi de gawk"
#: eval.c:794
#, c-format
msgid "BINMODE value `%s' is invalid, treated as 3"
-msgstr ""
+msgstr "El valor BINMODE `%s' no s vlid, es tractar com 3"
#: eval.c:885
#, c-format
@@ -1850,7 +1976,7 @@ msgstr "s'ha cridat a la funci `%s' amb ms arguments dels declarats"
#: eval.c:1473
#, c-format
msgid "unwind_stack: unexpected type `%s'"
-msgstr ""
+msgstr "unwind_stack: tipus no esperat `%s'"
#: eval.c:1569
msgid "division by zero attempted in `/='"
@@ -1863,7 +1989,7 @@ msgstr "s'ha intentat una divisi per zero en `%%='"
#: ext.c:89 ext.c:171
msgid "extensions are not allowed in sandbox mode"
-msgstr ""
+msgstr "les extensions no estan permeses en mode de proves"
#: ext.c:92
msgid "-l / @load are gawk extensions"
@@ -1871,7 +1997,7 @@ msgstr "-l / @load sn extensions gawk"
#: ext.c:95
msgid "load_ext: received NULL lib_name"
-msgstr ""
+msgstr "load_ext: s'ha rebut lib_name nul"
#: ext.c:98
#, c-format
@@ -1880,8 +2006,10 @@ msgstr "load_ext: no es pot obrir la llibreria `%s' (%s)\n"
#: ext.c:104
#, c-format
-msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
+msgid ""
+"load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
msgstr ""
+"load_ext: biblioteca `%s': no defineix `plugin_is_GPL_compatible' (%s)\n"
#: ext.c:110
#, c-format
@@ -1892,6 +2020,7 @@ msgstr "load_ext: biblioteca `%s': no es pot cridar a la funci `%s' (%s)\n"
#, c-format
msgid "load_ext: library `%s' initialization routine `%s' failed\n"
msgstr ""
+"load_ext: la biblioteca `%s' amb rutina d'inicialitzaci `%s' ha fallat\n"
#: ext.c:174
msgid "`extension' is a gawk extension"
@@ -1899,7 +2028,7 @@ msgstr "`extension' s una extensi gawk"
#: ext.c:177
msgid "extension: received NULL lib_name"
-msgstr ""
+msgstr "extension: s'ha rebut lib_name nul"
#: ext.c:180
#, c-format
@@ -1908,8 +2037,10 @@ msgstr "extension: no es pot obrir la biblioteca `%s' (%s)"
#: ext.c:186
#, c-format
-msgid "extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-msgstr "extension: biblioteca `%s': no defineix `plugin_is_GPL_compatible' (%s)"
+msgid ""
+"extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
+msgstr ""
+"extension: biblioteca `%s': no defineix `plugin_is_GPL_compatible' (%s)"
#: ext.c:190
#, c-format
@@ -1918,12 +2049,12 @@ msgstr "extension: biblioteca `%s': no es pot cridar a la funci `%s' (%s)"
#: ext.c:221
msgid "make_builtin: missing function name"
-msgstr ""
+msgstr "make_builtin: nom absent de funci"
#: ext.c:236
#, c-format
msgid "make_builtin: can't redefine function `%s'"
-msgstr ""
+msgstr "make_builtin: no es pot redefinir la funci `%s'"
#: ext.c:240
#, c-format
@@ -1938,16 +2069,16 @@ msgstr "make_builtin: nom de la funci `%s' definida prviament"
#: ext.c:246
#, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
-msgstr ""
+msgstr "make_builtin: no es pot usar el nom intern `%s' com a nom de funci"
#: ext.c:249 ext.c:304
#, c-format
msgid "make_builtin: negative argument count for function `%s'"
-msgstr ""
+msgstr "make_builtin: recompte negatiu d'arguments per a la funci `%s'"
#: ext.c:276
msgid "extension: missing function name"
-msgstr ""
+msgstr "extension: nom absent de funci"
#: ext.c:279 ext.c:283
#, c-format
@@ -1972,7 +2103,7 @@ msgstr "extension: nom de la funci `%s' definida prviament"
#: ext.c:301
#, c-format
msgid "extension: can't use gawk built-in `%s' as function name"
-msgstr ""
+msgstr "extension: no es pot usar el nom intern `%s' com a nom de funci"
#: ext.c:375
#, c-format
@@ -1987,16 +2118,19 @@ msgstr "funci `%s': falta l'argument #%d"
#: ext.c:395
#, c-format
msgid "function `%s': argument #%d: attempt to use scalar as an array"
-msgstr "funci `%s': argument #%d: s'ha intentat usar una dada escalar `com a una matriu"
+msgstr ""
+"funci `%s': argument #%d: s'ha intentat usar una dada escalar com a una "
+"matriu"
#: ext.c:399
#, c-format
msgid "function `%s': argument #%d: attempt to use array as a scalar"
msgstr ""
+"funci `%s': argument #%d: s'ha intentat usar una matriu com a un escalar"
#: ext.c:413
msgid "dynamic loading of library not supported"
-msgstr ""
+msgstr "no est suportada la crrega dinmica de la biblioteca"
#: extension/filefuncs.c:159
msgid "chdir: called with incorrect number of arguments, expecting 1"
@@ -2005,7 +2139,7 @@ msgstr "chdir: cridat amb un nombre incorrecte d'arguments, s'esperava 1"
#: extension/filefuncs.c:439
#, c-format
msgid "stat: unable to read symbolic link `%s'"
-msgstr ""
+msgstr "stat: no s'ha pogut llegir l'enlla simblic `%s'"
#: extension/filefuncs.c:472
msgid "stat: called with wrong number of arguments"
@@ -2013,12 +2147,12 @@ msgstr "stat: cridat amb un nombre incorrecte d'arguments"
#: extension/filefuncs.c:479
msgid "stat: bad parameters"
-msgstr "stata: argumetns dolents"
+msgstr "stata: arguments dolents"
#: extension/filefuncs.c:533
#, c-format
msgid "fts init: could not create variable %s"
-msgstr ""
+msgstr "fts init: no s'ha pogut crear la variable %s"
#: extension/filefuncs.c:554
msgid "fts is not supported on this system"
@@ -2026,28 +2160,28 @@ msgstr "fts no est suportat en aquest sistema"
#: extension/filefuncs.c:573
msgid "fill_stat_element: could not create array"
-msgstr ""
+msgstr "fill_stat_element: no s'ha pogut crear la matriu"
#: extension/filefuncs.c:582
msgid "fill_stat_element: could not set element"
-msgstr ""
+msgstr "fill_stat_element: no s'ha pogut establir l'element"
#: extension/filefuncs.c:597
msgid "fill_path_element: could not set element"
-msgstr ""
+msgstr "fill_path_element: no s'ha pogut establir l'element"
#: extension/filefuncs.c:613
msgid "fill_error_element: could not set element"
-msgstr ""
+msgstr "fill_error_element: no s'ha pogut establir l'element"
#: extension/filefuncs.c:660 extension/filefuncs.c:707
msgid "fts-process: could not create array"
-msgstr ""
+msgstr "fts-process: no s'ha pogut crear la matriu"
#: extension/filefuncs.c:670 extension/filefuncs.c:717
#: extension/filefuncs.c:735
msgid "fts-process: could not set element"
-msgstr ""
+msgstr "fts-process: no s'ha pogut establir l'element"
#: extension/filefuncs.c:784
msgid "fts: called with incorrect number of arguments, expecting 3"
@@ -2067,15 +2201,15 @@ msgstr "fts: el tercer parmeter es dolent"
#: extension/filefuncs.c:806
msgid "fts: could not flatten array\n"
-msgstr ""
+msgstr "fts: no s'ha pogut aplanar la matriu\n"
#: extension/filefuncs.c:824
msgid "fts: ignoring sneaky FTS_NOSTAT flag. nyah, nyah, nyah."
-msgstr ""
+msgstr "fts: s'ignorar l'indicador FTS_NOSTAT furtiu. T'he enxampat!"
#: extension/filefuncs.c:841
msgid "fts: clear_array() failed\n"
-msgstr ""
+msgstr "fts: clear_array() ha fallat\n"
#: extension/fnmatch.c:112
msgid "fnmatch: called with less than three arguments"
@@ -2095,24 +2229,24 @@ msgstr "fnmatch: no s'ha pogut obtenir el segon argument"
#: extension/fnmatch.c:128
msgid "fnmatch: could not get third argument"
-msgstr ""
+msgstr "fnmatch: no s'ha pogut obtenir el tercer argument"
#: extension/fnmatch.c:141
msgid "fnmatch is not implemented on this system\n"
-msgstr ""
+msgstr "fnmatch no est implementat en aquest sistema\n"
#: extension/fnmatch.c:173
msgid "fnmatch init: could not add FNM_NOMATCH variable"
-msgstr ""
+msgstr "fnmatch init: no s'ha pogut afegir la variable FNM_NOMATCH"
#: extension/fnmatch.c:183
#, c-format
msgid "fnmatch init: could not set array element %s"
-msgstr ""
+msgstr "fnmatch init: no s'ha pogut establir l'element de matriu %s"
#: extension/fnmatch.c:193
msgid "fnmatch init: could not install FNM array"
-msgstr ""
+msgstr "fnmatch init: no s'ha pogut installar la matriu FNM"
#: extension/fork.c:81
msgid "fork: called with too many arguments"
@@ -2120,7 +2254,7 @@ msgstr "fork: s'ha cridat amb massa arguments"
#: extension/fork.c:94
msgid "fork: PROCINFO is not an array!"
-msgstr ""
+msgstr "fork: PROCINFO no s una matriu!"
#: extension/fork.c:118
msgid "waitpid: called with too many arguments"
@@ -2136,21 +2270,25 @@ msgstr "wait: s'ha cridat amb massa arguments"
#: extension/inplace.c:130
msgid "inplace_begin: in-place editing already active"
-msgstr ""
+msgstr "inplace_begin: l'edici in situ ja est activa"
#: extension/inplace.c:133 extension/inplace.c:207
#, c-format
msgid "inplace_begin: expects 2 arguments but called with %d"
-msgstr ""
+msgstr "inplace_begin: s'esperaven 2 arguments per s'ha cridat amb %d"
#: extension/inplace.c:136
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
msgstr ""
+"inplace_begin: no es pot obtenir el primer argument com nom de fitxer cadena "
+"de carcters"
#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
msgstr ""
+"inplace_begin: s'est deshabilitant l'edici in situ per al nom de fitxer no "
+"vlid `%s'"
#: extension/inplace.c:151
#, c-format
@@ -2160,12 +2298,12 @@ msgstr "implace_begin: No es pot obrir `%s' (%s)"
#: extension/inplace.c:158
#, c-format
msgid "inplace_begin: `%s' is not a regular file"
-msgstr ""
+msgstr "inplace_begin: `%s' no s un fitxer regular"
#: extension/inplace.c:169
#, c-format
msgid "inplace_begin: mkstemp(`%s') failed (%s)"
-msgstr ""
+msgstr "inplace_begin: mkstemp(`%s') ha fallat (%s)"
#: extension/inplace.c:178
#, c-format
@@ -2175,12 +2313,12 @@ msgstr "inplace_begin: ha fallat chmod (%s)"
#: extension/inplace.c:185
#, c-format
msgid "inplace_begin: dup(stdout) failed (%s)"
-msgstr ""
+msgstr "inplace_begin: dup(stdout) ha fallat(%s)"
#: extension/inplace.c:188
#, c-format
msgid "inplace_begin: dup2(%d, stdout) failed (%s)"
-msgstr ""
+msgstr "inplace_begin: dup2(%d, stdout) ha fallat (%s)"
#: extension/inplace.c:191
#, c-format
@@ -2190,15 +2328,17 @@ msgstr "inplace begin: close(%d) ha fallat (%s)"
#: extension/inplace.c:210
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
msgstr ""
+"inplace_end: no es pot obtenir el primer argument com un nom de fitxer "
+"cadena de carcters"
#: extension/inplace.c:217
msgid "inplace_end: in-place editing not active"
-msgstr ""
+msgstr "inplace_end: no est activa l'edici in situ"
#: extension/inplace.c:223
#, c-format
msgid "inplace_end: dup2(%d, stdout) failed (%s)"
-msgstr ""
+msgstr "inplace_end: dup2(%d, stdout) ha fallat (%s)"
#: extension/inplace.c:226
#, c-format
@@ -2208,7 +2348,7 @@ msgstr "inplace_end: close(%d) ha fallat (%s)"
#: extension/inplace.c:230
#, c-format
msgid "inplace_end: fsetpos(stdout) failed (%s)"
-msgstr ""
+msgstr "inplace_end: fsetpos(stdout) ha fallat (%s)"
#: extension/inplace.c:243
#, c-format
@@ -2244,16 +2384,16 @@ msgstr "chr: s'ha cridat amb cap argument"
msgid "chr: called with inappropriate argument(s)"
msgstr "chr: s'ha cridat amb argument(s) no apropiat(s)"
-#: extension/readdir.c:277
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
-msgstr ""
+msgstr "dir_take_control_of: opendir/fdopendir ha fallat: %s"
-#: extension/readfile.c:84
+#: extension/readfile.c:113
msgid "readfile: called with too many arguments"
msgstr "readfile: s'ha cridat amb massa arguments"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
msgid "readfile: called with no arguments"
msgstr "readfile: s'ha cridat amb cap argument"
@@ -2274,12 +2414,12 @@ msgstr "do_writea: l'argument 1 no s una matriu\n"
#: extension/rwarray.c:184
#, c-format
msgid "write_array: could not flatten array\n"
-msgstr ""
+msgstr "write_array: no s'ha pogut aplanar la matriu\n"
#: extension/rwarray.c:198
#, c-format
msgid "write_array: could not release flattened array\n"
-msgstr ""
+msgstr "write_array: no s'ha pogut alliberar la matriu aplanada\n"
#: extension/rwarray.c:280
msgid "reada: called with too many arguments"
@@ -2298,36 +2438,36 @@ msgstr "do_reada: l'argument 1 no s una matriu\n"
#: extension/rwarray.c:337
#, c-format
msgid "do_reada: clear_array failed\n"
-msgstr ""
+msgstr "do_reada: clear_array ha fallat\n"
#: extension/rwarray.c:374
#, c-format
msgid "read_array: set_array_element failed\n"
-msgstr ""
+msgstr "read_array: set_array_element ha fallat\n"
-#: extension/time.c:106
+#: extension/time.c:113
msgid "gettimeofday: ignoring arguments"
msgstr "gettimeofday: s'estan ignorant els arguments"
-#: extension/time.c:137
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
-msgstr ""
+msgstr "gettimeofday: no est suportat en aquesta plataforma"
-#: extension/time.c:158
+#: extension/time.c:165
msgid "sleep: called with too many arguments"
msgstr "sleep: s'ha cridat amb massa arguments"
-#: extension/time.c:161
+#: extension/time.c:168
msgid "sleep: missing required numeric argument"
msgstr "sleep: no hi ha un argument numric requerit"
-#: extension/time.c:167
+#: extension/time.c:174
msgid "sleep: argument is negative"
msgstr "sleep: l'argument s negatiu"
-#: extension/time.c:201
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
-msgstr ""
+msgstr "sleep: no est suportat en aquesta plataforma"
#: field.c:345
msgid "NF set to negative value"
@@ -2348,14 +2488,17 @@ msgstr "split: el segon argument no s una matriu"
#: field.c:993
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
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
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:1032
msgid "split: null string for third arg is a gawk extension"
@@ -2376,14 +2519,17 @@ msgstr "patsplit: el segon argument no s una matriu"
#: field.c:1087
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:1092
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:1095
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:1133
msgid "`FIELDWIDTHS' is a gawk extension"
@@ -2392,7 +2538,7 @@ msgstr "`FIELDWIDTHS' s una extensi de gawk"
#: field.c:1197
#, c-format
msgid "invalid FIELDWIDTHS value, near `%s'"
-msgstr ""
+msgstr "valor FIELDWIDTHS no vlid, a prop de `%s'"
#: field.c:1270
msgid "null string for `FS' is a gawk extension"
@@ -2408,33 +2554,33 @@ msgstr "`FPAT' s una extensi gawk"
#: gawkapi.c:146
msgid "awk_value_to_node: received null retval"
-msgstr ""
+msgstr "awk_value_to_node: s'ha rebut retval nul"
#: gawkapi.c:384
msgid "node_to_awk_value: received null node"
-msgstr ""
+msgstr "node_to_awk_value: s'ha rebut un node nul"
#: gawkapi.c:387
msgid "node_to_awk_value: received null val"
-msgstr ""
+msgstr "node_to_awk_value: s'ha rebut un valor nul"
-#: gawkapi.c:808
+#: gawkapi.c:807
msgid "remove_element: received null array"
-msgstr ""
+msgstr "remove_element: s'ha rebut una matriu nulla"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
-msgstr ""
+msgstr "remove_element: s'ha rebut un subndex nul"
-#: gawkapi.c:948
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
-msgstr ""
+msgstr "api_flatten_array: no s'ha pogut convertir l'ndex %d\n"
-#: gawkapi.c:953
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
-msgstr ""
+msgstr "api_flatten_array: no s'ha pogut convertir el valor %d\n"
#: getopt.c:604 getopt.c:633
#, c-format
@@ -2494,7 +2640,7 @@ msgstr "%s: l'opci `-W %s' requereix un argument\n"
#: io.c:392
#, c-format
msgid "command line argument `%s' is a directory: skipped"
-msgstr ""
+msgstr "l'argument `%s' de lnia d'ordres s un directori: s'ignorar"
#: io.c:395 io.c:513
#, c-format
@@ -2508,7 +2654,7 @@ msgstr "la finalitzaci del descriptor fd %d (`%s') ha fallat (%s)"
#: io.c:716
msgid "redirection not allowed in sandbox mode"
-msgstr ""
+msgstr "no est permeten redireccions en mode de proves"
#: io.c:750
#, c-format
@@ -2523,7 +2669,9 @@ msgstr "l'expressi per a la redirecci `%s' t un valor de cadena nulla"
#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
-msgstr "el fitxer `%s' per a la redirecci `%s' pot ser resultat d'una expressi lgica"
+msgstr ""
+"el fitxer `%s' per a la redirecci `%s' pot ser resultat d'una expressi "
+"lgica"
#: io.c:809
#, c-format
@@ -2543,7 +2691,9 @@ msgstr "no es pot obrir la canonada `%s' per a l'entrada (%s)"
#: io.c:904
#, c-format
msgid "can't open two way pipe `%s' for input/output (%s)"
-msgstr "no es pot obrir una canonada bidireccional `%s' per a les entrades/eixides (%s)"
+msgstr ""
+"no es pot obrir una canonada bidireccional `%s' per a les entrades/eixides "
+"(%s)"
#: io.c:986
#, c-format
@@ -2556,8 +2706,11 @@ msgid "can't redirect to `%s' (%s)"
msgstr "no es pot redirigir cap a `%s' (%s)"
#: io.c:1040
-msgid "reached system limit for open files: starting to multiplex file descriptors"
-msgstr "s'ha arribat al lmit del sistema per a fitxers oberts: es comenar a multiplexar els descriptors de fitxer"
+msgid ""
+"reached system limit for open files: starting to multiplex file descriptors"
+msgstr ""
+"s'ha arribat al lmit del sistema per a fitxers oberts: es comenar a "
+"multiplexar els descriptors de fitxer"
#: io.c:1056
#, c-format
@@ -2584,17 +2737,18 @@ msgstr "finalitzaci d'una redirecci que no s'ha obert"
#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr "close: la redirecci `%s' no s'obre amb `|&', s'ignora el segon argument"
+msgstr ""
+"close: la redirecci `%s' no s'obre amb `|&', s'ignora el segon argument"
#: io.c:1222
#, c-format
msgid "failure status (%d) on pipe close of `%s' (%s)"
-msgstr "estaus de falla (%d) en la finalitzaci de la canonada `%s' (%s)"
+msgstr "estat de fallada (%d) en la finalitzaci de la canonada `%s' (%s)"
#: io.c:1225
#, c-format
msgid "failure status (%d) on file close of `%s' (%s)"
-msgstr "estatus de falla (%d) en la finalitzaci del fitxer `%s' (%s)"
+msgstr "estat de falla (%d) en la finalitzaci del fitxer `%s' (%s)"
#: io.c:1245
#, c-format
@@ -2619,12 +2773,12 @@ msgstr "no s'aporta la finalitzaci explcita del fitxer `%s'"
#: io.c:1284 io.c:1342 main.c:864 main.c:906
#, c-format
msgid "error writing standard output (%s)"
-msgstr "error a l'escriure en l'eixida estndard (%s)"
+msgstr "error en escriure a la sortida estndard (%s)"
#: io.c:1289 io.c:1348 main.c:866
#, c-format
msgid "error writing standard error (%s)"
-msgstr "error a l'escriure en l'eixida d'error estndard (%s)"
+msgstr "error en escriure a la sortida d'error estndard (%s)"
#: io.c:1297
#, c-format
@@ -2639,17 +2793,17 @@ msgstr "la neteja de la canonada per al co-procs de `%sx' ha fallat (%s)."
#: io.c:1303
#, c-format
msgid "file flush of `%s' failed (%s)."
-msgstr "la neteja del fitxer `%sx' ha fallat (%s)."
+msgstr "la neteja del fitxer `%s' ha fallat (%s)."
#: io.c:1420
-#, fuzzy, c-format
+#, c-format
msgid "local port %s invalid in `/inet'"
-msgstr "port local no vlid en `%s'"
+msgstr "port local %s no vlid a `/inet'"
#: io.c:1438
#, c-format
msgid "remote host and port information (%s, %s) invalid"
-msgstr ""
+msgstr "amfitri remot i informaci de port (%s, %s) no vlids"
#: io.c:1590
#, c-format
@@ -2679,44 +2833,54 @@ msgid "could not open `%s', mode `%s'"
msgstr "no es pot obrir `%s', mode `%s'"
#: io.c:1917
-#, fuzzy, c-format
+#, c-format
msgid "close of master pty failed (%s)"
-msgstr "ha fallat la finalitzaci de la canonada (%s)"
+msgstr "ha fallat el tancament del pty mestre (%s)"
#: io.c:1919 io.c:2105 io.c:2305
#, c-format
msgid "close of stdout in child failed (%s)"
-msgstr "ha fallat la finalitzaci de l'eixida estndard en els processos fills (%s)"
+msgstr ""
+"ha fallat la finalitzaci de la sortida estndard en els processos fills (%s)"
#: io.c:1922
-#, fuzzy, c-format
+#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
-msgstr "ha fallat la redirecci cap a l'eixida estndard dels processos fills (dup: %s)"
+msgstr ""
+"ha fallat el trasllat del pty esclau cap a l'eixida estndard dels processos "
+"fills (dup: %s)"
#: io.c:1924 io.c:2110
#, c-format
msgid "close of stdin in child failed (%s)"
-msgstr "ha fallat la finalitzaci de l'entrada estndard en els processos fills (%s)"
+msgstr ""
+"ha fallat la finalitzaci de l'entrada estndard en els processos fills (%s)"
#: io.c:1927
-#, fuzzy, c-format
+#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
-msgstr "ha fallat la redirecci cap a l'entrada estndard dels processos fills (dup: %s)"
+msgstr ""
+"ha fallat el trasllat del pty esclau cap a l'entrada estndard dels "
+"processos fills (dup: %s)"
#: io.c:1929 io.c:1951
-#, fuzzy, c-format
+#, c-format
msgid "close of slave pty failed (%s)"
-msgstr "ha fallat la finalitzaci de la canonada (%s)"
+msgstr "ha fallat el tancament del pty esclau (%s)"
#: io.c:2040 io.c:2108 io.c:2276 io.c:2308
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
-msgstr "ha fallat la redirecci cap a l'eixida estndard dels processos fills (dup: %s)"
+msgstr ""
+"ha fallat la redirecci cap a l'eixida estndard dels processos fills (dup: "
+"%s)"
#: io.c:2047 io.c:2113
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
-msgstr "ha fallat la redirecci cap a l'entrada estndard dels processos fills (dup: %s)"
+msgstr ""
+"ha fallat la redirecci cap a l'entrada estndard dels processos fills (dup: "
+"%s)"
#: io.c:2073 io.c:2298
msgid "restoring stdout in parent process failed\n"
@@ -2747,45 +2911,54 @@ msgstr "no es pot crear el procs fill per a `%s' (fork: %s)"
#: io.c:2790
msgid "register_input_parser: received NULL pointer"
-msgstr ""
+msgstr "register_input_parser: s'ha rebut un punter nul"
#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
msgstr ""
+"l'analitzador d'entrades `%s' est en conflicte amb analitzador d'entrades `"
+"%s' installat prviament"
#: io.c:2825
#, c-format
msgid "input parser `%s' failed to open `%s'"
-msgstr ""
+msgstr "l'analitzador d'entrada `%s' no ha pogut obrir `%s'"
#: io.c:2845
msgid "register_output_wrapper: received NULL pointer"
-msgstr ""
+msgstr "register_output_wrapper: s'ha rebut un punter nul"
#: io.c:2873
#, c-format
-msgid "output wrapper `%s' conflicts with previously installed output wrapper `%s'"
+msgid ""
+"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
msgstr ""
+"l'embolcall de sortida `%s' est en conflicte amb l'embolcall de sortida `"
+"%s' installat prviament"
#: io.c:2880
#, c-format
msgid "output wrapper `%s' failed to open `%s'"
-msgstr ""
+msgstr "l'embolcall de sortida `%s' no ha pogut obrir `%s'"
#: io.c:2901
msgid "register_output_processor: received NULL pointer"
-msgstr ""
+msgstr "register_output_processor: s'ha rebut un punter nul"
#: io.c:2930
#, c-format
-msgid "two-way processor `%s' conflicts with previously installed two-way processor `%s'"
+msgid ""
+"two-way processor `%s' conflicts with previously installed two-way processor "
+"`%s'"
msgstr ""
+"el processsador de dues vies `%s' est en conflicte amb el processador de "
+"dues vies `%s' installat prviament"
#: io.c:2939
#, c-format
msgid "two way processor `%s' failed to open `%s'"
-msgstr ""
+msgstr "el processador de dues vies `%s' no ha pogut obrir `%s'"
#: io.c:3064
#, c-format
@@ -2794,21 +2967,19 @@ msgstr "el fitxer de dades `%s' est buit"
#: io.c:3106 io.c:3114
msgid "could not allocate more input memory"
-msgstr ""
+msgstr "no s'ha pogut assignar ms memria d'entrada"
#: io.c:3682
msgid "multicharacter value of `RS' is a gawk extension"
msgstr "el valor multicarcter de `RS' s una extensi de gawk"
#: io.c:3771
-#, fuzzy
msgid "IPv6 communication is not supported"
-msgstr "les comunicacions TCP/IP no estan suportades"
+msgstr "la comunicaci IPv6 no est suportada"
#: main.c:405
-#, fuzzy
msgid "empty argument to `-e/--source' ignored"
-msgstr "s'igonar l'argument buit per a l'opci `--source'"
+msgstr "s'ignonar l'argument buit de `-e/--source'"
#: main.c:495
#, c-format
@@ -2822,7 +2993,8 @@ msgstr "%s: l'opci requereix un argument -- %c\n"
#: main.c:562
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
-msgstr "la variable d'entorn `POSIXLY_CORRECT' est establerta: usant `--posix'"
+msgstr ""
+"la variable d'entorn `POSIXLY_CORRECT' est establerta: usant `--posix'"
#: main.c:568
msgid "`--posix' overrides `--traditional'"
@@ -2833,27 +3005,26 @@ msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
msgstr "`--posix' i `--traditional' solapen a `--non-decimal-data'"
#: main.c:583
-#, fuzzy, c-format
+#, c-format
msgid "running %s setuid root may be a security problem"
msgstr "executar %s com a setuid root pot ser un problema de seguretat"
#: main.c:588
-#, fuzzy
msgid "`--posix' overrides `--characters-as-bytes'"
-msgstr "`--posix' solapa a `--traditional'"
+msgstr "`--posix' anulla a `--characters-as-bytes'"
#: main.c:647
-#, fuzzy, c-format
+#, c-format
msgid "can't set binary mode on stdin (%s)"
-msgstr "no es pot establir el mode en l'entrada estndard (%s)"
+msgstr "no es pot establir el mode binari en l'entrada estndard (%s)"
#: main.c:650
-#, fuzzy, c-format
+#, c-format
msgid "can't set binary mode on stdout (%s)"
msgstr "no es pot establir el mode en l'eixida estndard (%s)"
#: main.c:652
-#, fuzzy, c-format
+#, c-format
msgid "can't set binary mode on stderr (%s)"
msgstr "no es pot establir el mode en l'eixida d'error estndard (%s)"
@@ -2872,9 +3043,8 @@ msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
msgstr "s: %s [opcions d'estil POSIX o GNU] [--] %cprograma%c fitxer ...\n"
#: main.c:806
-#, fuzzy
msgid "POSIX options:\t\tGNU long options: (standard)\n"
-msgstr "Opcions POSIX:\t\tOpcions llargues GNU:\n"
+msgstr "Opcions POSIX:\t\tOpcions llargues GNU: (estndard)\n"
#: main.c:807
msgid "\t-f progfile\t\t--file=progfile\n"
@@ -2889,126 +3059,108 @@ msgid "\t-v var=val\t\t--assign=var=val\n"
msgstr "\t-v var=valor\t\t--assign=var=valor\n"
#: main.c:810
-#, fuzzy
msgid "Short options:\t\tGNU long options: (extensions)\n"
-msgstr "Opcions POSIX:\t\tOpcions llargues GNU:\n"
+msgstr "Opcions curtes:\t\tOpcions llargues GNU: (extensions)\n"
#: main.c:811
msgid "\t-b\t\t\t--characters-as-bytes\n"
-msgstr ""
+msgstr "\t-b\t\t\t--characters-as-bytes\n"
#: main.c:812
-#, fuzzy
msgid "\t-c\t\t\t--traditional\n"
-msgstr "\t-W traditional\t\t--traditional\n"
+msgstr "\t-c\t\t\t--traditional\n"
#: main.c:813
-#, fuzzy
msgid "\t-C\t\t\t--copyright\n"
-msgstr "\t-W copyright\t\t--copyright\n"
+msgstr "\t-C\t\t\t--copyright\n"
#: main.c:814
-#, fuzzy
msgid "\t-d[file]\t\t--dump-variables[=file]\n"
-msgstr "\t-W dump-variables[=fitxer] --dump-variables[=fitxer]\n"
+msgstr "\t-d[file]\t\t--dump-variables[=file]\n"
#: main.c:815
-#, fuzzy
msgid "\t-D[file]\t\t--debug[=file]\n"
-msgstr "\t-W profile[=fitxer]\t--profile[=fitxer]\n"
+msgstr "\t-D[file]\t\t--debug[=file]\n"
#: main.c:816
-#, fuzzy
msgid "\t-e 'program-text'\t--source='program-text'\n"
-msgstr "\t-W source=text_prog\t--source=text_prog\n"
+msgstr "\t-e 'program-text'\t--source='program-text'\n"
#: main.c:817
-#, fuzzy
msgid "\t-E file\t\t\t--exec=file\n"
-msgstr "\t-f fitx_prog\t\t--file=fitx_prog\n"
+msgstr "\t-E file\t\t\t--exec=file\n"
#: main.c:818
-#, fuzzy
msgid "\t-g\t\t\t--gen-pot\n"
-msgstr "\t-W gen-po\t\t--gen-po\n"
+msgstr "\t-g\t\t\t--gen-pot\n"
#: main.c:819
-#, fuzzy
msgid "\t-h\t\t\t--help\n"
-msgstr "\t-W help\t\t\t--help\n"
+msgstr "\t-h\t\t\t--help\n"
#: main.c:820
msgid "\t-i includefile\t\t--include=includefile\n"
-msgstr ""
+msgstr "\t-i includefile\t\t--include=fitxer a incloure\n"
#: main.c:821
msgid "\t-l library\t\t--load=library\n"
-msgstr ""
+msgstr "\t-l library\t\t--load=biblioteca\n"
#: main.c:822
-#, fuzzy
msgid "\t-L [fatal]\t\t--lint[=fatal]\n"
-msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n"
+msgstr "\t-L [fatal]\t\t--lint[=fatal]\n"
#: main.c:823
-#, fuzzy
msgid "\t-n\t\t\t--non-decimal-data\n"
-msgstr "\t-W non-decimal-data\t--non-decimal-data\n"
+msgstr "\t-n\t\t\t--non-decimal-data\n"
#: main.c:824
msgid "\t-M\t\t\t--bignum\n"
-msgstr ""
+msgstr "\t-M\t\t\t--bignum\n"
#: main.c:825
msgid "\t-N\t\t\t--use-lc-numeric\n"
-msgstr ""
+msgstr "\t-N\t\t\t--use-lc-numeric\n"
#: main.c:826
-#, fuzzy
msgid "\t-o[file]\t\t--pretty-print[=file]\n"
-msgstr "\t-W profile[=fitxer]\t--profile[=fitxer]\n"
+msgstr "\t-o[file]\t\t--pretty-print[=file]\n"
#: main.c:827
msgid "\t-O\t\t\t--optimize\n"
-msgstr ""
+msgstr "\t-O\t\t\t--optimize\n"
#: main.c:828
-#, fuzzy
msgid "\t-p[file]\t\t--profile[=file]\n"
-msgstr "\t-W profile[=fitxer]\t--profile[=fitxer]\n"
+msgstr "\t-p[file]\t\t--profile[=file]\n"
#: main.c:829
-#, fuzzy
msgid "\t-P\t\t\t--posix\n"
-msgstr "\t-W posix\t\t--posix\n"
+msgstr "\t-P\t\t\t--posix\n"
#: main.c:830
-#, fuzzy
msgid "\t-r\t\t\t--re-interval\n"
-msgstr "\t-W re-interval\t\t--re-interval\n"
+msgstr "\t-r\t\t\t--re-interval\n"
#: main.c:831
msgid "\t-S\t\t\t--sandbox\n"
-msgstr ""
+msgstr "\t-S\t\t\t--sandbox\n"
#: main.c:832
-#, fuzzy
msgid "\t-t\t\t\t--lint-old\n"
-msgstr "\t-W lint-old\t\t--lint-old\n"
+msgstr "\t-t\t\t\t--lint-old\n"
#: main.c:833
-#, fuzzy
msgid "\t-V\t\t\t--version\n"
-msgstr "\t-W version\t\t--version\n"
+msgstr "\t-V\t\t\t--version\n"
#: main.c:835
msgid "\t-W nostalgia\t\t--nostalgia\n"
msgstr "\t-W nostalgia\t\t--nostalgia\n"
#: main.c:838
-#, fuzzy
msgid "\t-Y\t\t--parsedebug\n"
-msgstr "\t-W parsedebug\t\t--parsedebug\n"
+msgstr "\t-Y\t\t--parsedebug\n"
#. TRANSLATORS: --help output 5 (end)
#. TRANSLATORS: the placeholder indicates the bug-reporting address
@@ -3016,13 +3168,16 @@ msgstr "\t-W parsedebug\t\t--parsedebug\n"
#. address for translation bugs.
#. no-wrap
#: main.c:847
-#, fuzzy
msgid ""
"\n"
"To report bugs, see node `Bugs' in `gawk.info', which is\n"
"section `Reporting Problems and Bugs' in the printed version.\n"
"\n"
-msgstr "a la secci `Reporting Problems and Bugs' de la versi impresa.\n"
+msgstr ""
+"\n"
+"Per informar d'errors, vegeu el node `Bugs' a `gawk.info', que\n"
+"s la secci `Informant sobre problemes i errors' a la versi impresa.\n"
+"Informeu dels errors de traducci a <ca@li.org>\n"
#: main.c:851
msgid ""
@@ -3030,6 +3185,9 @@ msgid ""
"By default it reads standard input and writes standard output.\n"
"\n"
msgstr ""
+"gawk s un llenguatge d'anlisi i processament de patrons.\n"
+"De forma predeterminada llegeix l'entrada estndard i escriu a la sortida "
+"estndar.\n"
#: main.c:855
msgid ""
@@ -3037,9 +3195,12 @@ msgid ""
"\tgawk '{ sum += $1 }; END { print sum }' file\n"
"\tgawk -F: '{ print $1 }' /etc/passwd\n"
msgstr ""
+"Exemples:\n"
+"\tgawk '{ sum += $1 }; END { print sum }' fitxer\n"
+"\tgawk -F: '{ print $1 }' /etc/passwd\n"
#: main.c:880
-#, fuzzy, c-format
+#, c-format
msgid ""
"Copyright (C) 1989, 1991-%d Free Software Foundation.\n"
"\n"
@@ -3053,7 +3214,7 @@ msgstr ""
"\n"
"Aquest programa s programari lliure; pot redistribuir-se i/o modificar-se\n"
"sota els termes de la Llicncia Pblica General de GNU tal i como est\n"
-"publicada per la Free Software Foundation; ja siga en la versi 2 de la\n"
+"publicada per la Free Software Foundation; ja siga en la versi 3 de la\n"
"Llicncia, o (a la vostra elecci) qualsevol versi posterior.\n"
"\n"
@@ -3072,14 +3233,12 @@ msgstr ""
"\n"
#: main.c:894
-#, fuzzy
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 ""
-"Junt amb aquest programa haureu d'haber rebut una cpia de la Llicncia\n"
-"Pblica General de GNU; si no s aix, escriviu a la Free Software\n"
-"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+"Junt amb aquest programa haureu d'haver rebut una cpia de la Llicncia\n"
+"Pblica General de GNU; si no s aix, vegeu http://www.gnu.org/licenses/.\n"
#: main.c:931
msgid "-Ft does not set FS to tab in POSIX awk"
@@ -3088,7 +3247,7 @@ msgstr "-Ft no permet inicialitzar FS a un tabulador en la versi POSIX de awk"
#: main.c:1208
#, c-format
msgid "unknown value for field spec: %d\n"
-msgstr ""
+msgstr "valor desconegut per a l'especificaci de camp: %d\n"
#: main.c:1306
#, c-format
@@ -3096,26 +3255,29 @@ msgid ""
"%s: `%s' argument to `-v' not in `var=value' form\n"
"\n"
msgstr ""
+"%s: `%s' l'argument per a `-v' no est en forma `var=valor'\n"
+"\n"
#: main.c:1332
#, c-format
msgid "`%s' is not a legal variable name"
-msgstr ""
+msgstr "`%s' no s nom legal de variable"
#: main.c:1335
#, c-format
msgid "`%s' is not a variable name, looking for file `%s=%s'"
-msgstr ""
+msgstr "`%s' no s un valor de variable, s'esperava fitxer `%s=%s'"
#: main.c:1339
-#, fuzzy, c-format
+#, c-format
msgid "cannot use gawk builtin `%s' as variable name"
-msgstr "no es pot usar el nom de la funci `%s' com a variable o matriu"
+msgstr ""
+"no es pot usar el nom de la funci integrada `%s' com a nom de variable"
#: main.c:1344
-#, fuzzy, c-format
+#, c-format
msgid "cannot use function `%s' as variable name"
-msgstr "no es pot usar el nom de la funci `%s' com a variable o matriu"
+msgstr "no es pot usar el nom de la funci interna `%s' com nom de variable"
#: main.c:1397
msgid "floating point exception"
@@ -3126,14 +3288,12 @@ msgid "fatal error: internal error"
msgstr "error fatal: error intern"
#: main.c:1419
-#, fuzzy
msgid "fatal error: internal error: segfault"
-msgstr "error fatal: error intern"
+msgstr "error fatal: error intern: segfault"
#: main.c:1431
-#, fuzzy
msgid "fatal error: internal error: stack overflow"
-msgstr "error fatal: error intern"
+msgstr "error fatal: error intern: sobreeiximent de pila"
#: main.c:1490
#, c-format
@@ -3148,56 +3308,52 @@ msgstr "no es pot pre-obrir /dev/null per al descriptor fd %d"
#: mpfr.c:550
#, c-format
msgid "PREC value `%.*s' is invalid"
-msgstr ""
+msgstr "Valor PREC `%.*s' no s vlid"
#: mpfr.c:608
#, c-format
msgid "RNDMODE value `%.*s' is invalid"
-msgstr ""
+msgstr "Valor RNDMODE `%.*s' no s vlid"
#: mpfr.c:698
-#, fuzzy, c-format
+#, c-format
msgid "%s: received non-numeric argument"
-msgstr "cos: s'ha rebut un argument que no s numric"
+msgstr "%s: s'ha rebut un argument que no s numric"
#: mpfr.c:800
-#, fuzzy
msgid "compl(%Rg): negative value will give strange results"
-msgstr "compl(%lf): el valor negatiu donar resultats estranys"
+msgstr "compl(%Rg): el valor negatiu donar resultats estranys"
#: mpfr.c:804
-#, fuzzy
msgid "comp(%Rg): fractional value will be truncated"
-msgstr "compl(%lf): el valor fraccionari ser truncat"
+msgstr "compl(%Rg): el valor fraccionari ser truncat"
#: mpfr.c:816
-#, fuzzy, c-format
+#, c-format
msgid "cmpl(%Zd): negative values will give strange results"
-msgstr "compl(%lf): el valor negatiu donar resultats estranys"
+msgstr "cmpl(%Zd): els valors negatius donaran resultats estranys"
#: mpfr.c:835
-#, fuzzy, c-format
+#, c-format
msgid "%s: received non-numeric argument #%d"
-msgstr "cos: s'ha rebut un argument que no s numric"
+msgstr "%s: s'ha rebut un argument no numric #%d"
#: mpfr.c:845
msgid "%s: argument #%d has invalid value %Rg, using 0"
-msgstr ""
+msgstr "%s: l'argument #%d t valor no vlid %Rg, s'usar 0"
#: mpfr.c:857
-#, fuzzy
msgid "%s: argument #%d negative value %Rg will give strange results"
-msgstr "and(%lf, %lf): els valors negatius donaran resultats estranys"
+msgstr "%s: l'argument #%d amb valor negatiu %Rg donar resultats estranys"
#: mpfr.c:863
-#, fuzzy
msgid "%s: argument #%d fractional value %Rg will be truncated"
-msgstr "and(%lf, %lf): els valors fraccionaris seran truncats"
+msgstr "%s: l'argument #%d amb valor fraccional %Rg ser truncat"
#: mpfr.c:878
-#, fuzzy, c-format
+#, c-format
msgid "%s: argument #%d negative value %Zd will give strange results"
-msgstr "and(%lf, %lf): els valors negatius donaran resultats estranys"
+msgstr "%s: l'argument #%d amb valor negatiu %Zd donar resultats estranys"
#: msg.c:68
#, c-format
@@ -3209,9 +3365,9 @@ msgid "backslash at end of string"
msgstr "barra invertida al final de la cadena"
#: node.c:500
-#, fuzzy, c-format
+#, c-format
msgid "old awk does not support the `\\%c' escape sequence"
-msgstr "l'antic awk no suporta l'operador `**='"
+msgstr "l'antic awk no dna suport a la seqencia d'escapada `\\%c'"
#: node.c:551
msgid "POSIX does not allow `\\x' escapes"
@@ -3223,8 +3379,12 @@ msgstr "no hi ha dgits hexadecimals en la seqncia d'escapada `\\x'"
#: node.c:579
#, c-format
-msgid "hex escape \\x%.*s of %d characters probably not interpreted the way you expect"
+msgid ""
+"hex escape \\x%.*s of %d characters probably not interpreted the way you "
+"expect"
msgstr ""
+"probablement no s'han interpretat els carcters hex escape \\x%.*s of %d de "
+"la manera que esperveu"
#: node.c:594
#, c-format
@@ -3232,18 +3392,23 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
msgstr "la seqncia d'escapada `\\%c' s tractada com a una simple `%c'"
#: node.c:739
-msgid "Invalid multibyte data detected. There may be a mismatch between your data and your locale."
+msgid ""
+"Invalid multibyte data detected. There may be a mismatch between your data "
+"and your locale."
msgstr ""
+"S'han detectat dades multibyte no vlides. Pot haver-hi una discordana "
+"entre les vostres dades i la vostra configuraci local"
#: posix/gawkmisc.c:177
-#, fuzzy, c-format
+#, c-format
msgid "%s %s `%s': could not get fd flags: (fcntl F_GETFD: %s)"
-msgstr "%s %s `%s': no es pot inicialitzar close-on-exec: (fcntl: %s)"
+msgstr ""
+"%s %s `%s': no s'han pogut obtenir els indicadors fd: (fcntl F_GETFD: %s)"
#: posix/gawkmisc.c:189
-#, fuzzy, c-format
+#, c-format
msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
-msgstr "%s %s `%s': no es pot inicialitzar close-on-exec: (fcntl: %s)"
+msgstr "%s %s `%s': no s'ha pogut establir close-on-exec: (fcntl F_SETFD: %s)"
#: profile.c:71
#, c-format
@@ -3255,12 +3420,12 @@ msgid "sending profile to standard error"
msgstr "enviant el perfil a l'eixida d'error estndard"
#: profile.c:193
-#, fuzzy, c-format
+#, c-format
msgid ""
"\t# %s block(s)\n"
"\n"
msgstr ""
-"\t# Bloc(s) FINAL\n"
+"\t# %s bloc(s)\n"
"\n"
#: profile.c:198
@@ -3273,14 +3438,13 @@ msgstr ""
"\n"
#: profile.c:272
-#, fuzzy, c-format
+#, c-format
msgid "internal error: %s with null vname"
-msgstr "error intern: Node_var amb vname nul"
+msgstr "error intern: %s amb vname nul"
#: profile.c:537
-#, fuzzy
msgid "internal error: builtin with null fname"
-msgstr "error intern: Node_var amb vname nul"
+msgstr "error intern: funci integrada amb fname nul"
#: profile.c:949
#, c-format
@@ -3288,6 +3452,8 @@ msgid ""
"\t# Loaded extensions (-l and/or @load)\n"
"\n"
msgstr ""
+"\t# Extensions carregades (-l i/o @load)\n"
+"\n"
#: profile.c:972
#, c-format
@@ -3306,12 +3472,12 @@ msgstr ""
#: profile.c:1513
#, c-format
msgid "redir2str: unknown redirection type %d"
-msgstr ""
+msgstr "redir2str: tipus desconegut de redireccionament %d"
#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
-msgstr ""
+msgstr "el component regexp `%.*s' probablement hauria de ser `[%.*s]'"
#: regcomp.c:131
msgid "Success"
@@ -3339,7 +3505,7 @@ msgstr "Barra invertida extra al final"
#: regcomp.c:149
msgid "Invalid back reference"
-msgstr "Referncia cap enradera no vlida"
+msgstr "Referncia cap endarrere no vlida"
#: regcomp.c:152
msgid "Unmatched [ or [^"
@@ -3379,7 +3545,7 @@ msgstr "No hi ha una expressi regular prvia"
#: symbol.c:741
msgid "can not pop main context"
-msgstr ""
+msgstr "no es pot mostrar el context principal"
#~ msgid "reference to uninitialized element `%s[\"%s\"]'"
#~ msgstr "referncia a un element sense valor inicial `%s[\"%s\"]'"
@@ -3449,7 +3615,8 @@ msgstr ""
#~ "To report bugs, see node `Bugs' in `gawk.info', which is\n"
#~ msgstr ""
#~ "\n"
-#~ "Per a informar d'errors, consulteu el node Bugs' en gawk.info', que est\n"
+#~ "Per a informar d'errors, consulteu el node Bugs' en gawk.info', que "
+#~ "est\n"
#~ msgid "invalid syntax in name `%s' for variable assignment"
#~ msgstr "sintaxi no vlida en el nom %s' per a l'asignaci de la variable"
@@ -3473,7 +3640,8 @@ msgstr ""
#~ msgstr "%s s una funci, l'assignaci no s permesa"
#~ msgid "assignment is not allowed to result of builtin function"
-#~ msgstr "no es permet l'assignaci per a obtindre un resultat d'una funci interna"
+#~ msgstr ""
+#~ "no es permet l'assignaci per a obtindre un resultat d'una funci interna"
#~ msgid ""
#~ "\t# BEGIN block(s)\n"
@@ -3518,8 +3686,11 @@ msgstr ""
#~ msgid "field %d in FIELDWIDTHS, must be > 0"
#~ msgstr "el camp %d en FIELDWIDTHS, hauria de ser > 0"
-#~ msgid "for loop: array `%s' changed size from %d to %d during loop execution"
-#~ msgstr "bucle for: la matriu %s ha canviat de mida de %d a %d durant l'execuci del bucle"
+#~ msgid ""
+#~ "for loop: array `%s' changed size from %d to %d during loop execution"
+#~ msgstr ""
+#~ "bucle for: la matriu %s ha canviat de mida de %d a %d durant l'execuci "
+#~ "del bucle"
#~ msgid "`break' outside a loop is not portable"
#~ msgstr "break a fora d'un bucle no s portable"
@@ -3545,8 +3716,12 @@ msgstr ""
#~ msgid "assignment used in conditional context"
#~ msgstr "assignaci usada en un context condicional"
-#~ msgid "concatenation: side effects in one expression have changed the length of another!"
-#~ msgstr "concatenaci: els efectes colaterals en una expressi han canviat la longitud d'una altra!"
+#~ msgid ""
+#~ "concatenation: side effects in one expression have changed the length of "
+#~ "another!"
+#~ msgstr ""
+#~ "concatenaci: els efectes colaterals en una expressi han canviat la "
+#~ "longitud d'una altra!"
#~ msgid "function %s called\n"
#~ msgstr "s'ha cridat a la funci %s\n"
@@ -3558,7 +3733,9 @@ msgstr ""
#~ msgstr "tipus d'arbre %s no vlid dintre de redirect()"
#~ msgid "can't open two way socket `%s' for input/output (%s)"
-#~ msgstr "no es pot obrir un socket bidireccional %s per a les entrades/eixides (%s)"
+#~ msgstr ""
+#~ "no es pot obrir un socket bidireccional %s per a les entrades/eixides "
+#~ "(%s)"
#~ msgid "/inet/raw client not ready yet, sorry"
#~ msgstr "el client /inet/raw encara no est a punt, ho sento"
diff --git a/po/da.gmo b/po/da.gmo
index 3655ffb5..0ba7ffc0 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 2ce06bf8..f3840840 100644
--- a/po/da.po
+++ b/po/da.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk 4.0.0h\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2013-05-09 16:05+0300\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2012-02-06 10:37+0100\n"
"Last-Translator: Keld Simonsen <keld@keldix.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -21,89 +21,89 @@ msgstr ""
"X-Generator: Lokalize 1.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: array.c:254
+#: array.c:256
#, c-format
msgid "from %s"
msgstr "fra %s"
-#: array.c:354
+#: array.c:357
msgid "attempt to use a scalar value as array"
msgstr "forsg p at bruge en skalar som array"
-#: array.c:356
+#: array.c:359
#, c-format
msgid "attempt to use scalar parameter `%s' as an array"
msgstr "forsg p at bruge skalarparameteren '%s' som et array"
-#: array.c:359
+#: array.c:362
#, c-format
msgid "attempt to use scalar `%s' as an array"
msgstr "forsg p at bruge skalar '%s' som et array"
-#: array.c:406 array.c:573 builtin.c:85 builtin.c:1591 builtin.c:1637
-#: builtin.c:1650 builtin.c:2078 builtin.c:2092 eval.c:1121 eval.c:1125
-#: eval.c:1524
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
+#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
msgstr "forsg p at bruge array '%s' i skalarsammenhng"
-#: array.c:580
+#: array.c:583
#, c-format
msgid "delete: index `%s' not in array `%s'"
msgstr "delete: indeks '%s' findes ikke i array '%s'"
-#: array.c:594
+#: array.c:597
#, c-format
msgid "attempt to use scalar `%s[\"%.*s\"]' as an array"
msgstr "forsg p at bruge skalaren '%s[\"%.*s\"]' som array"
-#: array.c:773
+#: array.c:776
#, fuzzy
msgid "adump: first argument not an array"
msgstr "adump: argument er ikke et array"
-#: array.c:812
+#: array.c:815
msgid "asort: second argument not an array"
msgstr "asort: andet argument er ikke et array"
-#: array.c:813
+#: array.c:816
msgid "asorti: second argument not an array"
msgstr "asorti: andet argument er ikke et array"
-#: array.c:820
+#: array.c:823
msgid "asort: first argument not an array"
msgstr "asort: frste argument er ikke et array"
-#: array.c:821
+#: array.c:824
msgid "asorti: first argument not an array"
msgstr "asorti: frste argument er ikke et array"
-#: array.c:828
+#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
msgstr ""
"asort: kan ikke bruge et underarray af frste argument for andet argument"
-#: array.c:829
+#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
msgstr ""
"asorti: kan ikke bruge et underarray af frste argument for andet argument"
-#: array.c:834
+#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
msgstr ""
"asort: kan ikke bruge et underarray af andet argument for frste argument"
-#: array.c:835
+#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
msgstr ""
"asorti: kan ikke bruge et underarray af andet argument for frste argument"
-#: array.c:1309
+#: array.c:1314
#, c-format
msgid "`%s' is invalid as a function name"
msgstr "'%s' er ugyldigt som funktionsnavn"
-#: array.c:1313
+#: array.c:1318
#, c-format
msgid "sort comparison function `%s' is not defined"
msgstr "funktionen for sorteringssammenligning '%s' er ikke defineret"
@@ -145,11 +145,11 @@ msgstr "dublet case-vrdier i switch-krop %s"
msgid "duplicate `default' detected in switch body"
msgstr "dublet 'default' opdaget i switch-krop"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr "'break' uden for en lkke eller switch er ikke tilladt"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "'continue' uden for en lkke er ikke tilladt"
@@ -241,272 +241,272 @@ msgstr "kan ikke bruge specialvariabel '%s' til indirekte funktionskald"
msgid "invalid subscript expression"
msgstr "ugyldigt indeksudtryk"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:119
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "advarsel: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:151
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "fatal: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "uventet nylinjetegn eller strengafslutning"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:517 debug.c:533
-#: debug.c:2792 debug.c:5040
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
+#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "kan ikke bne kildefilen '%s' for lsning (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, fuzzy, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "kan ikke bne kildefilen '%s' for lsning (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:130 debug.c:5191
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "ukendt rsag"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr ""
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "allerede inkluderet kildefil '%s'"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, fuzzy, c-format
msgid "already loaded shared library `%s'"
msgstr "allerede inkluderet kildefil '%s'"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "@include er en gawk-udvidelse"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "tomt filnavn efter @include"
-#: awkgram.y:2470
+#: awkgram.y:2494
#, fuzzy
msgid "@load is a gawk extension"
msgstr "@include er en gawk-udvidelse"
-#: awkgram.y:2476
+#: awkgram.y:2500
#, fuzzy
msgid "empty filename after @load"
msgstr "tomt filnavn efter @include"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "tom programtekst p kommandolinjen"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "kan ikke lse kildefilen '%s' (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "kildefilen '%s' er tom"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "kildefilen slutter ikke med en ny linje"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr "uafsluttet regulrt udtryk slutter med '\\' i slutningen af filen"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "%s: %d: regex-ndringstegn '/.../%c' fra tawk virker ikke i gawk"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "regex-ndringstegn '/.../%c' fra tawk virker ikke i gawk"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "uafsluttet regulrt udtryk"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "uafsluttet regulrt udtryk i slutningen af filen"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr "brug af '\\ #...' for linjefortsttelse er ikke portabelt"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "sidste tegn p linjen er ikke en omvendt skrstreg"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX tillader ikke operatoren '**='"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "gamle versioner af awk understtter ikke operatoren '**='"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX tillader ikke operatoren '**'"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "gamle versioner af awk understtter ikke operatoren '**'"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "operatoren '^=' understttes ikke i gamle versioner af awk"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "operatoren '^' understttes ikke i gamle versioner af awk"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "uafsluttet streng"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "ugyldigt tegn '%c' i udtryk"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "'%s' er en gawk-udvidelse"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX tillader ikke '%s'"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "'%s' understttes ikke i gamle versioner af awk"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "'goto' anses for skadelig!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d er et ugyldigt antal argumenter for %s"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
msgstr ""
"%s: bogstavelig streng som sidste argument til erstatning har ingen effekt"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "%s: tredje argument er ikke et ndringsbart objekt"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: tredje argument er en gawk-udvidelse"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: andet argument er en gawk-udvidelse"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
"brug af dcgettext(_\"...\") er forkert: fjern det indledende "
"understregningstegn"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
"brug af dcgettext(_\"...\") er forkert: fjern det indledende "
"understregningstegn"
-#: awkgram.y:3992
+#: awkgram.y:4016
#, fuzzy
msgid "index: regexp constant as second argument is not allowed"
msgstr "indeks: andet argument er ikke en streng"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "funktionen '%s': parameteren '%s' overskygger en global variabel"
-#: awkgram.y:4102 debug.c:4021 debug.c:4064 debug.c:5189
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "kunne ikke bne '%s' for skrivning (%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "sender variabelliste til standard fejl"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: lukning mislykkedes (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() kaldt to gange!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "der var skyggede variable."
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "funktionsnavnet '%s' er allerede defineret"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr "funktionen '%s': kan ikke bruge funktionsnavn som parameternavn"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
msgstr ""
"funktionen '%s': kan ikke bruge specialvariabel '%s' som en "
"funktionsparameter"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "funktionen '%s': parameter %d, '%s', er samme som parameter %d"
-#: awkgram.y:4366 awkgram.y:4372
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "funktionen '%s' kaldt, men aldrig defineret"
-#: awkgram.y:4376
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "funktionen '%s' defineret, men aldrig kaldt direkte"
-#: awkgram.y:4408
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr "konstant regulrt udtryk for parameter %d giver en boolesk vrdi"
-#: awkgram.y:4467
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -515,232 +515,242 @@ msgstr ""
"funktionen '%s' kaldt med blanktegn mellem navnet og '(',\n"
"eller brugt som en variabel eller et array"
-#: awkgram.y:4703
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "forsgte at dividere med nul"
-#: awkgram.y:4712
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "forsgte at dividere med nul i '%%'"
-#: builtin.c:128
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
+msgstr ""
+
+#: awkgram.y:5052
+#, fuzzy, c-format
+msgid "invalid target of assignment (opcode %s)"
+msgstr "%d er et ugyldigt antal argumenter for %s"
+
+#: builtin.c:133
#, c-format
msgid "%s to \"%s\" failed (%s)"
msgstr "%s til '%s' mislykkedes (%s)"
-#: builtin.c:129
+#: builtin.c:134
msgid "standard output"
msgstr "standard ud"
-#: builtin.c:143
+#: builtin.c:148
msgid "exp: received non-numeric argument"
msgstr "exp: fik et ikke-numerisk argument"
-#: builtin.c:149
+#: builtin.c:154
#, c-format
msgid "exp: argument %g is out of range"
msgstr "exp: argumentet %g er uden for det tilladte omrde"
-#: builtin.c:224
+#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
msgstr ""
"fflush: kan ikke rense: datakanalen '%s' bnet for lsning, ikke skrivning"
-#: builtin.c:227
+#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
msgstr "fflush: kan ikke rense: filen '%s' bnet for lsning, ikke skrivning"
-#: builtin.c:239
+#: builtin.c:244
#, c-format
msgid "fflush: `%s' is not an open file, pipe or co-process"
msgstr "fflush: '%s' er ikke en ben fil, datakanal eller ko-proces"
-#: builtin.c:357
+#: builtin.c:362
msgid "index: received non-string first argument"
msgstr "indeks: frste argument er ikke en streng"
-#: builtin.c:359
+#: builtin.c:364
msgid "index: received non-string second argument"
msgstr "indeks: andet argument er ikke en streng"
-#: builtin.c:483 mpfr.c:757
+#: builtin.c:488 mpfr.c:757
msgid "int: received non-numeric argument"
msgstr "int: fik et ikke-numerisk argument"
-#: builtin.c:520
+#: builtin.c:525
msgid "length: received array argument"
msgstr "length: fik et array-argument"
-#: builtin.c:523
+#: builtin.c:528
msgid "`length(array)' is a gawk extension"
msgstr "'length(array)' er en gawk-udvidelse"
-#: builtin.c:539
+#: builtin.c:544
msgid "length: received non-string argument"
msgstr "length: fik et argument som ikke er en streng"
-#: builtin.c:570
+#: builtin.c:575
msgid "log: received non-numeric argument"
msgstr "log: fik et ikke-numerisk argument"
-#: builtin.c:573
+#: builtin.c:578
#, c-format
msgid "log: received negative argument %g"
msgstr "log: fik et negativt argument %g"
-#: builtin.c:771 builtin.c:776
+#: builtin.c:776 builtin.c:781
msgid "fatal: must use `count$' on all formats or none"
msgstr "fatal: skal bruge 'count$' p alle formater eller ikke nogen"
-#: builtin.c:846
+#: builtin.c:851
#, c-format
msgid "field width is ignored for `%%' specifier"
msgstr "feltbredde ignoreret for '%%'-angivelse"
-#: builtin.c:848
+#: builtin.c:853
#, c-format
msgid "precision is ignored for `%%' specifier"
msgstr "prcision ignoreret for '%%'-angivelse"
-#: builtin.c:850
+#: builtin.c:855
#, c-format
msgid "field width and precision are ignored for `%%' specifier"
msgstr "feltbredde og prcision ignoreret for '%%'-angivelse"
-#: builtin.c:901
+#: builtin.c:906
msgid "fatal: `$' is not permitted in awk formats"
msgstr "fatal: '$' tillades ikke i awk-formater"
-#: builtin.c:910
+#: builtin.c:915
msgid "fatal: arg count with `$' must be > 0"
msgstr "fatal: argumentantallet med '$' skal vre > 0"
-#: builtin.c:914
+#: builtin.c:919
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
msgstr "fatal: argumentantallet %ld er strre end antal givne argumenter"
-#: builtin.c:918
+#: builtin.c:923
msgid "fatal: `$' not permitted after period in format"
msgstr "fatal: '$' tillades ikke efter et punktum i formatet"
-#: builtin.c:934
+#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
msgstr ""
"fatal: intet '$' angivet for bredde eller prcision af positionsangivet felt"
-#: builtin.c:1006
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "'l' er meningslst i awk-formater, ignoreret"
-#: builtin.c:1010
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "fatal: 'l' tillades ikke i POSIX awk-formater"
-#: builtin.c:1023
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "'L' er meningslst i awk-formater, ignoreret"
-#: builtin.c:1027
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "fatal: 'L' tillades ikke i POSIX awk-formater"
-#: builtin.c:1040
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "'h' er meningslst i awk-formater, ignoreret"
-#: builtin.c:1044
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "fatal: 'h' tillades ikke i POSIX awk-formater"
-#: builtin.c:1439
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf: vrdi %g er uden for omrde for '%%%c'-format"
-#: builtin.c:1537
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
msgstr ""
"ignorerer ukendt formatspecificeringstegn '%c': intet argument konverteret"
-#: builtin.c:1542
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr "fatal: for f argumenter til formatstrengen"
-#: builtin.c:1544
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "^ sluttede her"
-#: builtin.c:1551
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: formatspecifikation har intet kommandobogstav"
-#: builtin.c:1554
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "for mange argumenter til formatstrengen"
-#: builtin.c:1610
+#: builtin.c:1634
#, fuzzy
msgid "sprintf: no arguments"
msgstr "printf: ingen argumenter"
-#: builtin.c:1633 builtin.c:1644
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: ingen argumenter"
-#: builtin.c:1687
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: fik ikke-numerisk argument"
-#: builtin.c:1691
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: kaldt med negativt argument %g"
-#: builtin.c:1722
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: lngden %g er ikke >= 1"
-#: builtin.c:1724
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: lngden %g er ikke >= 0"
-#: builtin.c:1731
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: lngden %g som ikke er et heltal vil blive trunkeret"
-#: builtin.c:1736
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr "substr: lngden %g for stor til strengindeksering, trunkerer til %g"
-#: builtin.c:1748
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: startindeks %g er ugyldigt, bruger 1"
-#: builtin.c:1753
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr "substr: startindeks %g som ikke er et heltal vil blive trunkeret"
-#: builtin.c:1778
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: kildestrengen er tom"
-#: builtin.c:1794
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: startindeks %g er forbi slutningen p strengen"
-#: builtin.c:1802
+#: builtin.c:1826
#, c-format
msgid ""
"substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -748,191 +758,191 @@ msgstr ""
"substr: lngden %g ved startindeks %g overskrider lngden af frste argument "
"(%lu)"
-#: builtin.c:1876
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr "strftime: formatvrdi i PROCINFO[\"strftime\"] har numerisk type"
-#: builtin.c:1899
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: fik et ikke-numerisk andet argument"
-#: builtin.c:1903
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr "strftime: andet argument mindre end 0 eller for stort til time_t"
-#: builtin.c:1910
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: fik et frste argument som ikke er en streng"
-#: builtin.c:1917
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: fik en tom formatstreng"
-#: builtin.c:1983
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: fik et argument som ikke er en streng"
-#: builtin.c:2000
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr "mktime: mindst n af vrdierne er udenfor standardomrdet"
-#: builtin.c:2035
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "'system'-funktion ikke tilladt i sandkasse-tilstand"
-#: builtin.c:2040
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: fik et argument som ikke er en streng"
-#: builtin.c:2160
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "reference til ikke-initieret felt '$%d'"
-#: builtin.c:2247
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: fik et argument som ikke er en streng"
-#: builtin.c:2281
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: fik et argument som ikke er en streng"
-#: builtin.c:2317 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: fik et ikke-numerisk frste argument"
-#: builtin.c:2319 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: fik et ikke-numerisk andet argument"
-#: builtin.c:2338
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: fik et ikke-numerisk argument"
-#: builtin.c:2354
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: fik et ikke-numerisk argument"
-#: builtin.c:2407 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: fik et ikke-numerisk argument"
-#: builtin.c:2438
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: tredje argument er ikke et array"
-#: builtin.c:2710
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: 0 i tredje argument behandlet som 1"
-#: builtin.c:3003
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: fik et ikke-numerisk frste argument"
-#: builtin.c:3005
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: fik et ikke-numerisk andet argument"
-#: builtin.c:3011
+#: builtin.c:3038
#, fuzzy, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr "lshift(%lf, %lf): negative vrdier vil give mrkelige resultater"
-#: builtin.c:3013
+#: builtin.c:3040
#, fuzzy, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%lf, %lf): kommatalsvrdier vil blive trunkeret"
-#: builtin.c:3015
+#: builtin.c:3042
#, fuzzy, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr ""
"lshift(%lf, %lf): for store skiftevrdier vil give mrkelige resultater"
-#: builtin.c:3040
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: fik et ikke-numerisk frste argument"
-#: builtin.c:3042
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: fik et ikke-numerisk andet argument"
-#: builtin.c:3048
+#: builtin.c:3075
#, fuzzy, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr "rshift(%lf, %lf): negative vrdier vil give mrkelige resultater"
-#: builtin.c:3050
+#: builtin.c:3077
#, fuzzy, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%lf, %lf): kommatalsvrdier vil blive trunkeret"
-#: builtin.c:3052
+#: builtin.c:3079
#, fuzzy, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr ""
"rshift(%lf, %lf): for store skiftevrdier vil give mrkelige resultater"
-#: builtin.c:3077 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
#, fuzzy
msgid "and: called with less than two arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: builtin.c:3082
+#: builtin.c:3109
#, fuzzy, c-format
msgid "and: argument %d is non-numeric"
msgstr "exp: argumentet %g er uden for det tilladte omrde"
-#: builtin.c:3086
+#: builtin.c:3113
#, fuzzy, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr "and(%lf, %lf): negative vrdier vil give mrkelige resultater"
-#: builtin.c:3109 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
#, fuzzy
msgid "or: called with less than two arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: builtin.c:3114
+#: builtin.c:3141
#, fuzzy, c-format
msgid "or: argument %d is non-numeric"
msgstr "exp: argumentet %g er uden for det tilladte omrde"
-#: builtin.c:3118
+#: builtin.c:3145
#, fuzzy, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr "compl(%lf): negative vrdier vil give mrkelige resultater"
-#: builtin.c:3140 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
#, fuzzy
msgid "xor: called with less than two arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: builtin.c:3146
+#: builtin.c:3173
#, fuzzy, c-format
msgid "xor: argument %d is non-numeric"
msgstr "exp: argumentet %g er uden for det tilladte omrde"
-#: builtin.c:3150
+#: builtin.c:3177
#, fuzzy, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor(%lf, %lf): negative vrdier vil give mrkelige resultater"
-#: builtin.c:3175 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: fik et ikke-numerisk argument"
-#: builtin.c:3181
+#: builtin.c:3208
#, fuzzy, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%lf): negative vrdier vil give mrkelige resultater"
-#: builtin.c:3183
+#: builtin.c:3210
#, fuzzy, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%lf): kommatalsvrdier vil blive trunkeret"
-#: builtin.c:3352
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: '%s' er ikke en gyldig lokalitetskategori"
@@ -1056,8 +1066,8 @@ msgstr ""
#: command.y:823
msgid ""
-"commands [num] - starts a list of commands to be executed at a breakpoint"
-"(watchpoint) hit."
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
msgstr ""
#: command.y:825
@@ -1214,7 +1224,7 @@ msgstr ""
msgid "watch var - set a watchpoint for a variable."
msgstr ""
-#: command.y:1011 debug.c:395 msg.c:128
+#: command.y:1011 debug.c:401 msg.c:135
#, c-format
msgid "error: "
msgstr "fejl: "
@@ -1254,557 +1264,557 @@ msgstr "Ugyldigt sorteringstegn"
msgid "undefined command: %s\n"
msgstr ""
-#: debug.c:246
+#: debug.c:252
msgid "set or show the number of lines to keep in history file."
msgstr ""
-#: debug.c:248
+#: debug.c:254
msgid "set or show the list command window size."
msgstr ""
-#: debug.c:250
+#: debug.c:256
msgid "set or show gawk output file."
msgstr ""
-#: debug.c:252
+#: debug.c:258
msgid "set or show debugger prompt."
msgstr ""
-#: debug.c:254
+#: debug.c:260
msgid "(un)set or show saving of command history (value=on|off)."
msgstr ""
-#: debug.c:256
+#: debug.c:262
msgid "(un)set or show saving of options (value=on|off)."
msgstr ""
-#: debug.c:258
+#: debug.c:264
msgid "(un)set or show instruction tracing (value=on|off)."
msgstr ""
-#: debug.c:339
+#: debug.c:345
msgid "program not running."
msgstr ""
-#: debug.c:442 debug.c:597
+#: debug.c:448 debug.c:606
#, fuzzy, c-format
msgid "can't read source file `%s' (%s)"
msgstr "kan ikke lse kildefilen '%s' (%s)"
-#: debug.c:447
+#: debug.c:453
#, fuzzy, c-format
msgid "source file `%s' is empty.\n"
msgstr "kildefilen '%s' er tom"
-#: debug.c:474
+#: debug.c:480
msgid "no current source file."
msgstr ""
-#: debug.c:499
+#: debug.c:505
#, fuzzy, c-format
msgid "cannot find source file named `%s' (%s)"
msgstr "kan ikke lse kildefilen '%s' (%s)"
-#: debug.c:523
+#: debug.c:529
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
msgstr ""
-#: debug.c:542
+#: debug.c:551
#, c-format
msgid "line number %d out of range; `%s' has %d lines"
msgstr ""
-#: debug.c:602
+#: debug.c:611
#, fuzzy, c-format
msgid "unexpected eof while reading file `%s', line %d"
msgstr "uventet nylinjetegn eller strengafslutning"
-#: debug.c:611
+#: debug.c:620
#, c-format
msgid "source file `%s' modified since start of program execution"
msgstr ""
-#: debug.c:723
+#: debug.c:732
#, fuzzy, c-format
msgid "Current source file: %s\n"
msgstr "allerede inkluderet kildefil '%s'"
-#: debug.c:724
+#: debug.c:733
#, c-format
msgid "Number of lines: %d\n"
msgstr ""
-#: debug.c:731
+#: debug.c:740
#, c-format
msgid "Source file (lines): %s (%d)\n"
msgstr ""
-#: debug.c:745
+#: debug.c:754
msgid ""
"Number Disp Enabled Location\n"
"\n"
msgstr ""
-#: debug.c:756
+#: debug.c:765
#, c-format
msgid "\tno of hits = %ld\n"
msgstr ""
-#: debug.c:758
+#: debug.c:767
#, c-format
msgid "\tignore next %ld hit(s)\n"
msgstr ""
-#: debug.c:760 debug.c:900
+#: debug.c:769 debug.c:909
#, c-format
msgid "\tstop condition: %s\n"
msgstr ""
-#: debug.c:762 debug.c:902
+#: debug.c:771 debug.c:911
msgid "\tcommands:\n"
msgstr ""
-#: debug.c:784
+#: debug.c:793
#, c-format
msgid "Current frame: "
msgstr ""
-#: debug.c:787
+#: debug.c:796
#, c-format
msgid "Called by frame: "
msgstr ""
-#: debug.c:791
+#: debug.c:800
#, c-format
msgid "Caller of frame: "
msgstr ""
-#: debug.c:809
+#: debug.c:818
#, c-format
msgid "None in main().\n"
msgstr ""
-#: debug.c:839
+#: debug.c:848
#, fuzzy
msgid "No arguments.\n"
msgstr "printf: ingen argumenter"
-#: debug.c:840
+#: debug.c:849
msgid "No locals.\n"
msgstr ""
-#: debug.c:848
+#: debug.c:857
msgid ""
"All defined variables:\n"
"\n"
msgstr ""
-#: debug.c:858
+#: debug.c:867
msgid ""
"All defined functions:\n"
"\n"
msgstr ""
-#: debug.c:877
+#: debug.c:886
msgid ""
"Auto-display variables:\n"
"\n"
msgstr ""
-#: debug.c:880
+#: debug.c:889
msgid ""
"Watch variables:\n"
"\n"
msgstr ""
-#: debug.c:1020
+#: debug.c:1029
#, fuzzy, c-format
msgid "no symbol `%s' in current context\n"
msgstr "'exit' kan ikke kaldes i den aktuelle kontekst"
-#: debug.c:1032 debug.c:1418
+#: debug.c:1041 debug.c:1427
#, fuzzy, c-format
msgid "`%s' is not an array\n"
msgstr "'%s' er ikke et gyldigt variabelnavn"
-#: debug.c:1046
+#: debug.c:1055
#, fuzzy, c-format
msgid "$%ld = uninitialized field\n"
msgstr "reference til ikke-initieret felt '$%d'"
-#: debug.c:1067
+#: debug.c:1076
#, fuzzy, c-format
msgid "array `%s' is empty\n"
msgstr "datafilen '%s' er tom"
-#: debug.c:1110 debug.c:1162
+#: debug.c:1119 debug.c:1171
#, fuzzy, c-format
msgid "[\"%s\"] not in array `%s'\n"
msgstr "delete: indeks '%s' findes ikke i array '%s'"
-#: debug.c:1166
+#: debug.c:1175
#, c-format
msgid "`%s[\"%s\"]' is not an array\n"
msgstr ""
-#: debug.c:1227 debug.c:4949
+#: debug.c:1236 debug.c:4964
#, fuzzy, c-format
msgid "`%s' is not a scalar variable"
msgstr "'%s' er ikke et gyldigt variabelnavn"
-#: debug.c:1249 debug.c:4979
+#: debug.c:1258 debug.c:4994
#, fuzzy, c-format
msgid "attempt to use array `%s[\"%s\"]' in a scalar context"
msgstr "forsg p at bruge array '%s[\"%.*s\"]' i skalarsammenhng"
-#: debug.c:1271 debug.c:4990
+#: debug.c:1280 debug.c:5005
#, fuzzy, c-format
msgid "attempt to use scalar `%s[\"%s\"]' as array"
msgstr "forsg p at bruge skalaren '%s[\"%.*s\"]' som array"
-#: debug.c:1414
+#: debug.c:1423
#, fuzzy, c-format
msgid "`%s' is a function"
msgstr "'%s' er ugyldigt som funktionsnavn"
-#: debug.c:1456
+#: debug.c:1465
#, c-format
msgid "watchpoint %d is unconditional\n"
msgstr ""
-#: debug.c:1490
+#: debug.c:1499
#, c-format
msgid "No display item numbered %ld"
msgstr ""
-#: debug.c:1493
+#: debug.c:1502
#, c-format
msgid "No watch item numbered %ld"
msgstr ""
-#: debug.c:1519
+#: debug.c:1528
#, fuzzy, c-format
msgid "%d: [\"%s\"] not in array `%s'\n"
msgstr "delete: indeks '%s' findes ikke i array '%s'"
-#: debug.c:1758
+#: debug.c:1767
#, fuzzy
msgid "attempt to use scalar value as array"
msgstr "forsg p at bruge en skalar som array"
-#: debug.c:1847
+#: debug.c:1856
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1858
+#: debug.c:1867
#, c-format
msgid "Display %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1891
+#: debug.c:1900
#, c-format
msgid " in file `%s', line %d\n"
msgstr ""
-#: debug.c:1912
+#: debug.c:1921
#, c-format
msgid " at `%s':%d"
msgstr ""
-#: debug.c:1928 debug.c:1991
+#: debug.c:1937 debug.c:2000
#, c-format
msgid "#%ld\tin "
msgstr ""
-#: debug.c:1965
+#: debug.c:1974
#, c-format
msgid "More stack frames follow ...\n"
msgstr ""
-#: debug.c:2008
+#: debug.c:2017
#, fuzzy
msgid "invalid frame number"
msgstr "Ugyldig intervalslutning"
-#: debug.c:2180
+#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2187
+#: debug.c:2207
#, c-format
msgid "Note: breakpoint %d (enabled), also set at %s:%d"
msgstr ""
-#: debug.c:2194
+#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2201
+#: debug.c:2221
#, c-format
msgid "Note: breakpoint %d (disabled), also set at %s:%d"
msgstr ""
-#: debug.c:2218
+#: debug.c:2238
#, c-format
msgid "Breakpoint %d set at file `%s', line %d\n"
msgstr ""
-#: debug.c:2320
+#: debug.c:2340
#, c-format
msgid "Can't set breakpoint in file `%s'\n"
msgstr ""
-#: debug.c:2349 debug.c:2472 debug.c:3330
+#: debug.c:2369 debug.c:2492 debug.c:3350
#, fuzzy, c-format
msgid "line number %d in file `%s' out of range"
msgstr "exp: argumentet %g er uden for det tilladte omrde"
-#: debug.c:2353
+#: debug.c:2373
#, c-format
msgid "Can't find rule!!!\n"
msgstr ""
-#: debug.c:2355
+#: debug.c:2375
#, c-format
msgid "Can't set breakpoint at `%s':%d\n"
msgstr ""
-#: debug.c:2367
+#: debug.c:2387
#, c-format
msgid "Can't set breakpoint in function `%s'\n"
msgstr ""
-#: debug.c:2383
+#: debug.c:2403
#, c-format
msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
msgstr ""
-#: debug.c:2488 debug.c:2510
+#: debug.c:2508 debug.c:2530
#, c-format
msgid "Deleted breakpoint %d"
msgstr ""
-#: debug.c:2494
+#: debug.c:2514
#, c-format
msgid "No breakpoint(s) at entry to function `%s'\n"
msgstr ""
-#: debug.c:2521
+#: debug.c:2541
#, fuzzy, c-format
msgid "No breakpoint at file `%s', line #%d\n"
msgstr "fejl ved lsning af inddatafilen '%s': %s"
-#: debug.c:2576 debug.c:2617 debug.c:2637 debug.c:2680
+#: debug.c:2596 debug.c:2637 debug.c:2657 debug.c:2700
msgid "invalid breakpoint number"
msgstr ""
-#: debug.c:2592
+#: debug.c:2612
msgid "Delete all breakpoints? (y or n) "
msgstr ""
-#: debug.c:2593 debug.c:2903 debug.c:2956
+#: debug.c:2613 debug.c:2923 debug.c:2976
msgid "y"
msgstr ""
-#: debug.c:2642
+#: debug.c:2662
#, c-format
msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n"
msgstr ""
-#: debug.c:2646
+#: debug.c:2666
#, c-format
msgid "Will stop next time breakpoint %d is reached.\n"
msgstr ""
-#: debug.c:2763
+#: debug.c:2783
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
msgstr ""
-#: debug.c:2888
+#: debug.c:2908
#, c-format
msgid "Failed to restart debugger"
msgstr ""
-#: debug.c:2902
+#: debug.c:2922
msgid "Program already running. Restart from beginning (y/n)? "
msgstr ""
-#: debug.c:2906
+#: debug.c:2926
#, c-format
msgid "Program not restarted\n"
msgstr ""
-#: debug.c:2916
+#: debug.c:2936
#, c-format
msgid "error: cannot restart, operation not allowed\n"
msgstr ""
-#: debug.c:2922
+#: debug.c:2942
#, c-format
msgid "error (%s): cannot restart, ignoring rest of the commands\n"
msgstr ""
-#: debug.c:2930
+#: debug.c:2950
#, c-format
msgid "Starting program: \n"
msgstr ""
-#: debug.c:2939
+#: debug.c:2959
#, c-format
msgid "Program exited %s with exit value: %d\n"
msgstr ""
-#: debug.c:2955
+#: debug.c:2975
msgid "The program is running. Exit anyway (y/n)? "
msgstr ""
-#: debug.c:2990
+#: debug.c:3010
#, c-format
msgid "Not stopped at any breakpoint; argument ignored.\n"
msgstr ""
-#: debug.c:2995
+#: debug.c:3015
#, c-format
msgid "invalid breakpoint number %d."
msgstr ""
-#: debug.c:3000
+#: debug.c:3020
#, c-format
msgid "Will ignore next %ld crossings of breakpoint %d.\n"
msgstr ""
-#: debug.c:3187
+#: debug.c:3207
#, c-format
msgid "'finish' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3192
+#: debug.c:3212
#, c-format
msgid "Run till return from "
msgstr ""
-#: debug.c:3235
+#: debug.c:3255
#, c-format
msgid "'return' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3349
+#: debug.c:3369
#, c-format
msgid "Can't find specified location in function `%s'\n"
msgstr ""
-#: debug.c:3357
+#: debug.c:3377
#, fuzzy, c-format
msgid "invalid source line %d in file `%s'"
msgstr "allerede inkluderet kildefil '%s'"
-#: debug.c:3372
+#: debug.c:3392
#, c-format
msgid "Can't find specified location %d in file `%s'\n"
msgstr ""
-#: debug.c:3404
+#: debug.c:3424
#, fuzzy, c-format
msgid "element not in array\n"
msgstr "delete: indeks '%s' findes ikke i array '%s'"
-#: debug.c:3404
+#: debug.c:3424
#, c-format
msgid "untyped variable\n"
msgstr ""
-#: debug.c:3446
+#: debug.c:3466
#, c-format
msgid "Stopping in %s ...\n"
msgstr ""
-#: debug.c:3523
+#: debug.c:3543
#, c-format
msgid "'finish' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:3530
+#: debug.c:3550
#, c-format
msgid "'until' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:4165
+#: debug.c:4185
msgid "\t------[Enter] to continue or q [Enter] to quit------"
msgstr ""
-#: debug.c:4166
+#: debug.c:4186
msgid "q"
msgstr ""
-#: debug.c:4986
+#: debug.c:5001
#, fuzzy, c-format
msgid "[\"%s\"] not in array `%s'"
msgstr "delete: indeks '%s' findes ikke i array '%s'"
-#: debug.c:5192
+#: debug.c:5207
#, c-format
msgid "sending output to stdout\n"
msgstr ""
-#: debug.c:5232
+#: debug.c:5247
msgid "invalid number"
msgstr ""
-#: debug.c:5366
+#: debug.c:5381
#, fuzzy, c-format
msgid "`%s' not allowed in current context; statement ignored"
msgstr "'exit' kan ikke kaldes i den aktuelle kontekst"
-#: debug.c:5374
+#: debug.c:5389
#, fuzzy
msgid "`return' not allowed in current context; statement ignored"
msgstr "'exit' kan ikke kaldes i den aktuelle kontekst"
-#: debug.c:5575
+#: debug.c:5590
#, fuzzy, c-format
msgid "No symbol `%s' in current context"
msgstr "forsg p at bruge array '%s' i skalarsammenhng"
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1192
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr ""
-#: dfa.c:1052
+#: dfa.c:1174
#, fuzzy
msgid "invalid character class"
msgstr "Ugyldigt tegnklassenavn"
-#: dfa.c:1229
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
-#: dfa.c:1281
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr ""
-#: dfa.c:1428 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Ugyldigt indhold i \\{\\}"
-#: dfa.c:1431 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "Regulrt udtryk for stort"
-#: dfa.c:1816
+#: dfa.c:1936
msgid "unbalanced ("
msgstr ""
-#: dfa.c:1943
+#: dfa.c:2062
msgid "no syntax specified"
msgstr ""
-#: dfa.c:1951
+#: dfa.c:2070
msgid "unbalanced )"
msgstr ""
@@ -1823,11 +1833,11 @@ msgstr "ukendt opkode %d"
msgid "opcode %s not an operator or keyword"
msgstr "opkode %s er ikke en operator eller et ngleord"
-#: eval.c:471
+#: eval.c:472
msgid "buffer overflow in genflags2str"
msgstr "bufferoverlb i genflags2str"
-#: eval.c:674
+#: eval.c:675
#, c-format
msgid ""
"\n"
@@ -1838,71 +1848,71 @@ msgstr ""
"\t# Funktionskaldsstak:\n"
"\n"
-#: eval.c:703
+#: eval.c:704
msgid "`IGNORECASE' is a gawk extension"
msgstr "'IGNORECASE' er en gawk-udvidelse"
-#: eval.c:735
+#: eval.c:736
msgid "`BINMODE' is a gawk extension"
msgstr "'BINMODE' er en gawk-udvidelse"
-#: eval.c:793
+#: eval.c:794
#, c-format
msgid "BINMODE value `%s' is invalid, treated as 3"
msgstr "BINMODE vrdi '%s' er ugyldig, behandles som 3"
-#: eval.c:884
+#: eval.c:885
#, c-format
msgid "bad `%sFMT' specification `%s'"
msgstr "forkert '%sFMT'-specifikation '%s'"
-#: eval.c:968
+#: eval.c:969
msgid "turning off `--lint' due to assignment to `LINT'"
msgstr "deaktiverer '--lint' p grund af en tildeling til 'LINT'"
-#: eval.c:1146
+#: eval.c:1147
#, c-format
msgid "reference to uninitialized argument `%s'"
msgstr "reference til ikke-initieret argument '%s'"
-#: eval.c:1147
+#: eval.c:1148
#, c-format
msgid "reference to uninitialized variable `%s'"
msgstr "reference til ikke-initieret variabel '%s'"
-#: eval.c:1165
+#: eval.c:1166
msgid "attempt to field reference from non-numeric value"
msgstr "forsg p at referere til et felt fra ikke-numerisk vrdi"
-#: eval.c:1167
+#: eval.c:1168
msgid "attempt to field reference from null string"
msgstr "forsg p at referere til et felt fra tom streng"
-#: eval.c:1175
+#: eval.c:1176
#, c-format
msgid "attempt to access field %ld"
msgstr "forsg p at f adgang til felt %ld"
-#: eval.c:1184
+#: eval.c:1185
#, c-format
msgid "reference to uninitialized field `$%ld'"
msgstr "reference til ikke-initieret felt '$%ld'"
-#: eval.c:1271
+#: eval.c:1272
#, c-format
msgid "function `%s' called with more arguments than declared"
msgstr "funktionen '%s' kaldt med flere argumenter end deklareret"
-#: eval.c:1466
+#: eval.c:1473
#, c-format
msgid "unwind_stack: unexpected type `%s'"
msgstr "unwind_stack: uventet type `%s'"
-#: eval.c:1562
+#: eval.c:1569
msgid "division by zero attempted in `/='"
msgstr "forsgte at dividere med nul i '/='"
-#: eval.c:1569
+#: eval.c:1576
#, c-format
msgid "division by zero attempted in `%%='"
msgstr "forsgte at dividere med nul i '%%='"
@@ -1916,7 +1926,7 @@ msgstr "udvidelser er ikke tilladt i sandkasse-tilstand"
msgid "-l / @load are gawk extensions"
msgstr "@include er en gawk-udvidelse"
-#: ext.c:95 ext.c:177
+#: ext.c:95
msgid "load_ext: received NULL lib_name"
msgstr ""
@@ -1948,6 +1958,10 @@ msgstr ""
msgid "`extension' is a gawk extension"
msgstr "'extension' er en gawk-udvidelse"
+#: ext.c:177
+msgid "extension: received NULL lib_name"
+msgstr ""
+
#: ext.c:180
#, fuzzy, c-format
msgid "extension: cannot open library `%s' (%s)"
@@ -1972,37 +1986,37 @@ msgstr ""
msgid "make_builtin: missing function name"
msgstr "extension: mangler funktionsnavn"
-#: ext.c:238
+#: ext.c:236
#, fuzzy, c-format
msgid "make_builtin: can't redefine function `%s'"
msgstr "extension: kan ikke omdefinere funktion '%s'"
-#: ext.c:242
+#: ext.c:240
#, fuzzy, c-format
msgid "make_builtin: function `%s' already defined"
msgstr "extension: funktionen '%s' er allerede defineret"
-#: ext.c:246
+#: ext.c:244
#, fuzzy, c-format
msgid "make_builtin: function name `%s' previously defined"
msgstr "extension: funktionsnavnet '%s' er defineret tidligere"
-#: ext.c:248
+#: ext.c:246
#, fuzzy, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
msgstr "extension: kan ikke bruge gawk's indbyggede '%s' som funktionsnavn"
-#: ext.c:251 ext.c:304
+#: ext.c:249 ext.c:304
#, c-format
msgid "make_builtin: negative argument count for function `%s'"
msgstr "make_builtin: negativt argumentantal for funktion '%s'"
-#: ext.c:278
+#: ext.c:276
#, fuzzy
msgid "extension: missing function name"
msgstr "extension: mangler funktionsnavn"
-#: ext.c:283
+#: ext.c:279 ext.c:283
#, fuzzy, c-format
msgid "extension: illegal character `%c' in function name `%s'"
msgstr "extension: ugyldigt tegn '%c' i funktionsnavn '%s'"
@@ -2027,155 +2041,160 @@ msgstr "funktionsnavnet '%s' er allerede defineret"
msgid "extension: can't use gawk built-in `%s' as function name"
msgstr "extension: kan ikke bruge gawk's indbyggede '%s' som funktionsnavn"
-#: ext.c:374
+#: ext.c:375
#, c-format
msgid "function `%s' defined to take no more than %d argument(s)"
msgstr "funktionen '%s' defineret til at tage ikke mere end %d argumenter"
-#: ext.c:377
+#: ext.c:378
#, c-format
msgid "function `%s': missing argument #%d"
msgstr "funktion '%s': mangler argument nummer %d"
-#: ext.c:394
+#: ext.c:395
#, c-format
msgid "function `%s': argument #%d: attempt to use scalar as an array"
msgstr ""
"funktion '%s': argument nummer %d: forsg p at bruge skalar som et array"
-#: ext.c:398
+#: ext.c:399
#, c-format
msgid "function `%s': argument #%d: attempt to use array as a scalar"
msgstr ""
"funktion '%s': argument nummer %d: forsg p at bruge array som en skalar"
-#: ext.c:412
+#: ext.c:413
msgid "dynamic loading of library not supported"
msgstr ""
-#: extension/filefuncs.c:97
+#: extension/filefuncs.c:159
#, fuzzy
msgid "chdir: called with incorrect number of arguments, expecting 1"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/filefuncs.c:343
+#: extension/filefuncs.c:439
#, c-format
msgid "stat: unable to read symbolic link `%s'"
msgstr ""
-#: extension/filefuncs.c:376
+#: extension/filefuncs.c:472
#, fuzzy
msgid "stat: called with wrong number of arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/filefuncs.c:383
+#: extension/filefuncs.c:479
#, fuzzy
msgid "stat: bad parameters"
msgstr "%s: er parameter\n"
-#: extension/filefuncs.c:437
+#: extension/filefuncs.c:533
#, fuzzy, c-format
msgid "fts init: could not create variable %s"
msgstr "indeks: andet argument er ikke en streng"
-#: extension/filefuncs.c:460
+#: extension/filefuncs.c:554
+#, fuzzy
+msgid "fts is not supported on this system"
+msgstr "'%s' understttes ikke i gamle versioner af awk"
+
+#: extension/filefuncs.c:573
msgid "fill_stat_element: could not create array"
msgstr ""
-#: extension/filefuncs.c:469
+#: extension/filefuncs.c:582
msgid "fill_stat_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:484
+#: extension/filefuncs.c:597
#, fuzzy
msgid "fill_path_element: could not set element"
msgstr "indeks: andet argument er ikke en streng"
-#: extension/filefuncs.c:500
+#: extension/filefuncs.c:613
msgid "fill_error_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:547 extension/filefuncs.c:594
+#: extension/filefuncs.c:660 extension/filefuncs.c:707
msgid "fts-process: could not create array"
msgstr ""
-#: extension/filefuncs.c:557 extension/filefuncs.c:604
-#: extension/filefuncs.c:622
+#: extension/filefuncs.c:670 extension/filefuncs.c:717
+#: extension/filefuncs.c:735
#, fuzzy
msgid "fts-process: could not set element"
msgstr "indeks: andet argument er ikke en streng"
-#: extension/filefuncs.c:671
+#: extension/filefuncs.c:784
#, fuzzy
msgid "fts: called with incorrect number of arguments, expecting 3"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/filefuncs.c:674
+#: extension/filefuncs.c:787
#, fuzzy
msgid "fts: bad first parameter"
msgstr "%s: er parameter\n"
-#: extension/filefuncs.c:680
+#: extension/filefuncs.c:793
#, fuzzy
msgid "fts: bad second parameter"
msgstr "%s: er parameter\n"
-#: extension/filefuncs.c:686
+#: extension/filefuncs.c:799
#, fuzzy
msgid "fts: bad third parameter"
msgstr "%s: er parameter\n"
-#: extension/filefuncs.c:693
+#: extension/filefuncs.c:806
#, fuzzy
msgid "fts: could not flatten array\n"
msgstr "'%s' er ikke et gyldigt variabelnavn"
-#: extension/filefuncs.c:711
+#: extension/filefuncs.c:824
msgid "fts: ignoring sneaky FTS_NOSTAT flag. nyah, nyah, nyah."
msgstr ""
-#: extension/filefuncs.c:728
+#: extension/filefuncs.c:841
msgid "fts: clear_array() failed\n"
msgstr ""
-#: extension/fnmatch.c:98
+#: extension/fnmatch.c:112
#, fuzzy
msgid "fnmatch: called with less than three arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/fnmatch.c:101
+#: extension/fnmatch.c:115
#, fuzzy
msgid "fnmatch: called with more than three arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/fnmatch.c:104
+#: extension/fnmatch.c:118
#, fuzzy
msgid "fnmatch: could not get first argument"
msgstr "strftime: fik et frste argument som ikke er en streng"
-#: extension/fnmatch.c:109
+#: extension/fnmatch.c:123
#, fuzzy
msgid "fnmatch: could not get second argument"
msgstr "indeks: andet argument er ikke en streng"
-#: extension/fnmatch.c:114
+#: extension/fnmatch.c:128
msgid "fnmatch: could not get third argument"
msgstr ""
-#: extension/fnmatch.c:127
+#: extension/fnmatch.c:141
msgid "fnmatch is not implemented on this system\n"
msgstr ""
-#: extension/fnmatch.c:159
+#: extension/fnmatch.c:173
msgid "fnmatch init: could not add FNM_NOMATCH variable"
msgstr ""
-#: extension/fnmatch.c:169
+#: extension/fnmatch.c:183
#, c-format
msgid "fnmatch init: could not set array element %s"
msgstr ""
-#: extension/fnmatch.c:179
+#: extension/fnmatch.c:193
msgid "fnmatch init: could not install FNM array"
msgstr ""
@@ -2203,88 +2222,88 @@ msgstr "sqrt: kaldt med negativt argument %g"
msgid "wait: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/inplace.c:110
+#: extension/inplace.c:130
msgid "inplace_begin: in-place editing already active"
msgstr ""
-#: extension/inplace.c:113 extension/inplace.c:187
+#: extension/inplace.c:133 extension/inplace.c:207
#, c-format
msgid "inplace_begin: expects 2 arguments but called with %d"
msgstr ""
-#: extension/inplace.c:116
+#: extension/inplace.c:136
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
msgstr ""
-#: extension/inplace.c:124
+#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
msgstr ""
-#: extension/inplace.c:131
+#: extension/inplace.c:151
#, fuzzy, c-format
msgid "inplace_begin: Cannot stat `%s' (%s)"
msgstr "atalt: extension: kan ikke bne '%s' (%s)\n"
-#: extension/inplace.c:138
+#: extension/inplace.c:158
#, fuzzy, c-format
msgid "inplace_begin: `%s' is not a regular file"
msgstr "'%s' er ikke et gyldigt variabelnavn"
-#: extension/inplace.c:149
+#: extension/inplace.c:169
#, c-format
msgid "inplace_begin: mkstemp(`%s') failed (%s)"
msgstr ""
-#: extension/inplace.c:158
+#: extension/inplace.c:178
#, fuzzy, c-format
msgid "inplace_begin: chmod failed (%s)"
msgstr "%s: lukning mislykkedes (%s)"
-#: extension/inplace.c:165
+#: extension/inplace.c:185
#, c-format
msgid "inplace_begin: dup(stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:168
+#: extension/inplace.c:188
#, c-format
msgid "inplace_begin: dup2(%d, stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:171
+#: extension/inplace.c:191
#, fuzzy, c-format
msgid "inplace_begin: close(%d) failed (%s)"
msgstr "%s: lukning mislykkedes (%s)"
-#: extension/inplace.c:190
+#: extension/inplace.c:210
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
msgstr ""
-#: extension/inplace.c:197
+#: extension/inplace.c:217
msgid "inplace_end: in-place editing not active"
msgstr ""
-#: extension/inplace.c:203
+#: extension/inplace.c:223
#, c-format
msgid "inplace_end: dup2(%d, stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:206
+#: extension/inplace.c:226
#, fuzzy, c-format
msgid "inplace_end: close(%d) failed (%s)"
msgstr "%s: lukning mislykkedes (%s)"
-#: extension/inplace.c:210
+#: extension/inplace.c:230
#, c-format
msgid "inplace_end: fsetpos(stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:223
+#: extension/inplace.c:243
#, fuzzy, c-format
msgid "inplace_end: link(`%s', `%s') failed (%s)"
msgstr "datakanalsrensning af '%s' mislykkedes (%s)."
-#: extension/inplace.c:229
+#: extension/inplace.c:253
#, fuzzy, c-format
msgid "inplace_end: rename(`%s', `%s') failed (%s)"
msgstr "lukning af fd %d ('%s') mislykkedes (%s)"
@@ -2319,177 +2338,177 @@ msgstr "sqrt: kaldt med negativt argument %g"
msgid "chr: called with inappropriate argument(s)"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/readdir.c:203
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr ""
-#: extension/readfile.c:84
+#: extension/readfile.c:113
#, fuzzy
msgid "readfile: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
#, fuzzy
msgid "readfile: called with no arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/rwarray.c:120
+#: extension/rwarray.c:124
#, fuzzy
msgid "writea: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/rwarray.c:127
+#: extension/rwarray.c:131
#, fuzzy, c-format
msgid "do_writea: argument 0 is not a string\n"
msgstr "exp: argumentet %g er uden for det tilladte omrde\n"
-#: extension/rwarray.c:133
+#: extension/rwarray.c:137
#, fuzzy, c-format
msgid "do_writea: argument 1 is not an array\n"
msgstr "split: fjerde argument er ikke et array\n"
-#: extension/rwarray.c:180
+#: extension/rwarray.c:184
#, c-format
msgid "write_array: could not flatten array\n"
msgstr ""
-#: extension/rwarray.c:194
+#: extension/rwarray.c:198
#, c-format
msgid "write_array: could not release flattened array\n"
msgstr ""
-#: extension/rwarray.c:276
+#: extension/rwarray.c:280
#, fuzzy
msgid "reada: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/rwarray.c:283
+#: extension/rwarray.c:287
#, fuzzy, c-format
msgid "do_reada: argument 0 is not a string\n"
msgstr "exp: argumentet %g er uden for det tilladte omrde"
-#: extension/rwarray.c:289
+#: extension/rwarray.c:293
#, fuzzy, c-format
msgid "do_reada: argument 1 is not an array\n"
msgstr "match: tredje argument er ikke et array"
-#: extension/rwarray.c:333
+#: extension/rwarray.c:337
#, c-format
msgid "do_reada: clear_array failed\n"
msgstr ""
-#: extension/rwarray.c:370
+#: extension/rwarray.c:374
#, c-format
msgid "read_array: set_array_element failed\n"
msgstr ""
-#: extension/time.c:81
+#: extension/time.c:113
#, fuzzy
msgid "gettimeofday: ignoring arguments"
msgstr "mktime: fik et argument som ikke er en streng"
-#: extension/time.c:112
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr ""
-#: extension/time.c:133
+#: extension/time.c:165
#, fuzzy
msgid "sleep: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
-#: extension/time.c:136
+#: extension/time.c:168
#, fuzzy
msgid "sleep: missing required numeric argument"
msgstr "exp: fik et ikke-numerisk argument"
-#: extension/time.c:142
+#: extension/time.c:174
#, fuzzy
msgid "sleep: argument is negative"
msgstr "exp: argumentet %g er uden for det tilladte omrde"
-#: extension/time.c:176
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr ""
-#: field.c:339
+#: field.c:345
msgid "NF set to negative value"
msgstr "NF sat til en negativ vrdi"
-#: field.c:964 field.c:971 field.c:975
+#: field.c:971 field.c:978 field.c:982
msgid "split: fourth argument is a gawk extension"
msgstr "split: fjerde argument er en gawk-udvidelse"
-#: field.c:968
+#: field.c:975
msgid "split: fourth argument is not an array"
msgstr "split: fjerde argument er ikke et array"
-#: field.c:982
+#: field.c:989
msgid "split: second argument is not an array"
msgstr "split: andet argument er ikke et array"
-#: field.c:986
+#: field.c:993
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:991
+#: field.c:998
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:994
+#: field.c:1001
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:1023
+#: field.c:1032
msgid "split: null string for third arg is a gawk extension"
msgstr "split: tom streng som tredje argument er en gawk-udvidelse"
-#: field.c:1063
+#: field.c:1072
msgid "patsplit: fourth argument is not an array"
msgstr "patsplit: fjerde argument er ikke et array"
-#: field.c:1068
+#: field.c:1077
msgid "patsplit: second argument is not an array"
msgstr "patsplit: andet argument er ikke et array"
-#: field.c:1074
+#: field.c:1083
msgid "patsplit: third argument must be non-null"
msgstr "patmatch: tredje argument er ikke et array"
-#: field.c:1078
+#: field.c:1087
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:1083
+#: field.c:1092
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:1086
+#: field.c:1095
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:1124
+#: field.c:1133
msgid "`FIELDWIDTHS' is a gawk extension"
msgstr "'FIELDWIDTHS' er en gawk-udvidelse"
-#: field.c:1188
+#: field.c:1197
#, c-format
msgid "invalid FIELDWIDTHS value, near `%s'"
msgstr "ugyldig FIELDWIDTHS vrdi, nr '%s"
-#: field.c:1261
+#: field.c:1270
msgid "null string for `FS' is a gawk extension"
msgstr "tom streng som 'FS' er en gawk-udvidelse"
-#: field.c:1265
+#: field.c:1274
msgid "old awk does not support regexps as value of `FS'"
msgstr "gamle versioner af awk understtter ikke regexp'er som vrdi for 'FS'"
-#: field.c:1384
+#: field.c:1393
msgid "`FPAT' is a gawk extension"
msgstr "'FPAT' er en gawk-udvidelse"
@@ -2505,590 +2524,590 @@ msgstr ""
msgid "node_to_awk_value: received null val"
msgstr ""
-#: gawkapi.c:808
+#: gawkapi.c:807
#, fuzzy
msgid "remove_element: received null array"
msgstr "length: fik et array-argument"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr ""
-#: gawkapi.c:943
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr ""
-#: gawkapi.c:948
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr ""
-#: getopt.c:603 getopt.c:632
+#: getopt.c:604 getopt.c:633
#, fuzzy, c-format
msgid "%s: option '%s' is ambiguous; possibilities:"
msgstr "%s: flaget '%s' er flertydigt\n"
-#: getopt.c:678 getopt.c:682
+#: getopt.c:679 getopt.c:683
#, c-format
msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: flaget '--%s' tillader ikke noget argument\n"
-#: getopt.c:691 getopt.c:696
+#: getopt.c:692 getopt.c:697
#, c-format
msgid "%s: option '%c%s' doesn't allow an argument\n"
msgstr "%s: flaget '%c%s' tillader ikke noget argument\n"
-#: getopt.c:739 getopt.c:758
+#: getopt.c:740 getopt.c:759
#, c-format
msgid "%s: option '--%s' requires an argument\n"
msgstr "%s: flaget '--%s' krver et argument\n"
-#: getopt.c:796 getopt.c:799
+#: getopt.c:797 getopt.c:800
#, c-format
msgid "%s: unrecognized option '--%s'\n"
msgstr "%s: ukendt flag '--%s'\n"
-#: getopt.c:807 getopt.c:810
+#: getopt.c:808 getopt.c:811
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
msgstr "%s: ukendt flag '%c%s'\n"
-#: getopt.c:859 getopt.c:862
+#: getopt.c:860 getopt.c:863
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: ugyldigt flag - '%c'\n"
-#: getopt.c:915 getopt.c:932 getopt.c:1142 getopt.c:1160
+#: getopt.c:916 getopt.c:933 getopt.c:1143 getopt.c:1161
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: flaget krver et argument - '%c'\n"
-#: getopt.c:988 getopt.c:1004
+#: getopt.c:989 getopt.c:1005
#, c-format
msgid "%s: option '-W %s' is ambiguous\n"
msgstr "%s: flaget '-W %s' er flertydigt\n"
-#: getopt.c:1028 getopt.c:1046
+#: getopt.c:1029 getopt.c:1047
#, c-format
msgid "%s: option '-W %s' doesn't allow an argument\n"
msgstr "%s: flaget '-W %s' tillader ikke noget argument\n"
-#: getopt.c:1067 getopt.c:1085
+#: getopt.c:1068 getopt.c:1086
#, c-format
msgid "%s: option '-W %s' requires an argument\n"
msgstr "%s: flaget '-W %s' krver et argument\n"
-#: io.c:347
+#: io.c:392
#, c-format
msgid "command line argument `%s' is a directory: skipped"
msgstr "kommandolinjeargument '%s' er et katalog, oversprunget"
-#: io.c:350 io.c:463
+#: io.c:395 io.c:513
#, c-format
msgid "cannot open file `%s' for reading (%s)"
msgstr "kan ikke bne filen '%s' for lsning (%s)"
-#: io.c:590
+#: io.c:640
#, c-format
msgid "close of fd %d (`%s') failed (%s)"
msgstr "lukning af fd %d ('%s') mislykkedes (%s)"
-#: io.c:666
+#: io.c:716
msgid "redirection not allowed in sandbox mode"
msgstr "omdirigering ikke tilladt i sandkasse-tilstand"
-#: io.c:700
+#: io.c:750
#, c-format
msgid "expression in `%s' redirection only has numeric value"
msgstr "udtrykket i '%s'-omdirigering har kun numerisk vrdi"
-#: io.c:706
+#: io.c:756
#, c-format
msgid "expression for `%s' redirection has null string value"
msgstr "udtrykket for '%s'-omdirigering har en tom streng som vrdi"
-#: io.c:711
+#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
msgstr ""
"filnavnet '%s' for '%s'-omdirigering kan vre resultatet af et logisk udtryk"
-#: io.c:754
+#: io.c:809
#, c-format
msgid "unnecessary mixing of `>' and `>>' for file `%.*s'"
msgstr "undig blanding af '>' og '>>' for filen '%.*s'"
-#: io.c:808
+#: io.c:863
#, c-format
msgid "can't open pipe `%s' for output (%s)"
msgstr "kan ikke bne datakanalen '%s' for udskrivning (%s)"
-#: io.c:818
+#: io.c:873
#, c-format
msgid "can't open pipe `%s' for input (%s)"
msgstr "kan ikke bne datakanalen '%s' for indtastning (%s)"
-#: io.c:849
+#: io.c:904
#, c-format
msgid "can't open two way pipe `%s' for input/output (%s)"
msgstr "kan ikke bne tovejsdatakanalen '%s' for ind-/uddata (%s)"
-#: io.c:928
+#: io.c:986
#, c-format
msgid "can't redirect from `%s' (%s)"
msgstr "kan ikke omdirigere fra '%s' (%s)"
-#: io.c:931
+#: io.c:989
#, c-format
msgid "can't redirect to `%s' (%s)"
msgstr "kan ikke omdirigere til '%s' (%s)"
-#: io.c:982
+#: io.c:1040
msgid ""
"reached system limit for open files: starting to multiplex file descriptors"
msgstr ""
"nede systembegrnsningen for bne filer: begynder at multiplekse "
"fildeskriptorer"
-#: io.c:998
+#: io.c:1056
#, c-format
msgid "close of `%s' failed (%s)."
msgstr "lukning af '%s' mislykkedes (%s)."
-#: io.c:1006
+#: io.c:1064
msgid "too many pipes or input files open"
msgstr "for mange datakanaler eller inddatafiler bne"
-#: io.c:1028
+#: io.c:1086
msgid "close: second argument must be `to' or `from'"
msgstr "close: andet argument skal vre 'to' eller 'from'"
-#: io.c:1045
+#: io.c:1103
#, c-format
msgid "close: `%.*s' is not an open file, pipe or co-process"
msgstr "close: '%.*s' er ikke en ben fil, datakanal eller ko-proces"
-#: io.c:1050
+#: io.c:1108
msgid "close of redirection that was never opened"
msgstr "lukning af omdirigering som aldrig blev bnet"
-#: io.c:1147
+#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
msgstr ""
"close: omdirigeringen '%s' blev ikke bnet med '|&', andet argument ignoreret"
-#: io.c:1164
+#: io.c:1222
#, c-format
msgid "failure status (%d) on pipe close of `%s' (%s)"
msgstr "fejlstatus (%d) fra lukning af datakanalen '%s' (%s)"
-#: io.c:1167
+#: io.c:1225
#, c-format
msgid "failure status (%d) on file close of `%s' (%s)"
msgstr "fejlstatus (%d) fra fillukning af '%s' (%s)"
-#: io.c:1187
+#: io.c:1245
#, c-format
msgid "no explicit close of socket `%s' provided"
msgstr "ingen eksplicit lukning af soklen '%s' angivet"
-#: io.c:1190
+#: io.c:1248
#, c-format
msgid "no explicit close of co-process `%s' provided"
msgstr "ingen eksplicit lukning af ko-processen '%s' angivet"
-#: io.c:1193
+#: io.c:1251
#, c-format
msgid "no explicit close of pipe `%s' provided"
msgstr "ingen eksplicit lukning af datakanalen '%s' angivet"
-#: io.c:1196
+#: io.c:1254
#, c-format
msgid "no explicit close of file `%s' provided"
msgstr "ingen eksplicit lukning af filen '%s' angivet"
-#: io.c:1224 io.c:1279 main.c:842 main.c:879
+#: io.c:1284 io.c:1342 main.c:864 main.c:906
#, c-format
msgid "error writing standard output (%s)"
msgstr "fejl ved skrivning til standard ud (%s)"
-#: io.c:1228 io.c:1284
+#: io.c:1289 io.c:1348 main.c:866
#, c-format
msgid "error writing standard error (%s)"
msgstr "fejl ved skrivning til standard fejl (%s)"
-#: io.c:1236
+#: io.c:1297
#, c-format
msgid "pipe flush of `%s' failed (%s)."
msgstr "datakanalsrensning af '%s' mislykkedes (%s)."
-#: io.c:1239
+#: io.c:1300
#, c-format
msgid "co-process flush of pipe to `%s' failed (%s)."
msgstr "ko-procesrensning af datakanalen til '%s' mislykkedes (%s)."
-#: io.c:1242
+#: io.c:1303
#, c-format
msgid "file flush of `%s' failed (%s)."
msgstr "filrensning af '%s' mislykkedes (%s)."
-#: io.c:1356
+#: io.c:1420
#, c-format
msgid "local port %s invalid in `/inet'"
msgstr "lokal port %s ugyldig i '/inet'"
-#: io.c:1374
+#: io.c:1438
#, c-format
msgid "remote host and port information (%s, %s) invalid"
msgstr "fjernvrt og portinformation (%s, %s) ugyldige"
-#: io.c:1526
+#: io.c:1590
#, c-format
msgid "no (known) protocol supplied in special filename `%s'"
msgstr "ingen (kendt) protokol opgivet i special-filnavn '%s'"
-#: io.c:1540
+#: io.c:1604
#, c-format
msgid "special file name `%s' is incomplete"
msgstr "special-filnavn '%s' er ufuldstndigt"
-#: io.c:1557
+#: io.c:1621
msgid "must supply a remote hostname to `/inet'"
msgstr "fjernmaskinenavn til '/inet' skal angives"
-#: io.c:1575
+#: io.c:1639
msgid "must supply a remote port to `/inet'"
msgstr "fjernport til '/inet' skal angives"
-#: io.c:1621
+#: io.c:1685
msgid "TCP/IP communications are not supported"
msgstr "TCP/IP-kommunikation understttes ikke"
-#: io.c:1796
+#: io.c:1867
#, c-format
msgid "could not open `%s', mode `%s'"
msgstr "kunne ikke bne '%s', tilstand '%s'"
-#: io.c:1846
+#: io.c:1917
#, c-format
msgid "close of master pty failed (%s)"
msgstr "lukning af master-pty mislykkedes (%s)"
-#: io.c:1848 io.c:2024 io.c:2194
+#: io.c:1919 io.c:2105 io.c:2305
#, c-format
msgid "close of stdout in child failed (%s)"
msgstr "lukning af standard ud i underproces mislykkedes (%s)"
-#: io.c:1851
+#: io.c:1922
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
msgstr ""
"flytning af slave-pty til standard ud i underproces mislykkedes (dup: %s)"
-#: io.c:1853 io.c:2029
+#: io.c:1924 io.c:2110
#, c-format
msgid "close of stdin in child failed (%s)"
msgstr "lukning af standard ind i underproces mislykkedes (%s)"
-#: io.c:1856
+#: io.c:1927
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
msgstr ""
"flytning af slave-pty til standard ind i underproces mislykkedes (dup: %s)"
-#: io.c:1858 io.c:1879
+#: io.c:1929 io.c:1951
#, c-format
msgid "close of slave pty failed (%s)"
msgstr "lukning af slave-pty mislykkedes (%s)"
-#: io.c:1965 io.c:2027 io.c:2171 io.c:2197
+#: io.c:2040 io.c:2108 io.c:2276 io.c:2308
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
msgstr ""
"flytning af datakanal til standard ud i underproces mislykkedes (dup: %s)"
-#: io.c:1972 io.c:2032
+#: io.c:2047 io.c:2113
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
msgstr ""
"flytning af datakanalen til standard ind i underproces mislykkedes (dup: %s)"
-#: io.c:1992 io.c:2187
+#: io.c:2073 io.c:2298
msgid "restoring stdout in parent process failed\n"
msgstr "genskabelse af standard ud i forlderprocessen mislykkedes\n"
-#: io.c:2000
+#: io.c:2081
msgid "restoring stdin in parent process failed\n"
msgstr "genskabelse af standard ind i forlderprocessen mislykkedes\n"
-#: io.c:2035 io.c:2199 io.c:2213
+#: io.c:2116 io.c:2310 io.c:2324
#, c-format
msgid "close of pipe failed (%s)"
msgstr "lukning af datakanalen mislykkedes (%s)"
-#: io.c:2089
+#: io.c:2174
msgid "`|&' not supported"
msgstr "'|&' understttes ikke"
-#: io.c:2156
+#: io.c:2261
#, c-format
msgid "cannot open pipe `%s' (%s)"
msgstr "kan ikke bne datakanalen '%s' (%s)"
-#: io.c:2207
+#: io.c:2318
#, c-format
msgid "cannot create child process for `%s' (fork: %s)"
msgstr "kan ikke oprette barneproces for '%s' (fork: %s)"
-#: io.c:2667
+#: io.c:2790
msgid "register_input_parser: received NULL pointer"
msgstr ""
-#: io.c:2695
+#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
msgstr ""
-#: io.c:2702
+#: io.c:2825
#, c-format
msgid "input parser `%s' failed to open `%s'"
msgstr ""
-#: io.c:2722
+#: io.c:2845
msgid "register_output_wrapper: received NULL pointer"
msgstr ""
-#: io.c:2750
+#: io.c:2873
#, c-format
msgid ""
"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
msgstr ""
-#: io.c:2757
+#: io.c:2880
#, c-format
msgid "output wrapper `%s' failed to open `%s'"
msgstr ""
-#: io.c:2778
+#: io.c:2901
msgid "register_output_processor: received NULL pointer"
msgstr ""
-#: io.c:2807
+#: io.c:2930
#, c-format
msgid ""
"two-way processor `%s' conflicts with previously installed two-way processor "
"`%s'"
msgstr ""
-#: io.c:2816
+#: io.c:2939
#, c-format
msgid "two way processor `%s' failed to open `%s'"
msgstr ""
-#: io.c:2923
+#: io.c:3064
#, c-format
msgid "data file `%s' is empty"
msgstr "datafilen '%s' er tom"
-#: io.c:2965 io.c:2973
+#: io.c:3106 io.c:3114
msgid "could not allocate more input memory"
msgstr "kunne ikke allokere mere hukommelse til inddata"
-#: io.c:3539
+#: io.c:3682
msgid "multicharacter value of `RS' is a gawk extension"
msgstr "'RS' som flertegnsvrdi er en gawk-udvidelse"
-#: io.c:3628
+#: io.c:3771
msgid "IPv6 communication is not supported"
msgstr "IPv6-kommunikation understttes ikke"
-#: main.c:388
+#: main.c:405
msgid "empty argument to `-e/--source' ignored"
msgstr "tomt argument til '-e/--source' ignoreret"
-#: main.c:478
+#: main.c:495
#, c-format
msgid "%s: option `-W %s' unrecognized, ignored\n"
msgstr "%s: flaget '-W %s' ukendt, ignoreret\n"
-#: main.c:524
+#: main.c:541
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: flaget krver et argument -- %c\n"
-#: main.c:545
+#: main.c:562
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
msgstr "miljvariablen 'POSIXLY_CORRECT' sat: aktiverer '--posix'"
-#: main.c:551
+#: main.c:568
msgid "`--posix' overrides `--traditional'"
msgstr "'--posix' tilsidestter '--traditional'"
-#: main.c:562
+#: main.c:579
msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
msgstr "'--posix'/'--traditional' tilsidestter '--non-decimal-data'"
-#: main.c:566
+#: main.c:583
#, c-format
msgid "running %s setuid root may be a security problem"
msgstr "at kre %s setuid root kan vre et sikkerhedsproblem"
-#: main.c:571
+#: main.c:588
#, fuzzy
msgid "`--posix' overrides `--characters-as-bytes'"
msgstr "'--posix' tilsidestter '--binary'"
-#: main.c:630
+#: main.c:647
#, c-format
msgid "can't set binary mode on stdin (%s)"
msgstr "kan ikke stte binr tilstand p standard ind (%s)"
-#: main.c:633
+#: main.c:650
#, c-format
msgid "can't set binary mode on stdout (%s)"
msgstr "kan ikke stte binr tilstand p standard ud (%s)"
-#: main.c:635
+#: main.c:652
#, c-format
msgid "can't set binary mode on stderr (%s)"
msgstr "kan ikke stte binr tilstand p standard fejl (%s)"
-#: main.c:693
+#: main.c:710
msgid "no program text at all!"
msgstr "ingen programtekst overhovedet!"
-#: main.c:779
+#: main.c:799
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
msgstr "Brug: %s [flag i POSIX- eller GNU-stil] -f progfil [--] fil ...\n"
-#: main.c:781
+#: main.c:801
#, c-format
msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
msgstr "Brug: %s [flag i POSIX- eller GNU-stil] %cprogram%c fil ...\n"
-#: main.c:786
+#: main.c:806
msgid "POSIX options:\t\tGNU long options: (standard)\n"
msgstr "POSIX-flag:\t\tlange GNU-flag: (standard)\n"
-#: main.c:787
+#: main.c:807
msgid "\t-f progfile\t\t--file=progfile\n"
msgstr "\t-f progfil\t\t--file=progfil\n"
-#: main.c:788
+#: main.c:808
msgid "\t-F fs\t\t\t--field-separator=fs\n"
msgstr "\t-F fs\t\t\t--field-separator=fs\n"
-#: main.c:789
+#: main.c:809
msgid "\t-v var=val\t\t--assign=var=val\n"
msgstr "\t-v var=vrdi\t\t--assign=var=vrdi\n"
-#: main.c:790
+#: main.c:810
msgid "Short options:\t\tGNU long options: (extensions)\n"
msgstr "POSIX-flag:\t\tlange GNU-flag: (udvidelser)\n"
-#: main.c:791
+#: main.c:811
msgid "\t-b\t\t\t--characters-as-bytes\n"
msgstr "\t-b\t\t\t--characters-as-bytes\n"
-#: main.c:792
+#: main.c:812
msgid "\t-c\t\t\t--traditional\n"
msgstr "\t-c\t\t\t--traditional\n"
-#: main.c:793
+#: main.c:813
msgid "\t-C\t\t\t--copyright\n"
msgstr "\t-C\t\t\t--copyright\n"
-#: main.c:794
+#: main.c:814
msgid "\t-d[file]\t\t--dump-variables[=file]\n"
msgstr "\t-d[fil]\t\t--dump-variables[=fil]\n"
-#: main.c:795
+#: main.c:815
#, fuzzy
msgid "\t-D[file]\t\t--debug[=file]\n"
msgstr "\t-p[fil]\t\t--profile[=fil]\n"
-#: main.c:796
+#: main.c:816
msgid "\t-e 'program-text'\t--source='program-text'\n"
msgstr "\t-e 'programtekst'\t--source='programtekst'\n"
-#: main.c:797
+#: main.c:817
msgid "\t-E file\t\t\t--exec=file\n"
msgstr "\t-E fil\t\t\t--exec=fil\n"
-#: main.c:798
+#: main.c:818
msgid "\t-g\t\t\t--gen-pot\n"
msgstr "\t-g\t\t\t--gen-pot\n"
-#: main.c:799
+#: main.c:819
msgid "\t-h\t\t\t--help\n"
msgstr "\t-h\t\t\t--help\n"
-#: main.c:800
+#: main.c:820
msgid "\t-i includefile\t\t--include=includefile\n"
msgstr ""
-#: main.c:801
+#: main.c:821
msgid "\t-l library\t\t--load=library\n"
msgstr ""
-#: main.c:802
+#: main.c:822
msgid "\t-L [fatal]\t\t--lint[=fatal]\n"
msgstr "\t-L [fatal]\t\t--lint[=fatal]\n"
-#: main.c:803
+#: main.c:823
msgid "\t-n\t\t\t--non-decimal-data\n"
msgstr "\t-n\t\t\t--non-decimal-data\n"
-#: main.c:804
+#: main.c:824
#, fuzzy
msgid "\t-M\t\t\t--bignum\n"
msgstr "\t-g\t\t\t--gen-pot\n"
-#: main.c:805
+#: main.c:825
msgid "\t-N\t\t\t--use-lc-numeric\n"
msgstr "\t-N\t\t\t--use-lc-numeric\n"
-#: main.c:806
+#: main.c:826
#, fuzzy
msgid "\t-o[file]\t\t--pretty-print[=file]\n"
msgstr "\t-p[fil]\t\t--profile[=fil]\n"
-#: main.c:807
+#: main.c:827
msgid "\t-O\t\t\t--optimize\n"
msgstr "\t-O\t\t\t--optimize\n"
-#: main.c:808
+#: main.c:828
msgid "\t-p[file]\t\t--profile[=file]\n"
msgstr "\t-p[fil]\t\t--profile[=fil]\n"
-#: main.c:809
+#: main.c:829
msgid "\t-P\t\t\t--posix\n"
msgstr "\t-P\t\t\t--posix\n"
-#: main.c:810
+#: main.c:830
msgid "\t-r\t\t\t--re-interval\n"
msgstr "\t-r\t\t\t--re-interval\n"
-#: main.c:811
+#: main.c:831
msgid "\t-S\t\t\t--sandbox\n"
msgstr "\t-S\t\t\t--sandbox\n"
-#: main.c:812
+#: main.c:832
msgid "\t-t\t\t\t--lint-old\n"
msgstr "\t-t\t\t\t--lint-old\n"
-#: main.c:813
+#: main.c:833
msgid "\t-V\t\t\t--version\n"
msgstr "\t-V\t\t\t--version\n"
-#: main.c:815
+#: main.c:835
msgid "\t-W nostalgia\t\t--nostalgia\n"
msgstr "\t-W nostalgia\t\t--nostalgia\n"
-#: main.c:818
+#: main.c:838
msgid "\t-Y\t\t--parsedebug\n"
msgstr "\t-Y\t\t--parsedebug\n"
@@ -3097,7 +3116,7 @@ msgstr "\t-Y\t\t--parsedebug\n"
#. for this application. Please add _another line_ with the
#. address for translation bugs.
#. no-wrap
-#: main.c:827
+#: main.c:847
msgid ""
"\n"
"To report bugs, see node `Bugs' in `gawk.info', which is\n"
@@ -3110,7 +3129,7 @@ msgstr ""
"\n"
"Rapportr kommentarer til oversttelsen til <dansk@dansk-gruppen.dk>.\n"
-#: main.c:831
+#: main.c:851
msgid ""
"gawk is a pattern scanning and processing language.\n"
"By default it reads standard input and writes standard output.\n"
@@ -3120,7 +3139,7 @@ msgstr ""
"Almindeligvis lser gawk fra standard ind og skriver til standard ud.\n"
"\n"
-#: main.c:835
+#: main.c:855
msgid ""
"Examples:\n"
"\tgawk '{ sum += $1 }; END { print sum }' file\n"
@@ -3130,7 +3149,7 @@ msgstr ""
"\tgawk '{ sum += $1 }; END { print sum }' fil\n"
"\tgawk -F: '{ print $1 }' /etc/passwd\n"
-#: main.c:855
+#: main.c:880
#, c-format
msgid ""
"Copyright (C) 1989, 1991-%d Free Software Foundation.\n"
@@ -3150,7 +3169,7 @@ msgstr ""
"enhver senere version.\n"
"\n"
-#: main.c:863
+#: main.c:888
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"
@@ -3164,7 +3183,7 @@ msgstr ""
"General Public License for yderligere information.\n"
"\n"
-#: main.c:869
+#: main.c:894
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"
@@ -3172,16 +3191,16 @@ msgstr ""
"Du br have fet en kopi af GNU General Public License sammen\n"
"med dette program. Hvis ikke, s se http://www.gnu.org/licenses/.\n"
-#: main.c:904
+#: main.c:931
msgid "-Ft does not set FS to tab in POSIX awk"
msgstr "-Ft stter ikke FS til tab i POSIX-awk"
-#: main.c:1181
+#: main.c:1208
#, c-format
msgid "unknown value for field spec: %d\n"
msgstr "ukendt vrdi for felt-spec: %d\n"
-#: main.c:1279
+#: main.c:1306
#, c-format
msgid ""
"%s: `%s' argument to `-v' not in `var=value' form\n"
@@ -3190,48 +3209,48 @@ msgstr ""
"%s: '%s' argument til '-v' ikke p formen 'var=vrdi'\n"
"\n"
-#: main.c:1305
+#: main.c:1332
#, c-format
msgid "`%s' is not a legal variable name"
msgstr "'%s' er ikke et gyldigt variabelnavn"
-#: main.c:1308
+#: main.c:1335
#, 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:1312
+#: main.c:1339
#, c-format
msgid "cannot use gawk builtin `%s' as variable name"
msgstr "kan ikke bruge gawk's indbyggede '%s' som variabelnavn"
-#: main.c:1317
+#: main.c:1344
#, c-format
msgid "cannot use function `%s' as variable name"
msgstr "kan ikke bruge funktion '%s' som variabelnavn"
-#: main.c:1370
+#: main.c:1397
msgid "floating point exception"
msgstr "flydendetalsundtagelse"
-#: main.c:1377
+#: main.c:1404
msgid "fatal error: internal error"
msgstr "fatal fejl: intern fejl"
-#: main.c:1392
+#: main.c:1419
msgid "fatal error: internal error: segfault"
msgstr "fatal fejl: intern fejl: segmentfejl"
-#: main.c:1404
+#: main.c:1431
msgid "fatal error: internal error: stack overflow"
msgstr "fatal fejl: intern fejl: stakoverlb"
-#: main.c:1463
+#: main.c:1490
#, c-format
msgid "no pre-opened fd %d"
msgstr "ingen fd %d bnet i forvejen"
-#: main.c:1470
+#: main.c:1497
#, c-format
msgid "could not pre-open /dev/null for fd %d"
msgstr "kunne ikke i forvejen bne /dev/null for fd %d"
@@ -3290,7 +3309,7 @@ msgstr "or(%lf, %lf): kommatalsvrdier vil blive trunkeret"
msgid "%s: argument #%d negative value %Zd will give strange results"
msgstr "compl(%lf): negative vrdier vil give mrkelige resultater"
-#: msg.c:61
+#: msg.c:68
#, c-format
msgid "cmd. line:"
msgstr "kommandolinje:"
@@ -3344,16 +3363,16 @@ msgstr "%s %s '%s': kunne ikke f fat p fd flag: (fcntl F_GETFD: %s)"
msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
msgstr "%s %s '%s': kunne ikke stte luk-ved-exec (fcntl F_SETFD: %s)"
-#: profile.c:70
+#: profile.c:71
#, c-format
msgid "could not open `%s' for writing: %s"
msgstr "kunne ikke bne '%s' for skrivning: %s"
-#: profile.c:72
+#: profile.c:73
msgid "sending profile to standard error"
msgstr "sender profilen til standard fejl"
-#: profile.c:188
+#: profile.c:193
#, c-format
msgid ""
"\t# %s block(s)\n"
@@ -3362,7 +3381,7 @@ msgstr ""
"\t# %s blokke\n"
"\n"
-#: profile.c:193
+#: profile.c:198
#, c-format
msgid ""
"\t# Rule(s)\n"
@@ -3371,29 +3390,29 @@ msgstr ""
"\t# Regler\n"
"\n"
-#: profile.c:267
+#: profile.c:272
#, c-format
msgid "internal error: %s with null vname"
msgstr "intern fejl: %s med null vname"
-#: profile.c:530
+#: profile.c:537
#, fuzzy
msgid "internal error: builtin with null fname"
msgstr "intern fejl: %s med null vname"
-#: profile.c:942
+#: profile.c:949
#, c-format
msgid ""
"\t# Loaded extensions (-l and/or @load)\n"
"\n"
msgstr ""
-#: profile.c:965
+#: profile.c:972
#, c-format
msgid "\t# gawk profile, created %s\n"
msgstr "\t# profil til gawk oprettet %s\n"
-#: profile.c:1351
+#: profile.c:1475
#, c-format
msgid ""
"\n"
@@ -3402,17 +3421,12 @@ msgstr ""
"\n"
"\t# Funktioner, listede alfabetisk\n"
-#: profile.c:1389
+#: profile.c:1513
#, c-format
msgid "redir2str: unknown redirection type %d"
msgstr "redir2str: uykendt omdirigeringstype %d"
-#: re.c:583
-#, c-format
-msgid "range of the form `[%c-%c]' is locale dependent"
-msgstr "omrde p formen `[%c-%c]' er locale-afhngig"
-
-#: re.c:610
+#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
msgstr "regexp-komponent `%.*s' skulle nok vre `[%.*s]'"
@@ -3481,10 +3495,13 @@ msgstr "Ubalanceret ) eller \\)"
msgid "No previous regular expression"
msgstr "Intet foregende regulrt udtryk"
-#: symbol.c:740
+#: symbol.c:741
msgid "can not pop main context"
msgstr ""
+#~ msgid "range of the form `[%c-%c]' is locale dependent"
+#~ msgstr "omrde p formen `[%c-%c]' er locale-afhngig"
+
#, fuzzy
#~ msgid "[s]printf called with no arguments"
#~ msgstr "sqrt: kaldt med negativt argument %g"
diff --git a/po/de.gmo b/po/de.gmo
index f8ae3a41..e46946bb 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index e5b8a93d..f92c3bb7 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk 4.0.0h\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2013-05-09 16:05+0300\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2012-01-30 16:21+0100\n"
"Last-Translator: Philipp Thomas <pth@suse.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -17,93 +17,93 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: array.c:254
+#: array.c:256
#, c-format
msgid "from %s"
msgstr "von %s"
-#: array.c:354
+#: array.c:357
msgid "attempt to use a scalar value as array"
msgstr "Es wird versucht, einen Skalar als Feld zu verwenden"
-#: array.c:356
+#: array.c:359
#, c-format
msgid "attempt to use scalar parameter `%s' as an array"
msgstr "Es wird versucht, den skalaren Parameter »%s« als Feld zu verwenden"
-#: array.c:359
+#: array.c:362
#, c-format
msgid "attempt to use scalar `%s' as an array"
msgstr "Es wird versucht, den Skalar »%s« als Array zu verwenden"
-#: array.c:406 array.c:573 builtin.c:85 builtin.c:1591 builtin.c:1637
-#: builtin.c:1650 builtin.c:2078 builtin.c:2092 eval.c:1121 eval.c:1125
-#: eval.c:1524
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
+#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
msgstr "Es wird versucht, das Feld »%s« in einem Skalarkontext zu verwenden"
-#: array.c:580
+#: array.c:583
#, c-format
msgid "delete: index `%s' not in array `%s'"
msgstr "delete: Index »%s« ist in Feld »%s« nicht vorhanden"
-#: array.c:594
+#: array.c:597
#, c-format
msgid "attempt to use scalar `%s[\"%.*s\"]' as an array"
msgstr "Es wird versucht, den Skalar »%s[\"%.*s\"]« als Feld zu verwenden"
-#: array.c:773
+#: array.c:776
#, fuzzy
msgid "adump: first argument not an array"
msgstr "adump: Das Argument ist kein Feld"
-#: array.c:812
+#: array.c:815
msgid "asort: second argument not an array"
msgstr "asort: Das zweite Argument ist kein Feld"
-#: array.c:813
+#: array.c:816
msgid "asorti: second argument not an array"
msgstr "asorti: Das zweite Argument ist kein Feld"
-#: array.c:820
+#: array.c:823
msgid "asort: first argument not an array"
msgstr "asort: Das erste Argument ist kein Feld"
-#: array.c:821
+#: array.c:824
msgid "asorti: first argument not an array"
msgstr "asorti: Das erste Argument ist kein Feld"
-#: array.c:828
+#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
msgstr ""
"asort: ein untergeordnetes Feld des ersten Arguments kann nicht als zweites "
"Argument verwendet werden"
-#: array.c:829
+#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
msgstr ""
"asorti: ein untergeordnetes Feld des ersten Arguments kann nicht als zweites "
"Argument verwendet werden"
-#: array.c:834
+#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
msgstr ""
"asort: ein untergeordnetes Feld des zweiten Arguments kann nicht als erstes "
"Argument verwendet werden"
-#: array.c:835
+#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
msgstr ""
"asorti: ein untergeordnetes Feld des zweiten Arguments kann nicht als erstes "
"Argument verwendet werden"
-#: array.c:1309
+#: array.c:1314
#, c-format
msgid "`%s' is invalid as a function name"
msgstr "»%s« ist ein unzulässiger Funktionsname"
-#: array.c:1313
+#: array.c:1318
#, c-format
msgid "sort comparison function `%s' is not defined"
msgstr "Die Vergleichsfunktion »%s« für das Sortieren ist nicht definiert"
@@ -148,12 +148,12 @@ msgstr "doppelte Case-Werte im Switch-Block: %s"
msgid "duplicate `default' detected in switch body"
msgstr "doppeltes »default« im Switch-Block gefunden"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr ""
"»break« ist außerhalb einer Schleife oder eines Switch-Blocks nicht zulässig"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "»continue« ist außerhalb einer Schleife nicht zulässig"
@@ -246,279 +246,279 @@ msgstr ""
msgid "invalid subscript expression"
msgstr "Ungültiger Index-Ausdruck"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:119
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "Warnung: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:151
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "Fatal: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "Unerwarteter Zeilenumbruch oder Ende der Zeichenkette"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:517 debug.c:533
-#: debug.c:2792 debug.c:5040
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
+#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "Quelldatei »%s« kann nicht zum Lesen geöffnet werden (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, fuzzy, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "Quelldatei »%s« kann nicht zum Lesen geöffnet werden (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:130 debug.c:5191
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "Unbekannte Ursache"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr ""
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "Quelldatei »%s« wurde bereits eingebunden"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, fuzzy, c-format
msgid "already loaded shared library `%s'"
msgstr "Quelldatei »%s« wurde bereits eingebunden"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "»@include« ist eine gawk-Erweiterung"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "leerer Dateiname nach @include"
-#: awkgram.y:2470
+#: awkgram.y:2494
#, fuzzy
msgid "@load is a gawk extension"
msgstr "»@include« ist eine gawk-Erweiterung"
-#: awkgram.y:2476
+#: awkgram.y:2500
#, fuzzy
msgid "empty filename after @load"
msgstr "leerer Dateiname nach @include"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "Kein Programmtext auf der Kommandozeile"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "Die Quelldatei »%s« kann nicht gelesen werden (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "Die Quelldatei »%s« ist leer"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "Die Quelldatei hört nicht mit einem Zeilenende auf"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr ""
"Nicht beendeter regulärer Ausdruck (hört mit '\\' auf) am Ende der Datei"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr ""
"%s: %d: der tawk-Modifizierer für reguläre Ausdrücke »/.../%c« funktioniert "
"nicht in gawk"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr ""
"Der tawk-Modifizierer für reguläre Ausdrücke »/.../%c« funktioniert nicht in "
"gawk"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "Nicht beendeter regulärer Ausdruck"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "Nicht beendeter regulärer Ausdruck am Dateiende"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr ""
"Die Verwendung von »\\#...« zur Fortsetzung von Zeilen ist nicht portabel"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "das letzte Zeichen auf der Zeile ist kein Backslash (»\\«)"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX erlaubt den Operator »**=« nicht"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "Das alte awk unterstützt den Operator »**=« nicht"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX erlaubt den Operator »**« nicht"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "Das alte awk unterstützt den Operator »**« nicht"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "Das alte awk unterstützt den Operator »^=« nicht"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "Das alte awk unterstützt den Operator »^« nicht"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "Nicht beendete Zeichenkette"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "Ungültiges Zeichen »%c« in einem Ausdruck"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "»%s« ist eine gawk-Erweiterung"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX erlaubt »%s« nicht"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "»%s« wird im alten awk nicht unterstützt"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "»goto« gilt als schlechter Stil!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "Unzulässige Argumentzahl %d für %s"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
msgstr "%s: Ein String als letztes Argument von substitute hat keinen Effekt"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "Der dritte Parameter von %s ist ein unveränderliches Objekt"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: Das dritte Argument ist eine gawk-Erweiterung"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: Das zweite Argument ist eine gawk-Erweiterung"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
"Fehlerhafte Verwendung von dcgettext(_\"...\"): \n"
"Entfernen Sie den führenden Unterstrich"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
"Fehlerhafte Verwendung von dcngettext(_\"...\"): \n"
"Entfernen Sie den führenden Unterstrich"
-#: awkgram.y:3992
+#: awkgram.y:4016
#, fuzzy
msgid "index: regexp constant as second argument is not allowed"
msgstr "index: Zweites Argument ist kein string"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "Funktion »%s«: Parameter »%s« verdeckt eine globale Variable"
-#: awkgram.y:4102 debug.c:4021 debug.c:4064 debug.c:5189
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "»%s« kann nicht zum Schreiben geöffne werden(%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "Die Liste der Variablen wird auf der Standardfehlerausgabe ausgegeben"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: close ist gescheitert (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() zweimal aufgerufen!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "es sind verdeckte Variablen vorhanden"
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "Funktion »%s« wurde bereits definiert"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr "Funktion »%s«: Funktionsnamen können nicht als Parameternamen benutzen"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
msgstr ""
"Funktion »%s«: die spezielle Variable »%s« kann nicht als Parameter "
"verwendet werden"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "Funktion »%s«: Parameter #%d, »%s« wiederholt Parameter #%d"
-#: awkgram.y:4366 awkgram.y:4372
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "Aufgerufene Funktion »%s« ist nirgends definiert"
-#: awkgram.y:4376
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "Funktion »%s« wurde definiert aber nirgends aufgerufen"
-#: awkgram.y:4408
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr ""
"Regulärer-Ausdruck-Konstante für Parameter #%d ergibt einen \n"
"logischen Wert"
-#: awkgram.y:4467
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -527,238 +527,248 @@ msgstr ""
"Funktion »%s« wird mit Leerzeichen zwischen Name und »(« aufgerufen, \n"
"oder als Variable oder Feld verwendet"
-#: awkgram.y:4703
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "Division durch Null wurde versucht"
-#: awkgram.y:4712
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "Division durch Null versucht in »%%«"
-#: builtin.c:128
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
+msgstr ""
+
+#: awkgram.y:5052
+#, fuzzy, c-format
+msgid "invalid target of assignment (opcode %s)"
+msgstr "Unzulässige Argumentzahl %d für %s"
+
+#: builtin.c:133
#, c-format
msgid "%s to \"%s\" failed (%s)"
msgstr "%s to \"%s\" fehlgeschlagen (%s)"
-#: builtin.c:129
+#: builtin.c:134
msgid "standard output"
msgstr "Standardausgabe"
-#: builtin.c:143
+#: builtin.c:148
msgid "exp: received non-numeric argument"
msgstr "exp: das Argument ist keine Zahl"
-#: builtin.c:149
+#: builtin.c:154
#, c-format
msgid "exp: argument %g is out of range"
msgstr "exp: das Argument %g liegt außerhalb des gültigen Bereichs"
-#: builtin.c:224
+#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
msgstr ""
"fflush: Leeren der Puffer nicht möglich, Pipe »%s« ist nur zum Lesen geöffnet"
-#: builtin.c:227
+#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
msgstr ""
"fflush: Leeren der Puffer nicht möglich, Datei »%s« ist nur zum Lesen "
"geöffnet"
-#: builtin.c:239
+#: builtin.c:244
#, c-format
msgid "fflush: `%s' is not an open file, pipe or co-process"
msgstr "fflush: »%s« ist keine geöffnete Datei, Pipe oder Prozess"
-#: builtin.c:357
+#: builtin.c:362
msgid "index: received non-string first argument"
msgstr "index: Erstes Argument ist kein String"
-#: builtin.c:359
+#: builtin.c:364
msgid "index: received non-string second argument"
msgstr "index: Zweites Argument ist kein string"
-#: builtin.c:483 mpfr.c:757
+#: builtin.c:488 mpfr.c:757
msgid "int: received non-numeric argument"
msgstr "Argument ist keine Zahl"
-#: builtin.c:520
+#: builtin.c:525
msgid "length: received array argument"
msgstr "length: Argument ist ein Feld"
-#: builtin.c:523
+#: builtin.c:528
msgid "`length(array)' is a gawk extension"
msgstr "»length(array)« ist eine gawk-Erweiterung"
-#: builtin.c:539
+#: builtin.c:544
msgid "length: received non-string argument"
msgstr "length: Argument ist kein String"
-#: builtin.c:570
+#: builtin.c:575
msgid "log: received non-numeric argument"
msgstr "log: Argument ist keine Zahl"
-#: builtin.c:573
+#: builtin.c:578
#, c-format
msgid "log: received negative argument %g"
msgstr "log: Negatives Argument %g"
-#: builtin.c:771 builtin.c:776
+#: builtin.c:776 builtin.c:781
msgid "fatal: must use `count$' on all formats or none"
msgstr "Fatal: »count$« muss auf alle Formate angewandt werden oder auf keines"
-#: builtin.c:846
+#: builtin.c:851
#, c-format
msgid "field width is ignored for `%%' specifier"
msgstr "Feldbreite wird für die »%%«-Angabe ignoriert"
-#: builtin.c:848
+#: builtin.c:853
#, c-format
msgid "precision is ignored for `%%' specifier"
msgstr "Genauigkeit wird für die »%%«-Angabe ignoriert"
-#: builtin.c:850
+#: builtin.c:855
#, c-format
msgid "field width and precision are ignored for `%%' specifier"
msgstr "Feldbreite und Genauigkeit werden für die »%%«-Angabe ignoriert"
-#: builtin.c:901
+#: builtin.c:906
msgid "fatal: `$' is not permitted in awk formats"
msgstr "Fatal: »$« ist in awk-Formaten nicht zulässig"
-#: builtin.c:910
+#: builtin.c:915
msgid "fatal: arg count with `$' must be > 0"
msgstr "Fatal: die Anzahl der Argumen bei »$« muss > 0 sein"
-#: builtin.c:914
+#: builtin.c:919
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
msgstr ""
"Fatal: Argumentenanzahl %ld ist größer als die Gesamtzahl angegebener "
"Argumente"
-#: builtin.c:918
+#: builtin.c:923
msgid "fatal: `$' not permitted after period in format"
msgstr "Fatal: »$« nach Punkt in Formatangabe nicht zulässig"
-#: builtin.c:934
+#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
msgstr "Fatal: »$« fehlt in positionsabhängiger Feldbreite oder Genauigkeit"
#
-#: builtin.c:1006
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "»l« ist in awk-Formaten bedeutungslos, ignoriert"
-#: builtin.c:1010
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "Fatal: »l« ist in POSIX-awk-Formaten nicht zulässig"
-#: builtin.c:1023
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "»L« ist in awk-Formaten bedeutungslos, ignoriert"
-#: builtin.c:1027
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "Fatal: »L« ist in POSIX-awk-Formaten nicht zulässig"
-#: builtin.c:1040
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "»h« ist in awk-Formaten bedeutungslos, ignoriert"
-#: builtin.c:1044
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "Fatal: »h« ist in POSIX-awk-Formaten nicht zulässig"
-#: builtin.c:1439
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf: Wert %g ist außerhalb des Bereichs für Format »%%%c«"
-#: builtin.c:1537
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
msgstr ""
"das unbekannte Zeichen »%c« in der Formatspezifikation wird ignoriert: keine "
"Argumente umgewandelt"
-#: builtin.c:1542
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr "Fatal: Nicht genügend Argumente für die Formatangabe"
-#: builtin.c:1544
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "^ hierfür fehlte es"
-#: builtin.c:1551
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: Format-Spezifikation hat keinen Controlcode"
-#: builtin.c:1554
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "Zu viele Argumente für den Formatstring"
-#: builtin.c:1610
+#: builtin.c:1634
#, fuzzy
msgid "sprintf: no arguments"
msgstr "printf: Keine Argumente"
-#: builtin.c:1633 builtin.c:1644
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: Keine Argumente"
-#: builtin.c:1687
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: das Argument ist keine Zahl"
-#: builtin.c:1691
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: das Argument %g ist negativ"
-#: builtin.c:1722
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: Länge %g ist nicht >= 1"
-#: builtin.c:1724
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: Länge %g ist nicht >= 0"
-#: builtin.c:1731
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: Nicht ganzzahlige Länge %g wird abgeschnitten"
-#: builtin.c:1736
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr ""
"substr: Länge %g ist zu groß für Stringindizierung, wird auf %g gekürzt"
-#: builtin.c:1748
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: Start-Index %g ist ungültig, 1 wird verwendet"
-#: builtin.c:1753
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr "substr: Nicht ganzzahliger Start-Wert %g wird abgeschnitten"
-#: builtin.c:1778
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: Quellstring ist leer"
-#: builtin.c:1794
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: Start-Wert %g liegt hinter dem Ende des Strings"
-#: builtin.c:1802
+#: builtin.c:1826
#, c-format
msgid ""
"substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -766,197 +776,197 @@ msgstr ""
"substr: Länge %g am Start-Wert %g überschreitet die Länge des ersten "
"Arguments (%lu)"
-#: builtin.c:1876
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr "strftime: Formatwert in PROCINFO[\"strftime\"] ist numerischen Typs"
-#: builtin.c:1899
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: Das zweite Argument ist keine Zahl"
-#: builtin.c:1903
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr ""
"strftime: das zweite Argument ist kleiner als 0 oder zu groß für time_t"
-#: builtin.c:1910
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: Das erste Argument ist kein String"
-#: builtin.c:1917
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: Der Format-String ist leer"
-#: builtin.c:1983
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: Das Argument ist kein String"
-#: builtin.c:2000
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr "mktime: mindestens einer der Werte ist außerhalb des normalen Bereichs"
-#: builtin.c:2035
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "Die Funktion »system« ist im Sandbox-Modus nicht erlaubt"
-#: builtin.c:2040
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: Das Argument ist kein String"
-#: builtin.c:2160
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "Referenz auf das nicht initialisierte Feld »$%d«"
-#: builtin.c:2247
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: das Argument ist kein String"
-#: builtin.c:2281
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: das Argument ist kein String"
-#: builtin.c:2317 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: das erste Argument ist keine Zahl"
-#: builtin.c:2319 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: das zweite Argument ist keine Zahl"
-#: builtin.c:2338
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: das Argument ist keine Zahl"
-#: builtin.c:2354
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: das Argument ist keine Zahl"
-#: builtin.c:2407 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: das Argument ist keine Zahl"
-#: builtin.c:2438
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: das dritte Argument ist kein Array"
-#: builtin.c:2710
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: 0 als drittes Argument wird als 1 interpretiert"
-#: builtin.c:3003
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: das erste Argument ist keine Zahl"
-#: builtin.c:3005
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: das zweite Argument ist keine Zahl"
-#: builtin.c:3011
+#: builtin.c:3038
#, fuzzy, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr ""
"lshift(%lf, %lf): Negative Werte werden zu merkwürdigen Ergebnissen führen"
-#: builtin.c:3013
+#: builtin.c:3040
#, fuzzy, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%lf, %lf): Dezimalteil wird abgeschnitten"
-#: builtin.c:3015
+#: builtin.c:3042
#, fuzzy, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr ""
"lshift(%lf, %lf): Zu große Shift-Werte werden zu merkwürdigen Ergebnissen "
"führen"
-#: builtin.c:3040
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: das erste Argument ist keine Zahl"
-#: builtin.c:3042
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: das zweite Argument ist keine Zahl"
-#: builtin.c:3048
+#: builtin.c:3075
#, fuzzy, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr ""
"rshift (%lf, %lf): Negative Werte werden zu merkwürdigen Ergebnissen führen"
-#: builtin.c:3050
+#: builtin.c:3077
#, fuzzy, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%lf, %lf): Dezimalteil wird abgeschnitten"
-#: builtin.c:3052
+#: builtin.c:3079
#, fuzzy, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr ""
"rshift(%lf, %lf): Zu große Shift-Werte werden zu merkwürdigen Ergebnissen "
"führen"
-#: builtin.c:3077 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
#, fuzzy
msgid "and: called with less than two arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: builtin.c:3082
+#: builtin.c:3109
#, fuzzy, c-format
msgid "and: argument %d is non-numeric"
msgstr "exp: das Argument %g liegt außerhalb des gültigen Bereichs"
-#: builtin.c:3086
+#: builtin.c:3113
#, fuzzy, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr ""
"and(%lf, %lf): Negative Werte werden zu merkwürdigen Ergebnissen führen"
-#: builtin.c:3109 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
#, fuzzy
msgid "or: called with less than two arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: builtin.c:3114
+#: builtin.c:3141
#, fuzzy, c-format
msgid "or: argument %d is non-numeric"
msgstr "exp: das Argument %g liegt außerhalb des gültigen Bereichs"
-#: builtin.c:3118
+#: builtin.c:3145
#, fuzzy, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr "compl(%lf): Negativer Wert wird zu merkwürdigen Ergebnissen führen"
-#: builtin.c:3140 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
#, fuzzy
msgid "xor: called with less than two arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: builtin.c:3146
+#: builtin.c:3173
#, fuzzy, c-format
msgid "xor: argument %d is non-numeric"
msgstr "exp: das Argument %g liegt außerhalb des gültigen Bereichs"
-#: builtin.c:3150
+#: builtin.c:3177
#, fuzzy, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor(%lf, %lf: Negative Werte werden zu merkwürdigen Ergebnissen führen"
-#: builtin.c:3175 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: das erste Argument ist keine Zahl"
-#: builtin.c:3181
+#: builtin.c:3208
#, fuzzy, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%lf): Negativer Wert wird zu merkwürdigen Ergebnissen führen"
-#: builtin.c:3183
+#: builtin.c:3210
#, fuzzy, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%lf): Dezimalteil wird abgeschnitten"
-#: builtin.c:3352
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: »%s« ist keine gültige Locale-Kategorie"
@@ -1080,8 +1090,8 @@ msgstr ""
#: command.y:823
msgid ""
-"commands [num] - starts a list of commands to be executed at a breakpoint"
-"(watchpoint) hit."
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
msgstr ""
#: command.y:825
@@ -1238,7 +1248,7 @@ msgstr ""
msgid "watch var - set a watchpoint for a variable."
msgstr ""
-#: command.y:1011 debug.c:395 msg.c:128
+#: command.y:1011 debug.c:401 msg.c:135
#, c-format
msgid "error: "
msgstr "Fehler: "
@@ -1278,558 +1288,558 @@ msgstr "Ungültiges Zeichen"
msgid "undefined command: %s\n"
msgstr ""
-#: debug.c:246
+#: debug.c:252
msgid "set or show the number of lines to keep in history file."
msgstr ""
-#: debug.c:248
+#: debug.c:254
msgid "set or show the list command window size."
msgstr ""
-#: debug.c:250
+#: debug.c:256
msgid "set or show gawk output file."
msgstr ""
-#: debug.c:252
+#: debug.c:258
msgid "set or show debugger prompt."
msgstr ""
-#: debug.c:254
+#: debug.c:260
msgid "(un)set or show saving of command history (value=on|off)."
msgstr ""
-#: debug.c:256
+#: debug.c:262
msgid "(un)set or show saving of options (value=on|off)."
msgstr ""
-#: debug.c:258
+#: debug.c:264
msgid "(un)set or show instruction tracing (value=on|off)."
msgstr ""
-#: debug.c:339
+#: debug.c:345
msgid "program not running."
msgstr ""
-#: debug.c:442 debug.c:597
+#: debug.c:448 debug.c:606
#, fuzzy, c-format
msgid "can't read source file `%s' (%s)"
msgstr "Die Quelldatei »%s« kann nicht gelesen werden (%s)"
-#: debug.c:447
+#: debug.c:453
#, fuzzy, c-format
msgid "source file `%s' is empty.\n"
msgstr "Die Quelldatei »%s« ist leer"
-#: debug.c:474
+#: debug.c:480
msgid "no current source file."
msgstr ""
-#: debug.c:499
+#: debug.c:505
#, fuzzy, c-format
msgid "cannot find source file named `%s' (%s)"
msgstr "Die Quelldatei »%s« kann nicht gelesen werden (%s)"
-#: debug.c:523
+#: debug.c:529
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
msgstr ""
-#: debug.c:542
+#: debug.c:551
#, c-format
msgid "line number %d out of range; `%s' has %d lines"
msgstr ""
-#: debug.c:602
+#: debug.c:611
#, fuzzy, c-format
msgid "unexpected eof while reading file `%s', line %d"
msgstr "Unerwarteter Zeilenumbruch oder Ende der Zeichenkette"
-#: debug.c:611
+#: debug.c:620
#, c-format
msgid "source file `%s' modified since start of program execution"
msgstr ""
-#: debug.c:723
+#: debug.c:732
#, fuzzy, c-format
msgid "Current source file: %s\n"
msgstr "Quelldatei »%s« wurde bereits eingebunden"
-#: debug.c:724
+#: debug.c:733
#, c-format
msgid "Number of lines: %d\n"
msgstr ""
-#: debug.c:731
+#: debug.c:740
#, c-format
msgid "Source file (lines): %s (%d)\n"
msgstr ""
-#: debug.c:745
+#: debug.c:754
msgid ""
"Number Disp Enabled Location\n"
"\n"
msgstr ""
-#: debug.c:756
+#: debug.c:765
#, c-format
msgid "\tno of hits = %ld\n"
msgstr ""
-#: debug.c:758
+#: debug.c:767
#, c-format
msgid "\tignore next %ld hit(s)\n"
msgstr ""
-#: debug.c:760 debug.c:900
+#: debug.c:769 debug.c:909
#, c-format
msgid "\tstop condition: %s\n"
msgstr ""
-#: debug.c:762 debug.c:902
+#: debug.c:771 debug.c:911
msgid "\tcommands:\n"
msgstr ""
-#: debug.c:784
+#: debug.c:793
#, c-format
msgid "Current frame: "
msgstr ""
-#: debug.c:787
+#: debug.c:796
#, c-format
msgid "Called by frame: "
msgstr ""
-#: debug.c:791
+#: debug.c:800
#, c-format
msgid "Caller of frame: "
msgstr ""
-#: debug.c:809
+#: debug.c:818
#, c-format
msgid "None in main().\n"
msgstr ""
-#: debug.c:839
+#: debug.c:848
#, fuzzy
msgid "No arguments.\n"
msgstr "printf: Keine Argumente"
-#: debug.c:840
+#: debug.c:849
msgid "No locals.\n"
msgstr ""
-#: debug.c:848
+#: debug.c:857
msgid ""
"All defined variables:\n"
"\n"
msgstr ""
-#: debug.c:858
+#: debug.c:867
msgid ""
"All defined functions:\n"
"\n"
msgstr ""
-#: debug.c:877
+#: debug.c:886
msgid ""
"Auto-display variables:\n"
"\n"
msgstr ""
-#: debug.c:880
+#: debug.c:889
msgid ""
"Watch variables:\n"
"\n"
msgstr ""
-#: debug.c:1020
+#: debug.c:1029
#, fuzzy, c-format
msgid "no symbol `%s' in current context\n"
msgstr "»exit« kann im aktuellen Kontext nicht aufgerufen werden"
-#: debug.c:1032 debug.c:1418
+#: debug.c:1041 debug.c:1427
#, fuzzy, c-format
msgid "`%s' is not an array\n"
msgstr "»%s« ist kein gültiger Variablenname"
-#: debug.c:1046
+#: debug.c:1055
#, fuzzy, c-format
msgid "$%ld = uninitialized field\n"
msgstr "Referenz auf das nicht initialisierte Feld »$%d«"
-#: debug.c:1067
+#: debug.c:1076
#, fuzzy, c-format
msgid "array `%s' is empty\n"
msgstr "Die Datei »%s« ist leer"
-#: debug.c:1110 debug.c:1162
+#: debug.c:1119 debug.c:1171
#, fuzzy, c-format
msgid "[\"%s\"] not in array `%s'\n"
msgstr "delete: Index »%s« ist in Feld »%s« nicht vorhanden"
-#: debug.c:1166
+#: debug.c:1175
#, c-format
msgid "`%s[\"%s\"]' is not an array\n"
msgstr ""
-#: debug.c:1227 debug.c:4949
+#: debug.c:1236 debug.c:4964
#, fuzzy, c-format
msgid "`%s' is not a scalar variable"
msgstr "»%s« ist kein gültiger Variablenname"
-#: debug.c:1249 debug.c:4979
+#: debug.c:1258 debug.c:4994
#, fuzzy, c-format
msgid "attempt to use array `%s[\"%s\"]' in a scalar context"
msgstr ""
"Es wird versucht, das Feld »%s[\"%.*s\"]« in einem Skalarkontext zu verwenden"
-#: debug.c:1271 debug.c:4990
+#: debug.c:1280 debug.c:5005
#, fuzzy, c-format
msgid "attempt to use scalar `%s[\"%s\"]' as array"
msgstr "Es wird versucht, den Skalar »%s[\"%.*s\"]« als Feld zu verwenden"
-#: debug.c:1414
+#: debug.c:1423
#, fuzzy, c-format
msgid "`%s' is a function"
msgstr "»%s« ist ein unzulässiger Funktionsname"
-#: debug.c:1456
+#: debug.c:1465
#, c-format
msgid "watchpoint %d is unconditional\n"
msgstr ""
-#: debug.c:1490
+#: debug.c:1499
#, c-format
msgid "No display item numbered %ld"
msgstr ""
-#: debug.c:1493
+#: debug.c:1502
#, c-format
msgid "No watch item numbered %ld"
msgstr ""
-#: debug.c:1519
+#: debug.c:1528
#, fuzzy, c-format
msgid "%d: [\"%s\"] not in array `%s'\n"
msgstr "delete: Index »%s« ist in Feld »%s« nicht vorhanden"
-#: debug.c:1758
+#: debug.c:1767
#, fuzzy
msgid "attempt to use scalar value as array"
msgstr "Es wird versucht, einen Skalar als Feld zu verwenden"
-#: debug.c:1847
+#: debug.c:1856
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1858
+#: debug.c:1867
#, c-format
msgid "Display %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1891
+#: debug.c:1900
#, c-format
msgid " in file `%s', line %d\n"
msgstr ""
-#: debug.c:1912
+#: debug.c:1921
#, c-format
msgid " at `%s':%d"
msgstr ""
-#: debug.c:1928 debug.c:1991
+#: debug.c:1937 debug.c:2000
#, c-format
msgid "#%ld\tin "
msgstr ""
-#: debug.c:1965
+#: debug.c:1974
#, c-format
msgid "More stack frames follow ...\n"
msgstr ""
-#: debug.c:2008
+#: debug.c:2017
#, fuzzy
msgid "invalid frame number"
msgstr "Ungültiges Bereichsende"
-#: debug.c:2180
+#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2187
+#: debug.c:2207
#, c-format
msgid "Note: breakpoint %d (enabled), also set at %s:%d"
msgstr ""
-#: debug.c:2194
+#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2201
+#: debug.c:2221
#, c-format
msgid "Note: breakpoint %d (disabled), also set at %s:%d"
msgstr ""
-#: debug.c:2218
+#: debug.c:2238
#, c-format
msgid "Breakpoint %d set at file `%s', line %d\n"
msgstr ""
-#: debug.c:2320
+#: debug.c:2340
#, c-format
msgid "Can't set breakpoint in file `%s'\n"
msgstr ""
-#: debug.c:2349 debug.c:2472 debug.c:3330
+#: debug.c:2369 debug.c:2492 debug.c:3350
#, fuzzy, c-format
msgid "line number %d in file `%s' out of range"
msgstr "exp: das Argument %g liegt außerhalb des gültigen Bereichs"
-#: debug.c:2353
+#: debug.c:2373
#, c-format
msgid "Can't find rule!!!\n"
msgstr ""
-#: debug.c:2355
+#: debug.c:2375
#, c-format
msgid "Can't set breakpoint at `%s':%d\n"
msgstr ""
-#: debug.c:2367
+#: debug.c:2387
#, c-format
msgid "Can't set breakpoint in function `%s'\n"
msgstr ""
-#: debug.c:2383
+#: debug.c:2403
#, c-format
msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
msgstr ""
-#: debug.c:2488 debug.c:2510
+#: debug.c:2508 debug.c:2530
#, c-format
msgid "Deleted breakpoint %d"
msgstr ""
-#: debug.c:2494
+#: debug.c:2514
#, c-format
msgid "No breakpoint(s) at entry to function `%s'\n"
msgstr ""
-#: debug.c:2521
+#: debug.c:2541
#, fuzzy, c-format
msgid "No breakpoint at file `%s', line #%d\n"
msgstr "Fehler beim Lesen der Eingabedatei »%s«: %s"
-#: debug.c:2576 debug.c:2617 debug.c:2637 debug.c:2680
+#: debug.c:2596 debug.c:2637 debug.c:2657 debug.c:2700
msgid "invalid breakpoint number"
msgstr ""
-#: debug.c:2592
+#: debug.c:2612
msgid "Delete all breakpoints? (y or n) "
msgstr ""
-#: debug.c:2593 debug.c:2903 debug.c:2956
+#: debug.c:2613 debug.c:2923 debug.c:2976
msgid "y"
msgstr ""
-#: debug.c:2642
+#: debug.c:2662
#, c-format
msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n"
msgstr ""
-#: debug.c:2646
+#: debug.c:2666
#, c-format
msgid "Will stop next time breakpoint %d is reached.\n"
msgstr ""
-#: debug.c:2763
+#: debug.c:2783
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
msgstr ""
-#: debug.c:2888
+#: debug.c:2908
#, c-format
msgid "Failed to restart debugger"
msgstr ""
-#: debug.c:2902
+#: debug.c:2922
msgid "Program already running. Restart from beginning (y/n)? "
msgstr ""
-#: debug.c:2906
+#: debug.c:2926
#, c-format
msgid "Program not restarted\n"
msgstr ""
-#: debug.c:2916
+#: debug.c:2936
#, c-format
msgid "error: cannot restart, operation not allowed\n"
msgstr ""
-#: debug.c:2922
+#: debug.c:2942
#, c-format
msgid "error (%s): cannot restart, ignoring rest of the commands\n"
msgstr ""
-#: debug.c:2930
+#: debug.c:2950
#, c-format
msgid "Starting program: \n"
msgstr ""
-#: debug.c:2939
+#: debug.c:2959
#, c-format
msgid "Program exited %s with exit value: %d\n"
msgstr ""
-#: debug.c:2955
+#: debug.c:2975
msgid "The program is running. Exit anyway (y/n)? "
msgstr ""
-#: debug.c:2990
+#: debug.c:3010
#, c-format
msgid "Not stopped at any breakpoint; argument ignored.\n"
msgstr ""
-#: debug.c:2995
+#: debug.c:3015
#, c-format
msgid "invalid breakpoint number %d."
msgstr ""
-#: debug.c:3000
+#: debug.c:3020
#, c-format
msgid "Will ignore next %ld crossings of breakpoint %d.\n"
msgstr ""
-#: debug.c:3187
+#: debug.c:3207
#, c-format
msgid "'finish' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3192
+#: debug.c:3212
#, c-format
msgid "Run till return from "
msgstr ""
-#: debug.c:3235
+#: debug.c:3255
#, c-format
msgid "'return' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3349
+#: debug.c:3369
#, c-format
msgid "Can't find specified location in function `%s'\n"
msgstr ""
-#: debug.c:3357
+#: debug.c:3377
#, fuzzy, c-format
msgid "invalid source line %d in file `%s'"
msgstr "Quelldatei »%s« wurde bereits eingebunden"
-#: debug.c:3372
+#: debug.c:3392
#, c-format
msgid "Can't find specified location %d in file `%s'\n"
msgstr ""
-#: debug.c:3404
+#: debug.c:3424
#, fuzzy, c-format
msgid "element not in array\n"
msgstr "delete: Index »%s« ist in Feld »%s« nicht vorhanden"
-#: debug.c:3404
+#: debug.c:3424
#, c-format
msgid "untyped variable\n"
msgstr ""
-#: debug.c:3446
+#: debug.c:3466
#, c-format
msgid "Stopping in %s ...\n"
msgstr ""
-#: debug.c:3523
+#: debug.c:3543
#, c-format
msgid "'finish' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:3530
+#: debug.c:3550
#, c-format
msgid "'until' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:4165
+#: debug.c:4185
msgid "\t------[Enter] to continue or q [Enter] to quit------"
msgstr ""
-#: debug.c:4166
+#: debug.c:4186
msgid "q"
msgstr ""
-#: debug.c:4986
+#: debug.c:5001
#, fuzzy, c-format
msgid "[\"%s\"] not in array `%s'"
msgstr "delete: Index »%s« ist in Feld »%s« nicht vorhanden"
-#: debug.c:5192
+#: debug.c:5207
#, c-format
msgid "sending output to stdout\n"
msgstr ""
-#: debug.c:5232
+#: debug.c:5247
msgid "invalid number"
msgstr ""
-#: debug.c:5366
+#: debug.c:5381
#, fuzzy, c-format
msgid "`%s' not allowed in current context; statement ignored"
msgstr "»exit« kann im aktuellen Kontext nicht aufgerufen werden"
-#: debug.c:5374
+#: debug.c:5389
#, fuzzy
msgid "`return' not allowed in current context; statement ignored"
msgstr "»exit« kann im aktuellen Kontext nicht aufgerufen werden"
-#: debug.c:5575
+#: debug.c:5590
#, c-format
msgid "No symbol `%s' in current context"
msgstr ""
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1192
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr ""
-#: dfa.c:1052
+#: dfa.c:1174
#, fuzzy
msgid "invalid character class"
msgstr "Ungültiger Name für eine Zeichenklasse"
-#: dfa.c:1229
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
-#: dfa.c:1281
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr ""
-#: dfa.c:1428 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Ungültiger Inhalt von \\{\\}"
-#: dfa.c:1431 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "Regulärer Ausdruck ist zu groß"
-#: dfa.c:1816
+#: dfa.c:1936
msgid "unbalanced ("
msgstr ""
-#: dfa.c:1943
+#: dfa.c:2062
msgid "no syntax specified"
msgstr ""
-#: dfa.c:1951
+#: dfa.c:2070
msgid "unbalanced )"
msgstr ""
@@ -1848,11 +1858,11 @@ msgstr "Unbekannter Opcode %d"
msgid "opcode %s not an operator or keyword"
msgstr "Opcode %s ist weder ein Operator noch ein Schlüsselwort"
-#: eval.c:471
+#: eval.c:472
msgid "buffer overflow in genflags2str"
msgstr "Pufferüberlauf in genflags2str"
-#: eval.c:674
+#: eval.c:675
#, c-format
msgid ""
"\n"
@@ -1863,71 +1873,71 @@ msgstr ""
"\t# Funktions-Aufruf-Stack\n"
"\n"
-#: eval.c:703
+#: eval.c:704
msgid "`IGNORECASE' is a gawk extension"
msgstr "»IGNORECASE« ist eine gawk-Erweiterung"
-#: eval.c:735
+#: eval.c:736
msgid "`BINMODE' is a gawk extension"
msgstr "»BINMODE« ist eine gawk-Erweiterung"
-#: eval.c:793
+#: eval.c:794
#, c-format
msgid "BINMODE value `%s' is invalid, treated as 3"
msgstr "BINMODE Wert »%s« ist ungültig und wird als 3 behandelt"
-#: eval.c:884
+#: eval.c:885
#, c-format
msgid "bad `%sFMT' specification `%s'"
msgstr "Falsche »%sFMT«-Angabe »%s«"
-#: eval.c:968
+#: eval.c:969
msgid "turning off `--lint' due to assignment to `LINT'"
msgstr "»--lint« wird abgeschaltet, da an »LINT« zugewiesen wird"
-#: eval.c:1146
+#: eval.c:1147
#, c-format
msgid "reference to uninitialized argument `%s'"
msgstr "Referenz auf nicht initialisiertes Argument »%s«"
-#: eval.c:1147
+#: eval.c:1148
#, c-format
msgid "reference to uninitialized variable `%s'"
msgstr "Referenz auf die nicht initialisierte Variable »%s«"
-#: eval.c:1165
+#: eval.c:1166
msgid "attempt to field reference from non-numeric value"
msgstr "Nicht numerischer Wert für Feldreferenz verwendet"
-#: eval.c:1167
+#: eval.c:1168
msgid "attempt to field reference from null string"
msgstr "Referenz auf ein Feld von einem Null-String"
-#: eval.c:1175
+#: eval.c:1176
#, c-format
msgid "attempt to access field %ld"
msgstr "Versuch des Zugriffs auf Feld %ld"
-#: eval.c:1184
+#: eval.c:1185
#, c-format
msgid "reference to uninitialized field `$%ld'"
msgstr "Referenz auf das nicht initialisierte Feld »$%ld«"
-#: eval.c:1271
+#: eval.c:1272
#, c-format
msgid "function `%s' called with more arguments than declared"
msgstr "Funktion »%s« mit zu vielen Argumenten aufgerufen"
-#: eval.c:1466
+#: eval.c:1473
#, c-format
msgid "unwind_stack: unexpected type `%s'"
msgstr "unwind_stack: unerwarteter Typ »%s«"
-#: eval.c:1562
+#: eval.c:1569
msgid "division by zero attempted in `/='"
msgstr "Division durch Null versucht in »/=«"
-#: eval.c:1569
+#: eval.c:1576
#, c-format
msgid "division by zero attempted in `%%='"
msgstr "Division durch Null versucht in »%%=«"
@@ -1941,7 +1951,7 @@ msgstr "Erweiterungen sind im Sandbox-Modus nicht erlaubt"
msgid "-l / @load are gawk extensions"
msgstr "»@include« ist eine gawk-Erweiterung"
-#: ext.c:95 ext.c:177
+#: ext.c:95
msgid "load_ext: received NULL lib_name"
msgstr ""
@@ -1974,6 +1984,10 @@ msgstr ""
msgid "`extension' is a gawk extension"
msgstr "»extension« ist eine gawk-Erweiterung"
+#: ext.c:177
+msgid "extension: received NULL lib_name"
+msgstr ""
+
#: ext.c:180
#, fuzzy, c-format
msgid "extension: cannot open library `%s' (%s)"
@@ -1999,39 +2013,39 @@ msgstr ""
msgid "make_builtin: missing function name"
msgstr "Erweiterung: Funktionsname fehlt"
-#: ext.c:238
+#: ext.c:236
#, fuzzy, c-format
msgid "make_builtin: can't redefine function `%s'"
msgstr "Erweiterung: Funktion »%s« kann nicht neu definiert werden"
-#: ext.c:242
+#: ext.c:240
#, fuzzy, c-format
msgid "make_builtin: function `%s' already defined"
msgstr "Erweiterung: Funktion »%s« wurde bereits definiert"
-#: ext.c:246
+#: ext.c:244
#, fuzzy, c-format
msgid "make_builtin: function name `%s' previously defined"
msgstr "Erweiterung: Funktion »%s« wurde bereits vorher definiert"
-#: ext.c:248
+#: ext.c:246
#, fuzzy, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
msgstr ""
"Erweiterung: die eingebaute Funktion »%s« kann nicht als Funktionsname "
"verwendet werden"
-#: ext.c:251 ext.c:304
+#: ext.c:249 ext.c:304
#, c-format
msgid "make_builtin: negative argument count for function `%s'"
msgstr "make_builtin: negative Anzahl von Argumenten für Funktion »%s«"
-#: ext.c:278
+#: ext.c:276
#, fuzzy
msgid "extension: missing function name"
msgstr "Erweiterung: Funktionsname fehlt"
-#: ext.c:283
+#: ext.c:279 ext.c:283
#, fuzzy, c-format
msgid "extension: illegal character `%c' in function name `%s'"
msgstr "Erweiterung: unzulässiges Zeichen »%c« in Funktionsname »%s«"
@@ -2058,159 +2072,164 @@ msgstr ""
"Erweiterung: die eingebaute Funktion »%s« kann nicht als Funktionsname "
"verwendet werden"
-#: ext.c:374
+#: ext.c:375
#, c-format
msgid "function `%s' defined to take no more than %d argument(s)"
msgstr ""
"Funktion »%s« wird als Funktion definiert, die nie mehr als %d Argument(e) "
"akzeptiert"
-#: ext.c:377
+#: ext.c:378
#, c-format
msgid "function `%s': missing argument #%d"
msgstr "Funktion »%s«: fehlendes Argument #%d"
-#: ext.c:394
+#: ext.c:395
#, c-format
msgid "function `%s': argument #%d: attempt to use scalar as an array"
msgstr ""
"Funktion »%s«: Argument #%d: Es wird versucht, einen Skalar als Feld zu "
"verwenden"
-#: ext.c:398
+#: ext.c:399
#, c-format
msgid "function `%s': argument #%d: attempt to use array as a scalar"
msgstr ""
"Funktion »%s«: Argument #%d: Es wird versucht, ein Feld als Skalar zu "
"verwenden"
-#: ext.c:412
+#: ext.c:413
msgid "dynamic loading of library not supported"
msgstr ""
-#: extension/filefuncs.c:97
+#: extension/filefuncs.c:159
#, fuzzy
msgid "chdir: called with incorrect number of arguments, expecting 1"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/filefuncs.c:343
+#: extension/filefuncs.c:439
#, c-format
msgid "stat: unable to read symbolic link `%s'"
msgstr ""
-#: extension/filefuncs.c:376
+#: extension/filefuncs.c:472
#, fuzzy
msgid "stat: called with wrong number of arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/filefuncs.c:383
+#: extension/filefuncs.c:479
#, fuzzy
msgid "stat: bad parameters"
msgstr "%s: ist ein Parameter\n"
-#: extension/filefuncs.c:437
+#: extension/filefuncs.c:533
#, fuzzy, c-format
msgid "fts init: could not create variable %s"
msgstr "index: Zweites Argument ist kein string"
-#: extension/filefuncs.c:460
+#: extension/filefuncs.c:554
+#, fuzzy
+msgid "fts is not supported on this system"
+msgstr "»%s« wird im alten awk nicht unterstützt"
+
+#: extension/filefuncs.c:573
msgid "fill_stat_element: could not create array"
msgstr ""
-#: extension/filefuncs.c:469
+#: extension/filefuncs.c:582
msgid "fill_stat_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:484
+#: extension/filefuncs.c:597
#, fuzzy
msgid "fill_path_element: could not set element"
msgstr "index: Zweites Argument ist kein string"
-#: extension/filefuncs.c:500
+#: extension/filefuncs.c:613
msgid "fill_error_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:547 extension/filefuncs.c:594
+#: extension/filefuncs.c:660 extension/filefuncs.c:707
msgid "fts-process: could not create array"
msgstr ""
-#: extension/filefuncs.c:557 extension/filefuncs.c:604
-#: extension/filefuncs.c:622
+#: extension/filefuncs.c:670 extension/filefuncs.c:717
+#: extension/filefuncs.c:735
#, fuzzy
msgid "fts-process: could not set element"
msgstr "index: Zweites Argument ist kein string"
-#: extension/filefuncs.c:671
+#: extension/filefuncs.c:784
#, fuzzy
msgid "fts: called with incorrect number of arguments, expecting 3"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/filefuncs.c:674
+#: extension/filefuncs.c:787
#, fuzzy
msgid "fts: bad first parameter"
msgstr "%s: ist ein Parameter\n"
-#: extension/filefuncs.c:680
+#: extension/filefuncs.c:793
#, fuzzy
msgid "fts: bad second parameter"
msgstr "%s: ist ein Parameter\n"
-#: extension/filefuncs.c:686
+#: extension/filefuncs.c:799
#, fuzzy
msgid "fts: bad third parameter"
msgstr "%s: ist ein Parameter\n"
-#: extension/filefuncs.c:693
+#: extension/filefuncs.c:806
#, fuzzy
msgid "fts: could not flatten array\n"
msgstr "»%s« ist kein gültiger Variablenname"
-#: extension/filefuncs.c:711
+#: extension/filefuncs.c:824
msgid "fts: ignoring sneaky FTS_NOSTAT flag. nyah, nyah, nyah."
msgstr ""
-#: extension/filefuncs.c:728
+#: extension/filefuncs.c:841
msgid "fts: clear_array() failed\n"
msgstr ""
-#: extension/fnmatch.c:98
+#: extension/fnmatch.c:112
#, fuzzy
msgid "fnmatch: called with less than three arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/fnmatch.c:101
+#: extension/fnmatch.c:115
#, fuzzy
msgid "fnmatch: called with more than three arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/fnmatch.c:104
+#: extension/fnmatch.c:118
#, fuzzy
msgid "fnmatch: could not get first argument"
msgstr "strftime: Das erste Argument ist kein String"
-#: extension/fnmatch.c:109
+#: extension/fnmatch.c:123
#, fuzzy
msgid "fnmatch: could not get second argument"
msgstr "index: Zweites Argument ist kein string"
-#: extension/fnmatch.c:114
+#: extension/fnmatch.c:128
msgid "fnmatch: could not get third argument"
msgstr ""
-#: extension/fnmatch.c:127
+#: extension/fnmatch.c:141
msgid "fnmatch is not implemented on this system\n"
msgstr ""
-#: extension/fnmatch.c:159
+#: extension/fnmatch.c:173
msgid "fnmatch init: could not add FNM_NOMATCH variable"
msgstr ""
-#: extension/fnmatch.c:169
+#: extension/fnmatch.c:183
#, c-format
msgid "fnmatch init: could not set array element %s"
msgstr ""
-#: extension/fnmatch.c:179
+#: extension/fnmatch.c:193
msgid "fnmatch init: could not install FNM array"
msgstr ""
@@ -2238,88 +2257,88 @@ msgstr "sqrt: das Argument %g ist negativ"
msgid "wait: called with too many arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/inplace.c:110
+#: extension/inplace.c:130
msgid "inplace_begin: in-place editing already active"
msgstr ""
-#: extension/inplace.c:113 extension/inplace.c:187
+#: extension/inplace.c:133 extension/inplace.c:207
#, c-format
msgid "inplace_begin: expects 2 arguments but called with %d"
msgstr ""
-#: extension/inplace.c:116
+#: extension/inplace.c:136
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
msgstr ""
-#: extension/inplace.c:124
+#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
msgstr ""
-#: extension/inplace.c:131
+#: extension/inplace.c:151
#, fuzzy, c-format
msgid "inplace_begin: Cannot stat `%s' (%s)"
msgstr "Fatal: extension: »%s« kann nicht geöffnet werden (%s)\n"
-#: extension/inplace.c:138
+#: extension/inplace.c:158
#, fuzzy, c-format
msgid "inplace_begin: `%s' is not a regular file"
msgstr "»%s« ist kein gültiger Variablenname"
-#: extension/inplace.c:149
+#: extension/inplace.c:169
#, c-format
msgid "inplace_begin: mkstemp(`%s') failed (%s)"
msgstr ""
-#: extension/inplace.c:158
+#: extension/inplace.c:178
#, fuzzy, c-format
msgid "inplace_begin: chmod failed (%s)"
msgstr "%s: close ist gescheitert (%s)"
-#: extension/inplace.c:165
+#: extension/inplace.c:185
#, c-format
msgid "inplace_begin: dup(stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:168
+#: extension/inplace.c:188
#, c-format
msgid "inplace_begin: dup2(%d, stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:171
+#: extension/inplace.c:191
#, fuzzy, c-format
msgid "inplace_begin: close(%d) failed (%s)"
msgstr "%s: close ist gescheitert (%s)"
-#: extension/inplace.c:190
+#: extension/inplace.c:210
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
msgstr ""
-#: extension/inplace.c:197
+#: extension/inplace.c:217
msgid "inplace_end: in-place editing not active"
msgstr ""
-#: extension/inplace.c:203
+#: extension/inplace.c:223
#, c-format
msgid "inplace_end: dup2(%d, stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:206
+#: extension/inplace.c:226
#, fuzzy, c-format
msgid "inplace_end: close(%d) failed (%s)"
msgstr "%s: close ist gescheitert (%s)"
-#: extension/inplace.c:210
+#: extension/inplace.c:230
#, c-format
msgid "inplace_end: fsetpos(stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:223
+#: extension/inplace.c:243
#, fuzzy, c-format
msgid "inplace_end: link(`%s', `%s') failed (%s)"
msgstr "Das Leeren der Pipe »%s« ist gescheitert (%s)"
-#: extension/inplace.c:229
+#: extension/inplace.c:253
#, fuzzy, c-format
msgid "inplace_end: rename(`%s', `%s') failed (%s)"
msgstr "Das Schließen des Dateideskriptors %d (»%s«) ist gescheitert (%s)"
@@ -2354,185 +2373,185 @@ msgstr "sqrt: das Argument %g ist negativ"
msgid "chr: called with inappropriate argument(s)"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/readdir.c:203
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr ""
-#: extension/readfile.c:84
+#: extension/readfile.c:113
#, fuzzy
msgid "readfile: called with too many arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
#, fuzzy
msgid "readfile: called with no arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/rwarray.c:120
+#: extension/rwarray.c:124
#, fuzzy
msgid "writea: called with too many arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/rwarray.c:127
+#: extension/rwarray.c:131
#, fuzzy, c-format
msgid "do_writea: argument 0 is not a string\n"
msgstr "exp: das Argument %g liegt außerhalb des gültigen Bereichs"
-#: extension/rwarray.c:133
+#: extension/rwarray.c:137
#, fuzzy, c-format
msgid "do_writea: argument 1 is not an array\n"
msgstr "split: das vierte Argument ist kein Feld"
-#: extension/rwarray.c:180
+#: extension/rwarray.c:184
#, c-format
msgid "write_array: could not flatten array\n"
msgstr ""
-#: extension/rwarray.c:194
+#: extension/rwarray.c:198
#, c-format
msgid "write_array: could not release flattened array\n"
msgstr ""
-#: extension/rwarray.c:276
+#: extension/rwarray.c:280
#, fuzzy
msgid "reada: called with too many arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/rwarray.c:283
+#: extension/rwarray.c:287
#, fuzzy, c-format
msgid "do_reada: argument 0 is not a string\n"
msgstr "exp: das Argument %g liegt außerhalb des gültigen Bereichs"
-#: extension/rwarray.c:289
+#: extension/rwarray.c:293
#, fuzzy, c-format
msgid "do_reada: argument 1 is not an array\n"
msgstr "match: das dritte Argument ist kein Array"
-#: extension/rwarray.c:333
+#: extension/rwarray.c:337
#, c-format
msgid "do_reada: clear_array failed\n"
msgstr ""
-#: extension/rwarray.c:370
+#: extension/rwarray.c:374
#, c-format
msgid "read_array: set_array_element failed\n"
msgstr ""
-#: extension/time.c:81
+#: extension/time.c:113
#, fuzzy
msgid "gettimeofday: ignoring arguments"
msgstr "mktime: Das Argument ist kein String"
-#: extension/time.c:112
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr ""
-#: extension/time.c:133
+#: extension/time.c:165
#, fuzzy
msgid "sleep: called with too many arguments"
msgstr "sqrt: das Argument %g ist negativ"
-#: extension/time.c:136
+#: extension/time.c:168
#, fuzzy
msgid "sleep: missing required numeric argument"
msgstr "exp: das Argument ist keine Zahl"
-#: extension/time.c:142
+#: extension/time.c:174
#, fuzzy
msgid "sleep: argument is negative"
msgstr "exp: das Argument %g liegt außerhalb des gültigen Bereichs"
-#: extension/time.c:176
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr ""
-#: field.c:339
+#: field.c:345
msgid "NF set to negative value"
msgstr "NF wird ein negativer Wert zugewiesen"
-#: field.c:964 field.c:971 field.c:975
+#: field.c:971 field.c:978 field.c:982
msgid "split: fourth argument is a gawk extension"
msgstr "split: das vierte Argument ist eine gawk-Erweiterung"
-#: field.c:968
+#: field.c:975
msgid "split: fourth argument is not an array"
msgstr "split: das vierte Argument ist kein Feld"
-#: field.c:982
+#: field.c:989
msgid "split: second argument is not an array"
msgstr "split: das zweite Argument ist kein Feld"
-#: field.c:986
+#: field.c:993
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:991
+#: field.c:998
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:994
+#: field.c:1001
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:1023
+#: field.c:1032
msgid "split: null string for third arg is a gawk extension"
msgstr "split: Null-String als drittes Argument ist eine gawk-Erweiterung"
-#: field.c:1063
+#: field.c:1072
msgid "patsplit: fourth argument is not an array"
msgstr "patsplit: Das vierte Argument ist kein Feld"
-#: field.c:1068
+#: field.c:1077
msgid "patsplit: second argument is not an array"
msgstr "patsplit: Das zweite Argument ist kein Feld"
-#: field.c:1074
+#: field.c:1083
msgid "patsplit: third argument must be non-null"
msgstr "patsplit: Das dritte Argument darf nicht Null sein"
-#: field.c:1078
+#: field.c:1087
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:1083
+#: field.c:1092
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:1086
+#: field.c:1095
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:1124
+#: field.c:1133
msgid "`FIELDWIDTHS' is a gawk extension"
msgstr "»FIELDWIDTHS« ist eine gawk-Erweiterung"
-#: field.c:1188
+#: field.c:1197
#, c-format
msgid "invalid FIELDWIDTHS value, near `%s'"
msgstr "ungültiger FIELDWIDTHS-Wert nah bei »%s«"
-#: field.c:1261
+#: field.c:1270
msgid "null string for `FS' is a gawk extension"
msgstr "Null-String für »FS« ist eine gawk-Erweiterung"
-#: field.c:1265
+#: field.c:1274
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:1384
+#: field.c:1393
msgid "`FPAT' is a gawk extension"
msgstr "»FPAT« ist eine gawk-Erweiterung"
@@ -2548,610 +2567,610 @@ msgstr ""
msgid "node_to_awk_value: received null val"
msgstr ""
-#: gawkapi.c:808
+#: gawkapi.c:807
#, fuzzy
msgid "remove_element: received null array"
msgstr "length: Argument ist ein Feld"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr ""
-#: gawkapi.c:943
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr ""
-#: gawkapi.c:948
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr ""
-#: getopt.c:603 getopt.c:632
+#: getopt.c:604 getopt.c:633
#, fuzzy, c-format
msgid "%s: option '%s' is ambiguous; possibilities:"
msgstr "%s: Option »%s« ist mehrdeutig\n"
-#: getopt.c:678 getopt.c:682
+#: getopt.c:679 getopt.c:683
#, c-format
msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: Die Option »--%s« hat keine Argumente\n"
-#: getopt.c:691 getopt.c:696
+#: getopt.c:692 getopt.c:697
#, c-format
msgid "%s: option '%c%s' doesn't allow an argument\n"
msgstr "%s: Die Option »%c%s« hat keine Argument\n"
-#: getopt.c:739 getopt.c:758
+#: getopt.c:740 getopt.c:759
#, c-format
msgid "%s: option '--%s' requires an argument\n"
msgstr "%s: Die Option »%s« erfordert ein Argument\n"
-#: getopt.c:796 getopt.c:799
+#: getopt.c:797 getopt.c:800
#, c-format
msgid "%s: unrecognized option '--%s'\n"
msgstr "%s: Die Option »--%s« ist unbekannt\n"
-#: getopt.c:807 getopt.c:810
+#: getopt.c:808 getopt.c:811
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
msgstr "%s: Die Option »%c%s« ist unbekannt\n"
-#: getopt.c:859 getopt.c:862
+#: getopt.c:860 getopt.c:863
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: Ungültige Option -- »%c«\n"
-#: getopt.c:915 getopt.c:932 getopt.c:1142 getopt.c:1160
+#: getopt.c:916 getopt.c:933 getopt.c:1143 getopt.c:1161
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s Die Option »%c« erfordert ein Argument\n"
-#: getopt.c:988 getopt.c:1004
+#: getopt.c:989 getopt.c:1005
#, c-format
msgid "%s: option '-W %s' is ambiguous\n"
msgstr "%s: Die Option »-W %s« ist mehrdeutig\n"
-#: getopt.c:1028 getopt.c:1046
+#: getopt.c:1029 getopt.c:1047
#, c-format
msgid "%s: option '-W %s' doesn't allow an argument\n"
msgstr "%s: Die Option »-W %s« hat keine Argumente\n"
-#: getopt.c:1067 getopt.c:1085
+#: getopt.c:1068 getopt.c:1086
#, c-format
msgid "%s: option '-W %s' requires an argument\n"
msgstr "%s: Die Option »-W %s« erfordert ein Argument\n"
-#: io.c:347
+#: io.c:392
#, c-format
msgid "command line argument `%s' is a directory: skipped"
msgstr ""
"das Kommandozeilen-Argument »%s« ist ein Verzeichnis: wird übersprungen"
-#: io.c:350 io.c:463
+#: io.c:395 io.c:513
#, c-format
msgid "cannot open file `%s' for reading (%s)"
msgstr "Die Datei »%s« kann nicht zum Lesen geöffnet werden (%s)"
-#: io.c:590
+#: io.c:640
#, c-format
msgid "close of fd %d (`%s') failed (%s)"
msgstr "Das Schließen des Dateideskriptors %d (»%s«) ist gescheitert (%s)"
-#: io.c:666
+#: io.c:716
msgid "redirection not allowed in sandbox mode"
msgstr "Umlenkungen sind im Sandbox-Modus nicht erlaubt"
-#: io.c:700
+#: io.c:750
#, c-format
msgid "expression in `%s' redirection only has numeric value"
msgstr ""
"Der Ausdruck in einer Umlenkung mittels »%s« hat nur einen numerischen Wert"
-#: io.c:706
+#: io.c:756
#, c-format
msgid "expression for `%s' redirection has null string value"
msgstr "Der Ausdruck für eine Umlenkung mittels »%s« ist ein leerer String"
-#: io.c:711
+#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
msgstr ""
"Der Dateiname »%s« für eine Umlenkung mittels »%s« kann das Ergebnis eines "
"logischen Ausdrucks sein"
-#: io.c:754
+#: io.c:809
#, c-format
msgid "unnecessary mixing of `>' and `>>' for file `%.*s'"
msgstr "Unnötige Kombination von »>« und »>>« für Datei »%.*s«"
-#: io.c:808
+#: io.c:863
#, c-format
msgid "can't open pipe `%s' for output (%s)"
msgstr "Die Pipe »%s« kann nicht für die Ausgabe geöffnet werden (%s)"
-#: io.c:818
+#: io.c:873
#, c-format
msgid "can't open pipe `%s' for input (%s)"
msgstr "Die Pipe »%s« kann nicht für die Eingabe geöffnet werden (%s)"
-#: io.c:849
+#: io.c:904
#, c-format
msgid "can't open two way pipe `%s' for input/output (%s)"
msgstr ""
"Die bidirektionale Pipe »%s« kann nicht für die Ein-/Ausgabe geöffnet werden "
"(%s)"
-#: io.c:928
+#: io.c:986
#, c-format
msgid "can't redirect from `%s' (%s)"
msgstr "Von »%s« kann nicht umgelenkt werden (%s)"
-#: io.c:931
+#: io.c:989
#, c-format
msgid "can't redirect to `%s' (%s)"
msgstr "Zu »%s« kann nicht umgelenkt werden (%s)"
-#: io.c:982
+#: io.c:1040
msgid ""
"reached system limit for open files: starting to multiplex file descriptors"
msgstr ""
"Die Systemgrenze offener Dateien ist erreicht, daher werden nun "
"Dateideskriptoren mehrfach verwendet"
-#: io.c:998
+#: io.c:1056
#, c-format
msgid "close of `%s' failed (%s)."
msgstr "Das Schließen von »%s« ist gescheitert (%s)."
-#: io.c:1006
+#: io.c:1064
msgid "too many pipes or input files open"
msgstr "Zu viele Pipes oder Eingabedateien offen"
-#: io.c:1028
+#: io.c:1086
msgid "close: second argument must be `to' or `from'"
msgstr "close: Das zweite Argument muss »to« oder »from« sein"
-#: io.c:1045
+#: io.c:1103
#, c-format
msgid "close: `%.*s' is not an open file, pipe or co-process"
msgstr "close: »%.*s« ist weder offene Datei, noch Pipe oder Ko-Prozess"
-#: io.c:1050
+#: io.c:1108
msgid "close of redirection that was never opened"
msgstr "»close« für eine Umlenkung, die nie geöffnet wurde"
-#: io.c:1147
+#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
msgstr ""
"close: Umlenkung »%s« wurde nicht mit »[&« geöffnet, das zweite Argument "
"wird ignoriert"
-#: io.c:1164
+#: io.c:1222
#, c-format
msgid "failure status (%d) on pipe close of `%s' (%s)"
msgstr "Fehlerstatus (%d) beim Schließen der Pipe »%s« (%s)"
-#: io.c:1167
+#: io.c:1225
#, c-format
msgid "failure status (%d) on file close of `%s' (%s)"
msgstr "Fehlerstatus (%d) beim Schließen der Datei »%s« (%s)"
-#: io.c:1187
+#: io.c:1245
#, c-format
msgid "no explicit close of socket `%s' provided"
msgstr "Das explizite Schließen des Sockets »%s« fehlt"
-#: io.c:1190
+#: io.c:1248
#, c-format
msgid "no explicit close of co-process `%s' provided"
msgstr "Das explizite Schließen des Ko-Prozesses »%s« fehlt"
-#: io.c:1193
+#: io.c:1251
#, c-format
msgid "no explicit close of pipe `%s' provided"
msgstr "Das explizite Schließen der Pipe »%s« fehlt"
-#: io.c:1196
+#: io.c:1254
#, c-format
msgid "no explicit close of file `%s' provided"
msgstr "Das explizite Schließen der Datei »%s« fehlt"
-#: io.c:1224 io.c:1279 main.c:842 main.c:879
+#: io.c:1284 io.c:1342 main.c:864 main.c:906
#, c-format
msgid "error writing standard output (%s)"
msgstr "Fehler beim Schreiben auf die Standardausgabe (%s)"
-#: io.c:1228 io.c:1284
+#: io.c:1289 io.c:1348 main.c:866
#, c-format
msgid "error writing standard error (%s)"
msgstr "Fehler beim Schreiben auf die Standardfehlerausgabe (%s)"
-#: io.c:1236
+#: io.c:1297
#, c-format
msgid "pipe flush of `%s' failed (%s)."
msgstr "Das Leeren der Pipe »%s« ist gescheitert (%s)"
-#: io.c:1239
+#: io.c:1300
#, c-format
msgid "co-process flush of pipe to `%s' failed (%s)."
msgstr "Ko-Prozess: Das Leeren der Pipe zu »%s« ist gescheitert (%s)"
-#: io.c:1242
+#: io.c:1303
#, c-format
msgid "file flush of `%s' failed (%s)."
msgstr "Das Leeren der Datei »%s« ist gescheitert (%s)"
-#: io.c:1356
+#: io.c:1420
#, c-format
msgid "local port %s invalid in `/inet'"
msgstr "Der lokale Port »%s« ist ungültig in »/inet«"
-#: io.c:1374
+#: io.c:1438
#, c-format
msgid "remote host and port information (%s, %s) invalid"
msgstr "Die Angaben zu entferntem Host und Port (%s, %s) sind ungültig"
-#: io.c:1526
+#: io.c:1590
#, c-format
msgid "no (known) protocol supplied in special filename `%s'"
msgstr "Es wurde kein (bekanntes) Protokoll im Dateinamen »%s« angegeben"
-#: io.c:1540
+#: io.c:1604
#, c-format
msgid "special file name `%s' is incomplete"
msgstr "Der Dateiname »%s« ist unvollständig"
-#: io.c:1557
+#: io.c:1621
msgid "must supply a remote hostname to `/inet'"
msgstr "Sie müssen in /inet einen Rechnernamen angeben"
-#: io.c:1575
+#: io.c:1639
msgid "must supply a remote port to `/inet'"
msgstr "Sie müssen in »/inet« einen Port angeben"
-#: io.c:1621
+#: io.c:1685
msgid "TCP/IP communications are not supported"
msgstr "TCP/IP-Verbindungen werden nicht unterstützt"
-#: io.c:1796
+#: io.c:1867
#, c-format
msgid "could not open `%s', mode `%s'"
msgstr "»%s« konnte nicht geöffnet werden, Modus »%s«"
-#: io.c:1846
+#: io.c:1917
#, c-format
msgid "close of master pty failed (%s)"
msgstr ""
"Das Schließen der übergeordneten Terminal-Gerätedatei ist gescheitert (%s)"
-#: io.c:1848 io.c:2024 io.c:2194
+#: io.c:1919 io.c:2105 io.c:2305
#, c-format
msgid "close of stdout in child failed (%s)"
msgstr "Das Schließen der Standardausgabe im Kindprozess ist gescheitert (%s)"
-#: io.c:1851
+#: io.c:1922
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
msgstr ""
"Das Verschieben der untergeordneten Terminal-Gerätedatei zur Standardausgabe "
"im Kindprozess ist gescheitert (dup: %s)"
-#: io.c:1853 io.c:2029
+#: io.c:1924 io.c:2110
#, c-format
msgid "close of stdin in child failed (%s)"
msgstr "Schließen von stdin im Kindprozess gescheitert (%s)"
-#: io.c:1856
+#: io.c:1927
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
msgstr ""
"Das Verschieben der untergeordneten Terminal-Gerätedatei zur Standardeingabe "
"im Kindprozess ist gescheitert (dup: %s)"
-#: io.c:1858 io.c:1879
+#: io.c:1929 io.c:1951
#, c-format
msgid "close of slave pty failed (%s)"
msgstr ""
"Das Schließen der untergeordneten Terminal-Gerätedatei ist gescheitert (%s)"
-#: io.c:1965 io.c:2027 io.c:2171 io.c:2197
+#: io.c:2040 io.c:2108 io.c:2276 io.c:2308
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
msgstr ""
"Das Verschieben der Pipe zur Standardausgabe im Kindprozess ist gescheitert "
"(dup: %s)"
-#: io.c:1972 io.c:2032
+#: io.c:2047 io.c:2113
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
msgstr ""
"Das Verschieben der Pipe zur Standardeingabe im Kindprozess ist gescheitert "
"(dup: %s)"
-#: io.c:1992 io.c:2187
+#: io.c:2073 io.c:2298
msgid "restoring stdout in parent process failed\n"
msgstr ""
"Das Wiederherstellen der Standardausgabe im Elternprozess ist gescheitert\n"
-#: io.c:2000
+#: io.c:2081
msgid "restoring stdin in parent process failed\n"
msgstr ""
"Das Wiederherstellen der Standardeingabe im Elternprozess ist gescheitert\n"
-#: io.c:2035 io.c:2199 io.c:2213
+#: io.c:2116 io.c:2310 io.c:2324
#, c-format
msgid "close of pipe failed (%s)"
msgstr "Das Schließen der Pipe ist gescheitert (%s)"
-#: io.c:2089
+#: io.c:2174
msgid "`|&' not supported"
msgstr "»|&« wird nicht unterstützt"
-#: io.c:2156
+#: io.c:2261
#, c-format
msgid "cannot open pipe `%s' (%s)"
msgstr "Pipe »%s« kann nicht geöffnet werden (%s)"
-#: io.c:2207
+#: io.c:2318
#, c-format
msgid "cannot create child process for `%s' (fork: %s)"
msgstr "Kindprozess für »%s« kann nicht erzeugt werden (fork: %s)"
-#: io.c:2667
+#: io.c:2790
msgid "register_input_parser: received NULL pointer"
msgstr ""
-#: io.c:2695
+#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
msgstr ""
-#: io.c:2702
+#: io.c:2825
#, c-format
msgid "input parser `%s' failed to open `%s'"
msgstr ""
-#: io.c:2722
+#: io.c:2845
msgid "register_output_wrapper: received NULL pointer"
msgstr ""
-#: io.c:2750
+#: io.c:2873
#, c-format
msgid ""
"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
msgstr ""
-#: io.c:2757
+#: io.c:2880
#, c-format
msgid "output wrapper `%s' failed to open `%s'"
msgstr ""
-#: io.c:2778
+#: io.c:2901
msgid "register_output_processor: received NULL pointer"
msgstr ""
-#: io.c:2807
+#: io.c:2930
#, c-format
msgid ""
"two-way processor `%s' conflicts with previously installed two-way processor "
"`%s'"
msgstr ""
-#: io.c:2816
+#: io.c:2939
#, c-format
msgid "two way processor `%s' failed to open `%s'"
msgstr ""
-#: io.c:2923
+#: io.c:3064
#, c-format
msgid "data file `%s' is empty"
msgstr "Die Datei »%s« ist leer"
-#: io.c:2965 io.c:2973
+#: io.c:3106 io.c:3114
msgid "could not allocate more input memory"
msgstr "Es konnte kein weiterer Speicher für die Eingabe beschafft werden"
-#: io.c:3539
+#: io.c:3682
msgid "multicharacter value of `RS' is a gawk extension"
msgstr "Multicharacter-Wert von »RS« ist eine gawk-Erweiterung"
-#: io.c:3628
+#: io.c:3771
msgid "IPv6 communication is not supported"
msgstr "IPv6-Verbindungen werden nicht unterstützt"
-#: main.c:388
+#: main.c:405
msgid "empty argument to `-e/--source' ignored"
msgstr "Das leere Argument für »--source« wird ignoriert"
-#: main.c:478
+#: main.c:495
#, c-format
msgid "%s: option `-W %s' unrecognized, ignored\n"
msgstr "%s: Die Option »-W %s« ist unbekannt und wird ignoriert\n"
-#: main.c:524
+#: main.c:541
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: Die Option %c erfordert ein Argument\n"
-#: main.c:545
+#: main.c:562
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
msgstr ""
"Die Umgebungsvariable »POSIXLY_CORRECT« ist gesetzt: »--posix« wird "
"eingeschaltet"
-#: main.c:551
+#: main.c:568
msgid "`--posix' overrides `--traditional'"
msgstr "»--posix« hat Vorrang vor »--traditional«"
-#: main.c:562
+#: main.c:579
msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
msgstr "»--posix« /»--traditional« hat Vorrang vor »--non-decimal-data«"
-#: main.c:566
+#: main.c:583
#, c-format
msgid "running %s setuid root may be a security problem"
msgstr "%s als setuid root auszuführen kann zu Sicherheitsproblemen führen"
-#: main.c:571
+#: main.c:588
#, fuzzy
msgid "`--posix' overrides `--characters-as-bytes'"
msgstr "»--posix« hat Vorrang vor »--binary«"
-#: main.c:630
+#: main.c:647
#, c-format
msgid "can't set binary mode on stdin (%s)"
msgstr ""
"Das Setzen des Binärermodus für die Standardeingabe ist nicht möglich (%s)"
-#: main.c:633
+#: main.c:650
#, c-format
msgid "can't set binary mode on stdout (%s)"
msgstr ""
"Das Setzen des Binärermodus für die Standardausgabe ist nicht möglich (%s)"
-#: main.c:635
+#: main.c:652
#, c-format
msgid "can't set binary mode on stderr (%s)"
msgstr ""
"Das Setzen des Binärermodus für die Standardfehlerausgabe ist nicht möglich "
"(%s)"
-#: main.c:693
+#: main.c:710
msgid "no program text at all!"
msgstr "Es wurde überhaupt kein Programmtext angegeben!"
-#: main.c:779
+#: main.c:799
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
msgstr "Aufruf: %s [POSIX- oder GNU-Optionen] -f PROGRAMM [--] Datei ...\n"
-#: main.c:781
+#: main.c:801
#, c-format
msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
msgstr "Aufruf: %s [POSIX- oder GNU-Optionen] -- %cPROGRAMM%c Datei ...\n"
-#: main.c:786
+#: main.c:806
msgid "POSIX options:\t\tGNU long options: (standard)\n"
msgstr "POSIX-Optionen\t\tlange GNU-Optionen: (standard)\n"
-#: main.c:787
+#: main.c:807
msgid "\t-f progfile\t\t--file=progfile\n"
msgstr "\t-f PROGRAMM\t\t--file=PROGRAMM\n"
-#: main.c:788
+#: main.c:808
msgid "\t-F fs\t\t\t--field-separator=fs\n"
msgstr "\t-F Feldtrenner\t\t\t--field-separator=Feldtrenner\n"
-#: main.c:789
+#: main.c:809
msgid "\t-v var=val\t\t--assign=var=val\n"
msgstr "\t-v var=Wert\t\t--assign=var=Wert\n"
-#: main.c:790
+#: main.c:810
msgid "Short options:\t\tGNU long options: (extensions)\n"
msgstr "POSIX-Optionen\t\tGNU-Optionen (lang): (Erweiterungen)\n"
-#: main.c:791
+#: main.c:811
msgid "\t-b\t\t\t--characters-as-bytes\n"
msgstr "\t-b\t\t\t--characters-as-bytes\n"
-#: main.c:792
+#: main.c:812
msgid "\t-c\t\t\t--traditional\n"
msgstr "\t-c\t\t\t--traditional\n"
-#: main.c:793
+#: main.c:813
msgid "\t-C\t\t\t--copyright\n"
msgstr "\t-C\t\t\t--copyright\n"
-#: main.c:794
+#: main.c:814
msgid "\t-d[file]\t\t--dump-variables[=file]\n"
msgstr "\t-d [Datei]\t\t--dump-variables[=Datei]\n"
-#: main.c:795
+#: main.c:815
#, fuzzy
msgid "\t-D[file]\t\t--debug[=file]\n"
msgstr "\t-p [Datei]\t\t--profile[=Datei]\n"
-#: main.c:796
+#: main.c:816
msgid "\t-e 'program-text'\t--source='program-text'\n"
msgstr "\t-e 'Programmtext'\t--source=Programmtext\n"
-#: main.c:797
+#: main.c:817
msgid "\t-E file\t\t\t--exec=file\n"
msgstr "\t-E Datei\t\t\t--exec=Datei\n"
-#: main.c:798
+#: main.c:818
msgid "\t-g\t\t\t--gen-pot\n"
msgstr "\t-g\t\t\t--gen-pot\n"
-#: main.c:799
+#: main.c:819
msgid "\t-h\t\t\t--help\n"
msgstr "\t-h\t\t\t--help\n"
-#: main.c:800
+#: main.c:820
msgid "\t-i includefile\t\t--include=includefile\n"
msgstr ""
-#: main.c:801
+#: main.c:821
msgid "\t-l library\t\t--load=library\n"
msgstr ""
-#: main.c:802
+#: main.c:822
msgid "\t-L [fatal]\t\t--lint[=fatal]\n"
msgstr "\t-L [fatal]\t\t--lint[=fatal]\n"
-#: main.c:803
+#: main.c:823
msgid "\t-n\t\t\t--non-decimal-data\n"
msgstr "\t-n\t\t\t--non-decimal-data\n"
-#: main.c:804
+#: main.c:824
#, fuzzy
msgid "\t-M\t\t\t--bignum\n"
msgstr "\t-g\t\t\t--gen-pot\n"
-#: main.c:805
+#: main.c:825
msgid "\t-N\t\t\t--use-lc-numeric\n"
msgstr "\t-N\t\t\t--use-lc-numeric\n"
-#: main.c:806
+#: main.c:826
#, fuzzy
msgid "\t-o[file]\t\t--pretty-print[=file]\n"
msgstr "\t-p [Datei]\t\t--profile[=Datei]\n"
-#: main.c:807
+#: main.c:827
msgid "\t-O\t\t\t--optimize\n"
msgstr "\t-O\t\t\t--optimize\n"
-#: main.c:808
+#: main.c:828
msgid "\t-p[file]\t\t--profile[=file]\n"
msgstr "\t-p [Datei]\t\t--profile[=Datei]\n"
-#: main.c:809
+#: main.c:829
msgid "\t-P\t\t\t--posix\n"
msgstr "\t-P\t\t\t--posix\n"
-#: main.c:810
+#: main.c:830
msgid "\t-r\t\t\t--re-interval\n"
msgstr "\t-r\t\t\t--re-interval\n"
-#: main.c:811
+#: main.c:831
msgid "\t-S\t\t\t--sandbox\n"
msgstr "\t-S\t\t\t--sandbox\n"
-#: main.c:812
+#: main.c:832
msgid "\t-t\t\t\t--lint-old\n"
msgstr "\t-t\t\t\t--lint-old\n"
-#: main.c:813
+#: main.c:833
msgid "\t-V\t\t\t--version\n"
msgstr "\t-V\t\t\t--version\n"
-#: main.c:815
+#: main.c:835
msgid "\t-W nostalgia\t\t--nostalgia\n"
msgstr "\t-W nostalgia\t\t--nostalgia\n"
-#: main.c:818
+#: main.c:838
msgid "\t-Y\t\t--parsedebug\n"
msgstr "\t-Y\t\t--parsedebug\n"
@@ -3160,7 +3179,7 @@ msgstr "\t-Y\t\t--parsedebug\n"
#. for this application. Please add _another line_ with the
#. address for translation bugs.
#. no-wrap
-#: main.c:827
+#: main.c:847
msgid ""
"\n"
"To report bugs, see node `Bugs' in `gawk.info', which is\n"
@@ -3176,7 +3195,7 @@ msgstr ""
"an translation-team-de@lists.sourceforge.net\n"
"\n"
-#: main.c:831
+#: main.c:851
msgid ""
"gawk is a pattern scanning and processing language.\n"
"By default it reads standard input and writes standard output.\n"
@@ -3187,7 +3206,7 @@ msgstr ""
"auf der Standardausgabe aus.\n"
"\n"
-#: main.c:835
+#: main.c:855
msgid ""
"Examples:\n"
"\tgawk '{ sum += $1 }; END { print sum }' file\n"
@@ -3197,7 +3216,7 @@ msgstr ""
"\tgawk '{ sum += $1 }; END { print sum }' file\n"
"\tgawk -F: '{ print $1 }' /etc/passwd\n"
-#: main.c:855
+#: main.c:880
#, c-format
msgid ""
"Copyright (C) 1989, 1991-%d Free Software Foundation.\n"
@@ -3217,7 +3236,7 @@ msgstr ""
"spätere Version.\n"
"\n"
-#: main.c:863
+#: main.c:888
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"
@@ -3230,7 +3249,7 @@ msgstr ""
"leistung einer HANDELBARKEIT oder der EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.\n"
"Sehen Sie bitte die GNU General Public License für weitere Details.\n"
-#: main.c:869
+#: main.c:894
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"
@@ -3239,16 +3258,16 @@ msgstr ""
"diesem Programm erhalten haben. Wenn nicht, lesen Sie bitte\n"
"http://www.gnu.org/licenses/.\n"
-#: main.c:904
+#: main.c:931
msgid "-Ft does not set FS to tab in POSIX awk"
msgstr "-Ft setzt FS im POSIX-awk nicht auf Tab"
-#: main.c:1181
+#: main.c:1208
#, c-format
msgid "unknown value for field spec: %d\n"
msgstr "unbekannter Wert für eine Feldangabe: %d\n"
-#: main.c:1279
+#: main.c:1306
#, c-format
msgid ""
"%s: `%s' argument to `-v' not in `var=value' form\n"
@@ -3257,50 +3276,50 @@ msgstr ""
"%s: Argument »%s« von »-v« ist nicht in der Form »Variable=Wert«\n"
"\n"
-#: main.c:1305
+#: main.c:1332
#, c-format
msgid "`%s' is not a legal variable name"
msgstr "»%s« ist kein gültiger Variablenname"
-#: main.c:1308
+#: main.c:1335
#, 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:1312
+#: main.c:1339
#, 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:1317
+#: main.c:1344
#, c-format
msgid "cannot use function `%s' as variable name"
msgstr "Funktion »%s« kann nicht als Name einer Variablen verwendet werden"
-#: main.c:1370
+#: main.c:1397
msgid "floating point exception"
msgstr "Fließkomma-Ausnahme"
-#: main.c:1377
+#: main.c:1404
msgid "fatal error: internal error"
msgstr "Fataler Fehler: interner Fehler"
-#: main.c:1392
+#: main.c:1419
msgid "fatal error: internal error: segfault"
msgstr "Fataler Fehler: interner Fehler: Speicherbegrenzungsfehler"
-#: main.c:1404
+#: main.c:1431
msgid "fatal error: internal error: stack overflow"
msgstr "Fataler Fehler: interner Fehler: Stapelüberlauf"
-#: main.c:1463
+#: main.c:1490
#, c-format
msgid "no pre-opened fd %d"
msgstr "Kein bereits geöffneter Dateideskriptor %d"
-#: main.c:1470
+#: main.c:1497
#, c-format
msgid "could not pre-open /dev/null for fd %d"
msgstr "/dev/null konnte nicht für Dateideskriptor %d geöffnet werden"
@@ -3359,7 +3378,7 @@ msgstr "or(%lf, %lf): Dezimalteil wird abgeschnitten"
msgid "%s: argument #%d negative value %Zd will give strange results"
msgstr "compl(%lf): Negativer Wert wird zu merkwürdigen Ergebnissen führen"
-#: msg.c:61
+#: msg.c:68
#, c-format
msgid "cmd. line:"
msgstr "Kommandozeile:"
@@ -3416,16 +3435,16 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
msgstr ""
"%s %s »%s«: close-on-exec konnte nicht gesetzt werden: (fcntl F_SETFD: %s)"
-#: profile.c:70
+#: profile.c:71
#, c-format
msgid "could not open `%s' for writing: %s"
msgstr "»%s« konnte nicht zum Schreiben geöffnet werden: %s"
-#: profile.c:72
+#: profile.c:73
msgid "sending profile to standard error"
msgstr "Das Profil wird auf der Standardfehlerausgabe ausgegeben"
-#: profile.c:188
+#: profile.c:193
#, c-format
msgid ""
"\t# %s block(s)\n"
@@ -3434,7 +3453,7 @@ msgstr ""
"\t# %s Blöcke\n"
"\n"
-#: profile.c:193
+#: profile.c:198
#, c-format
msgid ""
"\t# Rule(s)\n"
@@ -3443,29 +3462,29 @@ msgstr ""
"\t# Regeln(s)\n"
"\n"
-#: profile.c:267
+#: profile.c:272
#, c-format
msgid "internal error: %s with null vname"
msgstr "Interner Fehler: %s mit null vname"
-#: profile.c:530
+#: profile.c:537
#, fuzzy
msgid "internal error: builtin with null fname"
msgstr "Interner Fehler: %s mit null vname"
-#: profile.c:942
+#: profile.c:949
#, c-format
msgid ""
"\t# Loaded extensions (-l and/or @load)\n"
"\n"
msgstr ""
-#: profile.c:965
+#: profile.c:972
#, c-format
msgid "\t# gawk profile, created %s\n"
msgstr "\t# gawk-Profil, erzeugt %s\n"
-#: profile.c:1351
+#: profile.c:1475
#, c-format
msgid ""
"\n"
@@ -3474,18 +3493,12 @@ msgstr ""
"\n"
"\t# Funktionen in alphabetischer Reihenfolge\n"
-#: profile.c:1389
+#: profile.c:1513
#, c-format
msgid "redir2str: unknown redirection type %d"
msgstr "redir2str: unbekannter Umlenkungstyp %d"
-#: re.c:583
-#, c-format
-msgid "range of the form `[%c-%c]' is locale dependent"
-msgstr ""
-"Ein Bereich in der Form »[%c-%c]« ist abhängig von der gesetzten Locale"
-
-#: re.c:610
+#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
msgstr ""
@@ -3555,10 +3568,14 @@ msgstr ") oder \\) werden nicht geöffnet"
msgid "No previous regular expression"
msgstr "Kein vorangehender regulärer Ausdruck"
-#: symbol.c:740
+#: symbol.c:741
msgid "can not pop main context"
msgstr ""
+#~ msgid "range of the form `[%c-%c]' is locale dependent"
+#~ msgstr ""
+#~ "Ein Bereich in der Form »[%c-%c]« ist abhängig von der gesetzten Locale"
+
#, fuzzy
#~ msgid "[s]printf called with no arguments"
#~ msgstr "sqrt: das Argument %g ist negativ"
diff --git a/po/es.gmo b/po/es.gmo
index 53ace354..0bfebbae 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 59b53afb..d16109a9 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk 4.0.0h\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2013-05-09 16:05+0300\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2012-01-30 07:42-0600\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -16,93 +16,93 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: array.c:254
+#: array.c:256
#, c-format
msgid "from %s"
msgstr "desde %s"
-#: array.c:354
+#: array.c:357
msgid "attempt to use a scalar value as array"
msgstr "se intentó usar un valor escalar como una matriz"
-#: array.c:356
+#: array.c:359
#, c-format
msgid "attempt to use scalar parameter `%s' as an array"
msgstr "se intentó usar el parámetro escalar `%s como una matriz'"
-#: array.c:359
+#: array.c:362
#, c-format
msgid "attempt to use scalar `%s' as an array"
msgstr "se intentó usar el escalar `%s' como una matriz"
-#: array.c:406 array.c:573 builtin.c:85 builtin.c:1591 builtin.c:1637
-#: builtin.c:1650 builtin.c:2078 builtin.c:2092 eval.c:1121 eval.c:1125
-#: eval.c:1524
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
+#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
msgstr "se intentó usar la matriz `%s' en un contexto escalar"
-#: array.c:580
+#: array.c:583
#, c-format
msgid "delete: index `%s' not in array `%s'"
msgstr "delete: el índice `%s' no está en la matriz `%s'"
-#: array.c:594
+#: array.c:597
#, c-format
msgid "attempt to use scalar `%s[\"%.*s\"]' as an array"
msgstr "se intentó usar el dato escalar `%s[\"%.*s\"]' como una matriz"
-#: array.c:773
+#: array.c:776
#, fuzzy
msgid "adump: first argument not an array"
msgstr "adump: el argumento no es una matriz"
-#: array.c:812
+#: array.c:815
msgid "asort: second argument not an array"
msgstr "asort: el segundo argumento no es una matriz"
-#: array.c:813
+#: array.c:816
msgid "asorti: second argument not an array"
msgstr "asorti: el segundo argumento no es una matriz"
-#: array.c:820
+#: array.c:823
msgid "asort: first argument not an array"
msgstr "asort: el primer argumento no es una matriz"
-#: array.c:821
+#: array.c:824
msgid "asorti: first argument not an array"
msgstr "asorti: el primer argumento no es una matriz"
-#: array.c:828
+#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
msgstr ""
"asort: no se puede usar una submatriz del primer argumento para el segundo "
"argumento"
-#: array.c:829
+#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
msgstr ""
"asorti: no se puede usar una submatriz del primer argumento para el segundo "
"argumento"
-#: array.c:834
+#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
msgstr ""
"asort: no se puede usar una submatriz del segundo argumento para el primer "
"argumento"
-#: array.c:835
+#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
msgstr ""
"asorti: no se puede usar una submatriz del segundo argumento para el primer "
"argumento"
-#: array.c:1309
+#: array.c:1314
#, c-format
msgid "`%s' is invalid as a function name"
msgstr "`%s' es inválido como un nombre de función"
-#: array.c:1313
+#: array.c:1318
#, c-format
msgid "sort comparison function `%s' is not defined"
msgstr "la función de comparación de ordenamiento `%s' no está definida"
@@ -147,11 +147,11 @@ msgstr "valores case duplicados en el cuerpo de un switch: %s"
msgid "duplicate `default' detected in switch body"
msgstr "se detectó un `default' duplicado en el cuerpo de un switch"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr "no se permite `break' fuera de un bucle o switch"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "no se permite `continue' fuera de un bucle"
@@ -243,275 +243,275 @@ msgstr ""
msgid "invalid subscript expression"
msgstr "expresión de subíndice inválida"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:119
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "aviso: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:151
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "fatal: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "nueva línea o fin de la cadena inesperados"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:517 debug.c:533
-#: debug.c:2792 debug.c:5040
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
+#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "no se puede abrir el fichero fuente `%s' para lectura (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, fuzzy, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "no se puede abrir el fichero fuente `%s' para lectura (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:130 debug.c:5191
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "razón desconocida"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr ""
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "ya se incluyó el fichero fuente `%s'"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, fuzzy, c-format
msgid "already loaded shared library `%s'"
msgstr "ya se incluyó el fichero fuente `%s'"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "@include es una extensión de gawk"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "nombre de fichero vacío después de @include"
-#: awkgram.y:2470
+#: awkgram.y:2494
#, fuzzy
msgid "@load is a gawk extension"
msgstr "@include es una extensión de gawk"
-#: awkgram.y:2476
+#: awkgram.y:2500
#, fuzzy
msgid "empty filename after @load"
msgstr "nombre de fichero vacío después de @include"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "texto de programa vacío en la linea de órdenes"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "no se puede leer el fichero fuente `%s' (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "el fichero fuente `%s' está vacío"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "el fichero fuente no termina con línea nueva"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr "expresión regular sin terminar termina con `\\` al final del fichero"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr ""
"%s: %d: el modificador de expresión regular `/.../%c` de tawk no funciona en "
"gawk"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr ""
"el modificador de expresión regular `/.../%c` de tawk no funciona en gawk"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "expresión regular sin terminar"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "expresión regular sin terminar al final del fichero"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr "el uso de la continuación de línea `\\ #...' no es transportable"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "la barra invertida no es el último caracter en la línea"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX no permite el operador `**='"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "el awk antiguo no admite el operador `**='"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX no permite el operador `**'"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "el awk antiguo no admite el operador `**='"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "el operador `^=' no se admite en el awk antiguo"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "el operador `^' no se admite en el awk antiguo"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "cadena sin terminar"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "caracter '%c' inválido en la expresión"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "`%s' es una extensión de gawk"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX no permite `%s'"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "`%s' no se admite en el awk antiguo"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "¡`goto' se considera dañino!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d es inválido como número de argumentos para %s"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
msgstr ""
"%s: la literal de cadena como último argumento de substitute no tiene efecto"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "el tercer argumento de %s no es un objecto modificable"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: el tercer argumento es una extensión de gawk"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: el segundo argumento es una extensión de gawk"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
"el uso de dcgettext(_\"...\") es incorrecto: quite el subrayado inicial"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
"el uso de dcngettext(_\"...\") es incorrecto: quite el subrayado inicial"
-#: awkgram.y:3992
+#: awkgram.y:4016
#, fuzzy
msgid "index: regexp constant as second argument is not allowed"
msgstr "index: el segundo argumento recibido no es una cadena"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "función `%s': parámetro `%s' oscurece la variable global"
-#: awkgram.y:4102 debug.c:4021 debug.c:4064 debug.c:5189
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "no se puede abrir `%s' para escritura (%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "se envía la lista de variables a la salida estándar de error"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: falló close (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "¡se llamó shadow_funcs() dos veces!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "hay variables opacadas."
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "el nombre de función `%s' se definió previamente"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr ""
"función `%s': no se puede usar un nombre de función como nombre de parámetro"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
msgstr ""
"función `%s': no se puede usar la variable especial `%s' como un parámetro "
"de función"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "función `%s': parámetro #%d, `%s', duplica el parámetro #%d"
-#: awkgram.y:4366 awkgram.y:4372
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "se llamó a la función `%s' pero nunca se definió"
-#: awkgram.y:4376
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "se definió la función `%s' pero nunca se llamó directamente"
-#: awkgram.y:4408
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr ""
"la constante de expresión regular para el parámetro #%d da un valor booleano"
-#: awkgram.y:4467
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -520,243 +520,253 @@ msgstr ""
"se llamó la función `%s' con espacio entre el nombre y el `(',\n"
"o se usó como una variable o una matriz"
-#: awkgram.y:4703
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "se intentó una división por cero"
-#: awkgram.y:4712
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "se intentó una división por cero en `%%'"
-#: builtin.c:128
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
+msgstr ""
+
+#: awkgram.y:5052
+#, fuzzy, c-format
+msgid "invalid target of assignment (opcode %s)"
+msgstr "%d es inválido como número de argumentos para %s"
+
+#: builtin.c:133
#, c-format
msgid "%s to \"%s\" failed (%s)"
msgstr "falló %s a \"%s\" (%s)"
-#: builtin.c:129
+#: builtin.c:134
msgid "standard output"
msgstr "salida estándar"
-#: builtin.c:143
+#: builtin.c:148
msgid "exp: received non-numeric argument"
msgstr "exp: se recibió un argumento que no es númerico"
-#: builtin.c:149
+#: builtin.c:154
#, c-format
msgid "exp: argument %g is out of range"
msgstr "exp: el argumento %g está fuera de rango"
-#: builtin.c:224
+#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
msgstr ""
"fflush: no se puede limpiar: se abrió la tubería `%s' para lectura, no para "
"escritura"
-#: builtin.c:227
+#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
msgstr ""
"fflush: no se puede limpiar: se abrió el fichero `%s' para lectura, no para "
"escritura"
-#: builtin.c:239
+#: builtin.c:244
#, c-format
msgid "fflush: `%s' is not an open file, pipe or co-process"
msgstr "fflush: `%s' no es un fichero abierto, tubería o co-proceso"
-#: builtin.c:357
+#: builtin.c:362
msgid "index: received non-string first argument"
msgstr "index: el primer argumento recibido no es una cadena"
-#: builtin.c:359
+#: builtin.c:364
msgid "index: received non-string second argument"
msgstr "index: el segundo argumento recibido no es una cadena"
-#: builtin.c:483 mpfr.c:757
+#: builtin.c:488 mpfr.c:757
msgid "int: received non-numeric argument"
msgstr "int: se recibió un argumento que no es númerico"
-#: builtin.c:520
+#: builtin.c:525
msgid "length: received array argument"
msgstr "length: se recibió un argumento de matriz"
-#: builtin.c:523
+#: builtin.c:528
msgid "`length(array)' is a gawk extension"
msgstr "`length(array)' es una extensión de gawk"
-#: builtin.c:539
+#: builtin.c:544
msgid "length: received non-string argument"
msgstr "length: se recibió un argumento que no es una cadena"
-#: builtin.c:570
+#: builtin.c:575
msgid "log: received non-numeric argument"
msgstr "log: se recibió un argumento que no es númerico"
-#: builtin.c:573
+#: builtin.c:578
#, c-format
msgid "log: received negative argument %g"
msgstr "log: se recibió el argumento negativo %g"
-#: builtin.c:771 builtin.c:776
+#: builtin.c:776 builtin.c:781
msgid "fatal: must use `count$' on all formats or none"
msgstr "fatal: se debe utilizar `count$' en todos los formatos o en ninguno"
-#: builtin.c:846
+#: builtin.c:851
#, c-format
msgid "field width is ignored for `%%' specifier"
msgstr "se descarta la anchura del campo para el especificador `%%'"
-#: builtin.c:848
+#: builtin.c:853
#, c-format
msgid "precision is ignored for `%%' specifier"
msgstr "se descarta la precisión para el especificador `%%'"
-#: builtin.c:850
+#: builtin.c:855
#, c-format
msgid "field width and precision are ignored for `%%' specifier"
msgstr ""
"se descartan la anchura del campo y la precisión para el especificador `%%'"
-#: builtin.c:901
+#: builtin.c:906
msgid "fatal: `$' is not permitted in awk formats"
msgstr "fatal: no se permite `$' en los formatos de awk"
-#: builtin.c:910
+#: builtin.c:915
msgid "fatal: arg count with `$' must be > 0"
msgstr "fatal: la cuenta de argumentos con `$' debe ser > 0"
-#: builtin.c:914
+#: builtin.c:919
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
msgstr ""
"fatal: la cuenta de argumentos %ld es mayor que el número total de "
"argumentos proporcionados"
-#: builtin.c:918
+#: builtin.c:923
msgid "fatal: `$' not permitted after period in format"
msgstr "fatal: no se permite `$' después de un punto en el formato"
-#: builtin.c:934
+#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
msgstr ""
"fatal: no se proporciona `$' para la anchura o la precisión del campo "
"posicional"
-#: builtin.c:1006
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "`l' no tiene significado en los formatos de awk; se descarta"
-#: builtin.c:1010
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "fatal: no se permite `l' en los formatos POSIX de awk"
-#: builtin.c:1023
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "`L' no tiene significado en los formatos de awk; se descarta"
-#: builtin.c:1027
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "fatal: no se permite `L' en los formatos POSIX de awk"
-#: builtin.c:1040
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "`h' no tiene significado en los formatos de awk; se descarta"
-#: builtin.c:1044
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "fatal: no se permite `h' en los formatos POSIX de awk"
-#: builtin.c:1439
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf: el valor %g está fuera del rango para el formato `%%%c'"
-#: builtin.c:1537
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
msgstr ""
"se descarta el carácter especificador de formato `%c' desconocido: no se "
"convirtió ningún argumento"
-#: builtin.c:1542
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr ""
"fatal: no hay suficientes argumentos para satisfacer a la cadena de formato"
-#: builtin.c:1544
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "se acabó ^ para éste"
-#: builtin.c:1551
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: el especificador de formato no tiene letras de control"
-#: builtin.c:1554
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "se proporcionaron demasiados argumentos para la cadena de formato"
-#: builtin.c:1610
+#: builtin.c:1634
#, fuzzy
msgid "sprintf: no arguments"
msgstr "printf: sin argumentos"
-#: builtin.c:1633 builtin.c:1644
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: sin argumentos"
-#: builtin.c:1687
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: se recibió un argumento que no es un númerico"
-#: builtin.c:1691
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: builtin.c:1722
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: la longitud %g no es >= 1"
-#: builtin.c:1724
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: la longitud %g no es >= 0"
-#: builtin.c:1731
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: se truncará la longitud no entera %g"
-#: builtin.c:1736
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr ""
"substr: la longitud %g es demasiado grande para ser índice de cadena, se "
"trunca a %g"
-#: builtin.c:1748
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: el índice de inicio %g es inválido, se usa 1"
-#: builtin.c:1753
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr "substr: se truncará el índice de inicio no entero %g"
-#: builtin.c:1778
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: la cadena de origen es de longitud cero"
-#: builtin.c:1794
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: el índice de inicio %g está después del fin de la cadena"
-#: builtin.c:1802
+#: builtin.c:1826
#, c-format
msgid ""
"substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -764,196 +774,196 @@ msgstr ""
"substr: la cadena %g en el índice de inicio %g excede la longitud del primer "
"argumento (%lu)"
-#: builtin.c:1876
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr ""
"strftime: el valor de formato en PROCINFO[\"strftime\"] tiene tipo numérico"
-#: builtin.c:1899
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: el segundo argumento recibido no es númerico"
-#: builtin.c:1903
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr ""
"strftime: el segundo argumento es menor que 0 o demasiado grande para time_t"
-#: builtin.c:1910
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: el primer argumento recibido no es una cadena"
-#: builtin.c:1917
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: se recibió una cadena de formato vacía"
-#: builtin.c:1983
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: se recibió un argumento que no es una cadena"
-#: builtin.c:2000
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr ""
"mktime: por lo menos uno de los valores está fuera del rango por defecto"
-#: builtin.c:2035
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "no se permite la función 'system' en modo sandbox"
-#: builtin.c:2040
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: se recibió un argumento que no es una cadena"
-#: builtin.c:2160
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "referencia al campo sin inicializar `$%d'"
-#: builtin.c:2247
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: se recibió un argumento que no es una cadena"
-#: builtin.c:2281
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: se recibió un argumento que no es una cadena"
-#: builtin.c:2317 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: el primer argumento recibido no es númerico"
-#: builtin.c:2319 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: el segundo argumento recibido no es númerico"
-#: builtin.c:2338
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: se recibió un argumento que no es númerico"
-#: builtin.c:2354
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: se recibió un argumento que no es númerico"
-#: builtin.c:2407 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: se recibió un argumento que no es númerico"
-#: builtin.c:2438
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: el tercer argumento no es una matriz"
-#: builtin.c:2710
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: el tercer argumento de 0 se trata como 1"
-#: builtin.c:3003
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: el primer argumento recibido no es númerico"
-#: builtin.c:3005
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: el segundo argumento recibido no es númerico"
-#: builtin.c:3011
+#: builtin.c:3038
#, fuzzy, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr "lshift(%lf, %lf): los valores negativos darán resultados extraños"
-#: builtin.c:3013
+#: builtin.c:3040
#, fuzzy, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%lf, %lf): los valores fraccionarios se truncarán"
-#: builtin.c:3015
+#: builtin.c:3042
#, fuzzy, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr ""
"lshift(%lf, %lf): un valor de desplazamiento muy grande dará resultados "
"extraños"
-#: builtin.c:3040
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: el primer argumento recibido no es númerico"
-#: builtin.c:3042
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: el segundo argumento recibido no es númerico"
-#: builtin.c:3048
+#: builtin.c:3075
#, fuzzy, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr "rshift(%lf, %lf): los valores negativos darán resultados extraños"
-#: builtin.c:3050
+#: builtin.c:3077
#, fuzzy, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%lf, %lf): los valores fraccionarios serán truncados"
-#: builtin.c:3052
+#: builtin.c:3079
#, fuzzy, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr ""
"rshift(%lf, %lf): un valor de desplazamiento muy grande dará resultados "
"extraños"
-#: builtin.c:3077 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
#, fuzzy
msgid "and: called with less than two arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: builtin.c:3082
+#: builtin.c:3109
#, fuzzy, c-format
msgid "and: argument %d is non-numeric"
msgstr "exp: el argumento %g está fuera de rango"
-#: builtin.c:3086
+#: builtin.c:3113
#, fuzzy, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr "and(%lf, %lf): los valores negativos darán resultados extraños"
-#: builtin.c:3109 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
#, fuzzy
msgid "or: called with less than two arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: builtin.c:3114
+#: builtin.c:3141
#, fuzzy, c-format
msgid "or: argument %d is non-numeric"
msgstr "exp: el argumento %g está fuera de rango"
-#: builtin.c:3118
+#: builtin.c:3145
#, fuzzy, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr "compl(%lf): el valor negativo dará resultados extraños"
-#: builtin.c:3140 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
#, fuzzy
msgid "xor: called with less than two arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: builtin.c:3146
+#: builtin.c:3173
#, fuzzy, c-format
msgid "xor: argument %d is non-numeric"
msgstr "exp: el argumento %g está fuera de rango"
-#: builtin.c:3150
+#: builtin.c:3177
#, fuzzy, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor(%lf, %lf): los valores negativos darán resultados extraños"
-#: builtin.c:3175 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: se recibió un argumento que no es númerico"
-#: builtin.c:3181
+#: builtin.c:3208
#, fuzzy, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%lf): el valor negativo dará resultados extraños"
-#: builtin.c:3183
+#: builtin.c:3210
#, fuzzy, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%lf): el valor fraccionario se truncará"
-#: builtin.c:3352
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: `%s' no es una categoría local válida"
@@ -1077,8 +1087,8 @@ msgstr ""
#: command.y:823
msgid ""
-"commands [num] - starts a list of commands to be executed at a breakpoint"
-"(watchpoint) hit."
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
msgstr ""
#: command.y:825
@@ -1235,7 +1245,7 @@ msgstr ""
msgid "watch var - set a watchpoint for a variable."
msgstr ""
-#: command.y:1011 debug.c:395 msg.c:128
+#: command.y:1011 debug.c:401 msg.c:135
#, c-format
msgid "error: "
msgstr "error: "
@@ -1275,561 +1285,561 @@ msgstr "Caracter de ordenación inválido"
msgid "undefined command: %s\n"
msgstr ""
-#: debug.c:246
+#: debug.c:252
msgid "set or show the number of lines to keep in history file."
msgstr ""
-#: debug.c:248
+#: debug.c:254
msgid "set or show the list command window size."
msgstr ""
-#: debug.c:250
+#: debug.c:256
msgid "set or show gawk output file."
msgstr ""
-#: debug.c:252
+#: debug.c:258
msgid "set or show debugger prompt."
msgstr ""
-#: debug.c:254
+#: debug.c:260
msgid "(un)set or show saving of command history (value=on|off)."
msgstr ""
-#: debug.c:256
+#: debug.c:262
msgid "(un)set or show saving of options (value=on|off)."
msgstr ""
-#: debug.c:258
+#: debug.c:264
msgid "(un)set or show instruction tracing (value=on|off)."
msgstr ""
-#: debug.c:339
+#: debug.c:345
msgid "program not running."
msgstr ""
-#: debug.c:442 debug.c:597
+#: debug.c:448 debug.c:606
#, fuzzy, c-format
msgid "can't read source file `%s' (%s)"
msgstr "no se puede leer el fichero fuente `%s' (%s)"
-#: debug.c:447
+#: debug.c:453
#, fuzzy, c-format
msgid "source file `%s' is empty.\n"
msgstr "el fichero fuente `%s' está vacío"
-#: debug.c:474
+#: debug.c:480
msgid "no current source file."
msgstr ""
-#: debug.c:499
+#: debug.c:505
#, fuzzy, c-format
msgid "cannot find source file named `%s' (%s)"
msgstr "no se puede leer el fichero fuente `%s' (%s)"
-#: debug.c:523
+#: debug.c:529
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
msgstr ""
-#: debug.c:542
+#: debug.c:551
#, c-format
msgid "line number %d out of range; `%s' has %d lines"
msgstr ""
-#: debug.c:602
+#: debug.c:611
#, fuzzy, c-format
msgid "unexpected eof while reading file `%s', line %d"
msgstr "error interno: fichero `%s', línea %d\n"
-#: debug.c:611
+#: debug.c:620
#, c-format
msgid "source file `%s' modified since start of program execution"
msgstr ""
-#: debug.c:723
+#: debug.c:732
#, fuzzy, c-format
msgid "Current source file: %s\n"
msgstr "ya se incluyó el fichero fuente `%s'"
-#: debug.c:724
+#: debug.c:733
#, c-format
msgid "Number of lines: %d\n"
msgstr ""
-#: debug.c:731
+#: debug.c:740
#, c-format
msgid "Source file (lines): %s (%d)\n"
msgstr ""
-#: debug.c:745
+#: debug.c:754
msgid ""
"Number Disp Enabled Location\n"
"\n"
msgstr ""
-#: debug.c:756
+#: debug.c:765
#, c-format
msgid "\tno of hits = %ld\n"
msgstr ""
-#: debug.c:758
+#: debug.c:767
#, c-format
msgid "\tignore next %ld hit(s)\n"
msgstr ""
-#: debug.c:760 debug.c:900
+#: debug.c:769 debug.c:909
#, c-format
msgid "\tstop condition: %s\n"
msgstr ""
-#: debug.c:762 debug.c:902
+#: debug.c:771 debug.c:911
msgid "\tcommands:\n"
msgstr ""
-#: debug.c:784
+#: debug.c:793
#, c-format
msgid "Current frame: "
msgstr ""
-#: debug.c:787
+#: debug.c:796
#, c-format
msgid "Called by frame: "
msgstr ""
-#: debug.c:791
+#: debug.c:800
#, c-format
msgid "Caller of frame: "
msgstr ""
-#: debug.c:809
+#: debug.c:818
#, c-format
msgid "None in main().\n"
msgstr ""
-#: debug.c:839
+#: debug.c:848
#, fuzzy
msgid "No arguments.\n"
msgstr "printf: sin argumentos"
-#: debug.c:840
+#: debug.c:849
msgid "No locals.\n"
msgstr ""
-#: debug.c:848
+#: debug.c:857
msgid ""
"All defined variables:\n"
"\n"
msgstr ""
-#: debug.c:858
+#: debug.c:867
msgid ""
"All defined functions:\n"
"\n"
msgstr ""
-#: debug.c:877
+#: debug.c:886
msgid ""
"Auto-display variables:\n"
"\n"
msgstr ""
-#: debug.c:880
+#: debug.c:889
msgid ""
"Watch variables:\n"
"\n"
msgstr ""
-#: debug.c:1020
+#: debug.c:1029
#, fuzzy, c-format
msgid "no symbol `%s' in current context\n"
msgstr "`exit' no se puede llamar en el contexto actual"
-#: debug.c:1032 debug.c:1418
+#: debug.c:1041 debug.c:1427
#, fuzzy, c-format
msgid "`%s' is not an array\n"
msgstr "`%s' no es un nombre de variable legal"
-#: debug.c:1046
+#: debug.c:1055
#, fuzzy, c-format
msgid "$%ld = uninitialized field\n"
msgstr "referencia al campo sin inicializar `$%d'"
-#: debug.c:1067
+#: debug.c:1076
#, fuzzy, c-format
msgid "array `%s' is empty\n"
msgstr "el fichero de datos `%s' está vacío"
-#: debug.c:1110 debug.c:1162
+#: debug.c:1119 debug.c:1171
#, fuzzy, c-format
msgid "[\"%s\"] not in array `%s'\n"
msgstr "delete: el índice `%s' no está en la matriz `%s'"
-#: debug.c:1166
+#: debug.c:1175
#, c-format
msgid "`%s[\"%s\"]' is not an array\n"
msgstr ""
-#: debug.c:1227 debug.c:4949
+#: debug.c:1236 debug.c:4964
#, fuzzy, c-format
msgid "`%s' is not a scalar variable"
msgstr "`%s' no es un nombre de variable legal"
-#: debug.c:1249 debug.c:4979
+#: debug.c:1258 debug.c:4994
#, fuzzy, c-format
msgid "attempt to use array `%s[\"%s\"]' in a scalar context"
msgstr "se intentó usar la matriz `%s[\"%.*s\"]' en un contexto escalar"
-#: debug.c:1271 debug.c:4990
+#: debug.c:1280 debug.c:5005
#, fuzzy, c-format
msgid "attempt to use scalar `%s[\"%s\"]' as array"
msgstr "se intentó usar el dato escalar `%s[\"%.*s\"]' como una matriz"
-#: debug.c:1414
+#: debug.c:1423
#, fuzzy, c-format
msgid "`%s' is a function"
msgstr "`%s' es inválido como un nombre de función"
-#: debug.c:1456
+#: debug.c:1465
#, c-format
msgid "watchpoint %d is unconditional\n"
msgstr ""
-#: debug.c:1490
+#: debug.c:1499
#, c-format
msgid "No display item numbered %ld"
msgstr ""
-#: debug.c:1493
+#: debug.c:1502
#, c-format
msgid "No watch item numbered %ld"
msgstr ""
-#: debug.c:1519
+#: debug.c:1528
#, fuzzy, c-format
msgid "%d: [\"%s\"] not in array `%s'\n"
msgstr "delete: el índice `%s' no está en la matriz `%s'"
-#: debug.c:1758
+#: debug.c:1767
#, fuzzy
msgid "attempt to use scalar value as array"
msgstr "se intentó usar un valor escalar como una matriz"
-#: debug.c:1847
+#: debug.c:1856
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1858
+#: debug.c:1867
#, c-format
msgid "Display %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1891
+#: debug.c:1900
#, fuzzy, c-format
msgid " in file `%s', line %d\n"
msgstr "error interno: fichero `%s', línea %d\n"
-#: debug.c:1912
+#: debug.c:1921
#, c-format
msgid " at `%s':%d"
msgstr ""
-#: debug.c:1928 debug.c:1991
+#: debug.c:1937 debug.c:2000
#, c-format
msgid "#%ld\tin "
msgstr ""
-#: debug.c:1965
+#: debug.c:1974
#, c-format
msgid "More stack frames follow ...\n"
msgstr ""
-#: debug.c:2008
+#: debug.c:2017
#, fuzzy
msgid "invalid frame number"
msgstr "Final de rango inválido"
-#: debug.c:2180
+#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2187
+#: debug.c:2207
#, c-format
msgid "Note: breakpoint %d (enabled), also set at %s:%d"
msgstr ""
-#: debug.c:2194
+#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2201
+#: debug.c:2221
#, c-format
msgid "Note: breakpoint %d (disabled), also set at %s:%d"
msgstr ""
-#: debug.c:2218
+#: debug.c:2238
#, fuzzy, c-format
msgid "Breakpoint %d set at file `%s', line %d\n"
msgstr "error interno: fichero `%s', línea %d\n"
-#: debug.c:2320
+#: debug.c:2340
#, c-format
msgid "Can't set breakpoint in file `%s'\n"
msgstr ""
-#: debug.c:2349 debug.c:2472 debug.c:3330
+#: debug.c:2369 debug.c:2492 debug.c:3350
#, fuzzy, c-format
msgid "line number %d in file `%s' out of range"
msgstr "exp: el argumento %g está fuera de rango"
-#: debug.c:2353
+#: debug.c:2373
#, c-format
msgid "Can't find rule!!!\n"
msgstr ""
-#: debug.c:2355
+#: debug.c:2375
#, c-format
msgid "Can't set breakpoint at `%s':%d\n"
msgstr ""
-#: debug.c:2367
+#: debug.c:2387
#, c-format
msgid "Can't set breakpoint in function `%s'\n"
msgstr ""
-#: debug.c:2383
+#: debug.c:2403
#, c-format
msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
msgstr ""
-#: debug.c:2488 debug.c:2510
+#: debug.c:2508 debug.c:2530
#, c-format
msgid "Deleted breakpoint %d"
msgstr ""
-#: debug.c:2494
+#: debug.c:2514
#, c-format
msgid "No breakpoint(s) at entry to function `%s'\n"
msgstr ""
-#: debug.c:2521
+#: debug.c:2541
#, fuzzy, c-format
msgid "No breakpoint at file `%s', line #%d\n"
msgstr "error interno: fichero `%s', línea %d\n"
-#: debug.c:2576 debug.c:2617 debug.c:2637 debug.c:2680
+#: debug.c:2596 debug.c:2637 debug.c:2657 debug.c:2700
msgid "invalid breakpoint number"
msgstr ""
-#: debug.c:2592
+#: debug.c:2612
msgid "Delete all breakpoints? (y or n) "
msgstr ""
-#: debug.c:2593 debug.c:2903 debug.c:2956
+#: debug.c:2613 debug.c:2923 debug.c:2976
msgid "y"
msgstr ""
-#: debug.c:2642
+#: debug.c:2662
#, c-format
msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n"
msgstr ""
-#: debug.c:2646
+#: debug.c:2666
#, c-format
msgid "Will stop next time breakpoint %d is reached.\n"
msgstr ""
-#: debug.c:2763
+#: debug.c:2783
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
msgstr ""
-#: debug.c:2888
+#: debug.c:2908
#, c-format
msgid "Failed to restart debugger"
msgstr ""
-#: debug.c:2902
+#: debug.c:2922
msgid "Program already running. Restart from beginning (y/n)? "
msgstr ""
-#: debug.c:2906
+#: debug.c:2926
#, c-format
msgid "Program not restarted\n"
msgstr ""
-#: debug.c:2916
+#: debug.c:2936
#, c-format
msgid "error: cannot restart, operation not allowed\n"
msgstr ""
-#: debug.c:2922
+#: debug.c:2942
#, c-format
msgid "error (%s): cannot restart, ignoring rest of the commands\n"
msgstr ""
-#: debug.c:2930
+#: debug.c:2950
#, c-format
msgid "Starting program: \n"
msgstr ""
-#: debug.c:2939
+#: debug.c:2959
#, c-format
msgid "Program exited %s with exit value: %d\n"
msgstr ""
-#: debug.c:2955
+#: debug.c:2975
msgid "The program is running. Exit anyway (y/n)? "
msgstr ""
-#: debug.c:2990
+#: debug.c:3010
#, c-format
msgid "Not stopped at any breakpoint; argument ignored.\n"
msgstr ""
-#: debug.c:2995
+#: debug.c:3015
#, c-format
msgid "invalid breakpoint number %d."
msgstr ""
-#: debug.c:3000
+#: debug.c:3020
#, c-format
msgid "Will ignore next %ld crossings of breakpoint %d.\n"
msgstr ""
-#: debug.c:3187
+#: debug.c:3207
#, c-format
msgid "'finish' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3192
+#: debug.c:3212
#, c-format
msgid "Run till return from "
msgstr ""
-#: debug.c:3235
+#: debug.c:3255
#, c-format
msgid "'return' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3349
+#: debug.c:3369
#, c-format
msgid "Can't find specified location in function `%s'\n"
msgstr ""
-#: debug.c:3357
+#: debug.c:3377
#, fuzzy, c-format
msgid "invalid source line %d in file `%s'"
msgstr "ya se incluyó el fichero fuente `%s'"
-#: debug.c:3372
+#: debug.c:3392
#, c-format
msgid "Can't find specified location %d in file `%s'\n"
msgstr ""
-#: debug.c:3404
+#: debug.c:3424
#, fuzzy, c-format
msgid "element not in array\n"
msgstr "delete: el índice `%s' no está en la matriz `%s'"
-#: debug.c:3404
+#: debug.c:3424
#, c-format
msgid "untyped variable\n"
msgstr ""
-#: debug.c:3446
+#: debug.c:3466
#, c-format
msgid "Stopping in %s ...\n"
msgstr ""
-#: debug.c:3523
+#: debug.c:3543
#, c-format
msgid "'finish' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:3530
+#: debug.c:3550
#, c-format
msgid "'until' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:4165
+#: debug.c:4185
msgid "\t------[Enter] to continue or q [Enter] to quit------"
msgstr ""
-#: debug.c:4166
+#: debug.c:4186
msgid "q"
msgstr ""
-#: debug.c:4986
+#: debug.c:5001
#, fuzzy, c-format
msgid "[\"%s\"] not in array `%s'"
msgstr "delete: el índice `%s' no está en la matriz `%s'"
-#: debug.c:5192
+#: debug.c:5207
#, c-format
msgid "sending output to stdout\n"
msgstr ""
-#: debug.c:5232
+#: debug.c:5247
msgid "invalid number"
msgstr ""
-#: debug.c:5366
+#: debug.c:5381
#, fuzzy, c-format
msgid "`%s' not allowed in current context; statement ignored"
msgstr "`exit' no se puede llamar en el contexto actual"
-#: debug.c:5374
+#: debug.c:5389
#, fuzzy
msgid "`return' not allowed in current context; statement ignored"
msgstr "`exit' no se puede llamar en el contexto actual"
-#: debug.c:5575
+#: debug.c:5590
#, fuzzy, c-format
msgid "No symbol `%s' in current context"
msgstr "se intentó usar la matriz `%s' en un contexto escalar"
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1192
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
#, fuzzy
msgid "unbalanced ["
msgstr "[ desbalanceado"
-#: dfa.c:1052
+#: dfa.c:1174
#, fuzzy
msgid "invalid character class"
msgstr "Nombre de clase de caracter inválido"
-#: dfa.c:1229
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
-#: dfa.c:1281
+#: dfa.c:1366
#, fuzzy
msgid "unfinished \\ escape"
msgstr "Escape \\ sin terminar"
-#: dfa.c:1428 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Contenido inválido de \\{\\}"
-#: dfa.c:1431 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "La expresión regular es demasiado grande"
-#: dfa.c:1816
+#: dfa.c:1936
#, fuzzy
msgid "unbalanced ("
msgstr "( desbalanceado"
-#: dfa.c:1943
+#: dfa.c:2062
#, fuzzy
msgid "no syntax specified"
msgstr "No se especifican los bits de sintaxis de la expresión regular"
-#: dfa.c:1951
+#: dfa.c:2070
#, fuzzy
msgid "unbalanced )"
msgstr ") desbalanceado"
@@ -1849,11 +1859,11 @@ msgstr "código de operación %d desconocido"
msgid "opcode %s not an operator or keyword"
msgstr "el código de operación %s no es un operador o una palabra clave"
-#: eval.c:471
+#: eval.c:472
msgid "buffer overflow in genflags2str"
msgstr "desbordamiento de almacenamiento temporal en genflags2str"
-#: eval.c:674
+#: eval.c:675
#, c-format
msgid ""
"\n"
@@ -1864,71 +1874,71 @@ msgstr ""
"\t# Pila de Llamadas de Funciones:\n"
"\n"
-#: eval.c:703
+#: eval.c:704
msgid "`IGNORECASE' is a gawk extension"
msgstr "`IGNORECASE' es una extensión de gawk"
-#: eval.c:735
+#: eval.c:736
msgid "`BINMODE' is a gawk extension"
msgstr "`BINMODE' es una extensión de gawk"
-#: eval.c:793
+#: eval.c:794
#, c-format
msgid "BINMODE value `%s' is invalid, treated as 3"
msgstr "el valor BINMODE `%s' es inválido; se trata como 3"
-#: eval.c:884
+#: eval.c:885
#, c-format
msgid "bad `%sFMT' specification `%s'"
msgstr "especificación `%sFMT' `%s' errónea"
-#: eval.c:968
+#: eval.c:969
msgid "turning off `--lint' due to assignment to `LINT'"
msgstr "se desactiva `--lint' debido a una asignación a `LINT'"
-#: eval.c:1146
+#: eval.c:1147
#, c-format
msgid "reference to uninitialized argument `%s'"
msgstr "referencia al argumento sin inicializar `%s'"
-#: eval.c:1147
+#: eval.c:1148
#, c-format
msgid "reference to uninitialized variable `%s'"
msgstr "referencia a la variable sin inicializar `%s'"
-#: eval.c:1165
+#: eval.c:1166
msgid "attempt to field reference from non-numeric value"
msgstr "se intentó una referencia de campo desde un valor que no es númerico"
-#: eval.c:1167
+#: eval.c:1168
msgid "attempt to field reference from null string"
msgstr "se intentó una referencia de campo desde una cadena nula"
-#: eval.c:1175
+#: eval.c:1176
#, c-format
msgid "attempt to access field %ld"
msgstr "se intentó acceder al campo %ld"
-#: eval.c:1184
+#: eval.c:1185
#, c-format
msgid "reference to uninitialized field `$%ld'"
msgstr "referencia al campo sin inicializar `$%ld'"
-#: eval.c:1271
+#: eval.c:1272
#, 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:1466
+#: eval.c:1473
#, c-format
msgid "unwind_stack: unexpected type `%s'"
msgstr "unwind_stack: tipo `%s' inesperado"
-#: eval.c:1562
+#: eval.c:1569
msgid "division by zero attempted in `/='"
msgstr "se intentó una división por cero en `/='"
-#: eval.c:1569
+#: eval.c:1576
#, c-format
msgid "division by zero attempted in `%%='"
msgstr "se intentó una división por cero en `%%='"
@@ -1942,7 +1952,7 @@ msgstr "no se permiten las extensiones en modo sandbox"
msgid "-l / @load are gawk extensions"
msgstr "@include es una extensión de gawk"
-#: ext.c:95 ext.c:177
+#: ext.c:95
msgid "load_ext: received NULL lib_name"
msgstr ""
@@ -1975,6 +1985,10 @@ msgstr ""
msgid "`extension' is a gawk extension"
msgstr "`extension' es una extensión de gawk"
+#: ext.c:177
+msgid "extension: received NULL lib_name"
+msgstr ""
+
#: ext.c:180
#, fuzzy, c-format
msgid "extension: cannot open library `%s' (%s)"
@@ -2000,39 +2014,39 @@ msgstr ""
msgid "make_builtin: missing function name"
msgstr "extension: falta el nombre de la función"
-#: ext.c:238
+#: ext.c:236
#, fuzzy, c-format
msgid "make_builtin: can't redefine function `%s'"
msgstr "extension: no se puede redefinir la función `%s'"
-#: ext.c:242
+#: ext.c:240
#, fuzzy, c-format
msgid "make_builtin: function `%s' already defined"
msgstr "extension: la función `%s' ya está definida"
-#: ext.c:246
+#: ext.c:244
#, fuzzy, c-format
msgid "make_builtin: function name `%s' previously defined"
msgstr "extension: el nombre de función `%s' se definió previamente"
-#: ext.c:248
+#: ext.c:246
#, fuzzy, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
msgstr ""
"extension: no se puede utilizar la orden interna de gawk `%s' como nombre de "
"función"
-#: ext.c:251 ext.c:304
+#: ext.c:249 ext.c:304
#, c-format
msgid "make_builtin: negative argument count for function `%s'"
msgstr "make_builtin: cuenta de argumento negativa para la función `%s'"
-#: ext.c:278
+#: ext.c:276
#, fuzzy
msgid "extension: missing function name"
msgstr "extension: falta el nombre de la función"
-#: ext.c:283
+#: ext.c:279 ext.c:283
#, fuzzy, c-format
msgid "extension: illegal character `%c' in function name `%s'"
msgstr "extension: carácter ilegal `%c' en el nombre de la función `%s'"
@@ -2059,155 +2073,160 @@ msgstr ""
"extension: no se puede utilizar la orden interna de gawk `%s' como nombre de "
"función"
-#: ext.c:374
+#: ext.c:375
#, c-format
msgid "function `%s' defined to take no more than %d argument(s)"
msgstr "la función `%s' se definió para tomar no más de %d argumento(s)"
-#: ext.c:377
+#: ext.c:378
#, c-format
msgid "function `%s': missing argument #%d"
msgstr "función `%s': falta el argumento #%d"
-#: ext.c:394
+#: ext.c:395
#, c-format
msgid "function `%s': argument #%d: attempt to use scalar as an array"
msgstr ""
"función `%s': argumento #%d: se intentó usar un escalar como una matriz"
-#: ext.c:398
+#: ext.c:399
#, c-format
msgid "function `%s': argument #%d: attempt to use array as a scalar"
msgstr ""
"función `%s': argumento #%d: se intentó usar una matriz como un escalar"
-#: ext.c:412
+#: ext.c:413
msgid "dynamic loading of library not supported"
msgstr ""
-#: extension/filefuncs.c:97
+#: extension/filefuncs.c:159
#, fuzzy
msgid "chdir: called with incorrect number of arguments, expecting 1"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/filefuncs.c:343
+#: extension/filefuncs.c:439
#, c-format
msgid "stat: unable to read symbolic link `%s'"
msgstr ""
-#: extension/filefuncs.c:376
+#: extension/filefuncs.c:472
#, fuzzy
msgid "stat: called with wrong number of arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/filefuncs.c:383
+#: extension/filefuncs.c:479
#, fuzzy
msgid "stat: bad parameters"
msgstr "%s: es un parámetro\n"
-#: extension/filefuncs.c:437
+#: extension/filefuncs.c:533
#, fuzzy, c-format
msgid "fts init: could not create variable %s"
msgstr "index: el segundo argumento recibido no es una cadena"
-#: extension/filefuncs.c:460
+#: extension/filefuncs.c:554
+#, fuzzy
+msgid "fts is not supported on this system"
+msgstr "`%s' no se admite en el awk antiguo"
+
+#: extension/filefuncs.c:573
msgid "fill_stat_element: could not create array"
msgstr ""
-#: extension/filefuncs.c:469
+#: extension/filefuncs.c:582
msgid "fill_stat_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:484
+#: extension/filefuncs.c:597
#, fuzzy
msgid "fill_path_element: could not set element"
msgstr "index: el segundo argumento recibido no es una cadena"
-#: extension/filefuncs.c:500
+#: extension/filefuncs.c:613
msgid "fill_error_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:547 extension/filefuncs.c:594
+#: extension/filefuncs.c:660 extension/filefuncs.c:707
msgid "fts-process: could not create array"
msgstr ""
-#: extension/filefuncs.c:557 extension/filefuncs.c:604
-#: extension/filefuncs.c:622
+#: extension/filefuncs.c:670 extension/filefuncs.c:717
+#: extension/filefuncs.c:735
#, fuzzy
msgid "fts-process: could not set element"
msgstr "index: el segundo argumento recibido no es una cadena"
-#: extension/filefuncs.c:671
+#: extension/filefuncs.c:784
#, fuzzy
msgid "fts: called with incorrect number of arguments, expecting 3"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/filefuncs.c:674
+#: extension/filefuncs.c:787
#, fuzzy
msgid "fts: bad first parameter"
msgstr "%s: es un parámetro\n"
-#: extension/filefuncs.c:680
+#: extension/filefuncs.c:793
#, fuzzy
msgid "fts: bad second parameter"
msgstr "%s: es un parámetro\n"
-#: extension/filefuncs.c:686
+#: extension/filefuncs.c:799
#, fuzzy
msgid "fts: bad third parameter"
msgstr "%s: es un parámetro\n"
-#: extension/filefuncs.c:693
+#: extension/filefuncs.c:806
#, fuzzy
msgid "fts: could not flatten array\n"
msgstr "`%s' no es un nombre de variable legal"
-#: extension/filefuncs.c:711
+#: extension/filefuncs.c:824
msgid "fts: ignoring sneaky FTS_NOSTAT flag. nyah, nyah, nyah."
msgstr ""
-#: extension/filefuncs.c:728
+#: extension/filefuncs.c:841
msgid "fts: clear_array() failed\n"
msgstr ""
-#: extension/fnmatch.c:98
+#: extension/fnmatch.c:112
#, fuzzy
msgid "fnmatch: called with less than three arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/fnmatch.c:101
+#: extension/fnmatch.c:115
#, fuzzy
msgid "fnmatch: called with more than three arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/fnmatch.c:104
+#: extension/fnmatch.c:118
#, fuzzy
msgid "fnmatch: could not get first argument"
msgstr "strftime: el primer argumento recibido no es una cadena"
-#: extension/fnmatch.c:109
+#: extension/fnmatch.c:123
#, fuzzy
msgid "fnmatch: could not get second argument"
msgstr "index: el segundo argumento recibido no es una cadena"
-#: extension/fnmatch.c:114
+#: extension/fnmatch.c:128
msgid "fnmatch: could not get third argument"
msgstr ""
-#: extension/fnmatch.c:127
+#: extension/fnmatch.c:141
msgid "fnmatch is not implemented on this system\n"
msgstr ""
-#: extension/fnmatch.c:159
+#: extension/fnmatch.c:173
msgid "fnmatch init: could not add FNM_NOMATCH variable"
msgstr ""
-#: extension/fnmatch.c:169
+#: extension/fnmatch.c:183
#, c-format
msgid "fnmatch init: could not set array element %s"
msgstr ""
-#: extension/fnmatch.c:179
+#: extension/fnmatch.c:193
msgid "fnmatch init: could not install FNM array"
msgstr ""
@@ -2235,88 +2254,88 @@ msgstr "sqrt: se llamó con el argumento negativo %g"
msgid "wait: called with too many arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/inplace.c:110
+#: extension/inplace.c:130
msgid "inplace_begin: in-place editing already active"
msgstr ""
-#: extension/inplace.c:113 extension/inplace.c:187
+#: extension/inplace.c:133 extension/inplace.c:207
#, c-format
msgid "inplace_begin: expects 2 arguments but called with %d"
msgstr ""
-#: extension/inplace.c:116
+#: extension/inplace.c:136
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
msgstr ""
-#: extension/inplace.c:124
+#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
msgstr ""
-#: extension/inplace.c:131
+#: extension/inplace.c:151
#, fuzzy, c-format
msgid "inplace_begin: Cannot stat `%s' (%s)"
msgstr "fatal: extension: no se puede abrir `%s' (%s)\n"
-#: extension/inplace.c:138
+#: extension/inplace.c:158
#, fuzzy, c-format
msgid "inplace_begin: `%s' is not a regular file"
msgstr "`%s' no es un nombre de variable legal"
-#: extension/inplace.c:149
+#: extension/inplace.c:169
#, c-format
msgid "inplace_begin: mkstemp(`%s') failed (%s)"
msgstr ""
-#: extension/inplace.c:158
+#: extension/inplace.c:178
#, fuzzy, c-format
msgid "inplace_begin: chmod failed (%s)"
msgstr "%s: falló close (%s)"
-#: extension/inplace.c:165
+#: extension/inplace.c:185
#, c-format
msgid "inplace_begin: dup(stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:168
+#: extension/inplace.c:188
#, c-format
msgid "inplace_begin: dup2(%d, stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:171
+#: extension/inplace.c:191
#, fuzzy, c-format
msgid "inplace_begin: close(%d) failed (%s)"
msgstr "%s: falló close (%s)"
-#: extension/inplace.c:190
+#: extension/inplace.c:210
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
msgstr ""
-#: extension/inplace.c:197
+#: extension/inplace.c:217
msgid "inplace_end: in-place editing not active"
msgstr ""
-#: extension/inplace.c:203
+#: extension/inplace.c:223
#, c-format
msgid "inplace_end: dup2(%d, stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:206
+#: extension/inplace.c:226
#, fuzzy, c-format
msgid "inplace_end: close(%d) failed (%s)"
msgstr "%s: falló close (%s)"
-#: extension/inplace.c:210
+#: extension/inplace.c:230
#, c-format
msgid "inplace_end: fsetpos(stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:223
+#: extension/inplace.c:243
#, fuzzy, c-format
msgid "inplace_end: link(`%s', `%s') failed (%s)"
msgstr "falló la limpieza de la tubería de `%s' (%s)."
-#: extension/inplace.c:229
+#: extension/inplace.c:253
#, fuzzy, c-format
msgid "inplace_end: rename(`%s', `%s') failed (%s)"
msgstr "falló al cerrar el df %d (`%s') (%s)"
@@ -2351,185 +2370,185 @@ msgstr "sqrt: se llamó con el argumento negativo %g"
msgid "chr: called with inappropriate argument(s)"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/readdir.c:203
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr ""
-#: extension/readfile.c:84
+#: extension/readfile.c:113
#, fuzzy
msgid "readfile: called with too many arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
#, fuzzy
msgid "readfile: called with no arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/rwarray.c:120
+#: extension/rwarray.c:124
#, fuzzy
msgid "writea: called with too many arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/rwarray.c:127
+#: extension/rwarray.c:131
#, fuzzy, c-format
msgid "do_writea: argument 0 is not a string\n"
msgstr "exp: el argumento %g está fuera de rango"
-#: extension/rwarray.c:133
+#: extension/rwarray.c:137
#, fuzzy, c-format
msgid "do_writea: argument 1 is not an array\n"
msgstr "split: el cuarto argumento no es una matriz"
-#: extension/rwarray.c:180
+#: extension/rwarray.c:184
#, c-format
msgid "write_array: could not flatten array\n"
msgstr ""
-#: extension/rwarray.c:194
+#: extension/rwarray.c:198
#, c-format
msgid "write_array: could not release flattened array\n"
msgstr ""
-#: extension/rwarray.c:276
+#: extension/rwarray.c:280
#, fuzzy
msgid "reada: called with too many arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/rwarray.c:283
+#: extension/rwarray.c:287
#, fuzzy, c-format
msgid "do_reada: argument 0 is not a string\n"
msgstr "exp: el argumento %g está fuera de rango"
-#: extension/rwarray.c:289
+#: extension/rwarray.c:293
#, fuzzy, c-format
msgid "do_reada: argument 1 is not an array\n"
msgstr "match: el tercer argumento no es una matriz"
-#: extension/rwarray.c:333
+#: extension/rwarray.c:337
#, c-format
msgid "do_reada: clear_array failed\n"
msgstr ""
-#: extension/rwarray.c:370
+#: extension/rwarray.c:374
#, c-format
msgid "read_array: set_array_element failed\n"
msgstr ""
-#: extension/time.c:81
+#: extension/time.c:113
#, fuzzy
msgid "gettimeofday: ignoring arguments"
msgstr "mktime: se recibió un argumento que no es una cadena"
-#: extension/time.c:112
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr ""
-#: extension/time.c:133
+#: extension/time.c:165
#, fuzzy
msgid "sleep: called with too many arguments"
msgstr "sqrt: se llamó con el argumento negativo %g"
-#: extension/time.c:136
+#: extension/time.c:168
#, fuzzy
msgid "sleep: missing required numeric argument"
msgstr "exp: se recibió un argumento que no es númerico"
-#: extension/time.c:142
+#: extension/time.c:174
#, fuzzy
msgid "sleep: argument is negative"
msgstr "exp: el argumento %g está fuera de rango"
-#: extension/time.c:176
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr ""
-#: field.c:339
+#: field.c:345
msgid "NF set to negative value"
msgstr "se definió NF con un valor negativo"
-#: field.c:964 field.c:971 field.c:975
+#: field.c:971 field.c:978 field.c:982
msgid "split: fourth argument is a gawk extension"
msgstr "split: el cuarto argumento es una extensión de gawk"
-#: field.c:968
+#: field.c:975
msgid "split: fourth argument is not an array"
msgstr "split: el cuarto argumento no es una matriz"
-#: field.c:982
+#: field.c:989
msgid "split: second argument is not an array"
msgstr "split: el segundo argumento no es una matriz"
-#: field.c:986
+#: field.c:993
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:991
+#: field.c:998
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:994
+#: field.c:1001
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:1023
+#: field.c:1032
msgid "split: null string for third arg is a gawk extension"
msgstr ""
"split: la cadena nula para el tercer argumento es una extensión de gawk"
-#: field.c:1063
+#: field.c:1072
msgid "patsplit: fourth argument is not an array"
msgstr "patsplit: el cuarto argumento no es una matriz"
-#: field.c:1068
+#: field.c:1077
msgid "patsplit: second argument is not an array"
msgstr "patsplit: el segundo argumento no es una matriz"
-#: field.c:1074
+#: field.c:1083
msgid "patsplit: third argument must be non-null"
msgstr "patsplit: el tercer argumento no debe ser nulo"
-#: field.c:1078
+#: field.c:1087
msgid "patsplit: cannot use the same array for second and fourth args"
msgstr ""
"patsplit: no se puede usar la misma matriz para el segundo y cuarto "
"argumentos"
-#: field.c:1083
+#: field.c:1092
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:1086
+#: field.c:1095
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:1124
+#: field.c:1133
msgid "`FIELDWIDTHS' is a gawk extension"
msgstr "`FIELDWIDTHS' es una extensión gawk"
-#: field.c:1188
+#: field.c:1197
#, c-format
msgid "invalid FIELDWIDTHS value, near `%s'"
msgstr "valor de FIELDWIDTHS inválido, cerca de `%s'"
-#: field.c:1261
+#: field.c:1270
msgid "null string for `FS' is a gawk extension"
msgstr "la cadena nula para `FS' es una extensión de gawk"
-#: field.c:1265
+#: field.c:1274
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:1384
+#: field.c:1393
msgid "`FPAT' is a gawk extension"
msgstr "`FPAT' es una extensión de gawk"
@@ -2545,602 +2564,602 @@ msgstr ""
msgid "node_to_awk_value: received null val"
msgstr ""
-#: gawkapi.c:808
+#: gawkapi.c:807
#, fuzzy
msgid "remove_element: received null array"
msgstr "length: se recibió un argumento de matriz"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr ""
-#: gawkapi.c:943
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr ""
-#: gawkapi.c:948
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr ""
-#: getopt.c:603 getopt.c:632
+#: getopt.c:604 getopt.c:633
#, fuzzy, c-format
msgid "%s: option '%s' is ambiguous; possibilities:"
msgstr "%s: la opción '%s' es ambigua\n"
-#: getopt.c:678 getopt.c:682
+#: getopt.c:679 getopt.c:683
#, c-format
msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: la opción '--%s' no admite ningún argumento\n"
-#: getopt.c:691 getopt.c:696
+#: getopt.c:692 getopt.c:697
#, c-format
msgid "%s: option '%c%s' doesn't allow an argument\n"
msgstr "%s: la opción '%c%s' no admite ningún argumento\n"
-#: getopt.c:739 getopt.c:758
+#: getopt.c:740 getopt.c:759
#, c-format
msgid "%s: option '--%s' requires an argument\n"
msgstr "%s: la opción '--%s' requiere un argumento\n"
-#: getopt.c:796 getopt.c:799
+#: getopt.c:797 getopt.c:800
#, c-format
msgid "%s: unrecognized option '--%s'\n"
msgstr "%s: no se reconoce la opción '--%s'\n"
-#: getopt.c:807 getopt.c:810
+#: getopt.c:808 getopt.c:811
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
msgstr "%s: no se reconoce la opción '%c%s'\n"
-#: getopt.c:859 getopt.c:862
+#: getopt.c:860 getopt.c:863
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: opción inválida -- '%c'\n"
-#: getopt.c:915 getopt.c:932 getopt.c:1142 getopt.c:1160
+#: getopt.c:916 getopt.c:933 getopt.c:1143 getopt.c:1161
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: la opción requiere un argumento -- '%c'\n"
-#: getopt.c:988 getopt.c:1004
+#: getopt.c:989 getopt.c:1005
#, c-format
msgid "%s: option '-W %s' is ambiguous\n"
msgstr "%s: la opción '-W %s' es ambigua\n"
-#: getopt.c:1028 getopt.c:1046
+#: getopt.c:1029 getopt.c:1047
#, c-format
msgid "%s: option '-W %s' doesn't allow an argument\n"
msgstr "%s: la opción '-W %s' no admite ningún argumento\n"
-#: getopt.c:1067 getopt.c:1085
+#: getopt.c:1068 getopt.c:1086
#, c-format
msgid "%s: option '-W %s' requires an argument\n"
msgstr "%s: la opción '-W %s' requiere un argumento\n"
-#: io.c:347
+#: io.c:392
#, c-format
msgid "command line argument `%s' is a directory: skipped"
msgstr "el argumento de la línea de órdenes `%s' es un directorio: se salta"
-#: io.c:350 io.c:463
+#: io.c:395 io.c:513
#, c-format
msgid "cannot open file `%s' for reading (%s)"
msgstr "no se puede abrir el fichero `%s' para lectura (%s)"
-#: io.c:590
+#: io.c:640
#, c-format
msgid "close of fd %d (`%s') failed (%s)"
msgstr "falló al cerrar el df %d (`%s') (%s)"
-#: io.c:666
+#: io.c:716
msgid "redirection not allowed in sandbox mode"
msgstr "no se permite la redirección en modo sandbox"
-#: io.c:700
+#: io.c:750
#, c-format
msgid "expression in `%s' redirection only has numeric value"
msgstr "la expresión en la redirección `%s' sólo tiene valor numérico"
-#: io.c:706
+#: io.c:756
#, c-format
msgid "expression for `%s' redirection has null string value"
msgstr "la expresión para la redirección `%s' tiene un valor de cadena nula"
-#: io.c:711
+#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
msgstr ""
"el fichero `%s' para la redirección `%s' puede ser resultado de una "
"expresión lógica"
-#: io.c:754
+#: io.c:809
#, c-format
msgid "unnecessary mixing of `>' and `>>' for file `%.*s'"
msgstr "mezcla innecesaria de `>' y `>>' para el fichero `%.*s'"
-#: io.c:808
+#: io.c:863
#, c-format
msgid "can't open pipe `%s' for output (%s)"
msgstr "no se puede abrir la tubería `%s' para la salida (%s)"
-#: io.c:818
+#: io.c:873
#, c-format
msgid "can't open pipe `%s' for input (%s)"
msgstr "no se puede abrir la tubería `%s' para la entrada (%s)"
-#: io.c:849
+#: io.c:904
#, c-format
msgid "can't open two way pipe `%s' for input/output (%s)"
msgstr "no se puede abrir la tubería de dos vías `%s' para entrada/salida (%s)"
-#: io.c:928
+#: io.c:986
#, c-format
msgid "can't redirect from `%s' (%s)"
msgstr "no se puede redirigir desde `%s' (%s)"
-#: io.c:931
+#: io.c:989
#, c-format
msgid "can't redirect to `%s' (%s)"
msgstr "no se puede redirigir a `%s' (%s)"
-#: io.c:982
+#: io.c:1040
msgid ""
"reached system limit for open files: starting to multiplex file descriptors"
msgstr ""
"se alcanzó el límite del sistema para ficheros abiertos: comenzando a "
"multiplexar los descriptores de fichero"
-#: io.c:998
+#: io.c:1056
#, c-format
msgid "close of `%s' failed (%s)."
msgstr "falló al cerrar `%s' (%s)."
-#: io.c:1006
+#: io.c:1064
msgid "too many pipes or input files open"
msgstr "demasiadas tuberías o ficheros de entrada abiertos"
-#: io.c:1028
+#: io.c:1086
msgid "close: second argument must be `to' or `from'"
msgstr "close: el segundo argumento debe ser `to' o `from'"
-#: io.c:1045
+#: io.c:1103
#, c-format
msgid "close: `%.*s' is not an open file, pipe or co-process"
msgstr "close: `%.*s' no es un fichero abierto, tubería o co-proceso"
-#: io.c:1050
+#: io.c:1108
msgid "close of redirection that was never opened"
msgstr "se cerró una redirección que nunca se abrió"
-#: io.c:1147
+#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
msgstr ""
"close: la redirección `%s' no se abrió con `|&', se descarta el segundo "
"argumento"
-#: io.c:1164
+#: io.c:1222
#, c-format
msgid "failure status (%d) on pipe close of `%s' (%s)"
msgstr "estado de fallo (%d) al cerrar la tubería de `%s' (%s)"
-#: io.c:1167
+#: io.c:1225
#, c-format
msgid "failure status (%d) on file close of `%s' (%s)"
msgstr "estado de fallo (%d) al cerrar el fichero de `%s' (%s)"
-#: io.c:1187
+#: io.c:1245
#, c-format
msgid "no explicit close of socket `%s' provided"
msgstr "no se provee el cerrado explícito del `socket' `%s'"
-#: io.c:1190
+#: io.c:1248
#, c-format
msgid "no explicit close of co-process `%s' provided"
msgstr "no se provee el cerrado explícito del co-proceso `%s'"
-#: io.c:1193
+#: io.c:1251
#, c-format
msgid "no explicit close of pipe `%s' provided"
msgstr "no se provee el cerrado explícito del la tubería `%s'"
-#: io.c:1196
+#: io.c:1254
#, c-format
msgid "no explicit close of file `%s' provided"
msgstr "no se provee el cerrado explícito del fichero `%s'"
-#: io.c:1224 io.c:1279 main.c:842 main.c:879
+#: io.c:1284 io.c:1342 main.c:864 main.c:906
#, c-format
msgid "error writing standard output (%s)"
msgstr "error al escribir en la salida estándar (%s)"
-#: io.c:1228 io.c:1284
+#: io.c:1289 io.c:1348 main.c:866
#, c-format
msgid "error writing standard error (%s)"
msgstr "error al escribir en la salida estándar de error (%s)"
-#: io.c:1236
+#: io.c:1297
#, c-format
msgid "pipe flush of `%s' failed (%s)."
msgstr "falló la limpieza de la tubería de `%s' (%s)."
-#: io.c:1239
+#: io.c:1300
#, c-format
msgid "co-process flush of pipe to `%s' failed (%s)."
msgstr "falló la limpieza del co-proceso de la tubería a `%s' (%s)."
-#: io.c:1242
+#: io.c:1303
#, c-format
msgid "file flush of `%s' failed (%s)."
msgstr "falló la limpieza del fichero de `%s' (%s)."
-#: io.c:1356
+#: io.c:1420
#, c-format
msgid "local port %s invalid in `/inet'"
msgstr "puerto local %s inválido en `/inet'"
-#: io.c:1374
+#: io.c:1438
#, c-format
msgid "remote host and port information (%s, %s) invalid"
msgstr "anfitrión remoto e información de puerto (%s, %s) inválidos"
-#: io.c:1526
+#: io.c:1590
#, c-format
msgid "no (known) protocol supplied in special filename `%s'"
msgstr ""
"no se proporciona algún protocolo (conocido) en el nombre de fichero "
"especial `%s'"
-#: io.c:1540
+#: io.c:1604
#, c-format
msgid "special file name `%s' is incomplete"
msgstr "el nombre de fichero especial `%s' está incompleto"
-#: io.c:1557
+#: io.c:1621
msgid "must supply a remote hostname to `/inet'"
msgstr "se debe proporcionar a `/inet' un nombre de anfitrión remoto"
-#: io.c:1575
+#: io.c:1639
msgid "must supply a remote port to `/inet'"
msgstr "se debe proporcionar a `/inet' un puerto remoto"
-#: io.c:1621
+#: io.c:1685
msgid "TCP/IP communications are not supported"
msgstr "no se admiten las comunicaciones TCP/IP"
-#: io.c:1796
+#: io.c:1867
#, c-format
msgid "could not open `%s', mode `%s'"
msgstr "no se puede abrir `%s', modo `%s'"
-#: io.c:1846
+#: io.c:1917
#, c-format
msgid "close of master pty failed (%s)"
msgstr "falló al cerrar el pty maestro (%s)"
-#: io.c:1848 io.c:2024 io.c:2194
+#: io.c:1919 io.c:2105 io.c:2305
#, c-format
msgid "close of stdout in child failed (%s)"
msgstr "falló al cerrar la salida estándar en el hijo (%s)"
-#: io.c:1851
+#: io.c:1922
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
msgstr ""
"falló el movimiento del pty esclavo a la salida estándar en el hijo (dup: %s)"
-#: io.c:1853 io.c:2029
+#: io.c:1924 io.c:2110
#, c-format
msgid "close of stdin in child failed (%s)"
msgstr "falló al cerrar la entrada estándar en el hijo (%s)"
-#: io.c:1856
+#: io.c:1927
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
msgstr ""
"falló el movimiento del pty esclavo a la entrada estándar en el hijo (dup: "
"%s)"
-#: io.c:1858 io.c:1879
+#: io.c:1929 io.c:1951
#, c-format
msgid "close of slave pty failed (%s)"
msgstr "falló al cerrar el pty esclavo (%s)"
-#: io.c:1965 io.c:2027 io.c:2171 io.c:2197
+#: io.c:2040 io.c:2108 io.c:2276 io.c:2308
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
msgstr "falló el movimiento a la salida estándar en el hijo (dup: %s)"
-#: io.c:1972 io.c:2032
+#: io.c:2047 io.c:2113
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
msgstr ""
"falló el movimiento de la tubería a la entrada estándar en el hijo (dup: %s)"
-#: io.c:1992 io.c:2187
+#: io.c:2073 io.c:2298
msgid "restoring stdout in parent process failed\n"
msgstr "falló la restauración de la salida estándar en el proceso padre\n"
-#: io.c:2000
+#: io.c:2081
msgid "restoring stdin in parent process failed\n"
msgstr "falló la restauración de la entrada estándar en el proceso padre\n"
-#: io.c:2035 io.c:2199 io.c:2213
+#: io.c:2116 io.c:2310 io.c:2324
#, c-format
msgid "close of pipe failed (%s)"
msgstr "falló al cerrar la tubería (%s)"
-#: io.c:2089
+#: io.c:2174
msgid "`|&' not supported"
msgstr "no se admite `|&'"
-#: io.c:2156
+#: io.c:2261
#, c-format
msgid "cannot open pipe `%s' (%s)"
msgstr "no se puede abrir la tubería `%s' (%s)"
-#: io.c:2207
+#: io.c:2318
#, c-format
msgid "cannot create child process for `%s' (fork: %s)"
msgstr "no se puede crear el proceso hijo para `%s' (fork: %s)"
-#: io.c:2667
+#: io.c:2790
msgid "register_input_parser: received NULL pointer"
msgstr ""
-#: io.c:2695
+#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
msgstr ""
-#: io.c:2702
+#: io.c:2825
#, c-format
msgid "input parser `%s' failed to open `%s'"
msgstr ""
-#: io.c:2722
+#: io.c:2845
msgid "register_output_wrapper: received NULL pointer"
msgstr ""
-#: io.c:2750
+#: io.c:2873
#, c-format
msgid ""
"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
msgstr ""
-#: io.c:2757
+#: io.c:2880
#, c-format
msgid "output wrapper `%s' failed to open `%s'"
msgstr ""
-#: io.c:2778
+#: io.c:2901
msgid "register_output_processor: received NULL pointer"
msgstr ""
-#: io.c:2807
+#: io.c:2930
#, c-format
msgid ""
"two-way processor `%s' conflicts with previously installed two-way processor "
"`%s'"
msgstr ""
-#: io.c:2816
+#: io.c:2939
#, c-format
msgid "two way processor `%s' failed to open `%s'"
msgstr ""
-#: io.c:2923
+#: io.c:3064
#, c-format
msgid "data file `%s' is empty"
msgstr "el fichero de datos `%s' está vacío"
-#: io.c:2965 io.c:2973
+#: io.c:3106 io.c:3114
msgid "could not allocate more input memory"
msgstr "no se puede reservar más memoria de entrada"
-#: io.c:3539
+#: io.c:3682
msgid "multicharacter value of `RS' is a gawk extension"
msgstr "el valor multicaracter de `RS' es una extensión de gawk"
-#: io.c:3628
+#: io.c:3771
msgid "IPv6 communication is not supported"
msgstr "no se admite la comunicación IPv6"
-#: main.c:388
+#: main.c:405
msgid "empty argument to `-e/--source' ignored"
msgstr "se descarta el argumento vacío para `-e/--source'"
-#: main.c:478
+#: main.c:495
#, 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:524
+#: main.c:541
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: la opción requiere un argumento -- %c\n"
-#: main.c:545
+#: main.c:562
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
msgstr ""
"la variable de ambiente `POSIXLY_CORRECT' está definida: se activa `--posix'"
-#: main.c:551
+#: main.c:568
msgid "`--posix' overrides `--traditional'"
msgstr "`--posix' se impone a `--traditional'"
-#: main.c:562
+#: main.c:579
msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
msgstr "`--posix'/`--traditional' se imponen a `--non-decimal-data'"
-#: main.c:566
+#: main.c:583
#, c-format
msgid "running %s setuid root may be a security problem"
msgstr "ejecutar %s como setuid root puede ser un problema de seguridad"
-#: main.c:571
+#: main.c:588
#, fuzzy
msgid "`--posix' overrides `--characters-as-bytes'"
msgstr "`--posix' se impone a `--binary'"
-#: main.c:630
+#: main.c:647
#, c-format
msgid "can't set binary mode on stdin (%s)"
msgstr "no se puede establecer el modo binario en la entrada estándar (%s)"
-#: main.c:633
+#: main.c:650
#, c-format
msgid "can't set binary mode on stdout (%s)"
msgstr "no se puede establecer el modo binario en la salida estándar (%s)"
-#: main.c:635
+#: main.c:652
#, c-format
msgid "can't set binary mode on stderr (%s)"
msgstr ""
"no se puede establecer el modo binario en la salida estándar de error (%s)"
-#: main.c:693
+#: main.c:710
msgid "no program text at all!"
msgstr "¡No hay ningún programa de texto!"
-#: main.c:779
+#: main.c:799
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
msgstr ""
"Modo de empleo: %s [opciones estilo POSIX o GNU] -f fichprog [--] "
"fichero ...\n"
-#: main.c:781
+#: main.c:801
#, c-format
msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
msgstr ""
"Modo de empleo: %s [opciones estilo POSIX o GNU] [--] %cprograma%c "
"fichero ...\n"
-#: main.c:786
+#: main.c:806
msgid "POSIX options:\t\tGNU long options: (standard)\n"
msgstr "Opciones POSIX:\t\tOpciones largas GNU: (estándar)\n"
-#: main.c:787
+#: main.c:807
msgid "\t-f progfile\t\t--file=progfile\n"
msgstr "\t-f fichprog\t\t--file=fichprog\n"
-#: main.c:788
+#: main.c:808
msgid "\t-F fs\t\t\t--field-separator=fs\n"
msgstr "\t-F sc\t\t\t--field-separator=sc\n"
-#: main.c:789
+#: main.c:809
msgid "\t-v var=val\t\t--assign=var=val\n"
msgstr "\t-v var=valor\t\t--assign=var=valor\n"
-#: main.c:790
+#: main.c:810
msgid "Short options:\t\tGNU long options: (extensions)\n"
msgstr "Opciones cortas:\t\tOpciones largas GNU: (extensiones)\n"
-#: main.c:791
+#: main.c:811
msgid "\t-b\t\t\t--characters-as-bytes\n"
msgstr "\t-b\t\t\t--characters-as-bytes\n"
-#: main.c:792
+#: main.c:812
msgid "\t-c\t\t\t--traditional\n"
msgstr "\t-c\t\t\t--traditional\n"
-#: main.c:793
+#: main.c:813
msgid "\t-C\t\t\t--copyright\n"
msgstr "\t-C\t\t\t--copyright\n"
-#: main.c:794
+#: main.c:814
msgid "\t-d[file]\t\t--dump-variables[=file]\n"
msgstr "\t-d[fichero]\t\t--dump-variables[=fichero]\n"
-#: main.c:795
+#: main.c:815
#, fuzzy
msgid "\t-D[file]\t\t--debug[=file]\n"
msgstr "\t-p[fichero]\t\t--profile[=fichero]\n"
# Esta es la línea más larga de la lista de argumentos.
# Probar con gawk para revisar tabuladores. cfuga
-#: main.c:796
+#: main.c:816
msgid "\t-e 'program-text'\t--source='program-text'\n"
msgstr "\t-e 'texto-prog'\t--source='texto-prog'\n"
-#: main.c:797
+#: main.c:817
msgid "\t-E file\t\t\t--exec=file\n"
msgstr "\t-E fichero\t\t--exec=fichero\n"
-#: main.c:798
+#: main.c:818
msgid "\t-g\t\t\t--gen-pot\n"
msgstr "\t-g\t\t\t--gen-pot\n"
-#: main.c:799
+#: main.c:819
msgid "\t-h\t\t\t--help\n"
msgstr "\t-h\t\t\t--help\n"
-#: main.c:800
+#: main.c:820
msgid "\t-i includefile\t\t--include=includefile\n"
msgstr ""
-#: main.c:801
+#: main.c:821
msgid "\t-l library\t\t--load=library\n"
msgstr ""
-#: main.c:802
+#: main.c:822
msgid "\t-L [fatal]\t\t--lint[=fatal]\n"
msgstr "\t-L [fatal]\t\t--lint[=fatal]\n"
-#: main.c:803
+#: main.c:823
msgid "\t-n\t\t\t--non-decimal-data\n"
msgstr "\t-n\t\t\t--non-decimal-data\n"
-#: main.c:804
+#: main.c:824
#, fuzzy
msgid "\t-M\t\t\t--bignum\n"
msgstr "\t-g\t\t\t--gen-pot\n"
-#: main.c:805
+#: main.c:825
msgid "\t-N\t\t\t--use-lc-numeric\n"
msgstr "\t-N\t\t\t--use-lc-numeric\n"
-#: main.c:806
+#: main.c:826
#, fuzzy
msgid "\t-o[file]\t\t--pretty-print[=file]\n"
msgstr "\t-p[fichero]\t\t--profile[=fichero]\n"
-#: main.c:807
+#: main.c:827
msgid "\t-O\t\t\t--optimize\n"
msgstr "\t-O\t\t\t--optimize\n"
-#: main.c:808
+#: main.c:828
msgid "\t-p[file]\t\t--profile[=file]\n"
msgstr "\t-p[fichero]\t\t--profile[=fichero]\n"
-#: main.c:809
+#: main.c:829
msgid "\t-P\t\t\t--posix\n"
msgstr "\t-P\t\t\t--posix\n"
-#: main.c:810
+#: main.c:830
msgid "\t-r\t\t\t--re-interval\n"
msgstr "\t-r\t\t\t--re-interval\n"
-#: main.c:811
+#: main.c:831
msgid "\t-S\t\t\t--sandbox\n"
msgstr "\t-S\t\t\t--sandbox\n"
-#: main.c:812
+#: main.c:832
msgid "\t-t\t\t\t--lint-old\n"
msgstr "\t-t\t\t\t--lint-old\n"
-#: main.c:813
+#: main.c:833
msgid "\t-V\t\t\t--version\n"
msgstr "\t-V\t\t\t--version\n"
-#: main.c:815
+#: main.c:835
msgid "\t-W nostalgia\t\t--nostalgia\n"
msgstr "\t-W nostalgia\t\t--nostalgia\n"
-#: main.c:818
+#: main.c:838
msgid "\t-Y\t\t--parsedebug\n"
msgstr "\t-Y\t\t--parsedebug\n"
@@ -3149,7 +3168,7 @@ msgstr "\t-Y\t\t--parsedebug\n"
#. for this application. Please add _another line_ with the
#. address for translation bugs.
#. no-wrap
-#: main.c:827
+#: main.c:847
msgid ""
"\n"
"To report bugs, see node `Bugs' in `gawk.info', which is\n"
@@ -3163,7 +3182,7 @@ msgstr ""
"Reporte los errores de los mensajes en español a <es@li.org>.\n"
"\n"
-#: main.c:831
+#: main.c:851
msgid ""
"gawk is a pattern scanning and processing language.\n"
"By default it reads standard input and writes standard output.\n"
@@ -3173,7 +3192,7 @@ msgstr ""
"Por defecto lee la entrada estándar y escribe en la salida estándar.\n"
"\n"
-#: main.c:835
+#: main.c:855
msgid ""
"Examples:\n"
"\tgawk '{ sum += $1 }; END { print sum }' file\n"
@@ -3183,7 +3202,7 @@ msgstr ""
"\tgawk '{ sum += $1 }; END { print sum }' fichero\n"
"\tgawk -F: '{ print $1 }' /etc/passwd\n"
-#: main.c:855
+#: main.c:880
#, c-format
msgid ""
"Copyright (C) 1989, 1991-%d Free Software Foundation.\n"
@@ -3203,7 +3222,7 @@ msgstr ""
"(a su elección) cualquier versión posterior.\n"
"\n"
-#: main.c:863
+#: main.c:888
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"
@@ -3217,7 +3236,7 @@ msgstr ""
"Licencia Pública General de GNU para más detalles.\n"
"\n"
-#: main.c:869
+#: main.c:894
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"
@@ -3226,16 +3245,16 @@ msgstr ""
"junto con este programa. Si no es así, consulte\n"
"http://www.gnu.org/licenses/.\n"
-#: main.c:904
+#: main.c:931
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:1181
+#: main.c:1208
#, c-format
msgid "unknown value for field spec: %d\n"
msgstr "valor desconocido para la especificación de campo: %d\n"
-#: main.c:1279
+#: main.c:1306
#, c-format
msgid ""
"%s: `%s' argument to `-v' not in `var=value' form\n"
@@ -3244,49 +3263,49 @@ msgstr ""
"%s: el argumento `%s' para `-v' no es de la forma `var=valor'\n"
"\n"
-#: main.c:1305
+#: main.c:1332
#, c-format
msgid "`%s' is not a legal variable name"
msgstr "`%s' no es un nombre de variable legal"
-#: main.c:1308
+#: main.c:1335
#, 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:1312
+#: main.c:1339
#, 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:1317
+#: main.c:1344
#, 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:1370
+#: main.c:1397
msgid "floating point exception"
msgstr "excepción de coma flotante"
-#: main.c:1377
+#: main.c:1404
msgid "fatal error: internal error"
msgstr "error fatal: error interno"
-#: main.c:1392
+#: main.c:1419
msgid "fatal error: internal error: segfault"
msgstr "error fatal: error interno: falla de segmentación"
-#: main.c:1404
+#: main.c:1431
msgid "fatal error: internal error: stack overflow"
msgstr "error fatal: error interno: desbordamiento de pila"
-#: main.c:1463
+#: main.c:1490
#, c-format
msgid "no pre-opened fd %d"
msgstr "no existe el df %d abierto previamente"
-#: main.c:1470
+#: main.c:1497
#, c-format
msgid "could not pre-open /dev/null for fd %d"
msgstr "no se puede abrir previamente /dev/null para el df %d"
@@ -3345,7 +3364,7 @@ msgstr "or(%lf, %lf): los valores fraccionarios serán truncados"
msgid "%s: argument #%d negative value %Zd will give strange results"
msgstr "compl(%lf): el valor negativo dará resultados extraños"
-#: msg.c:61
+#: msg.c:68
#, c-format
msgid "cmd. line:"
msgstr "línea ord.:"
@@ -3400,16 +3419,16 @@ msgstr ""
msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
msgstr "%s %s `%s': no se puede establecer close-on-exec: (fcntl F_SETFD: %s)"
-#: profile.c:70
+#: profile.c:71
#, c-format
msgid "could not open `%s' for writing: %s"
msgstr "no se puede abrir `%s' para escritura: %s"
-#: profile.c:72
+#: profile.c:73
msgid "sending profile to standard error"
msgstr "se envía el perfil a la salida estándar de error"
-#: profile.c:188
+#: profile.c:193
#, c-format
msgid ""
"\t# %s block(s)\n"
@@ -3418,7 +3437,7 @@ msgstr ""
"\t# bloque(s) %s\n"
"\n"
-#: profile.c:193
+#: profile.c:198
#, c-format
msgid ""
"\t# Rule(s)\n"
@@ -3427,29 +3446,29 @@ msgstr ""
"\t# Regla(s)\n"
"\n"
-#: profile.c:267
+#: profile.c:272
#, c-format
msgid "internal error: %s with null vname"
msgstr "error interno: %s con vname nulo"
-#: profile.c:530
+#: profile.c:537
#, fuzzy
msgid "internal error: builtin with null fname"
msgstr "error interno: %s con vname nulo"
-#: profile.c:942
+#: profile.c:949
#, c-format
msgid ""
"\t# Loaded extensions (-l and/or @load)\n"
"\n"
msgstr ""
-#: profile.c:965
+#: profile.c:972
#, c-format
msgid "\t# gawk profile, created %s\n"
msgstr "\t# perfil de gawk, creado %s\n"
-#: profile.c:1351
+#: profile.c:1475
#, c-format
msgid ""
"\n"
@@ -3458,17 +3477,12 @@ msgstr ""
"\n"
"\t# Funciones, enumeradas alfabéticamente\n"
-#: profile.c:1389
+#: profile.c:1513
#, c-format
msgid "redir2str: unknown redirection type %d"
msgstr "redir2str: tipo de redirección %d desconocida"
-#: re.c:583
-#, c-format
-msgid "range of the form `[%c-%c]' is locale dependent"
-msgstr "el rango de la forma `[%c-%c]' depende del local"
-
-#: re.c:610
+#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
msgstr ""
@@ -3538,10 +3552,13 @@ msgstr ") o \\) desemparejados"
msgid "No previous regular expression"
msgstr "No hay una expresión regular previa"
-#: symbol.c:740
+#: symbol.c:741
msgid "can not pop main context"
msgstr ""
+#~ msgid "range of the form `[%c-%c]' is locale dependent"
+#~ msgstr "el rango de la forma `[%c-%c]' depende del local"
+
#, fuzzy
#~ msgid "[s]printf called with no arguments"
#~ msgstr "sqrt: se llamó con el argumento negativo %g"
diff --git a/po/fi.gmo b/po/fi.gmo
index 117053a5..478aa070 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 0f3ba5ac..49014233 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk 4.1.0b\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2014-01-14 22:23+0200\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2014-01-16 13:32+0200\n"
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -37,8 +37,8 @@ msgstr "yritettiin käyttää skalaariparametria ”%s” taulukkona"
msgid "attempt to use scalar `%s' as an array"
msgstr "yritettiin käyttää skalaaria ”%s” taulukkona"
-#: array.c:409 array.c:576 builtin.c:85 builtin.c:1599 builtin.c:1645
-#: builtin.c:1658 builtin.c:2086 builtin.c:2100 eval.c:1122 eval.c:1126
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
@@ -76,19 +76,27 @@ msgstr "asorti: ensimmäinen argumentti ei ole taulukko"
#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
-msgstr "asort: ensimmäisen argumentin alitaulukon käyttö toiselle argumentille epäonnistui"
+msgstr ""
+"asort: ensimmäisen argumentin alitaulukon käyttö toiselle argumentille "
+"epäonnistui"
#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
-msgstr "asorti: ensimmäisen argumentin alitaulukon käyttö toiselle argumentille epäonnistui"
+msgstr ""
+"asorti: ensimmäisen argumentin alitaulukon käyttö toiselle argumentille "
+"epäonnistui"
#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
-msgstr "asort: toisen argumentin alitaulukon käyttö ensimmäiselle argumentille epäonnistui"
+msgstr ""
+"asort: toisen argumentin alitaulukon käyttö ensimmäiselle argumentille "
+"epäonnistui"
#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
-msgstr "asorti: toisen argumentin alitaulukon käyttö ensimmäiselle argumentille epäonnistui"
+msgstr ""
+"asorti: toisen argumentin alitaulukon käyttö ensimmäiselle argumentille "
+"epäonnistui"
#: array.c:1314
#, c-format
@@ -120,12 +128,14 @@ msgstr "”%s” on sisäänrakennettu funktio. Sitä ei voi määritellä uudel
#: awkgram.y:419
msgid "regexp constant `//' looks like a C++ comment, but is not"
-msgstr "säännöllisen lausekkeen vakio ”//” näyttää C++-kommentilta, mutta ei ole"
+msgstr ""
+"säännöllisen lausekkeen vakio ”//” näyttää C++-kommentilta, mutta ei ole"
#: awkgram.y:423
#, c-format
msgid "regexp constant `/%s/' looks like a C comment, but is not"
-msgstr "säännöllisen lausekkeen vakio ”/%s/” näyttää C-kommentilta, mutta ei ole"
+msgstr ""
+"säännöllisen lausekkeen vakio ”/%s/” näyttää C-kommentilta, mutta ei ole"
#: awkgram.y:515
#, c-format
@@ -136,11 +146,11 @@ msgstr "kaksi samanlaista case-arvoa switch-rakenteen rungossa: %s"
msgid "duplicate `default' detected in switch body"
msgstr "kaksoiskappale ”default” havaittu switch-rungossa"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr "”break” ei ole sallittu silmukan tai switch-lauseen ulkopuolella"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "”continue” ei ole sallittu silmukan ulkopuolella"
@@ -160,7 +170,8 @@ msgstr "”return” käytetty funktiokontekstin ulkopuolella"
#: awkgram.y:922
msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr "pelkkä ”print” BEGIN- tai END-säännössä pitäisi luultavasti olla ”print \"\"”"
+msgstr ""
+"pelkkä ”print” BEGIN- tai END-säännössä pitäisi luultavasti olla ”print \"\"”"
#: awkgram.y:988 awkgram.y:1037
msgid "`delete' is not allowed with SYMTAB"
@@ -229,262 +240,266 @@ msgstr "erikoismuuttujan ”%s” käyttö epäsuoralle funktiokutsulle epäonni
msgid "invalid subscript expression"
msgstr "virheellinen indeksointilauseke"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:126
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "varoitus: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:158
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "tuhoisa: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "odottamaton rivinvaihto tai merkkijonon loppu"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:523 debug.c:539
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "lähdetiedoston ”%s” avaaminen lukemista varten (%s) epäonnistui"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "jaetun kirjaston ”%s” avaaminen lukemista varten (%s) epäonnistui"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:135 debug.c:5206
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "syy tuntematon"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr "kohteen ”%s” sisällyttäminen ja käyttö ohjelmatiedostona epäonnistui"
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "on jo sisällytetty lähdetiedostoon ”%s”"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, c-format
msgid "already loaded shared library `%s'"
msgstr "jaettu kirjasto ”%s” on jo ladattu"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "@include on gawk-laajennus"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "tyhjä tiedostonimi @include:n jälkeen"
-#: awkgram.y:2470
+#: awkgram.y:2494
msgid "@load is a gawk extension"
msgstr "@load on gawk-laajennus"
-#: awkgram.y:2476
+#: awkgram.y:2500
msgid "empty filename after @load"
msgstr "tyhjä tiedostonimi @load:n jälkeen"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "tyhjä ohjelmateksti komentorivillä"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "lähdetiedoston ”%s” (%s) lukeminen epäonnistui"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "lähdetiedosto ”%s” on tyhjä"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "lähdetiedoston lopussa ei ole rivinvaihtoa"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
-msgstr "päättämätön säännöllinen lauseke loppuu ”\\”-merkkeihin tiedoston lopussa"
+msgstr ""
+"päättämätön säännöllinen lauseke loppuu ”\\”-merkkeihin tiedoston lopussa"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "%s: %d: tawk:n regex-määre ”/.../%c” ei toimi gawk:ssa"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "tawkin regex-määre ”/.../%c” ei toimi gawkissa"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "päättämätön säännöllinen lauseke"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "päättämätön säännöllinen lauseke tiedoston lopussa"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr "”\\ #...”-rivijatkamisen käyttö ei ole siirrettävä"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "kenoviiva ei ole rivin viimeinen merkki"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX ei salli operaattoria ”**=”"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "vanha awk ei tue operaattoria ”**=”"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX ei salli operaattoria ”**”"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "vanha awk ei tue operaattoria ”**”"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "operaattoria ”^=” ei tueta vanhassa awk:ssa"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "operaattoria ”^” ei tueta vanhassa awk:ssa"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "päättämätön merkkijono"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "virheellinen merkki ’%c’ lausekkeessa"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "”%s” on gawk-laajennus"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX ei salli operaattoria ”%s”"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "”%s” ei ole tuettu vanhassa awk-ohjelmassa"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "”goto”-käskyä pidetään haitallisena!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d on virheellinen argumenttilukumäärä operaattorille %s"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
-msgstr "%s: merkkijonoliteraalilla ei ole vaikutusta korvauksen viimeisenä argumenttina"
+msgstr ""
+"%s: merkkijonoliteraalilla ei ole vaikutusta korvauksen viimeisenä "
+"argumenttina"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "%s kolmas parametri ei ole vaihdettava objekti"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: kolmas argumentti on gawk-laajennus"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: toinen argumentti on gawk-laajennus"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr "dcgettext(_\"...\")-käyttö on virheellinen: poista alaviiva alusta"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr "dcngettext(_\"...\")-käyttö on virheellinen: poista alaviiva alusta"
-#: awkgram.y:3992
+#: awkgram.y:4016
msgid "index: regexp constant as second argument is not allowed"
msgstr "index: regexp-vakio toisena argumenttina ei ole sallittu"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "funktio ”%s”: parametri ”%s” varjostaa yleismuuttujaa"
-#: awkgram.y:4102 debug.c:4041 debug.c:4084 debug.c:5204
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "tiedoston ”%s” avaaminen kirjoittamista varten (%s) epäonnistui"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "lähetetään muuttujaluettelo vakiovirheeseen"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: sulkeminen epäonnistui (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() kutsuttu kahdesti!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "siellä oli varjostettuja muuttujia."
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "funktionimi ”%s” on jo aikaisemmin määritelty"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr "funktio ”%s”: funktionimen käyttö parametrinimenä epäonnistui"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
-msgstr "funktio ”%s”: erikoismuuttujan ”%s” käyttö funktioparametrina epäonnistui"
+msgstr ""
+"funktio ”%s”: erikoismuuttujan ”%s” käyttö funktioparametrina epäonnistui"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "funktio ”%s”: parametri #%d, ”%s”, samanlainen parametri #%d"
-#: awkgram.y:4359 awkgram.y:4365
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "funktiota ”%s” kutsuttiin, mutta sitä ei ole koskaan määritelty"
-#: awkgram.y:4369
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "funktio ”%s” määriteltiin, mutta sitä ei ole koskaan kutsuttu suoraan"
-#: awkgram.y:4401
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr "säännöllisen lausekkeen vakio parametrille #%d antaa boolean-arvon"
-#: awkgram.y:4460
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -493,20 +508,21 @@ msgstr ""
"funktio ”%s” kutsuttu välilyönnillä nimen ja ”(”-merkin\n"
"välillä, tai käytetty muuttujana tai taulukkona"
-#: awkgram.y:4696
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "nollalla jakoa yritettiin"
-#: awkgram.y:4705
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "jakoa nollalla yritettiin operaattorissa ”%%”"
-#: awkgram.y:5025
-msgid "cannot assign a value to the result of a field post-increment expression"
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
msgstr "arvon liittäminen kenttäjälkiaskelkasvatuslausekkeeseen epäonnistui"
-#: awkgram.y:5028
+#: awkgram.y:5052
#, c-format
msgid "invalid target of assignment (opcode %s)"
msgstr "virheellinen liittämiskohde (käskykoodi %s)"
@@ -533,12 +549,16 @@ msgstr "exp: argumentti %g on lukualueen ulkopuolella"
#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
-msgstr "fflush: tyhjentäminen epäonnistui: putki ”%s” avattu lukemista varten, ei kirjoittamiseen"
+msgstr ""
+"fflush: tyhjentäminen epäonnistui: putki ”%s” avattu lukemista varten, ei "
+"kirjoittamiseen"
#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
-msgstr "fflush: tyhjentäminen epäonnistui: tiedosto ”%s” avattu lukemista varten, ei kirjoittamiseen"
+msgstr ""
+"fflush: tyhjentäminen epäonnistui: tiedosto ”%s” avattu lukemista varten, ei "
+"kirjoittamiseen"
#: builtin.c:244
#, c-format
@@ -608,7 +628,9 @@ msgstr "kohtalokas: argumenttilukumäärän argumentilla ”$” on oltava > 0"
#: builtin.c:919
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
-msgstr "kohtalokas: argumenttilukumäärä %ld on suurempi kuin toimitettujen argumenttien lukumäärä"
+msgstr ""
+"kohtalokas: argumenttilukumäärä %ld on suurempi kuin toimitettujen "
+"argumenttien lukumäärä"
#: builtin.c:923
msgid "fatal: `$' not permitted after period in format"
@@ -616,299 +638,309 @@ msgstr "kohtalokas: ”$”-argumentti ei ole sallittu pisteen jälkeen muodossa
#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
-msgstr "kohtalokas: ei ”$”-argumenttia tarjottu sijantikenttäleveydelle tai tarkkuudelle"
+msgstr ""
+"kohtalokas: ei ”$”-argumenttia tarjottu sijantikenttäleveydelle tai "
+"tarkkuudelle"
-#: builtin.c:1011
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "”l” on merkityksetön awk-muodoissa; ohitetaan"
-#: builtin.c:1015
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "kohtalokas: ”l” ei ole sallittu POSIX awk -muodoissa"
-#: builtin.c:1028
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "”L” on merkityksetön awk-muodoissa; ohitetaan"
-#: builtin.c:1032
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "kohtalokas: ”L” ei ole sallittu POSIX awk -muodoissa"
-#: builtin.c:1045
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "”h” on merkityksetön awk-muodoissa; ohitetaan"
-#: builtin.c:1049
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "kohtalokas: ”h” ei ole sallittu POSIX awk -muodoissa"
-#: builtin.c:1447
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf: arvo %g on lukualueen ulkopuolella ”%%%c”-muodolle"
-#: builtin.c:1545
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
-msgstr "ohitetaan tuntematon muotoargumenttimerkki ”%c”: ei muunnettu argumenttia"
+msgstr ""
+"ohitetaan tuntematon muotoargumenttimerkki ”%c”: ei muunnettu argumenttia"
-#: builtin.c:1550
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr "kohtalokas: ei kylliksi argumentteja muotomerkkijonon tyydyttämiseksi"
-#: builtin.c:1552
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "^ tällainen loppui kesken"
-#: builtin.c:1559
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: muotoargumentilla ei ole ohjauskirjainta"
-#: builtin.c:1562
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "muotomerkkijonoon toimitettu liian monta argumenttia"
-#: builtin.c:1618
+#: builtin.c:1634
msgid "sprintf: no arguments"
msgstr "sprintf: ei argumentteja"
-#: builtin.c:1641 builtin.c:1652
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: ei argumentteja"
-#: builtin.c:1695
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:1699
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
-#: builtin.c:1730
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: pituus %g ei ole >= 1"
-#: builtin.c:1732
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: pituus %g ei ole >= 0"
-#: builtin.c:1739
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: typistetään pituus %g, joka ei ole kokonaisluku"
-#: builtin.c:1744
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
-msgstr "substr: pituus %g liian suuri merkkijononindeksointiin, typistetään arvoon %g"
+msgstr ""
+"substr: pituus %g liian suuri merkkijononindeksointiin, typistetään arvoon %g"
-#: builtin.c:1756
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: aloitusindeksi %g on virheellinen, käytetään 1:tä"
-#: builtin.c:1761
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr "substr: typistetään aloitusindeksi %g, joka ei ole kokonaisluku"
-#: builtin.c:1786
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: lähdemerkkijono on nollapituinen"
-#: builtin.c:1802
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: aloitusindeksi %g on merkkijonon lopun jälkeen"
-#: builtin.c:1810
+#: builtin.c:1826
#, c-format
-msgid "substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr "substr: pituus %g alkuindeksissä %g ylittää ensimmäisen argumentin pituuden (%lu)"
+msgid ""
+"substr: length %g at start index %g exceeds length of first argument (%lu)"
+msgstr ""
+"substr: pituus %g alkuindeksissä %g ylittää ensimmäisen argumentin pituuden "
+"(%lu)"
-#: builtin.c:1884
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
-msgstr "strftime: muotoarvolla kohteessa PROCINFO[\"strftime\"] on numerotyyppi"
+msgstr ""
+"strftime: muotoarvolla kohteessa PROCINFO[\"strftime\"] on numerotyyppi"
-#: builtin.c:1907
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: toinen vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:1911
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
-msgstr "strftime: toinen argumentti on pienempi kuin 0 tai liian suuri time_t-rakenteeseen"
+msgstr ""
+"strftime: toinen argumentti on pienempi kuin 0 tai liian suuri time_t-"
+"rakenteeseen"
-#: builtin.c:1918
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: ensimmäinen vastaanotettu argumentti ei ole merkkijono"
-#: builtin.c:1925
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: vastaanotettu tyhjä muotomerkkijono"
-#: builtin.c:1991
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: vastaanotettu argumentti ei ole merkkijono"
-#: builtin.c:2008
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr "mktime: vähintään yksi arvoista on oletuslukualueen ulkopuolella"
-#: builtin.c:2043
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "’system’-funktio ei ole sallittu hiekkalaatikkotilassa"
-#: builtin.c:2048
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: vastaanotettu argumentti ei ole merkkijono"
-#: builtin.c:2168
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "viite alustamattomaan kenttään ”$%d”"
-#: builtin.c:2255
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: vastaanotettu argumentti ei ole merkkijono"
-#: builtin.c:2289
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: vastaanotettu argumentti ei ole merkkijono"
-#: builtin.c:2325 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:2327 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: toinen vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:2346
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:2362
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:2415 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:2446
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: kolmas argumentti ei ole taulukko"
-#: builtin.c:2718
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: 0-arvoinen kolmas argumentti käsitellään kuin 1"
-#: builtin.c:3014
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:3016
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: toinen vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:3022
+#: builtin.c:3038
#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr "lshift(%f, %f): negatiiviset arvot antavat outoja tuloksia"
-#: builtin.c:3024
+#: builtin.c:3040
#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%f, %f): jaosarvot typistetään"
-#: builtin.c:3026
+#: builtin.c:3042
#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr "lshift(%f, %f): liian suuri siirrosarvo antaa outoja tuloksia"
-#: builtin.c:3051
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:3053
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: toinen vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:3059
+#: builtin.c:3075
#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr "rshift(%f, %f): negatiiviset arvot antavat outoja tuloksia"
-#: builtin.c:3061
+#: builtin.c:3077
#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%f, %f): jaosarvot typistetään"
-#: builtin.c:3063
+#: builtin.c:3079
#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr "rshift(%f, %f): liian suuri siirrosarvo antaa outoja tuloksia"
-#: builtin.c:3088 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
msgid "and: called with less than two arguments"
msgstr "and: kutsuttu vähemmällä kuin kahdella argumentilla"
-#: builtin.c:3093
+#: builtin.c:3109
#, c-format
msgid "and: argument %d is non-numeric"
msgstr "and: argumentti %d ei ole numeeraaliargumentti"
-#: builtin.c:3097
+#: builtin.c:3113
#, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr "and: argumentin %d negatiivinen arvo %g antaa outoja tuloksia"
-#: builtin.c:3120 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
msgid "or: called with less than two arguments"
msgstr "or: kutsuttu vähemmällä kuin kahdella argumentilla"
-#: builtin.c:3125
+#: builtin.c:3141
#, c-format
msgid "or: argument %d is non-numeric"
msgstr "or: argumentti %d ei ole numeraaliargumentti"
-#: builtin.c:3129
+#: builtin.c:3145
#, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr "or: argumentin %d negatiivinen arvo %g antaa outoja tuloksia"
-#: builtin.c:3151 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
msgid "xor: called with less than two arguments"
msgstr "xor: kutsuttu vähemmällä kuin kahdella argumentilla"
-#: builtin.c:3157
+#: builtin.c:3173
#, c-format
msgid "xor: argument %d is non-numeric"
msgstr "xor: argumentti %d ei ole numeraaliargumentti"
-#: builtin.c:3161
+#: builtin.c:3177
#, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor: argumentin %d negatiivinen arvo %g antaa outoja tuloksia"
-#: builtin.c:3186 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: vastaanotettu argumentti ei ole numeerinen"
-#: builtin.c:3192
+#: builtin.c:3208
#, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%f): negatiivinen arvo antaa outoja tuloksia"
-#: builtin.c:3194
+#: builtin.c:3210
#, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%f): jaosarvo typistetään"
-#: builtin.c:3363
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: ”%s” ei ole kelvollinen paikallinen kategoria"
@@ -940,7 +972,8 @@ msgstr "save ”%s”: komento ei ole sallittu."
#: command.y:339
msgid "Can't use command `commands' for breakpoint/watchpoint commands"
-msgstr "Komennon ”commands” käyttö breakpoint/watchpoint-komentoja varten epäonnistui"
+msgstr ""
+"Komennon ”commands” käyttö breakpoint/watchpoint-komentoja varten epäonnistui"
#: command.y:341
msgid "no breakpoint/watchpoint has been set yet"
@@ -1014,24 +1047,36 @@ msgid "non-zero integer value"
msgstr "nollasta poikkeava kokonaislukuarvo"
#: command.y:817
-msgid "backtrace [N] - print trace of all or N innermost (outermost if N < 0) frames."
-msgstr "backtrace [N] - tulosta kaikkien tai N:n sisimmäisen (ulommaisin, jos N < 0) kehyksen jäljet."
+msgid ""
+"backtrace [N] - print trace of all or N innermost (outermost if N < 0) "
+"frames."
+msgstr ""
+"backtrace [N] - tulosta kaikkien tai N:n sisimmäisen (ulommaisin, jos N < 0) "
+"kehyksen jäljet."
#: command.y:819
-msgid "break [[filename:]N|function] - set breakpoint at the specified location."
-msgstr "break [[filename:]N|function] - aseta breakpoint määriteltyyn sijaintiin."
+msgid ""
+"break [[filename:]N|function] - set breakpoint at the specified location."
+msgstr ""
+"break [[filename:]N|function] - aseta breakpoint määriteltyyn sijaintiin."
#: command.y:821
msgid "clear [[filename:]N|function] - delete breakpoints previously set."
-msgstr "clear [[filename:]N|function] - poista aiemmin asetetut breakpoint-kohdat."
+msgstr ""
+"clear [[filename:]N|function] - poista aiemmin asetetut breakpoint-kohdat."
#: command.y:823
-msgid "commands [num] - starts a list of commands to be executed at a breakpoint(watchpoint) hit."
-msgstr "commands [num] - aloittaa komentojen luettelon, joka suoritetaan keskeytyskohta(watchpoint)osumassa."
+msgid ""
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
+msgstr ""
+"commands [num] - aloittaa komentojen luettelon, joka suoritetaan "
+"keskeytyskohta(watchpoint)osumassa."
#: command.y:825
msgid "condition num [expr] - set or clear breakpoint or watchpoint condition."
-msgstr "condition num [expr] - aseta tai nollaa keskeytyskohta- tai vahtikohtaehdot."
+msgstr ""
+"condition num [expr] - aseta tai nollaa keskeytyskohta- tai vahtikohtaehdot."
#: command.y:827
msgid "continue [COUNT] - continue program being debugged."
@@ -1039,15 +1084,19 @@ msgstr "continue [COUNT] - continue program being debugged."
#: command.y:829
msgid "delete [breakpoints] [range] - delete specified breakpoints."
-msgstr "delete [keskeytyskohdat] [lukualue] - poista määritellyt keskeytyskohdat."
+msgstr ""
+"delete [keskeytyskohdat] [lukualue] - poista määritellyt keskeytyskohdat."
#: command.y:831
msgid "disable [breakpoints] [range] - disable specified breakpoints."
-msgstr "disable [keskeytyskohdat] [lukualue] - ota pois käytöstä määritellyt keskeytyskohdat."
+msgstr ""
+"disable [keskeytyskohdat] [lukualue] - ota pois käytöstä määritellyt "
+"keskeytyskohdat."
#: command.y:833
msgid "display [var] - print value of variable each time the program stops."
-msgstr "display [muuttuja] - tulosta muuttujan arvo joka kerta kun ohjelma pysähtyy."
+msgstr ""
+"display [muuttuja] - tulosta muuttujan arvo joka kerta kun ohjelma pysähtyy."
#: command.y:835
msgid "down [N] - move N frames down the stack."
@@ -1059,7 +1108,9 @@ msgstr "dump [tiedostonimi] - vedosta käskyt tiedostoon tai vakiotulosteeseen."
#: command.y:839
msgid "enable [once|del] [breakpoints] [range] - enable specified breakpoints."
-msgstr "enable [once|del] [keskeytyskohdat] [lukualue] - ota käyttöön määritellyt keskeytyskohdat."
+msgstr ""
+"enable [once|del] [keskeytyskohdat] [lukualue] - ota käyttöön määritellyt "
+"keskeytyskohdat."
#: command.y:841
msgid "end - end a list of commands or awk statements."
@@ -1083,23 +1134,32 @@ msgstr "help [komento] - tulosta komentoluettelo tai komennon selitys."
#: command.y:851
msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT."
-msgstr "ignore N COUNT - aseta keskeytyskohdan ignore-count numero N arvoon COUNT."
+msgstr ""
+"ignore N COUNT - aseta keskeytyskohdan ignore-count numero N arvoon COUNT."
#: command.y:853
-msgid "info topic - source|sources|variables|functions|break|frame|args|locals|display|watch."
-msgstr "info aihe - source|sources|variables|functions|break|frame|args|locals|display|watch."
+msgid ""
+"info topic - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch."
+msgstr ""
+"info aihe - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch."
#: command.y:855
msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)."
-msgstr "list [-|+|[tiedostonimi:]rivinumero|funktio|lukualue] - luettele määritellyt rivit."
+msgstr ""
+"list [-|+|[tiedostonimi:]rivinumero|funktio|lukualue] - luettele määritellyt "
+"rivit."
#: command.y:857
msgid "next [COUNT] - step program, proceeding through subroutine calls."
msgstr "next [COUNT] - askella ohjelmaa, etene alirutiinikutsujen kautta."
#: command.y:859
-msgid "nexti [COUNT] - step one instruction, but proceed through subroutine calls."
-msgstr "nexti [COUNT] - askella yksi käsky, mutta etene alirutiinikutsujen kautta."
+msgid ""
+"nexti [COUNT] - step one instruction, but proceed through subroutine calls."
+msgstr ""
+"nexti [COUNT] - askella yksi käsky, mutta etene alirutiinikutsujen kautta."
#: command.y:861
msgid "option [name[=value]] - set or display debugger option(s)."
@@ -1134,8 +1194,11 @@ msgid "set var = value - assign value to a scalar variable."
msgstr "set var = arvo - liitä arvo skalaarimuuttujaan."
#: command.y:879
-msgid "silent - suspends usual message when stopped at a breakpoint/watchpoint."
-msgstr "silent - pysäyttää tavallisen viestin kun pysähdytään katkaisukohdassa/vahtipisteessä."
+msgid ""
+"silent - suspends usual message when stopped at a breakpoint/watchpoint."
+msgstr ""
+"silent - pysäyttää tavallisen viestin kun pysähdytään katkaisukohdassa/"
+"vahtipisteessä."
#: command.y:881
msgid "source file - execute commands from file."
@@ -1143,7 +1206,8 @@ msgstr "source file - suorita komennot tiedostosta."
#: command.y:883
msgid "step [COUNT] - step program until it reaches a different source line."
-msgstr "step [COUNT] - askella ohjelmaa, kunnes se saavuttaa eri lähdekoodirivin."
+msgstr ""
+"step [COUNT] - askella ohjelmaa, kunnes se saavuttaa eri lähdekoodirivin."
#: command.y:885
msgid "stepi [COUNT] - step one instruction exactly."
@@ -1162,8 +1226,12 @@ msgid "undisplay [N] - remove variable(s) from automatic display list."
msgstr "undisplay [N] - poista muuttuja(t) automaattisesta näyttöluettelosta."
#: command.y:893
-msgid "until [[filename:]N|function] - execute until program reaches a different line or line N within current frame."
-msgstr "until [[tiedostonimi:]N|funktio] - suorita kunnes ohjelma tavoittaa eri rivin tai rivin N nykyisen kehyksen sisällä."
+msgid ""
+"until [[filename:]N|function] - execute until program reaches a different "
+"line or line N within current frame."
+msgstr ""
+"until [[tiedostonimi:]N|funktio] - suorita kunnes ohjelma tavoittaa eri "
+"rivin tai rivin N nykyisen kehyksen sisällä."
#: command.y:895
msgid "unwatch [N] - remove variable(s) from watch list."
@@ -1233,7 +1301,8 @@ msgstr "aseta tai näytä vianjäljittäjäkehote."
#: debug.c:260
msgid "(un)set or show saving of command history (value=on|off)."
-msgstr "aseta, poista asetus tai näytä komentohistoriatallennus (value=on|off)."
+msgstr ""
+"aseta, poista asetus tai näytä komentohistoriatallennus (value=on|off)."
#: debug.c:262
msgid "(un)set or show saving of options (value=on|off)."
@@ -1269,7 +1338,9 @@ msgstr "lähdetiedostoa nimeltä ”%s” (%s) ei kyetä lukemaan"
#: debug.c:529
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
-msgstr "VAROITUS: lähdekooditiedostoa ”%s” on muokattu ohjelman kääntämisen jälkeen.\n"
+msgstr ""
+"VAROITUS: lähdekooditiedostoa ”%s” on muokattu ohjelman kääntämisen "
+"jälkeen.\n"
#: debug.c:551
#, c-format
@@ -1279,12 +1350,14 @@ msgstr "rivinumero %d lukualueen ulkopuolella; kohteessa ”%s” on %d riviä"
#: debug.c:611
#, c-format
msgid "unexpected eof while reading file `%s', line %d"
-msgstr "odottamaton eof-tiedostonloppumerkki luettaessa tiedostoa ”%s”, rivi %d"
+msgstr ""
+"odottamaton eof-tiedostonloppumerkki luettaessa tiedostoa ”%s”, rivi %d"
#: debug.c:620
#, c-format
msgid "source file `%s' modified since start of program execution"
-msgstr "lähdekooditiedostoa ”%s” on muokattu ohjelman suorituksen aloituksen jälkeen"
+msgstr ""
+"lähdekooditiedostoa ”%s” on muokattu ohjelman suorituksen aloituksen jälkeen"
#: debug.c:732
#, c-format
@@ -1465,7 +1538,8 @@ msgstr "yritettiin käyttää skalaariarvoa taulukkona"
#: debug.c:1856
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
-msgstr "Watchpoint %d poistettiin, koska parametri on lukualueen ulkopuolella.\n"
+msgstr ""
+"Watchpoint %d poistettiin, koska parametri on lukualueen ulkopuolella.\n"
#: debug.c:1867
#, c-format
@@ -1499,22 +1573,29 @@ msgstr "virheellinen kehysnumero"
#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Huomaa: keskeytyskohta %d (otettu käyttöön, ohita seuraavat %ld osumaa), asetettu myös osoitteessa %s:%d"
+msgstr ""
+"Huomaa: keskeytyskohta %d (otettu käyttöön, ohita seuraavat %ld osumaa), "
+"asetettu myös osoitteessa %s:%d"
#: debug.c:2207
#, c-format
msgid "Note: breakpoint %d (enabled), also set at %s:%d"
-msgstr "Huomaa: keskeytyskohta %d (otettu käyttöön), asetettu myös kohdassa %s:%d"
+msgstr ""
+"Huomaa: keskeytyskohta %d (otettu käyttöön), asetettu myös kohdassa %s:%d"
#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Huomaa: keskeytyskohta %d (otettu pois käytöstä, ohita seuraavat %ld osumaa), asetettu myös kohdassa %s:%d"
+msgstr ""
+"Huomaa: keskeytyskohta %d (otettu pois käytöstä, ohita seuraavat %ld "
+"osumaa), asetettu myös kohdassa %s:%d"
#: debug.c:2221
#, c-format
msgid "Note: breakpoint %d (disabled), also set at %s:%d"
-msgstr "Huomaa: keskeytyskohta %d (otettu pois käytöstä), asetettu myös kohdassa %s:%d"
+msgstr ""
+"Huomaa: keskeytyskohta %d (otettu pois käytöstä), asetettu myös kohdassa %s:"
+"%d"
#: debug.c:2238
#, c-format
@@ -1591,7 +1672,8 @@ msgstr "Pysähtyy seuraavalla kerralla kun keskeytyskohta %d saavutetaan.\n"
#: debug.c:2783
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
-msgstr "Vain ohjelmia, jotka tarjoavat valitsimen ”-f”, voidaan vikajäljittää.\n"
+msgstr ""
+"Vain ohjelmia, jotka tarjoavat valitsimen ”-f”, voidaan vikajäljittää.\n"
#: debug.c:2908
#, c-format
@@ -1615,7 +1697,8 @@ msgstr "virhe: uudelleenkäynnistys epäonnistui, toiminto ei ole sallittu\n"
#: debug.c:2942
#, c-format
msgid "error (%s): cannot restart, ignoring rest of the commands\n"
-msgstr "virhe (%s): uudelleenkäynnistys epäonnistui, loput komennot ohitetaan\n"
+msgstr ""
+"virhe (%s): uudelleenkäynnistys epäonnistui, loput komennot ohitetaan\n"
#: debug.c:2950
#, c-format
@@ -1649,7 +1732,8 @@ msgstr "Ohittaa seuraavat %ld keskeytyskohdan %d ylitystä.\n"
#: debug.c:3207
#, c-format
msgid "'finish' not meaningful in the outermost frame main()\n"
-msgstr "’finish’ ei ole merkityksellinen ulommaisen kehyksen main()-funktiossa\n"
+msgstr ""
+"’finish’ ei ole merkityksellinen ulommaisen kehyksen main()-funktiossa\n"
#: debug.c:3212
#, c-format
@@ -1659,7 +1743,8 @@ msgstr "Suorita kunnes paluu kohteesta "
#: debug.c:3255
#, c-format
msgid "'return' not meaningful in the outermost frame main()\n"
-msgstr "’return’ ei ole merkityksellinen ulommaisen kehyksen main()-funktiossa\n"
+msgstr ""
+"’return’ ei ole merkityksellinen ulommaisen kehyksen main()-funktiossa\n"
#: debug.c:3369
#, c-format
@@ -1737,40 +1822,40 @@ msgstr "”return” ei ole sallittu nykyisessä asiayhteydessä; lause ohitetaa
msgid "No symbol `%s' in current context"
msgstr "Symbolia ”%s” ei ole nykyisesssä asiayhteydessä"
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1191
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr "pariton ["
-#: dfa.c:1052
+#: dfa.c:1174
msgid "invalid character class"
msgstr "virheellinen merkkiluokka"
-#: dfa.c:1228
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "merkkiluokkasyntaksi on [[:space:]], ei [:space:]"
-#: dfa.c:1280
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr "päättymätön \\-koodinvaihtomerkki"
-#: dfa.c:1427 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Virheellinen \\{\\}-sisältö"
-#: dfa.c:1430 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "Säännöllinen lauseke on liian iso"
-#: dfa.c:1847
+#: dfa.c:1936
msgid "unbalanced ("
msgstr "pariton ("
-#: dfa.c:1973
+#: dfa.c:2062
msgid "no syntax specified"
msgstr "syntaksi ei ole määritelty"
-#: dfa.c:1981
+#: dfa.c:2070
msgid "unbalanced )"
msgstr "pariton )"
@@ -1892,8 +1977,10 @@ msgstr "load_ext: kirjaston ”%s” (%s) avaus epäonnistui\n"
#: ext.c:104
#, c-format
-msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
-msgstr "load_ext: kirjasto ”%s”: ei määrittele ”plugin_is_GPL_compatible” (%s)\n"
+msgid ""
+"load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
+msgstr ""
+"load_ext: kirjasto ”%s”: ei määrittele ”plugin_is_GPL_compatible” (%s)\n"
#: ext.c:110
#, c-format
@@ -1920,8 +2007,10 @@ msgstr "extension: kirjaston ”%s” (%s) avaus epäonnistui"
#: ext.c:186
#, c-format
-msgid "extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-msgstr "extension: kirjasto ”%s”: ei määrittele ”plugin_is_GPL_compatible” (%s)"
+msgid ""
+"extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
+msgstr ""
+"extension: kirjasto ”%s”: ei määrittele ”plugin_is_GPL_compatible” (%s)"
#: ext.c:190
#, c-format
@@ -1950,7 +2039,9 @@ msgstr "make_builtin: funktionimi ”%s” on määritelty jo aiemmin"
#: ext.c:246
#, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
-msgstr "make_builtin: gawk-ohjelman sisäisen muuttujanimen ”%s” käyttö funktionimenä epäonnistui"
+msgstr ""
+"make_builtin: gawk-ohjelman sisäisen muuttujanimen ”%s” käyttö funktionimenä "
+"epäonnistui"
#: ext.c:249 ext.c:304
#, c-format
@@ -1984,7 +2075,9 @@ msgstr "extension: funktionimi ”%s” on määritelty jo aiemmin"
#: ext.c:301
#, c-format
msgid "extension: can't use gawk built-in `%s' as function name"
-msgstr "extension: gawk-ohjelman sisäisen muuttujanimen käyttö ”%s” funktionimenä epäonnistui"
+msgstr ""
+"extension: gawk-ohjelman sisäisen muuttujanimen käyttö ”%s” funktionimenä "
+"epäonnistui"
#: ext.c:375
#, c-format
@@ -2153,16 +2246,21 @@ msgstr "inplace_begin: kohdallaanmuokkaus on jo aktivoitu"
#: extension/inplace.c:133 extension/inplace.c:207
#, c-format
msgid "inplace_begin: expects 2 arguments but called with %d"
-msgstr "inplace_begin: odotetaan 2 argumenttia, mutta kutsussa oli %d argumenttia"
+msgstr ""
+"inplace_begin: odotetaan 2 argumenttia, mutta kutsussa oli %d argumenttia"
#: extension/inplace.c:136
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
-msgstr "inplace_begin: ensimmäisen argumentin noutaminen merkkijonotiedostonimenä epäonnistui"
+msgstr ""
+"inplace_begin: ensimmäisen argumentin noutaminen merkkijonotiedostonimenä "
+"epäonnistui"
#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
-msgstr "inplace_begin: ottaen pois käytöstä virheellisen TIEDOSTONIMI ”%s” muokkauksen"
+msgstr ""
+"inplace_begin: ottaen pois käytöstä virheellisen TIEDOSTONIMI ”%s” "
+"muokkauksen"
#: extension/inplace.c:151
#, c-format
@@ -2201,7 +2299,9 @@ msgstr "inplace_begin: close(%d) epäonnistui (%s)"
#: extension/inplace.c:210
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
-msgstr "inplace_end: ensimmäisen argumentin noutaminen merkkijonotiedostonimenä epäonnistui"
+msgstr ""
+"inplace_end: ensimmäisen argumentin noutaminen merkkijonotiedostonimenä "
+"epäonnistui"
#: extension/inplace.c:217
msgid "inplace_end: in-place editing not active"
@@ -2256,16 +2356,16 @@ msgstr "chr: kutsuttu ilman argumentteja"
msgid "chr: called with inappropriate argument(s)"
msgstr "chr: kutsuttu sopimattomalla argumentilla"
-#: extension/readdir.c:277
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr "dir_take_control_of: opendir/fdopendir epäonnistui: %s"
-#: extension/readfile.c:84
+#: extension/readfile.c:113
msgid "readfile: called with too many arguments"
msgstr "readfile: kutsuttu liian monella argumentilla"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
msgid "readfile: called with no arguments"
msgstr "readfile: kutsuttu ilman argumentteja"
@@ -2317,27 +2417,27 @@ msgstr "do_reada: clear_array epäonnistui\n"
msgid "read_array: set_array_element failed\n"
msgstr "read_array: set_array_element epäonnistui\n"
-#: extension/time.c:106
+#: extension/time.c:113
msgid "gettimeofday: ignoring arguments"
msgstr "gettimeofday: ohitetaan argumentit"
-#: extension/time.c:137
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr "gettimeofday: ei ole tuettu tällä alustalla"
-#: extension/time.c:158
+#: extension/time.c:165
msgid "sleep: called with too many arguments"
msgstr "sleep: kutsuttu liian monella argumentilla"
-#: extension/time.c:161
+#: extension/time.c:168
msgid "sleep: missing required numeric argument"
msgstr "sleep: puuttuu vaadittu numeerinen argumentti"
-#: extension/time.c:167
+#: extension/time.c:174
msgid "sleep: argument is negative"
msgstr "sleep: argumentti on negatiivinen"
-#: extension/time.c:201
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr "sleep: ei ole tuettu tällä alustalla"
@@ -2359,15 +2459,20 @@ msgstr "split: toinen argumentti ei ole taulukko"
#: field.c:993
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"
+msgstr ""
+"split: saman taulukon käyttö toiselle ja neljännelle argumentille epäonnistui"
#: field.c:998
msgid "split: cannot use a subarray of second arg for fourth arg"
-msgstr "split: toisen argumentin käyttö alitaulukkoa neljännelle argumentille epäonnistui"
+msgstr ""
+"split: toisen argumentin käyttö alitaulukkoa neljännelle argumentille "
+"epäonnistui"
#: field.c:1001
msgid "split: cannot use a subarray of fourth arg for second arg"
-msgstr "split: neljännen argumentin käyttö alitaulukkoa toiselle argumentille epäonnistui"
+msgstr ""
+"split: neljännen argumentin käyttö alitaulukkoa toiselle argumentille "
+"epäonnistui"
#: field.c:1032
msgid "split: null string for third arg is a gawk extension"
@@ -2387,15 +2492,21 @@ msgstr "patsplit: kolmas argumentti ei ole taulukko"
#: field.c:1087
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"
+msgstr ""
+"patsplit: saman taulukon käyttö toiselle ja neljännelle argumentille "
+"epäonnistui"
#: field.c:1092
msgid "patsplit: cannot use a subarray of second arg for fourth arg"
-msgstr "patsplit: toisen argumentin käyttö alitaulukkkoa neljännelle argumentille epäonnistui"
+msgstr ""
+"patsplit: toisen argumentin käyttö alitaulukkkoa neljännelle argumentille "
+"epäonnistui"
#: field.c:1095
msgid "patsplit: cannot use a subarray of fourth arg for second arg"
-msgstr "patsplit: neljännen argumentin käyttö alitaulukkoa toiselle argumentille epäonnistui"
+msgstr ""
+"patsplit: neljännen argumentin käyttö alitaulukkoa toiselle argumentille "
+"epäonnistui"
#: field.c:1133
msgid "`FIELDWIDTHS' is a gawk extension"
@@ -2430,20 +2541,20 @@ msgstr "node_to_awk_value: vastaaotti null-solmun"
msgid "node_to_awk_value: received null val"
msgstr "node_to_awk_value: vastaanotti null-arvon"
-#: gawkapi.c:808
+#: gawkapi.c:807
msgid "remove_element: received null array"
msgstr "remove_element: vastaanotettu null-taulukko"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr "remove_element: vastaanotti null-alaindeksin"
-#: gawkapi.c:948
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr "api_flatten_array: indeksin %d muuntaminen epäonnistui\n"
-#: gawkapi.c:953
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr "api_flatten_array: arvon %d muuntaminen epäonnistui\n"
@@ -2535,7 +2646,9 @@ msgstr "lausekkeella ”%s”-uudelleenohjauksessa on null-merkkijonoarvo"
#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
-msgstr "tiedostonimi ”%s” ”%s”-uudelleenohjaukselle saattaa olla loogisen lausekkeen tulos"
+msgstr ""
+"tiedostonimi ”%s” ”%s”-uudelleenohjaukselle saattaa olla loogisen lausekkeen "
+"tulos"
#: io.c:809
#, c-format
@@ -2555,7 +2668,8 @@ msgstr "putken ”%s” avaaminen syötteelle (%s) epäonnistui"
#: io.c:904
#, c-format
msgid "can't open two way pipe `%s' for input/output (%s)"
-msgstr "kaksisuuntaisen putken ”%s” avaaminen syötteelle/tulosteelle (%s) epäonnistui"
+msgstr ""
+"kaksisuuntaisen putken ”%s” avaaminen syötteelle/tulosteelle (%s) epäonnistui"
#: io.c:986
#, c-format
@@ -2568,8 +2682,11 @@ msgid "can't redirect to `%s' (%s)"
msgstr "uudelleenohjaus putkeen ”%s” (%s) epäonnistui"
#: io.c:1040
-msgid "reached system limit for open files: starting to multiplex file descriptors"
-msgstr "saavutettiin avoimien tiedostojen järjestelmäraja: aloitetaan tiedostomäärittelijöiden lomittaminen"
+msgid ""
+"reached system limit for open files: starting to multiplex file descriptors"
+msgstr ""
+"saavutettiin avoimien tiedostojen järjestelmäraja: aloitetaan "
+"tiedostomäärittelijöiden lomittaminen"
#: io.c:1056
#, c-format
@@ -2596,7 +2713,9 @@ msgstr "suljettiin uudelleenohjaus, jota ei avattu koskaan"
#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr "close: uudelleenohjaus ”%s” ei ole avattu operaattoreilla ”|&”, toinen argumentti ohitettu"
+msgstr ""
+"close: uudelleenohjaus ”%s” ei ole avattu operaattoreilla ”|&”, toinen "
+"argumentti ohitettu"
#: io.c:1222
#, c-format
@@ -2703,7 +2822,9 @@ msgstr "vakiotulosteen sulkeminen lapsiprosessissa epäonnistui (%s)"
#: io.c:1922
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
-msgstr "”slave pty”:n siirtäminen vakiotulosteeseen lapsiprosessissa epäonnistui (dup: %s)"
+msgstr ""
+"”slave pty”:n siirtäminen vakiotulosteeseen lapsiprosessissa epäonnistui "
+"(dup: %s)"
#: io.c:1924 io.c:2110
#, c-format
@@ -2713,7 +2834,9 @@ msgstr "vakiosyötteen sulkeminen lapsiprosessissa epäonnistui (%s)"
#: io.c:1927
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
-msgstr "”slave pty”:n siirtäminen vakiosyötteeseen lapsiprosessissa epäonnistui (dup: %s)"
+msgstr ""
+"”slave pty”:n siirtäminen vakiosyötteeseen lapsiprosessissa epäonnistui "
+"(dup: %s)"
#: io.c:1929 io.c:1951
#, c-format
@@ -2723,12 +2846,14 @@ msgstr "”slave pty”:n sulkeminen epäonnistui (%s)"
#: io.c:2040 io.c:2108 io.c:2276 io.c:2308
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
-msgstr "putken siirtäminen vakiotulosteeseen lapsiprosessissa epäonnistui (dup: %s)"
+msgstr ""
+"putken siirtäminen vakiotulosteeseen lapsiprosessissa epäonnistui (dup: %s)"
#: io.c:2047 io.c:2113
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
-msgstr "putken siirtäminen vakiosyötteeseen lapsiprosessissa epäonnistui (dup: %s)"
+msgstr ""
+"putken siirtäminen vakiosyötteeseen lapsiprosessissa epäonnistui (dup: %s)"
#: io.c:2073 io.c:2298
msgid "restoring stdout in parent process failed\n"
@@ -2764,7 +2889,9 @@ msgstr "register_input_parser: vastaanotettiin NULL-osoitin"
#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
-msgstr "syötejäsennin ”%s” on ristiriidassa aiemmin asennetun syötejäsentimen ”%s” kanssa"
+msgstr ""
+"syötejäsennin ”%s” on ristiriidassa aiemmin asennetun syötejäsentimen ”%s” "
+"kanssa"
#: io.c:2825
#, c-format
@@ -2777,8 +2904,11 @@ msgstr "register_output_wrapper: vastaanotti NULL-osoittimen"
#: io.c:2873
#, c-format
-msgid "output wrapper `%s' conflicts with previously installed output wrapper `%s'"
-msgstr "tulostekäärin ”%s” on ristiriidassa aiemmin asennetun tulostekäärimen ”%s” kanssa"
+msgid ""
+"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
+msgstr ""
+"tulostekäärin ”%s” on ristiriidassa aiemmin asennetun tulostekäärimen ”%s” "
+"kanssa"
#: io.c:2880
#, c-format
@@ -2791,8 +2921,12 @@ msgstr "register_output_processor: vastaanotti NULL-osoittimen"
#: io.c:2930
#, c-format
-msgid "two-way processor `%s' conflicts with previously installed two-way processor `%s'"
-msgstr "kaksisuuntainen prosessori ”%s” on ristiriidassa aiemmin asennetun kaksisuuntaisen prosessorin ”%s” kanssa"
+msgid ""
+"two-way processor `%s' conflicts with previously installed two-way processor "
+"`%s'"
+msgstr ""
+"kaksisuuntainen prosessori ”%s” on ristiriidassa aiemmin asennetun "
+"kaksisuuntaisen prosessorin ”%s” kanssa"
#: io.c:2939
#, c-format
@@ -2832,7 +2966,9 @@ msgstr "%s: valitsin vaatii argumentin -- %c\n"
#: main.c:562
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
-msgstr "ympäristömuuttuja ”POSIXLY_CORRECT” asetettu: käännetään päälle valitsin ”--posix”"
+msgstr ""
+"ympäristömuuttuja ”POSIXLY_CORRECT” asetettu: käännetään päälle valitsin ”--"
+"posix”"
#: main.c:568
msgid "`--posix' overrides `--traditional'"
@@ -2840,7 +2976,8 @@ msgstr "valitsin ”--posix” korvaa valitsimen ”--traditional”"
#: main.c:579
msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
-msgstr "valitsin ”--posix” tai ”--traditional” korvaa valitsimen ”--non-decimal-data”"
+msgstr ""
+"valitsin ”--posix” tai ”--traditional” korvaa valitsimen ”--non-decimal-data”"
#: main.c:583
#, c-format
@@ -2873,12 +3010,16 @@ msgstr "ei ohjelmatekstiä ollenkaan!"
#: main.c:799
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
-msgstr "Käyttö: %s [POSIX- tai GNU-tyyliset valitsimet] -f ohjelmatiedosto [--] tiedosto ...\n"
+msgstr ""
+"Käyttö: %s [POSIX- tai GNU-tyyliset valitsimet] -f ohjelmatiedosto [--] "
+"tiedosto ...\n"
#: main.c:801
#, c-format
msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
-msgstr "Käyttö: %s [POSIX- tai GNU-tyyliset valitsimet] [--] %cohjelma%c tiedosto ...\n"
+msgstr ""
+"Käyttö: %s [POSIX- tai GNU-tyyliset valitsimet] [--] %cohjelma%c "
+"tiedosto ...\n"
#: main.c:806
msgid "POSIX options:\t\tGNU long options: (standard)\n"
@@ -3013,7 +3154,8 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Virheiden ilmoittamista varten, katso solmua ”Bugs” tiedostossa ”gawk.info”,\n"
+"Virheiden ilmoittamista varten, katso solmua ”Bugs” tiedostossa ”gawk."
+"info”,\n"
"joka on kappale ”Reporting Problems and Bugs” painetussa versiossa.\n"
"\n"
@@ -3109,7 +3251,8 @@ msgstr "”%s” ei ole muuttujanimi, etsitään tiedostoa ”%s=%s”"
#: main.c:1339
#, c-format
msgid "cannot use gawk builtin `%s' as variable name"
-msgstr "gawk-ohjelman sisäisen ”%s”-määrittelyn käyttö muuttujanimenä epäonnistui"
+msgstr ""
+"gawk-ohjelman sisäisen ”%s”-määrittelyn käyttö muuttujanimenä epäonnistui"
#: main.c:1344
#, c-format
@@ -3140,7 +3283,8 @@ msgstr "ei avattu uudelleen tiedostomäärittelijää %d"
#: main.c:1497
#, c-format
msgid "could not pre-open /dev/null for fd %d"
-msgstr "laitteen /dev/null avaaminen uudelleen tiedostomäärittelijälle %d epäonnistui"
+msgstr ""
+"laitteen /dev/null avaaminen uudelleen tiedostomäärittelijälle %d epäonnistui"
#: mpfr.c:550
#, c-format
@@ -3216,8 +3360,12 @@ msgstr "ei heksadesimaalilukuja ”\\x”-koodinvaihtosekvenssissä"
#: node.c:579
#, c-format
-msgid "hex escape \\x%.*s of %d characters probably not interpreted the way you expect"
-msgstr "heksadesimaalikoodinvaihtomerkkejä \\x%.*s / %d ei ole luultavasti tulkittu sillä tavalla kuin odotat"
+msgid ""
+"hex escape \\x%.*s of %d characters probably not interpreted the way you "
+"expect"
+msgstr ""
+"heksadesimaalikoodinvaihtomerkkejä \\x%.*s / %d ei ole luultavasti tulkittu "
+"sillä tavalla kuin odotat"
#: node.c:594
#, c-format
@@ -3225,8 +3373,12 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
msgstr "koodinvaihtosekvenssi ”\\%c” käsitelty kuin pelkkä ”%c”"
#: node.c:739
-msgid "Invalid multibyte data detected. There may be a mismatch between your data and your locale."
-msgstr "Virheellinen monitavutieto havaittu. Paikallisasetuksesi ja tietojesi välillä saattaa olla täsmäämättömyys."
+msgid ""
+"Invalid multibyte data detected. There may be a mismatch between your data "
+"and your locale."
+msgstr ""
+"Virheellinen monitavutieto havaittu. Paikallisasetuksesi ja tietojesi "
+"välillä saattaa olla täsmäämättömyys."
#: posix/gawkmisc.c:177
#, c-format
@@ -3236,7 +3388,8 @@ msgstr "%s %s ”%s”: fd-lippujen hakeminen epäonnistui: (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”: close-on-exec -asettaminen epäonnistui: (fcntl F_SETFD: %s)"
+msgstr ""
+"%s %s ”%s”: close-on-exec -asettaminen epäonnistui: (fcntl F_SETFD: %s)"
#: profile.c:71
#, c-format
@@ -3305,7 +3458,8 @@ msgstr "redir2str: tuntematon edelleenohjaustyyppi %d"
#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
-msgstr "säännöllisen lausekkeen komponentin ”%.*s” pitäisi luultavasti olla ”[%.*s]”"
+msgstr ""
+"säännöllisen lausekkeen komponentin ”%.*s” pitäisi luultavasti olla ”[%.*s]”"
#: regcomp.c:131
msgid "Success"
@@ -3447,8 +3601,11 @@ msgstr "pääsisällön pop-toiminto epäonnistui"
#~ msgid "statement has no effect"
#~ msgstr "käskyllä ei ole vaikutusta"
-#~ msgid "for loop: array `%s' changed size from %ld to %ld during loop execution"
-#~ msgstr "for-silmukka: taulukon ”%s” koko muuttui arvosta %ld arvoon %ld silmukan suorituksen aikana"
+#~ msgid ""
+#~ "for loop: array `%s' changed size from %ld to %ld during loop execution"
+#~ msgstr ""
+#~ "for-silmukka: taulukon ”%s” koko muuttui arvosta %ld arvoon %ld silmukan "
+#~ "suorituksen aikana"
#~ msgid "function called indirectly through `%s' does not exist"
#~ msgstr "kohteen ”%s” kautta epäsuorasti kutsuttu funktio ei ole olemassa"
@@ -3496,7 +3653,8 @@ msgstr "pääsisällön pop-toiminto epäonnistui"
#~ msgstr "muisti loppui"
#~ msgid "call of `length' without parentheses is deprecated by POSIX"
-#~ msgstr "”length”-kutsu ilman sulkumerkkejä on vanhentunut POSIX-standardissa"
+#~ msgstr ""
+#~ "”length”-kutsu ilman sulkumerkkejä on vanhentunut POSIX-standardissa"
#~ msgid "division by zero attempted in `/'"
#~ msgstr "jakoa nollalla yritettiin operaatiossa ”/”"
@@ -3519,8 +3677,12 @@ msgstr "pääsisällön pop-toiminto epäonnistui"
#~ msgid "`nextfile' cannot be called from a BEGIN rule"
#~ msgstr "”nextfile” ei voida kutsua BEGIN-säännöstä"
-#~ msgid "concatenation: side effects in one expression have changed the length of another!"
-#~ msgstr "concatenation: sivuvaikutukset yhdessä lausekkeessa ovat muuttaneet toisen pituutta!"
+#~ msgid ""
+#~ "concatenation: side effects in one expression have changed the length of "
+#~ "another!"
+#~ msgstr ""
+#~ "concatenation: sivuvaikutukset yhdessä lausekkeessa ovat muuttaneet "
+#~ "toisen pituutta!"
#~ msgid "illegal type (%s) in tree_eval"
#~ msgstr "virheellinen tyyppi (%s) funktiossa tree_eval"
@@ -3584,7 +3746,9 @@ msgstr "pääsisällön pop-toiminto epäonnistui"
#~ msgstr "Tuntematon solmutyyppi %s funktiossa pp_var"
#~ msgid "can't open two way socket `%s' for input/output (%s)"
-#~ msgstr "kaksisuuntaisen vastakkeen ”%s” avaaminen syötteelle/tulosteelle (%s) epäonnistui"
+#~ msgstr ""
+#~ "kaksisuuntaisen vastakkeen ”%s” avaaminen syötteelle/tulosteelle (%s) "
+#~ "epäonnistui"
#~ msgid "attempt to use scalar `%s' as array"
#~ msgstr "yritettiin käyttää skalaaria ”%s” taulukkona"
diff --git a/po/fr.gmo b/po/fr.gmo
index b703ee0a..c962ab71 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index d05521a2..2a951b29 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,9 +9,10 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk 4.1.0b\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2014-01-14 22:23+0200\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2014-01-16 00:31+0100\n"
-"Last-Translator: Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir.org>\n"
+"Last-Translator: Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir."
+"org>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
@@ -38,8 +39,8 @@ msgstr "tentative d'utiliser le paramètre scalaire « %s » comme tableau"
msgid "attempt to use scalar `%s' as an array"
msgstr "tentative d'utiliser le scalaire « %s » comme tableau"
-#: array.c:409 array.c:576 builtin.c:85 builtin.c:1599 builtin.c:1645
-#: builtin.c:1658 builtin.c:2086 builtin.c:2100 eval.c:1122 eval.c:1126
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
@@ -137,11 +138,11 @@ msgstr "le corps du switch comporte des cas répétés : %s"
msgid "duplicate `default' detected in switch body"
msgstr "plusieurs « default » ont été détectés dans le corps du switch"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr "« break » est interdit en dehors d'une boucle ou d'un switch"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "« continue » est interdit en dehors d'une boucle ou d'un switch"
@@ -161,7 +162,9 @@ msgstr "« return » est utilisé hors du contexte d'une fonction"
#: awkgram.y:922
msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr "dans BEGIN ou END, un « print » seul devrait sans doute être un « print \"\" »"
+msgstr ""
+"dans BEGIN ou END, un « print » seul devrait sans doute être un « print "
+"\"\" »"
#: awkgram.y:988 awkgram.y:1037
msgid "`delete' is not allowed with SYMTAB"
@@ -224,268 +227,285 @@ msgstr "les appels indirects de fonctions sont une extension gawk"
#: awkgram.y:1620
#, c-format
msgid "can not use special variable `%s' for indirect function call"
-msgstr "impossible d'utiliser la variable spéciale « %s » pour un appel indirect de fonction"
+msgstr ""
+"impossible d'utiliser la variable spéciale « %s » pour un appel indirect de "
+"fonction"
#: awkgram.y:1698
msgid "invalid subscript expression"
msgstr "expression indice incorrecte"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:126
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "avertissement : "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:158
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "fatal : "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "fin de chaîne ou passage à la ligne inattendu"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:523 debug.c:539
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "impossible d'ouvrir le fichier source « %s » en lecture (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "impossible d'ouvrir la bibliothèque partagée « %s » en lecture (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:135 debug.c:5206
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "raison inconnue"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr "impossible d'inclure « %s » et de l'utiliser comme extension"
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "le fichier source « %s » a déjà été intégré"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, c-format
msgid "already loaded shared library `%s'"
msgstr "la bibliothèque partagée « %s » est déjà chargée"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "@include est une extension gawk"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "Le nom de fichier après @include est vide"
-#: awkgram.y:2470
+#: awkgram.y:2494
msgid "@load is a gawk extension"
msgstr "@load est une extension gawk"
-#: awkgram.y:2476
+#: awkgram.y:2500
msgid "empty filename after @load"
msgstr "Le nom de fichier après @load est vide"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "le programme indiqué en ligne de commande est vide"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "impossible de lire le fichier source « %s » (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "le fichier source « %s » est vide"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "le fichier source ne se termine pas par un passage à la ligne"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
-msgstr "expression rationnelle non refermée terminée par un « \\ » en fin de fichier"
+msgstr ""
+"expression rationnelle non refermée terminée par un « \\ » en fin de fichier"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr "%s : %d : le modificateur d'expressions rationnelles « /.../%c » de tawk ne marche pas dans gawk"
+msgstr ""
+"%s : %d : le modificateur d'expressions rationnelles « /.../%c » de tawk ne "
+"marche pas dans gawk"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr "le modificateur d'expressions rationnelles « /.../%c » de tawk ne marche pas dans gawk"
+msgstr ""
+"le modificateur d'expressions rationnelles « /.../%c » de tawk ne marche pas "
+"dans gawk"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "expression rationnelle non refermée"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "expression rationnelle non refermée en fin de fichier"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
-msgstr "l'utilisation de « \\ #... » pour prolonger une ligne n'est pas portable"
+msgstr ""
+"l'utilisation de « \\ #... » pour prolonger une ligne n'est pas portable"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "la barre oblique inverse n'est pas le dernier caractère de la ligne"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX n'autorise pas l'opérateur « **= »"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "l'ancien awk ne dispose pas de l'opérateur « **= »"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX n'autorise pas l'opérateur « ** »"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "l'ancien awk ne dispose pas de l'opérateur « ** »"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "l'ancien awk ne dispose pas de l'opérateur « ^= »"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "l'ancien awk ne dispose pas de l'opérateur « ^ »"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "chaîne non refermée"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "caractère incorrect « %c » dans l'expression"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "« %s » est une extension gawk"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX n'autorise pas « %s »"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "l'ancien awk ne dispose pas de « %s »"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "« goto est jugé dangereux ! » (Edsger W. Dijkstra)\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d n'est pas un nombre d'arguments valide de %s"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
-msgstr "%s : une chaîne littérale en dernier argument d'une substitution est sans effet"
+msgstr ""
+"%s : une chaîne littérale en dernier argument d'une substitution est sans "
+"effet"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "le 3e paramètre de %s n'est pas un objet modifiable"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match : le 3e argument est une extension gawk"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close : le 2e argument est une extension gawk"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
-msgstr "utilisation incorrecte de dcgettext(_\"...\") : enlevez le souligné de tête"
+msgstr ""
+"utilisation incorrecte de dcgettext(_\"...\") : enlevez le souligné de tête"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
-msgstr "utilisation incorrecte de dcngettext(_\"...\") : enlevez le souligné de tête"
+msgstr ""
+"utilisation incorrecte de dcngettext(_\"...\") : enlevez le souligné de tête"
-#: awkgram.y:3992
+#: awkgram.y:4016
msgid "index: regexp constant as second argument is not allowed"
-msgstr "index : le second argument ne peut être une expression rationnelle constante"
+msgstr ""
+"index : le second argument ne peut être une expression rationnelle constante"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "fonction « %s » : le paramètre « %s » masque la variable globale"
-#: awkgram.y:4102 debug.c:4041 debug.c:4084 debug.c:5204
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "impossible d'ouvrir « %s » en écriture (%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "envoi de la liste des variables vers la sortie d'erreur standard"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s : échec de la fermeture (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "shadows_funcs() a été appelé deux fois !"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "il y avait des variables masquées."
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "nom de fonction « %s » déjà défini"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
-msgstr "fonction « %s » : impossible d'utiliser un nom de fonction comme paramètre"
+msgstr ""
+"fonction « %s » : impossible d'utiliser un nom de fonction comme paramètre"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
-msgstr "fonction « %s » : impossible d'utiliser la variable spéciale « %s » comme paramètre d'une fonction"
+msgstr ""
+"fonction « %s » : impossible d'utiliser la variable spéciale « %s » comme "
+"paramètre d'une fonction"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
-msgstr "fonction « %s » : paramètre #%d, « %s » est un doublon du paramètre #%d"
+msgstr ""
+"fonction « %s » : paramètre #%d, « %s » est un doublon du paramètre #%d"
-#: awkgram.y:4359 awkgram.y:4365
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "fonction « %s » appelée sans être définie"
-#: awkgram.y:4369
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "fonction « %s » définie mais jamais appelée directement"
-#: awkgram.y:4401
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr "le paramètre #%d, une expr. rationnelle constante, fournit un booléen"
-#: awkgram.y:4460
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -494,21 +514,24 @@ msgstr ""
"fonction « %s » appelée avec un espace entre son nom\n"
"et « ( », ou utilisée comme variable ou tableau"
-#: awkgram.y:4696
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "tentative de division par zéro"
-#: awkgram.y:4705
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "tentative de division par zéro dans « %% »"
# gawk 'BEGIN { $1++ = 1 }'
-#: awkgram.y:5025
-msgid "cannot assign a value to the result of a field post-increment expression"
-msgstr "impossible d'assigner une valeur au résultat de la post-incrémentation d'un champ"
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
+msgstr ""
+"impossible d'assigner une valeur au résultat de la post-incrémentation d'un "
+"champ"
-#: awkgram.y:5028
+#: awkgram.y:5052
#, c-format
msgid "invalid target of assignment (opcode %s)"
msgstr "cible de l'assignement incorrecte (opcode %s)"
@@ -534,17 +557,22 @@ msgstr "exp : l'argument %g est hors limite"
#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
-msgstr "fflush : vidage impossible : le tube « %s » est ouvert en lecture et non en écriture"
+msgstr ""
+"fflush : vidage impossible : le tube « %s » est ouvert en lecture et non en "
+"écriture"
#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
-msgstr "fflush : vidage impossible : fichier « %s » ouvert en lecture, pas en écriture"
+msgstr ""
+"fflush : vidage impossible : fichier « %s » ouvert en lecture, pas en "
+"écriture"
#: builtin.c:244
#, c-format
msgid "fflush: `%s' is not an open file, pipe or co-process"
-msgstr "fflush : « %s » n'est ni un fichier ouvert, ni un tube, ni un co-processus"
+msgstr ""
+"fflush : « %s » n'est ni un fichier ouvert, ni un tube, ni un co-processus"
#: builtin.c:362
msgid "index: received non-string first argument"
@@ -581,7 +609,8 @@ msgstr "log : l'argument est négatif %g"
#: builtin.c:776 builtin.c:781
msgid "fatal: must use `count$' on all formats or none"
-msgstr "fatal : « numéro$ » doit être utilisé pour toutes les formats ou pour aucun"
+msgstr ""
+"fatal : « numéro$ » doit être utilisé pour toutes les formats ou pour aucun"
#: builtin.c:851
#, c-format
@@ -609,7 +638,8 @@ msgstr "fatal : le numéro d'argument de « $ » doit être > 0"
#: builtin.c:919
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
-msgstr "fatal : le numéro d'argument %ld est > au nombre total d'arguments fournis"
+msgstr ""
+"fatal : le numéro d'argument %ld est > au nombre total d'arguments fournis"
#: builtin.c:923
msgid "fatal: `$' not permitted after period in format"
@@ -617,300 +647,312 @@ msgstr "fatal : dans un format, « $ » ne doit pas suivre un point"
#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
-msgstr "fatal : aucun « $ » fourni pour la taille ou la précision du champ positionné"
+msgstr ""
+"fatal : aucun « $ » fourni pour la taille ou la précision du champ positionné"
-#: builtin.c:1011
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "« l » n'a aucun sens dans un format awk ; ignoré"
-#: builtin.c:1015
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "fatal : « l » est interdit dans un format awk POSIX"
-#: builtin.c:1028
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "« L » n'a aucun sens dans un format awk ; ignoré"
-#: builtin.c:1032
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "fatal : « L » est interdit dans un format awk POSIX"
-#: builtin.c:1045
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "« h » n'a aucun sens dans un format awk ; ignoré"
-#: builtin.c:1049
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "fatal : « h » est interdit dans un format awk POSIX"
-#: builtin.c:1447
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf : valeur %g hors limite pour le format « %%%c »"
-#: builtin.c:1545
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
msgstr "caractère de format inconnu « %c » ignoré : aucun argument converti"
-#: builtin.c:1550
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr "fatal : pas assez d'arguments pour satisfaire la chaîne de formatage"
-#: builtin.c:1552
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "^ à court pour celui-ci"
-#: builtin.c:1559
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf : spécification de format sans lettre de contrôle"
-#: builtin.c:1562
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "trop d'arguments pour la chaîne de formatage"
-#: builtin.c:1618
+#: builtin.c:1634
msgid "sprintf: no arguments"
msgstr "sprintf : aucun argument"
-#: builtin.c:1641 builtin.c:1652
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf : aucun argument"
-#: builtin.c:1695
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt : l'argument n'est pas numérique"
-#: builtin.c:1699
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt : appelé avec un argument négatif %g"
-#: builtin.c:1730
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr : la longueur %g n'est pas >= 1"
-#: builtin.c:1732
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr : la longueur %g n'est pas >= 0"
-#: builtin.c:1739
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr : la longueur %g n'est pas entière, elle sera tronquée"
-#: builtin.c:1744
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr "substr : la longueur %g est trop grande, tronquée à %g"
-#: builtin.c:1756
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr : l'index de début %g n'est pas valide, utilisation de 1"
-#: builtin.c:1761
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr "substr : l'index de début %g n'est pas un entier, il sera tronqué"
-#: builtin.c:1786
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr : la chaîne source est de longueur nulle"
-#: builtin.c:1802
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr : l'index de début %g est au-delà de la fin de la chaîne"
-#: builtin.c:1810
+#: builtin.c:1826
#, c-format
-msgid "substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr "substr : la longueur %g à partir de %g dépasse la fin du 1er argument (%lu)"
+msgid ""
+"substr: length %g at start index %g exceeds length of first argument (%lu)"
+msgstr ""
+"substr : la longueur %g à partir de %g dépasse la fin du 1er argument (%lu)"
# Exemple : gawk --lint 'BEGIN { PROCINFO["strftime"]=123 ; print strftime() }'
-#: builtin.c:1884
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
-msgstr "strftime : la valeur de formatage PROCINFO[\"strftime\"] est de type numérique"
+msgstr ""
+"strftime : la valeur de formatage PROCINFO[\"strftime\"] est de type "
+"numérique"
-#: builtin.c:1907
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime : le second argument n'est pas numérique"
-#: builtin.c:1911
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr "strftime: second argument négatif ou trop grand pour time_t"
-#: builtin.c:1918
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftim : le premier argument n'est pas une chaîne"
-#: builtin.c:1925
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime : la chaîne de formatage est vide"
-#: builtin.c:1991
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime : l'argument n'est pas une chaîne"
-#: builtin.c:2008
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
-msgstr "mktime : au moins l'une des valeurs est en dehors de la plage par défaut"
+msgstr ""
+"mktime : au moins l'une des valeurs est en dehors de la plage par défaut"
-#: builtin.c:2043
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "La fonction « system » est interdite en isolement (mode sandbox)"
-#: builtin.c:2048
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system : l'argument n'est pas une chaîne"
-#: builtin.c:2168
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "référence à un champ non initialisé « $%d »"
-#: builtin.c:2255
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower : l'argument n'est pas une chaîne"
-#: builtin.c:2289
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper : l'argument n'est pas une chaîne"
-#: builtin.c:2325 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2 : le premier argument n'est pas numérique"
-#: builtin.c:2327 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2 : le second argument n'est pas numérique"
-#: builtin.c:2346
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin : l'argument n'est pas numérique"
-#: builtin.c:2362
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos : l'argument n'est pas numérique"
-#: builtin.c:2415 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand : l'argument n'est pas numérique"
-#: builtin.c:2446
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match : le 3e argument n'est pas un tableau"
-#: builtin.c:2718
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub : le 3e argument vaut 0, il sera traité comme un 1"
-#: builtin.c:3014
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift : le premier argument n'est pas numérique"
-#: builtin.c:3016
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift : le second argument reçu n'est pas numérique"
-#: builtin.c:3022
+#: builtin.c:3038
#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
-msgstr "lshift(%f, %f) : les valeurs négatives donnent des résultats inattendus"
+msgstr ""
+"lshift(%f, %f) : les valeurs négatives donnent des résultats inattendus"
-#: builtin.c:3024
+#: builtin.c:3040
#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%f, %f) : les valeurs non entières seront tronquées"
-#: builtin.c:3026
+#: builtin.c:3042
#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr "lshift(%f, %f) : un décalage trop grand donne des résultats inattendus"
-#: builtin.c:3051
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift : le premier argument n'est pas numérique"
-#: builtin.c:3053
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift : le second argument reçu n'est pas numérique"
-#: builtin.c:3059
+#: builtin.c:3075
#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
-msgstr "rshift(%f, %f) : les valeurs négatives donneront des résultats inattendus"
+msgstr ""
+"rshift(%f, %f) : les valeurs négatives donneront des résultats inattendus"
-#: builtin.c:3061
+#: builtin.c:3077
#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%f, %f) : les valeurs non entières seront tronquées"
-#: builtin.c:3063
+#: builtin.c:3079
#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
-msgstr "rshift(%f, %f) : un décalage trop grand donnera des résultats inattendus"
+msgstr ""
+"rshift(%f, %f) : un décalage trop grand donnera des résultats inattendus"
-#: builtin.c:3088 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
msgid "and: called with less than two arguments"
msgstr "and : appelé avec moins de 2 arguments"
-#: builtin.c:3093
+#: builtin.c:3109
#, c-format
msgid "and: argument %d is non-numeric"
msgstr "and : l'argument %d n'est pas numérique"
-#: builtin.c:3097
+#: builtin.c:3113
#, c-format
msgid "and: argument %d negative value %g will give strange results"
-msgstr "and : l'argument %d est négatif (%g) ce qui aura des résultats inattendus"
+msgstr ""
+"and : l'argument %d est négatif (%g) ce qui aura des résultats inattendus"
-#: builtin.c:3120 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
msgid "or: called with less than two arguments"
msgstr "or : appelé avec moins de 2 arguments"
-#: builtin.c:3125
+#: builtin.c:3141
#, c-format
msgid "or: argument %d is non-numeric"
msgstr "or : l'argument %d n'est pas numérique"
-#: builtin.c:3129
+#: builtin.c:3145
#, c-format
msgid "or: argument %d negative value %g will give strange results"
-msgstr "or : l'argument %d est négatif (%g) ce qui aura des résultats inattendus"
+msgstr ""
+"or : l'argument %d est négatif (%g) ce qui aura des résultats inattendus"
-#: builtin.c:3151 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
msgid "xor: called with less than two arguments"
msgstr "xor : appelé avec moins de 2 arguments"
-#: builtin.c:3157
+#: builtin.c:3173
#, c-format
msgid "xor: argument %d is non-numeric"
msgstr "xor : l'argument %d n'est pas numérique"
-#: builtin.c:3161
+#: builtin.c:3177
#, c-format
msgid "xor: argument %d negative value %g will give strange results"
-msgstr "xor : l'argument %d est négatif (%g) ce qui aura des résultats inattendus"
+msgstr ""
+"xor : l'argument %d est négatif (%g) ce qui aura des résultats inattendus"
-#: builtin.c:3186 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl : l'argument n'est pas numérique"
-#: builtin.c:3192
+#: builtin.c:3208
#, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%f) : les valeurs négatives donneront des résultats inattendus"
-#: builtin.c:3194
+#: builtin.c:3210
#, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%f) : les valeurs non entières seront tronquées"
-#: builtin.c:3363
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext : « %s » n'est pas dans un catégorie valide de la locale"
@@ -942,7 +984,8 @@ msgstr "sauve « %s » : commande interdite."
#: command.y:339
msgid "Can't use command `commands' for breakpoint/watchpoint commands"
-msgstr "Impossible d'utiliser « commands » pour des points d'arrêt ou de surveillance"
+msgstr ""
+"Impossible d'utiliser « commands » pour des points d'arrêt ou de surveillance"
#: command.y:341
msgid "no breakpoint/watchpoint has been set yet"
@@ -955,7 +998,8 @@ msgstr "numéro de point d'arrêt ou de surveillance incorrect"
#: command.y:348
#, c-format
msgid "Type commands for when %s %d is hit, one per line.\n"
-msgstr "Entrez les commandes exécutées lors de l'appui de %s %d, une par ligne.\n"
+msgstr ""
+"Entrez les commandes exécutées lors de l'appui de %s %d, une par ligne.\n"
#: command.y:350
#, c-format
@@ -1016,24 +1060,36 @@ msgid "non-zero integer value"
msgstr "valeur entière non nulle"
#: command.y:817
-msgid "backtrace [N] - print trace of all or N innermost (outermost if N < 0) frames."
-msgstr "backtrace [N] - affiche la trace de tout ou des N dernières trames (du début si N < 0)."
+msgid ""
+"backtrace [N] - print trace of all or N innermost (outermost if N < 0) "
+"frames."
+msgstr ""
+"backtrace [N] - affiche la trace de tout ou des N dernières trames (du début "
+"si N < 0)."
#: command.y:819
-msgid "break [[filename:]N|function] - set breakpoint at the specified location."
-msgstr "break [[fichier:]N|fonction] - définit un point d'arrêt à l'endroit indiqué."
+msgid ""
+"break [[filename:]N|function] - set breakpoint at the specified location."
+msgstr ""
+"break [[fichier:]N|fonction] - définit un point d'arrêt à l'endroit indiqué."
#: command.y:821
msgid "clear [[filename:]N|function] - delete breakpoints previously set."
msgstr "clear [[fichier:]N|fonction] - détruit un point d'arrêt existant."
#: command.y:823
-msgid "commands [num] - starts a list of commands to be executed at a breakpoint(watchpoint) hit."
-msgstr "commands [no] - débute une liste de commande à lancer aux points d'arrêt ou de surveillance."
+msgid ""
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
+msgstr ""
+"commands [no] - débute une liste de commande à lancer aux points d'arrêt ou "
+"de surveillance."
#: command.y:825
msgid "condition num [expr] - set or clear breakpoint or watchpoint condition."
-msgstr "condition no [expr] - défini ou détruit une condition d'arrêt ou de surveillance."
+msgstr ""
+"condition no [expr] - défini ou détruit une condition d'arrêt ou de "
+"surveillance."
#: command.y:827
msgid "continue [COUNT] - continue program being debugged."
@@ -1045,7 +1101,8 @@ msgstr "delete [points d'arrêt] [plage] - détruit les points d'arrêt indiqué
#: command.y:831
msgid "disable [breakpoints] [range] - disable specified breakpoints."
-msgstr "disable [points d'arrêt] [plage] - désactive les points d'arrêt indiqués."
+msgstr ""
+"disable [points d'arrêt] [plage] - désactive les points d'arrêt indiqués."
#: command.y:833
msgid "display [var] - print value of variable each time the program stops."
@@ -1057,11 +1114,13 @@ msgstr "down [N] - descend de N trames dans la pile."
#: command.y:837
msgid "dump [filename] - dump instructions to file or stdout."
-msgstr "dump [fichier] - vide les instructions vers la sortie standard ou un fichier."
+msgstr ""
+"dump [fichier] - vide les instructions vers la sortie standard ou un fichier."
#: command.y:839
msgid "enable [once|del] [breakpoints] [range] - enable specified breakpoints."
-msgstr "enable [once|del] [points d'arrêt] [plage] - active les points d'arrêt."
+msgstr ""
+"enable [once|del] [points d'arrêt] [plage] - active les points d'arrêt."
#: command.y:841
msgid "end - end a list of commands or awk statements."
@@ -1081,27 +1140,35 @@ msgstr "frame [N] - sélectionne et affiche la trame N de la pile."
#: command.y:849
msgid "help [command] - print list of commands or explanation of command."
-msgstr "help [commande] - affiche la liste des commandes ou explique la commande."
+msgstr ""
+"help [commande] - affiche la liste des commandes ou explique la commande."
#: command.y:851
msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT."
msgstr "ignore N NB - ignore les NB prochaines occurrences du point d'arrêt N."
#: command.y:853
-msgid "info topic - source|sources|variables|functions|break|frame|args|locals|display|watch."
-msgstr "info sujet - source|sources|variables|functions|break|frame|args|locals|display|watch."
+msgid ""
+"info topic - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch."
+msgstr ""
+"info sujet - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch."
#: command.y:855
msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)."
-msgstr "list [-|+|[fichier:]no_ligne|fonction|plage] - affiche les lignes indiquées."
+msgstr ""
+"list [-|+|[fichier:]no_ligne|fonction|plage] - affiche les lignes indiquées."
#: command.y:857
msgid "next [COUNT] - step program, proceeding through subroutine calls."
msgstr "next [NB] - avance ligne par ligne, sans détailler les sous-routines."
#: command.y:859
-msgid "nexti [COUNT] - step one instruction, but proceed through subroutine calls."
-msgstr "nexti [NB] - avance d'une instruction, sans détailler les sous-routines."
+msgid ""
+"nexti [COUNT] - step one instruction, but proceed through subroutine calls."
+msgstr ""
+"nexti [NB] - avance d'une instruction, sans détailler les sous-routines."
#: command.y:861
msgid "option [name[=value]] - set or display debugger option(s)."
@@ -1129,15 +1196,19 @@ msgstr "run - démarre et redémarre l'exécution du programme."
#: command.y:874
msgid "save filename - save commands from the session to file."
-msgstr "save fichier - enregistre les commandes de la sessions dans un fichier."
+msgstr ""
+"save fichier - enregistre les commandes de la sessions dans un fichier."
#: command.y:877
msgid "set var = value - assign value to a scalar variable."
msgstr "set var = valeur - assigne une valeur à une variable scalaire."
#: command.y:879
-msgid "silent - suspends usual message when stopped at a breakpoint/watchpoint."
-msgstr "silent - suspend les messages habituels lors des points d'arrêt et de surveillance."
+msgid ""
+"silent - suspends usual message when stopped at a breakpoint/watchpoint."
+msgstr ""
+"silent - suspend les messages habituels lors des points d'arrêt et de "
+"surveillance."
#: command.y:881
msgid "source file - execute commands from file."
@@ -1161,11 +1232,17 @@ msgstr "trace on|off - affiche les instructions avant de les exécuter."
#: command.y:891
msgid "undisplay [N] - remove variable(s) from automatic display list."
-msgstr "undisplay [N] - retire la ou les variables de la liste d'affichage automatique."
+msgstr ""
+"undisplay [N] - retire la ou les variables de la liste d'affichage "
+"automatique."
#: command.y:893
-msgid "until [[filename:]N|function] - execute until program reaches a different line or line N within current frame."
-msgstr "until [[fichier:]N|fonction] - exécution jusqu'à dépasser la ligne courant ou la ligne N, dans la trame actuelle."
+msgid ""
+"until [[filename:]N|function] - execute until program reaches a different "
+"line or line N within current frame."
+msgstr ""
+"until [[fichier:]N|fonction] - exécution jusqu'à dépasser la ligne courant "
+"ou la ligne N, dans la trame actuelle."
#: command.y:895
msgid "unwatch [N] - remove variable(s) from watch list."
@@ -1235,7 +1312,8 @@ msgstr "affiche ou définit l'invite du débogueur."
#: debug.c:260
msgid "(un)set or show saving of command history (value=on|off)."
-msgstr "affiche ou (dés)active l'enregistrement de l'historique (valeur=on|off)."
+msgstr ""
+"affiche ou (dés)active l'enregistrement de l'historique (valeur=on|off)."
#: debug.c:262
msgid "(un)set or show saving of options (value=on|off)."
@@ -1271,7 +1349,8 @@ msgstr "impossible de trouver le fichier source nommé « %s » (%s)"
#: debug.c:529
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
-msgstr "ATTENTION : fichier source « %s » modifié après compilation du programme.\n"
+msgstr ""
+"ATTENTION : fichier source « %s » modifié après compilation du programme.\n"
#: debug.c:551
#, c-format
@@ -1468,7 +1547,8 @@ msgstr "tentative d'utiliser un scalaire comme tableau"
#: debug.c:1856
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
-msgstr "Point de surveillance %d détruit, car son paramètre est hors contexte.\n"
+msgstr ""
+"Point de surveillance %d détruit, car son paramètre est hors contexte.\n"
#: debug.c:1867
#, c-format
@@ -1502,7 +1582,8 @@ msgstr "Numéro de trame incorrect"
#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Note : point d'arrêt %d (activé, ignore %ld occurrences) déjà défini à %s:%d"
+msgstr ""
+"Note : point d'arrêt %d (activé, ignore %ld occurrences) déjà défini à %s:%d"
#: debug.c:2207
#, c-format
@@ -1512,7 +1593,9 @@ msgstr "Note : point d'arrêt %d (activé) déjà défini à %s:%d"
#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Note : point d'arrêt %d (désactivé, ignore %ld occurrences) déjà défini à %s:%d"
+msgstr ""
+"Note : point d'arrêt %d (désactivé, ignore %ld occurrences) déjà défini à %s:"
+"%d"
#: debug.c:2221
#, c-format
@@ -1552,7 +1635,9 @@ msgstr "Impossible de définir un point d'arrêt dans la fonction « %s »\n"
#: debug.c:2403
#, c-format
msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
-msgstr "le point d'arrêt %d défini sur le fichier « %s », ligne %d est inconditionnel\n"
+msgstr ""
+"le point d'arrêt %d défini sur le fichier « %s », ligne %d est "
+"inconditionnel\n"
#: debug.c:2508 debug.c:2530
#, c-format
@@ -1594,7 +1679,8 @@ msgstr "S'arrêtera à la prochaine occurrence du point d'arrêt %d.\n"
#: debug.c:2783
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
-msgstr "Seuls les programmes fournis via l'option « -f » peuvent être débogués.\n"
+msgstr ""
+"Seuls les programmes fournis via l'option « -f » peuvent être débogués.\n"
#: debug.c:2908
#, c-format
@@ -1740,40 +1826,40 @@ msgstr "« return » interdit dans ce contexte ; instruction ignorée"
msgid "No symbol `%s' in current context"
msgstr "Pas de symbole « %s » dans le contexte actuel"
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1191
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr "[ non apparié"
-#: dfa.c:1052
+#: dfa.c:1174
msgid "invalid character class"
msgstr "classe de caractères incorrecte"
-#: dfa.c:1228
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "la syntaxe des classes de caractères est [[:space:]], et non [:space:]"
-#: dfa.c:1280
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr "échappement \\ non terminé"
-#: dfa.c:1427 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Contenu de \\{\\} incorrect"
-#: dfa.c:1430 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "Expression rationnelle trop grande"
-#: dfa.c:1847
+#: dfa.c:1936
msgid "unbalanced ("
msgstr "( non apparié"
-#: dfa.c:1973
+#: dfa.c:2062
msgid "no syntax specified"
msgstr "aucune syntaxe indiquée"
-#: dfa.c:1981
+#: dfa.c:2070
msgid "unbalanced )"
msgstr ") non apparié"
@@ -1895,18 +1981,25 @@ msgstr "load_ext : impossible d'ouvrir la bibliothèque « %s » (%s)\n"
#: ext.c:104
#, c-format
-msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
-msgstr "load_ext : bibliothèque « %s » : ne définit pas « plugin_is_GPL_compatible » (%s)\n"
+msgid ""
+"load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
+msgstr ""
+"load_ext : bibliothèque « %s » : ne définit pas "
+"« plugin_is_GPL_compatible » (%s)\n"
#: ext.c:110
#, c-format
msgid "load_ext: library `%s': cannot call function `%s' (%s)\n"
-msgstr "load_ext : bibliothèque « %s » : impossible d'appeler la fonction « %s » (%s)\n"
+msgstr ""
+"load_ext : bibliothèque « %s » : impossible d'appeler la fonction "
+"« %s » (%s)\n"
#: ext.c:114
#, c-format
msgid "load_ext: library `%s' initialization routine `%s' failed\n"
-msgstr "load_ext : bibliothèque « %s » : échec de la routine d'initialisation « %s »\n"
+msgstr ""
+"load_ext : bibliothèque « %s » : échec de la routine d'initialisation « %s "
+"»\n"
#: ext.c:174
msgid "`extension' is a gawk extension"
@@ -1923,13 +2016,18 @@ msgstr "extension : impossible d'ouvrir la bibliothèque « %s » (%s)"
#: ext.c:186
#, c-format
-msgid "extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-msgstr "extension : bibliothèque « %s » : ne définit pas « plugin_is_GPL_compatible » (%s)"
+msgid ""
+"extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
+msgstr ""
+"extension : bibliothèque « %s » : ne définit pas "
+"« plugin_is_GPL_compatible » (%s)"
#: ext.c:190
#, c-format
msgid "extension: library `%s': cannot call function `%s' (%s)"
-msgstr "extension : bibliothèque « %s » : impossible d'appeler la fonction « %s » (%s)"
+msgstr ""
+"extension : bibliothèque « %s » : impossible d'appeler la fonction "
+"« %s » (%s)"
#: ext.c:221
msgid "make_builtin: missing function name"
@@ -1953,7 +2051,9 @@ msgstr "make_builtin : nom de la fonction « %s » déjà défini"
#: ext.c:246
#, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
-msgstr "make_builtin : impossible d'utiliser la fonction gawk « %s » comme nom de fonction"
+msgstr ""
+"make_builtin : impossible d'utiliser la fonction gawk « %s » comme nom de "
+"fonction"
#: ext.c:249 ext.c:304
#, c-format
@@ -1987,7 +2087,9 @@ msgstr "extension : nom de la fonction « %s » déjà défini"
#: ext.c:301
#, c-format
msgid "extension: can't use gawk built-in `%s' as function name"
-msgstr "extension : impossible d'utiliser la fonction interne gawk « %s » comme nom de fonction"
+msgstr ""
+"extension : impossible d'utiliser la fonction interne gawk « %s » comme nom "
+"de fonction"
#: ext.c:375
#, c-format
@@ -2002,12 +2104,16 @@ msgstr "fonction « %s » : argument #%d manquant"
#: ext.c:395
#, c-format
msgid "function `%s': argument #%d: attempt to use scalar as an array"
-msgstr "fonction « %s » : argument #%d : tentative d'utilisation d'un scalaire comme tableau"
+msgstr ""
+"fonction « %s » : argument #%d : tentative d'utilisation d'un scalaire comme "
+"tableau"
#: ext.c:399
#, c-format
msgid "function `%s': argument #%d: attempt to use array as a scalar"
-msgstr "fonction « %s » : argument #%d : tentative d'utiliser un tableau comme scalaire"
+msgstr ""
+"fonction « %s » : argument #%d : tentative d'utiliser un tableau comme "
+"scalaire"
#: ext.c:413
msgid "dynamic loading of library not supported"
@@ -2160,12 +2266,15 @@ msgstr "inplace_begin : 2 arguments attendu, appelé avec %d"
#: extension/inplace.c:136
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
-msgstr "inplace_begin : impossible de récupérer le 1er argument comme nom de fichier"
+msgstr ""
+"inplace_begin : impossible de récupérer le 1er argument comme nom de fichier"
#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
-msgstr "inplace_begin : modification sur place annulée pour le fichier incorrect « %s »"
+msgstr ""
+"inplace_begin : modification sur place annulée pour le fichier incorrect "
+"« %s »"
#: extension/inplace.c:151
#, c-format
@@ -2204,7 +2313,8 @@ msgstr "inplace_begin : échec de close(%d) (%s)"
#: extension/inplace.c:210
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
-msgstr "inplace_end : impossible de récupérer le 1er argument comme nom de fichier"
+msgstr ""
+"inplace_end : impossible de récupérer le 1er argument comme nom de fichier"
#: extension/inplace.c:217
msgid "inplace_end: in-place editing not active"
@@ -2259,16 +2369,16 @@ msgstr "chr : appelé sans argument"
msgid "chr: called with inappropriate argument(s)"
msgstr "chr : appelé avec des arguments incorrects"
-#: extension/readdir.c:277
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr "dir_take_control_of : échec de opendir/fdopendir : %s"
-#: extension/readfile.c:84
+#: extension/readfile.c:113
msgid "readfile: called with too many arguments"
msgstr "readfile : appelé avec trop d'arguments"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
msgid "readfile: called with no arguments"
msgstr "readfile : appelé sans argument"
@@ -2320,27 +2430,27 @@ msgstr "do_reada : échec de clear_array\n"
msgid "read_array: set_array_element failed\n"
msgstr "read_array : échec de set_array_element\n"
-#: extension/time.c:106
+#: extension/time.c:113
msgid "gettimeofday: ignoring arguments"
msgstr "gettimeofday : arguments ignorés"
-#: extension/time.c:137
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr "gettimeofday : n'est pas disponible sur cette plateforme"
-#: extension/time.c:158
+#: extension/time.c:165
msgid "sleep: called with too many arguments"
msgstr "sleep : appelé avec trop d'arguments"
-#: extension/time.c:161
+#: extension/time.c:168
msgid "sleep: missing required numeric argument"
msgstr "sleep : l'argument numérique requis est absent"
-#: extension/time.c:167
+#: extension/time.c:174
msgid "sleep: argument is negative"
msgstr "sleep : l'argument est négatif"
-#: extension/time.c:201
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr "sleep : n'est pas disponible sur cette plateforme"
@@ -2366,11 +2476,13 @@ msgstr "split : impossible d'utiliser le même tableau comme 2e et 4e argument"
#: field.c:998
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"
+msgstr ""
+"split : impossible d'utiliser un sous-tableau du 2e argument en 4e argument"
#: field.c:1001
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"
+msgstr ""
+"split : impossible d'utiliser un sous-tableau du 4e argument en 2e argument"
#: field.c:1032
msgid "split: null string for third arg is a gawk extension"
@@ -2390,15 +2502,20 @@ msgstr "patsplit : le 3e argument n'est pas un tableau"
#: field.c:1087
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"
+msgstr ""
+"patsplit : impossible d'utiliser le même tableau comme 2e et 4e argument"
#: field.c:1092
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"
+msgstr ""
+"patsplit : impossible d'utiliser un sous-tableau du 2e argument en 4e "
+"argument"
#: field.c:1095
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"
+msgstr ""
+"patsplit : impossible d'utiliser un sous-tableau du 4e argument en 2e "
+"argument"
#: field.c:1133
msgid "`FIELDWIDTHS' is a gawk extension"
@@ -2415,7 +2532,8 @@ msgstr "utiliser une chaîne vide pour « FS » est une extension gawk"
#: field.c:1274
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 »"
+msgstr ""
+"l'ancien awk n'accepte pas les expr. rationnelles comme valeur de « FS »"
#: field.c:1393
msgid "`FPAT' is a gawk extension"
@@ -2433,20 +2551,20 @@ msgstr "node_to_awk_value : node nul reçu"
msgid "node_to_awk_value: received null val"
msgstr "node_to_awk_value : val nul reçu"
-#: gawkapi.c:808
+#: gawkapi.c:807
msgid "remove_element: received null array"
msgstr "remove_element : tableau nul reçu"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr "remove_element : indice nul reçu"
-#: gawkapi.c:948
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr "api_flatten_array : impossible de convertir l'indice %d\n"
-#: gawkapi.c:953
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr "api_flatten_array : impossible de convertir la valeur %d\n"
@@ -2538,7 +2656,9 @@ msgstr "l'expression dans la redirection « %s » donne une chaîne nulle"
#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
-msgstr "le fichier « %s » de la redirection « %s » pourrait être le résultat d'une expression booléenne"
+msgstr ""
+"le fichier « %s » de la redirection « %s » pourrait être le résultat d'une "
+"expression booléenne"
#: io.c:809
#, c-format
@@ -2558,7 +2678,8 @@ msgstr "impossible d'ouvrir le tube « %s » en entrée (%s)"
#: io.c:904
#, c-format
msgid "can't open two way pipe `%s' for input/output (%s)"
-msgstr "impossible d'ouvrir un tube bidirectionnel « %s » en entrées-sorties (%s)"
+msgstr ""
+"impossible d'ouvrir un tube bidirectionnel « %s » en entrées-sorties (%s)"
#: io.c:986
#, c-format
@@ -2571,8 +2692,11 @@ msgid "can't redirect to `%s' (%s)"
msgstr "impossible de rediriger vers « %s » (%s)"
#: io.c:1040
-msgid "reached system limit for open files: starting to multiplex file descriptors"
-msgstr "limite système du nombre de fichiers ouverts atteinte : début du multiplexage des descripteurs de fichiers"
+msgid ""
+"reached system limit for open files: starting to multiplex file descriptors"
+msgstr ""
+"limite système du nombre de fichiers ouverts atteinte : début du "
+"multiplexage des descripteurs de fichiers"
#: io.c:1056
#, c-format
@@ -2590,7 +2714,8 @@ msgstr "close : le second argument doit être « to » ou « from »"
#: io.c:1103
#, c-format
msgid "close: `%.*s' is not an open file, pipe or co-process"
-msgstr "close : « %.*s » n'est ni un fichier ouvert, ni un tube ou un co-processus"
+msgstr ""
+"close : « %.*s » n'est ni un fichier ouvert, ni un tube ou un co-processus"
#: io.c:1108
msgid "close of redirection that was never opened"
@@ -2599,7 +2724,9 @@ msgstr "fermeture d'une redirection qui n'a jamais été ouverte"
#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr "close : la redirection « %s » n'a pas été ouverte avec « |& », second argument ignoré"
+msgstr ""
+"close : la redirection « %s » n'a pas été ouverte avec « |& », second "
+"argument ignoré"
#: io.c:1222
#, c-format
@@ -2664,12 +2791,14 @@ msgstr "le port local %s n'est pas valide dans « /inet »"
#: io.c:1438
#, c-format
msgid "remote host and port information (%s, %s) invalid"
-msgstr "les informations sur l'hôte et le port distants (%s, %s) ne sont pas valides"
+msgstr ""
+"les informations sur l'hôte et le port distants (%s, %s) ne sont pas valides"
#: io.c:1590
#, c-format
msgid "no (known) protocol supplied in special filename `%s'"
-msgstr "aucun protocole (connu) n'a été fourni dans le nom de fichier spécial « %s »"
+msgstr ""
+"aucun protocole (connu) n'a été fourni dans le nom de fichier spécial « %s »"
#: io.c:1604
#, c-format
@@ -2706,7 +2835,9 @@ msgstr "échec de la fermeture de stdout du processus fils (%s)"
#: io.c:1922
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
-msgstr "échec du déplacement du pty esclave vers le stdout du processus fils (dup : %s)"
+msgstr ""
+"échec du déplacement du pty esclave vers le stdout du processus fils (dup : "
+"%s)"
#: io.c:1924 io.c:2110
#, c-format
@@ -2716,7 +2847,9 @@ msgstr "échec de fermeture du stdin du processus fils (%s)"
#: io.c:1927
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
-msgstr "échec du déplacement du pty esclave vers le stdin du processus fils (dup : %s)"
+msgstr ""
+"échec du déplacement du pty esclave vers le stdin du processus fils (dup : "
+"%s)"
#: io.c:1929 io.c:1951
#, c-format
@@ -2767,7 +2900,9 @@ msgstr "register_input_parser : pointeur NULL reçu"
#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
-msgstr "l'analyseur d'entrée « %s » est en conflit avec l'analyseur « %s » déjà installé"
+msgstr ""
+"l'analyseur d'entrée « %s » est en conflit avec l'analyseur « %s » déjà "
+"installé"
#: io.c:2825
#, c-format
@@ -2780,8 +2915,10 @@ msgstr "register_output_wrapper : pointeur NULL reçu"
#: io.c:2873
#, c-format
-msgid "output wrapper `%s' conflicts with previously installed output wrapper `%s'"
-msgstr "le filtre de sortie « %s » est en conflit avec le filtre « %s » déjà installé"
+msgid ""
+"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
+msgstr ""
+"le filtre de sortie « %s » est en conflit avec le filtre « %s » déjà installé"
#: io.c:2880
#, c-format
@@ -2794,8 +2931,12 @@ msgstr "register_output_processor : pointeur NULL reçu"
#: io.c:2930
#, c-format
-msgid "two-way processor `%s' conflicts with previously installed two-way processor `%s'"
-msgstr "le gestionnaire bidirectionnel « %s » est en conflit avec le gestionnaire « %s » déjà installé"
+msgid ""
+"two-way processor `%s' conflicts with previously installed two-way processor "
+"`%s'"
+msgstr ""
+"le gestionnaire bidirectionnel « %s » est en conflit avec le gestionnaire "
+"« %s » déjà installé"
#: io.c:2939
#, c-format
@@ -2813,7 +2954,8 @@ msgstr "impossible d'allouer plus de mémoire d'entrée"
#: io.c:3682
msgid "multicharacter value of `RS' is a gawk extension"
-msgstr "l'utilisation d'un « RS » de plusieurs caractères est une extension gawk"
+msgstr ""
+"l'utilisation d'un « RS » de plusieurs caractères est une extension gawk"
#: io.c:3771
msgid "IPv6 communication is not supported"
@@ -2835,7 +2977,9 @@ msgstr "%s : l'option requiert un argument - %c\n"
#: main.c:562
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
-msgstr "variable d'environnement « POSIXLY__CORRECT » définie : activation de « --posix »"
+msgstr ""
+"variable d'environnement « POSIXLY__CORRECT » définie : activation de « --"
+"posix »"
#: main.c:568
msgid "`--posix' overrides `--traditional'"
@@ -2843,12 +2987,14 @@ msgstr "« --posix » prend le pas sur « --traditional »"
#: main.c:579
msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
-msgstr "« --posix » et « --traditional » prennent le pas sur « --non-decimal-data »"
+msgstr ""
+"« --posix » et « --traditional » prennent le pas sur « --non-decimal-data »"
#: main.c:583
#, c-format
msgid "running %s setuid root may be a security problem"
-msgstr "l'exécution de %s en mode setuid root peut être un problème de sécurité"
+msgstr ""
+"l'exécution de %s en mode setuid root peut être un problème de sécurité"
#: main.c:588
msgid "`--posix' overrides `--characters-as-bytes'"
@@ -2876,12 +3022,14 @@ msgstr "aucun programme !"
#: main.c:799
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
-msgstr "Utilisation : %s [options GNU ou POSIX] -f fichier_prog [--] fichier ...\n"
+msgstr ""
+"Utilisation : %s [options GNU ou POSIX] -f fichier_prog [--] fichier ...\n"
#: main.c:801
#, c-format
msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
-msgstr "Utilisation : %s [options GNU ou POSIX] [--] %cprogramme%c fichier ...\n"
+msgstr ""
+"Utilisation : %s [options GNU ou POSIX] [--] %cprogramme%c fichier ...\n"
#: main.c:806
msgid "POSIX options:\t\tGNU long options: (standard)\n"
@@ -3190,7 +3338,8 @@ msgstr "%s : l'argument #%d a une valeur incorrecte %Rg, utilisation de 0"
#: mpfr.c:857
msgid "%s: argument #%d negative value %Rg will give strange results"
-msgstr "%s : argument #%d : la valeur négative %Rg donnera des résultats inattendus"
+msgstr ""
+"%s : argument #%d : la valeur négative %Rg donnera des résultats inattendus"
#: mpfr.c:863
msgid "%s: argument #%d fractional value %Rg will be truncated"
@@ -3199,7 +3348,8 @@ msgstr "%s : argument #%d : la valeur non entière %Rg sera tronquée"
#: mpfr.c:878
#, c-format
msgid "%s: argument #%d negative value %Zd will give strange results"
-msgstr "%s : argument #%d : la valeur négative %Zd donnera des résultats inattendus"
+msgstr ""
+"%s : argument #%d : la valeur négative %Zd donnera des résultats inattendus"
#: msg.c:68
#, c-format
@@ -3225,8 +3375,12 @@ msgstr "aucun chiffre hexadécimal dans la séquence d'échappement « \\x »
#: node.c:579
#, c-format
-msgid "hex escape \\x%.*s of %d characters probably not interpreted the way you expect"
-msgstr "la séquence d'échappement hexa. \\x%.*s de %d caractères ne sera probablement pas interprétée comme vous l'imaginez"
+msgid ""
+"hex escape \\x%.*s of %d characters probably not interpreted the way you "
+"expect"
+msgstr ""
+"la séquence d'échappement hexa. \\x%.*s de %d caractères ne sera "
+"probablement pas interprétée comme vous l'imaginez"
#: node.c:594
#, c-format
@@ -3234,18 +3388,24 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
msgstr "séquence d'échappement « \\%c » traitée comme un simple « %c »"
#: node.c:739
-msgid "Invalid multibyte data detected. There may be a mismatch between your data and your locale."
-msgstr "Données multioctets non valables détectées. Possible incohérence entre données et paramètres régionaux (locale)."
+msgid ""
+"Invalid multibyte data detected. There may be a mismatch between your data "
+"and your locale."
+msgstr ""
+"Données multioctets non valables détectées. Possible incohérence entre "
+"données et paramètres régionaux (locale)."
#: posix/gawkmisc.c:177
#, c-format
msgid "%s %s `%s': could not get fd flags: (fcntl F_GETFD: %s)"
-msgstr "%s %s « %s » : impossible d'obtenir les drapeaux du fd : (fcntl F_GETFD: %s)"
+msgstr ""
+"%s %s « %s » : impossible d'obtenir les drapeaux du 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 »: impossible de positionner close-on-exec: (fcntl F_SETFD: %s)"
+msgstr ""
+"%s %s « %s »: impossible de positionner close-on-exec: (fcntl F_SETFD: %s)"
#: profile.c:71
#, c-format
@@ -3314,7 +3474,9 @@ msgstr "redir2str : type de redirection %d inconnu"
#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
-msgstr "le composant d'expression rationnelle « %.*s » devrait probablement être « [%.*s] »"
+msgstr ""
+"le composant d'expression rationnelle « %.*s » devrait probablement être "
+"« [%.*s] »"
#: regcomp.c:131
msgid "Success"
diff --git a/po/gawk.pot b/po/gawk.pot
index 527a4996..bb47fa9e 100644
--- a/po/gawk.pot
+++ b/po/gawk.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gawk 4.1.0b\n"
+"Project-Id-Version: gawk 4.1.1\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2014-01-14 22:23+0200\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -36,8 +36,8 @@ msgstr ""
msgid "attempt to use scalar `%s' as an array"
msgstr ""
-#: array.c:409 array.c:576 builtin.c:85 builtin.c:1599 builtin.c:1645
-#: builtin.c:1658 builtin.c:2086 builtin.c:2100 eval.c:1122 eval.c:1126
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
@@ -135,11 +135,11 @@ msgstr ""
msgid "duplicate `default' detected in switch body"
msgstr ""
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr ""
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr ""
@@ -228,283 +228,283 @@ msgstr ""
msgid "invalid subscript expression"
msgstr ""
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:126
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr ""
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:158
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr ""
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr ""
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:523 debug.c:539
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr ""
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr ""
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:135 debug.c:5206
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr ""
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr ""
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr ""
-#: awkgram.y:2385
+#: awkgram.y:2409
#, c-format
msgid "already loaded shared library `%s'"
msgstr ""
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr ""
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr ""
-#: awkgram.y:2470
+#: awkgram.y:2494
msgid "@load is a gawk extension"
msgstr ""
-#: awkgram.y:2476
+#: awkgram.y:2500
msgid "empty filename after @load"
msgstr ""
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr ""
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr ""
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr ""
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr ""
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr ""
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr ""
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr ""
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr ""
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr ""
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr ""
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr ""
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr ""
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr ""
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr ""
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr ""
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr ""
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr ""
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr ""
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr ""
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr ""
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr ""
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr ""
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr ""
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr ""
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
msgstr ""
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr ""
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr ""
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr ""
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
-#: awkgram.y:3992
+#: awkgram.y:4016
msgid "index: regexp constant as second argument is not allowed"
msgstr ""
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr ""
-#: awkgram.y:4102 debug.c:4041 debug.c:4084 debug.c:5204
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr ""
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr ""
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr ""
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr ""
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr ""
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr ""
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr ""
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
msgstr ""
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr ""
-#: awkgram.y:4359 awkgram.y:4365
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr ""
-#: awkgram.y:4369
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr ""
-#: awkgram.y:4401
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr ""
-#: awkgram.y:4460
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
"or used as a variable or an array"
msgstr ""
-#: awkgram.y:4696
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr ""
-#: awkgram.y:4705
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr ""
-#: awkgram.y:5025
+#: awkgram.y:5049
msgid ""
"cannot assign a value to the result of a field post-increment expression"
msgstr ""
-#: awkgram.y:5028
+#: awkgram.y:5052
#, c-format
msgid "invalid target of assignment (opcode %s)"
msgstr ""
@@ -615,298 +615,298 @@ msgstr ""
msgid "fatal: no `$' supplied for positional field width or precision"
msgstr ""
-#: builtin.c:1011
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr ""
-#: builtin.c:1015
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr ""
-#: builtin.c:1028
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr ""
-#: builtin.c:1032
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr ""
-#: builtin.c:1045
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr ""
-#: builtin.c:1049
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr ""
-#: builtin.c:1447
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr ""
-#: builtin.c:1545
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
msgstr ""
-#: builtin.c:1550
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr ""
-#: builtin.c:1552
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr ""
-#: builtin.c:1559
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr ""
-#: builtin.c:1562
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr ""
-#: builtin.c:1618
+#: builtin.c:1634
msgid "sprintf: no arguments"
msgstr ""
-#: builtin.c:1641 builtin.c:1652
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr ""
-#: builtin.c:1695
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr ""
-#: builtin.c:1699
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr ""
-#: builtin.c:1730
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr ""
-#: builtin.c:1732
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr ""
-#: builtin.c:1739
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr ""
-#: builtin.c:1744
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr ""
-#: builtin.c:1756
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr ""
-#: builtin.c:1761
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr ""
-#: builtin.c:1786
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr ""
-#: builtin.c:1802
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr ""
-#: builtin.c:1810
+#: builtin.c:1826
#, c-format
msgid ""
"substr: length %g at start index %g exceeds length of first argument (%lu)"
msgstr ""
-#: builtin.c:1884
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr ""
-#: builtin.c:1907
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr ""
-#: builtin.c:1911
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr ""
-#: builtin.c:1918
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr ""
-#: builtin.c:1925
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr ""
-#: builtin.c:1991
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr ""
-#: builtin.c:2008
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr ""
-#: builtin.c:2043
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr ""
-#: builtin.c:2048
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr ""
-#: builtin.c:2168
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr ""
-#: builtin.c:2255
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr ""
-#: builtin.c:2289
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr ""
-#: builtin.c:2325 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr ""
-#: builtin.c:2327 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr ""
-#: builtin.c:2346
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr ""
-#: builtin.c:2362
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr ""
-#: builtin.c:2415 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr ""
-#: builtin.c:2446
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr ""
-#: builtin.c:2718
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr ""
-#: builtin.c:3014
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr ""
-#: builtin.c:3016
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr ""
-#: builtin.c:3022
+#: builtin.c:3038
#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr ""
-#: builtin.c:3024
+#: builtin.c:3040
#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr ""
-#: builtin.c:3026
+#: builtin.c:3042
#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr ""
-#: builtin.c:3051
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr ""
-#: builtin.c:3053
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr ""
-#: builtin.c:3059
+#: builtin.c:3075
#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr ""
-#: builtin.c:3061
+#: builtin.c:3077
#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr ""
-#: builtin.c:3063
+#: builtin.c:3079
#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr ""
-#: builtin.c:3088 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
msgid "and: called with less than two arguments"
msgstr ""
-#: builtin.c:3093
+#: builtin.c:3109
#, c-format
msgid "and: argument %d is non-numeric"
msgstr ""
-#: builtin.c:3097
+#: builtin.c:3113
#, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr ""
-#: builtin.c:3120 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
msgid "or: called with less than two arguments"
msgstr ""
-#: builtin.c:3125
+#: builtin.c:3141
#, c-format
msgid "or: argument %d is non-numeric"
msgstr ""
-#: builtin.c:3129
+#: builtin.c:3145
#, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr ""
-#: builtin.c:3151 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
msgid "xor: called with less than two arguments"
msgstr ""
-#: builtin.c:3157
+#: builtin.c:3173
#, c-format
msgid "xor: argument %d is non-numeric"
msgstr ""
-#: builtin.c:3161
+#: builtin.c:3177
#, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr ""
-#: builtin.c:3186 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr ""
-#: builtin.c:3192
+#: builtin.c:3208
#, c-format
msgid "compl(%f): negative value will give strange results"
msgstr ""
-#: builtin.c:3194
+#: builtin.c:3210
#, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr ""
-#: builtin.c:3363
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr ""
@@ -1736,40 +1736,40 @@ msgstr ""
msgid "No symbol `%s' in current context"
msgstr ""
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1191
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr ""
-#: dfa.c:1052
+#: dfa.c:1174
msgid "invalid character class"
msgstr ""
-#: dfa.c:1228
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
-#: dfa.c:1280
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr ""
-#: dfa.c:1427 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr ""
-#: dfa.c:1430 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr ""
-#: dfa.c:1847
+#: dfa.c:1936
msgid "unbalanced ("
msgstr ""
-#: dfa.c:1973
+#: dfa.c:2062
msgid "no syntax specified"
msgstr ""
-#: dfa.c:1981
+#: dfa.c:2070
msgid "unbalanced )"
msgstr ""
@@ -2254,16 +2254,16 @@ msgstr ""
msgid "chr: called with inappropriate argument(s)"
msgstr ""
-#: extension/readdir.c:277
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr ""
-#: extension/readfile.c:84
+#: extension/readfile.c:113
msgid "readfile: called with too many arguments"
msgstr ""
-#: extension/readfile.c:118
+#: extension/readfile.c:137
msgid "readfile: called with no arguments"
msgstr ""
@@ -2315,27 +2315,27 @@ msgstr ""
msgid "read_array: set_array_element failed\n"
msgstr ""
-#: extension/time.c:106
+#: extension/time.c:113
msgid "gettimeofday: ignoring arguments"
msgstr ""
-#: extension/time.c:137
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr ""
-#: extension/time.c:158
+#: extension/time.c:165
msgid "sleep: called with too many arguments"
msgstr ""
-#: extension/time.c:161
+#: extension/time.c:168
msgid "sleep: missing required numeric argument"
msgstr ""
-#: extension/time.c:167
+#: extension/time.c:174
msgid "sleep: argument is negative"
msgstr ""
-#: extension/time.c:201
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr ""
@@ -2428,20 +2428,20 @@ msgstr ""
msgid "node_to_awk_value: received null val"
msgstr ""
-#: gawkapi.c:808
+#: gawkapi.c:807
msgid "remove_element: received null array"
msgstr ""
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr ""
-#: gawkapi.c:948
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr ""
-#: gawkapi.c:953
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr ""
diff --git a/po/it.gmo b/po/it.gmo
index a81bb172..73f46395 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index bd4b64c7..68f2d7f0 100644
--- a/po/it.po
+++ b/po/it.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU Awk 4.0.73, API: 0.0\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2014-01-15 10:40+0100\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2014-01-15 10:39+0100\n"
"Last-Translator: Antonio Colombo <azc100@gmail.com>\n"
"Language-Team: Italian <it@li.org>\n"
@@ -34,8 +34,8 @@ msgstr "tentativo di usare il parametro scalare `%s' come un vettore"
msgid "attempt to use scalar `%s' as an array"
msgstr "tentativo di usare scalare '%s' come vettore"
-#: array.c:409 array.c:576 builtin.c:85 builtin.c:1599 builtin.c:1645
-#: builtin.c:1658 builtin.c:2086 builtin.c:2100 eval.c:1122 eval.c:1126
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
@@ -141,11 +141,11 @@ msgstr "valori di `case' doppi all'interno di uno `switch': %s"
msgid "duplicate `default' detected in switch body"
msgstr "valori di default doppi all'interno di uno `switch'"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr "`break' non consentito fuori da un ciclo o da uno `switch'"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "`continue' non consentito fuori da un un ciclo"
@@ -236,271 +236,271 @@ msgstr ""
msgid "invalid subscript expression"
msgstr "espressione indice invalida"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:126
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "attenzione: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:158
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "fatale: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "carattere 'a capo' o fine stringa non previsti"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:523 debug.c:539
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "non riesco ad aprire file sorgente `%s' in lettura (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "non riesco ad aprire shared library `%s' in lettura (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:135 debug.c:5206
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "ragione indeterminata"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr "non riesco a includere `%s' per usarlo come file di programma"
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "file sorgente `%s' gi incluso"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, c-format
msgid "already loaded shared library `%s'"
msgstr "shared library `%s' gi inclusa"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "@include un'estensione gawk"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "nome-file mancante dopo @include"
-#: awkgram.y:2470
+#: awkgram.y:2494
msgid "@load is a gawk extension"
msgstr "@load un'estensione gawk"
-#: awkgram.y:2476
+#: awkgram.y:2500
msgid "empty filename after @load"
msgstr "nome-file mancante dopo @include"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "programma nullo sulla riga comandi"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "non riesco a leggere file sorgente `%s' (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "file sorgente `%s' vuoto"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "file sorgente non termina con carattere 'a capo'"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr "espressione regolare non completata termina con `\\' a fine file"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr ""
"%s: %d: modificatore di espressione regolare tawk `/.../%c' non valido in "
"gawk"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "modificatore di espressione regolare tawk `/.../%c' non valido in gawk"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "espressione regolare non completata"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "espressione regolare non completata a fine file"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr "uso di `\\ #...' continuazione riga non portabile"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "'\\' non l'ultimo carattere della riga"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX non permette l'operatore `**='"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "il vecchio awk non supporta l'operatore `**='"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX non permette l'operatore `**'"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "il vecchio awk non supporta l'operatore `**'"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "l'operatore `^=' non supportato nel vecchio awk"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "l'operatore `^' non supportato nel vecchio awk"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "stringa non terminata"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "carattere '%c' non valido in un'espressione"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "`%s' un'estensione gawk"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX non permette `%s'"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "`%s' non supportato nel vecchio awk"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "`goto' considerato pericoloso!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d non valido come numero di argomenti per %s"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
msgstr "%s: una stringa come ultimo argomento di `substitute' non ha effetto"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "il terzo parametro di '%s' non un oggetto modificabile"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: il terzo argomento un'estensione gawk"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: il secondo argomento un'estensione gawk"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
"uso scorretto di dcgettext(_\"...\"): togliere il carattere '_' iniziale"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
"uso scorretto di dcngettext(_\"...\"): togliere il carattere '_' iniziale"
-#: awkgram.y:3992
+#: awkgram.y:4016
msgid "index: regexp constant as second argument is not allowed"
msgstr "index: espressione regolare come secondo argomento non consentita"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "funzione `%s': parametro `%s' nasconde variabile globale"
-#: awkgram.y:4102 debug.c:4041 debug.c:4084 debug.c:5204
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "non riesco ad aprire `%s' in scrittura (%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "mando lista variabili a 'standard error'"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: `close' non riuscita (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() chiamata due volte!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "c'erano variabili nascoste."
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "funzione di nome `%s' definita in precedenza"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr ""
"funzione `%s': non possibile usare nome della funzione come nome parametro"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
msgstr ""
"funzione `%s': non possibile usare la variabile speciale `%s' come "
"parametro di funzione"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "funzione `%s': parametro #%d, `%s', duplica parametro #%d"
-#: awkgram.y:4359 awkgram.y:4365
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "funzione `%s' chiamata ma mai definita"
-#: awkgram.y:4369
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "funzione `%s' definita ma mai chiamata direttamente"
-#: awkgram.y:4401
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr ""
"espressione regolare di valore costante per parametro #%d genera valore "
"booleano"
-#: awkgram.y:4460
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -509,23 +509,23 @@ msgstr ""
"funzione `%s' chiamata con spazio tra il nome e `(',\n"
"o usata come variabile o vettore"
-#: awkgram.y:4696
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "tentativo di dividere per zero"
-#: awkgram.y:4705
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "tentativo di dividere per zero in `%%'"
-#: awkgram.y:5025
+#: awkgram.y:5049
msgid ""
"cannot assign a value to the result of a field post-increment expression"
msgstr ""
"impossibile assegnare un valore al risultato di un'espressione di post-"
"incremento di un campo"
-#: awkgram.y:5028
+#: awkgram.y:5052
#, c-format
msgid "invalid target of assignment (opcode %s)"
msgstr "destinazione di assegnazione non valida (codice operativo %s)"
@@ -639,116 +639,116 @@ msgstr "fatale: `$' non consentito dopo il punto in un `format'"
msgid "fatal: no `$' supplied for positional field width or precision"
msgstr "fatale: manca `$' per i campi posizionali larghezza o precisione"
-#: builtin.c:1011
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "`l' non ha senso nei `format' awk; ignorato"
-#: builtin.c:1015
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "fatale: `l' non consentito nei `format' POSIX awk"
-#: builtin.c:1028
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "`L' non ha senso nei `format' awk; ignorato"
-#: builtin.c:1032
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "`L' non ha senso nei `format' awk; ignorato"
-#: builtin.c:1045
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "`h' non ha senso nei `format' awk; ignorato"
-#: builtin.c:1049
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "fatale: `h' non consentito nei `format' POSIX awk"
-#: builtin.c:1447
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf: valore %g fuori intervallo per il `format' `%%%c'"
-#: builtin.c:1545
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
msgstr ""
"carattere di `format' sconosciuto `%c' ignorato: nessun argomento convertito"
-#: builtin.c:1550
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr ""
"fatale: argomenti in numero minore di quelli richiesti dalla stringa di "
"`format'"
-#: builtin.c:1552
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "^ esauriti a questo punto"
-#: builtin.c:1559
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: specifica di `format' senza un carattere di controllo"
-#: builtin.c:1562
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "troppi argomenti specificati per questa stringa di `format'"
-#: builtin.c:1618
+#: builtin.c:1634
msgid "sprintf: no arguments"
msgstr "sprintf: nessun argomento"
-#: builtin.c:1641 builtin.c:1652
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: nessun argomento"
-#: builtin.c:1695
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: argomento non-numerico"
-#: builtin.c:1699
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: chiamata con argomento negativo %g"
-#: builtin.c:1730
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: lunghezza %g non >= 1"
-#: builtin.c:1732
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: lunghezza %g non >= 0"
-#: builtin.c:1739
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: lunghezza non intera %g: sar troncata"
-#: builtin.c:1744
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr "substr: lunghezza %g troppo elevata per indice stringa, tronco a %g"
-#: builtin.c:1756
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: indice di partenza %g non valido, uso 1"
-#: builtin.c:1761
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr "substr: indice di partenza non intero %g: sar troncato"
-#: builtin.c:1786
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: stringa di partenza lunga zero"
-#: builtin.c:1802
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: indice di partenza %g oltre la fine della stringa"
-#: builtin.c:1810
+#: builtin.c:1826
#, c-format
msgid ""
"substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -756,187 +756,187 @@ msgstr ""
"substr: lunghezza %g all'indice di partenza %g supera la lunghezza del primo "
"argomento (%lu)"
-#: builtin.c:1884
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr ""
"strftime: il valore del `format' in PROCINFO[\"strftime\"] di tipo numerico"
-#: builtin.c:1907
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: secondo argomento non-numerico"
-#: builtin.c:1911
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr "strftime: secondo argomento < 0 o troppo elevato per time_t"
-#: builtin.c:1918
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: il primo argomento non una stringa"
-#: builtin.c:1925
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: `format' una stringa nulla"
-#: builtin.c:1991
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: l'argomento non una stringa"
-#: builtin.c:2008
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr "mktime: almeno un valore fuori dall'intervallo di default"
-#: builtin.c:2043
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "funzione 'system' non consentita in modo `sandbox'"
-#: builtin.c:2048
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: l'argomento non una stringa"
-#: builtin.c:2168
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "riferimento a variabile non inizializzata `$%d'"
-#: builtin.c:2255
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: l'argomento non una stringa"
-#: builtin.c:2289
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: l'argomento non una stringa"
-#: builtin.c:2325 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: primo argomento non-numerico"
-#: builtin.c:2327 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: secondo argomento non-numerico"
-#: builtin.c:2346
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: argomento non-numerico"
-#: builtin.c:2362
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: argomento non-numerico"
-#: builtin.c:2415 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: argomento non-numerico"
-#: builtin.c:2446
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: terzo argomento non-vettoriale"
-#: builtin.c:2718
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: il terzo argomento 0, trattato come 1"
-#: builtin.c:3014
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: primo argomento non-numerico"
-#: builtin.c:3016
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: secondo argomento non-numerico"
-#: builtin.c:3022
+#: builtin.c:3038
#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr "lshift(%f, %f): valori negativi daranno risultati strani"
-#: builtin.c:3024
+#: builtin.c:3040
#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%f, %f): valori decimali saranno troncati"
-#: builtin.c:3026
+#: builtin.c:3042
#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr "lshift(%f, %f): valori troppo alti daranno risultati strani"
-#: builtin.c:3051
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: primo argomento ricevuto non-numerico"
-#: builtin.c:3053
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: secondo argomento non-numerico"
-#: builtin.c:3059
+#: builtin.c:3075
#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr "rshift(%f, %f): valori negativi daranno risultati strani"
-#: builtin.c:3061
+#: builtin.c:3077
#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%f, %f): valori decimali saranno troncati"
-#: builtin.c:3063
+#: builtin.c:3079
#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr "rshift(%f, %f): valori troppo alti daranno risultati strani"
-#: builtin.c:3088 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
msgid "and: called with less than two arguments"
msgstr "and: chiamata con meno di due argomenti"
-#: builtin.c:3093
+#: builtin.c:3109
#, c-format
msgid "and: argument %d is non-numeric"
msgstr "and: argomento %d non-numerico"
-#: builtin.c:3097
+#: builtin.c:3113
#, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr "and: argomento %d, valore negativo %g dar risultati strani"
-#: builtin.c:3120 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
msgid "or: called with less than two arguments"
msgstr "or: chiamata con meno di due argomenti"
-#: builtin.c:3125
+#: builtin.c:3141
#, c-format
msgid "or: argument %d is non-numeric"
msgstr "or: argomento %d non-numerico"
-#: builtin.c:3129
+#: builtin.c:3145
#, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr "or: argomento %d, valore negativo %g dar risultati strani"
-#: builtin.c:3151 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
msgid "xor: called with less than two arguments"
msgstr "xor: chiamata con meno di due argomenti"
-#: builtin.c:3157
+#: builtin.c:3173
#, c-format
msgid "xor: argument %d is non-numeric"
msgstr "xor: argomento %d non-numerico"
-#: builtin.c:3161
+#: builtin.c:3177
#, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor: argomento %d, valore negativo %g dar risultati strani"
-#: builtin.c:3186 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: argomento non-numerico"
-#: builtin.c:3192
+#: builtin.c:3208
#, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%f): valore negativo, dar risultati strani"
-#: builtin.c:3194
+#: builtin.c:3210
#, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%f): valori decimali saranno troncati"
-#: builtin.c:3363
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: `%s' non una categoria `locale' valida"
@@ -1063,8 +1063,8 @@ msgstr "clear [[nome-file:]N|funzione] - togli breakpoint impostati prima."
#: command.y:823
msgid ""
-"commands [num] - starts a list of commands to be executed at a breakpoint"
-"(watchpoint) hit."
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
msgstr ""
"commands [num] - inizia una lista di comandi da eseguire se si raggiunge un "
"breakpoint (watchpoint)."
@@ -1812,40 +1812,40 @@ msgstr "`return' non consentito nel contesto corrente; istruzione ignorata"
msgid "No symbol `%s' in current context"
msgstr "Simbolo `%s' non esiste nel contesto corrente"
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1191
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr "[ non chiusa"
-#: dfa.c:1052
+#: dfa.c:1174
msgid "invalid character class"
msgstr "character class non valida"
-#: dfa.c:1228
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "sintassi character class [[:spazio:]], non [:spazio:]"
-#: dfa.c:1280
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr "sequenza escape \\ non completa"
-#: dfa.c:1427 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Contenuto di \\{\\} non valido"
-#: dfa.c:1430 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "Espressione regolare troppo complessa"
-#: dfa.c:1847
+#: dfa.c:1936
msgid "unbalanced ("
msgstr "( non chiusa"
-#: dfa.c:1973
+#: dfa.c:2062
msgid "no syntax specified"
msgstr "nessuna sintassi specificata"
-#: dfa.c:1981
+#: dfa.c:2070
msgid "unbalanced )"
msgstr ") non aperta"
@@ -2341,16 +2341,16 @@ msgstr "chr: chiamata senza argomenti"
msgid "chr: called with inappropriate argument(s)"
msgstr "chr: chiamata con argomento/i non corretto/i"
-#: extension/readdir.c:277
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr "dir_take_control_of: opendir/fdopendir non riuscita: %s"
-#: extension/readfile.c:84
+#: extension/readfile.c:113
msgid "readfile: called with too many arguments"
msgstr "readfile: chiamata con troppi argomenti"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
msgid "readfile: called with no arguments"
msgstr "readfile: chiamata senza argomenti"
@@ -2402,27 +2402,27 @@ msgstr "do_reada: clear_array non riuscita\n"
msgid "read_array: set_array_element failed\n"
msgstr "read_array: set_array_element non riuscita\n"
-#: extension/time.c:106
+#: extension/time.c:113
msgid "gettimeofday: ignoring arguments"
msgstr "gettimeofday: ignoro argomenti"
-#: extension/time.c:137
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr "gettimeofday: non supportato in questa architettura"
-#: extension/time.c:158
+#: extension/time.c:165
msgid "sleep: called with too many arguments"
msgstr "sleep: chiamata con troppi argomenti"
-#: extension/time.c:161
+#: extension/time.c:168
msgid "sleep: missing required numeric argument"
msgstr "sleep: manca necessario argomento numerico"
-#: extension/time.c:167
+#: extension/time.c:174
msgid "sleep: argument is negative"
msgstr "sleep: l'argomento negativo"
-#: extension/time.c:201
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr "sleep: non supportato in questa architettura"
@@ -2525,20 +2525,20 @@ msgstr "node_to_awk_value: ricevuto nodo nullo"
msgid "node_to_awk_value: received null val"
msgstr "node_to_awk_value: ricevuto valore nullo"
-#: gawkapi.c:808
+#: gawkapi.c:807
msgid "remove_element: received null array"
msgstr "remove_element: ricevuto vettore nullo"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr "remove_element: ricevuto indice nullo"
-#: gawkapi.c:948
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr "api_flatten_array: non sono riuscito a convertire l'indice %d\n"
-#: gawkapi.c:953
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr "api_flatten_array: non sono riuscito a convertire il valore %d\n"
diff --git a/po/ja.gmo b/po/ja.gmo
index faca679e..d1ef30cc 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 756f3548..ae5b61c8 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk 4.0.0\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2013-05-09 16:05+0300\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2011-07-17 08:28+0900\n"
"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -18,85 +18,85 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: array.c:254
+#: array.c:256
#, c-format
msgid "from %s"
msgstr "%s から"
-#: array.c:354
+#: array.c:357
msgid "attempt to use a scalar value as array"
msgstr "スカラー値を配列として使用する試みです"
-#: array.c:356
+#: array.c:359
#, c-format
msgid "attempt to use scalar parameter `%s' as an array"
msgstr "スカラー仮引数 `%s' を配列として使用する試みです"
-#: array.c:359
+#: array.c:362
#, c-format
msgid "attempt to use scalar `%s' as an array"
msgstr "スカラー `%s' を配列として使用する試みです"
-#: array.c:406 array.c:573 builtin.c:85 builtin.c:1591 builtin.c:1637
-#: builtin.c:1650 builtin.c:2078 builtin.c:2092 eval.c:1121 eval.c:1125
-#: eval.c:1524
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
+#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
msgstr "スカラーコンテキストで配列 `%s' を使用する試みです"
-#: array.c:580
+#: array.c:583
#, c-format
msgid "delete: index `%s' not in array `%s'"
msgstr "delete: 配列 `%2$s' 内にインデックス `%1$s' がありません"
-#: array.c:594
+#: array.c:597
#, c-format
msgid "attempt to use scalar `%s[\"%.*s\"]' as an array"
msgstr "スカラー `%s[\"%.*s\"]' を配列として使用する試みです"
-#: array.c:773
+#: array.c:776
#, fuzzy
msgid "adump: first argument not an array"
msgstr "adump: 引数が配列ではありません"
-#: array.c:812
+#: array.c:815
msgid "asort: second argument not an array"
msgstr "asort: 第二引数が配列ではありません"
-#: array.c:813
+#: array.c:816
msgid "asorti: second argument not an array"
msgstr "asorti: 第二引数が配列ではありません"
-#: array.c:820
+#: array.c:823
msgid "asort: first argument not an array"
msgstr "asort: 第一引数が配列ではありません"
-#: array.c:821
+#: array.c:824
msgid "asorti: first argument not an array"
msgstr "asorti: 第一引数が配列ではありません"
-#: array.c:828
+#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
msgstr "asort: 第一引数の部分配列を第二引数用に使用することは出来ません"
-#: array.c:829
+#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
msgstr "asorti: 第一引数の部分配列を第二引数用に使用することは出来ません"
-#: array.c:834
+#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
msgstr "asort: 第二引数の部分配列を第一引数用に使用することは出来ません"
-#: array.c:835
+#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
msgstr "asorti: 第二引数の部分配列を第一引数用に使用することは出来ません"
-#: array.c:1309
+#: array.c:1314
#, c-format
msgid "`%s' is invalid as a function name"
msgstr "`%s' は関数名としては無効です"
-#: array.c:1313
+#: array.c:1318
#, c-format
msgid "sort comparison function `%s' is not defined"
msgstr "ソート比較関数 `%s' が定義されていません"
@@ -137,11 +137,11 @@ msgstr "switch 文の中で重複した case 値が使用されています: %s"
msgid "duplicate `default' detected in switch body"
msgstr "switch 文の中で重複した `default' が検出されました"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr "`break' はループまたは switch の外では許可されていません"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "`continue' はループの外では許可されていません"
@@ -231,269 +231,269 @@ msgstr "特別な変数 `%s' は間接関数呼び出し用には使用出来ま
msgid "invalid subscript expression"
msgstr "添字の式が無効です"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:119
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "警告: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:151
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "致命的: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "予期しない改行または文字列終端です"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:517 debug.c:533
-#: debug.c:2792 debug.c:5040
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
+#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "ソースファイル `%s' を読み込み用に開けません (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, fuzzy, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "ソースファイル `%s' を読み込み用に開けません (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:130 debug.c:5191
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "原因不明"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr ""
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "ソースファイル `%s' は既に読み込まれています"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, fuzzy, c-format
msgid "already loaded shared library `%s'"
msgstr "ソースファイル `%s' は既に読み込まれています"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "@include は gawk 拡張です"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "@include の後に空のファイル名があります"
-#: awkgram.y:2470
+#: awkgram.y:2494
#, fuzzy
msgid "@load is a gawk extension"
msgstr "@include は gawk 拡張です"
-#: awkgram.y:2476
+#: awkgram.y:2500
#, fuzzy
msgid "empty filename after @load"
msgstr "@include の後に空のファイル名があります"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "コマンド行のプログラム表記が空です"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "ソースファイル `%s' を読み込めません (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "ソースファイル `%s' は空です"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "ソースファイルが改行で終っていません"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr "終端されていない正規表現がファイル最後の `\\' で終っています。"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "%s: %d: tawk の正規表現修飾子 `/.../%c' は gawk で使用できません"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "tawk の正規表現修飾子 `/.../%c' は gawk で使用できません"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "正規表現が終端されていません"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "ファイルの中で正規表現が終端されていません"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr "`\\ #...' 形式の行継続は移植性がありません"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "バックスラッシュが行最後の文字になっていません。"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX では演算子 `**=' は許可されていません"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "古い awk は演算子 `**=' をサポートしません"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX では演算子 `**' は許可されていません"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "古い awk は演算子 `**' をサポートしません"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "古い awk は演算子 `^=' をサポートしません"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "古い awk は演算子 `^' をサポートしません"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "文字列が終端されていません"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "式内に無効な文字 '%c' があります"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "`%s' は gawk 拡張です"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX では `%s' は許可されていません"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "古い awk は `%s' をサポートしません"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "`goto' は有害だと見なされています!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d は %s 用の引数の数としては無効です"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
msgstr "%s: 文字列リテラルを置き換え最後の引数に使用すると効果がありません"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "%s 第三仮引数は可変オブジェクトではありません"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: 第三引数は gawk 拡張です"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: 第二引数は gawk 拡張です"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
"dcgettext(_\"...\")の使用法が間違っています: 先頭のアンダースコア(_)を削除し"
"てください"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
"dcngettext(_\"...\")の使用法が間違っています: 先頭のアンダースコア(_)を削除し"
"てください"
-#: awkgram.y:3992
+#: awkgram.y:4016
#, fuzzy
msgid "index: regexp constant as second argument is not allowed"
msgstr "index: 文字列では無い第二引数を受け取りました"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "関数 `%s': 仮引数 `%s' が大域変数を覆い隠しています"
-#: awkgram.y:4102 debug.c:4021 debug.c:4064 debug.c:5189
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "`%s' を書込み用に開けませんでした (%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "変数リストを標準エラーに送っています"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: 閉じるのに失敗しました (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() を二回呼び出しています!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "覆い隠された変数がありました"
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "関数名 `%s' は前に定義されています"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr "関数 `%s': 関数名を仮引数名として使用出来ません"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
msgstr "関数 `%s': 特別な変数 `%s' は関数の仮引数として使用出来ません"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "関数 `%s': 仮引数 #%d, `%s' が仮引数 #%d と重複しています"
-#: awkgram.y:4366 awkgram.y:4372
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "未定義の関数 `%s' を呼び出しました"
-#: awkgram.y:4376
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "関数 `%s' は定義されていますが、一度も直接呼び出されていません"
-#: awkgram.y:4408
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr "仮引数 #%d 用の正規表現定数は真偽値を出力します"
-#: awkgram.y:4467
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -502,235 +502,245 @@ msgstr ""
"関数名と `(' の間にスペースを入れて関数 `%s' を呼び出しています。\n"
"または、変数か配列として使われています。"
-#: awkgram.y:4703
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "ゼロによる除算が試みられました"
-#: awkgram.y:4712
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "`%%' 内でゼロによる除算が試みられました"
-#: builtin.c:128
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
+msgstr ""
+
+#: awkgram.y:5052
+#, fuzzy, c-format
+msgid "invalid target of assignment (opcode %s)"
+msgstr "%d は %s 用の引数の数としては無効です"
+
+#: builtin.c:133
#, c-format
msgid "%s to \"%s\" failed (%s)"
msgstr "%s から \"%s\" へ出力できません (%s)。"
-#: builtin.c:129
+#: builtin.c:134
msgid "standard output"
msgstr "標準出力"
-#: builtin.c:143
+#: builtin.c:148
msgid "exp: received non-numeric argument"
msgstr "exp: 引数が数値ではありません"
-#: builtin.c:149
+#: builtin.c:154
#, c-format
msgid "exp: argument %g is out of range"
msgstr "exp: 引数 %g が範囲外です"
-#: builtin.c:224
+#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
msgstr ""
"fflush: flush できません: パイプ `%s' は読み込み用に開かれています。書き込み"
"用ではありません"
-#: builtin.c:227
+#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
msgstr ""
"fflush: flush できません: ファイル `%s' は読み込み用に開かれています。書き込"
"み用ではありません"
-#: builtin.c:239
+#: builtin.c:244
#, c-format
msgid "fflush: `%s' is not an open file, pipe or co-process"
msgstr "fflush: `%s' が開かれたファイル、パイプ、プロセス共有ではありません"
-#: builtin.c:357
+#: builtin.c:362
msgid "index: received non-string first argument"
msgstr "index: 文字列では無い第一引数を受け取りました"
-#: builtin.c:359
+#: builtin.c:364
msgid "index: received non-string second argument"
msgstr "index: 文字列では無い第二引数を受け取りました"
-#: builtin.c:483 mpfr.c:757
+#: builtin.c:488 mpfr.c:757
msgid "int: received non-numeric argument"
msgstr "int: 数値では無い引数を受け取りました"
-#: builtin.c:520
+#: builtin.c:525
msgid "length: received array argument"
msgstr "length: 配列引数を受け取りました"
-#: builtin.c:523
+#: builtin.c:528
msgid "`length(array)' is a gawk extension"
msgstr "`length(array)' は gawk 拡張です"
-#: builtin.c:539
+#: builtin.c:544
msgid "length: received non-string argument"
msgstr "length: 文字列では無い引数を受け取りました"
-#: builtin.c:570
+#: builtin.c:575
msgid "log: received non-numeric argument"
msgstr "log: 数値では無い引数を受け取りました"
-#: builtin.c:573
+#: builtin.c:578
#, c-format
msgid "log: received negative argument %g"
msgstr "log: 負の引数 %g を受け取りました"
-#: builtin.c:771 builtin.c:776
+#: builtin.c:776 builtin.c:781
msgid "fatal: must use `count$' on all formats or none"
msgstr ""
"致命的: `count$’ は全ての書式使用する、または全てに使用しないのいずれかでなけ"
"ればいけません"
-#: builtin.c:846
+#: builtin.c:851
#, c-format
msgid "field width is ignored for `%%' specifier"
msgstr "`%%' 指定用のフィールド幅は無視されます"
-#: builtin.c:848
+#: builtin.c:853
#, c-format
msgid "precision is ignored for `%%' specifier"
msgstr "`%%' 指定用のフィールド幅は無視されます"
-#: builtin.c:850
+#: builtin.c:855
#, c-format
msgid "field width and precision are ignored for `%%' specifier"
msgstr "`%%' 指定用のフィールド幅および精度は無視されます"
-#: builtin.c:901
+#: builtin.c:906
msgid "fatal: `$' is not permitted in awk formats"
msgstr "致命的: `$' は awk 形式内では許可されていません"
-#: builtin.c:910
+#: builtin.c:915
msgid "fatal: arg count with `$' must be > 0"
msgstr "致命的: `$' で指定する引数の番号は正でなければいけません"
-#: builtin.c:914
+#: builtin.c:919
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
msgstr "致命的: 引数の番号 %ld は引数として与えられた数より大きいです"
-#: builtin.c:918
+#: builtin.c:923
msgid "fatal: `$' not permitted after period in format"
msgstr "致命的: `$' は書式指定内のピリオド `.' の後に使用できません"
-#: builtin.c:934
+#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
msgstr "致命的: フィールド幅、または精度の指定子に `$' が与えられていません"
-#: builtin.c:1006
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "awk の書式指定では `l' は無意味です。無視します"
-#: builtin.c:1010
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "致命的: POSIX awk 書式内では `l' は許可されていません"
-#: builtin.c:1023
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "awk の書式指定では `L' は無意味です。無視します。"
-#: builtin.c:1027
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "致命的: POSIX awk 書式内では `L' は許可されていません"
-#: builtin.c:1040
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "awk の書式指定では `h' は無意味です。無視します。"
-#: builtin.c:1044
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "致命的: POSIX awk 書式内では `h' は許可されていません"
-#: builtin.c:1439
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf: 値 %g は書式 `%%%c' の範囲外です"
-#: builtin.c:1537
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
msgstr "不明な書式指定文字 `%c' を無視しています: 変換される引数はありません"
-#: builtin.c:1542
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr "致命的: 書式文字列を満たす十分な数の引数がありません"
-#: builtin.c:1544
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "^ ここから足りません"
-#: builtin.c:1551
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: 書式指定子に制御文字がありません"
-#: builtin.c:1554
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "書式文字列に与えられている引数が多すぎます"
-#: builtin.c:1610
+#: builtin.c:1634
#, fuzzy
msgid "sprintf: no arguments"
msgstr "printf: 引数がありません"
-#: builtin.c:1633 builtin.c:1644
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: 引数がありません"
-#: builtin.c:1687
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: 数値では無い引数を受け取りました"
-#: builtin.c:1691
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: builtin.c:1722
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: 長さ %g が 1 以上ではありません"
-#: builtin.c:1724
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: 長さ %g が 0 以上ではありません"
-#: builtin.c:1731
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: 文字数 %g の小数点以下は切り捨てます。"
-#: builtin.c:1736
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr "substr: 文字数 %g は最大値を超えています。%g を使います。"
-#: builtin.c:1748
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: 開始インデックス %g が無効です。1を使用します"
-#: builtin.c:1753
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr "substr: 開始インデックス %g が非整数のため、値は切り捨てられます"
-#: builtin.c:1778
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: 文字列の長さがゼロです。"
-#: builtin.c:1794
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: 開始インデックス %g が文字列終端の後にあります"
-#: builtin.c:1802
+#: builtin.c:1826
#, c-format
msgid ""
"substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -738,189 +748,189 @@ msgstr ""
"substr: 開始インデックス %2$g からの長さ %1$g は第一引数の長さを超えています "
"(%3$lu)"
-#: builtin.c:1876
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr "strftime: PROCINFO[\"strftime\"] の書式の値は数値型です"
-#: builtin.c:1899
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: 非数値の第二引数を受け取りました"
-#: builtin.c:1903
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr ""
-#: builtin.c:1910
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: 非文字列の第一引数を受け取りました"
-#: builtin.c:1917
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: 空の書式文字列を受け取りました"
-#: builtin.c:1983
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: 非文字列引数を受け取りました"
-#: builtin.c:2000
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr "mktime: 一つ以上の値がデフォルトの範囲を超えています"
-#: builtin.c:2035
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "サンドボックスモードでは 'system' 関数は許可されていません"
-#: builtin.c:2040
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: 文字列では無い引数を受け取りました"
-#: builtin.c:2160
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "初期化されていないフィールド `$%d' への参照です"
-#: builtin.c:2247
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: 非文字列引数を受け取りました"
-#: builtin.c:2281
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: 非文字列引数を受け取りました"
-#: builtin.c:2317 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: 非数値の第一引数を受け取りました"
-#: builtin.c:2319 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: 非数値の第二引数を受け取りました"
-#: builtin.c:2338
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: 非数値の引数を受け取りました"
-#: builtin.c:2354
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: 非数値の引数を受け取りました"
-#: builtin.c:2407 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: 非数値の引数を受け取りました"
-#: builtin.c:2438
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: 第三引数が配列ではありません"
-#: builtin.c:2710
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: 第三引数が 0 です。1 を代わりに使用します"
-#: builtin.c:3003
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: 非数値の第一引数を受け取りました"
-#: builtin.c:3005
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: 非数値の第二引数を受け取りました"
-#: builtin.c:3011
+#: builtin.c:3038
#, fuzzy, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr "lshift(%lf, %lf): 負の数値を使用すると異常な結果になります"
-#: builtin.c:3013
+#: builtin.c:3040
#, fuzzy, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%lf, %lf): 小数点以下は切り捨てられます"
-#: builtin.c:3015
+#: builtin.c:3042
#, fuzzy, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr "lshift(%lf, %lf): シフト値が大き過ぎると異常な結果になります"
-#: builtin.c:3040
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: 非数値の第一引数を受け取りました"
-#: builtin.c:3042
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: 非数値の第二引数を受け取りました"
-#: builtin.c:3048
+#: builtin.c:3075
#, fuzzy, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr "rshift(%lf, %lf): 負の数値を使用すると異常な結果になります"
-#: builtin.c:3050
+#: builtin.c:3077
#, fuzzy, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%lf, %lf): 小数点以下は切り捨てられます"
-#: builtin.c:3052
+#: builtin.c:3079
#, fuzzy, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr "rshift(%lf, %lf): シフト値が大き過ぎると異常な結果になります"
-#: builtin.c:3077 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
#, fuzzy
msgid "and: called with less than two arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: builtin.c:3082
+#: builtin.c:3109
#, fuzzy, c-format
msgid "and: argument %d is non-numeric"
msgstr "exp: 引数 %g が範囲外です"
-#: builtin.c:3086
+#: builtin.c:3113
#, fuzzy, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr "and(%lf, %lf): 負の数値を使用すると異常な結果になります"
-#: builtin.c:3109 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
#, fuzzy
msgid "or: called with less than two arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: builtin.c:3114
+#: builtin.c:3141
#, fuzzy, c-format
msgid "or: argument %d is non-numeric"
msgstr "exp: 引数 %g が範囲外です"
-#: builtin.c:3118
+#: builtin.c:3145
#, fuzzy, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr "compl(%lf): 負の数値を使用すると異常な結果になります"
-#: builtin.c:3140 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
#, fuzzy
msgid "xor: called with less than two arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: builtin.c:3146
+#: builtin.c:3173
#, fuzzy, c-format
msgid "xor: argument %d is non-numeric"
msgstr "exp: 引数 %g が範囲外です"
-#: builtin.c:3150
+#: builtin.c:3177
#, fuzzy, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor(%lf, %lf): 負の数値を使用すると異常な結果になります"
-#: builtin.c:3175 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: 非数値の引数を受け取りました"
-#: builtin.c:3181
+#: builtin.c:3208
#, fuzzy, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%lf): 負の数値を使用すると異常な結果になります"
-#: builtin.c:3183
+#: builtin.c:3210
#, fuzzy, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%lf): 小数点以下は切り捨てられます"
-#: builtin.c:3352
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: `%s' は無効なロケール区分です"
@@ -1044,8 +1054,8 @@ msgstr ""
#: command.y:823
msgid ""
-"commands [num] - starts a list of commands to be executed at a breakpoint"
-"(watchpoint) hit."
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
msgstr ""
#: command.y:825
@@ -1202,7 +1212,7 @@ msgstr ""
msgid "watch var - set a watchpoint for a variable."
msgstr ""
-#: command.y:1011 debug.c:395 msg.c:128
+#: command.y:1011 debug.c:401 msg.c:135
#, c-format
msgid "error: "
msgstr "エラー: "
@@ -1242,557 +1252,557 @@ msgstr "無効な照合文字です"
msgid "undefined command: %s\n"
msgstr ""
-#: debug.c:246
+#: debug.c:252
msgid "set or show the number of lines to keep in history file."
msgstr ""
-#: debug.c:248
+#: debug.c:254
msgid "set or show the list command window size."
msgstr ""
-#: debug.c:250
+#: debug.c:256
msgid "set or show gawk output file."
msgstr ""
-#: debug.c:252
+#: debug.c:258
msgid "set or show debugger prompt."
msgstr ""
-#: debug.c:254
+#: debug.c:260
msgid "(un)set or show saving of command history (value=on|off)."
msgstr ""
-#: debug.c:256
+#: debug.c:262
msgid "(un)set or show saving of options (value=on|off)."
msgstr ""
-#: debug.c:258
+#: debug.c:264
msgid "(un)set or show instruction tracing (value=on|off)."
msgstr ""
-#: debug.c:339
+#: debug.c:345
msgid "program not running."
msgstr ""
-#: debug.c:442 debug.c:597
+#: debug.c:448 debug.c:606
#, fuzzy, c-format
msgid "can't read source file `%s' (%s)"
msgstr "ソースファイル `%s' を読み込めません (%s)"
-#: debug.c:447
+#: debug.c:453
#, fuzzy, c-format
msgid "source file `%s' is empty.\n"
msgstr "ソースファイル `%s' は空です"
-#: debug.c:474
+#: debug.c:480
msgid "no current source file."
msgstr ""
-#: debug.c:499
+#: debug.c:505
#, fuzzy, c-format
msgid "cannot find source file named `%s' (%s)"
msgstr "ソースファイル `%s' を読み込めません (%s)"
-#: debug.c:523
+#: debug.c:529
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
msgstr ""
-#: debug.c:542
+#: debug.c:551
#, c-format
msgid "line number %d out of range; `%s' has %d lines"
msgstr ""
-#: debug.c:602
+#: debug.c:611
#, fuzzy, c-format
msgid "unexpected eof while reading file `%s', line %d"
msgstr "予期しない改行または文字列終端です"
-#: debug.c:611
+#: debug.c:620
#, c-format
msgid "source file `%s' modified since start of program execution"
msgstr ""
-#: debug.c:723
+#: debug.c:732
#, fuzzy, c-format
msgid "Current source file: %s\n"
msgstr "ソースファイル `%s' は既に読み込まれています"
-#: debug.c:724
+#: debug.c:733
#, c-format
msgid "Number of lines: %d\n"
msgstr ""
-#: debug.c:731
+#: debug.c:740
#, c-format
msgid "Source file (lines): %s (%d)\n"
msgstr ""
-#: debug.c:745
+#: debug.c:754
msgid ""
"Number Disp Enabled Location\n"
"\n"
msgstr ""
-#: debug.c:756
+#: debug.c:765
#, c-format
msgid "\tno of hits = %ld\n"
msgstr ""
-#: debug.c:758
+#: debug.c:767
#, c-format
msgid "\tignore next %ld hit(s)\n"
msgstr ""
-#: debug.c:760 debug.c:900
+#: debug.c:769 debug.c:909
#, c-format
msgid "\tstop condition: %s\n"
msgstr ""
-#: debug.c:762 debug.c:902
+#: debug.c:771 debug.c:911
msgid "\tcommands:\n"
msgstr ""
-#: debug.c:784
+#: debug.c:793
#, c-format
msgid "Current frame: "
msgstr ""
-#: debug.c:787
+#: debug.c:796
#, c-format
msgid "Called by frame: "
msgstr ""
-#: debug.c:791
+#: debug.c:800
#, c-format
msgid "Caller of frame: "
msgstr ""
-#: debug.c:809
+#: debug.c:818
#, c-format
msgid "None in main().\n"
msgstr ""
-#: debug.c:839
+#: debug.c:848
#, fuzzy
msgid "No arguments.\n"
msgstr "printf: 引数がありません"
-#: debug.c:840
+#: debug.c:849
msgid "No locals.\n"
msgstr ""
-#: debug.c:848
+#: debug.c:857
msgid ""
"All defined variables:\n"
"\n"
msgstr ""
-#: debug.c:858
+#: debug.c:867
msgid ""
"All defined functions:\n"
"\n"
msgstr ""
-#: debug.c:877
+#: debug.c:886
msgid ""
"Auto-display variables:\n"
"\n"
msgstr ""
-#: debug.c:880
+#: debug.c:889
msgid ""
"Watch variables:\n"
"\n"
msgstr ""
-#: debug.c:1020
+#: debug.c:1029
#, fuzzy, c-format
msgid "no symbol `%s' in current context\n"
msgstr "`next' は `%s' から呼び出すことが出来ません"
-#: debug.c:1032 debug.c:1418
+#: debug.c:1041 debug.c:1427
#, fuzzy, c-format
msgid "`%s' is not an array\n"
msgstr "`%s' は不正な変数名です"
-#: debug.c:1046
+#: debug.c:1055
#, fuzzy, c-format
msgid "$%ld = uninitialized field\n"
msgstr "初期化されていないフィールド `$%d' への参照です"
-#: debug.c:1067
+#: debug.c:1076
#, fuzzy, c-format
msgid "array `%s' is empty\n"
msgstr "データファイル `%s' は空です。"
-#: debug.c:1110 debug.c:1162
+#: debug.c:1119 debug.c:1171
#, fuzzy, c-format
msgid "[\"%s\"] not in array `%s'\n"
msgstr "delete: 配列 `%2$s' 内にインデックス `%1$s' がありません"
-#: debug.c:1166
+#: debug.c:1175
#, c-format
msgid "`%s[\"%s\"]' is not an array\n"
msgstr ""
-#: debug.c:1227 debug.c:4949
+#: debug.c:1236 debug.c:4964
#, fuzzy, c-format
msgid "`%s' is not a scalar variable"
msgstr "`%s' は不正な変数名です"
-#: debug.c:1249 debug.c:4979
+#: debug.c:1258 debug.c:4994
#, fuzzy, c-format
msgid "attempt to use array `%s[\"%s\"]' in a scalar context"
msgstr "スカラーコンテキスト内で配列 `%s[\"%.*s\"]' の使用の試みです"
-#: debug.c:1271 debug.c:4990
+#: debug.c:1280 debug.c:5005
#, fuzzy, c-format
msgid "attempt to use scalar `%s[\"%s\"]' as array"
msgstr "スカラー `%s[\"%.*s\"]' を配列として使用する試みです"
-#: debug.c:1414
+#: debug.c:1423
#, fuzzy, c-format
msgid "`%s' is a function"
msgstr "`%s' は関数名としては無効です"
-#: debug.c:1456
+#: debug.c:1465
#, c-format
msgid "watchpoint %d is unconditional\n"
msgstr ""
-#: debug.c:1490
+#: debug.c:1499
#, c-format
msgid "No display item numbered %ld"
msgstr ""
-#: debug.c:1493
+#: debug.c:1502
#, c-format
msgid "No watch item numbered %ld"
msgstr ""
-#: debug.c:1519
+#: debug.c:1528
#, fuzzy, c-format
msgid "%d: [\"%s\"] not in array `%s'\n"
msgstr "delete: 配列 `%2$s' 内にインデックス `%1$s' がありません"
-#: debug.c:1758
+#: debug.c:1767
#, fuzzy
msgid "attempt to use scalar value as array"
msgstr "スカラー値を配列として使用する試みです"
-#: debug.c:1847
+#: debug.c:1856
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1858
+#: debug.c:1867
#, c-format
msgid "Display %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1891
+#: debug.c:1900
#, c-format
msgid " in file `%s', line %d\n"
msgstr ""
-#: debug.c:1912
+#: debug.c:1921
#, c-format
msgid " at `%s':%d"
msgstr ""
-#: debug.c:1928 debug.c:1991
+#: debug.c:1937 debug.c:2000
#, c-format
msgid "#%ld\tin "
msgstr ""
-#: debug.c:1965
+#: debug.c:1974
#, c-format
msgid "More stack frames follow ...\n"
msgstr ""
-#: debug.c:2008
+#: debug.c:2017
#, fuzzy
msgid "invalid frame number"
msgstr "無効な範囲終了です"
-#: debug.c:2180
+#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2187
+#: debug.c:2207
#, c-format
msgid "Note: breakpoint %d (enabled), also set at %s:%d"
msgstr ""
-#: debug.c:2194
+#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2201
+#: debug.c:2221
#, c-format
msgid "Note: breakpoint %d (disabled), also set at %s:%d"
msgstr ""
-#: debug.c:2218
+#: debug.c:2238
#, c-format
msgid "Breakpoint %d set at file `%s', line %d\n"
msgstr ""
-#: debug.c:2320
+#: debug.c:2340
#, c-format
msgid "Can't set breakpoint in file `%s'\n"
msgstr ""
-#: debug.c:2349 debug.c:2472 debug.c:3330
+#: debug.c:2369 debug.c:2492 debug.c:3350
#, fuzzy, c-format
msgid "line number %d in file `%s' out of range"
msgstr "exp: 引数 %g が範囲外です"
-#: debug.c:2353
+#: debug.c:2373
#, c-format
msgid "Can't find rule!!!\n"
msgstr ""
-#: debug.c:2355
+#: debug.c:2375
#, c-format
msgid "Can't set breakpoint at `%s':%d\n"
msgstr ""
-#: debug.c:2367
+#: debug.c:2387
#, c-format
msgid "Can't set breakpoint in function `%s'\n"
msgstr ""
-#: debug.c:2383
+#: debug.c:2403
#, c-format
msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
msgstr ""
-#: debug.c:2488 debug.c:2510
+#: debug.c:2508 debug.c:2530
#, c-format
msgid "Deleted breakpoint %d"
msgstr ""
-#: debug.c:2494
+#: debug.c:2514
#, c-format
msgid "No breakpoint(s) at entry to function `%s'\n"
msgstr ""
-#: debug.c:2521
+#: debug.c:2541
#, fuzzy, c-format
msgid "No breakpoint at file `%s', line #%d\n"
msgstr "入力ファイル `%s' を読み込み中にエラーが発生しました: %s"
-#: debug.c:2576 debug.c:2617 debug.c:2637 debug.c:2680
+#: debug.c:2596 debug.c:2637 debug.c:2657 debug.c:2700
msgid "invalid breakpoint number"
msgstr ""
-#: debug.c:2592
+#: debug.c:2612
msgid "Delete all breakpoints? (y or n) "
msgstr ""
-#: debug.c:2593 debug.c:2903 debug.c:2956
+#: debug.c:2613 debug.c:2923 debug.c:2976
msgid "y"
msgstr ""
-#: debug.c:2642
+#: debug.c:2662
#, c-format
msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n"
msgstr ""
-#: debug.c:2646
+#: debug.c:2666
#, c-format
msgid "Will stop next time breakpoint %d is reached.\n"
msgstr ""
-#: debug.c:2763
+#: debug.c:2783
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
msgstr ""
-#: debug.c:2888
+#: debug.c:2908
#, c-format
msgid "Failed to restart debugger"
msgstr ""
-#: debug.c:2902
+#: debug.c:2922
msgid "Program already running. Restart from beginning (y/n)? "
msgstr ""
-#: debug.c:2906
+#: debug.c:2926
#, c-format
msgid "Program not restarted\n"
msgstr ""
-#: debug.c:2916
+#: debug.c:2936
#, c-format
msgid "error: cannot restart, operation not allowed\n"
msgstr ""
-#: debug.c:2922
+#: debug.c:2942
#, c-format
msgid "error (%s): cannot restart, ignoring rest of the commands\n"
msgstr ""
-#: debug.c:2930
+#: debug.c:2950
#, c-format
msgid "Starting program: \n"
msgstr ""
-#: debug.c:2939
+#: debug.c:2959
#, c-format
msgid "Program exited %s with exit value: %d\n"
msgstr ""
-#: debug.c:2955
+#: debug.c:2975
msgid "The program is running. Exit anyway (y/n)? "
msgstr ""
-#: debug.c:2990
+#: debug.c:3010
#, c-format
msgid "Not stopped at any breakpoint; argument ignored.\n"
msgstr ""
-#: debug.c:2995
+#: debug.c:3015
#, c-format
msgid "invalid breakpoint number %d."
msgstr ""
-#: debug.c:3000
+#: debug.c:3020
#, c-format
msgid "Will ignore next %ld crossings of breakpoint %d.\n"
msgstr ""
-#: debug.c:3187
+#: debug.c:3207
#, c-format
msgid "'finish' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3192
+#: debug.c:3212
#, c-format
msgid "Run till return from "
msgstr ""
-#: debug.c:3235
+#: debug.c:3255
#, c-format
msgid "'return' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3349
+#: debug.c:3369
#, c-format
msgid "Can't find specified location in function `%s'\n"
msgstr ""
-#: debug.c:3357
+#: debug.c:3377
#, fuzzy, c-format
msgid "invalid source line %d in file `%s'"
msgstr "ソースファイル `%s' は既に読み込まれています"
-#: debug.c:3372
+#: debug.c:3392
#, c-format
msgid "Can't find specified location %d in file `%s'\n"
msgstr ""
-#: debug.c:3404
+#: debug.c:3424
#, fuzzy, c-format
msgid "element not in array\n"
msgstr "delete: 配列 `%2$s' 内にインデックス `%1$s' がありません"
-#: debug.c:3404
+#: debug.c:3424
#, c-format
msgid "untyped variable\n"
msgstr ""
-#: debug.c:3446
+#: debug.c:3466
#, c-format
msgid "Stopping in %s ...\n"
msgstr ""
-#: debug.c:3523
+#: debug.c:3543
#, c-format
msgid "'finish' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:3530
+#: debug.c:3550
#, c-format
msgid "'until' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:4165
+#: debug.c:4185
msgid "\t------[Enter] to continue or q [Enter] to quit------"
msgstr ""
-#: debug.c:4166
+#: debug.c:4186
msgid "q"
msgstr ""
-#: debug.c:4986
+#: debug.c:5001
#, fuzzy, c-format
msgid "[\"%s\"] not in array `%s'"
msgstr "delete: 配列 `%2$s' 内にインデックス `%1$s' がありません"
-#: debug.c:5192
+#: debug.c:5207
#, c-format
msgid "sending output to stdout\n"
msgstr ""
-#: debug.c:5232
+#: debug.c:5247
msgid "invalid number"
msgstr ""
-#: debug.c:5366
+#: debug.c:5381
#, fuzzy, c-format
msgid "`%s' not allowed in current context; statement ignored"
msgstr "`next' は `%s' から呼び出すことが出来ません"
-#: debug.c:5374
+#: debug.c:5389
#, fuzzy
msgid "`return' not allowed in current context; statement ignored"
msgstr "`next' は `%s' から呼び出すことが出来ません"
-#: debug.c:5575
+#: debug.c:5590
#, c-format
msgid "No symbol `%s' in current context"
msgstr ""
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1192
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr ""
-#: dfa.c:1052
+#: dfa.c:1174
#, fuzzy
msgid "invalid character class"
msgstr "無効な文字クラス名です"
-#: dfa.c:1229
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
-#: dfa.c:1281
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr ""
-#: dfa.c:1428 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "\\{\\} の中身が無効です"
-#: dfa.c:1431 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "正規表現が大きすぎます"
-#: dfa.c:1816
+#: dfa.c:1936
msgid "unbalanced ("
msgstr ""
-#: dfa.c:1943
+#: dfa.c:2062
msgid "no syntax specified"
msgstr ""
-#: dfa.c:1951
+#: dfa.c:2070
msgid "unbalanced )"
msgstr ""
@@ -1811,11 +1821,11 @@ msgstr "不明なオペコード %d です"
msgid "opcode %s not an operator or keyword"
msgstr "オペコード %s は演算子または予約語ではありません"
-#: eval.c:471
+#: eval.c:472
msgid "buffer overflow in genflags2str"
msgstr "genflags2str 内でバッファオーバーフローが発生しました"
-#: eval.c:674
+#: eval.c:675
#, c-format
msgid ""
"\n"
@@ -1826,71 +1836,71 @@ msgstr ""
"\t# 呼出関数スタック:\n"
"\n"
-#: eval.c:703
+#: eval.c:704
msgid "`IGNORECASE' is a gawk extension"
msgstr "`IGNORECASE' は gawk 拡張です"
-#: eval.c:735
+#: eval.c:736
msgid "`BINMODE' is a gawk extension"
msgstr "`BINMODE' は gawk 拡張です"
-#: eval.c:793
+#: eval.c:794
#, c-format
msgid "BINMODE value `%s' is invalid, treated as 3"
msgstr "BINMODE 値 `%s' は無効です。代わりに 3 を使用します"
-#: eval.c:884
+#: eval.c:885
#, c-format
msgid "bad `%sFMT' specification `%s'"
msgstr "誤った `%sFMT' 指定 `%s' です"
-#: eval.c:968
+#: eval.c:969
msgid "turning off `--lint' due to assignment to `LINT'"
msgstr "`LINT' への代入に従い `--lint' を無効にします"
-#: eval.c:1146
+#: eval.c:1147
#, c-format
msgid "reference to uninitialized argument `%s'"
msgstr "初期化されていない引数 `%s' への参照です"
-#: eval.c:1147
+#: eval.c:1148
#, c-format
msgid "reference to uninitialized variable `%s'"
msgstr "初期化されていない変数 `%s' への参照です"
-#: eval.c:1165
+#: eval.c:1166
msgid "attempt to field reference from non-numeric value"
msgstr "非数値を使用したフイールド参照の試みです"
-#: eval.c:1167
+#: eval.c:1168
msgid "attempt to field reference from null string"
msgstr "NULL 文字列を使用してフィールドの参照を試みています"
-#: eval.c:1175
+#: eval.c:1176
#, c-format
msgid "attempt to access field %ld"
msgstr "フィールド %ld へのアクセスの試みです"
-#: eval.c:1184
+#: eval.c:1185
#, c-format
msgid "reference to uninitialized field `$%ld'"
msgstr "初期化されていないフィールド `$%ld' への参照です"
-#: eval.c:1271
+#: eval.c:1272
#, c-format
msgid "function `%s' called with more arguments than declared"
msgstr "宣言されている数より多い引数を使って関数 `%s' を呼び出しました"
-#: eval.c:1466
+#: eval.c:1473
#, c-format
msgid "unwind_stack: unexpected type `%s'"
msgstr "unwind_stack: 予期しない型 `%s' です"
-#: eval.c:1562
+#: eval.c:1569
msgid "division by zero attempted in `/='"
msgstr "`/=' 内でゼロによる除算が行われました"
-#: eval.c:1569
+#: eval.c:1576
#, c-format
msgid "division by zero attempted in `%%='"
msgstr "`%%=' 内でゼロによる除算が行われました"
@@ -1904,7 +1914,7 @@ msgstr "サンドボックスモード内では拡張は許可されていませ
msgid "-l / @load are gawk extensions"
msgstr "@include は gawk 拡張です"
-#: ext.c:95 ext.c:177
+#: ext.c:95
msgid "load_ext: received NULL lib_name"
msgstr ""
@@ -1937,6 +1947,10 @@ msgstr ""
msgid "`extension' is a gawk extension"
msgstr "`extension' は gawk 拡張です"
+#: ext.c:177
+msgid "extension: received NULL lib_name"
+msgstr ""
+
#: ext.c:180
#, fuzzy, c-format
msgid "extension: cannot open library `%s' (%s)"
@@ -1962,37 +1976,37 @@ msgstr ""
msgid "make_builtin: missing function name"
msgstr "extension: 関数名がありません"
-#: ext.c:238
+#: ext.c:236
#, fuzzy, c-format
msgid "make_builtin: can't redefine function `%s'"
msgstr "extension: 関数 `%s' を再定義できません"
-#: ext.c:242
+#: ext.c:240
#, fuzzy, c-format
msgid "make_builtin: function `%s' already defined"
msgstr "extension: 関数 `%s' は既に定義されています"
-#: ext.c:246
+#: ext.c:244
#, fuzzy, c-format
msgid "make_builtin: function name `%s' previously defined"
msgstr "extension: 関数名 `%s' は前に定義されています"
-#: ext.c:248
+#: ext.c:246
#, fuzzy, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
msgstr "extension: gawk に組み込まれている `%s' は関数名として使用出来ません"
-#: ext.c:251 ext.c:304
+#: ext.c:249 ext.c:304
#, c-format
msgid "make_builtin: negative argument count for function `%s'"
msgstr "make_builtin: 関数 `%s' の引数の数が負です"
-#: ext.c:278
+#: ext.c:276
#, fuzzy
msgid "extension: missing function name"
msgstr "extension: 関数名がありません"
-#: ext.c:283
+#: ext.c:279 ext.c:283
#, fuzzy, c-format
msgid "extension: illegal character `%c' in function name `%s'"
msgstr "extension: 関数名 `%2$s' の中で不正な文字 `%1$c' が使用されています"
@@ -2017,153 +2031,158 @@ msgstr "関数名 `%s' は前に定義されています"
msgid "extension: can't use gawk built-in `%s' as function name"
msgstr "extension: gawk に組み込まれている `%s' は関数名として使用出来ません"
-#: ext.c:374
+#: ext.c:375
#, c-format
msgid "function `%s' defined to take no more than %d argument(s)"
msgstr "関数 `%s' に使える引数の数は `%d' 以下と定義されています"
-#: ext.c:377
+#: ext.c:378
#, c-format
msgid "function `%s': missing argument #%d"
msgstr "関数 `%s': 引数 #%d がありません"
-#: ext.c:394
+#: ext.c:395
#, c-format
msgid "function `%s': argument #%d: attempt to use scalar as an array"
msgstr "関数 `%s': 引数 #%d: スカラーを配列として使用する試みです"
-#: ext.c:398
+#: ext.c:399
#, c-format
msgid "function `%s': argument #%d: attempt to use array as a scalar"
msgstr "関数 `%s': 引数 #%d: 配列をスカラーとして使用する試みです"
-#: ext.c:412
+#: ext.c:413
msgid "dynamic loading of library not supported"
msgstr ""
-#: extension/filefuncs.c:97
+#: extension/filefuncs.c:159
#, fuzzy
msgid "chdir: called with incorrect number of arguments, expecting 1"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/filefuncs.c:343
+#: extension/filefuncs.c:439
#, c-format
msgid "stat: unable to read symbolic link `%s'"
msgstr ""
-#: extension/filefuncs.c:376
+#: extension/filefuncs.c:472
#, fuzzy
msgid "stat: called with wrong number of arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/filefuncs.c:383
+#: extension/filefuncs.c:479
#, fuzzy
msgid "stat: bad parameters"
msgstr "%s: 仮引数です\n"
-#: extension/filefuncs.c:437
+#: extension/filefuncs.c:533
#, fuzzy, c-format
msgid "fts init: could not create variable %s"
msgstr "index: 文字列では無い第二引数を受け取りました"
-#: extension/filefuncs.c:460
+#: extension/filefuncs.c:554
+#, fuzzy
+msgid "fts is not supported on this system"
+msgstr "古い awk は `%s' をサポートしません"
+
+#: extension/filefuncs.c:573
msgid "fill_stat_element: could not create array"
msgstr ""
-#: extension/filefuncs.c:469
+#: extension/filefuncs.c:582
msgid "fill_stat_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:484
+#: extension/filefuncs.c:597
#, fuzzy
msgid "fill_path_element: could not set element"
msgstr "index: 文字列では無い第二引数を受け取りました"
-#: extension/filefuncs.c:500
+#: extension/filefuncs.c:613
msgid "fill_error_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:547 extension/filefuncs.c:594
+#: extension/filefuncs.c:660 extension/filefuncs.c:707
msgid "fts-process: could not create array"
msgstr ""
-#: extension/filefuncs.c:557 extension/filefuncs.c:604
-#: extension/filefuncs.c:622
+#: extension/filefuncs.c:670 extension/filefuncs.c:717
+#: extension/filefuncs.c:735
#, fuzzy
msgid "fts-process: could not set element"
msgstr "index: 文字列では無い第二引数を受け取りました"
-#: extension/filefuncs.c:671
+#: extension/filefuncs.c:784
#, fuzzy
msgid "fts: called with incorrect number of arguments, expecting 3"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/filefuncs.c:674
+#: extension/filefuncs.c:787
#, fuzzy
msgid "fts: bad first parameter"
msgstr "%s: 仮引数です\n"
-#: extension/filefuncs.c:680
+#: extension/filefuncs.c:793
#, fuzzy
msgid "fts: bad second parameter"
msgstr "%s: 仮引数です\n"
-#: extension/filefuncs.c:686
+#: extension/filefuncs.c:799
#, fuzzy
msgid "fts: bad third parameter"
msgstr "%s: 仮引数です\n"
-#: extension/filefuncs.c:693
+#: extension/filefuncs.c:806
#, fuzzy
msgid "fts: could not flatten array\n"
msgstr "`%s' は不正な変数名です"
-#: extension/filefuncs.c:711
+#: extension/filefuncs.c:824
msgid "fts: ignoring sneaky FTS_NOSTAT flag. nyah, nyah, nyah."
msgstr ""
-#: extension/filefuncs.c:728
+#: extension/filefuncs.c:841
msgid "fts: clear_array() failed\n"
msgstr ""
-#: extension/fnmatch.c:98
+#: extension/fnmatch.c:112
#, fuzzy
msgid "fnmatch: called with less than three arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/fnmatch.c:101
+#: extension/fnmatch.c:115
#, fuzzy
msgid "fnmatch: called with more than three arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/fnmatch.c:104
+#: extension/fnmatch.c:118
#, fuzzy
msgid "fnmatch: could not get first argument"
msgstr "strftime: 非文字列の第一引数を受け取りました"
-#: extension/fnmatch.c:109
+#: extension/fnmatch.c:123
#, fuzzy
msgid "fnmatch: could not get second argument"
msgstr "index: 文字列では無い第二引数を受け取りました"
-#: extension/fnmatch.c:114
+#: extension/fnmatch.c:128
msgid "fnmatch: could not get third argument"
msgstr ""
-#: extension/fnmatch.c:127
+#: extension/fnmatch.c:141
msgid "fnmatch is not implemented on this system\n"
msgstr ""
-#: extension/fnmatch.c:159
+#: extension/fnmatch.c:173
msgid "fnmatch init: could not add FNM_NOMATCH variable"
msgstr ""
-#: extension/fnmatch.c:169
+#: extension/fnmatch.c:183
#, c-format
msgid "fnmatch init: could not set array element %s"
msgstr ""
-#: extension/fnmatch.c:179
+#: extension/fnmatch.c:193
msgid "fnmatch init: could not install FNM array"
msgstr ""
@@ -2191,88 +2210,88 @@ msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
msgid "wait: called with too many arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/inplace.c:110
+#: extension/inplace.c:130
msgid "inplace_begin: in-place editing already active"
msgstr ""
-#: extension/inplace.c:113 extension/inplace.c:187
+#: extension/inplace.c:133 extension/inplace.c:207
#, c-format
msgid "inplace_begin: expects 2 arguments but called with %d"
msgstr ""
-#: extension/inplace.c:116
+#: extension/inplace.c:136
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
msgstr ""
-#: extension/inplace.c:124
+#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
msgstr ""
-#: extension/inplace.c:131
+#: extension/inplace.c:151
#, fuzzy, c-format
msgid "inplace_begin: Cannot stat `%s' (%s)"
msgstr "致命的: extension: `%s' を開くことが出来ません (%s)\n"
-#: extension/inplace.c:138
+#: extension/inplace.c:158
#, fuzzy, c-format
msgid "inplace_begin: `%s' is not a regular file"
msgstr "`%s' は不正な変数名です"
-#: extension/inplace.c:149
+#: extension/inplace.c:169
#, c-format
msgid "inplace_begin: mkstemp(`%s') failed (%s)"
msgstr ""
-#: extension/inplace.c:158
+#: extension/inplace.c:178
#, fuzzy, c-format
msgid "inplace_begin: chmod failed (%s)"
msgstr "%s: 閉じるのに失敗しました (%s)"
-#: extension/inplace.c:165
+#: extension/inplace.c:185
#, c-format
msgid "inplace_begin: dup(stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:168
+#: extension/inplace.c:188
#, c-format
msgid "inplace_begin: dup2(%d, stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:171
+#: extension/inplace.c:191
#, fuzzy, c-format
msgid "inplace_begin: close(%d) failed (%s)"
msgstr "%s: 閉じるのに失敗しました (%s)"
-#: extension/inplace.c:190
+#: extension/inplace.c:210
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
msgstr ""
-#: extension/inplace.c:197
+#: extension/inplace.c:217
msgid "inplace_end: in-place editing not active"
msgstr ""
-#: extension/inplace.c:203
+#: extension/inplace.c:223
#, c-format
msgid "inplace_end: dup2(%d, stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:206
+#: extension/inplace.c:226
#, fuzzy, c-format
msgid "inplace_end: close(%d) failed (%s)"
msgstr "%s: 閉じるのに失敗しました (%s)"
-#: extension/inplace.c:210
+#: extension/inplace.c:230
#, c-format
msgid "inplace_end: fsetpos(stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:223
+#: extension/inplace.c:243
#, fuzzy, c-format
msgid "inplace_end: link(`%s', `%s') failed (%s)"
msgstr "パイプ `%s' をフラッシュできません (%s)。"
-#: extension/inplace.c:229
+#: extension/inplace.c:253
#, fuzzy, c-format
msgid "inplace_end: rename(`%s', `%s') failed (%s)"
msgstr "fd %d (`%s') を閉じることができません (%s)"
@@ -2307,173 +2326,173 @@ msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
msgid "chr: called with inappropriate argument(s)"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/readdir.c:203
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr ""
-#: extension/readfile.c:84
+#: extension/readfile.c:113
#, fuzzy
msgid "readfile: called with too many arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
#, fuzzy
msgid "readfile: called with no arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/rwarray.c:120
+#: extension/rwarray.c:124
#, fuzzy
msgid "writea: called with too many arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/rwarray.c:127
+#: extension/rwarray.c:131
#, fuzzy, c-format
msgid "do_writea: argument 0 is not a string\n"
msgstr "exp: 引数 %g が範囲外です"
-#: extension/rwarray.c:133
+#: extension/rwarray.c:137
#, fuzzy, c-format
msgid "do_writea: argument 1 is not an array\n"
msgstr "split: 第四引数が配列ではありません"
-#: extension/rwarray.c:180
+#: extension/rwarray.c:184
#, c-format
msgid "write_array: could not flatten array\n"
msgstr ""
-#: extension/rwarray.c:194
+#: extension/rwarray.c:198
#, c-format
msgid "write_array: could not release flattened array\n"
msgstr ""
-#: extension/rwarray.c:276
+#: extension/rwarray.c:280
#, fuzzy
msgid "reada: called with too many arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/rwarray.c:283
+#: extension/rwarray.c:287
#, fuzzy, c-format
msgid "do_reada: argument 0 is not a string\n"
msgstr "exp: 引数 %g が範囲外です"
-#: extension/rwarray.c:289
+#: extension/rwarray.c:293
#, fuzzy, c-format
msgid "do_reada: argument 1 is not an array\n"
msgstr "match: 第三引数が配列ではありません"
-#: extension/rwarray.c:333
+#: extension/rwarray.c:337
#, c-format
msgid "do_reada: clear_array failed\n"
msgstr ""
-#: extension/rwarray.c:370
+#: extension/rwarray.c:374
#, c-format
msgid "read_array: set_array_element failed\n"
msgstr ""
-#: extension/time.c:81
+#: extension/time.c:113
#, fuzzy
msgid "gettimeofday: ignoring arguments"
msgstr "mktime: 非文字列引数を受け取りました"
-#: extension/time.c:112
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr ""
-#: extension/time.c:133
+#: extension/time.c:165
#, fuzzy
msgid "sleep: called with too many arguments"
msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
-#: extension/time.c:136
+#: extension/time.c:168
#, fuzzy
msgid "sleep: missing required numeric argument"
msgstr "exp: 引数が数値ではありません"
-#: extension/time.c:142
+#: extension/time.c:174
#, fuzzy
msgid "sleep: argument is negative"
msgstr "exp: 引数 %g が範囲外です"
-#: extension/time.c:176
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr ""
-#: field.c:339
+#: field.c:345
msgid "NF set to negative value"
msgstr "NF が負の値に設定されています"
-#: field.c:964 field.c:971 field.c:975
+#: field.c:971 field.c:978 field.c:982
msgid "split: fourth argument is a gawk extension"
msgstr "split: 第四引数は gawk 拡張です"
-#: field.c:968
+#: field.c:975
msgid "split: fourth argument is not an array"
msgstr "split: 第四引数が配列ではありません"
-#: field.c:982
+#: field.c:989
msgid "split: second argument is not an array"
msgstr "split: 第二引数が配列ではありません"
-#: field.c:986
+#: field.c:993
msgid "split: cannot use the same array for second and fourth args"
msgstr "split: 第二引数と第四引数に同じ配列を使用することは出来ません"
-#: field.c:991
+#: field.c:998
msgid "split: cannot use a subarray of second arg for fourth arg"
msgstr "split: 第四引数に第二引数の部分配列を使用することは出来ません"
-#: field.c:994
+#: field.c:1001
msgid "split: cannot use a subarray of fourth arg for second arg"
msgstr "split: 第二引数に第四引数の部分配列を使用することは出来ません"
-#: field.c:1023
+#: field.c:1032
msgid "split: null string for third arg is a gawk extension"
msgstr "split: 第三引数に NULL 文字列を使用することは gawk 拡張です"
-#: field.c:1063
+#: field.c:1072
msgid "patsplit: fourth argument is not an array"
msgstr "patsplit: 第四引数が配列ではありません"
-#: field.c:1068
+#: field.c:1077
msgid "patsplit: second argument is not an array"
msgstr "patsplit: 第二引数が配列ではありません"
-#: field.c:1074
+#: field.c:1083
msgid "patsplit: third argument must be non-null"
msgstr "patsplit: 第三引数は非 NULL でなければいけません"
-#: field.c:1078
+#: field.c:1087
msgid "patsplit: cannot use the same array for second and fourth args"
msgstr "patsplit: 第二引数と第四引数に同じ配列を使用することは出来ません"
-#: field.c:1083
+#: field.c:1092
msgid "patsplit: cannot use a subarray of second arg for fourth arg"
msgstr "patsplit: 第四引数に第二引数の部分配列を使用することは出来ません"
-#: field.c:1086
+#: field.c:1095
msgid "patsplit: cannot use a subarray of fourth arg for second arg"
msgstr "patsplit: 第二引数に第四引数の部分配列を使用することは出来ません"
-#: field.c:1124
+#: field.c:1133
msgid "`FIELDWIDTHS' is a gawk extension"
msgstr "`FIELDWIDTHS' は gawk 拡張です"
-#: field.c:1188
+#: field.c:1197
#, c-format
msgid "invalid FIELDWIDTHS value, near `%s'"
msgstr "`%s' 付近の FIELDWIDTHS 値が無効です"
-#: field.c:1261
+#: field.c:1270
msgid "null string for `FS' is a gawk extension"
msgstr "`FS' に NULL 文字列を使用するのは gawk 拡張です"
-#: field.c:1265
+#: field.c:1274
msgid "old awk does not support regexps as value of `FS'"
msgstr "古い awk は `FS' の値として正規表現をサポートしません"
-#: field.c:1384
+#: field.c:1393
msgid "`FPAT' is a gawk extension"
msgstr "`FPAT' は gawk 拡張です"
@@ -2489,596 +2508,596 @@ msgstr ""
msgid "node_to_awk_value: received null val"
msgstr ""
-#: gawkapi.c:808
+#: gawkapi.c:807
#, fuzzy
msgid "remove_element: received null array"
msgstr "length: 配列引数を受け取りました"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr ""
-#: gawkapi.c:943
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr ""
-#: gawkapi.c:948
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr ""
-#: getopt.c:603 getopt.c:632
+#: getopt.c:604 getopt.c:633
#, fuzzy, c-format
msgid "%s: option '%s' is ambiguous; possibilities:"
msgstr "%s: オプション '%s' は曖昧です\n"
-#: getopt.c:678 getopt.c:682
+#: getopt.c:679 getopt.c:683
#, c-format
msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: オプション '--%s' は引数を取ることができません\n"
-#: getopt.c:691 getopt.c:696
+#: getopt.c:692 getopt.c:697
#, c-format
msgid "%s: option '%c%s' doesn't allow an argument\n"
msgstr "%s: オプション '%c%s' は引数を取ることができません\n"
-#: getopt.c:739 getopt.c:758
+#: getopt.c:740 getopt.c:759
#, c-format
msgid "%s: option '--%s' requires an argument\n"
msgstr "%s: オプション '--%s' には引数が必要です\n"
-#: getopt.c:796 getopt.c:799
+#: getopt.c:797 getopt.c:800
#, c-format
msgid "%s: unrecognized option '--%s'\n"
msgstr "%s: オプション '--%s' を認識できません\n"
-#: getopt.c:807 getopt.c:810
+#: getopt.c:808 getopt.c:811
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
msgstr "%s: オプション '%c%s' を認識できません\n"
-#: getopt.c:859 getopt.c:862
+#: getopt.c:860 getopt.c:863
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: 無効なオプション -- '%c'\n"
-#: getopt.c:915 getopt.c:932 getopt.c:1142 getopt.c:1160
+#: getopt.c:916 getopt.c:933 getopt.c:1143 getopt.c:1161
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: オプションには引数が必要です -- '%c'\n"
-#: getopt.c:988 getopt.c:1004
+#: getopt.c:989 getopt.c:1005
#, c-format
msgid "%s: option '-W %s' is ambiguous\n"
msgstr "%s: オプション '-W %s' は曖昧です\n"
-#: getopt.c:1028 getopt.c:1046
+#: getopt.c:1029 getopt.c:1047
#, c-format
msgid "%s: option '-W %s' doesn't allow an argument\n"
msgstr "%s: オプション '-W %s' は引数を取ることができません\n"
-#: getopt.c:1067 getopt.c:1085
+#: getopt.c:1068 getopt.c:1086
#, c-format
msgid "%s: option '-W %s' requires an argument\n"
msgstr "%s: オプション '-W %s' には引数が必要です\n"
-#: io.c:347
+#: io.c:392
#, c-format
msgid "command line argument `%s' is a directory: skipped"
msgstr "コマンドライン引数 `%s' はディレクトリです: スキップされました"
-#: io.c:350 io.c:463
+#: io.c:395 io.c:513
#, c-format
msgid "cannot open file `%s' for reading (%s)"
msgstr "ファイル `%s' を読み込み用に開けません (%s)"
-#: io.c:590
+#: io.c:640
#, c-format
msgid "close of fd %d (`%s') failed (%s)"
msgstr "fd %d (`%s') を閉じることができません (%s)"
-#: io.c:666
+#: io.c:716
msgid "redirection not allowed in sandbox mode"
msgstr "サンドボックスモード内ではリダイレクトは許可されていません"
-#: io.c:700
+#: io.c:750
#, c-format
msgid "expression in `%s' redirection only has numeric value"
msgstr "`%s' リダイレクトの命令式に数値しか記述されていません。"
-#: io.c:706
+#: io.c:756
#, c-format
msgid "expression for `%s' redirection has null string value"
msgstr "`%s' リダイレクトの命令式が空列です。"
-#: io.c:711
+#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
msgstr ""
"`%2$s' リダイレクトに論理演算の結果と思われるファイル名 `%1$s' が使われていま"
"す。"
-#: io.c:754
+#: io.c:809
#, c-format
msgid "unnecessary mixing of `>' and `>>' for file `%.*s'"
msgstr "ファイル `%.*s' で必要以上に `>' と `>>' を組合せています。"
-#: io.c:808
+#: io.c:863
#, c-format
msgid "can't open pipe `%s' for output (%s)"
msgstr "出力用にパイプ `%s' を開けません (%s)"
-#: io.c:818
+#: io.c:873
#, c-format
msgid "can't open pipe `%s' for input (%s)"
msgstr "入力用にパイプ `%s' を開けません (%s)"
-#: io.c:849
+#: io.c:904
#, c-format
msgid "can't open two way pipe `%s' for input/output (%s)"
msgstr "入出力用の双方向パイプ `%s' が開けません (%s)"
-#: io.c:928
+#: io.c:986
#, c-format
msgid "can't redirect from `%s' (%s)"
msgstr "`%s' からリダイレクトできません (%s)"
-#: io.c:931
+#: io.c:989
#, c-format
msgid "can't redirect to `%s' (%s)"
msgstr "`%s' にリダイレクトできません (%s)"
-#: io.c:982
+#: io.c:1040
msgid ""
"reached system limit for open files: starting to multiplex file descriptors"
msgstr ""
"開いているファイルの数がシステム制限に達しました。ファイル記述子を多重化しま"
"す。"
-#: io.c:998
+#: io.c:1056
#, c-format
msgid "close of `%s' failed (%s)."
msgstr "`%s' を閉じるのに失敗しました (%s)"
-#: io.c:1006
+#: io.c:1064
msgid "too many pipes or input files open"
msgstr "開いているパイプまたは入力ファイルの数が多過ぎます。"
-#: io.c:1028
+#: io.c:1086
msgid "close: second argument must be `to' or `from'"
msgstr "close: 第二引数は `to' または `from' でなければいけません"
-#: io.c:1045
+#: io.c:1103
#, c-format
msgid "close: `%.*s' is not an open file, pipe or co-process"
msgstr "close: `%.*s' は開いているファイル、パイプ、プロセス共有ではありません"
-#: io.c:1050
+#: io.c:1108
msgid "close of redirection that was never opened"
msgstr "開いてないリダイレクトを閉じようとしています"
-#: io.c:1147
+#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
msgstr ""
"close: リダイレクト `%s' は `|&' を使用して開かれていません。第二引数は無視さ"
"れました"
-#: io.c:1164
+#: io.c:1222
#, c-format
msgid "failure status (%d) on pipe close of `%s' (%s)"
msgstr "パイプ `%2$s' を閉じたときの状態コードが失敗 (%1$d) でした (%3$s)。"
-#: io.c:1167
+#: io.c:1225
#, c-format
msgid "failure status (%d) on file close of `%s' (%s)"
msgstr "ファイル `%2$s' を閉じたときの状態コードが失敗 (%1$d) でした (%3$s)。"
-#: io.c:1187
+#: io.c:1245
#, c-format
msgid "no explicit close of socket `%s' provided"
msgstr "ソケット `%s' を明示して閉じていません。"
-#: io.c:1190
+#: io.c:1248
#, c-format
msgid "no explicit close of co-process `%s' provided"
msgstr "並行プロセス `%s' を明示して閉じていません。"
-#: io.c:1193
+#: io.c:1251
#, c-format
msgid "no explicit close of pipe `%s' provided"
msgstr "パイプ `%s' を明示して閉じていません。"
-#: io.c:1196
+#: io.c:1254
#, c-format
msgid "no explicit close of file `%s' provided"
msgstr "ファイル `%s' を明示して閉じていません。"
-#: io.c:1224 io.c:1279 main.c:842 main.c:879
+#: io.c:1284 io.c:1342 main.c:864 main.c:906
#, c-format
msgid "error writing standard output (%s)"
msgstr "標準出力への書込みエラー (%s)"
-#: io.c:1228 io.c:1284
+#: io.c:1289 io.c:1348 main.c:866
#, c-format
msgid "error writing standard error (%s)"
msgstr "標準エラーへの書込みエラー (%s)"
-#: io.c:1236
+#: io.c:1297
#, c-format
msgid "pipe flush of `%s' failed (%s)."
msgstr "パイプ `%s' をフラッシュできません (%s)。"
-#: io.c:1239
+#: io.c:1300
#, c-format
msgid "co-process flush of pipe to `%s' failed (%s)."
msgstr "`%s' へ接続するパイプを並行プロセスからフラッシュできません (%s)。"
-#: io.c:1242
+#: io.c:1303
#, c-format
msgid "file flush of `%s' failed (%s)."
msgstr "ファイル `%s' をフラッシュできません (%s)。"
-#: io.c:1356
+#: io.c:1420
#, c-format
msgid "local port %s invalid in `/inet'"
msgstr "`/inet' 内のローカルポート %s が無効です"
-#: io.c:1374
+#: io.c:1438
#, c-format
msgid "remote host and port information (%s, %s) invalid"
msgstr "リモートのホストおよびポート情報 (%s, %s) が無効です"
-#: io.c:1526
+#: io.c:1590
#, c-format
msgid "no (known) protocol supplied in special filename `%s'"
msgstr ""
"スペシャルファイル名 `%s' に(認識できる)プロトコルが指定されていません"
-#: io.c:1540
+#: io.c:1604
#, c-format
msgid "special file name `%s' is incomplete"
msgstr "スペシャルファイル名 `%s' は不完全です"
-#: io.c:1557
+#: io.c:1621
msgid "must supply a remote hostname to `/inet'"
msgstr "`/inet' にはリモートホスト名を与えなければいけません"
-#: io.c:1575
+#: io.c:1639
msgid "must supply a remote port to `/inet'"
msgstr "`/inet' にはリモートポート番号を与えなければいけません"
-#: io.c:1621
+#: io.c:1685
msgid "TCP/IP communications are not supported"
msgstr "TCP/IP 通信はサポートされていません"
-#: io.c:1796
+#: io.c:1867
#, c-format
msgid "could not open `%s', mode `%s'"
msgstr "`%s' をモード `%s' で開けません"
-#: io.c:1846
+#: io.c:1917
#, c-format
msgid "close of master pty failed (%s)"
msgstr "マスター pty を閉じるのに失敗しました (%s)"
-#: io.c:1848 io.c:2024 io.c:2194
+#: io.c:1919 io.c:2105 io.c:2305
#, c-format
msgid "close of stdout in child failed (%s)"
msgstr "子プロセスが標準出力を閉じるのに失敗しました (%s)"
-#: io.c:1851
+#: io.c:1922
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
msgstr "子プロセスがスレーブ pty を標準出力に移動できません (dup: %s)。"
-#: io.c:1853 io.c:2029
+#: io.c:1924 io.c:2110
#, c-format
msgid "close of stdin in child failed (%s)"
msgstr "子プロセスが標準入力を閉じられません (%s)。"
-#: io.c:1856
+#: io.c:1927
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
msgstr "子プロセスがスレーブ pty を標準入力に移動できません (dup: %s)。"
-#: io.c:1858 io.c:1879
+#: io.c:1929 io.c:1951
#, c-format
msgid "close of slave pty failed (%s)"
msgstr "スレーブ pty を閉じるのに失敗しました (%s)"
-#: io.c:1965 io.c:2027 io.c:2171 io.c:2197
+#: io.c:2040 io.c:2108 io.c:2276 io.c:2308
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
msgstr "子プロセスがパイプを標準出力に移動できません (dup: %s)。"
-#: io.c:1972 io.c:2032
+#: io.c:2047 io.c:2113
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
msgstr "子プロセスがパイプを標準入力に移動できません (dup: %s)。"
-#: io.c:1992 io.c:2187
+#: io.c:2073 io.c:2298
msgid "restoring stdout in parent process failed\n"
msgstr "親プロセスが標準出力を復旧できません。\n"
-#: io.c:2000
+#: io.c:2081
msgid "restoring stdin in parent process failed\n"
msgstr "親プロセスが標準入力を復旧できません。\n"
-#: io.c:2035 io.c:2199 io.c:2213
+#: io.c:2116 io.c:2310 io.c:2324
#, c-format
msgid "close of pipe failed (%s)"
msgstr "パイプを閉じられません (%s)。"
-#: io.c:2089
+#: io.c:2174
msgid "`|&' not supported"
msgstr "`|&' は使用できません。"
-#: io.c:2156
+#: io.c:2261
#, c-format
msgid "cannot open pipe `%s' (%s)"
msgstr "パイプ `%s' が開けません (%s)。"
-#: io.c:2207
+#: io.c:2318
#, c-format
msgid "cannot create child process for `%s' (fork: %s)"
msgstr "`%s' 用の子プロセスを実行できません (fork: %s)。"
-#: io.c:2667
+#: io.c:2790
msgid "register_input_parser: received NULL pointer"
msgstr ""
-#: io.c:2695
+#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
msgstr ""
-#: io.c:2702
+#: io.c:2825
#, c-format
msgid "input parser `%s' failed to open `%s'"
msgstr ""
-#: io.c:2722
+#: io.c:2845
msgid "register_output_wrapper: received NULL pointer"
msgstr ""
-#: io.c:2750
+#: io.c:2873
#, c-format
msgid ""
"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
msgstr ""
-#: io.c:2757
+#: io.c:2880
#, c-format
msgid "output wrapper `%s' failed to open `%s'"
msgstr ""
-#: io.c:2778
+#: io.c:2901
msgid "register_output_processor: received NULL pointer"
msgstr ""
-#: io.c:2807
+#: io.c:2930
#, c-format
msgid ""
"two-way processor `%s' conflicts with previously installed two-way processor "
"`%s'"
msgstr ""
-#: io.c:2816
+#: io.c:2939
#, c-format
msgid "two way processor `%s' failed to open `%s'"
msgstr ""
-#: io.c:2923
+#: io.c:3064
#, c-format
msgid "data file `%s' is empty"
msgstr "データファイル `%s' は空です。"
-#: io.c:2965 io.c:2973
+#: io.c:3106 io.c:3114
msgid "could not allocate more input memory"
msgstr "入力用メモリーをこれ以上確保できません。"
-#: io.c:3539
+#: io.c:3682
msgid "multicharacter value of `RS' is a gawk extension"
msgstr "複数の文字を `RS' に使用するのは gawk 特有の拡張です。"
-#: io.c:3628
+#: io.c:3771
msgid "IPv6 communication is not supported"
msgstr "IPv6 通信はサポートされていません"
-#: main.c:388
+#: main.c:405
msgid "empty argument to `-e/--source' ignored"
msgstr "`-e/--source' への空の引数は無視されました"
-#: main.c:478
+#: main.c:495
#, c-format
msgid "%s: option `-W %s' unrecognized, ignored\n"
msgstr "%s: オプション `-W %s' は認識できません。無視されました\n"
-#: main.c:524
+#: main.c:541
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: 引数が必要なオプション -- %c\n"
-#: main.c:545
+#: main.c:562
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
msgstr ""
"環境変数 `POSIXLY_CORRECT' が指定されています。オプション `--posix' を有効に"
"します"
-#: main.c:551
+#: main.c:568
msgid "`--posix' overrides `--traditional'"
msgstr "オプション `--posix' は `--traditional' を無効にします。"
-#: main.c:562
+#: main.c:579
msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
msgstr ""
"オプション `--posix'/`--traditional' は `--non-decimal-data' を無効にします。"
-#: main.c:566
+#: main.c:583
#, c-format
msgid "running %s setuid root may be a security problem"
msgstr ""
"setuid root で %s を実行すると、セキュリティ上の問題が発生する場合がありま"
"す。"
-#: main.c:571
+#: main.c:588
#, fuzzy
msgid "`--posix' overrides `--characters-as-bytes'"
msgstr "`--posix' は `--binary' を上書きします"
-#: main.c:630
+#: main.c:647
#, c-format
msgid "can't set binary mode on stdin (%s)"
msgstr "標準入力をバイナリモードに設定できません (%s)"
-#: main.c:633
+#: main.c:650
#, c-format
msgid "can't set binary mode on stdout (%s)"
msgstr "標準出力をバイナリモードに設定できません (%s)"
-#: main.c:635
+#: main.c:652
#, c-format
msgid "can't set binary mode on stderr (%s)"
msgstr "標準エラーをバイナリモードに設定できません (%s)"
-#: main.c:693
+#: main.c:710
msgid "no program text at all!"
msgstr "プログラム文が全くありません!"
-#: main.c:779
+#: main.c:799
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
msgstr ""
"使用法: %s [POSIX または GNU 形式のオプション] -f progfile [--] file ...\n"
-#: main.c:781
+#: main.c:801
#, c-format
msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
msgstr ""
"使用法: %s [POSIX または GNU 形式のオプション] [--] %cprogram%c file ...\n"
-#: main.c:786
+#: main.c:806
msgid "POSIX options:\t\tGNU long options: (standard)\n"
msgstr "POSIX オプション:\t\tGNU 長い形式のオプション: (標準)\n"
-#: main.c:787
+#: main.c:807
msgid "\t-f progfile\t\t--file=progfile\n"
msgstr "\t-f progfile\t\t--file=progfile\n"
-#: main.c:788
+#: main.c:808
msgid "\t-F fs\t\t\t--field-separator=fs\n"
msgstr "\t-F fs\t\t\t--field-separator=fs\n"
-#: main.c:789
+#: main.c:809
msgid "\t-v var=val\t\t--assign=var=val\n"
msgstr "\t-v var=val\t\t--assign=var=val\n"
-#: main.c:790
+#: main.c:810
msgid "Short options:\t\tGNU long options: (extensions)\n"
msgstr "短いオプション:\t\tGNU 長い形式のオプション: (拡張)\n"
-#: main.c:791
+#: main.c:811
msgid "\t-b\t\t\t--characters-as-bytes\n"
msgstr "\t-b\t\t\t--characters-as-bytes\n"
-#: main.c:792
+#: main.c:812
msgid "\t-c\t\t\t--traditional\n"
msgstr "\t-c\t\t\t--traditional\n"
-#: main.c:793
+#: main.c:813
msgid "\t-C\t\t\t--copyright\n"
msgstr "\t-C\t\t\t--copyright\n"
-#: main.c:794
+#: main.c:814
msgid "\t-d[file]\t\t--dump-variables[=file]\n"
msgstr "\t-d[file]\t\t--dump-variables[=file]\n"
-#: main.c:795
+#: main.c:815
#, fuzzy
msgid "\t-D[file]\t\t--debug[=file]\n"
msgstr "\t-p[file]\t\t--profile[=file]\n"
-#: main.c:796
+#: main.c:816
msgid "\t-e 'program-text'\t--source='program-text'\n"
msgstr "\t-e 'program-text'\t--source='program-text'\n"
-#: main.c:797
+#: main.c:817
msgid "\t-E file\t\t\t--exec=file\n"
msgstr "\t-E file\t\t\t--exec=file\n"
-#: main.c:798
+#: main.c:818
msgid "\t-g\t\t\t--gen-pot\n"
msgstr "\t-g\t\t\t--gen-pot\n"
-#: main.c:799
+#: main.c:819
msgid "\t-h\t\t\t--help\n"
msgstr "\t-h\t\t\t--help\n"
-#: main.c:800
+#: main.c:820
msgid "\t-i includefile\t\t--include=includefile\n"
msgstr ""
-#: main.c:801
+#: main.c:821
msgid "\t-l library\t\t--load=library\n"
msgstr ""
-#: main.c:802
+#: main.c:822
msgid "\t-L [fatal]\t\t--lint[=fatal]\n"
msgstr "\t-L [fatal]\t\t--lint[=fatal]\n"
-#: main.c:803
+#: main.c:823
msgid "\t-n\t\t\t--non-decimal-data\n"
msgstr "\t-n\t\t\t--non-decimal-data\n"
-#: main.c:804
+#: main.c:824
#, fuzzy
msgid "\t-M\t\t\t--bignum\n"
msgstr "\t-g\t\t\t--gen-pot\n"
-#: main.c:805
+#: main.c:825
msgid "\t-N\t\t\t--use-lc-numeric\n"
msgstr "\t-N\t\t\t--use-lc-numeric\n"
-#: main.c:806
+#: main.c:826
#, fuzzy
msgid "\t-o[file]\t\t--pretty-print[=file]\n"
msgstr "\t-p[file]\t\t--profile[=file]\n"
-#: main.c:807
+#: main.c:827
msgid "\t-O\t\t\t--optimize\n"
msgstr "\t-O\t\t\t--optimize\n"
-#: main.c:808
+#: main.c:828
msgid "\t-p[file]\t\t--profile[=file]\n"
msgstr "\t-p[file]\t\t--profile[=file]\n"
-#: main.c:809
+#: main.c:829
msgid "\t-P\t\t\t--posix\n"
msgstr "\t-P\t\t\t--posix\n"
-#: main.c:810
+#: main.c:830
msgid "\t-r\t\t\t--re-interval\n"
msgstr "\t-r\t\t\t--re-interval\n"
-#: main.c:811
+#: main.c:831
msgid "\t-S\t\t\t--sandbox\n"
msgstr "\t-S\t\t\t--sandbox\n"
-#: main.c:812
+#: main.c:832
msgid "\t-t\t\t\t--lint-old\n"
msgstr "\t-t\t\t\t--lint-old\n"
-#: main.c:813
+#: main.c:833
msgid "\t-V\t\t\t--version\n"
msgstr "\t-V\t\t\t--version\n"
-#: main.c:815
+#: main.c:835
msgid "\t-W nostalgia\t\t--nostalgia\n"
msgstr "\t-W nostalgia\t\t--nostalgia\n"
-#: main.c:818
+#: main.c:838
msgid "\t-Y\t\t--parsedebug\n"
msgstr "\t-Y\t\t--parsedebug\n"
@@ -3087,7 +3106,7 @@ msgstr "\t-Y\t\t--parsedebug\n"
#. for this application. Please add _another line_ with the
#. address for translation bugs.
#. no-wrap
-#: main.c:827
+#: main.c:847
msgid ""
"\n"
"To report bugs, see node `Bugs' in `gawk.info', which is\n"
@@ -3102,7 +3121,7 @@ msgstr ""
"翻訳に関するバグは<translation-team-ja@lists.sourceforge.net>に報告してくださ"
"い。\n"
-#: main.c:831
+#: main.c:851
msgid ""
"gawk is a pattern scanning and processing language.\n"
"By default it reads standard input and writes standard output.\n"
@@ -3112,7 +3131,7 @@ msgstr ""
"デフォルト設定では、標準入力を読み込み、標準出力に書き出します。\n"
"\n"
-#: main.c:835
+#: main.c:855
msgid ""
"Examples:\n"
"\tgawk '{ sum += $1 }; END { print sum }' file\n"
@@ -3122,7 +3141,7 @@ msgstr ""
"\tgawk '{ sum += $1 }; END { print sum }' file\n"
"\tgawk -F: '{ print $1 }' /etc/passwd\n"
-#: main.c:855
+#: main.c:880
#, c-format
msgid ""
"Copyright (C) 1989, 1991-%d Free Software Foundation.\n"
@@ -3141,7 +3160,7 @@ msgstr ""
"(at your option) any later version.\n"
"\n"
-#: main.c:863
+#: main.c:888
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"
@@ -3155,7 +3174,7 @@ msgstr ""
"GNU General Public License for more details.\n"
"\n"
-#: main.c:869
+#: main.c:894
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"
@@ -3163,16 +3182,16 @@ msgstr ""
"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"
-#: main.c:904
+#: main.c:931
msgid "-Ft does not set FS to tab in POSIX awk"
msgstr "POSIX awk では -Ft は FS をタブに設定しません"
-#: main.c:1181
+#: main.c:1208
#, c-format
msgid "unknown value for field spec: %d\n"
msgstr "フィールド指定に不明な値があります: %d\n"
-#: main.c:1279
+#: main.c:1306
#, c-format
msgid ""
"%s: `%s' argument to `-v' not in `var=value' form\n"
@@ -3181,48 +3200,48 @@ msgstr ""
"%s: オプション `-v' の引数 `%s' が `変数=代入値' の形式になっていません。\n"
"\n"
-#: main.c:1305
+#: main.c:1332
#, c-format
msgid "`%s' is not a legal variable name"
msgstr "`%s' は不正な変数名です"
-#: main.c:1308
+#: main.c:1335
#, c-format
msgid "`%s' is not a variable name, looking for file `%s=%s'"
msgstr "`%s' は変数名ではありません。`%s=%s' のファイルを探します。"
-#: main.c:1312
+#: main.c:1339
#, c-format
msgid "cannot use gawk builtin `%s' as variable name"
msgstr "gawk に組み込みの `%s' は変数名として使用出来ません"
-#: main.c:1317
+#: main.c:1344
#, c-format
msgid "cannot use function `%s' as variable name"
msgstr "関数 `%s' は変数名として使用出来ません"
-#: main.c:1370
+#: main.c:1397
msgid "floating point exception"
msgstr "浮動小数点例外"
-#: main.c:1377
+#: main.c:1404
msgid "fatal error: internal error"
msgstr "致命的エラー: 内部エラー"
-#: main.c:1392
+#: main.c:1419
msgid "fatal error: internal error: segfault"
msgstr "致命的エラー: 内部エラー: セグメンテーション違反"
-#: main.c:1404
+#: main.c:1431
msgid "fatal error: internal error: stack overflow"
msgstr "致命的エラー: 内部エラー: スタックオーバーフロー"
-#: main.c:1463
+#: main.c:1490
#, c-format
msgid "no pre-opened fd %d"
msgstr "fd %d が事前に開いていません。"
-#: main.c:1470
+#: main.c:1497
#, c-format
msgid "could not pre-open /dev/null for fd %d"
msgstr "事前に fd %d 用に /dev/null を開けません。"
@@ -3281,7 +3300,7 @@ msgstr "or(%lf, %lf): 小数点以下は切り捨てられます"
msgid "%s: argument #%d negative value %Zd will give strange results"
msgstr "compl(%lf): 負の数値を使用すると異常な結果になります"
-#: msg.c:61
+#: msg.c:68
#, c-format
msgid "cmd. line:"
msgstr "コマンドライン:"
@@ -3335,16 +3354,16 @@ msgstr "%s %s `%s': fd フラグを取得できません: (fcntl F_GETFD: %s)"
msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
msgstr "%s %s `%s': close-on-exec を設定できません: (fcntl F_SETFD: %s)"
-#: profile.c:70
+#: profile.c:71
#, c-format
msgid "could not open `%s' for writing: %s"
msgstr "`%s' を書込み用に開けませんでした: %s"
-#: profile.c:72
+#: profile.c:73
msgid "sending profile to standard error"
msgstr "プロファイルを標準エラーに送っています"
-#: profile.c:188
+#: profile.c:193
#, c-format
msgid ""
"\t# %s block(s)\n"
@@ -3353,7 +3372,7 @@ msgstr ""
"\t# %s ブロック\n"
"\n"
-#: profile.c:193
+#: profile.c:198
#, c-format
msgid ""
"\t# Rule(s)\n"
@@ -3362,29 +3381,29 @@ msgstr ""
"\t# ルール\n"
"\n"
-#: profile.c:267
+#: profile.c:272
#, c-format
msgid "internal error: %s with null vname"
msgstr "内部エラー: %s の vname が無効です。"
-#: profile.c:530
+#: profile.c:537
#, fuzzy
msgid "internal error: builtin with null fname"
msgstr "内部エラー: %s の vname が無効です。"
-#: profile.c:942
+#: profile.c:949
#, c-format
msgid ""
"\t# Loaded extensions (-l and/or @load)\n"
"\n"
msgstr ""
-#: profile.c:965
+#: profile.c:972
#, c-format
msgid "\t# gawk profile, created %s\n"
msgstr "\t# gawk プロファイル、作成日時 %s\n"
-#: profile.c:1351
+#: profile.c:1475
#, c-format
msgid ""
"\n"
@@ -3393,17 +3412,12 @@ msgstr ""
"\n"
"\t# 関数一覧(アルファベット順)\n"
-#: profile.c:1389
+#: profile.c:1513
#, c-format
msgid "redir2str: unknown redirection type %d"
msgstr "redir2str: 不明なリダイレクト型 %d です"
-#: re.c:583
-#, fuzzy, c-format
-msgid "range of the form `[%c-%c]' is locale dependent"
-msgstr "`[%c-%c]' 形式の範囲はロケール依存です"
-
-#: re.c:610
+#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
msgstr "正規表現の要素 `%.*s' はおそらく `[%.*s]' であるべきです"
@@ -3472,11 +3486,15 @@ msgstr ") または \\) が不一致です"
msgid "No previous regular expression"
msgstr "以前に正規表現がありません"
-#: symbol.c:740
+#: symbol.c:741
msgid "can not pop main context"
msgstr ""
#, fuzzy
+#~ msgid "range of the form `[%c-%c]' is locale dependent"
+#~ msgstr "`[%c-%c]' 形式の範囲はロケール依存です"
+
+#, fuzzy
#~ msgid "[s]printf called with no arguments"
#~ msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
diff --git a/po/ms.gmo b/po/ms.gmo
index 0db272d3..6123c873 100644
--- a/po/ms.gmo
+++ b/po/ms.gmo
Binary files differ
diff --git a/po/ms.po b/po/ms.po
index 70121298..09ec6472 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk 4.0.75\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2013-05-09 16:05+0300\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2013-04-19 10:45+0800\n"
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
@@ -19,84 +19,84 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n"
-#: array.c:254
+#: array.c:256
#, c-format
msgid "from %s"
msgstr "dari %s"
-#: array.c:354
+#: array.c:357
msgid "attempt to use a scalar value as array"
msgstr "cubaan untuk menggunakan nilai skalar sebagai tatasusunan"
-#: array.c:356
+#: array.c:359
#, c-format
msgid "attempt to use scalar parameter `%s' as an array"
msgstr "cubaan untuk menggunakan parameter skalar `%s' sebagai tatasusunan"
-#: array.c:359
+#: array.c:362
#, c-format
msgid "attempt to use scalar `%s' as an array"
msgstr "cubaan untuk menggunakan skalar `%s' sebagai tatasusunan"
-#: array.c:406 array.c:573 builtin.c:85 builtin.c:1591 builtin.c:1637
-#: builtin.c:1650 builtin.c:2078 builtin.c:2092 eval.c:1121 eval.c:1125
-#: eval.c:1524
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
+#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
msgstr "cubaan untuk menggunakan tatasusunan `%s' dalam konteks skalar"
-#: array.c:580
+#: array.c:583
#, c-format
msgid "delete: index `%s' not in array `%s'"
msgstr "padam: indeks `%s' tiada dalam tatasusunan `%s'"
-#: array.c:594
+#: array.c:597
#, c-format
msgid "attempt to use scalar `%s[\"%.*s\"]' as an array"
msgstr ""
-#: array.c:773
+#: array.c:776
msgid "adump: first argument not an array"
msgstr ""
-#: array.c:812
+#: array.c:815
msgid "asort: second argument not an array"
msgstr ""
-#: array.c:813
+#: array.c:816
msgid "asorti: second argument not an array"
msgstr ""
-#: array.c:820
+#: array.c:823
msgid "asort: first argument not an array"
msgstr ""
-#: array.c:821
+#: array.c:824
msgid "asorti: first argument not an array"
msgstr ""
-#: array.c:828
+#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
msgstr ""
-#: array.c:829
+#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
msgstr ""
-#: array.c:834
+#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
msgstr ""
-#: array.c:835
+#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
msgstr ""
-#: array.c:1309
+#: array.c:1314
#, c-format
msgid "`%s' is invalid as a function name"
msgstr ""
-#: array.c:1313
+#: array.c:1318
#, c-format
msgid "sort comparison function `%s' is not defined"
msgstr ""
@@ -137,11 +137,11 @@ msgstr ""
msgid "duplicate `default' detected in switch body"
msgstr ""
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr ""
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr ""
@@ -230,675 +230,685 @@ msgstr ""
msgid "invalid subscript expression"
msgstr ""
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:119
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr ""
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:151
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr ""
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr ""
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:517 debug.c:533
-#: debug.c:2792 debug.c:5040
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
+#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr ""
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr ""
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:130 debug.c:5191
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr ""
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr ""
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr ""
-#: awkgram.y:2385
+#: awkgram.y:2409
#, c-format
msgid "already loaded shared library `%s'"
msgstr ""
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr ""
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr ""
-#: awkgram.y:2470
+#: awkgram.y:2494
msgid "@load is a gawk extension"
msgstr ""
-#: awkgram.y:2476
+#: awkgram.y:2500
msgid "empty filename after @load"
msgstr ""
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr ""
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr ""
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr ""
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr ""
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr ""
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr ""
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr ""
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr ""
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr ""
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr ""
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr ""
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr ""
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr ""
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr ""
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr ""
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr ""
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr ""
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr ""
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr ""
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr ""
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr ""
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr ""
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr ""
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr ""
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
msgstr ""
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr ""
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr ""
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr ""
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr ""
-#: awkgram.y:3992
+#: awkgram.y:4016
msgid "index: regexp constant as second argument is not allowed"
msgstr ""
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr ""
-#: awkgram.y:4102 debug.c:4021 debug.c:4064 debug.c:5189
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr ""
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr ""
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr ""
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr ""
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr ""
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr ""
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr ""
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
msgstr ""
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr ""
-#: awkgram.y:4366 awkgram.y:4372
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr ""
-#: awkgram.y:4376
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr ""
-#: awkgram.y:4408
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr ""
-#: awkgram.y:4467
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
"or used as a variable or an array"
msgstr ""
-#: awkgram.y:4703
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr ""
-#: awkgram.y:4712
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr ""
-#: builtin.c:128
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
+msgstr ""
+
+#: awkgram.y:5052
+#, c-format
+msgid "invalid target of assignment (opcode %s)"
+msgstr ""
+
+#: builtin.c:133
#, c-format
msgid "%s to \"%s\" failed (%s)"
msgstr ""
-#: builtin.c:129
+#: builtin.c:134
msgid "standard output"
msgstr ""
-#: builtin.c:143
+#: builtin.c:148
msgid "exp: received non-numeric argument"
msgstr ""
-#: builtin.c:149
+#: builtin.c:154
#, c-format
msgid "exp: argument %g is out of range"
msgstr ""
-#: builtin.c:224
+#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
msgstr ""
-#: builtin.c:227
+#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
msgstr ""
-#: builtin.c:239
+#: builtin.c:244
#, c-format
msgid "fflush: `%s' is not an open file, pipe or co-process"
msgstr ""
-#: builtin.c:357
+#: builtin.c:362
msgid "index: received non-string first argument"
msgstr ""
-#: builtin.c:359
+#: builtin.c:364
msgid "index: received non-string second argument"
msgstr ""
-#: builtin.c:483 mpfr.c:757
+#: builtin.c:488 mpfr.c:757
msgid "int: received non-numeric argument"
msgstr ""
-#: builtin.c:520
+#: builtin.c:525
msgid "length: received array argument"
msgstr ""
-#: builtin.c:523
+#: builtin.c:528
msgid "`length(array)' is a gawk extension"
msgstr ""
-#: builtin.c:539
+#: builtin.c:544
msgid "length: received non-string argument"
msgstr ""
-#: builtin.c:570
+#: builtin.c:575
msgid "log: received non-numeric argument"
msgstr ""
-#: builtin.c:573
+#: builtin.c:578
#, c-format
msgid "log: received negative argument %g"
msgstr ""
-#: builtin.c:771 builtin.c:776
+#: builtin.c:776 builtin.c:781
msgid "fatal: must use `count$' on all formats or none"
msgstr ""
-#: builtin.c:846
+#: builtin.c:851
#, c-format
msgid "field width is ignored for `%%' specifier"
msgstr ""
-#: builtin.c:848
+#: builtin.c:853
#, c-format
msgid "precision is ignored for `%%' specifier"
msgstr ""
-#: builtin.c:850
+#: builtin.c:855
#, c-format
msgid "field width and precision are ignored for `%%' specifier"
msgstr ""
-#: builtin.c:901
+#: builtin.c:906
msgid "fatal: `$' is not permitted in awk formats"
msgstr ""
-#: builtin.c:910
+#: builtin.c:915
msgid "fatal: arg count with `$' must be > 0"
msgstr ""
-#: builtin.c:914
+#: builtin.c:919
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
msgstr ""
-#: builtin.c:918
+#: builtin.c:923
msgid "fatal: `$' not permitted after period in format"
msgstr ""
-#: builtin.c:934
+#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
msgstr ""
-#: builtin.c:1006
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr ""
-#: builtin.c:1010
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr ""
-#: builtin.c:1023
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr ""
-#: builtin.c:1027
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr ""
-#: builtin.c:1040
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr ""
-#: builtin.c:1044
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr ""
-#: builtin.c:1439
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr ""
-#: builtin.c:1537
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
msgstr ""
-#: builtin.c:1542
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr ""
-#: builtin.c:1544
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr ""
-#: builtin.c:1551
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr ""
-#: builtin.c:1554
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr ""
-#: builtin.c:1610
+#: builtin.c:1634
msgid "sprintf: no arguments"
msgstr ""
-#: builtin.c:1633 builtin.c:1644
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr ""
-#: builtin.c:1687
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr ""
-#: builtin.c:1691
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr ""
-#: builtin.c:1722
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr ""
-#: builtin.c:1724
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr ""
-#: builtin.c:1731
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr ""
-#: builtin.c:1736
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr ""
-#: builtin.c:1748
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr ""
-#: builtin.c:1753
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr ""
-#: builtin.c:1778
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr ""
-#: builtin.c:1794
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr ""
-#: builtin.c:1802
+#: builtin.c:1826
#, c-format
msgid ""
"substr: length %g at start index %g exceeds length of first argument (%lu)"
msgstr ""
-#: builtin.c:1876
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr ""
-#: builtin.c:1899
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr ""
-#: builtin.c:1903
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr ""
-#: builtin.c:1910
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr ""
-#: builtin.c:1917
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr ""
-#: builtin.c:1983
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr ""
-#: builtin.c:2000
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr ""
-#: builtin.c:2035
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr ""
-#: builtin.c:2040
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr ""
-#: builtin.c:2160
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr ""
-#: builtin.c:2247
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr ""
-#: builtin.c:2281
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr ""
-#: builtin.c:2317 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr ""
-#: builtin.c:2319 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr ""
-#: builtin.c:2338
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr ""
-#: builtin.c:2354
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr ""
-#: builtin.c:2407 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr ""
-#: builtin.c:2438
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr ""
-#: builtin.c:2710
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr ""
-#: builtin.c:3003
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr ""
-#: builtin.c:3005
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr ""
-#: builtin.c:3011
+#: builtin.c:3038
#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr ""
-#: builtin.c:3013
+#: builtin.c:3040
#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr ""
-#: builtin.c:3015
+#: builtin.c:3042
#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr ""
-#: builtin.c:3040
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr ""
-#: builtin.c:3042
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr ""
-#: builtin.c:3048
+#: builtin.c:3075
#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr ""
-#: builtin.c:3050
+#: builtin.c:3077
#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr ""
-#: builtin.c:3052
+#: builtin.c:3079
#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr ""
-#: builtin.c:3077 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
msgid "and: called with less than two arguments"
msgstr ""
-#: builtin.c:3082
+#: builtin.c:3109
#, c-format
msgid "and: argument %d is non-numeric"
msgstr ""
-#: builtin.c:3086
+#: builtin.c:3113
#, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr ""
-#: builtin.c:3109 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
msgid "or: called with less than two arguments"
msgstr ""
-#: builtin.c:3114
+#: builtin.c:3141
#, c-format
msgid "or: argument %d is non-numeric"
msgstr ""
-#: builtin.c:3118
+#: builtin.c:3145
#, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr ""
-#: builtin.c:3140 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
msgid "xor: called with less than two arguments"
msgstr ""
-#: builtin.c:3146
+#: builtin.c:3173
#, c-format
msgid "xor: argument %d is non-numeric"
msgstr ""
-#: builtin.c:3150
+#: builtin.c:3177
#, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr ""
-#: builtin.c:3175 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr ""
-#: builtin.c:3181
+#: builtin.c:3208
#, c-format
msgid "compl(%f): negative value will give strange results"
msgstr ""
-#: builtin.c:3183
+#: builtin.c:3210
#, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr ""
-#: builtin.c:3352
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr ""
@@ -1020,8 +1030,8 @@ msgstr ""
#: command.y:823
msgid ""
-"commands [num] - starts a list of commands to be executed at a breakpoint"
-"(watchpoint) hit."
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
msgstr ""
#: command.y:825
@@ -1178,7 +1188,7 @@ msgstr ""
msgid "watch var - set a watchpoint for a variable."
msgstr ""
-#: command.y:1011 debug.c:395 msg.c:128
+#: command.y:1011 debug.c:401 msg.c:135
#, c-format
msgid "error: "
msgstr ""
@@ -1216,552 +1226,552 @@ msgstr ""
msgid "undefined command: %s\n"
msgstr ""
-#: debug.c:246
+#: debug.c:252
msgid "set or show the number of lines to keep in history file."
msgstr ""
-#: debug.c:248
+#: debug.c:254
msgid "set or show the list command window size."
msgstr ""
-#: debug.c:250
+#: debug.c:256
msgid "set or show gawk output file."
msgstr ""
-#: debug.c:252
+#: debug.c:258
msgid "set or show debugger prompt."
msgstr ""
-#: debug.c:254
+#: debug.c:260
msgid "(un)set or show saving of command history (value=on|off)."
msgstr ""
-#: debug.c:256
+#: debug.c:262
msgid "(un)set or show saving of options (value=on|off)."
msgstr ""
-#: debug.c:258
+#: debug.c:264
msgid "(un)set or show instruction tracing (value=on|off)."
msgstr ""
-#: debug.c:339
+#: debug.c:345
msgid "program not running."
msgstr ""
-#: debug.c:442 debug.c:597
+#: debug.c:448 debug.c:606
#, c-format
msgid "can't read source file `%s' (%s)"
msgstr ""
-#: debug.c:447
+#: debug.c:453
#, c-format
msgid "source file `%s' is empty.\n"
msgstr ""
-#: debug.c:474
+#: debug.c:480
msgid "no current source file."
msgstr ""
-#: debug.c:499
+#: debug.c:505
#, c-format
msgid "cannot find source file named `%s' (%s)"
msgstr ""
-#: debug.c:523
+#: debug.c:529
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
msgstr ""
-#: debug.c:542
+#: debug.c:551
#, c-format
msgid "line number %d out of range; `%s' has %d lines"
msgstr ""
-#: debug.c:602
+#: debug.c:611
#, c-format
msgid "unexpected eof while reading file `%s', line %d"
msgstr ""
-#: debug.c:611
+#: debug.c:620
#, c-format
msgid "source file `%s' modified since start of program execution"
msgstr ""
-#: debug.c:723
+#: debug.c:732
#, c-format
msgid "Current source file: %s\n"
msgstr ""
-#: debug.c:724
+#: debug.c:733
#, c-format
msgid "Number of lines: %d\n"
msgstr ""
-#: debug.c:731
+#: debug.c:740
#, c-format
msgid "Source file (lines): %s (%d)\n"
msgstr ""
-#: debug.c:745
+#: debug.c:754
msgid ""
"Number Disp Enabled Location\n"
"\n"
msgstr ""
-#: debug.c:756
+#: debug.c:765
#, c-format
msgid "\tno of hits = %ld\n"
msgstr ""
-#: debug.c:758
+#: debug.c:767
#, c-format
msgid "\tignore next %ld hit(s)\n"
msgstr ""
-#: debug.c:760 debug.c:900
+#: debug.c:769 debug.c:909
#, c-format
msgid "\tstop condition: %s\n"
msgstr ""
-#: debug.c:762 debug.c:902
+#: debug.c:771 debug.c:911
msgid "\tcommands:\n"
msgstr ""
-#: debug.c:784
+#: debug.c:793
#, c-format
msgid "Current frame: "
msgstr ""
-#: debug.c:787
+#: debug.c:796
#, c-format
msgid "Called by frame: "
msgstr ""
-#: debug.c:791
+#: debug.c:800
#, c-format
msgid "Caller of frame: "
msgstr ""
-#: debug.c:809
+#: debug.c:818
#, c-format
msgid "None in main().\n"
msgstr ""
-#: debug.c:839
+#: debug.c:848
msgid "No arguments.\n"
msgstr ""
-#: debug.c:840
+#: debug.c:849
msgid "No locals.\n"
msgstr ""
-#: debug.c:848
+#: debug.c:857
msgid ""
"All defined variables:\n"
"\n"
msgstr ""
-#: debug.c:858
+#: debug.c:867
msgid ""
"All defined functions:\n"
"\n"
msgstr ""
-#: debug.c:877
+#: debug.c:886
msgid ""
"Auto-display variables:\n"
"\n"
msgstr ""
-#: debug.c:880
+#: debug.c:889
msgid ""
"Watch variables:\n"
"\n"
msgstr ""
-#: debug.c:1020
+#: debug.c:1029
#, c-format
msgid "no symbol `%s' in current context\n"
msgstr ""
-#: debug.c:1032 debug.c:1418
+#: debug.c:1041 debug.c:1427
#, c-format
msgid "`%s' is not an array\n"
msgstr ""
-#: debug.c:1046
+#: debug.c:1055
#, c-format
msgid "$%ld = uninitialized field\n"
msgstr ""
-#: debug.c:1067
+#: debug.c:1076
#, c-format
msgid "array `%s' is empty\n"
msgstr ""
-#: debug.c:1110 debug.c:1162
+#: debug.c:1119 debug.c:1171
#, c-format
msgid "[\"%s\"] not in array `%s'\n"
msgstr ""
-#: debug.c:1166
+#: debug.c:1175
#, c-format
msgid "`%s[\"%s\"]' is not an array\n"
msgstr ""
-#: debug.c:1227 debug.c:4949
+#: debug.c:1236 debug.c:4964
#, c-format
msgid "`%s' is not a scalar variable"
msgstr ""
-#: debug.c:1249 debug.c:4979
+#: debug.c:1258 debug.c:4994
#, c-format
msgid "attempt to use array `%s[\"%s\"]' in a scalar context"
msgstr ""
-#: debug.c:1271 debug.c:4990
+#: debug.c:1280 debug.c:5005
#, c-format
msgid "attempt to use scalar `%s[\"%s\"]' as array"
msgstr ""
-#: debug.c:1414
+#: debug.c:1423
#, c-format
msgid "`%s' is a function"
msgstr ""
-#: debug.c:1456
+#: debug.c:1465
#, c-format
msgid "watchpoint %d is unconditional\n"
msgstr ""
-#: debug.c:1490
+#: debug.c:1499
#, c-format
msgid "No display item numbered %ld"
msgstr ""
-#: debug.c:1493
+#: debug.c:1502
#, c-format
msgid "No watch item numbered %ld"
msgstr ""
-#: debug.c:1519
+#: debug.c:1528
#, c-format
msgid "%d: [\"%s\"] not in array `%s'\n"
msgstr ""
-#: debug.c:1758
+#: debug.c:1767
msgid "attempt to use scalar value as array"
msgstr ""
-#: debug.c:1847
+#: debug.c:1856
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1858
+#: debug.c:1867
#, c-format
msgid "Display %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1891
+#: debug.c:1900
#, c-format
msgid " in file `%s', line %d\n"
msgstr ""
-#: debug.c:1912
+#: debug.c:1921
#, c-format
msgid " at `%s':%d"
msgstr ""
-#: debug.c:1928 debug.c:1991
+#: debug.c:1937 debug.c:2000
#, c-format
msgid "#%ld\tin "
msgstr ""
-#: debug.c:1965
+#: debug.c:1974
#, c-format
msgid "More stack frames follow ...\n"
msgstr ""
-#: debug.c:2008
+#: debug.c:2017
msgid "invalid frame number"
msgstr ""
-#: debug.c:2180
+#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2187
+#: debug.c:2207
#, c-format
msgid "Note: breakpoint %d (enabled), also set at %s:%d"
msgstr ""
-#: debug.c:2194
+#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2201
+#: debug.c:2221
#, c-format
msgid "Note: breakpoint %d (disabled), also set at %s:%d"
msgstr ""
-#: debug.c:2218
+#: debug.c:2238
#, c-format
msgid "Breakpoint %d set at file `%s', line %d\n"
msgstr ""
-#: debug.c:2320
+#: debug.c:2340
#, c-format
msgid "Can't set breakpoint in file `%s'\n"
msgstr ""
-#: debug.c:2349 debug.c:2472 debug.c:3330
+#: debug.c:2369 debug.c:2492 debug.c:3350
#, c-format
msgid "line number %d in file `%s' out of range"
msgstr ""
-#: debug.c:2353
+#: debug.c:2373
#, c-format
msgid "Can't find rule!!!\n"
msgstr ""
-#: debug.c:2355
+#: debug.c:2375
#, c-format
msgid "Can't set breakpoint at `%s':%d\n"
msgstr ""
-#: debug.c:2367
+#: debug.c:2387
#, c-format
msgid "Can't set breakpoint in function `%s'\n"
msgstr ""
-#: debug.c:2383
+#: debug.c:2403
#, c-format
msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
msgstr ""
-#: debug.c:2488 debug.c:2510
+#: debug.c:2508 debug.c:2530
#, c-format
msgid "Deleted breakpoint %d"
msgstr ""
-#: debug.c:2494
+#: debug.c:2514
#, c-format
msgid "No breakpoint(s) at entry to function `%s'\n"
msgstr ""
-#: debug.c:2521
+#: debug.c:2541
#, c-format
msgid "No breakpoint at file `%s', line #%d\n"
msgstr ""
-#: debug.c:2576 debug.c:2617 debug.c:2637 debug.c:2680
+#: debug.c:2596 debug.c:2637 debug.c:2657 debug.c:2700
msgid "invalid breakpoint number"
msgstr ""
-#: debug.c:2592
+#: debug.c:2612
msgid "Delete all breakpoints? (y or n) "
msgstr ""
-#: debug.c:2593 debug.c:2903 debug.c:2956
+#: debug.c:2613 debug.c:2923 debug.c:2976
msgid "y"
msgstr ""
-#: debug.c:2642
+#: debug.c:2662
#, c-format
msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n"
msgstr ""
-#: debug.c:2646
+#: debug.c:2666
#, c-format
msgid "Will stop next time breakpoint %d is reached.\n"
msgstr ""
-#: debug.c:2763
+#: debug.c:2783
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
msgstr ""
-#: debug.c:2888
+#: debug.c:2908
#, c-format
msgid "Failed to restart debugger"
msgstr ""
-#: debug.c:2902
+#: debug.c:2922
msgid "Program already running. Restart from beginning (y/n)? "
msgstr ""
-#: debug.c:2906
+#: debug.c:2926
#, c-format
msgid "Program not restarted\n"
msgstr ""
-#: debug.c:2916
+#: debug.c:2936
#, c-format
msgid "error: cannot restart, operation not allowed\n"
msgstr ""
-#: debug.c:2922
+#: debug.c:2942
#, c-format
msgid "error (%s): cannot restart, ignoring rest of the commands\n"
msgstr ""
-#: debug.c:2930
+#: debug.c:2950
#, c-format
msgid "Starting program: \n"
msgstr ""
-#: debug.c:2939
+#: debug.c:2959
#, c-format
msgid "Program exited %s with exit value: %d\n"
msgstr ""
-#: debug.c:2955
+#: debug.c:2975
msgid "The program is running. Exit anyway (y/n)? "
msgstr ""
-#: debug.c:2990
+#: debug.c:3010
#, c-format
msgid "Not stopped at any breakpoint; argument ignored.\n"
msgstr ""
-#: debug.c:2995
+#: debug.c:3015
#, c-format
msgid "invalid breakpoint number %d."
msgstr ""
-#: debug.c:3000
+#: debug.c:3020
#, c-format
msgid "Will ignore next %ld crossings of breakpoint %d.\n"
msgstr ""
-#: debug.c:3187
+#: debug.c:3207
#, c-format
msgid "'finish' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3192
+#: debug.c:3212
#, c-format
msgid "Run till return from "
msgstr ""
-#: debug.c:3235
+#: debug.c:3255
#, c-format
msgid "'return' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3349
+#: debug.c:3369
#, c-format
msgid "Can't find specified location in function `%s'\n"
msgstr ""
-#: debug.c:3357
+#: debug.c:3377
#, c-format
msgid "invalid source line %d in file `%s'"
msgstr ""
-#: debug.c:3372
+#: debug.c:3392
#, c-format
msgid "Can't find specified location %d in file `%s'\n"
msgstr ""
-#: debug.c:3404
+#: debug.c:3424
#, c-format
msgid "element not in array\n"
msgstr ""
-#: debug.c:3404
+#: debug.c:3424
#, c-format
msgid "untyped variable\n"
msgstr ""
-#: debug.c:3446
+#: debug.c:3466
#, c-format
msgid "Stopping in %s ...\n"
msgstr ""
-#: debug.c:3523
+#: debug.c:3543
#, c-format
msgid "'finish' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:3530
+#: debug.c:3550
#, c-format
msgid "'until' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:4165
+#: debug.c:4185
msgid "\t------[Enter] to continue or q [Enter] to quit------"
msgstr ""
-#: debug.c:4166
+#: debug.c:4186
msgid "q"
msgstr ""
-#: debug.c:4986
+#: debug.c:5001
#, c-format
msgid "[\"%s\"] not in array `%s'"
msgstr ""
-#: debug.c:5192
+#: debug.c:5207
#, c-format
msgid "sending output to stdout\n"
msgstr ""
-#: debug.c:5232
+#: debug.c:5247
msgid "invalid number"
msgstr ""
-#: debug.c:5366
+#: debug.c:5381
#, c-format
msgid "`%s' not allowed in current context; statement ignored"
msgstr ""
-#: debug.c:5374
+#: debug.c:5389
msgid "`return' not allowed in current context; statement ignored"
msgstr ""
-#: debug.c:5575
+#: debug.c:5590
#, c-format
msgid "No symbol `%s' in current context"
msgstr ""
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1192
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr ""
-#: dfa.c:1052
+#: dfa.c:1174
msgid "invalid character class"
msgstr ""
-#: dfa.c:1229
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr ""
-#: dfa.c:1281
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr ""
-#: dfa.c:1428 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr ""
-#: dfa.c:1431 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr ""
-#: dfa.c:1816
+#: dfa.c:1936
msgid "unbalanced ("
msgstr ""
-#: dfa.c:1943
+#: dfa.c:2062
msgid "no syntax specified"
msgstr ""
-#: dfa.c:1951
+#: dfa.c:2070
msgid "unbalanced )"
msgstr ""
@@ -1780,11 +1790,11 @@ msgstr ""
msgid "opcode %s not an operator or keyword"
msgstr ""
-#: eval.c:471
+#: eval.c:472
msgid "buffer overflow in genflags2str"
msgstr ""
-#: eval.c:674
+#: eval.c:675
#, c-format
msgid ""
"\n"
@@ -1792,71 +1802,71 @@ msgid ""
"\n"
msgstr ""
-#: eval.c:703
+#: eval.c:704
msgid "`IGNORECASE' is a gawk extension"
msgstr ""
-#: eval.c:735
+#: eval.c:736
msgid "`BINMODE' is a gawk extension"
msgstr ""
-#: eval.c:793
+#: eval.c:794
#, c-format
msgid "BINMODE value `%s' is invalid, treated as 3"
msgstr ""
-#: eval.c:884
+#: eval.c:885
#, c-format
msgid "bad `%sFMT' specification `%s'"
msgstr ""
-#: eval.c:968
+#: eval.c:969
msgid "turning off `--lint' due to assignment to `LINT'"
msgstr ""
-#: eval.c:1146
+#: eval.c:1147
#, c-format
msgid "reference to uninitialized argument `%s'"
msgstr ""
-#: eval.c:1147
+#: eval.c:1148
#, c-format
msgid "reference to uninitialized variable `%s'"
msgstr ""
-#: eval.c:1165
+#: eval.c:1166
msgid "attempt to field reference from non-numeric value"
msgstr ""
-#: eval.c:1167
+#: eval.c:1168
msgid "attempt to field reference from null string"
msgstr ""
-#: eval.c:1175
+#: eval.c:1176
#, c-format
msgid "attempt to access field %ld"
msgstr ""
-#: eval.c:1184
+#: eval.c:1185
#, c-format
msgid "reference to uninitialized field `$%ld'"
msgstr ""
-#: eval.c:1271
+#: eval.c:1272
#, c-format
msgid "function `%s' called with more arguments than declared"
msgstr ""
-#: eval.c:1466
+#: eval.c:1473
#, c-format
msgid "unwind_stack: unexpected type `%s'"
msgstr ""
-#: eval.c:1562
+#: eval.c:1569
msgid "division by zero attempted in `/='"
msgstr ""
-#: eval.c:1569
+#: eval.c:1576
#, c-format
msgid "division by zero attempted in `%%='"
msgstr ""
@@ -1869,7 +1879,7 @@ msgstr ""
msgid "-l / @load are gawk extensions"
msgstr ""
-#: ext.c:95 ext.c:177
+#: ext.c:95
msgid "load_ext: received NULL lib_name"
msgstr ""
@@ -1898,6 +1908,10 @@ msgstr ""
msgid "`extension' is a gawk extension"
msgstr ""
+#: ext.c:177
+msgid "extension: received NULL lib_name"
+msgstr ""
+
#: ext.c:180
#, c-format
msgid "extension: cannot open library `%s' (%s)"
@@ -1918,36 +1932,36 @@ msgstr ""
msgid "make_builtin: missing function name"
msgstr ""
-#: ext.c:238
+#: ext.c:236
#, c-format
msgid "make_builtin: can't redefine function `%s'"
msgstr ""
-#: ext.c:242
+#: ext.c:240
#, c-format
msgid "make_builtin: function `%s' already defined"
msgstr ""
-#: ext.c:246
+#: ext.c:244
#, c-format
msgid "make_builtin: function name `%s' previously defined"
msgstr ""
-#: ext.c:248
+#: ext.c:246
#, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
msgstr ""
-#: ext.c:251 ext.c:304
+#: ext.c:249 ext.c:304
#, c-format
msgid "make_builtin: negative argument count for function `%s'"
msgstr ""
-#: ext.c:278
+#: ext.c:276
msgid "extension: missing function name"
msgstr ""
-#: ext.c:283
+#: ext.c:279 ext.c:283
#, c-format
msgid "extension: illegal character `%c' in function name `%s'"
msgstr ""
@@ -1972,139 +1986,143 @@ msgstr ""
msgid "extension: can't use gawk built-in `%s' as function name"
msgstr ""
-#: ext.c:374
+#: ext.c:375
#, c-format
msgid "function `%s' defined to take no more than %d argument(s)"
msgstr ""
-#: ext.c:377
+#: ext.c:378
#, c-format
msgid "function `%s': missing argument #%d"
msgstr ""
-#: ext.c:394
+#: ext.c:395
#, c-format
msgid "function `%s': argument #%d: attempt to use scalar as an array"
msgstr ""
-#: ext.c:398
+#: ext.c:399
#, c-format
msgid "function `%s': argument #%d: attempt to use array as a scalar"
msgstr ""
-#: ext.c:412
+#: ext.c:413
msgid "dynamic loading of library not supported"
msgstr ""
-#: extension/filefuncs.c:97
+#: extension/filefuncs.c:159
msgid "chdir: called with incorrect number of arguments, expecting 1"
msgstr ""
-#: extension/filefuncs.c:343
+#: extension/filefuncs.c:439
#, c-format
msgid "stat: unable to read symbolic link `%s'"
msgstr ""
-#: extension/filefuncs.c:376
+#: extension/filefuncs.c:472
msgid "stat: called with wrong number of arguments"
msgstr ""
-#: extension/filefuncs.c:383
+#: extension/filefuncs.c:479
msgid "stat: bad parameters"
msgstr ""
-#: extension/filefuncs.c:437
+#: extension/filefuncs.c:533
#, c-format
msgid "fts init: could not create variable %s"
msgstr ""
-#: extension/filefuncs.c:460
+#: extension/filefuncs.c:554
+msgid "fts is not supported on this system"
+msgstr ""
+
+#: extension/filefuncs.c:573
msgid "fill_stat_element: could not create array"
msgstr ""
-#: extension/filefuncs.c:469
+#: extension/filefuncs.c:582
msgid "fill_stat_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:484
+#: extension/filefuncs.c:597
msgid "fill_path_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:500
+#: extension/filefuncs.c:613
msgid "fill_error_element: could not set element"
msgstr ""
-#: extension/filefuncs.c:547 extension/filefuncs.c:594
+#: extension/filefuncs.c:660 extension/filefuncs.c:707
msgid "fts-process: could not create array"
msgstr ""
-#: extension/filefuncs.c:557 extension/filefuncs.c:604
-#: extension/filefuncs.c:622
+#: extension/filefuncs.c:670 extension/filefuncs.c:717
+#: extension/filefuncs.c:735
msgid "fts-process: could not set element"
msgstr ""
-#: extension/filefuncs.c:671
+#: extension/filefuncs.c:784
msgid "fts: called with incorrect number of arguments, expecting 3"
msgstr ""
-#: extension/filefuncs.c:674
+#: extension/filefuncs.c:787
msgid "fts: bad first parameter"
msgstr ""
-#: extension/filefuncs.c:680
+#: extension/filefuncs.c:793
msgid "fts: bad second parameter"
msgstr ""
-#: extension/filefuncs.c:686
+#: extension/filefuncs.c:799
msgid "fts: bad third parameter"
msgstr ""
-#: extension/filefuncs.c:693
+#: extension/filefuncs.c:806
msgid "fts: could not flatten array\n"
msgstr ""
-#: extension/filefuncs.c:711
+#: extension/filefuncs.c:824
msgid "fts: ignoring sneaky FTS_NOSTAT flag. nyah, nyah, nyah."
msgstr ""
-#: extension/filefuncs.c:728
+#: extension/filefuncs.c:841
msgid "fts: clear_array() failed\n"
msgstr ""
-#: extension/fnmatch.c:98
+#: extension/fnmatch.c:112
msgid "fnmatch: called with less than three arguments"
msgstr ""
-#: extension/fnmatch.c:101
+#: extension/fnmatch.c:115
msgid "fnmatch: called with more than three arguments"
msgstr ""
-#: extension/fnmatch.c:104
+#: extension/fnmatch.c:118
msgid "fnmatch: could not get first argument"
msgstr ""
-#: extension/fnmatch.c:109
+#: extension/fnmatch.c:123
msgid "fnmatch: could not get second argument"
msgstr ""
-#: extension/fnmatch.c:114
+#: extension/fnmatch.c:128
msgid "fnmatch: could not get third argument"
msgstr ""
-#: extension/fnmatch.c:127
+#: extension/fnmatch.c:141
msgid "fnmatch is not implemented on this system\n"
msgstr ""
-#: extension/fnmatch.c:159
+#: extension/fnmatch.c:173
msgid "fnmatch init: could not add FNM_NOMATCH variable"
msgstr ""
-#: extension/fnmatch.c:169
+#: extension/fnmatch.c:183
#, c-format
msgid "fnmatch init: could not set array element %s"
msgstr ""
-#: extension/fnmatch.c:179
+#: extension/fnmatch.c:193
msgid "fnmatch init: could not install FNM array"
msgstr ""
@@ -2128,88 +2146,88 @@ msgstr ""
msgid "wait: called with too many arguments"
msgstr ""
-#: extension/inplace.c:110
+#: extension/inplace.c:130
msgid "inplace_begin: in-place editing already active"
msgstr ""
-#: extension/inplace.c:113 extension/inplace.c:187
+#: extension/inplace.c:133 extension/inplace.c:207
#, c-format
msgid "inplace_begin: expects 2 arguments but called with %d"
msgstr ""
-#: extension/inplace.c:116
+#: extension/inplace.c:136
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
msgstr ""
-#: extension/inplace.c:124
+#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
msgstr ""
-#: extension/inplace.c:131
+#: extension/inplace.c:151
#, c-format
msgid "inplace_begin: Cannot stat `%s' (%s)"
msgstr ""
-#: extension/inplace.c:138
+#: extension/inplace.c:158
#, c-format
msgid "inplace_begin: `%s' is not a regular file"
msgstr ""
-#: extension/inplace.c:149
+#: extension/inplace.c:169
#, c-format
msgid "inplace_begin: mkstemp(`%s') failed (%s)"
msgstr ""
-#: extension/inplace.c:158
+#: extension/inplace.c:178
#, c-format
msgid "inplace_begin: chmod failed (%s)"
msgstr ""
-#: extension/inplace.c:165
+#: extension/inplace.c:185
#, c-format
msgid "inplace_begin: dup(stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:168
+#: extension/inplace.c:188
#, c-format
msgid "inplace_begin: dup2(%d, stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:171
+#: extension/inplace.c:191
#, c-format
msgid "inplace_begin: close(%d) failed (%s)"
msgstr ""
-#: extension/inplace.c:190
+#: extension/inplace.c:210
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
msgstr ""
-#: extension/inplace.c:197
+#: extension/inplace.c:217
msgid "inplace_end: in-place editing not active"
msgstr ""
-#: extension/inplace.c:203
+#: extension/inplace.c:223
#, c-format
msgid "inplace_end: dup2(%d, stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:206
+#: extension/inplace.c:226
#, c-format
msgid "inplace_end: close(%d) failed (%s)"
msgstr ""
-#: extension/inplace.c:210
+#: extension/inplace.c:230
#, c-format
msgid "inplace_end: fsetpos(stdout) failed (%s)"
msgstr ""
-#: extension/inplace.c:223
+#: extension/inplace.c:243
#, c-format
msgid "inplace_end: link(`%s', `%s') failed (%s)"
msgstr ""
-#: extension/inplace.c:229
+#: extension/inplace.c:253
#, c-format
msgid "inplace_end: rename(`%s', `%s') failed (%s)"
msgstr ""
@@ -2238,165 +2256,165 @@ msgstr ""
msgid "chr: called with inappropriate argument(s)"
msgstr ""
-#: extension/readdir.c:203
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr ""
-#: extension/readfile.c:84
+#: extension/readfile.c:113
msgid "readfile: called with too many arguments"
msgstr ""
-#: extension/readfile.c:118
+#: extension/readfile.c:137
msgid "readfile: called with no arguments"
msgstr ""
-#: extension/rwarray.c:120
+#: extension/rwarray.c:124
msgid "writea: called with too many arguments"
msgstr ""
-#: extension/rwarray.c:127
+#: extension/rwarray.c:131
#, c-format
msgid "do_writea: argument 0 is not a string\n"
msgstr ""
-#: extension/rwarray.c:133
+#: extension/rwarray.c:137
#, c-format
msgid "do_writea: argument 1 is not an array\n"
msgstr ""
-#: extension/rwarray.c:180
+#: extension/rwarray.c:184
#, c-format
msgid "write_array: could not flatten array\n"
msgstr ""
-#: extension/rwarray.c:194
+#: extension/rwarray.c:198
#, c-format
msgid "write_array: could not release flattened array\n"
msgstr ""
-#: extension/rwarray.c:276
+#: extension/rwarray.c:280
msgid "reada: called with too many arguments"
msgstr ""
-#: extension/rwarray.c:283
+#: extension/rwarray.c:287
#, c-format
msgid "do_reada: argument 0 is not a string\n"
msgstr ""
-#: extension/rwarray.c:289
+#: extension/rwarray.c:293
#, c-format
msgid "do_reada: argument 1 is not an array\n"
msgstr ""
-#: extension/rwarray.c:333
+#: extension/rwarray.c:337
#, c-format
msgid "do_reada: clear_array failed\n"
msgstr ""
-#: extension/rwarray.c:370
+#: extension/rwarray.c:374
#, c-format
msgid "read_array: set_array_element failed\n"
msgstr ""
-#: extension/time.c:81
+#: extension/time.c:113
msgid "gettimeofday: ignoring arguments"
msgstr ""
-#: extension/time.c:112
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr ""
-#: extension/time.c:133
+#: extension/time.c:165
msgid "sleep: called with too many arguments"
msgstr ""
-#: extension/time.c:136
+#: extension/time.c:168
msgid "sleep: missing required numeric argument"
msgstr ""
-#: extension/time.c:142
+#: extension/time.c:174
msgid "sleep: argument is negative"
msgstr ""
-#: extension/time.c:176
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr ""
-#: field.c:339
+#: field.c:345
msgid "NF set to negative value"
msgstr ""
-#: field.c:964 field.c:971 field.c:975
+#: field.c:971 field.c:978 field.c:982
msgid "split: fourth argument is a gawk extension"
msgstr ""
-#: field.c:968
+#: field.c:975
msgid "split: fourth argument is not an array"
msgstr ""
-#: field.c:982
+#: field.c:989
msgid "split: second argument is not an array"
msgstr ""
-#: field.c:986
+#: field.c:993
msgid "split: cannot use the same array for second and fourth args"
msgstr ""
-#: field.c:991
+#: field.c:998
msgid "split: cannot use a subarray of second arg for fourth arg"
msgstr ""
-#: field.c:994
+#: field.c:1001
msgid "split: cannot use a subarray of fourth arg for second arg"
msgstr ""
-#: field.c:1023
+#: field.c:1032
msgid "split: null string for third arg is a gawk extension"
msgstr ""
-#: field.c:1063
+#: field.c:1072
msgid "patsplit: fourth argument is not an array"
msgstr ""
-#: field.c:1068
+#: field.c:1077
msgid "patsplit: second argument is not an array"
msgstr ""
-#: field.c:1074
+#: field.c:1083
msgid "patsplit: third argument must be non-null"
msgstr ""
-#: field.c:1078
+#: field.c:1087
msgid "patsplit: cannot use the same array for second and fourth args"
msgstr ""
-#: field.c:1083
+#: field.c:1092
msgid "patsplit: cannot use a subarray of second arg for fourth arg"
msgstr ""
-#: field.c:1086
+#: field.c:1095
msgid "patsplit: cannot use a subarray of fourth arg for second arg"
msgstr ""
-#: field.c:1124
+#: field.c:1133
msgid "`FIELDWIDTHS' is a gawk extension"
msgstr ""
-#: field.c:1188
+#: field.c:1197
#, c-format
msgid "invalid FIELDWIDTHS value, near `%s'"
msgstr ""
-#: field.c:1261
+#: field.c:1270
msgid "null string for `FS' is a gawk extension"
msgstr ""
-#: field.c:1265
+#: field.c:1274
msgid "old awk does not support regexps as value of `FS'"
msgstr ""
-#: field.c:1384
+#: field.c:1393
msgid "`FPAT' is a gawk extension"
msgstr ""
@@ -2412,577 +2430,577 @@ msgstr ""
msgid "node_to_awk_value: received null val"
msgstr ""
-#: gawkapi.c:808
+#: gawkapi.c:807
msgid "remove_element: received null array"
msgstr ""
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr ""
-#: gawkapi.c:943
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr ""
-#: gawkapi.c:948
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr ""
-#: getopt.c:603 getopt.c:632
+#: getopt.c:604 getopt.c:633
#, c-format
msgid "%s: option '%s' is ambiguous; possibilities:"
msgstr ""
-#: getopt.c:678 getopt.c:682
+#: getopt.c:679 getopt.c:683
#, c-format
msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr ""
-#: getopt.c:691 getopt.c:696
+#: getopt.c:692 getopt.c:697
#, c-format
msgid "%s: option '%c%s' doesn't allow an argument\n"
msgstr ""
-#: getopt.c:739 getopt.c:758
+#: getopt.c:740 getopt.c:759
#, c-format
msgid "%s: option '--%s' requires an argument\n"
msgstr ""
-#: getopt.c:796 getopt.c:799
+#: getopt.c:797 getopt.c:800
#, c-format
msgid "%s: unrecognized option '--%s'\n"
msgstr ""
-#: getopt.c:807 getopt.c:810
+#: getopt.c:808 getopt.c:811
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
msgstr ""
-#: getopt.c:859 getopt.c:862
+#: getopt.c:860 getopt.c:863
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr ""
-#: getopt.c:915 getopt.c:932 getopt.c:1142 getopt.c:1160
+#: getopt.c:916 getopt.c:933 getopt.c:1143 getopt.c:1161
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr ""
-#: getopt.c:988 getopt.c:1004
+#: getopt.c:989 getopt.c:1005
#, c-format
msgid "%s: option '-W %s' is ambiguous\n"
msgstr ""
-#: getopt.c:1028 getopt.c:1046
+#: getopt.c:1029 getopt.c:1047
#, c-format
msgid "%s: option '-W %s' doesn't allow an argument\n"
msgstr ""
-#: getopt.c:1067 getopt.c:1085
+#: getopt.c:1068 getopt.c:1086
#, c-format
msgid "%s: option '-W %s' requires an argument\n"
msgstr ""
-#: io.c:347
+#: io.c:392
#, c-format
msgid "command line argument `%s' is a directory: skipped"
msgstr ""
-#: io.c:350 io.c:463
+#: io.c:395 io.c:513
#, c-format
msgid "cannot open file `%s' for reading (%s)"
msgstr ""
-#: io.c:590
+#: io.c:640
#, c-format
msgid "close of fd %d (`%s') failed (%s)"
msgstr ""
-#: io.c:666
+#: io.c:716
msgid "redirection not allowed in sandbox mode"
msgstr ""
-#: io.c:700
+#: io.c:750
#, c-format
msgid "expression in `%s' redirection only has numeric value"
msgstr ""
-#: io.c:706
+#: io.c:756
#, c-format
msgid "expression for `%s' redirection has null string value"
msgstr ""
-#: io.c:711
+#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
msgstr ""
-#: io.c:754
+#: io.c:809
#, c-format
msgid "unnecessary mixing of `>' and `>>' for file `%.*s'"
msgstr ""
-#: io.c:808
+#: io.c:863
#, c-format
msgid "can't open pipe `%s' for output (%s)"
msgstr ""
-#: io.c:818
+#: io.c:873
#, c-format
msgid "can't open pipe `%s' for input (%s)"
msgstr ""
-#: io.c:849
+#: io.c:904
#, c-format
msgid "can't open two way pipe `%s' for input/output (%s)"
msgstr ""
-#: io.c:928
+#: io.c:986
#, c-format
msgid "can't redirect from `%s' (%s)"
msgstr ""
-#: io.c:931
+#: io.c:989
#, c-format
msgid "can't redirect to `%s' (%s)"
msgstr ""
-#: io.c:982
+#: io.c:1040
msgid ""
"reached system limit for open files: starting to multiplex file descriptors"
msgstr ""
-#: io.c:998
+#: io.c:1056
#, c-format
msgid "close of `%s' failed (%s)."
msgstr ""
-#: io.c:1006
+#: io.c:1064
msgid "too many pipes or input files open"
msgstr ""
-#: io.c:1028
+#: io.c:1086
msgid "close: second argument must be `to' or `from'"
msgstr ""
-#: io.c:1045
+#: io.c:1103
#, c-format
msgid "close: `%.*s' is not an open file, pipe or co-process"
msgstr ""
-#: io.c:1050
+#: io.c:1108
msgid "close of redirection that was never opened"
msgstr ""
-#: io.c:1147
+#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
msgstr ""
-#: io.c:1164
+#: io.c:1222
#, c-format
msgid "failure status (%d) on pipe close of `%s' (%s)"
msgstr ""
-#: io.c:1167
+#: io.c:1225
#, c-format
msgid "failure status (%d) on file close of `%s' (%s)"
msgstr ""
-#: io.c:1187
+#: io.c:1245
#, c-format
msgid "no explicit close of socket `%s' provided"
msgstr ""
-#: io.c:1190
+#: io.c:1248
#, c-format
msgid "no explicit close of co-process `%s' provided"
msgstr ""
-#: io.c:1193
+#: io.c:1251
#, c-format
msgid "no explicit close of pipe `%s' provided"
msgstr ""
-#: io.c:1196
+#: io.c:1254
#, c-format
msgid "no explicit close of file `%s' provided"
msgstr ""
-#: io.c:1224 io.c:1279 main.c:842 main.c:879
+#: io.c:1284 io.c:1342 main.c:864 main.c:906
#, c-format
msgid "error writing standard output (%s)"
msgstr ""
-#: io.c:1228 io.c:1284
+#: io.c:1289 io.c:1348 main.c:866
#, c-format
msgid "error writing standard error (%s)"
msgstr ""
-#: io.c:1236
+#: io.c:1297
#, c-format
msgid "pipe flush of `%s' failed (%s)."
msgstr ""
-#: io.c:1239
+#: io.c:1300
#, c-format
msgid "co-process flush of pipe to `%s' failed (%s)."
msgstr ""
-#: io.c:1242
+#: io.c:1303
#, c-format
msgid "file flush of `%s' failed (%s)."
msgstr ""
-#: io.c:1356
+#: io.c:1420
#, c-format
msgid "local port %s invalid in `/inet'"
msgstr ""
-#: io.c:1374
+#: io.c:1438
#, c-format
msgid "remote host and port information (%s, %s) invalid"
msgstr ""
-#: io.c:1526
+#: io.c:1590
#, c-format
msgid "no (known) protocol supplied in special filename `%s'"
msgstr ""
-#: io.c:1540
+#: io.c:1604
#, c-format
msgid "special file name `%s' is incomplete"
msgstr ""
-#: io.c:1557
+#: io.c:1621
msgid "must supply a remote hostname to `/inet'"
msgstr ""
-#: io.c:1575
+#: io.c:1639
msgid "must supply a remote port to `/inet'"
msgstr ""
-#: io.c:1621
+#: io.c:1685
msgid "TCP/IP communications are not supported"
msgstr ""
-#: io.c:1796
+#: io.c:1867
#, c-format
msgid "could not open `%s', mode `%s'"
msgstr ""
-#: io.c:1846
+#: io.c:1917
#, c-format
msgid "close of master pty failed (%s)"
msgstr ""
-#: io.c:1848 io.c:2024 io.c:2194
+#: io.c:1919 io.c:2105 io.c:2305
#, c-format
msgid "close of stdout in child failed (%s)"
msgstr ""
-#: io.c:1851
+#: io.c:1922
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
msgstr ""
-#: io.c:1853 io.c:2029
+#: io.c:1924 io.c:2110
#, c-format
msgid "close of stdin in child failed (%s)"
msgstr ""
-#: io.c:1856
+#: io.c:1927
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
msgstr ""
-#: io.c:1858 io.c:1879
+#: io.c:1929 io.c:1951
#, c-format
msgid "close of slave pty failed (%s)"
msgstr ""
-#: io.c:1965 io.c:2027 io.c:2171 io.c:2197
+#: io.c:2040 io.c:2108 io.c:2276 io.c:2308
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
msgstr ""
-#: io.c:1972 io.c:2032
+#: io.c:2047 io.c:2113
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
msgstr ""
-#: io.c:1992 io.c:2187
+#: io.c:2073 io.c:2298
msgid "restoring stdout in parent process failed\n"
msgstr ""
-#: io.c:2000
+#: io.c:2081
msgid "restoring stdin in parent process failed\n"
msgstr ""
-#: io.c:2035 io.c:2199 io.c:2213
+#: io.c:2116 io.c:2310 io.c:2324
#, c-format
msgid "close of pipe failed (%s)"
msgstr ""
-#: io.c:2089
+#: io.c:2174
msgid "`|&' not supported"
msgstr ""
-#: io.c:2156
+#: io.c:2261
#, c-format
msgid "cannot open pipe `%s' (%s)"
msgstr ""
-#: io.c:2207
+#: io.c:2318
#, c-format
msgid "cannot create child process for `%s' (fork: %s)"
msgstr ""
-#: io.c:2667
+#: io.c:2790
msgid "register_input_parser: received NULL pointer"
msgstr ""
-#: io.c:2695
+#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
msgstr ""
-#: io.c:2702
+#: io.c:2825
#, c-format
msgid "input parser `%s' failed to open `%s'"
msgstr ""
-#: io.c:2722
+#: io.c:2845
msgid "register_output_wrapper: received NULL pointer"
msgstr ""
-#: io.c:2750
+#: io.c:2873
#, c-format
msgid ""
"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
msgstr ""
-#: io.c:2757
+#: io.c:2880
#, c-format
msgid "output wrapper `%s' failed to open `%s'"
msgstr ""
-#: io.c:2778
+#: io.c:2901
msgid "register_output_processor: received NULL pointer"
msgstr ""
-#: io.c:2807
+#: io.c:2930
#, c-format
msgid ""
"two-way processor `%s' conflicts with previously installed two-way processor "
"`%s'"
msgstr ""
-#: io.c:2816
+#: io.c:2939
#, c-format
msgid "two way processor `%s' failed to open `%s'"
msgstr ""
-#: io.c:2923
+#: io.c:3064
#, c-format
msgid "data file `%s' is empty"
msgstr ""
-#: io.c:2965 io.c:2973
+#: io.c:3106 io.c:3114
msgid "could not allocate more input memory"
msgstr ""
-#: io.c:3539
+#: io.c:3682
msgid "multicharacter value of `RS' is a gawk extension"
msgstr ""
-#: io.c:3628
+#: io.c:3771
msgid "IPv6 communication is not supported"
msgstr ""
-#: main.c:388
+#: main.c:405
msgid "empty argument to `-e/--source' ignored"
msgstr ""
-#: main.c:478
+#: main.c:495
#, c-format
msgid "%s: option `-W %s' unrecognized, ignored\n"
msgstr ""
-#: main.c:524
+#: main.c:541
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr ""
-#: main.c:545
+#: main.c:562
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
msgstr ""
-#: main.c:551
+#: main.c:568
msgid "`--posix' overrides `--traditional'"
msgstr ""
-#: main.c:562
+#: main.c:579
msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
msgstr ""
-#: main.c:566
+#: main.c:583
#, c-format
msgid "running %s setuid root may be a security problem"
msgstr ""
-#: main.c:571
+#: main.c:588
msgid "`--posix' overrides `--characters-as-bytes'"
msgstr ""
-#: main.c:630
+#: main.c:647
#, c-format
msgid "can't set binary mode on stdin (%s)"
msgstr ""
-#: main.c:633
+#: main.c:650
#, c-format
msgid "can't set binary mode on stdout (%s)"
msgstr ""
-#: main.c:635
+#: main.c:652
#, c-format
msgid "can't set binary mode on stderr (%s)"
msgstr ""
-#: main.c:693
+#: main.c:710
msgid "no program text at all!"
msgstr ""
-#: main.c:779
+#: main.c:799
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
msgstr ""
-#: main.c:781
+#: main.c:801
#, c-format
msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
msgstr ""
-#: main.c:786
+#: main.c:806
msgid "POSIX options:\t\tGNU long options: (standard)\n"
msgstr ""
-#: main.c:787
+#: main.c:807
msgid "\t-f progfile\t\t--file=progfile\n"
msgstr ""
-#: main.c:788
+#: main.c:808
msgid "\t-F fs\t\t\t--field-separator=fs\n"
msgstr ""
-#: main.c:789
+#: main.c:809
msgid "\t-v var=val\t\t--assign=var=val\n"
msgstr ""
-#: main.c:790
+#: main.c:810
msgid "Short options:\t\tGNU long options: (extensions)\n"
msgstr ""
-#: main.c:791
+#: main.c:811
msgid "\t-b\t\t\t--characters-as-bytes\n"
msgstr ""
-#: main.c:792
+#: main.c:812
msgid "\t-c\t\t\t--traditional\n"
msgstr ""
-#: main.c:793
+#: main.c:813
msgid "\t-C\t\t\t--copyright\n"
msgstr ""
-#: main.c:794
+#: main.c:814
msgid "\t-d[file]\t\t--dump-variables[=file]\n"
msgstr ""
-#: main.c:795
+#: main.c:815
msgid "\t-D[file]\t\t--debug[=file]\n"
msgstr ""
-#: main.c:796
+#: main.c:816
msgid "\t-e 'program-text'\t--source='program-text'\n"
msgstr ""
-#: main.c:797
+#: main.c:817
msgid "\t-E file\t\t\t--exec=file\n"
msgstr ""
-#: main.c:798
+#: main.c:818
msgid "\t-g\t\t\t--gen-pot\n"
msgstr ""
-#: main.c:799
+#: main.c:819
msgid "\t-h\t\t\t--help\n"
msgstr ""
-#: main.c:800
+#: main.c:820
msgid "\t-i includefile\t\t--include=includefile\n"
msgstr ""
-#: main.c:801
+#: main.c:821
msgid "\t-l library\t\t--load=library\n"
msgstr ""
-#: main.c:802
+#: main.c:822
msgid "\t-L [fatal]\t\t--lint[=fatal]\n"
msgstr ""
-#: main.c:803
+#: main.c:823
msgid "\t-n\t\t\t--non-decimal-data\n"
msgstr ""
-#: main.c:804
+#: main.c:824
msgid "\t-M\t\t\t--bignum\n"
msgstr ""
-#: main.c:805
+#: main.c:825
msgid "\t-N\t\t\t--use-lc-numeric\n"
msgstr ""
-#: main.c:806
+#: main.c:826
msgid "\t-o[file]\t\t--pretty-print[=file]\n"
msgstr ""
-#: main.c:807
+#: main.c:827
msgid "\t-O\t\t\t--optimize\n"
msgstr ""
-#: main.c:808
+#: main.c:828
msgid "\t-p[file]\t\t--profile[=file]\n"
msgstr ""
-#: main.c:809
+#: main.c:829
msgid "\t-P\t\t\t--posix\n"
msgstr ""
-#: main.c:810
+#: main.c:830
msgid "\t-r\t\t\t--re-interval\n"
msgstr ""
-#: main.c:811
+#: main.c:831
msgid "\t-S\t\t\t--sandbox\n"
msgstr ""
-#: main.c:812
+#: main.c:832
msgid "\t-t\t\t\t--lint-old\n"
msgstr ""
-#: main.c:813
+#: main.c:833
msgid "\t-V\t\t\t--version\n"
msgstr ""
-#: main.c:815
+#: main.c:835
msgid "\t-W nostalgia\t\t--nostalgia\n"
msgstr ""
-#: main.c:818
+#: main.c:838
msgid "\t-Y\t\t--parsedebug\n"
msgstr ""
@@ -2991,7 +3009,7 @@ msgstr ""
#. for this application. Please add _another line_ with the
#. address for translation bugs.
#. no-wrap
-#: main.c:827
+#: main.c:847
msgid ""
"\n"
"To report bugs, see node `Bugs' in `gawk.info', which is\n"
@@ -2999,21 +3017,21 @@ msgid ""
"\n"
msgstr ""
-#: main.c:831
+#: main.c:851
msgid ""
"gawk is a pattern scanning and processing language.\n"
"By default it reads standard input and writes standard output.\n"
"\n"
msgstr ""
-#: main.c:835
+#: main.c:855
msgid ""
"Examples:\n"
"\tgawk '{ sum += $1 }; END { print sum }' file\n"
"\tgawk -F: '{ print $1 }' /etc/passwd\n"
msgstr ""
-#: main.c:855
+#: main.c:880
#, c-format
msgid ""
"Copyright (C) 1989, 1991-%d Free Software Foundation.\n"
@@ -3025,7 +3043,7 @@ msgid ""
"\n"
msgstr ""
-#: main.c:863
+#: main.c:888
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"
@@ -3034,70 +3052,70 @@ msgid ""
"\n"
msgstr ""
-#: main.c:869
+#: main.c:894
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 ""
-#: main.c:904
+#: main.c:931
msgid "-Ft does not set FS to tab in POSIX awk"
msgstr ""
-#: main.c:1181
+#: main.c:1208
#, c-format
msgid "unknown value for field spec: %d\n"
msgstr ""
-#: main.c:1279
+#: main.c:1306
#, c-format
msgid ""
"%s: `%s' argument to `-v' not in `var=value' form\n"
"\n"
msgstr ""
-#: main.c:1305
+#: main.c:1332
#, c-format
msgid "`%s' is not a legal variable name"
msgstr ""
-#: main.c:1308
+#: main.c:1335
#, c-format
msgid "`%s' is not a variable name, looking for file `%s=%s'"
msgstr ""
-#: main.c:1312
+#: main.c:1339
#, c-format
msgid "cannot use gawk builtin `%s' as variable name"
msgstr ""
-#: main.c:1317
+#: main.c:1344
#, c-format
msgid "cannot use function `%s' as variable name"
msgstr ""
-#: main.c:1370
+#: main.c:1397
msgid "floating point exception"
msgstr ""
-#: main.c:1377
+#: main.c:1404
msgid "fatal error: internal error"
msgstr ""
-#: main.c:1392
+#: main.c:1419
msgid "fatal error: internal error: segfault"
msgstr ""
-#: main.c:1404
+#: main.c:1431
msgid "fatal error: internal error: stack overflow"
msgstr ""
-#: main.c:1463
+#: main.c:1490
#, c-format
msgid "no pre-opened fd %d"
msgstr ""
-#: main.c:1470
+#: main.c:1497
#, c-format
msgid "could not pre-open /dev/null for fd %d"
msgstr ""
@@ -3152,7 +3170,7 @@ msgstr ""
msgid "%s: argument #%d negative value %Zd will give strange results"
msgstr ""
-#: msg.c:61
+#: msg.c:68
#, c-format
msgid "cmd. line:"
msgstr ""
@@ -3202,68 +3220,63 @@ msgstr ""
msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
msgstr ""
-#: profile.c:70
+#: profile.c:71
#, c-format
msgid "could not open `%s' for writing: %s"
msgstr ""
-#: profile.c:72
+#: profile.c:73
msgid "sending profile to standard error"
msgstr ""
-#: profile.c:188
+#: profile.c:193
#, c-format
msgid ""
"\t# %s block(s)\n"
"\n"
msgstr ""
-#: profile.c:193
+#: profile.c:198
#, c-format
msgid ""
"\t# Rule(s)\n"
"\n"
msgstr ""
-#: profile.c:267
+#: profile.c:272
#, c-format
msgid "internal error: %s with null vname"
msgstr ""
-#: profile.c:530
+#: profile.c:537
msgid "internal error: builtin with null fname"
msgstr ""
-#: profile.c:942
+#: profile.c:949
#, c-format
msgid ""
"\t# Loaded extensions (-l and/or @load)\n"
"\n"
msgstr ""
-#: profile.c:965
+#: profile.c:972
#, c-format
msgid "\t# gawk profile, created %s\n"
msgstr ""
-#: profile.c:1351
+#: profile.c:1475
#, c-format
msgid ""
"\n"
"\t# Functions, listed alphabetically\n"
msgstr ""
-#: profile.c:1389
+#: profile.c:1513
#, c-format
msgid "redir2str: unknown redirection type %d"
msgstr ""
-#: re.c:583
-#, c-format
-msgid "range of the form `[%c-%c]' is locale dependent"
-msgstr ""
-
-#: re.c:610
+#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
msgstr ""
@@ -3332,6 +3345,6 @@ msgstr ""
msgid "No previous regular expression"
msgstr ""
-#: symbol.c:740
+#: symbol.c:741
msgid "can not pop main context"
msgstr ""
diff --git a/po/nl.gmo b/po/nl.gmo
index b30682cd..76c57134 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 71fb563d..dc037a99 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk 4.1.0b\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2014-01-14 22:23+0200\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2014-02-04 11:18+0100\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -40,8 +40,8 @@ msgstr "scalaire parameter '%s' wordt gebruikt als array"
msgid "attempt to use scalar `%s' as an array"
msgstr "scalair '%s' wordt gebruikt als array"
-#: array.c:409 array.c:576 builtin.c:85 builtin.c:1599 builtin.c:1645
-#: builtin.c:1658 builtin.c:2086 builtin.c:2100 eval.c:1122 eval.c:1126
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
@@ -79,19 +79,27 @@ msgstr "asorti: eerste argument is geen array"
#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
-msgstr "asort: een subarray van het eerste argument kan niet als tweede argument gebruikt worden"
+msgstr ""
+"asort: een subarray van het eerste argument kan niet als tweede argument "
+"gebruikt worden"
#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
-msgstr "asorti: een subarray van het eerste argument kan niet als tweede argument gebruikt worden"
+msgstr ""
+"asorti: een subarray van het eerste argument kan niet als tweede argument "
+"gebruikt worden"
#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
-msgstr "asort: een subarray van het tweede argument kan niet als eerste argument gebruikt worden"
+msgstr ""
+"asort: een subarray van het tweede argument kan niet als eerste argument "
+"gebruikt worden"
#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
-msgstr "asorti: een subarray van het tweede argument kan niet als eerste argument gebruikt worden"
+msgstr ""
+"asorti: een subarray van het tweede argument kan niet als eerste argument "
+"gebruikt worden"
#: array.c:1314
#, c-format
@@ -139,11 +147,11 @@ msgstr "dubbele 'case'-waarde in 'switch'-opdracht: %s"
msgid "duplicate `default' detected in switch body"
msgstr "dubbele 'default' in 'switch'-opdracht"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr "'break' buiten een lus of 'switch'-opdracht is niet toegestaan"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "'continue' buiten een lus is niet toegestaan"
@@ -163,7 +171,8 @@ msgstr "'return' wordt gebruikt buiten functiecontext"
#: awkgram.y:922
msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr "kale 'print' in BEGIN- of END-regel moet vermoedelijk 'print \"\"' zijn"
+msgstr ""
+"kale 'print' in BEGIN- of END-regel moet vermoedelijk 'print \"\"' zijn"
#: awkgram.y:988 awkgram.y:1037
msgid "`delete' is not allowed with SYMTAB"
@@ -226,268 +235,272 @@ msgstr "indirecte functieaanroepen zijn een gawk-uitbreiding"
#: awkgram.y:1620
#, c-format
msgid "can not use special variable `%s' for indirect function call"
-msgstr "kan speciale variabele '%s' niet voor indirecte functieaanroep gebruiken"
+msgstr ""
+"kan speciale variabele '%s' niet voor indirecte functieaanroep gebruiken"
#: awkgram.y:1698
msgid "invalid subscript expression"
msgstr "ongeldige index-expressie"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:126
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "waarschuwing: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:158
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "fataal: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "onverwacht regeleinde of einde van string"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:523 debug.c:539
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "kan bronbestand '%s' niet openen om te lezen (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "kan gedeelde bibliotheek '%s' niet openen om te lezen (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:135 debug.c:5206
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "reden onbekend"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr "kan '%s' niet invoegen en als programmabestand gebruiken"
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "bronbestand '%s' is reeds ingesloten"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, c-format
msgid "already loaded shared library `%s'"
msgstr "gedeelde bibliotheek '%s' is reeds geladen"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "'@include' is een gawk-uitbreiding"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "lege bestandsnaam na '@include'"
-#: awkgram.y:2470
+#: awkgram.y:2494
msgid "@load is a gawk extension"
msgstr "'@load' is een gawk-uitbreiding"
-#: awkgram.y:2476
+#: awkgram.y:2500
msgid "empty filename after @load"
msgstr "lege bestandsnaam na '@load'"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "lege programmatekst op opdrachtregel"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "kan bronbestand '%s' niet lezen (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "bronbestand '%s' is leeg"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "bronbestand eindigt niet met een regeleindeteken (LF)"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr "onafgesloten reguliere expressie eindigt met '\\' aan bestandseinde"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "%s: %d: regexp-optie '/.../%c' van 'tawk' werkt niet in gawk"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "regexp-optie '/.../%c' van 'tawk' werkt niet in gawk"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "onafgesloten reguliere expressie"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "onafgesloten reguliere expressie aan bestandseinde"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr "gebruik van regelvoortzetting '\\ #...' is niet overdraagbaar"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "backslash is niet het laatste teken op de regel"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX staat operator '**=' niet toe"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "oude 'awk' kent de operator '**=' niet"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX staat operator '**' niet toe"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "oude 'awk' kent de operator '**' niet"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "oude 'awk' kent de operator '^=' niet"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "oude 'awk' kent de operator '^' niet"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "onafgesloten string"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "ongeldig teken '%c' in expressie"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "'%s' is een gawk-uitbreiding"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX staat '%s' niet toe"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "oude 'awk' kent '%s' niet"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "'goto' wordt als schadelijk beschouwd!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d is een ongeldig aantal argumenten voor %s"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
msgstr "%s: een stringwaarde als laatste vervangingsargument heeft geen effect"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "%s: derde parameter is geen veranderbaar object"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: derde argument is een gawk-uitbreiding"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: tweede argument is een gawk-uitbreiding"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr "dcgettext(_\"...\") is onjuist: verwijder het liggende streepje"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr "dcngettext(_\"...\") is onjuist: verwijder het liggende streepje"
-#: awkgram.y:3992
+#: awkgram.y:4016
msgid "index: regexp constant as second argument is not allowed"
-msgstr "index: een reguliere-expressie-constante als tweede argument is niet toegestaan"
+msgstr ""
+"index: een reguliere-expressie-constante als tweede argument is niet "
+"toegestaan"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "functie '%s': parameter '%s' schaduwt een globale variabele"
-#: awkgram.y:4102 debug.c:4041 debug.c:4084 debug.c:5204
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "kan '%s' niet openen om te schrijven (%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "variabelenlijst gaat naar standaardfoutuitvoer"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: sluiten is mislukt (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() twee keer aangeroepen!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "er waren geschaduwde variabelen."
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "functienaam '%s' is al eerder gedefinieerd"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr "functie '%s': kan functienaam niet als parameternaam gebruiken"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
-msgstr "functie '%s': kan speciale variabele '%s' niet als functieparameter gebruiken"
+msgstr ""
+"functie '%s': kan speciale variabele '%s' niet als functieparameter gebruiken"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "functie '%s': parameter #%d, '%s', dupliceert parameter #%d"
-#: awkgram.y:4359 awkgram.y:4365
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "functie '%s' wordt aangeroepen maar is nergens gedefinieerd"
-#: awkgram.y:4369
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "functie '%s' is gedefinieerd maar wordt nergens direct aangeroepen"
-#: awkgram.y:4401
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr "regexp-constante als parameter #%d levert booleanwaarde op"
-#: awkgram.y:4460
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -496,20 +509,23 @@ msgstr ""
"functie '%s' wordt aangeroepen met een spatie tussen naam en '(',\n"
"of wordt gebruikt als variabele of array"
-#: awkgram.y:4696
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "deling door nul"
-#: awkgram.y:4705
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "deling door nul in '%%'"
-#: awkgram.y:5025
-msgid "cannot assign a value to the result of a field post-increment expression"
-msgstr "kan geen waarde toewijzen aan het resultaat van een post-increment-expressie van een veld"
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
+msgstr ""
+"kan geen waarde toewijzen aan het resultaat van een post-increment-expressie "
+"van een veld"
-#: awkgram.y:5028
+#: awkgram.y:5052
#, c-format
msgid "invalid target of assignment (opcode %s)"
msgstr "ongeldig doel van toewijzing (opcode %s)"
@@ -535,12 +551,16 @@ msgstr "exp: argument %g ligt buiten toegestane bereik"
#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
-msgstr "fflush: kan pijp niet leegmaken: '%s' is geopend om te lezen, niet om te schrijven"
+msgstr ""
+"fflush: kan pijp niet leegmaken: '%s' is geopend om te lezen, niet om te "
+"schrijven"
#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
-msgstr "fflush: kan bestand niet leegmaken: '%s' is geopend om te lezen, niet om te schrijven"
+msgstr ""
+"fflush: kan bestand niet leegmaken: '%s' is geopend om te lezen, niet om te "
+"schrijven"
#: builtin.c:244
#, c-format
@@ -620,297 +640,302 @@ msgstr "fataal: '$' is niet toegestaan na een punt in de opmaak"
msgid "fatal: no `$' supplied for positional field width or precision"
msgstr "fataal: geen '$' opgegeven bij positionele veldbreedte of -precisie"
-#: builtin.c:1011
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "'l' is betekenisloos in awk-opmaak; genegeerd"
-#: builtin.c:1015
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "fataal: 'l' is niet toegestaan in POSIX awk-opmaak"
-#: builtin.c:1028
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "'L' is betekenisloos in awk-opmaak; genegeerd"
-#: builtin.c:1032
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "fataal: 'L' is niet toegestaan in POSIX awk-opmaak"
-#: builtin.c:1045
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "'h' is betekenisloos in awk-opmaak; genegeerd"
-#: builtin.c:1049
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "fataal: 'h' is niet toegestaan in POSIX awk-opmaak"
-#: builtin.c:1447
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf: waarde %g ligt buiten toegestaan bereik voor opmaak '%%%c'"
-#: builtin.c:1545
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
-msgstr "onbekend opmaakteken '%c' wordt genegeerd: geen argument is geconverteerd"
+msgstr ""
+"onbekend opmaakteken '%c' wordt genegeerd: geen argument is geconverteerd"
-#: builtin.c:1550
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr "fataal: niet genoeg argumenten voor opmaakstring"
-#: builtin.c:1552
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "niet genoeg ^ voor deze"
-#: builtin.c:1559
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: opmaakaanduiding mist een stuurletter"
-#: builtin.c:1562
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "te veel argumenten voor opmaakstring"
-#: builtin.c:1618
+#: builtin.c:1634
msgid "sprintf: no arguments"
msgstr "sprintf: geen argumenten"
-#: builtin.c:1641 builtin.c:1652
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: geen argumenten"
-#: builtin.c:1695
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: argument is geen getal"
-#: builtin.c:1699
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: argument %g is negatief"
-#: builtin.c:1730
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: lengte %g is niet >= 1"
-#: builtin.c:1732
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: lengte %g is niet >= 0"
-#: builtin.c:1739
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: lengte %g is geen integer; wordt afgekapt"
-#: builtin.c:1744
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
-msgstr "substr: lengte %g is te groot voor stringindexering; wordt verkort tot %g"
+msgstr ""
+"substr: lengte %g is te groot voor stringindexering; wordt verkort tot %g"
-#: builtin.c:1756
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: startindex %g is ongeldig; 1 wordt gebruikt"
-#: builtin.c:1761
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr "substr: startindex %g is geen integer; wordt afgekapt"
-#: builtin.c:1786
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: bronstring heeft lengte nul"
-#: builtin.c:1802
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: startindex %g ligt voorbij het einde van de string"
-#: builtin.c:1810
+#: builtin.c:1826
#, c-format
-msgid "substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr "substr: lengte %g bij startindex %g is groter dan de lengte van het eerste argument (%lu)"
+msgid ""
+"substr: length %g at start index %g exceeds length of first argument (%lu)"
+msgstr ""
+"substr: lengte %g bij startindex %g is groter dan de lengte van het eerste "
+"argument (%lu)"
-#: builtin.c:1884
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr "strftime: opmaakwaarde in PROCINFO[\"strftime\"] is numeriek"
-#: builtin.c:1907
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: tweede argument is geen getal"
-#: builtin.c:1911
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr "strftime: tweede argument is kleiner dan nul of te groot voor 'time_t'"
-#: builtin.c:1918
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: eerste argument is geen string"
-#: builtin.c:1925
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: opmaakstring is leeg"
-#: builtin.c:1991
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: argument is geen string"
-#: builtin.c:2008
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr "mktime: minstens één van waarden valt buiten het standaardbereik"
-#: builtin.c:2043
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "'system'-functie is niet toegestaan in sandbox-modus"
-#: builtin.c:2048
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: argument is geen string"
-#: builtin.c:2168
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "verwijzing naar ongeïnitialiseerd veld '$%d'"
-#: builtin.c:2255
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: argument is geen string"
-#: builtin.c:2289
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: argument is geen string"
-#: builtin.c:2325 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: eerste argument is geen getal"
-#: builtin.c:2327 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: tweede argument is geen getal"
-#: builtin.c:2346
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: argument is geen getal"
-#: builtin.c:2362
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: argument is geen getal"
-#: builtin.c:2415 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: argument is geen getal"
-#: builtin.c:2446
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: derde argument is geen array"
-#: builtin.c:2718
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: derde argument is 0; wordt beschouwd als 1"
-#: builtin.c:3014
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: eerste argument is geen getal"
-#: builtin.c:3016
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: tweede argument is geen getal"
-#: builtin.c:3022
+#: builtin.c:3038
#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr "lshift(%f, %f): negatieve waarden geven rare resultaten"
-#: builtin.c:3024
+#: builtin.c:3040
#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%f, %f): cijfers na de komma worden afgekapt"
-#: builtin.c:3026
+#: builtin.c:3042
#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr "lshift(%f, %f): te grote opschuifwaarden geven rare resultaten"
-#: builtin.c:3051
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: eerste argument is geen getal"
-#: builtin.c:3053
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: tweede argument is geen getal"
-#: builtin.c:3059
+#: builtin.c:3075
#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr "rshift(%f, %f): negatieve waarden geven rare resultaten"
-#: builtin.c:3061
+#: builtin.c:3077
#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%f, %f): cijfers na de komma worden afgekapt"
-#: builtin.c:3063
+#: builtin.c:3079
#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr "rshift(%f, %f): te grote opschuifwaarden geven rare resultaten"
-#: builtin.c:3088 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
msgid "and: called with less than two arguments"
msgstr "and: aangeroepen met minder dan twee argumenten"
-#: builtin.c:3093
+#: builtin.c:3109
#, c-format
msgid "and: argument %d is non-numeric"
msgstr "and: argument %d is niet-numeriek"
-#: builtin.c:3097
+#: builtin.c:3113
#, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr "and: negatieve waarde %2$g van argument %1$d geeft rare resultaten"
-#: builtin.c:3120 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
msgid "or: called with less than two arguments"
msgstr "or: aangeroepen met minder dan twee argumenten"
-#: builtin.c:3125
+#: builtin.c:3141
#, c-format
msgid "or: argument %d is non-numeric"
msgstr "or: argument %d is niet-numeriek"
-#: builtin.c:3129
+#: builtin.c:3145
#, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr "or: negatieve waarde %2$g van argument %1$d geeft rare resultaten"
-#: builtin.c:3151 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
msgid "xor: called with less than two arguments"
msgstr "xor: aangeroepen met minder dan twee argumenten"
-#: builtin.c:3157
+#: builtin.c:3173
#, c-format
msgid "xor: argument %d is non-numeric"
msgstr "xor: argument %d is niet-numeriek"
-#: builtin.c:3161
+#: builtin.c:3177
#, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor: negatieve waarde %2$g van argument %1$d geeft rare resultaten"
-#: builtin.c:3186 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: argument is geen getal"
-#: builtin.c:3192
+#: builtin.c:3208
#, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%f): negatieve waarden geven rare resultaten"
-#: builtin.c:3194
+#: builtin.c:3210
#, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%f): cijfers na de komma worden afgekapt"
-#: builtin.c:3363
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: '%s' is geen geldige taalregio-deelcategorie"
@@ -942,7 +967,8 @@ msgstr "save \"%s\": commando niet toegestaan."
#: command.y:339
msgid "Can't use command `commands' for breakpoint/watchpoint commands"
-msgstr "Kan commando 'commands' niet voor breekpunt-/kijkpunt-commando's gebruiken"
+msgstr ""
+"Kan commando 'commands' niet voor breekpunt-/kijkpunt-commando's gebruiken"
#: command.y:341
msgid "no breakpoint/watchpoint has been set yet"
@@ -1016,24 +1042,39 @@ msgid "non-zero integer value"
msgstr "niet-nul geheel getal"
#: command.y:817
-msgid "backtrace [N] - print trace of all or N innermost (outermost if N < 0) frames."
-msgstr "backtrace [N] - een trace weergeven van alle of N binnenste frames (of buitenste als N < 0)"
+msgid ""
+"backtrace [N] - print trace of all or N innermost (outermost if N < 0) "
+"frames."
+msgstr ""
+"backtrace [N] - een trace weergeven van alle of N binnenste frames (of "
+"buitenste als N < 0)"
#: command.y:819
-msgid "break [[filename:]N|function] - set breakpoint at the specified location."
-msgstr "break [[BESTANDSNAAM:]REGELNUMMER|FUNCTIE] - breekpunt zetten op gegeven positie"
+msgid ""
+"break [[filename:]N|function] - set breakpoint at the specified location."
+msgstr ""
+"break [[BESTANDSNAAM:]REGELNUMMER|FUNCTIE] - breekpunt zetten op gegeven "
+"positie"
#: command.y:821
msgid "clear [[filename:]N|function] - delete breakpoints previously set."
-msgstr "clear [[BESTANDSNAAM:]REGELNUMMER|FUNCTIE] - eerder gezet breekpunt verwijderen"
+msgstr ""
+"clear [[BESTANDSNAAM:]REGELNUMMER|FUNCTIE] - eerder gezet breekpunt "
+"verwijderen"
#: command.y:823
-msgid "commands [num] - starts a list of commands to be executed at a breakpoint(watchpoint) hit."
-msgstr "commands [NUMMER] - een lijst van commando's beginnen die uitgevoerd moeten worden wanneer een breekpunt/kijkpunt getroffen wordt"
+msgid ""
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
+msgstr ""
+"commands [NUMMER] - een lijst van commando's beginnen die uitgevoerd moeten "
+"worden wanneer een breekpunt/kijkpunt getroffen wordt"
#: command.y:825
msgid "condition num [expr] - set or clear breakpoint or watchpoint condition."
-msgstr "condition NUMMER [EXPRESSIE] - de conditie van een breekpunt/kijkpunt zetten of wissen"
+msgstr ""
+"condition NUMMER [EXPRESSIE] - de conditie van een breekpunt/kijkpunt zetten "
+"of wissen"
#: command.y:827
msgid "continue [COUNT] - continue program being debugged."
@@ -1049,7 +1090,9 @@ msgstr "disable [BREEKPUNTEN] [BEREIK] - de gegeven breekpunten uitschakelen"
#: command.y:833
msgid "display [var] - print value of variable each time the program stops."
-msgstr "display [VAR] - waarde van variabele weergeven elke keer dat het programma stopt"
+msgstr ""
+"display [VAR] - waarde van variabele weergeven elke keer dat het programma "
+"stopt"
#: command.y:835
msgid "down [N] - move N frames down the stack."
@@ -1057,11 +1100,14 @@ msgstr "down [AANTAL] - dit aantal frames naar beneden in de stack gaan"
#: command.y:837
msgid "dump [filename] - dump instructions to file or stdout."
-msgstr "dump [BESTANDSNAAM] - instructies dumpen op standaarduitvoer (of naar bestand)"
+msgstr ""
+"dump [BESTANDSNAAM] - instructies dumpen op standaarduitvoer (of naar "
+"bestand)"
#: command.y:839
msgid "enable [once|del] [breakpoints] [range] - enable specified breakpoints."
-msgstr "enable [once|del] [BREEKPUNTEN] [BEREIK] - de gegeven breekpunten inschakelen"
+msgstr ""
+"enable [once|del] [BREEKPUNTEN] [BEREIK] - de gegeven breekpunten inschakelen"
#: command.y:841
msgid "end - end a list of commands or awk statements."
@@ -1081,27 +1127,41 @@ msgstr "frame [NUMMER] - stack-frame met dit nummer selecteren en weergeven"
#: command.y:849
msgid "help [command] - print list of commands or explanation of command."
-msgstr "help [COMMANDO] - lijst van beschikbare commando's (of uitleg van commando) tonen"
+msgstr ""
+"help [COMMANDO] - lijst van beschikbare commando's (of uitleg van commando) "
+"tonen"
#: command.y:851
msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT."
-msgstr "ignore NUMMER AANTAL - het aantal keren dat dit breekpuntnummer genegeerd moet worden"
+msgstr ""
+"ignore NUMMER AANTAL - het aantal keren dat dit breekpuntnummer genegeerd "
+"moet worden"
#: command.y:853
-msgid "info topic - source|sources|variables|functions|break|frame|args|locals|display|watch."
-msgstr "info THEMA - source|sources|variables|functions|break|frame|args|locals|display|watch"
+msgid ""
+"info topic - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch."
+msgstr ""
+"info THEMA - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch"
#: command.y:855
msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)."
-msgstr "list [-|+|[BESTANDSNAAM:]REGELNUMMER|FUNCTIE|BEREIK] - aangegeven regels tonen"
+msgstr ""
+"list [-|+|[BESTANDSNAAM:]REGELNUMMER|FUNCTIE|BEREIK] - aangegeven regels "
+"tonen"
#: command.y:857
msgid "next [COUNT] - step program, proceeding through subroutine calls."
-msgstr "next [AANTAL] - programma uitvoeren tot de volgende bronregel bereikt is"
+msgstr ""
+"next [AANTAL] - programma uitvoeren tot de volgende bronregel bereikt is"
#: command.y:859
-msgid "nexti [COUNT] - step one instruction, but proceed through subroutine calls."
-msgstr "nexti [AANTAL] - één instructie (of dit aantal) uitvoeren, waarbij een functie-aanroep als één telt"
+msgid ""
+"nexti [COUNT] - step one instruction, but proceed through subroutine calls."
+msgstr ""
+"nexti [AANTAL] - één instructie (of dit aantal) uitvoeren, waarbij een "
+"functie-aanroep als één telt"
#: command.y:861
msgid "option [name[=value]] - set or display debugger option(s)."
@@ -1136,8 +1196,11 @@ msgid "set var = value - assign value to a scalar variable."
msgstr "set VAR = WAARDE - een waarde aan een scalaire variabele toekennen"
#: command.y:879
-msgid "silent - suspends usual message when stopped at a breakpoint/watchpoint."
-msgstr "silent - de gewone meldingen bij het stoppen bij een breekpunt/kijkpunt onderdrukken"
+msgid ""
+"silent - suspends usual message when stopped at a breakpoint/watchpoint."
+msgstr ""
+"silent - de gewone meldingen bij het stoppen bij een breekpunt/kijkpunt "
+"onderdrukken"
#: command.y:881
msgid "source file - execute commands from file."
@@ -1145,7 +1208,8 @@ msgstr "source BESTANDSNAAM - commando's uit dit bestand uitvoeren"
#: command.y:883
msgid "step [COUNT] - step program until it reaches a different source line."
-msgstr "step [AANTAL] - programma uitvoeren tot een andere bronregel bereikt is"
+msgstr ""
+"step [AANTAL] - programma uitvoeren tot een andere bronregel bereikt is"
#: command.y:885
msgid "stepi [COUNT] - step one instruction exactly."
@@ -1153,7 +1217,8 @@ msgstr "stepi [AANTAL] - precies één (of dit aantal) instructies uitvoeren"
#: command.y:887
msgid "tbreak [[filename:]N|function] - set a temporary breakpoint."
-msgstr "tbreak [[BESTANDSNAAM:]REGELNUMMER|FUNCTIE] - een tijdelijk breekpunt zetten"
+msgstr ""
+"tbreak [[BESTANDSNAAM:]REGELNUMMER|FUNCTIE] - een tijdelijk breekpunt zetten"
#: command.y:889
msgid "trace on|off - print instruction before executing."
@@ -1161,11 +1226,16 @@ msgstr "trace on|off - instructie weergeven alvorens deze uit te voeren"
#: command.y:891
msgid "undisplay [N] - remove variable(s) from automatic display list."
-msgstr "undisplay [AANTAL] - variabele(n) van automatische weergavelijst verwijderen"
+msgstr ""
+"undisplay [AANTAL] - variabele(n) van automatische weergavelijst verwijderen"
#: command.y:893
-msgid "until [[filename:]N|function] - execute until program reaches a different line or line N within current frame."
-msgstr "until [[BESTANDSNAAM:]N|FUNCTIE] - programma uitvoeren totdat deze een andere regel bereikt of regel N binnen het huidige frame"
+msgid ""
+"until [[filename:]N|function] - execute until program reaches a different "
+"line or line N within current frame."
+msgstr ""
+"until [[BESTANDSNAAM:]N|FUNCTIE] - programma uitvoeren totdat deze een "
+"andere regel bereikt of regel N binnen het huidige frame"
#: command.y:895
msgid "unwatch [N] - remove variable(s) from watch list."
@@ -1271,7 +1341,8 @@ msgstr "kan geen bronbestand met naam '%s' vinden (%s)"
#: debug.c:529
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
-msgstr "Waarschuwing: bronbestand '%s' is gewijzigd sinds programmacompilatie.\n"
+msgstr ""
+"Waarschuwing: bronbestand '%s' is gewijzigd sinds programmacompilatie.\n"
#: debug.c:551
#, c-format
@@ -1501,7 +1572,9 @@ msgstr "ongeldig framenummer"
#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Opmerking: breekpunt %d (ingeschakeld, volgende %ld passages genegeerd), ook gezet op %s:%d"
+msgstr ""
+"Opmerking: breekpunt %d (ingeschakeld, volgende %ld passages genegeerd), ook "
+"gezet op %s:%d"
#: debug.c:2207
#, c-format
@@ -1511,7 +1584,9 @@ msgstr "Opmerking: breekpunt %d (ingeschakeld), ook gezet op %s:%d"
#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Opmerking: breekpunt %d (uitgeschakeld, volgende %ld passages genegeerd), ook gezet op %s:%d"
+msgstr ""
+"Opmerking: breekpunt %d (uitgeschakeld, volgende %ld passages genegeerd), "
+"ook gezet op %s:%d"
#: debug.c:2221
#, c-format
@@ -1617,7 +1692,8 @@ msgstr "fout: kan niet herstarten; operatie is niet toegestaan\n"
#: debug.c:2942
#, c-format
msgid "error (%s): cannot restart, ignoring rest of the commands\n"
-msgstr "fout(%s): kan niet herstarten; de resterende commando's worden genegeerd\n"
+msgstr ""
+"fout(%s): kan niet herstarten; de resterende commando's worden genegeerd\n"
#: debug.c:2950
#, c-format
@@ -1705,7 +1781,8 @@ msgstr "'until' is niet zinvol met een niet-lokale sprong '%s'\n"
#: debug.c:4185
msgid "\t------[Enter] to continue or q [Enter] to quit------"
-msgstr "\t------[Enter] om verder te gaan, of [q] [Enter] om af te sluiten------"
+msgstr ""
+"\t------[Enter] om verder te gaan, of [q] [Enter] om af te sluiten------"
#: debug.c:4186
msgid "q"
@@ -1739,40 +1816,40 @@ msgstr "'return' is niet toegestaan in huidige context; statement is genegeerd"
msgid "No symbol `%s' in current context"
msgstr "Geen symbool '%s' in huidige context"
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1191
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr "ongepaarde ["
-#: dfa.c:1052
+#: dfa.c:1174
msgid "invalid character class"
msgstr "ongeldige tekenklasse"
-#: dfa.c:1228
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "syntax van tekenklasse is [[:space:]], niet [:space:]"
-#: dfa.c:1280
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr "onafgemaakte \\-stuurcode"
-#: dfa.c:1427 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Ongeldige inhoud van \\{\\}"
-#: dfa.c:1430 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "Reguliere expressie is te groot"
-#: dfa.c:1847
+#: dfa.c:1936
msgid "unbalanced ("
msgstr "ongepaarde ("
-#: dfa.c:1973
+#: dfa.c:2062
msgid "no syntax specified"
msgstr "geen syntax opgegeven"
-#: dfa.c:1981
+#: dfa.c:2070
msgid "unbalanced )"
msgstr "ongepaarde )"
@@ -1894,8 +1971,10 @@ msgstr "load_ext: kan bibliotheek '%s' niet openen (%s)\n"
#: ext.c:104
#, c-format
-msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
-msgstr "load_ext: bibliotheek '%s' definieert 'plugin_is_GPL_compatible' niet (%s)\n"
+msgid ""
+"load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
+msgstr ""
+"load_ext: bibliotheek '%s' definieert 'plugin_is_GPL_compatible' niet (%s)\n"
#: ext.c:110
#, c-format
@@ -1922,8 +2001,10 @@ msgstr "extension: kan bibliotheek '%s' niet openen (%s)"
#: ext.c:186
#, c-format
-msgid "extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-msgstr "extension: bibliotheek '%s' definieert 'plugin_is_GPL_compatible' niet (%s)"
+msgid ""
+"extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
+msgstr ""
+"extension: bibliotheek '%s' definieert 'plugin_is_GPL_compatible' niet (%s)"
#: ext.c:190
#, c-format
@@ -1952,7 +2033,8 @@ msgstr "make_builtin: functienaam '%s' is al eerder gedefinieerd"
#: ext.c:246
#, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
-msgstr "make_builtin: kan in gawk ingebouwde '%s' niet als functienaam gebruiken"
+msgstr ""
+"make_builtin: kan in gawk ingebouwde '%s' niet als functienaam gebruiken"
#: ext.c:249 ext.c:304
#, c-format
@@ -1991,7 +2073,8 @@ msgstr "extension: kan in gawk ingebouwde '%s' niet als functienaam gebruiken"
#: ext.c:375
#, c-format
msgid "function `%s' defined to take no more than %d argument(s)"
-msgstr "functie '%s' is gedefinieerd om niet meer dan %d argument(en) te accepteren"
+msgstr ""
+"functie '%s' is gedefinieerd om niet meer dan %d argument(en) te accepteren"
#: ext.c:378
#, c-format
@@ -2014,7 +2097,8 @@ msgstr "het dynamisch laden van de bibliotheek wordt niet ondersteund"
#: extension/filefuncs.c:159
msgid "chdir: called with incorrect number of arguments, expecting 1"
-msgstr "chdir: aangeroepen met onjuist aantal argumenten; één wordt er verwacht"
+msgstr ""
+"chdir: aangeroepen met onjuist aantal argumenten; één wordt er verwacht"
#: extension/filefuncs.c:439
#, c-format
@@ -2065,7 +2149,8 @@ msgstr "fts-verwerking: kan element niet instellen"
#: extension/filefuncs.c:784
msgid "fts: called with incorrect number of arguments, expecting 3"
-msgstr "fts: aangeroepen met onjuist aantal argumenten; drie worden er verwacht"
+msgstr ""
+"fts: aangeroepen met onjuist aantal argumenten; drie worden er verwacht"
#: extension/filefuncs.c:787
msgid "fts: bad first parameter"
@@ -2159,12 +2244,15 @@ msgstr "inplace_begin(): verwachtte twee argumenten maar is aangeroepen met %d"
#: extension/inplace.c:136
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
-msgstr "inplace_begin(): kan eerste argument niet als bestandsnaamstring oppakken"
+msgstr ""
+"inplace_begin(): kan eerste argument niet als bestandsnaamstring oppakken"
#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
-msgstr "inplace_begin(): in-situ-bewerken wordt uitgeschakeld voor ongeldige bestandsnaam '%s'"
+msgstr ""
+"inplace_begin(): in-situ-bewerken wordt uitgeschakeld voor ongeldige "
+"bestandsnaam '%s'"
#: extension/inplace.c:151
#, c-format
@@ -2203,7 +2291,8 @@ msgstr "inplace_begin(): close(%d) is mislukt (%s)"
#: extension/inplace.c:210
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
-msgstr "inplace_end(): kan eerste argument niet als bestandsnaamstring oppakken"
+msgstr ""
+"inplace_end(): kan eerste argument niet als bestandsnaamstring oppakken"
#: extension/inplace.c:217
msgid "inplace_end: in-place editing not active"
@@ -2258,16 +2347,16 @@ msgstr "chr: aangeroepen zonder argumenten"
msgid "chr: called with inappropriate argument(s)"
msgstr "chr: aangeroepen met onjuiste argumenten"
-#: extension/readdir.c:277
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr "dir_take_control_of(): opendir()/fdopendir() is mislukt: %s"
-#: extension/readfile.c:84
+#: extension/readfile.c:113
msgid "readfile: called with too many arguments"
msgstr "readfile: aangeroepen met te veel argumenten"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
msgid "readfile: called with no arguments"
msgstr "readfile: aangeroepen zonder argumenten"
@@ -2319,27 +2408,27 @@ msgstr "do_reada: clear_array() is mislukt\n"
msgid "read_array: set_array_element failed\n"
msgstr "read_array: set_array_element() is mislukt\n"
-#: extension/time.c:106
+#: extension/time.c:113
msgid "gettimeofday: ignoring arguments"
msgstr "gettimeofday: argumenten worden genegeerd"
-#: extension/time.c:137
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr "gettimeofday: wordt op dit platform niet ondersteund"
-#: extension/time.c:158
+#: extension/time.c:165
msgid "sleep: called with too many arguments"
msgstr "sleep: aangeroepen met te veel argumenten"
-#: extension/time.c:161
+#: extension/time.c:168
msgid "sleep: missing required numeric argument"
msgstr "sleep: vereist numeriek argument ontbreekt"
-#: extension/time.c:167
+#: extension/time.c:174
msgid "sleep: argument is negative"
msgstr "sleep: argument is negatief"
-#: extension/time.c:201
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr "sleep: wordt op dit platform niet ondersteund"
@@ -2361,15 +2450,21 @@ msgstr "split: tweede argument is geen array"
#: field.c:993
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"
+msgstr ""
+"split: hetzelfde array kan niet zowel als tweede als als vierde argument "
+"gebruikt worden"
#: field.c:998
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"
+msgstr ""
+"split: een subarray van het tweede argument kan niet als vierde argument "
+"gebruikt worden"
#: field.c:1001
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"
+msgstr ""
+"split: een subarray van het vierde argument kan niet als tweede argument "
+"gebruikt worden"
#: field.c:1032
msgid "split: null string for third arg is a gawk extension"
@@ -2389,15 +2484,21 @@ msgstr "patsplit: derde argument moet niet-nil zijn"
#: field.c:1087
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"
+msgstr ""
+"patsplit: hetzelfde array kan niet zowel als tweede als als vierde argument "
+"gebruikt worden"
#: field.c:1092
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"
+msgstr ""
+"patsplit: een subarray van het tweede argument kan niet als vierde argument "
+"gebruikt worden"
#: field.c:1095
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"
+msgstr ""
+"patsplit: een subarray van het vierde argument kan niet als tweede argument "
+"gebruikt worden"
#: field.c:1133
msgid "`FIELDWIDTHS' is a gawk extension"
@@ -2432,20 +2533,20 @@ msgstr "node_to_awk_value(): lege knoop ontvangen"
msgid "node_to_awk_value: received null val"
msgstr "node_to_awk_value(): lege waarde ontvangen"
-#: gawkapi.c:808
+#: gawkapi.c:807
msgid "remove_element: received null array"
msgstr "remove_element(): leeg array ontvangen"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr "remove_element(): lege index ontvangen"
-#: gawkapi.c:948
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr "api_flatten_array(): kan index %d niet converteren\n"
-#: gawkapi.c:953
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr "api_flatten_array(): kan waarde %d niet converteren\n"
@@ -2537,7 +2638,9 @@ msgstr "expressie voor omleiding '%s' heeft een lege string als waarde"
#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
-msgstr "bestandsnaam '%s' voor omleiding '%s' kan het resultaat zijn van een logische expressie"
+msgstr ""
+"bestandsnaam '%s' voor omleiding '%s' kan het resultaat zijn van een "
+"logische expressie"
#: io.c:809
#, c-format
@@ -2570,8 +2673,10 @@ msgid "can't redirect to `%s' (%s)"
msgstr "kan niet omleiden naar '%s' (%s)"
#: io.c:1040
-msgid "reached system limit for open files: starting to multiplex file descriptors"
-msgstr "systeemgrens voor aantal open bestanden is bereikt: begonnen met multiplexen"
+msgid ""
+"reached system limit for open files: starting to multiplex file descriptors"
+msgstr ""
+"systeemgrens voor aantal open bestanden is bereikt: begonnen met multiplexen"
#: io.c:1056
#, c-format
@@ -2598,7 +2703,9 @@ msgstr "sluiten van een nooit-geopende omleiding"
#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr "close: omleiding '%s' is niet geopend met '|&'; tweede argument wordt genegeerd"
+msgstr ""
+"close: omleiding '%s' is niet geopend met '|&'; tweede argument wordt "
+"genegeerd"
#: io.c:1222
#, c-format
@@ -2705,7 +2812,9 @@ msgstr "kan standaarduitvoer van dochterproces niet sluiten (%s)"
#: io.c:1922
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
-msgstr "kan slaaf-pty niet overzetten naar standaarduitvoer van dochterproces (dup: %s)"
+msgstr ""
+"kan slaaf-pty niet overzetten naar standaarduitvoer van dochterproces (dup: "
+"%s)"
#: io.c:1924 io.c:2110
#, c-format
@@ -2715,7 +2824,9 @@ msgstr "kan standaardinvoer van dochterproces niet sluiten (%s)"
#: io.c:1927
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
-msgstr "kan slaaf-pty niet overzetten naar standaardinvoer van dochterproces (dup: %s)"
+msgstr ""
+"kan slaaf-pty niet overzetten naar standaardinvoer van dochterproces (dup: "
+"%s)"
#: io.c:1929 io.c:1951
#, c-format
@@ -2725,12 +2836,14 @@ msgstr "kan slaaf-pty niet sluiten (%s)"
#: io.c:2040 io.c:2108 io.c:2276 io.c:2308
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
-msgstr "kan pijp niet overzetten naar standaarduitvoer van dochterproces (dup: %s)"
+msgstr ""
+"kan pijp niet overzetten naar standaarduitvoer van dochterproces (dup: %s)"
#: io.c:2047 io.c:2113
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
-msgstr "kan pijp niet overzetten naar standaardinvoer van dochterproces (dup: %s)"
+msgstr ""
+"kan pijp niet overzetten naar standaardinvoer van dochterproces (dup: %s)"
#: io.c:2073 io.c:2298
msgid "restoring stdout in parent process failed\n"
@@ -2779,8 +2892,10 @@ msgstr "register_output_wrapper(): NULL-pointer gekregen"
#: io.c:2873
#, c-format
-msgid "output wrapper `%s' conflicts with previously installed output wrapper `%s'"
-msgstr "uitvoer-wrapper '%s' botst met eerder geïnstalleerde uitvoer-wrapper '%s'"
+msgid ""
+"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
+msgstr ""
+"uitvoer-wrapper '%s' botst met eerder geïnstalleerde uitvoer-wrapper '%s'"
#: io.c:2880
#, c-format
@@ -2793,8 +2908,11 @@ msgstr "register_output_processor(): NULL-pointer gekregen"
#: io.c:2930
#, c-format
-msgid "two-way processor `%s' conflicts with previously installed two-way processor `%s'"
-msgstr "tweeweg-processor '%s' botst met eerder geïnstalleerde tweeweg-processor '%s'"
+msgid ""
+"two-way processor `%s' conflicts with previously installed two-way processor "
+"`%s'"
+msgstr ""
+"tweeweg-processor '%s' botst met eerder geïnstalleerde tweeweg-processor '%s'"
#: io.c:2939
#, c-format
@@ -3192,7 +3310,8 @@ msgstr "%s: negatieve waarde %2$Rg van argument #%1$d geeft rare resultaten"
#: mpfr.c:863
msgid "%s: argument #%d fractional value %Rg will be truncated"
-msgstr "%s: cijfers na de komma van waarde %2$Rg van argument #%1$d worden afgekapt"
+msgstr ""
+"%s: cijfers na de komma van waarde %2$Rg van argument #%1$d worden afgekapt"
#: mpfr.c:878
#, c-format
@@ -3223,8 +3342,12 @@ msgstr "geen hex cijfers in stuurcodereeks '\\x'"
#: node.c:579
#, c-format
-msgid "hex escape \\x%.*s of %d characters probably not interpreted the way you expect"
-msgstr "hexadecimale stuurcode \\x%.*s van %d tekens wordt waarschijnlijk niet afgehandeld zoals u verwacht"
+msgid ""
+"hex escape \\x%.*s of %d characters probably not interpreted the way you "
+"expect"
+msgstr ""
+"hexadecimale stuurcode \\x%.*s van %d tekens wordt waarschijnlijk niet "
+"afgehandeld zoals u verwacht"
#: node.c:594
#, c-format
@@ -3232,7 +3355,9 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
msgstr "stuurcodereeks '\\%c' behandeld als normale '%c'"
#: node.c:739
-msgid "Invalid multibyte data detected. There may be a mismatch between your data and your locale."
+msgid ""
+"Invalid multibyte data detected. There may be a mismatch between your data "
+"and your locale."
msgstr ""
"Ongeldige multibyte-gegevens gevonden.\n"
"Uw gegevens passen vermoedelijk niet bij uw taalregio."
@@ -3240,7 +3365,9 @@ msgstr ""
#: posix/gawkmisc.c:177
#, c-format
msgid "%s %s `%s': could not get fd flags: (fcntl F_GETFD: %s)"
-msgstr "%s %s '%s': kan bestandsdescriptorvlaggen niet verkrijgen: (fcntl F_GETFD: %s)"
+msgstr ""
+"%s %s '%s': kan bestandsdescriptorvlaggen niet verkrijgen: (fcntl F_GETFD: "
+"%s)"
#: posix/gawkmisc.c:189
#, c-format
@@ -3314,7 +3441,8 @@ msgstr "redir2str(): onbekend omleidingstype %d"
#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
-msgstr "component '%.*s' van reguliere expressie moet vermoedelijk '[%.*s]' zijn"
+msgstr ""
+"component '%.*s' van reguliere expressie moet vermoedelijk '[%.*s]' zijn"
#: regcomp.c:131
msgid "Success"
@@ -3385,7 +3513,9 @@ msgid "can not pop main context"
msgstr "kan hoofdcontext niet poppen"
#~ msgid "range of the form `[%c-%c]' is locale dependent"
-#~ msgstr "de betekenis van een bereik van de vorm '[%c-%c]' is afhankelijk van de taalregio"
+#~ msgstr ""
+#~ "de betekenis van een bereik van de vorm '[%c-%c]' is afhankelijk van de "
+#~ "taalregio"
#~ msgid "attempt to use function `%s' as an array"
#~ msgstr "functie '%s' wordt gebruikt als array"
@@ -3456,8 +3586,11 @@ msgstr "kan hoofdcontext niet poppen"
#~ msgid "statement has no effect"
#~ msgstr "opdracht heeft geen effect"
-#~ msgid "for loop: array `%s' changed size from %ld to %ld during loop execution"
-#~ msgstr "for: array '%s' veranderde van grootte %ld naar %ld tijdens uitvoer van de lus"
+#~ msgid ""
+#~ "for loop: array `%s' changed size from %ld to %ld during loop execution"
+#~ msgstr ""
+#~ "for: array '%s' veranderde van grootte %ld naar %ld tijdens uitvoer van "
+#~ "de lus"
#~ msgid "function called indirectly through `%s' does not exist"
#~ msgstr "indirect (via '%s') aangeroepen functie bestaat niet"
@@ -3493,7 +3626,8 @@ msgstr "kan hoofdcontext niet poppen"
#~ msgstr "kan groepen niet vinden: %s"
#~ msgid "assignment is not allowed to result of builtin function"
-#~ msgstr "toewijzing aan het resultaat van een ingebouwde functie is niet toegestaan"
+#~ msgstr ""
+#~ "toewijzing aan het resultaat van een ingebouwde functie is niet toegestaan"
#~ msgid "attempt to use array in a scalar context"
#~ msgstr "array wordt gebruikt in een scalaire context"
@@ -3531,8 +3665,12 @@ msgstr "kan hoofdcontext niet poppen"
#~ msgid "`nextfile' cannot be called from a BEGIN rule"
#~ msgstr "'nextfile' kan niet aangeroepen worden in een BEGIN-regel"
-#~ msgid "concatenation: side effects in one expression have changed the length of another!"
-#~ msgstr "concatenation: neveneffecten in de ene expressie hebben de lengte van een andere veranderd!"
+#~ msgid ""
+#~ "concatenation: side effects in one expression have changed the length of "
+#~ "another!"
+#~ msgstr ""
+#~ "concatenation: neveneffecten in de ene expressie hebben de lengte van een "
+#~ "andere veranderd!"
#~ msgid "illegal type (%s) in tree_eval"
#~ msgstr "ongeldig type (%s) in tree_eval()"
diff --git a/po/pl.gmo b/po/pl.gmo
index 0683f658..b2c8e5fa 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 6d647581..95ddbec2 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,16 +1,16 @@
# Polish translations for GNU AWK package.
-# Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the gawk package.
#
-# Wojciech Polak <polak@gnu.org>, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012, 2013.
+# Wojciech Polak <polak@gnu.org>, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
# additional help by Sergey Poznyakoff <gray@gnu.org>, 2003.
#
msgid ""
msgstr ""
-"Project-Id-Version: gawk 4.0.75\n"
+"Project-Id-Version: gawk 4.1.0b\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2013-05-09 16:05+0300\n"
-"PO-Revision-Date: 2013-05-05 18:29+0200\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
+"PO-Revision-Date: 2014-03-22 17:49+0100\n"
"Last-Translator: Wojciech Polak <polak@gnu.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
@@ -20,88 +20,88 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
-#: array.c:254
+#: array.c:256
#, c-format
msgid "from %s"
msgstr "od %s"
-#: array.c:354
+#: array.c:357
msgid "attempt to use a scalar value as array"
msgstr "próba użycia wartości skalarnej jako tablicy"
-#: array.c:356
+#: array.c:359
#, c-format
msgid "attempt to use scalar parameter `%s' as an array"
msgstr "próba użycia parametru `%s' skalaru jako tablicy"
-#: array.c:359
+#: array.c:362
#, c-format
msgid "attempt to use scalar `%s' as an array"
msgstr "próba użycia skalaru `%s' jako tablicy"
-#: array.c:406 array.c:573 builtin.c:85 builtin.c:1591 builtin.c:1637
-#: builtin.c:1650 builtin.c:2078 builtin.c:2092 eval.c:1121 eval.c:1125
-#: eval.c:1524
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
+#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
msgstr "próba użycia tablicy `%s' w kontekście skalaru"
-#: array.c:580
+#: array.c:583
#, c-format
msgid "delete: index `%s' not in array `%s'"
msgstr "delete: indeks `%s' nie jest w tablicy `%s'"
-#: array.c:594
+#: array.c:597
#, c-format
msgid "attempt to use scalar `%s[\"%.*s\"]' as an array"
msgstr "próba użycia skalaru `%s[\"%.*s\"]' jako tablicy"
-#: array.c:773
+#: array.c:776
msgid "adump: first argument not an array"
msgstr "adump: pierwszy argument nie jest tablicą"
-#: array.c:812
+#: array.c:815
msgid "asort: second argument not an array"
msgstr "asort: drugi argument nie jest tablicą"
-#: array.c:813
+#: array.c:816
msgid "asorti: second argument not an array"
msgstr "asorti: drugi argument nie jest tablicą"
-#: array.c:820
+#: array.c:823
msgid "asort: first argument not an array"
msgstr "asort: pierwszy argument nie jest tablicą"
-#: array.c:821
+#: array.c:824
msgid "asorti: first argument not an array"
msgstr "asorti: pierwszy argument nie jest tablicą"
-#: array.c:828
+#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
msgstr ""
"asort: nie można użyć podtablicy pierwszego argumentu dla drugiego argumentu"
-#: array.c:829
+#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
msgstr ""
"asorti: nie można użyć podtablicy pierwszego argumentu dla drugiego argumentu"
-#: array.c:834
+#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
msgstr ""
"asort: nie można użyć podtablicy drugiego argumentu dla pierwszego argumentu"
-#: array.c:835
+#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
msgstr ""
"asorti: nie można użyć podtablicy drugiego argumentu dla pierwszego argumentu"
-#: array.c:1309
+#: array.c:1314
#, c-format
msgid "`%s' is invalid as a function name"
msgstr "nieprawidłowa nazwa funkcji `%s'"
-#: array.c:1313
+#: array.c:1318
#, c-format
msgid "sort comparison function `%s' is not defined"
msgstr "funkcja porównująca w sortowaniu `%s' nie została zdefiniowna"
@@ -145,11 +145,11 @@ msgstr "powielone wartości case w ciele switch: %s"
msgid "duplicate `default' detected in switch body"
msgstr "wykryto powielony `default' w ciele switch"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr "instrukcja `break' poza pętlą lub switch'em jest niedozwolona"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "instrukcja `continue' poza pętlą jest niedozwolona"
@@ -243,271 +243,270 @@ msgstr ""
msgid "invalid subscript expression"
msgstr "nieprawidłowe wyrażenie indeksowe"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:119
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "ostrzeżenie: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:151
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "fatalny błąd: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "niespodziewany znak nowego wiersza lub końca łańcucha"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:517 debug.c:533
-#: debug.c:2792 debug.c:5040
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
+#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "nie można otworzyć pliku źródłowego `%s' do czytania (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "nie można otworzyć współdzielonej biblioteki `%s' do czytania (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:130 debug.c:5191
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "nieznany powód"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr "nie można dołączyć `%s' i używać go jako pliku programu"
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "plik źródłowy `%s' jest już załączony"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, c-format
msgid "already loaded shared library `%s'"
msgstr "biblioteka współdzielona jest już załadowana `%s'"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "@include jest rozszerzeniem gawk"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "pusta nazwa pliku po @include"
-#: awkgram.y:2470
+#: awkgram.y:2494
msgid "@load is a gawk extension"
msgstr "@load jest rozszerzeniem gawk"
-#: awkgram.y:2476
+#: awkgram.y:2500
msgid "empty filename after @load"
msgstr "pusta nazwa pliku po @load"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "pusty tekst programu w linii poleceń"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "nie można otworzyć pliku źródłowego `%s' (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "plik źródłowy `%s' jest pusty"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "plik źródłowy nie posiada na końcu znaku nowego wiersza"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr ""
"niezakończone prawidłowo wyrażenie regularne kończy się znakiem `\\' na "
"końcu pliku"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr ""
"%s: %d: modyfikator wyrażenia regularnego `/.../%c' tawk nie działa w gawk"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "modyfikator wyrażenia regularnego `/.../%c' tawk nie działa w gawk"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "niezakończone wyrażenie regularne"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "niezakończone wyrażenie regularne na końcu pliku"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr "użycie `\\ #...' kontynuacji linii nie jest przenośne"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "backslash nie jest ostatnim znakiem w wierszu"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX nie zezwala na operator `**='"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "stary awk nie wspiera operatora `**='"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX nie zezwala na operator `**'"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "stary awk nie wspiera operatora `**'"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "operator `^=' nie jest wspierany w starym awk"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "operator `^' nie jest wspierany w starym awk"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "niezakończony łańcuch"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "nieprawidłowy znak '%c' w wyrażeniu"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "`%s' jest rozszerzeniem gawk"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX nie zezwala na `%s'"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "`%s' nie jest wspierany w starym awk"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "`goto' uważane za szkodliwe!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d jest nieprawidłowe jako liczba argumentów dla %s"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
msgstr ""
"%s: literał łańcuchowy jako ostatni argument podstawienia nie ma żadnego "
"efektu"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "%s trzeci parametr nie jest zmiennym obiektem"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: trzeci argument jest rozszerzeniem gawk"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: drugi argument jest rozszerzeniem gawk"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr "nieprawidłowe użycie dcgettext(_\"...\"): usuń znak podkreślenia"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr "nieprawidłowe użycie dcngettext(_\"...\"): usuń znak podkreślenia"
-#: awkgram.y:3992
-#, fuzzy
+#: awkgram.y:4016
msgid "index: regexp constant as second argument is not allowed"
-msgstr "index: otrzymano drugi argument, który nie jest łańcuchem"
+msgstr "index: stały regexp jako drugi argument nie jest dozwolony"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "funkcja `%s': parametr `%s' zasłania globalną zmienną"
-#: awkgram.y:4102 debug.c:4021 debug.c:4064 debug.c:5189
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "nie można otworzyć `%s' do zapisu (%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "wysyłanie listy zmiennych na standardowe wyjście diagnostyczne"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: zamknięcie nie powiodło się (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() wywołana podwójnie!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "wystąpiły przykryte zmienne."
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "nazwa funkcji `%s' została zdefiniowana poprzednio"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr "funkcja `%s': nie można użyć nazwy funkcji jako nazwy parametru"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
msgstr ""
"funkcja `%s': nie można użyć specjalnej zmiennej `%s' jako parametru funkcji"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "funkcja `%s': parametr #%d, `%s', powiela parametr #%d"
-#: awkgram.y:4366 awkgram.y:4372
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "funkcja `%s' została wywołana, ale nigdy nie została zdefiniowana"
-#: awkgram.y:4376
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr ""
"funkcja `%s' została zdefiniowana, ale nigdy nie została wywołana "
"bezpośrednio"
-#: awkgram.y:4408
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr "stałe wyrażenie regularne dla parametru #%d daje wartość logiczną"
-#: awkgram.y:4467
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -517,237 +516,247 @@ msgstr ""
"`(',\n"
"lub użyta jako zmienna lub jako tablica"
-#: awkgram.y:4703
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "próba dzielenia przez zero"
-#: awkgram.y:4712
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "próba dzielenia przez zero w `%%'"
-#: builtin.c:128
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
+msgstr "nie można przypisać wartości do wyniku tego wyrażenia"
+
+#: awkgram.y:5052
+#, c-format
+msgid "invalid target of assignment (opcode %s)"
+msgstr "nieprawidłowy cel przypisania (opcode %s)"
+
+#: builtin.c:133
#, c-format
msgid "%s to \"%s\" failed (%s)"
msgstr "%s do \"%s\" nie powiódł się (%s)"
-#: builtin.c:129
+#: builtin.c:134
msgid "standard output"
msgstr "standardowe wyjście"
-#: builtin.c:143
+#: builtin.c:148
msgid "exp: received non-numeric argument"
msgstr "exp: otrzymano argument nie będący liczbą"
-#: builtin.c:149
+#: builtin.c:154
#, c-format
msgid "exp: argument %g is out of range"
msgstr "exp: argument %g jest poza zasięgiem"
-#: builtin.c:224
+#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
msgstr ""
"fflush: nie można opróżnić: potok `%s' otwarty do czytania, a nie do zapisu"
-#: builtin.c:227
+#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
msgstr ""
"fflush: nie można opróżnić: plik `%s' otwarty do czytania, a nie do zapisu"
-#: builtin.c:239
+#: builtin.c:244
#, c-format
msgid "fflush: `%s' is not an open file, pipe or co-process"
msgstr "fflush: `%s' nie jest ani otwartym plikiem, ani potokiem, ani procesem"
-#: builtin.c:357
+#: builtin.c:362
msgid "index: received non-string first argument"
msgstr "index: otrzymano pierwszy argument, który nie jest łańcuchem"
-#: builtin.c:359
+#: builtin.c:364
msgid "index: received non-string second argument"
msgstr "index: otrzymano drugi argument, który nie jest łańcuchem"
-#: builtin.c:483 mpfr.c:757
+#: builtin.c:488 mpfr.c:757
msgid "int: received non-numeric argument"
msgstr "int: otrzymano argument, który nie jest liczbą"
-#: builtin.c:520
+#: builtin.c:525
msgid "length: received array argument"
msgstr "length: otrzymano argument, który jest tablicą"
-#: builtin.c:523
+#: builtin.c:528
msgid "`length(array)' is a gawk extension"
msgstr "`length(tablica)' jest rozszerzeniem gawk"
-#: builtin.c:539
+#: builtin.c:544
msgid "length: received non-string argument"
msgstr "length: otrzymano argument, który nie jest łańcuchem"
-#: builtin.c:570
+#: builtin.c:575
msgid "log: received non-numeric argument"
msgstr "log: otrzymano argument, który nie jest liczbą"
-#: builtin.c:573
+#: builtin.c:578
#, c-format
msgid "log: received negative argument %g"
msgstr "log: otrzymano ujemny argument %g"
-#: builtin.c:771 builtin.c:776
+#: builtin.c:776 builtin.c:781
msgid "fatal: must use `count$' on all formats or none"
msgstr "fatal: należy użyć `count$' we wszystkich formatach lub nic"
-#: builtin.c:846
+#: builtin.c:851
#, c-format
msgid "field width is ignored for `%%' specifier"
msgstr "szerokość pola jest ignorowana dla specyfikatora `%%'"
-#: builtin.c:848
+#: builtin.c:853
#, c-format
msgid "precision is ignored for `%%' specifier"
msgstr "precyzja jest ignorowana dla specyfikatora `%%'"
-#: builtin.c:850
+#: builtin.c:855
#, c-format
msgid "field width and precision are ignored for `%%' specifier"
msgstr "szerokość pola i precyzja są ignorowane dla specyfikatora `%%'"
-#: builtin.c:901
+#: builtin.c:906
msgid "fatal: `$' is not permitted in awk formats"
msgstr "fatal: `$' jest niedozwolony w formatach awk"
-#: builtin.c:910
+#: builtin.c:915
msgid "fatal: arg count with `$' must be > 0"
msgstr "fatal: argument count z `$' musi być > 0"
-#: builtin.c:914
+#: builtin.c:919
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
msgstr ""
"fatal: argument count %ld większy niż całkowita suma argumentów dostarczonych"
-#: builtin.c:918
+#: builtin.c:923
msgid "fatal: `$' not permitted after period in format"
msgstr "fatal: `$' jest niedozwolony po kropce w formacie"
-#: builtin.c:934
+#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
msgstr "fatal: brak `$' dla pozycyjnej szerokości pola lub precyzji"
-#: builtin.c:1006
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "`l' jest bezsensowny w formatach awk; zignorowany"
-#: builtin.c:1010
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "fatal: `l' jest niedozwolony w formatach POSIX awk"
-#: builtin.c:1023
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "`L' jest bezsensowny w formatach awk; zignorowany"
-#: builtin.c:1027
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "fatal: `L' jest niedozwolony w formatach POSIX awk"
-#: builtin.c:1040
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "`h' jest bezsensowny w formatach awk; zignorowany"
-#: builtin.c:1044
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "fatal: `h' jest niedozwolony w formatach POSIX awk"
-#: builtin.c:1439
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf: wartość %g jest poza zasięgiem dla formatu `%%%c'"
-#: builtin.c:1537
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
msgstr ""
"pominięcie nieznanego formatu specyfikatora znaku `%c': nie skonwertowano "
"argumentu"
-#: builtin.c:1542
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr ""
"fatal: brak wystarczającej liczby argumentów, aby zaspokoić łańcuch "
"formatujący"
-#: builtin.c:1544
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "zabrakło ^"
-#: builtin.c:1551
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: specyfikator formatu nie posiada kontrolnej litery"
-#: builtin.c:1554
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "zbyt dużo podanych argumentów w łańcuchu formatującym"
-#: builtin.c:1610
+#: builtin.c:1634
msgid "sprintf: no arguments"
msgstr "sprintf: brak argumentów"
-#: builtin.c:1633 builtin.c:1644
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: brak argumentów"
-#: builtin.c:1687
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: otrzymano argument, który nie jest liczbą"
-#: builtin.c:1691
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: wywołana z ujemnym argumentem %g"
-#: builtin.c:1722
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: długość %g nie jest >= 1"
-#: builtin.c:1724
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: długość %g nie jest >= 0"
-#: builtin.c:1731
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: długość %g, która nie jest liczbą całkowitą, zostanie obcięta"
-#: builtin.c:1736
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr "substr: długość %g zbyt duża dla indeksu łańcucha, obcinanie do %g"
-#: builtin.c:1748
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: początkowy indeks %g jest nieprawidłowy, nastąpi użycie 1"
-#: builtin.c:1753
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr ""
"substr: początkowy indeks %g, który nie jest liczbą całkowitą, zostanie "
"obcięty"
-#: builtin.c:1778
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: łańcuch źródłowy ma zerową długość"
-#: builtin.c:1794
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: początkowy indeks %g leży poza końcem łańcucha"
-#: builtin.c:1802
+#: builtin.c:1826
#, c-format
msgid ""
"substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -755,187 +764,187 @@ msgstr ""
"substr: długość %g zaczynając od %g przekracza długość pierwszego argumentu "
"(%lu)"
-#: builtin.c:1876
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr ""
"strftime: wartość formatu w PROCINFO[\"strftime\"] posiada typ numeryczny"
-#: builtin.c:1899
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: otrzymano drugi argument, który nie jest liczbą"
-#: builtin.c:1903
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr "strftime: drugi argument mniejszy od 0 lub zbyt duży dla time_t"
-#: builtin.c:1910
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: otrzymano pierwszy argument, który nie jest łańcuchem"
-#: builtin.c:1917
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: otrzymano pusty łańcuch formatujący"
-#: builtin.c:1983
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: otrzymano argument, który nie jest łańcuchem"
-#: builtin.c:2000
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr "mktime: przynajmniej jedna z wartości jest poza domyślnym zakresem"
-#: builtin.c:2035
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "funkcja 'system' nie jest dozwolona w trybie piaskownicy"
-#: builtin.c:2040
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: otrzymano argument, który nie jest łańcuchem"
-#: builtin.c:2160
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "odwołanie do niezainicjowanego pola `$%d'"
-#: builtin.c:2247
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: otrzymano argument, który nie jest łańcuchem"
-#: builtin.c:2281
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: otrzymano argument, który nie jest łańcuchem"
-#: builtin.c:2317 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: otrzymano pierwszy argument, który nie jest liczbą"
-#: builtin.c:2319 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: otrzymano drugi argument, który nie jest liczbą"
-#: builtin.c:2338
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: otrzymano argument, który nie jest liczbą"
-#: builtin.c:2354
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: otrzymano argument, który nie jest liczbą"
-#: builtin.c:2407 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: otrzymano argument, który nie jest liczbą"
-#: builtin.c:2438
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: otrzymano trzeci argument, który nie jest tablicą"
-#: builtin.c:2710
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: trzeci argument 0 potraktowany jako 1"
-#: builtin.c:3003
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: otrzymano pierwszy argument, który nie jest liczbą"
-#: builtin.c:3005
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: otrzymano drugi argument, który nie jest liczbą"
-#: builtin.c:3011
+#: builtin.c:3038
#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr "lshift(%f, %f): ujemne wartości spowodują dziwne wyniki"
-#: builtin.c:3013
+#: builtin.c:3040
#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%f, %f): ułamkowe wartości zostaną obcięte"
-#: builtin.c:3015
+#: builtin.c:3042
#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr "lshift(%f, %f): zbyt duża wartość przesunięcia spowoduje dziwne wyniki"
-#: builtin.c:3040
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: otrzymano pierwszy argument, który nie jest liczbą"
-#: builtin.c:3042
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: otrzymano drugi argument, który nie jest liczbą"
-#: builtin.c:3048
+#: builtin.c:3075
#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr "rshift(%f, %f): ujemne wartości spowodują dziwne wyniki"
-#: builtin.c:3050
+#: builtin.c:3077
#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%f, %f): ułamkowe wartości zostaną obcięte"
-#: builtin.c:3052
+#: builtin.c:3079
#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr "rshift(%f, %f): zbyt duża wartość przesunięcia spowoduje dziwne wyniki"
-#: builtin.c:3077 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
msgid "and: called with less than two arguments"
msgstr "and: wywołano z mniej niż dwoma argumentami"
-#: builtin.c:3082
+#: builtin.c:3109
#, c-format
msgid "and: argument %d is non-numeric"
msgstr "and: argument %d nie jest liczbą"
-#: builtin.c:3086
+#: builtin.c:3113
#, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr "and: argument %d ujemna wartość %g spowoduje dziwne wyniki"
-#: builtin.c:3109 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
msgid "or: called with less than two arguments"
msgstr "or: wywołano z mniej niż dwoma argumentami"
-#: builtin.c:3114
+#: builtin.c:3141
#, c-format
msgid "or: argument %d is non-numeric"
msgstr "or: argument %d nie jest liczbą"
-#: builtin.c:3118
+#: builtin.c:3145
#, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr "or: argument %d ujemna wartość %g spowoduje dziwne wyniki"
-#: builtin.c:3140 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
msgid "xor: called with less than two arguments"
msgstr "xor: wywołano z mniej niż dwoma argumentami"
-#: builtin.c:3146
+#: builtin.c:3173
#, c-format
msgid "xor: argument %d is non-numeric"
msgstr "xor: argument %d nie jest liczbą"
-#: builtin.c:3150
+#: builtin.c:3177
#, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor: argument %d ujemna wartość %g spowoduje dziwne wyniki"
-#: builtin.c:3175 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: otrzymano argument, który nie jest liczbą"
-#: builtin.c:3181
+#: builtin.c:3208
#, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%f): ujemne wartości spowodują dziwne wyniki"
-#: builtin.c:3183
+#: builtin.c:3210
#, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%f): ułamkowe wartości zostaną obcięte"
-#: builtin.c:3352
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: `%s' nie jest prawidłową kategorią lokalizacji"
@@ -1057,8 +1066,8 @@ msgstr ""
#: command.y:823
msgid ""
-"commands [num] - starts a list of commands to be executed at a breakpoint"
-"(watchpoint) hit."
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
msgstr ""
#: command.y:825
@@ -1215,7 +1224,7 @@ msgstr ""
msgid "watch var - set a watchpoint for a variable."
msgstr ""
-#: command.y:1011 debug.c:395 msg.c:128
+#: command.y:1011 debug.c:401 msg.c:135
#, c-format
msgid "error: "
msgstr "błąd: "
@@ -1253,93 +1262,93 @@ msgstr "nieprawidłowy znak"
msgid "undefined command: %s\n"
msgstr "niezdefiniowana komenda: %s\n"
-#: debug.c:246
+#: debug.c:252
msgid "set or show the number of lines to keep in history file."
msgstr ""
-#: debug.c:248
+#: debug.c:254
msgid "set or show the list command window size."
msgstr ""
-#: debug.c:250
+#: debug.c:256
msgid "set or show gawk output file."
msgstr ""
-#: debug.c:252
+#: debug.c:258
msgid "set or show debugger prompt."
msgstr ""
-#: debug.c:254
+#: debug.c:260
msgid "(un)set or show saving of command history (value=on|off)."
msgstr ""
-#: debug.c:256
+#: debug.c:262
msgid "(un)set or show saving of options (value=on|off)."
msgstr ""
-#: debug.c:258
+#: debug.c:264
msgid "(un)set or show instruction tracing (value=on|off)."
msgstr ""
-#: debug.c:339
+#: debug.c:345
msgid "program not running."
msgstr ""
-#: debug.c:442 debug.c:597
+#: debug.c:448 debug.c:606
#, c-format
msgid "can't read source file `%s' (%s)"
msgstr "nie można odczytać pliku źródłowego `%s' (%s)"
-#: debug.c:447
+#: debug.c:453
#, c-format
msgid "source file `%s' is empty.\n"
msgstr "plik źródłowy `%s' jest pusty.\n"
-#: debug.c:474
+#: debug.c:480
msgid "no current source file."
msgstr "brak aktualnego pliku źródłowego."
-#: debug.c:499
+#: debug.c:505
#, c-format
msgid "cannot find source file named `%s' (%s)"
msgstr "nie można znaleźć pliku źródłowego `%s' (%s)"
-#: debug.c:523
+#: debug.c:529
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
msgstr "UWAGA: plik źródłowy `%s' uległ zmianie od kompilacji programu.\n"
-#: debug.c:542
+#: debug.c:551
#, c-format
msgid "line number %d out of range; `%s' has %d lines"
msgstr ""
-#: debug.c:602
+#: debug.c:611
#, c-format
msgid "unexpected eof while reading file `%s', line %d"
msgstr "niespodziewany koniec pliku podczas czytania `%s', linia %d"
-#: debug.c:611
+#: debug.c:620
#, c-format
msgid "source file `%s' modified since start of program execution"
msgstr "plik źródłowy `%s' uległ zmianie od rozpoczęcia działania programu"
-#: debug.c:723
+#: debug.c:732
#, c-format
msgid "Current source file: %s\n"
msgstr "Aktualny plik źródłowy: %s\n"
-#: debug.c:724
+#: debug.c:733
#, c-format
msgid "Number of lines: %d\n"
msgstr "Ilość linii: %d\n"
-#: debug.c:731
+#: debug.c:740
#, c-format
msgid "Source file (lines): %s (%d)\n"
msgstr "Plik źródłowy (linie): %s (%d)\n"
-#: debug.c:745
+#: debug.c:754
msgid ""
"Number Disp Enabled Location\n"
"\n"
@@ -1347,54 +1356,54 @@ msgstr ""
"Numer Disp Enabled Lokacja\n"
"\n"
-#: debug.c:756
+#: debug.c:765
#, c-format
msgid "\tno of hits = %ld\n"
msgstr ""
-#: debug.c:758
+#: debug.c:767
#, c-format
msgid "\tignore next %ld hit(s)\n"
msgstr ""
-#: debug.c:760 debug.c:900
+#: debug.c:769 debug.c:909
#, c-format
msgid "\tstop condition: %s\n"
msgstr "\tkoniec warunku: %s\n"
-#: debug.c:762 debug.c:902
+#: debug.c:771 debug.c:911
msgid "\tcommands:\n"
msgstr "\tkomendy:\n"
-#: debug.c:784
+#: debug.c:793
#, c-format
msgid "Current frame: "
msgstr "Aktualna ramka: "
-#: debug.c:787
+#: debug.c:796
#, c-format
msgid "Called by frame: "
msgstr ""
-#: debug.c:791
+#: debug.c:800
#, c-format
msgid "Caller of frame: "
msgstr ""
-#: debug.c:809
+#: debug.c:818
#, c-format
msgid "None in main().\n"
msgstr ""
-#: debug.c:839
+#: debug.c:848
msgid "No arguments.\n"
msgstr "Brak argumentów.\n"
-#: debug.c:840
+#: debug.c:849
msgid "No locals.\n"
msgstr ""
-#: debug.c:848
+#: debug.c:857
msgid ""
"All defined variables:\n"
"\n"
@@ -1402,7 +1411,7 @@ msgstr ""
"Wszystkie zdefiniowane zmienne:\n"
"\n"
-#: debug.c:858
+#: debug.c:867
msgid ""
"All defined functions:\n"
"\n"
@@ -1410,13 +1419,13 @@ msgstr ""
"Wszystkie zdefiniowane funkcje:\n"
"\n"
-#: debug.c:877
+#: debug.c:886
msgid ""
"Auto-display variables:\n"
"\n"
msgstr ""
-#: debug.c:880
+#: debug.c:889
msgid ""
"Watch variables:\n"
"\n"
@@ -1424,390 +1433,390 @@ msgstr ""
"Obserwowane zmienne:\n"
"\n"
-#: debug.c:1020
+#: debug.c:1029
#, c-format
msgid "no symbol `%s' in current context\n"
msgstr "brak symbolu `%s' w bieżącym kontekście\n"
-#: debug.c:1032 debug.c:1418
+#: debug.c:1041 debug.c:1427
#, c-format
msgid "`%s' is not an array\n"
msgstr "`%s' nie jest tablicą\n"
-#: debug.c:1046
+#: debug.c:1055
#, c-format
msgid "$%ld = uninitialized field\n"
msgstr "$%ld = niezainicjowane pole\n"
-#: debug.c:1067
+#: debug.c:1076
#, c-format
msgid "array `%s' is empty\n"
msgstr "tablica `%s' jest pusta\n"
-#: debug.c:1110 debug.c:1162
+#: debug.c:1119 debug.c:1171
#, c-format
msgid "[\"%s\"] not in array `%s'\n"
msgstr "[\"%s\"] nie ma w tablicy `%s'\n"
-#: debug.c:1166
+#: debug.c:1175
#, c-format
msgid "`%s[\"%s\"]' is not an array\n"
msgstr "`%s[\"%s\"]' nie jest tablicą\n"
-#: debug.c:1227 debug.c:4949
+#: debug.c:1236 debug.c:4964
#, c-format
msgid "`%s' is not a scalar variable"
msgstr "`%s' nie jest zmienną skalarną"
-#: debug.c:1249 debug.c:4979
+#: debug.c:1258 debug.c:4994
#, c-format
msgid "attempt to use array `%s[\"%s\"]' in a scalar context"
msgstr "próba użycia tablicy `%s[\"%s\"]' w kontekście skalaru"
-#: debug.c:1271 debug.c:4990
+#: debug.c:1280 debug.c:5005
#, c-format
msgid "attempt to use scalar `%s[\"%s\"]' as array"
msgstr "próba użycia skalaru `%s[\"%s\"]' jako tablicy"
-#: debug.c:1414
+#: debug.c:1423
#, c-format
msgid "`%s' is a function"
msgstr "`%s' jest funkcją"
-#: debug.c:1456
+#: debug.c:1465
#, c-format
msgid "watchpoint %d is unconditional\n"
msgstr ""
-#: debug.c:1490
+#: debug.c:1499
#, c-format
msgid "No display item numbered %ld"
msgstr ""
-#: debug.c:1493
+#: debug.c:1502
#, c-format
msgid "No watch item numbered %ld"
msgstr ""
-#: debug.c:1519
+#: debug.c:1528
#, c-format
msgid "%d: [\"%s\"] not in array `%s'\n"
msgstr "%d: [\"%s\"] nie ma w tablicy `%s'\n"
-#: debug.c:1758
+#: debug.c:1767
msgid "attempt to use scalar value as array"
msgstr "próba użycia wartości skalarnej jako tablicy"
-#: debug.c:1847
+#: debug.c:1856
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1858
+#: debug.c:1867
#, c-format
msgid "Display %d deleted because parameter is out of scope.\n"
msgstr ""
-#: debug.c:1891
+#: debug.c:1900
#, c-format
msgid " in file `%s', line %d\n"
msgstr " w pliku `%s', linia %d\n"
-#: debug.c:1912
+#: debug.c:1921
#, c-format
msgid " at `%s':%d"
msgstr " w `%s':%d"
-#: debug.c:1928 debug.c:1991
+#: debug.c:1937 debug.c:2000
#, c-format
msgid "#%ld\tin "
msgstr "#%ld\tw "
-#: debug.c:1965
+#: debug.c:1974
#, c-format
msgid "More stack frames follow ...\n"
msgstr ""
-#: debug.c:2008
+#: debug.c:2017
msgid "invalid frame number"
msgstr "nieprawidłowy numer ramki"
-#: debug.c:2180
+#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2187
+#: debug.c:2207
#, c-format
msgid "Note: breakpoint %d (enabled), also set at %s:%d"
msgstr ""
-#: debug.c:2194
+#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
msgstr ""
-#: debug.c:2201
+#: debug.c:2221
#, c-format
msgid "Note: breakpoint %d (disabled), also set at %s:%d"
msgstr ""
-#: debug.c:2218
+#: debug.c:2238
#, c-format
msgid "Breakpoint %d set at file `%s', line %d\n"
msgstr "Breakpoint %d ustawiony w pliku `%s', linia %d\n"
-#: debug.c:2320
+#: debug.c:2340
#, c-format
msgid "Can't set breakpoint in file `%s'\n"
msgstr ""
-#: debug.c:2349 debug.c:2472 debug.c:3330
+#: debug.c:2369 debug.c:2492 debug.c:3350
#, c-format
msgid "line number %d in file `%s' out of range"
msgstr "numer linii %d w pliku `%s' jest poza zasięgiem"
-#: debug.c:2353
+#: debug.c:2373
#, c-format
msgid "Can't find rule!!!\n"
msgstr "Nie można znaleźć reguły!!!\n"
-#: debug.c:2355
+#: debug.c:2375
#, c-format
msgid "Can't set breakpoint at `%s':%d\n"
msgstr ""
-#: debug.c:2367
+#: debug.c:2387
#, c-format
msgid "Can't set breakpoint in function `%s'\n"
msgstr ""
-#: debug.c:2383
+#: debug.c:2403
#, c-format
msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
msgstr ""
-#: debug.c:2488 debug.c:2510
+#: debug.c:2508 debug.c:2530
#, c-format
msgid "Deleted breakpoint %d"
msgstr "Skasowany breakpoint %d"
-#: debug.c:2494
+#: debug.c:2514
#, c-format
msgid "No breakpoint(s) at entry to function `%s'\n"
msgstr ""
-#: debug.c:2521
+#: debug.c:2541
#, c-format
msgid "No breakpoint at file `%s', line #%d\n"
msgstr "Brak breakpointa w pliku `%s', linii #%d\n"
-#: debug.c:2576 debug.c:2617 debug.c:2637 debug.c:2680
+#: debug.c:2596 debug.c:2637 debug.c:2657 debug.c:2700
msgid "invalid breakpoint number"
msgstr ""
-#: debug.c:2592
+#: debug.c:2612
msgid "Delete all breakpoints? (y or n) "
msgstr "Czy skasować wszystkie breakpointy? (y lub n) "
-#: debug.c:2593 debug.c:2903 debug.c:2956
+#: debug.c:2613 debug.c:2923 debug.c:2976
msgid "y"
msgstr "t"
-#: debug.c:2642
+#: debug.c:2662
#, c-format
msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n"
msgstr ""
-#: debug.c:2646
+#: debug.c:2666
#, c-format
msgid "Will stop next time breakpoint %d is reached.\n"
msgstr ""
-#: debug.c:2763
+#: debug.c:2783
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
msgstr ""
-#: debug.c:2888
+#: debug.c:2908
#, c-format
msgid "Failed to restart debugger"
msgstr ""
-#: debug.c:2902
+#: debug.c:2922
msgid "Program already running. Restart from beginning (y/n)? "
msgstr ""
-#: debug.c:2906
+#: debug.c:2926
#, c-format
msgid "Program not restarted\n"
msgstr ""
-#: debug.c:2916
+#: debug.c:2936
#, c-format
msgid "error: cannot restart, operation not allowed\n"
msgstr ""
-#: debug.c:2922
+#: debug.c:2942
#, c-format
msgid "error (%s): cannot restart, ignoring rest of the commands\n"
msgstr ""
-#: debug.c:2930
+#: debug.c:2950
#, c-format
msgid "Starting program: \n"
msgstr "Uruchamianie programu: \n"
-#: debug.c:2939
+#: debug.c:2959
#, c-format
msgid "Program exited %s with exit value: %d\n"
msgstr ""
-#: debug.c:2955
+#: debug.c:2975
msgid "The program is running. Exit anyway (y/n)? "
msgstr ""
-#: debug.c:2990
+#: debug.c:3010
#, c-format
msgid "Not stopped at any breakpoint; argument ignored.\n"
msgstr ""
-#: debug.c:2995
+#: debug.c:3015
#, c-format
msgid "invalid breakpoint number %d."
msgstr ""
-#: debug.c:3000
+#: debug.c:3020
#, c-format
msgid "Will ignore next %ld crossings of breakpoint %d.\n"
msgstr ""
-#: debug.c:3187
+#: debug.c:3207
#, c-format
msgid "'finish' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3192
+#: debug.c:3212
#, c-format
msgid "Run till return from "
msgstr ""
-#: debug.c:3235
+#: debug.c:3255
#, c-format
msgid "'return' not meaningful in the outermost frame main()\n"
msgstr ""
-#: debug.c:3349
+#: debug.c:3369
#, c-format
msgid "Can't find specified location in function `%s'\n"
msgstr ""
-#: debug.c:3357
+#: debug.c:3377
#, c-format
msgid "invalid source line %d in file `%s'"
msgstr "nieprawidłowa linia źródłowa %d w pliku `%s'"
-#: debug.c:3372
+#: debug.c:3392
#, c-format
msgid "Can't find specified location %d in file `%s'\n"
msgstr ""
-#: debug.c:3404
+#: debug.c:3424
#, c-format
msgid "element not in array\n"
msgstr "brak elementu w tablicy\n"
-#: debug.c:3404
+#: debug.c:3424
#, c-format
msgid "untyped variable\n"
msgstr "zmienna bez typu\n"
-#: debug.c:3446
+#: debug.c:3466
#, c-format
msgid "Stopping in %s ...\n"
msgstr ""
-#: debug.c:3523
+#: debug.c:3543
#, c-format
msgid "'finish' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:3530
+#: debug.c:3550
#, c-format
msgid "'until' not meaningful with non-local jump '%s'\n"
msgstr ""
-#: debug.c:4165
+#: debug.c:4185
msgid "\t------[Enter] to continue or q [Enter] to quit------"
msgstr ""
-#: debug.c:4166
+#: debug.c:4186
msgid "q"
msgstr "q"
-#: debug.c:4986
+#: debug.c:5001
#, c-format
msgid "[\"%s\"] not in array `%s'"
msgstr "[\"%s\"] nie ma w tablicy `%s'"
-#: debug.c:5192
+#: debug.c:5207
#, c-format
msgid "sending output to stdout\n"
msgstr "wysyłanie wyjścia na stdout\n"
-#: debug.c:5232
+#: debug.c:5247
msgid "invalid number"
msgstr "nieprawidłowa liczba"
-#: debug.c:5366
+#: debug.c:5381
#, c-format
msgid "`%s' not allowed in current context; statement ignored"
msgstr "polecenie `%s' nie może być wywołane w tym kontekście; zignorowano"
-#: debug.c:5374
+#: debug.c:5389
msgid "`return' not allowed in current context; statement ignored"
msgstr ""
"instrukcja `return' nie może być wywołana w tym kontekście; zignorowano"
-#: debug.c:5575
+#: debug.c:5590
#, c-format
msgid "No symbol `%s' in current context"
msgstr "Brak symbolu `%s' w bieżącym kontekście"
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1192
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr "[ nie do pary"
-#: dfa.c:1052
+#: dfa.c:1174
msgid "invalid character class"
msgstr "nieprawidłowa klasa znaku"
-#: dfa.c:1229
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "składnia klasy znaku to [[:space:]], a nie [:space:]"
-#: dfa.c:1281
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr "niedokończona sekwencja ucieczki \\"
-#: dfa.c:1428 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Nieprawidłowa zawartość \\{\\}"
-#: dfa.c:1431 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "Wyrażenie regularne jest zbyt duże"
-#: dfa.c:1816
+#: dfa.c:1936
msgid "unbalanced ("
msgstr "( nie do pary"
-#: dfa.c:1943
+#: dfa.c:2062
msgid "no syntax specified"
msgstr "nie podano składni"
-#: dfa.c:1951
+#: dfa.c:2070
msgid "unbalanced )"
msgstr ") nie do pary"
@@ -1826,11 +1835,11 @@ msgstr "nieznany opcode %d"
msgid "opcode %s not an operator or keyword"
msgstr "opcode %s nie jest operatorem ani słowem kluczowym"
-#: eval.c:471
+#: eval.c:472
msgid "buffer overflow in genflags2str"
msgstr "przepełnienie bufora w genflags2str"
-#: eval.c:674
+#: eval.c:675
#, c-format
msgid ""
"\n"
@@ -1841,73 +1850,73 @@ msgstr ""
"\t# Stos Wywoławczy Funkcji:\n"
"\n"
-#: eval.c:703
+#: eval.c:704
msgid "`IGNORECASE' is a gawk extension"
msgstr "`IGNORECASE' jest rozszerzeniem gawk"
-#: eval.c:735
+#: eval.c:736
msgid "`BINMODE' is a gawk extension"
msgstr "`BINMODE' jest rozszerzeniem gawk"
-#: eval.c:793
+#: eval.c:794
#, c-format
msgid "BINMODE value `%s' is invalid, treated as 3"
msgstr "wartość BINMODE `%s' jest nieprawidłowa, przyjęto ją jako 3"
-#: eval.c:884
+#: eval.c:885
#, c-format
msgid "bad `%sFMT' specification `%s'"
msgstr "zła specyfikacja `%sFMT' `%s'"
-#: eval.c:968
+#: eval.c:969
msgid "turning off `--lint' due to assignment to `LINT'"
msgstr "wyłączenie `--lint' z powodu przypisania do `LINT'"
-#: eval.c:1146
+#: eval.c:1147
#, c-format
msgid "reference to uninitialized argument `%s'"
msgstr "odwołanie do niezainicjowanego argumentu `%s'"
-#: eval.c:1147
+#: eval.c:1148
#, c-format
msgid "reference to uninitialized variable `%s'"
msgstr "odwołanie do niezainicjowanej zmiennej `%s'"
-#: eval.c:1165
+#: eval.c:1166
msgid "attempt to field reference from non-numeric value"
msgstr "próba odwołania do pola poprzez nienumeryczną wartość"
-#: eval.c:1167
+#: eval.c:1168
msgid "attempt to field reference from null string"
msgstr "próba odwołania z zerowego łańcucha"
-#: eval.c:1175
+#: eval.c:1176
#, c-format
msgid "attempt to access field %ld"
msgstr "próba dostępu do pola %ld"
-#: eval.c:1184
+#: eval.c:1185
#, c-format
msgid "reference to uninitialized field `$%ld'"
msgstr "odwołanie do niezainicjowanego pola `$%ld'"
-#: eval.c:1271
+#: eval.c:1272
#, 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:1466
+#: eval.c:1473
#, c-format
msgid "unwind_stack: unexpected type `%s'"
msgstr "unwind_stack: niespodziewany typ `%s'"
-#: eval.c:1562
+#: eval.c:1569
msgid "division by zero attempted in `/='"
msgstr "próba dzielenia przez zero w `/='"
-#: eval.c:1569
+#: eval.c:1576
#, c-format
msgid "division by zero attempted in `%%='"
msgstr "próba dzielenia przez zero w `%%='"
@@ -1920,7 +1929,7 @@ msgstr "rozszerzenia nie są dozwolone w trybie piaskownicy"
msgid "-l / @load are gawk extensions"
msgstr "-l / @load są rozszerzeniami gawk"
-#: ext.c:95 ext.c:177
+#: ext.c:95
msgid "load_ext: received NULL lib_name"
msgstr "load_ext: otrzymano NULL lib_name"
@@ -1951,6 +1960,10 @@ msgstr ""
msgid "`extension' is a gawk extension"
msgstr "`extension' jest rozszerzeniem gawk"
+#: ext.c:177
+msgid "extension: received NULL lib_name"
+msgstr "extension: otrzymano NULL lib_name"
+
#: ext.c:180
#, c-format
msgid "extension: cannot open library `%s' (%s)"
@@ -1972,36 +1985,36 @@ msgstr "extension: biblioteka `%s': nie można wywołać funkcji `%s' (%s)"
msgid "make_builtin: missing function name"
msgstr "make_builtin: brakująca nazwa funkcji"
-#: ext.c:238
+#: ext.c:236
#, c-format
msgid "make_builtin: can't redefine function `%s'"
msgstr "make_builtin: nie można zredefiniować funkcji `%s'"
-#: ext.c:242
+#: ext.c:240
#, c-format
msgid "make_builtin: function `%s' already defined"
msgstr "make_builtin: funkcja `%s' została już zdefiniowana"
-#: ext.c:246
+#: ext.c:244
#, c-format
msgid "make_builtin: function name `%s' previously defined"
msgstr "make_builtin: nazwa funkcji `%s' została zdefiniowana wcześniej"
-#: ext.c:248
+#: ext.c:246
#, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
msgstr "make_builtin: nie można użyć wbudowanej w gawk `%s' jako nazwy funkcji"
-#: ext.c:251 ext.c:304
+#: ext.c:249 ext.c:304
#, c-format
msgid "make_builtin: negative argument count for function `%s'"
msgstr "make_builtin: ujemny licznik argumentów dla funkcji `%s'"
-#: ext.c:278
+#: ext.c:276
msgid "extension: missing function name"
msgstr "extension: brakująca nazwa funkcji"
-#: ext.c:283
+#: ext.c:279 ext.c:283
#, c-format
msgid "extension: illegal character `%c' in function name `%s'"
msgstr "extension: nieprawidłowy znak `%c' w nazwie funkcji `%s'"
@@ -2026,139 +2039,143 @@ msgstr "extension: nazwa funkcji `%s' została zdefiniowana wcześniej"
msgid "extension: can't use gawk built-in `%s' as function name"
msgstr "extension: nie można użyć wbudowanej w gawk `%s' jako nazwy funkcji"
-#: ext.c:374
+#: ext.c:375
#, c-format
msgid "function `%s' defined to take no more than %d argument(s)"
msgstr "funkcja `%s' zdefiniowana aby pobrać nie więcej niż %d argument(ów)"
-#: ext.c:377
+#: ext.c:378
#, c-format
msgid "function `%s': missing argument #%d"
msgstr "funkcja `%s': brakuje #%d argumentu"
-#: ext.c:394
+#: ext.c:395
#, c-format
msgid "function `%s': argument #%d: attempt to use scalar as an array"
msgstr "funkcja `%s': argument #%d: próba użycia skalaru jako tablicy"
-#: ext.c:398
+#: ext.c:399
#, c-format
msgid "function `%s': argument #%d: attempt to use array as a scalar"
msgstr "funkcja `%s': argument #%d: próba użycia tablicy jako skalaru"
-#: ext.c:412
+#: ext.c:413
msgid "dynamic loading of library not supported"
msgstr "dynamiczne ładowanie biblioteki nie jest wspierane"
-#: extension/filefuncs.c:97
+#: extension/filefuncs.c:159
msgid "chdir: called with incorrect number of arguments, expecting 1"
msgstr "chdir: wywołano z nieprawidłową ilością argumentów, spodziewano się 1"
-#: extension/filefuncs.c:343
+#: extension/filefuncs.c:439
#, c-format
msgid "stat: unable to read symbolic link `%s'"
msgstr "stat: nie można odczytać dowiązania symbolicznego `%s'"
-#: extension/filefuncs.c:376
+#: extension/filefuncs.c:472
msgid "stat: called with wrong number of arguments"
msgstr "stat: wywołano z nieprawidłową ilością argumentów"
-#: extension/filefuncs.c:383
+#: extension/filefuncs.c:479
msgid "stat: bad parameters"
msgstr "stat: złe parametry"
-#: extension/filefuncs.c:437
+#: extension/filefuncs.c:533
#, c-format
msgid "fts init: could not create variable %s"
msgstr "fts init: nie można utworzyć zmiennej %s"
-#: extension/filefuncs.c:460
+#: extension/filefuncs.c:554
+msgid "fts is not supported on this system"
+msgstr "funkcja fts nie jest wspierana w tym systemie"
+
+#: extension/filefuncs.c:573
msgid "fill_stat_element: could not create array"
msgstr "fill_stat_element: nie można utworzyć tablicy"
-#: extension/filefuncs.c:469
+#: extension/filefuncs.c:582
msgid "fill_stat_element: could not set element"
msgstr "fill_stat_element: nie można ustawić elementu"
-#: extension/filefuncs.c:484
+#: extension/filefuncs.c:597
msgid "fill_path_element: could not set element"
msgstr "fill_path_element: nie można ustawić elementu"
-#: extension/filefuncs.c:500
+#: extension/filefuncs.c:613
msgid "fill_error_element: could not set element"
msgstr "fill_error_element: nie można ustawić elementu"
-#: extension/filefuncs.c:547 extension/filefuncs.c:594
+#: extension/filefuncs.c:660 extension/filefuncs.c:707
msgid "fts-process: could not create array"
msgstr "fts-process: nie można utworzyć tablicy"
-#: extension/filefuncs.c:557 extension/filefuncs.c:604
-#: extension/filefuncs.c:622
+#: extension/filefuncs.c:670 extension/filefuncs.c:717
+#: extension/filefuncs.c:735
msgid "fts-process: could not set element"
msgstr "fts-process: nie można ustawić elementu"
-#: extension/filefuncs.c:671
+#: extension/filefuncs.c:784
msgid "fts: called with incorrect number of arguments, expecting 3"
msgstr "fts: wywołano z nieprawidłową ilością argumentów, powinny być 3"
-#: extension/filefuncs.c:674
+#: extension/filefuncs.c:787
msgid "fts: bad first parameter"
msgstr "fts: nieprawidłowy pierwszy parametr"
-#: extension/filefuncs.c:680
+#: extension/filefuncs.c:793
msgid "fts: bad second parameter"
msgstr "fts: nieprawidłowy drugi parametr"
-#: extension/filefuncs.c:686
+#: extension/filefuncs.c:799
msgid "fts: bad third parameter"
msgstr "fts: nieprawidłowy trzeci parametr"
-#: extension/filefuncs.c:693
+#: extension/filefuncs.c:806
msgid "fts: could not flatten array\n"
msgstr "fts: nie można spłaszczyć tablicy\n"
-#: extension/filefuncs.c:711
+#: extension/filefuncs.c:824
msgid "fts: ignoring sneaky FTS_NOSTAT flag. nyah, nyah, nyah."
msgstr "fts: zignorowano flagę FTS_NOSTAT. nyah, nyah, nyah."
-#: extension/filefuncs.c:728
+#: extension/filefuncs.c:841
msgid "fts: clear_array() failed\n"
msgstr "fts: clear_array() nie powiodła się\n"
-#: extension/fnmatch.c:98
+#: extension/fnmatch.c:112
msgid "fnmatch: called with less than three arguments"
msgstr "fnmatch: wywołano z mniej niż trzema argumentami"
-#: extension/fnmatch.c:101
+#: extension/fnmatch.c:115
msgid "fnmatch: called with more than three arguments"
msgstr "fnmatch: wywołano z więcej niż trzema argumentami"
-#: extension/fnmatch.c:104
+#: extension/fnmatch.c:118
msgid "fnmatch: could not get first argument"
msgstr "fnmatch: nie można pobrać pierwszego argumentu"
-#: extension/fnmatch.c:109
+#: extension/fnmatch.c:123
msgid "fnmatch: could not get second argument"
msgstr "fnmatch: nie można pobrać drugiego argumentu"
-#: extension/fnmatch.c:114
+#: extension/fnmatch.c:128
msgid "fnmatch: could not get third argument"
msgstr "fnmatch: nie można pobrać trzeciego argumentu"
-#: extension/fnmatch.c:127
+#: extension/fnmatch.c:141
msgid "fnmatch is not implemented on this system\n"
msgstr "funkcja fnmatch nie została zaimplementowana w tym systemie\n"
-#: extension/fnmatch.c:159
+#: extension/fnmatch.c:173
msgid "fnmatch init: could not add FNM_NOMATCH variable"
msgstr "fnmatch init: nie można było dodać zmiennej FNM_NOMATCH"
-#: extension/fnmatch.c:169
+#: extension/fnmatch.c:183
#, c-format
msgid "fnmatch init: could not set array element %s"
msgstr "fnmatch init: nie można było ustawić elementu tablicy %s"
-#: extension/fnmatch.c:179
+#: extension/fnmatch.c:193
msgid "fnmatch init: could not install FNM array"
msgstr "fnmatch init: nie można było zainstalować tablicy FNM"
@@ -2182,90 +2199,90 @@ msgstr "wait: wywołano bez argumentów"
msgid "wait: called with too many arguments"
msgstr "wait: wywołana ze zbyt dużą ilością argumentów"
-#: extension/inplace.c:110
+#: extension/inplace.c:130
msgid "inplace_begin: in-place editing already active"
msgstr "inplace_begin: edycja w miejscu jest już aktywna"
-#: extension/inplace.c:113 extension/inplace.c:187
+#: extension/inplace.c:133 extension/inplace.c:207
#, c-format
msgid "inplace_begin: expects 2 arguments but called with %d"
msgstr "inplace_begin: spodziewano się 2 argumentów, a otrzymano %d"
-#: extension/inplace.c:116
+#: extension/inplace.c:136
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
msgstr "inplace_begin: nie można pobrać pierwszego argumentu jako nazwy pliku"
-#: extension/inplace.c:124
+#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
msgstr ""
"inplace_begin: wyłączenie edycji w miejscu dla nieprawidłowej nazwy pliku `"
"%s'"
-#: extension/inplace.c:131
+#: extension/inplace.c:151
#, c-format
msgid "inplace_begin: Cannot stat `%s' (%s)"
msgstr "inplace_begin: nie można sprawdzić `%s' (%s)"
-#: extension/inplace.c:138
+#: extension/inplace.c:158
#, c-format
msgid "inplace_begin: `%s' is not a regular file"
msgstr "inplace_begin: `%s' nie jest zwykłym plikiem"
-#: extension/inplace.c:149
+#: extension/inplace.c:169
#, c-format
msgid "inplace_begin: mkstemp(`%s') failed (%s)"
msgstr "inplace_begin: wywołanie mkstemp(`%s') nie powiodło się (%s)"
-#: extension/inplace.c:158
+#: extension/inplace.c:178
#, c-format
msgid "inplace_begin: chmod failed (%s)"
msgstr "inplace_begin: funkcja chmod nie powiodła się (%s)"
-#: extension/inplace.c:165
+#: extension/inplace.c:185
#, c-format
msgid "inplace_begin: dup(stdout) failed (%s)"
msgstr "inplace_begin: wywołanie dup(stdout) nie powiodło się (%s)"
-#: extension/inplace.c:168
+#: extension/inplace.c:188
#, c-format
msgid "inplace_begin: dup2(%d, stdout) failed (%s)"
msgstr "inplace_begin: wywołanie dup2(%d, stdout) nie powiodło się (%s)"
-#: extension/inplace.c:171
+#: extension/inplace.c:191
#, c-format
msgid "inplace_begin: close(%d) failed (%s)"
msgstr "inplace_begin: wywołanie close(%d) nie powiodło się (%s)"
-#: extension/inplace.c:190
+#: extension/inplace.c:210
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
msgstr "inplace_end: nie można pobrać pierwszego argumentu jako nazwy pliku"
-#: extension/inplace.c:197
+#: extension/inplace.c:217
msgid "inplace_end: in-place editing not active"
msgstr "inplace_end: edycja w miejscu nie jest aktywna"
-#: extension/inplace.c:203
+#: extension/inplace.c:223
#, c-format
msgid "inplace_end: dup2(%d, stdout) failed (%s)"
msgstr "inplace_end: wywołanie dup2(%d, stdout) nie powiodło się (%s)"
-#: extension/inplace.c:206
+#: extension/inplace.c:226
#, c-format
msgid "inplace_end: close(%d) failed (%s)"
msgstr "inplace_end: wywołanie close(%d) nie powiodło się (%s)"
-#: extension/inplace.c:210
+#: extension/inplace.c:230
#, c-format
msgid "inplace_end: fsetpos(stdout) failed (%s)"
msgstr "inplace_end: wywołanie fsetpos(stdout) nie powiodło się (%s)"
-#: extension/inplace.c:223
+#: extension/inplace.c:243
#, c-format
msgid "inplace_end: link(`%s', `%s') failed (%s)"
msgstr "inplace_end: wywołanie link(`%s', `%s') nie powiodło się (%s)"
-#: extension/inplace.c:229
+#: extension/inplace.c:253
#, c-format
msgid "inplace_end: rename(`%s', `%s') failed (%s)"
msgstr "inplace_end: wywołanie rename(`%s', `%s') nie powiodło się (%s)"
@@ -2294,173 +2311,173 @@ msgstr "chr: wywołano bez argumentów"
msgid "chr: called with inappropriate argument(s)"
msgstr "chr: wywołano z nieprawidłowymi argumentami"
-#: extension/readdir.c:203
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr "dir_take_control_of: wywołanie opendir/fdopendir nie powiodło się: %s"
-#: extension/readfile.c:84
+#: extension/readfile.c:113
msgid "readfile: called with too many arguments"
msgstr "readfile: wywołana ze zbyt dużą ilością argumentów"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
msgid "readfile: called with no arguments"
msgstr "readfile: wywołano bez argumentów"
-#: extension/rwarray.c:120
+#: extension/rwarray.c:124
msgid "writea: called with too many arguments"
msgstr "writea: wywołana ze zbyt dużą ilością argumentów"
-#: extension/rwarray.c:127
+#: extension/rwarray.c:131
#, c-format
msgid "do_writea: argument 0 is not a string\n"
msgstr "do_writea: argument 0 nie jest tekstem\n"
-#: extension/rwarray.c:133
+#: extension/rwarray.c:137
#, c-format
msgid "do_writea: argument 1 is not an array\n"
msgstr "do_writea: argument 1 nie jest tablicą\n"
-#: extension/rwarray.c:180
+#: extension/rwarray.c:184
#, c-format
msgid "write_array: could not flatten array\n"
msgstr "write_array: nie można spłaszczyć tablicy\n"
-#: extension/rwarray.c:194
+#: extension/rwarray.c:198
#, c-format
msgid "write_array: could not release flattened array\n"
msgstr "write_array: nie można było zwolnić spłaszczonej tablicy\n"
-#: extension/rwarray.c:276
+#: extension/rwarray.c:280
msgid "reada: called with too many arguments"
msgstr "reada: wywołana ze zbyt dużą ilością argumentów"
-#: extension/rwarray.c:283
+#: extension/rwarray.c:287
#, c-format
msgid "do_reada: argument 0 is not a string\n"
msgstr "do_reada: argument 0 nie jest tekstem\n"
-#: extension/rwarray.c:289
+#: extension/rwarray.c:293
#, c-format
msgid "do_reada: argument 1 is not an array\n"
msgstr "do_reada: argument 1 nie jest tablicą\n"
-#: extension/rwarray.c:333
+#: extension/rwarray.c:337
#, c-format
msgid "do_reada: clear_array failed\n"
msgstr "do_reada: clear_array nie powiodła się\n"
-#: extension/rwarray.c:370
+#: extension/rwarray.c:374
#, c-format
msgid "read_array: set_array_element failed\n"
msgstr "read_array: set_array_element nie powiodła się\n"
-#: extension/time.c:81
+#: extension/time.c:113
msgid "gettimeofday: ignoring arguments"
msgstr "gettimeofday: zignorowano argumenty"
-#: extension/time.c:112
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr "gettimeofday: funkcja nie jest wspierana na tej platformie"
-#: extension/time.c:133
+#: extension/time.c:165
msgid "sleep: called with too many arguments"
msgstr "sleep: wywołana ze zbyt dużą ilością argumentów"
-#: extension/time.c:136
+#: extension/time.c:168
msgid "sleep: missing required numeric argument"
msgstr "sleep: brakuje wymaganego argumentu numerycznego"
-#: extension/time.c:142
+#: extension/time.c:174
msgid "sleep: argument is negative"
msgstr "sleep: argument jest ujemny"
-#: extension/time.c:176
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr "sleep: funkcja nie jest wspierana na tej platformie"
-#: field.c:339
+#: field.c:345
msgid "NF set to negative value"
msgstr "NF ustawiony na wartość ujemną"
-#: field.c:964 field.c:971 field.c:975
+#: field.c:971 field.c:978 field.c:982
msgid "split: fourth argument is a gawk extension"
msgstr "split: czwarty argument jest rozszerzeniem gawk"
-#: field.c:968
+#: field.c:975
msgid "split: fourth argument is not an array"
msgstr "split: czwarty argument nie jest tablicą"
-#: field.c:982
+#: field.c:989
msgid "split: second argument is not an array"
msgstr "split: drugi argument nie jest tablicą"
-#: field.c:986
+#: field.c:993
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:991
+#: field.c:998
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:994
+#: field.c:1001
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:1023
+#: field.c:1032
msgid "split: null string for third arg is a gawk extension"
msgstr "split: zerowy łańcuch dla trzeciego argumentu jest rozszerzeniem gawk"
-#: field.c:1063
+#: field.c:1072
msgid "patsplit: fourth argument is not an array"
msgstr "patsplit: czwarty argument nie jest tablicą"
-#: field.c:1068
+#: field.c:1077
msgid "patsplit: second argument is not an array"
msgstr "patsplit: drugi argument nie jest tablicą"
-#: field.c:1074
+#: field.c:1083
msgid "patsplit: third argument must be non-null"
msgstr "patsplit: trzeci argument nie może być pusty"
-#: field.c:1078
+#: field.c:1087
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:1083
+#: field.c:1092
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:1086
+#: field.c:1095
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:1124
+#: field.c:1133
msgid "`FIELDWIDTHS' is a gawk extension"
msgstr "`FIELDWIDTHS' jest rozszerzeniem gawk"
-#: field.c:1188
+#: field.c:1197
#, c-format
msgid "invalid FIELDWIDTHS value, near `%s'"
msgstr "nieprawidłowa wartość FIELDWIDTHS, w pobliżu `%s'"
-#: field.c:1261
+#: field.c:1270
msgid "null string for `FS' is a gawk extension"
msgstr "zerowy łańcuch dla `FS' jest rozszerzeniem gawk"
-#: field.c:1265
+#: field.c:1274
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:1384
+#: field.c:1393
msgid "`FPAT' is a gawk extension"
msgstr "`FPAT' jest rozszerzeniem gawk"
@@ -2476,391 +2493,391 @@ msgstr "node_to_awk_value: otrzymano null node"
msgid "node_to_awk_value: received null val"
msgstr "node_to_awk_value: otrzymano null val"
-#: gawkapi.c:808
+#: gawkapi.c:807
msgid "remove_element: received null array"
msgstr "remove_element: otrzymano tablicę null"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr "remove_element: otrzymano null subscript"
-#: gawkapi.c:943
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr "api_flatten_array: nie można było skonwertować indeksu %d\n"
-#: gawkapi.c:948
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr "api_flatten_array: nie można było skonwertować wartości %d\n"
-#: getopt.c:603 getopt.c:632
+#: getopt.c:604 getopt.c:633
#, c-format
msgid "%s: option '%s' is ambiguous; possibilities:"
msgstr "%s: opcja '%s' jest niejednoznaczna; możliwości:"
-#: getopt.c:678 getopt.c:682
+#: getopt.c:679 getopt.c:683
#, c-format
msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: opcja '--%s' nie może mieć argumentów\n"
-#: getopt.c:691 getopt.c:696
+#: getopt.c:692 getopt.c:697
#, c-format
msgid "%s: option '%c%s' doesn't allow an argument\n"
msgstr "%s: opcja '%c%s' nie może mieć argumentów\n"
-#: getopt.c:739 getopt.c:758
+#: getopt.c:740 getopt.c:759
#, c-format
msgid "%s: option '--%s' requires an argument\n"
msgstr "%s: opcja '--%s' wymaga argumentu\n"
-#: getopt.c:796 getopt.c:799
+#: getopt.c:797 getopt.c:800
#, c-format
msgid "%s: unrecognized option '--%s'\n"
msgstr "%s: nieznana opcja '--%s'\n"
-#: getopt.c:807 getopt.c:810
+#: getopt.c:808 getopt.c:811
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
msgstr "%s: nieznana opcja '%c%s'\n"
-#: getopt.c:859 getopt.c:862
+#: getopt.c:860 getopt.c:863
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: błędna opcja -- '%c'\n"
-#: getopt.c:915 getopt.c:932 getopt.c:1142 getopt.c:1160
+#: getopt.c:916 getopt.c:933 getopt.c:1143 getopt.c:1161
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: opcja wymaga argumentu -- '%c'\n"
-#: getopt.c:988 getopt.c:1004
+#: getopt.c:989 getopt.c:1005
#, c-format
msgid "%s: option '-W %s' is ambiguous\n"
msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
-#: getopt.c:1028 getopt.c:1046
+#: getopt.c:1029 getopt.c:1047
#, c-format
msgid "%s: option '-W %s' doesn't allow an argument\n"
msgstr "%s: opcja '-W %s' nie może mieć argumentów\n"
-#: getopt.c:1067 getopt.c:1085
+#: getopt.c:1068 getopt.c:1086
#, c-format
msgid "%s: option '-W %s' requires an argument\n"
msgstr "%s: opcja '-W %s' wymaga argumentu\n"
-#: io.c:347
+#: io.c:392
#, c-format
msgid "command line argument `%s' is a directory: skipped"
msgstr "argument linii poleceń `%s' jest katalogiem: pominięto"
-#: io.c:350 io.c:463
+#: io.c:395 io.c:513
#, c-format
msgid "cannot open file `%s' for reading (%s)"
msgstr "nie można otworzyć pliku `%s' do czytania (%s)"
-#: io.c:590
+#: io.c:640
#, c-format
msgid "close of fd %d (`%s') failed (%s)"
msgstr "zamknięcie fd %d (`%s') nie powiodło się (%s)"
-#: io.c:666
+#: io.c:716
msgid "redirection not allowed in sandbox mode"
msgstr "przekierowanie nie jest dozwolone w trybie piaskownicy"
-#: io.c:700
+#: io.c:750
#, c-format
msgid "expression in `%s' redirection only has numeric value"
msgstr "wyrażenie w przekierowaniu `%s' ma tylko wartość numeryczną"
-#: io.c:706
+#: io.c:756
#, c-format
msgid "expression for `%s' redirection has null string value"
msgstr "wyrażenie dla przekierowania `%s' ma zerową wartość łańcucha"
-#: io.c:711
+#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
msgstr ""
"nazwa pliku `%s' dla przekierowania `%s' może być rezultatem logicznego "
"wyrażenia"
-#: io.c:754
+#: io.c:809
#, c-format
msgid "unnecessary mixing of `>' and `>>' for file `%.*s'"
msgstr "niepotrzebne mieszanie `>' i `>>' dla pliku `%.*s'"
-#: io.c:808
+#: io.c:863
#, c-format
msgid "can't open pipe `%s' for output (%s)"
msgstr "nie można otworzyć potoku `%s' jako wyjścia (%s)"
-#: io.c:818
+#: io.c:873
#, c-format
msgid "can't open pipe `%s' for input (%s)"
msgstr "nie można otworzyć potoku `%s' jako wejścia (%s)"
-#: io.c:849
+#: io.c:904
#, c-format
msgid "can't open two way pipe `%s' for input/output (%s)"
msgstr ""
"nie można otworzyć dwukierunkowego potoku `%s' jako wejścia/wyjścia (%s)"
-#: io.c:928
+#: io.c:986
#, c-format
msgid "can't redirect from `%s' (%s)"
msgstr "nie można przekierować z `%s' (%s)"
-#: io.c:931
+#: io.c:989
#, c-format
msgid "can't redirect to `%s' (%s)"
msgstr "nie można przekierować do `%s' (%s)"
-#: io.c:982
+#: io.c:1040
msgid ""
"reached system limit for open files: starting to multiplex file descriptors"
msgstr ""
"osiągnięto systemowy limit otwartych plików: rozpoczęcie multipleksowania "
"deskryptorów plików"
-#: io.c:998
+#: io.c:1056
#, c-format
msgid "close of `%s' failed (%s)."
msgstr "zamknięcie `%s' nie powiodło się (%s)."
-#: io.c:1006
+#: io.c:1064
msgid "too many pipes or input files open"
msgstr "zbyt dużo otwartych potoków lub plików wejściowych"
-#: io.c:1028
+#: io.c:1086
msgid "close: second argument must be `to' or `from'"
msgstr "close: drugim argumentem musi być `to' lub `from'"
-#: io.c:1045
+#: io.c:1103
#, c-format
msgid "close: `%.*s' is not an open file, pipe or co-process"
msgstr ""
"close: `%.*s' nie jest ani otwartym plikiem, ani potokiem, ani procesem"
-#: io.c:1050
+#: io.c:1108
msgid "close of redirection that was never opened"
msgstr "zamknięcie przekierowania, które nigdy nie zostało otwarte"
-#: io.c:1147
+#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
msgstr ""
"close: przekierowanie `%s' nie zostało otwarte z `|&', drugi argument "
"zignorowany"
-#: io.c:1164
+#: io.c:1222
#, c-format
msgid "failure status (%d) on pipe close of `%s' (%s)"
msgstr "status awarii (%d) podczas zamykania potoku `%s' (%s)"
-#: io.c:1167
+#: io.c:1225
#, c-format
msgid "failure status (%d) on file close of `%s' (%s)"
msgstr "status awarii (%d) podczas zamykania pliku `%s' (%s)"
-#: io.c:1187
+#: io.c:1245
#, c-format
msgid "no explicit close of socket `%s' provided"
msgstr "brak jawnego zamknięcia gniazdka `%s'"
-#: io.c:1190
+#: io.c:1248
#, c-format
msgid "no explicit close of co-process `%s' provided"
msgstr "brak jawnego zamknięcia procesu pomocniczego `%s'"
-#: io.c:1193
+#: io.c:1251
#, c-format
msgid "no explicit close of pipe `%s' provided"
msgstr "brak jawnego zamknięcia potoku `%s'"
-#: io.c:1196
+#: io.c:1254
#, c-format
msgid "no explicit close of file `%s' provided"
msgstr "brak jawnego zamknięcia pliku `%s'"
-#: io.c:1224 io.c:1279 main.c:842 main.c:879
+#: io.c:1284 io.c:1342 main.c:864 main.c:906
#, c-format
msgid "error writing standard output (%s)"
msgstr "błąd podczas zapisu na standardowe wyjście (%s)"
-#: io.c:1228 io.c:1284
+#: io.c:1289 io.c:1348 main.c:866
#, c-format
msgid "error writing standard error (%s)"
msgstr "błąd podczas zapisu na standardowe wyjście diagnostyczne (%s)"
-#: io.c:1236
+#: io.c:1297
#, c-format
msgid "pipe flush of `%s' failed (%s)."
msgstr "opróżnienie potoku `%s' nie powiodło się (%s)."
-#: io.c:1239
+#: io.c:1300
#, c-format
msgid "co-process flush of pipe to `%s' failed (%s)."
msgstr ""
"opróżnienie potoku do `%s' przez proces pomocniczy nie powiodło się (%s)."
-#: io.c:1242
+#: io.c:1303
#, c-format
msgid "file flush of `%s' failed (%s)."
msgstr "opróżnienie pliku `%s' nie powiodło się (%s)."
-#: io.c:1356
+#: io.c:1420
#, c-format
msgid "local port %s invalid in `/inet'"
msgstr "nieprawidłowy lokalny port %s w `/inet'"
-#: io.c:1374
+#: io.c:1438
#, c-format
msgid "remote host and port information (%s, %s) invalid"
msgstr "informacje o zdalnym hoście i porcie są nieprawidłowe (%s, %s)"
-#: io.c:1526
+#: io.c:1590
#, c-format
msgid "no (known) protocol supplied in special filename `%s'"
msgstr "nie dostarczono (znanego) protokołu w specjalnym pliku `%s'"
-#: io.c:1540
+#: io.c:1604
#, c-format
msgid "special file name `%s' is incomplete"
msgstr "specjalna nazwa pliku `%s' jest niekompletna"
-#: io.c:1557
+#: io.c:1621
msgid "must supply a remote hostname to `/inet'"
msgstr "należy dostarczyć nazwę zdalnego hosta do `/inet'"
-#: io.c:1575
+#: io.c:1639
msgid "must supply a remote port to `/inet'"
msgstr "należy dostarczyć numer zdalnego portu do `/inet'"
-#: io.c:1621
+#: io.c:1685
msgid "TCP/IP communications are not supported"
msgstr "Komunikacja TCP/IP nie jest wspierana"
-#: io.c:1796
+#: io.c:1867
#, c-format
msgid "could not open `%s', mode `%s'"
msgstr "nie można otworzyć `%s', tryb `%s'"
-#: io.c:1846
+#: io.c:1917
#, c-format
msgid "close of master pty failed (%s)"
msgstr "zamknięcie nadrzędnego pty nie powiodło się (%s)"
-#: io.c:1848 io.c:2024 io.c:2194
+#: io.c:1919 io.c:2105 io.c:2305
#, c-format
msgid "close of stdout in child failed (%s)"
msgstr ""
"zamknięcie standardowego wyjścia w procesie potomnym nie powiodło się (%s)"
-#: io.c:1851
+#: io.c:1922
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
msgstr ""
"przesunięcie podległego pty na standardowe wyjście w procesie potomnym nie "
"powiodło się (dup: %s)"
-#: io.c:1853 io.c:2029
+#: io.c:1924 io.c:2110
#, c-format
msgid "close of stdin in child failed (%s)"
msgstr ""
"zamknięcie standardowego wejścia w procesie potomnym nie powiodło się (%s)"
-#: io.c:1856
+#: io.c:1927
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
msgstr ""
"przesunięcie podległego pty na standardowe wejście w procesie potomnym nie "
"powiodło się (dup: %s)"
-#: io.c:1858 io.c:1879
+#: io.c:1929 io.c:1951
#, c-format
msgid "close of slave pty failed (%s)"
msgstr "zamknięcie podległego pty nie powiodło się (%s)"
-#: io.c:1965 io.c:2027 io.c:2171 io.c:2197
+#: io.c:2040 io.c:2108 io.c:2276 io.c:2308
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
msgstr ""
"przesunięcie potoku na standardowe wyjście w procesie potomnym nie powiodło "
"się (dup: %s)"
-#: io.c:1972 io.c:2032
+#: io.c:2047 io.c:2113
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
msgstr ""
"przesunięcie potoku na standardowe wejście w procesie potomnym nie powiodło "
"się (dup: %s)"
-#: io.c:1992 io.c:2187
+#: io.c:2073 io.c:2298
msgid "restoring stdout in parent process failed\n"
msgstr ""
"odzyskanie standardowego wyjścia w procesie potomnym nie powiodło się\n"
-#: io.c:2000
+#: io.c:2081
msgid "restoring stdin in parent process failed\n"
msgstr ""
"odzyskanie standardowego wejścia w procesie potomnym nie powiodło się\n"
-#: io.c:2035 io.c:2199 io.c:2213
+#: io.c:2116 io.c:2310 io.c:2324
#, c-format
msgid "close of pipe failed (%s)"
msgstr "zamknięcie potoku nie powiodło się (%s)"
-#: io.c:2089
+#: io.c:2174
msgid "`|&' not supported"
msgstr "`|&' nie jest wspierany"
-#: io.c:2156
+#: io.c:2261
#, c-format
msgid "cannot open pipe `%s' (%s)"
msgstr "nie można otworzyć potoku `%s' (%s)"
-#: io.c:2207
+#: io.c:2318
#, c-format
msgid "cannot create child process for `%s' (fork: %s)"
msgstr "nie można utworzyć procesu potomnego dla `%s' (fork: %s)"
-#: io.c:2667
+#: io.c:2790
msgid "register_input_parser: received NULL pointer"
msgstr "register_input_parser: otrzymano wskaźnik NULL"
-#: io.c:2695
+#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
msgstr ""
"parser wejścia `%s' konfliktuje z poprzednio zainstalowanym parserem `%s'"
-#: io.c:2702
+#: io.c:2825
#, c-format
msgid "input parser `%s' failed to open `%s'"
msgstr "parser wejścia `%s': nie powiodło się otwarcie `%s'"
-#: io.c:2722
+#: io.c:2845
msgid "register_output_wrapper: received NULL pointer"
msgstr "register_output_wrapper: otrzymano wskaźnik NULL"
-#: io.c:2750
+#: io.c:2873
#, c-format
msgid ""
"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
msgstr ""
"otoczka wyjścia `%s' konfliktuje z poprzednio zainstalowaną otoczką `%s'"
-#: io.c:2757
+#: io.c:2880
#, c-format
msgid "output wrapper `%s' failed to open `%s'"
msgstr "otoczka wyjścia `%s': nie powiodło się otwarcie `%s'"
-#: io.c:2778
+#: io.c:2901
msgid "register_output_processor: received NULL pointer"
msgstr "register_output_processor: otrzymano wskaźnik NULL"
-#: io.c:2807
+#: io.c:2930
#, c-format
msgid ""
"two-way processor `%s' conflicts with previously installed two-way processor "
@@ -2869,212 +2886,212 @@ msgstr ""
"dwukierunkowy procesor `%s' konfliktuje z poprzednio zainstalowanym "
"procesorem `%s'"
-#: io.c:2816
+#: io.c:2939
#, c-format
msgid "two way processor `%s' failed to open `%s'"
msgstr "dwukierunkowy procesor `%s' zawiódł w otwarciu `%s'"
-#: io.c:2923
+#: io.c:3064
#, c-format
msgid "data file `%s' is empty"
msgstr "plik danych `%s' jest pusty"
-#: io.c:2965 io.c:2973
+#: io.c:3106 io.c:3114
msgid "could not allocate more input memory"
msgstr "nie można zarezerwować więcej pamięci wejściowej"
-#: io.c:3539
+#: io.c:3682
msgid "multicharacter value of `RS' is a gawk extension"
msgstr "wieloznakowa wartość `RS' jest rozszerzeniem gawk"
-#: io.c:3628
+#: io.c:3771
msgid "IPv6 communication is not supported"
msgstr "Komunikacja IPv6 nie jest wspierana"
-#: main.c:388
+#: main.c:405
msgid "empty argument to `-e/--source' ignored"
msgstr "pusty argument dla opcji `-e/--source' został zignorowany"
-#: main.c:478
+#: main.c:495
#, c-format
msgid "%s: option `-W %s' unrecognized, ignored\n"
msgstr "%s: opcja `-W %s' nierozpoznana i zignorowana\n"
-#: main.c:524
+#: main.c:541
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: opcja musi mieć argument -- %c\n"
-#: main.c:545
+#: main.c:562
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
msgstr ""
"zmienna środowiskowa `POSIXLY_CORRECT' ustawiona: `--posix' został włączony"
-#: main.c:551
+#: main.c:568
msgid "`--posix' overrides `--traditional'"
msgstr "opcja `--posix' zostanie użyta nad `--traditional'"
-#: main.c:562
+#: main.c:579
msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
msgstr "`--posix'/`--traditional' użyte nad opcją `--non-decimal-data'"
-#: main.c:566
+#: main.c:583
#, c-format
msgid "running %s setuid root may be a security problem"
msgstr ""
"uruchamianie %s setuid root może być problemem pod względem bezpieczeństwa"
-#: main.c:571
+#: main.c:588
msgid "`--posix' overrides `--characters-as-bytes'"
msgstr "opcja `--posix' zostanie użyta nad `--characters-as-bytes'"
-#: main.c:630
+#: main.c:647
#, c-format
msgid "can't set binary mode on stdin (%s)"
msgstr "nie można ustawić trybu binarnego na standardowym wejściu (%s)"
-#: main.c:633
+#: main.c:650
#, c-format
msgid "can't set binary mode on stdout (%s)"
msgstr "nie można ustawić trybu binarnego na standardowym wyjściu (%s)"
-#: main.c:635
+#: main.c:652
#, c-format
msgid "can't set binary mode on stderr (%s)"
msgstr "nie można ustawić trybu binarnego na wyjściu diagnostycznym (%s)"
-#: main.c:693
+#: main.c:710
msgid "no program text at all!"
msgstr "brak tekstu programu!"
-#: main.c:779
+#: main.c:799
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
msgstr ""
"Użycie: %s [styl opcji POSIX lub GNU] -f plik_z_programem [--] plik ...\n"
-#: main.c:781
+#: main.c:801
#, c-format
msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
msgstr "Użycie: %s [styl opcji POSIX lub GNU] [--] %cprogram%c plik ...\n"
-#: main.c:786
+#: main.c:806
msgid "POSIX options:\t\tGNU long options: (standard)\n"
msgstr "Opcje POSIX:\t\tDługie opcje GNU (standard):\n"
-#: main.c:787
+#: main.c:807
msgid "\t-f progfile\t\t--file=progfile\n"
msgstr "\t-f program\t\t--file=program\n"
-#: main.c:788
+#: main.c:808
msgid "\t-F fs\t\t\t--field-separator=fs\n"
msgstr "\t-F fs\t\t\t--field-separator=fs\n"
-#: main.c:789
+#: main.c:809
msgid "\t-v var=val\t\t--assign=var=val\n"
msgstr "\t-v zmienna=wartość\t--assign=zmienna=wartość\n"
-#: main.c:790
+#: main.c:810
msgid "Short options:\t\tGNU long options: (extensions)\n"
msgstr "Krótkie opcje:\t\tDługie opcje GNU: (rozszerzenia)\n"
-#: main.c:791
+#: main.c:811
msgid "\t-b\t\t\t--characters-as-bytes\n"
msgstr "\t-b\t\t\t--characters-as-bytes\n"
-#: main.c:792
+#: main.c:812
msgid "\t-c\t\t\t--traditional\n"
msgstr "\t-c\t\t\t--traditional\n"
-#: main.c:793
+#: main.c:813
msgid "\t-C\t\t\t--copyright\n"
msgstr "\t-C\t\t\t--copyright\n"
-#: main.c:794
+#: main.c:814
msgid "\t-d[file]\t\t--dump-variables[=file]\n"
msgstr "\t-d[plik]\t\t--dump-variables[=plik]\n"
-#: main.c:795
+#: main.c:815
msgid "\t-D[file]\t\t--debug[=file]\n"
msgstr "\t-D[plik]\t\t--debug[=plik]\n"
-#: main.c:796
+#: main.c:816
msgid "\t-e 'program-text'\t--source='program-text'\n"
msgstr "\t-e 'tekst-programu'\t--source='tekst-programu'\n"
-#: main.c:797
+#: main.c:817
msgid "\t-E file\t\t\t--exec=file\n"
msgstr "\t-E plik\t\t\t--exec=plik\n"
-#: main.c:798
+#: main.c:818
msgid "\t-g\t\t\t--gen-pot\n"
msgstr "\t-g\t\t\t--gen-pot\n"
-#: main.c:799
+#: main.c:819
msgid "\t-h\t\t\t--help\n"
msgstr "\t-h\t\t\t--help\n"
-#: main.c:800
+#: main.c:820
msgid "\t-i includefile\t\t--include=includefile\n"
msgstr "\t-i plikinclude\t\t--include=plikinclude\n"
-#: main.c:801
+#: main.c:821
msgid "\t-l library\t\t--load=library\n"
msgstr "\t-l biblioteka\t\t--load=biblioteka\n"
-#: main.c:802
+#: main.c:822
msgid "\t-L [fatal]\t\t--lint[=fatal]\n"
msgstr "\t-L [fatal]\t\t--lint[=fatal]\n"
-#: main.c:803
+#: main.c:823
msgid "\t-n\t\t\t--non-decimal-data\n"
msgstr "\t-n\t\t\t--non-decimal-data\n"
-#: main.c:804
+#: main.c:824
msgid "\t-M\t\t\t--bignum\n"
msgstr "\t-M\t\t\t--bignum\n"
-#: main.c:805
+#: main.c:825
msgid "\t-N\t\t\t--use-lc-numeric\n"
msgstr "\t-N\t\t\t--use-lc-numeric\n"
-#: main.c:806
+#: main.c:826
msgid "\t-o[file]\t\t--pretty-print[=file]\n"
msgstr "\t-o[plik]\t\t--pretty-print[=plik]\n"
-#: main.c:807
+#: main.c:827
msgid "\t-O\t\t\t--optimize\n"
msgstr "\t-O\t\t\t--optimize\n"
-#: main.c:808
+#: main.c:828
msgid "\t-p[file]\t\t--profile[=file]\n"
msgstr "\t-p[plik]\t\t--profile[=plik]\n"
-#: main.c:809
+#: main.c:829
msgid "\t-P\t\t\t--posix\n"
msgstr "\t-P\t\t\t--posix\n"
-#: main.c:810
+#: main.c:830
msgid "\t-r\t\t\t--re-interval\n"
msgstr "\t-r\t\t\t--re-interval\n"
-#: main.c:811
+#: main.c:831
msgid "\t-S\t\t\t--sandbox\n"
msgstr "\t-S\t\t\t--sandbox\n"
-#: main.c:812
+#: main.c:832
msgid "\t-t\t\t\t--lint-old\n"
msgstr "\t-t\t\t\t--lint-old\n"
-#: main.c:813
+#: main.c:833
msgid "\t-V\t\t\t--version\n"
msgstr "\t-V\t\t\t--version\n"
-#: main.c:815
+#: main.c:835
msgid "\t-W nostalgia\t\t--nostalgia\n"
msgstr "\t-W nostalgia\t\t--nostalgia\n"
-#: main.c:818
+#: main.c:838
msgid "\t-Y\t\t--parsedebug\n"
msgstr "\t-Y\t\t--parsedebug\n"
@@ -3083,7 +3100,7 @@ msgstr "\t-Y\t\t--parsedebug\n"
#. for this application. Please add _another line_ with the
#. address for translation bugs.
#. no-wrap
-#: main.c:827
+#: main.c:847
msgid ""
"\n"
"To report bugs, see node `Bugs' in `gawk.info', which is\n"
@@ -3096,7 +3113,7 @@ msgstr ""
"dokumentacji.\n"
"\n"
-#: main.c:831
+#: main.c:851
msgid ""
"gawk is a pattern scanning and processing language.\n"
"By default it reads standard input and writes standard output.\n"
@@ -3106,7 +3123,7 @@ msgstr ""
"Program domyślnie czyta standardowe wejście i zapisuje standardowe wyjście.\n"
"\n"
-#: main.c:835
+#: main.c:855
msgid ""
"Examples:\n"
"\tgawk '{ sum += $1 }; END { print sum }' file\n"
@@ -3116,7 +3133,7 @@ msgstr ""
"\tgawk '{ suma += $1 }; END { print suma }' plik\n"
"\tgawk -F: '{ print $1 }' /etc/passwd\n"
-#: main.c:855
+#: main.c:880
#, c-format
msgid ""
"Copyright (C) 1989, 1991-%d Free Software Foundation.\n"
@@ -3135,7 +3152,7 @@ msgstr ""
"tej Licencji lub którejś z późniejszych wersji.\n"
"\n"
-#: main.c:863
+#: main.c:888
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"
@@ -3150,7 +3167,7 @@ msgstr ""
"Powszechną Licencję Publiczną GNU.\n"
"\n"
-#: main.c:869
+#: main.c:894
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"
@@ -3159,16 +3176,16 @@ msgstr ""
"Powszechnej Licencji Publicznej GNU (GNU General Public License);\n"
"jeśli zaś nie - odwiedź stronę http://www.gnu.org/licenses/.\n"
-#: main.c:904
+#: main.c:931
msgid "-Ft does not set FS to tab in POSIX awk"
msgstr "-Ft nie ustawia FS na znak tabulatora w POSIX awk"
-#: main.c:1181
+#: main.c:1208
#, c-format
msgid "unknown value for field spec: %d\n"
msgstr "nieznana wartość dla specyfikacji pola: %d\n"
-#: main.c:1279
+#: main.c:1306
#, c-format
msgid ""
"%s: `%s' argument to `-v' not in `var=value' form\n"
@@ -3177,48 +3194,48 @@ msgstr ""
"%s: argument `%s' dla `-v' nie jest zgodny ze składnią `zmienna=wartość'\n"
"\n"
-#: main.c:1305
+#: main.c:1332
#, c-format
msgid "`%s' is not a legal variable name"
msgstr "`%s' nie jest dozwoloną nazwą zmiennej"
-#: main.c:1308
+#: main.c:1335
#, 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:1312
+#: main.c:1339
#, 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:1317
+#: main.c:1344
#, c-format
msgid "cannot use function `%s' as variable name"
msgstr "nie można użyć funkcji `%s' jako nazwy zmiennej"
-#: main.c:1370
+#: main.c:1397
msgid "floating point exception"
msgstr "wyjątek zmiennopozycyjny"
-#: main.c:1377
+#: main.c:1404
msgid "fatal error: internal error"
msgstr "fatalny błąd: wewnętrzny błąd"
-#: main.c:1392
+#: main.c:1419
msgid "fatal error: internal error: segfault"
msgstr "fatalny błąd: wewnętrzny błąd: błąd segmentacji"
-#: main.c:1404
+#: main.c:1431
msgid "fatal error: internal error: stack overflow"
msgstr "fatalny błąd: wewnętrzny błąd: przepełnienie stosu"
-#: main.c:1463
+#: main.c:1490
#, c-format
msgid "no pre-opened fd %d"
msgstr "brak już otwartego fd %d"
-#: main.c:1470
+#: main.c:1497
#, c-format
msgid "could not pre-open /dev/null for fd %d"
msgstr "nie można otworzyć zawczasu /dev/null dla fd %d"
@@ -3273,7 +3290,7 @@ msgstr "%s: argument #%d ułamkowa wartość %Rg zostanie obcięta"
msgid "%s: argument #%d negative value %Zd will give strange results"
msgstr "%s: argument #%d ujemna wartość %Zd spowoduje dziwne wyniki"
-#: msg.c:61
+#: msg.c:68
#, c-format
msgid "cmd. line:"
msgstr "linia poleceń:"
@@ -3327,16 +3344,16 @@ msgstr "%s %s `%s': nie można uzyskać flag fd: (fcntl F_GETFD: %s)"
msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
msgstr "%s %s `%s': nie można ustawić close-on-exec: (fcntl F_SETFD: %s)"
-#: profile.c:70
+#: profile.c:71
#, c-format
msgid "could not open `%s' for writing: %s"
msgstr "nie można otworzyć `%s' do zapisu: %s"
-#: profile.c:72
+#: profile.c:73
msgid "sending profile to standard error"
msgstr "wysyłanie profilu na standardowe wyjście diagnostyczne"
-#: profile.c:188
+#: profile.c:193
#, c-format
msgid ""
"\t# %s block(s)\n"
@@ -3345,7 +3362,7 @@ msgstr ""
"\t# %s blok(i)\n"
"\n"
-#: profile.c:193
+#: profile.c:198
#, c-format
msgid ""
"\t# Rule(s)\n"
@@ -3354,16 +3371,16 @@ msgstr ""
"\t# Reguła(i)\n"
"\n"
-#: profile.c:267
+#: profile.c:272
#, c-format
msgid "internal error: %s with null vname"
msgstr "wewnętrzny błąd: %s z zerowym vname"
-#: profile.c:530
+#: profile.c:537
msgid "internal error: builtin with null fname"
msgstr "wewnętrzny błąd: builtin z fname null"
-#: profile.c:942
+#: profile.c:949
#, c-format
msgid ""
"\t# Loaded extensions (-l and/or @load)\n"
@@ -3372,12 +3389,12 @@ msgstr ""
"\t# Załadowane rozszerzenia (-l i/lub @load)\n"
"\n"
-#: profile.c:965
+#: profile.c:972
#, c-format
msgid "\t# gawk profile, created %s\n"
msgstr "\t# profil programu gawk, utworzony %s\n"
-#: profile.c:1351
+#: profile.c:1475
#, c-format
msgid ""
"\n"
@@ -3386,17 +3403,12 @@ msgstr ""
"\n"
"\t# Funkcje, spis alfabetyczny\n"
-#: profile.c:1389
+#: profile.c:1513
#, c-format
msgid "redir2str: unknown redirection type %d"
msgstr "redir2str: nieznany typ przekierowania %d"
-#: re.c:583
-#, c-format
-msgid "range of the form `[%c-%c]' is locale dependent"
-msgstr "zasięg formy `[%c-%c]' jest zależny od lokalizacji"
-
-#: re.c:610
+#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
msgstr "komponent regexp `%.*s' powinien być prawdopodobnie `[%.*s]'"
@@ -3465,10 +3477,13 @@ msgstr "Niedopasowany znak ) lub \\)"
msgid "No previous regular expression"
msgstr "Brak poprzedniego wyrażenia regularnego"
-#: symbol.c:740
+#: symbol.c:741
msgid "can not pop main context"
msgstr "nie można zdjąć głównego kontekstu"
+#~ msgid "range of the form `[%c-%c]' is locale dependent"
+#~ msgstr "zasięg formy `[%c-%c]' jest zależny od lokalizacji"
+
#~ msgid "attempt to use function `%s' as an array"
#~ msgstr "próba użycia funkcji `%s' jako tablicy"
diff --git a/po/sv.gmo b/po/sv.gmo
index d0bebea6..11006e58 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 23e7037a..79b0bca8 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk 4.1.0b\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2014-01-14 22:23+0200\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2014-01-21 17:40+0100\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -38,8 +38,8 @@ msgstr "försök att använda skalärparametern ”%s” som en vektor"
msgid "attempt to use scalar `%s' as an array"
msgstr "försök att använda skalären ”%s” som en vektor"
-#: array.c:409 array.c:576 builtin.c:85 builtin.c:1599 builtin.c:1645
-#: builtin.c:1658 builtin.c:2086 builtin.c:2100 eval.c:1122 eval.c:1126
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
@@ -77,19 +77,27 @@ msgstr "asorti: första argumentet är inte en vektor"
#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
-msgstr "asort: det går inte att använda en delvektor av första argumentet som andra argument"
+msgstr ""
+"asort: det går inte att använda en delvektor av första argumentet som andra "
+"argument"
#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
-msgstr "asorti: det går inte att använda en delvektor av första argumentet som andra argument"
+msgstr ""
+"asorti: det går inte att använda en delvektor av första argumentet som andra "
+"argument"
#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
-msgstr "asort: det går inte att använda en delvektor av andra argumentet som första argument"
+msgstr ""
+"asort: det går inte att använda en delvektor av andra argumentet som första "
+"argument"
#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
-msgstr "asorti: det går inte att använda en delvektor av andra argumentet som första argument"
+msgstr ""
+"asorti: det går inte att använda en delvektor av andra argumentet som första "
+"argument"
#: array.c:1314
#, c-format
@@ -137,11 +145,11 @@ msgstr "upprepade case-värden i switch-sats: %s"
msgid "duplicate `default' detected in switch body"
msgstr "flera \"default\" upptäcktes i switch-sats"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
msgstr "\"break\" är inte tillåtet utanför en slinga eller switch"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "\"continue\" är inte tillåtet utanför en slinga"
@@ -161,7 +169,8 @@ msgstr "\"return\" använd utanför funktion"
#: awkgram.y:922
msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr "ensamt \"print\" i BEGIN eller END-regel bör troligen vara 'print \"\"'"
+msgstr ""
+"ensamt \"print\" i BEGIN eller END-regel bör troligen vara 'print \"\"'"
#: awkgram.y:988 awkgram.y:1037
msgid "`delete' is not allowed with SYMTAB"
@@ -224,268 +233,279 @@ msgstr "indirekta funktionsanrop är en gawk-utökning"
#: awkgram.y:1620
#, c-format
msgid "can not use special variable `%s' for indirect function call"
-msgstr "det går inte att använda specialvariabeln \"%s\" för indirekta fuktionsanrop"
+msgstr ""
+"det går inte att använda specialvariabeln \"%s\" för indirekta fuktionsanrop"
#: awkgram.y:1698
msgid "invalid subscript expression"
msgstr "ogiltig indexuttryck"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:126
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "varning: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:158
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "ödesdigert: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "oväntat nyradstecken eller slut på strängen"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:523 debug.c:539
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "kan inte öppna källfilen \"%s\" för läsning (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "kan inte öppna det delade biblioteket ”%s” för läsning (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:135 debug.c:5206
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "okänd anledning"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr "kan inte inkludera ”%s” och använda den som en programfil"
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "inkluderade redan källfilen \"%s\""
-#: awkgram.y:2385
+#: awkgram.y:2409
#, c-format
msgid "already loaded shared library `%s'"
msgstr "inkluderade redan det delade biblioteket ”%s”"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "@include är en gawk-utökning"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "tomt filnamn efter @include"
-#: awkgram.y:2470
+#: awkgram.y:2494
msgid "@load is a gawk extension"
msgstr "@load är en gawk-utökning"
-#: awkgram.y:2476
+#: awkgram.y:2500
msgid "empty filename after @load"
msgstr "tomt filnamn efter @load"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "tom programtext på kommandoraden"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "kan inte läsa källfilen \"%s\" (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "källfilen \"%s\" är tom"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "källfilen slutar inte med en ny rad"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
msgstr "oavslutat reguljärt uttryck slutar med \"\\\" i slutet av filen"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr "%s: %d: tawk-modifierare för reguljära uttryck \"/.../%c\" fungerar inte i gawk"
+msgstr ""
+"%s: %d: tawk-modifierare för reguljära uttryck \"/.../%c\" fungerar inte i "
+"gawk"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr "tawk-modifierare för reguljära uttryck \"/.../%c\" fungerar inte i gawk"
+msgstr ""
+"tawk-modifierare för reguljära uttryck \"/.../%c\" fungerar inte i gawk"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "oavslutat reguljärt uttryck"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "oavslutat reguljärt uttryck i slutet av filen"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr "Användning av \"\\ #...\" för radfortsättning är inte portabelt"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "sista tecknet på raden är inte ett omvänt snedstreck"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX tillåter inte operatorn \"**=\""
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "gamla awk stöder inte operatorn \"**=\""
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX tillåter inte operatorn \"**\""
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "gamla awk stöder inte operatorn \"**\""
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "operatorn \"^=\" stöds inte i gamla awk"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "operatorn \"^\" stöds inte i gamla awk"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "oavslutad sträng"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "ogiltigt tecken \"%c\" i uttryck"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "\"%s\" är en gawk-utökning"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX tillåter inte \"%s\""
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "\"%s\" stöds inte i gamla awk"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "\"goto\" anses skadlig!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d är ett ogiltigt antal argument för %s"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
-msgstr "%s: bokstavlig sträng som sista argument till ersättning har ingen effekt"
+msgstr ""
+"%s: bokstavlig sträng som sista argument till ersättning har ingen effekt"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "%s: tredje argumentet är inte ett ändringsbart objekt"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: tredje argumentet är en gawk-utökning"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: andra argumentet är en gawk-utökning"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
-msgstr "användandet av dcgettext(_\"...\") är felaktigt: ta bort det inledande understrykningstecknet"
+msgstr ""
+"användandet av dcgettext(_\"...\") är felaktigt: ta bort det inledande "
+"understrykningstecknet"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
-msgstr "användandet av dcngettext(_\"...\") är felaktigt: ta bort det inledande understrykningstecknet"
+msgstr ""
+"användandet av dcngettext(_\"...\") är felaktigt: ta bort det inledande "
+"understrykningstecknet"
-#: awkgram.y:3992
+#: awkgram.y:4016
msgid "index: regexp constant as second argument is not allowed"
msgstr "index: reguljäruttryck som andra argumentet är inte tillåtet"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "funktionen \"%s\": parametern \"%s\" överskuggar en global variabel"
-#: awkgram.y:4102 debug.c:4041 debug.c:4084 debug.c:5204
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "kunde inte öppna \"%s\" för skrivning (%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "skickar variabellista till standard fel"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: misslyckades att stänga (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() anropad två gånger!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "det fanns överskuggade variabler."
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "funktionsnamnet \"%s\" är definierat sedan tidigare"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr "funktionen \"%s\": kan inte använda funktionsnamn som parameternamn"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
-msgstr "funktionen \"%s\": det går inte att använda specialvariabeln \"%s\" som en funktionsparameter"
+msgstr ""
+"funktionen \"%s\": det går inte att använda specialvariabeln \"%s\" som en "
+"funktionsparameter"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "funktionen \"%s\": parameter %d, \"%s\", är samma som parameter %d"
-#: awkgram.y:4359 awkgram.y:4365
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "funktionen \"%s\" anropad men aldrig definierad"
-#: awkgram.y:4369
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "funktionen \"%s\" definierad men aldrig anropad direkt"
-#: awkgram.y:4401
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr "konstant reguljärt uttryck för parameter %d ger ett booleskt värde"
-#: awkgram.y:4460
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -494,20 +514,23 @@ msgstr ""
"funktionen \"%s\" anropad med blanktecken mellan namnet och \"(\",\n"
"eller använd som variabel eller vektor"
-#: awkgram.y:4696
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "försökte dividera med noll"
-#: awkgram.y:4705
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "försökte dividera med noll i \"%%\""
-#: awkgram.y:5025
-msgid "cannot assign a value to the result of a field post-increment expression"
-msgstr "kan inte tilldela ett värde till uttryck som är en efterinkrementering av ett fält"
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
+msgstr ""
+"kan inte tilldela ett värde till uttryck som är en efterinkrementering av "
+"ett fält"
-#: awkgram.y:5028
+#: awkgram.y:5052
#, c-format
msgid "invalid target of assignment (opcode %s)"
msgstr "ogiltigt mål för tilldelning (op-kod %s)"
@@ -533,12 +556,14 @@ msgstr "exp: argumentet %g är inte inom tillåten gräns"
#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
-msgstr "fflush: kan inte spola: röret \"%s\" öppnat för läsning, inte skrivning"
+msgstr ""
+"fflush: kan inte spola: röret \"%s\" öppnat för läsning, inte skrivning"
#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
-msgstr "fflush: kan inte spola: filen \"%s\" öppnad för läsning, inte skrivning"
+msgstr ""
+"fflush: kan inte spola: filen \"%s\" öppnad för läsning, inte skrivning"
#: builtin.c:244
#, c-format
@@ -616,299 +641,305 @@ msgstr "ödesdigert: \"$\" tillåts inte efter en punkt i formatet"
#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
-msgstr "ödesdigert: inget \"$\" bifogat för positionsangiven fältbredd eller precision"
+msgstr ""
+"ödesdigert: inget \"$\" bifogat för positionsangiven fältbredd eller "
+"precision"
-#: builtin.c:1011
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "\"l\" är meningslös i awk-format, ignorerad"
-#: builtin.c:1015
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "ödesdigert: \"l\" tillåts inte i POSIX awk-format"
-#: builtin.c:1028
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "\"L\" är meningslös i awk-format, ignorerad"
-#: builtin.c:1032
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "ödesdigert: \"L\" tillåts inte i POSIX awk-format"
-#: builtin.c:1045
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "\"h\" är meningslös i awk-format, ignorerad"
-#: builtin.c:1049
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "ödesdigert: \"h\" tillåts inte i POSIX awk-format"
-#: builtin.c:1447
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf: värdet %g är utanför \"%%%c\"-formatets giltiga intervall"
-#: builtin.c:1545
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
-msgstr "ignorerar okänt formatspecifikationstecken \"%c\": inget argument konverterat"
+msgstr ""
+"ignorerar okänt formatspecifikationstecken \"%c\": inget argument konverterat"
-#: builtin.c:1550
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr "ödesdigert: för få argument för formatsträngen"
-#: builtin.c:1552
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "^ tog slut här"
-#: builtin.c:1559
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: formatspecifieraren har ingen kommandobokstav"
-#: builtin.c:1562
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "för många argument för formatsträngen"
-#: builtin.c:1618
+#: builtin.c:1634
msgid "sprintf: no arguments"
msgstr "sprintf: inga argument"
-#: builtin.c:1641 builtin.c:1652
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: inga argument"
-#: builtin.c:1695
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: fick ickenumeriskt argument"
-#: builtin.c:1699
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: anropad med negativt argument %g"
-#: builtin.c:1730
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: längden %g är inte >= 1"
-#: builtin.c:1732
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: längden %g är inte >= 0"
-#: builtin.c:1739
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: längden %g som inte är ett heltal kommer huggas av"
-#: builtin.c:1744
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
msgstr "substr: längden %g är för stor för strängindexering, huggas av till %g"
-#: builtin.c:1756
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: startindex %g är ogiltigt, använder 1"
-#: builtin.c:1761
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
msgstr "substr: startindex %g som inte är ett heltal kommer huggas av"
-#: builtin.c:1786
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: källsträngen är tom"
-#: builtin.c:1802
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: startindex %g är bortom strängens slut"
-#: builtin.c:1810
+#: builtin.c:1826
#, c-format
-msgid "substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr "substr: längden %g vid startindex %g överskrider det första argumentets längd (%lu)"
+msgid ""
+"substr: length %g at start index %g exceeds length of first argument (%lu)"
+msgstr ""
+"substr: längden %g vid startindex %g överskrider det första argumentets "
+"längd (%lu)"
-#: builtin.c:1884
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr "strftime: formatvärde i PROCINFO[\"strftime\"] har numerisk typ"
-#: builtin.c:1907
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: fick ett ickenumeriskt andra argument"
-#: builtin.c:1911
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr "strftime: andra argimentet mindre än 0 eller för stort för time_t"
-#: builtin.c:1918
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: fick ett första argument som inte är en sträng"
-#: builtin.c:1925
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: fick en tom formatsträng"
-#: builtin.c:1991
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: fick ett argument som inte är en sträng"
-#: builtin.c:2008
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr "mktime: åtminstone ett av värdena är utanför standardintervallet"
-#: builtin.c:2043
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "funktionen \"system\" är inte tillåten i sandlådeläge"
-#: builtin.c:2048
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: fick ett argument som inte är en sträng"
-#: builtin.c:2168
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "referens till icke initierat fält \"$%d\""
-#: builtin.c:2255
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: fick ett argument som inte är en sträng"
-#: builtin.c:2289
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: fick ett argument som inte är en sträng"
-#: builtin.c:2325 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: fick ett ickenumeriskt första argument"
-#: builtin.c:2327 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: fick ett ickenumeriskt andra argument"
-#: builtin.c:2346
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: fick ett ickenumeriskt argument"
-#: builtin.c:2362
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: fick ett ickenumeriskt argument"
-#: builtin.c:2415 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: fick ett ickenumeriskt argument"
-#: builtin.c:2446
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: tredje argumentet är inte en vektor"
-#: builtin.c:2718
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: nollan i tredje argumentet behandlad som en etta"
-#: builtin.c:3014
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: fick ett ickenumeriskt första argument"
-#: builtin.c:3016
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: fick ett ickenumeriskt andra argument"
-#: builtin.c:3022
+#: builtin.c:3038
#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr "lshift(%f, %f): negativa värden kommer ge konstiga resultat"
-#: builtin.c:3024
+#: builtin.c:3040
#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%f, %f): flyttalsvärden kommer huggas av"
-#: builtin.c:3026
+#: builtin.c:3042
#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
msgstr "lshift(%f, %f): för stort skiftvärde kommer ge konstiga resultat"
-#: builtin.c:3051
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: fick ett ickenumeriskt första argument"
-#: builtin.c:3053
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: fick ett ickenumeriskt andra argument"
-#: builtin.c:3059
+#: builtin.c:3075
#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr "rshift(%f, %f): negativa värden kommer ge konstiga resultat"
-#: builtin.c:3061
+#: builtin.c:3077
#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%f, %f): flyttalsvärden kommer huggas av"
-#: builtin.c:3063
+#: builtin.c:3079
#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
msgstr "rshift(%f, %f): för stor skiftvärde kommer ge konstiga resultat"
-#: builtin.c:3088 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
msgid "and: called with less than two arguments"
msgstr "and: anropad med mindre än två argument"
-#: builtin.c:3093
+#: builtin.c:3109
#, c-format
msgid "and: argument %d is non-numeric"
msgstr "and: argument %d är inte numeriskt"
-#: builtin.c:3097
+#: builtin.c:3113
#, c-format
msgid "and: argument %d negative value %g will give strange results"
msgstr "and: argument %d med negativt värde %g kommer ge konstiga resultat"
-#: builtin.c:3120 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
msgid "or: called with less than two arguments"
msgstr "or: anropad med färre än två argmuent"
-#: builtin.c:3125
+#: builtin.c:3141
#, c-format
msgid "or: argument %d is non-numeric"
msgstr "or: argument %d är inte numeriskt"
-#: builtin.c:3129
+#: builtin.c:3145
#, c-format
msgid "or: argument %d negative value %g will give strange results"
msgstr "or: argument %d med negativt värde %g kommer ge konstiga resultat"
-#: builtin.c:3151 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
msgid "xor: called with less than two arguments"
msgstr "xor: anropad med färre än två argument"
-#: builtin.c:3157
+#: builtin.c:3173
#, c-format
msgid "xor: argument %d is non-numeric"
msgstr "xor: argument %d är inte numeriskt"
-#: builtin.c:3161
+#: builtin.c:3177
#, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor: argument %d med negativt värde %g kommer ge konstiga resultat"
-#: builtin.c:3186 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: fick ett ickenumeriskt argument"
-#: builtin.c:3192
+#: builtin.c:3208
#, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%f): negativt värde kommer ge konstiga resultat"
-#: builtin.c:3194
+#: builtin.c:3210
#, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%f): flyttalsvärde kommer huggas av"
-#: builtin.c:3363
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: \"%s\" är inte en giltig lokalkategori"
@@ -940,7 +971,9 @@ msgstr "save \"%s\": kommandot inte tillåtet."
#: command.y:339
msgid "Can't use command `commands' for breakpoint/watchpoint commands"
-msgstr "Det går inte att använda kommandot ”commands” i brytpunkts-/observationspunktskommandon"
+msgstr ""
+"Det går inte att använda kommandot ”commands” i brytpunkts-/"
+"observationspunktskommandon"
#: command.y:341
msgid "no breakpoint/watchpoint has been set yet"
@@ -1014,11 +1047,16 @@ msgid "non-zero integer value"
msgstr "heltalsvärde som inte är noll"
#: command.y:817
-msgid "backtrace [N] - print trace of all or N innermost (outermost if N < 0) frames."
-msgstr "backtrace [N] - skriv ett spår över alla eller N innersta (yttersta om N < 0) ramar."
+msgid ""
+"backtrace [N] - print trace of all or N innermost (outermost if N < 0) "
+"frames."
+msgstr ""
+"backtrace [N] - skriv ett spår över alla eller N innersta (yttersta om N < "
+"0) ramar."
#: command.y:819
-msgid "break [[filename:]N|function] - set breakpoint at the specified location."
+msgid ""
+"break [[filename:]N|function] - set breakpoint at the specified location."
msgstr "break [[filename:]N|function] - sätt brytpunkt på den angivna platsen."
#: command.y:821
@@ -1026,12 +1064,18 @@ msgid "clear [[filename:]N|function] - delete breakpoints previously set."
msgstr "clear [[filnamn:]N|funktion] - radera tidigare satta brytpunkter."
#: command.y:823
-msgid "commands [num] - starts a list of commands to be executed at a breakpoint(watchpoint) hit."
-msgstr "commands [num] - startar en lista av kommandon att köra när en brytpunkt(observationspunkt) träffas."
+msgid ""
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
+msgstr ""
+"commands [num] - startar en lista av kommandon att köra när en "
+"brytpunkt(observationspunkt) träffas."
#: command.y:825
msgid "condition num [expr] - set or clear breakpoint or watchpoint condition."
-msgstr "condition num [uttr] - sätt eller töm en brytpunkts eller observationspunkts villkor."
+msgstr ""
+"condition num [uttr] - sätt eller töm en brytpunkts eller observationspunkts "
+"villkor."
#: command.y:827
msgid "continue [COUNT] - continue program being debugged."
@@ -1047,7 +1091,8 @@ msgstr "disable [brytpunkger] [intervall] - avaktivera angivna brytpunkter."
#: command.y:833
msgid "display [var] - print value of variable each time the program stops."
-msgstr "display [var] - skriv ut värdet på variabeln varje gång programmet stoppar."
+msgstr ""
+"display [var] - skriv ut värdet på variabeln varje gång programmet stoppar."
#: command.y:835
msgid "down [N] - move N frames down the stack."
@@ -1059,7 +1104,8 @@ msgstr "dump [filnamn] - skriv instruktioner till filen eller standard ut."
#: command.y:839
msgid "enable [once|del] [breakpoints] [range] - enable specified breakpoints."
-msgstr "enable [once|del] [brytpunkter] [intervall] - aktivera angivna brytpunkter."
+msgstr ""
+"enable [once|del] [brytpunkter] [intervall] - aktivera angivna brytpunkter."
#: command.y:841
msgid "end - end a list of commands or awk statements."
@@ -1079,15 +1125,21 @@ msgstr "frame [N] - välj och skriv ut stackram nummer N."
#: command.y:849
msgid "help [command] - print list of commands or explanation of command."
-msgstr "help [kommando] - skriv listan av kommandon eller en förklaring av kommando."
+msgstr ""
+"help [kommando] - skriv listan av kommandon eller en förklaring av kommando."
#: command.y:851
msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT."
-msgstr "ignore N ANTAL - sätt ignoreringsantal på brytpunkt nummer N till ANTAL."
+msgstr ""
+"ignore N ANTAL - sätt ignoreringsantal på brytpunkt nummer N till ANTAL."
#: command.y:853
-msgid "info topic - source|sources|variables|functions|break|frame|args|locals|display|watch."
-msgstr "info topic - source|sources|variables|functions|break|frame|args|locals|display|watch."
+msgid ""
+"info topic - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch."
+msgstr ""
+"info topic - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch."
#: command.y:855
msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)."
@@ -1098,7 +1150,8 @@ msgid "next [COUNT] - step program, proceeding through subroutine calls."
msgstr "next [ANTAL] - stega programmet, passera genom subrutinanrop."
#: command.y:859
-msgid "nexti [COUNT] - step one instruction, but proceed through subroutine calls."
+msgid ""
+"nexti [COUNT] - step one instruction, but proceed through subroutine calls."
msgstr "nexti [ANTAL] - stega en instruktion, men passera genom subrutinanrop."
#: command.y:861
@@ -1134,8 +1187,11 @@ msgid "set var = value - assign value to a scalar variable."
msgstr "set var = värde - tilldela värde till en skalär variabel."
#: command.y:879
-msgid "silent - suspends usual message when stopped at a breakpoint/watchpoint."
-msgstr "silent - undertrycker normala meddelanden vid stopp på en brytpunkt/observationspunkt. "
+msgid ""
+"silent - suspends usual message when stopped at a breakpoint/watchpoint."
+msgstr ""
+"silent - undertrycker normala meddelanden vid stopp på en brytpunkt/"
+"observationspunkt. "
#: command.y:881
msgid "source file - execute commands from file."
@@ -1162,8 +1218,12 @@ msgid "undisplay [N] - remove variable(s) from automatic display list."
msgstr "undisplay [N] - ta bort variabler från listan över automatiskt visade."
#: command.y:893
-msgid "until [[filename:]N|function] - execute until program reaches a different line or line N within current frame."
-msgstr "until [[filenamn:]N|funktion] - kör tills programmet når en annan rad eller rad N inom aktuell ram."
+msgid ""
+"until [[filename:]N|function] - execute until program reaches a different "
+"line or line N within current frame."
+msgstr ""
+"until [[filenamn:]N|funktion] - kör tills programmet når en annan rad eller "
+"rad N inom aktuell ram."
#: command.y:895
msgid "unwatch [N] - remove variable(s) from watch list."
@@ -1465,7 +1525,8 @@ msgstr "försök att använda ett skalärt värde som vektor"
#: debug.c:1856
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
-msgstr "Observationspunkt %d raderad för att parametern är utanför sin räckvidd.\n"
+msgstr ""
+"Observationspunkt %d raderad för att parametern är utanför sin räckvidd.\n"
#: debug.c:1867
#, c-format
@@ -1499,7 +1560,9 @@ msgstr "Ogiltigt ramnummer"
#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Observera: brytpunkt %d (aktiverad, ingorera följande %ld träffar), är också satt vid %s:%d"
+msgstr ""
+"Observera: brytpunkt %d (aktiverad, ingorera följande %ld träffar), är också "
+"satt vid %s:%d"
#: debug.c:2207
#, c-format
@@ -1509,7 +1572,9 @@ msgstr "Observera: brytpunkt %d (aktiverad), är också satt vid %s:%d"
#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Observera: brytpunkt %d (avaktiverad, intorera följande %ld träffar), är också satt vid %s:%d"
+msgstr ""
+"Observera: brytpunkt %d (avaktiverad, intorera följande %ld träffar), är "
+"också satt vid %s:%d"
#: debug.c:2221
#, c-format
@@ -1703,7 +1768,8 @@ msgstr "”until” är inte meningsfullt med icke lokalt hopp ”%s”\n"
#: debug.c:4185
msgid "\t------[Enter] to continue or q [Enter] to quit------"
-msgstr "\t------[Retur] för att fortsätta eller a [Retur] för att avsluta------"
+msgstr ""
+"\t------[Retur] för att fortsätta eller a [Retur] för att avsluta------"
#: debug.c:4186
msgid "q"
@@ -1730,47 +1796,48 @@ msgstr "”%s” är inte tillåtet i det aktuella sammanhanget; satsen ignorera
#: debug.c:5389
msgid "`return' not allowed in current context; statement ignored"
-msgstr "”return” är inte tillåtet i det aktuella sammanhanget; satsen ignoreras"
+msgstr ""
+"”return” är inte tillåtet i det aktuella sammanhanget; satsen ignoreras"
#: debug.c:5590
#, c-format
msgid "No symbol `%s' in current context"
msgstr "Ingen symbol ”%s” i aktuell omgivning"
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1191
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr "obalanserad ["
-#: dfa.c:1052
+#: dfa.c:1174
msgid "invalid character class"
msgstr "ogiltig teckenklass"
-#: dfa.c:1228
+#: dfa.c:1316
msgid "character class syntax is [[:space:]], not [:space:]"
msgstr "syntaxen för teckenklass är [[:space:]], inte [:space:]"
-#: dfa.c:1280
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr "oavslutad \\-följd"
-#: dfa.c:1427 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Ogiltigt innehåll i \\{\\}"
-#: dfa.c:1430 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "Reguljärt uttryck för stort"
-#: dfa.c:1847
+#: dfa.c:1936
msgid "unbalanced ("
msgstr "obalanserad ("
-#: dfa.c:1973
+#: dfa.c:2062
msgid "no syntax specified"
msgstr "ingen syntax angiven"
-#: dfa.c:1981
+#: dfa.c:2070
msgid "unbalanced )"
msgstr "obalanserad )"
@@ -1892,8 +1959,10 @@ msgstr "load_ext: kan inte öppna biblioteket ”%s” (%s)\n"
#: ext.c:104
#, c-format
-msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
-msgstr "load_ext: biblioteket ”%s”: definierar inte ”plugin_is_GPL_compatible” (%s)\n"
+msgid ""
+"load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
+msgstr ""
+"load_ext: biblioteket ”%s”: definierar inte ”plugin_is_GPL_compatible” (%s)\n"
#: ext.c:110
#, c-format
@@ -1903,7 +1972,8 @@ msgstr "load_ext: biblioteket ”%s”: kan inte anropa funktionen ”%s” (%s)
#: ext.c:114
#, c-format
msgid "load_ext: library `%s' initialization routine `%s' failed\n"
-msgstr "load_ext: initieringsrutinen ”%2$s” i biblioteket ”%1$s” misslyckades\n"
+msgstr ""
+"load_ext: initieringsrutinen ”%2$s” i biblioteket ”%1$s” misslyckades\n"
#: ext.c:174
msgid "`extension' is a gawk extension"
@@ -1920,8 +1990,10 @@ msgstr "extension: kan inte öppna biblioteket ”%s” (%s)"
#: ext.c:186
#, c-format
-msgid "extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-msgstr "extension: biblioteket ”%s”: definierar inte ”plugin_is_GPL_compatible” (%s)"
+msgid ""
+"extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
+msgstr ""
+"extension: biblioteket ”%s”: definierar inte ”plugin_is_GPL_compatible” (%s)"
#: ext.c:190
#, c-format
@@ -1950,7 +2022,8 @@ msgstr "make_builtin: funktionsnamnet ”%s” är definierat sedan tidigare"
#: ext.c:246
#, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
-msgstr "make_builtin: kan inte använda gawks inbyggda ”%s” som ett funktionsnamn"
+msgstr ""
+"make_builtin: kan inte använda gawks inbyggda ”%s” som ett funktionsnamn"
#: ext.c:249 ext.c:304
#, c-format
@@ -1984,7 +2057,8 @@ msgstr "extension: funktionsnamnet \"%s\" är definierat sedan tidigare"
#: ext.c:301
#, c-format
msgid "extension: can't use gawk built-in `%s' as function name"
-msgstr "extension: kan inte använda gawks inbyggda \"%s\" som ett funktionsnamn"
+msgstr ""
+"extension: kan inte använda gawks inbyggda \"%s\" som ett funktionsnamn"
#: ext.c:375
#, c-format
@@ -2162,7 +2236,8 @@ msgstr "inplace_begin: kan inte hämta 1:a argumentet som en filnamnssträng"
#: extension/inplace.c:144
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
-msgstr "inplace_begin: avaktiverar redigering på plats för ogiltigt FILNAMN ”%s”"
+msgstr ""
+"inplace_begin: avaktiverar redigering på plats för ogiltigt FILNAMN ”%s”"
#: extension/inplace.c:151
#, c-format
@@ -2256,16 +2331,16 @@ msgstr "chr: anropad utan argument"
msgid "chr: called with inappropriate argument(s)"
msgstr "chr: anropad med felaktiga argument"
-#: extension/readdir.c:277
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr "dir_take_control_of: opendir/fdopendir misslyckades: %s"
-#: extension/readfile.c:84
+#: extension/readfile.c:113
msgid "readfile: called with too many arguments"
msgstr "readfile: anropad med för många argument"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
msgid "readfile: called with no arguments"
msgstr "readfile: anropad utan argument"
@@ -2317,27 +2392,27 @@ msgstr "do_reada: clear_array misslyckades\n"
msgid "read_array: set_array_element failed\n"
msgstr "read_array: set_array_element misslyckades\n"
-#: extension/time.c:106
+#: extension/time.c:113
msgid "gettimeofday: ignoring arguments"
msgstr "gettimeofday: ignorerar argumenten"
-#: extension/time.c:137
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr "gettimeofday: stödjs inte på denna plattform"
-#: extension/time.c:158
+#: extension/time.c:165
msgid "sleep: called with too many arguments"
msgstr "sleep: anropad med för många argument"
-#: extension/time.c:161
+#: extension/time.c:168
msgid "sleep: missing required numeric argument"
msgstr "sleep: nödvändigt numeriskt argument saknas"
-#: extension/time.c:167
+#: extension/time.c:174
msgid "sleep: argument is negative"
msgstr "sleep: argumentet är negativt"
-#: extension/time.c:201
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr "sleep: stödjs inte på denna plattform"
@@ -2359,15 +2434,20 @@ msgstr "split: andra argumentet är inte en vektor"
#: field.c:993
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"
+msgstr ""
+"split: det går inte att använda samma vektor som andra och fjärde argument"
#: field.c:998
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"
+msgstr ""
+"split: det går inte att använda en delvektor av andra argumentet som fjärde "
+"argument"
#: field.c:1001
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"
+msgstr ""
+"split: det går inte att använda en delvektor av fjärde argumentet som andra "
+"argument"
#: field.c:1032
msgid "split: null string for third arg is a gawk extension"
@@ -2387,15 +2467,20 @@ msgstr "patsplit: tredje argumentet får inte vara tomt"
#: field.c:1087
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"
+msgstr ""
+"patsplit: det går inte att använda samma vektor som andra och fjärde argument"
#: field.c:1092
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"
+msgstr ""
+"patsplit: det går inte att använda en delvektor av andra argumentet som "
+"fjärde argument"
#: field.c:1095
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"
+msgstr ""
+"patsplit: det går inte att använda en delvektor av fjärde argumentet som "
+"andra argument"
#: field.c:1133
msgid "`FIELDWIDTHS' is a gawk extension"
@@ -2430,20 +2515,20 @@ msgstr "node_to_awk_value: mottog null-nod"
msgid "node_to_awk_value: received null val"
msgstr "node_to_awk_value: mottog null-värde"
-#: gawkapi.c:808
+#: gawkapi.c:807
msgid "remove_element: received null array"
msgstr "remove_element: fick en null-vektor"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr "remove_element: mottog null-index"
-#: gawkapi.c:948
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr "api_flatten_array: kunde inte konvertera index %d\n"
-#: gawkapi.c:953
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr "api_flatten_array: kunde inte konvertera värdet %d\n"
@@ -2535,7 +2620,9 @@ msgstr "uttrycket för \"%s\"-omdirigering har en tom sträng som värde"
#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
-msgstr "filnamnet \"%s\" för \"%s\"-omdirigering kan vara resultatet av ett logiskt uttryck"
+msgstr ""
+"filnamnet \"%s\" för \"%s\"-omdirigering kan vara resultatet av ett logiskt "
+"uttryck"
#: io.c:809
#, c-format
@@ -2568,8 +2655,10 @@ msgid "can't redirect to `%s' (%s)"
msgstr "kan inte dirigera om till \"%s\" (%s)"
#: io.c:1040
-msgid "reached system limit for open files: starting to multiplex file descriptors"
-msgstr "nådde systembegränsningen för öppna filer: börjar multiplexa fildeskriptorer"
+msgid ""
+"reached system limit for open files: starting to multiplex file descriptors"
+msgstr ""
+"nådde systembegränsningen för öppna filer: börjar multiplexa fildeskriptorer"
#: io.c:1056
#, c-format
@@ -2596,7 +2685,9 @@ msgstr "stängning av omdirigering som aldrig öppnades"
#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr "close: omdirigeringen \"%s\" öppnades inte med \"|&\", andra argumentet ignorerat"
+msgstr ""
+"close: omdirigeringen \"%s\" öppnades inte med \"|&\", andra argumentet "
+"ignorerat"
#: io.c:1222
#, c-format
@@ -2666,7 +2757,8 @@ msgstr "ogiltig information (%s, %s) för fjärrvärd och fjärrport"
#: io.c:1590
#, c-format
msgid "no (known) protocol supplied in special filename `%s'"
-msgstr "inget (känt) protokoll tillhandahållet i det speciella filnamnet \"%s\""
+msgstr ""
+"inget (känt) protokoll tillhandahållet i det speciella filnamnet \"%s\""
#: io.c:1604
#, c-format
@@ -2764,7 +2856,9 @@ msgstr "register_input_parser: mottog NULL-pekare"
#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
-msgstr "inmatningstolken ”%s” står i konflikt med tidigare installerad inmatningstolk ”%s”"
+msgstr ""
+"inmatningstolken ”%s” står i konflikt med tidigare installerad "
+"inmatningstolk ”%s”"
#: io.c:2825
#, c-format
@@ -2777,8 +2871,11 @@ msgstr "register_output_wrapper: mottog NULL-pekare"
#: io.c:2873
#, c-format
-msgid "output wrapper `%s' conflicts with previously installed output wrapper `%s'"
-msgstr "utmatningsomslag ”%s” står i konflikt med tidigare installerat utmatningsomslag ”%s”"
+msgid ""
+"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
+msgstr ""
+"utmatningsomslag ”%s” står i konflikt med tidigare installerat "
+"utmatningsomslag ”%s”"
#: io.c:2880
#, c-format
@@ -2791,8 +2888,12 @@ msgstr "register_output_processor: mottog NULL-pekare"
#: io.c:2930
#, c-format
-msgid "two-way processor `%s' conflicts with previously installed two-way processor `%s'"
-msgstr "tvåvägsprocessorn ”%s” står i konflikt med tidigare installerad tvåvägsprocessor ”%s”"
+msgid ""
+"two-way processor `%s' conflicts with previously installed two-way processor "
+"`%s'"
+msgstr ""
+"tvåvägsprocessorn ”%s” står i konflikt med tidigare installerad "
+"tvåvägsprocessor ”%s”"
#: io.c:2939
#, c-format
@@ -2873,7 +2974,8 @@ msgstr "ingen programtext alls!"
#: main.c:799
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
-msgstr "Användning: %s [POSIX- eller GNU-stilsflaggor] -f progfil [--] fil ...\n"
+msgstr ""
+"Användning: %s [POSIX- eller GNU-stilsflaggor] -f progfil [--] fil ...\n"
#: main.c:801
#, c-format
@@ -3216,8 +3318,12 @@ msgstr "inga hexadecimala siffror i \"\\x\"-kontrollsekvenser"
#: node.c:579
#, c-format
-msgid "hex escape \\x%.*s of %d characters probably not interpreted the way you expect"
-msgstr "hexkod \\x%.*s med %d tecken tolkas förmodligen inte på det sätt du förväntar dig"
+msgid ""
+"hex escape \\x%.*s of %d characters probably not interpreted the way you "
+"expect"
+msgstr ""
+"hexkod \\x%.*s med %d tecken tolkas förmodligen inte på det sätt du "
+"förväntar dig"
#: node.c:594
#, c-format
@@ -3225,8 +3331,12 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
msgstr "kontrollsekvensen \"\\%c\" behandlad som bara \"%c\""
#: node.c:739
-msgid "Invalid multibyte data detected. There may be a mismatch between your data and your locale."
-msgstr "Ogiltig multibytedata upptäckt. Dina data och din lokal stämmer kanske inte överens."
+msgid ""
+"Invalid multibyte data detected. There may be a mismatch between your data "
+"and your locale."
+msgstr ""
+"Ogiltig multibytedata upptäckt. Dina data och din lokal stämmer kanske inte "
+"överens."
#: posix/gawkmisc.c:177
#, c-format
@@ -3305,7 +3415,8 @@ msgstr "redir2str: okänd omdirigeringstyp %d"
#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
-msgstr "komponenten \"%.*s\" i reguljäruttryck skall förmodligen vara \"[%.*s]\""
+msgstr ""
+"komponenten \"%.*s\" i reguljäruttryck skall förmodligen vara \"[%.*s]\""
#: regcomp.c:131
msgid "Success"
diff --git a/po/vi.gmo b/po/vi.gmo
index 2d663bc7..10c710dc 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 187d31a4..faa458a1 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gawk-4.1.0b\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2014-01-14 22:23+0200\n"
+"POT-Creation-Date: 2014-04-08 19:23+0300\n"
"PO-Revision-Date: 2014-01-16 14:52+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -40,8 +40,8 @@ msgstr "cố dùng tham số vô hướng “%s” như là mảng"
msgid "attempt to use scalar `%s' as an array"
msgstr "cố dùng “%s” vô hướng như là mảng"
-#: array.c:409 array.c:576 builtin.c:85 builtin.c:1599 builtin.c:1645
-#: builtin.c:1658 builtin.c:2086 builtin.c:2100 eval.c:1122 eval.c:1126
+#: array.c:409 array.c:576 builtin.c:85 builtin.c:1615 builtin.c:1661
+#: builtin.c:1674 builtin.c:2102 builtin.c:2116 eval.c:1122 eval.c:1126
#: eval.c:1531
#, c-format
msgid "attempt to use array `%s' in a scalar context"
@@ -79,19 +79,27 @@ msgstr "asorti: đối số thứ nhất không phải là một mảng"
#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
-msgstr "asort (một chương trình xắp xếp thứ tự): không thể sử dụng mảng con của tham số thứ nhất cho tham số thứ hai"
+msgstr ""
+"asort (một chương trình xắp xếp thứ tự): không thể sử dụng mảng con của tham "
+"số thứ nhất cho tham số thứ hai"
#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
-msgstr "asorti (một chương trình xắp xếp thứ tự): không thể sử dụng mảng con của tham số thứ nhất cho tham số thứ hai"
+msgstr ""
+"asorti (một chương trình xắp xếp thứ tự): không thể sử dụng mảng con của "
+"tham số thứ nhất cho tham số thứ hai"
#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
-msgstr "asort (một chương trình xắp xếp thứ tự): không thể sử dụng mảng con của tham số thứ hai cho tham số thứ nhất"
+msgstr ""
+"asort (một chương trình xắp xếp thứ tự): không thể sử dụng mảng con của tham "
+"số thứ hai cho tham số thứ nhất"
#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
-msgstr "asorti (một chương trình xắp xếp thứ tự): không thể sử dụng mảng con của tham số thứ hai cho tham số thứ nhất"
+msgstr ""
+"asorti (một chương trình xắp xếp thứ tự): không thể sử dụng mảng con của "
+"tham số thứ hai cho tham số thứ nhất"
#: array.c:1314
#, c-format
@@ -114,7 +122,8 @@ msgstr "Mọi quy tắc phải có một mẫu hay phần kiểu hành động"
#: awkgram.y:325 awkgram.y:336
msgid "old awk does not support multiple `BEGIN' or `END' rules"
-msgstr "awk cũ không hỗ trợ nhiều quy tắc kiểu “BEGIN” (bắt đầu) hay “END” (kết thúc)"
+msgstr ""
+"awk cũ không hỗ trợ nhiều quy tắc kiểu “BEGIN” (bắt đầu) hay “END” (kết thúc)"
#: awkgram.y:373
#, c-format
@@ -123,12 +132,16 @@ msgstr "“%s” là một hàm có sẵn nên nó không thể được định
#: awkgram.y:419
msgid "regexp constant `//' looks like a C++ comment, but is not"
-msgstr "hằng biểu thức chính quy “//” trông giống như một chú thích C++, nhưng mà không phải"
+msgstr ""
+"hằng biểu thức chính quy “//” trông giống như một chú thích C++, nhưng mà "
+"không phải"
#: awkgram.y:423
#, c-format
msgid "regexp constant `/%s/' looks like a C comment, but is not"
-msgstr "hằng biểu thức chính quy “/%s/” trông giống như một chú thích C, nhưng mà không phải"
+msgstr ""
+"hằng biểu thức chính quy “/%s/” trông giống như một chú thích C, nhưng mà "
+"không phải"
#: awkgram.y:515
#, c-format
@@ -137,13 +150,15 @@ msgstr "gặp giá trị case trùng trong thân chuyển đổi (switch body):
#: awkgram.y:536
msgid "duplicate `default' detected in switch body"
-msgstr "đã phát hiện trùng “default” trong thân cấu trúc điều khiển chọn lựa (switch)"
+msgstr ""
+"đã phát hiện trùng “default” trong thân cấu trúc điều khiển chọn lựa (switch)"
-#: awkgram.y:796 awkgram.y:3699
+#: awkgram.y:796 awkgram.y:3723
msgid "`break' is not allowed outside a loop or switch"
-msgstr "không cho phép “break” (ngắt) nằm ở ngoại vòng lặp hay cấu trúc chọn lựa"
+msgstr ""
+"không cho phép “break” (ngắt) nằm ở ngoại vòng lặp hay cấu trúc chọn lựa"
-#: awkgram.y:805 awkgram.y:3691
+#: awkgram.y:805 awkgram.y:3715
msgid "`continue' is not allowed outside a loop"
msgstr "không cho phép “continue” (tiếp tục) ở ngoài một vòng lặp"
@@ -163,7 +178,9 @@ msgstr "“return” (trở về) được dùng ở ngoại ngữ cảnh hàm"
#: awkgram.y:922
msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr "“print” (in) thường trong quy tắc “BEGIN” (bắt đầu) hay “END” (kết thúc) gần như chắc chắn nên là “print”””"
+msgstr ""
+"“print” (in) thường trong quy tắc “BEGIN” (bắt đầu) hay “END” (kết thúc) gần "
+"như chắc chắn nên là “print”””"
#: awkgram.y:988 awkgram.y:1037
msgid "`delete' is not allowed with SYMTAB"
@@ -209,7 +226,9 @@ msgstr "“getline” không hợp lệ trong quy tắc “%s”"
#: awkgram.y:1425
msgid "non-redirected `getline' undefined inside END action"
-msgstr "trong hành động “END” (kết thúc) có “getline” (lấy dòng) không được chuyển hướng lại và chưa được định nghĩa."
+msgstr ""
+"trong hành động “END” (kết thúc) có “getline” (lấy dòng) không được chuyển "
+"hướng lại và chưa được định nghĩa."
#: awkgram.y:1444
msgid "old awk does not support multidimensional arrays"
@@ -217,7 +236,9 @@ msgstr "awk cũ không hỗ trợ mảng đa chiều"
#: awkgram.y:1541
msgid "call of `length' without parentheses is not portable"
-msgstr "lời gọi “length” (độ dài) mà không có dấu ngoặc đơn là không tương thích trên các hệ thống khác"
+msgstr ""
+"lời gọi “length” (độ dài) mà không có dấu ngoặc đơn là không tương thích "
+"trên các hệ thống khác"
#: awkgram.y:1607
msgid "indirect function calls are a gawk extension"
@@ -232,262 +253,270 @@ msgstr "không thể dùng biến đặc biệt “%s” cho cú gọi hàm giá
msgid "invalid subscript expression"
msgstr "biểu thức in thấp không hợp lệ"
-#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:126
+#: awkgram.y:2048 awkgram.y:2068 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "cảnh báo: "
-#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:158
+#: awkgram.y:2066 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "lỗi nghiêm trọng: "
-#: awkgram.y:2092
+#: awkgram.y:2116
msgid "unexpected newline or end of string"
msgstr "gặp dòng mới hay kết thúc chuỗi bất ngờ"
-#: awkgram.y:2359 awkgram.y:2435 awkgram.y:2658 debug.c:523 debug.c:539
+#: awkgram.y:2383 awkgram.y:2459 awkgram.y:2682 debug.c:523 debug.c:539
#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "không thể mở tập tin nguồn “%s” để đọc (%s)"
-#: awkgram.y:2360 awkgram.y:2485
+#: awkgram.y:2384 awkgram.y:2509
#, c-format
msgid "can't open shared library `%s' for reading (%s)"
msgstr "không thể mở tập thư viện chia sẻ “%s” để đọc (%s)"
-#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:135 debug.c:5206
+#: awkgram.y:2386 awkgram.y:2460 awkgram.y:2510 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "không rõ lý do"
-#: awkgram.y:2371 awkgram.y:2395
+#: awkgram.y:2395 awkgram.y:2419
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr "không thể bao gồm “%s” và dùng nó như là tập tin chương trình"
-#: awkgram.y:2384
+#: awkgram.y:2408
#, c-format
msgid "already included source file `%s'"
msgstr "đã sẵn bao gồm tập tin nguồn “%s”"
-#: awkgram.y:2385
+#: awkgram.y:2409
#, c-format
msgid "already loaded shared library `%s'"
msgstr "thư viện dùng chung “%s” đã được sẵn được tải rồi"
-#: awkgram.y:2420
+#: awkgram.y:2444
msgid "@include is a gawk extension"
msgstr "@include là phần mở rộng của gawk"
-#: awkgram.y:2426
+#: awkgram.y:2450
msgid "empty filename after @include"
msgstr "tập tin trống sau @include"
-#: awkgram.y:2470
+#: awkgram.y:2494
msgid "@load is a gawk extension"
msgstr "@load là một phần mở rộng gawk"
-#: awkgram.y:2476
+#: awkgram.y:2500
msgid "empty filename after @load"
msgstr "tên tập tin trống sau @load"
-#: awkgram.y:2610
+#: awkgram.y:2634
msgid "empty program text on command line"
msgstr "gặp đoạn chữ chương trình rỗng nằm trên dòng lệnh"
-#: awkgram.y:2725
+#: awkgram.y:2749
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "không thể đọc tập tin nguồn “%s” (%s)"
-#: awkgram.y:2736
+#: awkgram.y:2760
#, c-format
msgid "source file `%s' is empty"
msgstr "tập tin nguồn “%s” là rỗng"
-#: awkgram.y:2913
+#: awkgram.y:2937
msgid "source file does not end in newline"
msgstr "tập tin nguồn không kết thúc với một dòng mới"
-#: awkgram.y:3018
+#: awkgram.y:3042
msgid "unterminated regexp ends with `\\' at end of file"
-msgstr "biểu thức chính quy chưa được chấm dứt kết thúc với “\\” tại kết thúc của tập tin"
+msgstr ""
+"biểu thức chính quy chưa được chấm dứt kết thúc với “\\” tại kết thúc của "
+"tập tin"
-#: awkgram.y:3042
+#: awkgram.y:3066
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr "%s: %d: bộ sửa đổi biểu thức chính quy tawk “/.../%c” không hoạt động được trong gawk"
+msgstr ""
+"%s: %d: bộ sửa đổi biểu thức chính quy tawk “/.../%c” không hoạt động được "
+"trong gawk"
-#: awkgram.y:3046
+#: awkgram.y:3070
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr "bộ sửa đổi biểu thức chính quy tawk “/.../%c” không hoạt động được trong gawk"
+msgstr ""
+"bộ sửa đổi biểu thức chính quy tawk “/.../%c” không hoạt động được trong gawk"
-#: awkgram.y:3053
+#: awkgram.y:3077
msgid "unterminated regexp"
msgstr "biểu thức chính quy chưa được chấm dứt"
-#: awkgram.y:3057
+#: awkgram.y:3081
msgid "unterminated regexp at end of file"
msgstr "biểu thức chính quy chưa được chấm dứt nằm tại kết thúc của tập tin"
-#: awkgram.y:3116
+#: awkgram.y:3140
msgid "use of `\\ #...' line continuation is not portable"
msgstr "không thể mang khả năng dùng “\\#...” để tiếp tục dòng"
-#: awkgram.y:3132
+#: awkgram.y:3156
msgid "backslash not last character on line"
msgstr "dấu gạch ngược không phải là ký tự cuối cùng nằm trên dòng"
-#: awkgram.y:3193
+#: awkgram.y:3217
msgid "POSIX does not allow operator `**='"
msgstr "POSIX không cho phép toán tử “**=”"
-#: awkgram.y:3195
+#: awkgram.y:3219
msgid "old awk does not support operator `**='"
msgstr "awk cũ không hỗ trợ toán tử “**=”"
-#: awkgram.y:3204
+#: awkgram.y:3228
msgid "POSIX does not allow operator `**'"
msgstr "POSIX không cho phép toán tử “**”"
-#: awkgram.y:3206
+#: awkgram.y:3230
msgid "old awk does not support operator `**'"
msgstr "awk cũ không hỗ trợ toán tử “**”"
-#: awkgram.y:3241
+#: awkgram.y:3265
msgid "operator `^=' is not supported in old awk"
msgstr "awk cũ không hỗ trợ toán tử “^=”"
-#: awkgram.y:3249
+#: awkgram.y:3273
msgid "operator `^' is not supported in old awk"
msgstr "awk cũ không hỗ trợ toán tử “^”"
-#: awkgram.y:3342 awkgram.y:3358 command.y:1178
+#: awkgram.y:3366 awkgram.y:3382 command.y:1178
msgid "unterminated string"
msgstr "chuỗi không được chấm dứt"
-#: awkgram.y:3579
+#: awkgram.y:3603
#, c-format
msgid "invalid char '%c' in expression"
msgstr "có ký tự không hợp lệ “%c” nằm trong biểu thức"
-#: awkgram.y:3626
+#: awkgram.y:3650
#, c-format
msgid "`%s' is a gawk extension"
msgstr "“%s” là một phần mở rộng gawk"
-#: awkgram.y:3631
+#: awkgram.y:3655
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX không cho phép “%s”"
-#: awkgram.y:3639
+#: awkgram.y:3663
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "awk kiểu cũ không hỗ trợ “%s”"
-#: awkgram.y:3729
+#: awkgram.y:3753
msgid "`goto' considered harmful!\n"
msgstr "“goto” được xem là có hại!\n"
-#: awkgram.y:3763
+#: awkgram.y:3787
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "“%d” không hợp lệ khi là số đối số cho “%s”"
-#: awkgram.y:3798
+#: awkgram.y:3822
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
-msgstr "%s: khi đối số cuối cùng của sự thay thế, hằng mã nguồn chuỗi không có tác dụng"
+msgstr ""
+"%s: khi đối số cuối cùng của sự thay thế, hằng mã nguồn chuỗi không có tác "
+"dụng"
-#: awkgram.y:3803
+#: awkgram.y:3827
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "tham số thứ ba %s không phải là một đối tượng có thể thay đổi"
-#: awkgram.y:3886 awkgram.y:3889
+#: awkgram.y:3910 awkgram.y:3913
msgid "match: third argument is a gawk extension"
msgstr "match: (khớp) đối số thứ ba là phần mở rộng gawk"
-#: awkgram.y:3943 awkgram.y:3946
+#: awkgram.y:3967 awkgram.y:3970
msgid "close: second argument is a gawk extension"
msgstr "close: (đóng) đối số thứ hai là phần mở rộng gawk"
-#: awkgram.y:3958
+#: awkgram.y:3982
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
msgstr "dùng “dcgettext(_\"...\")” không đúng: hãy gỡ bỏ gạch dưới nằm trước"
-#: awkgram.y:3973
+#: awkgram.y:3997
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr "dùng “dcgettext(_\"...\")” không đúng: hãy gỡ bỏ gạch dưới nằm trước"
-#: awkgram.y:3992
+#: awkgram.y:4016
msgid "index: regexp constant as second argument is not allowed"
-msgstr "index: (chỉ mục) không cho phép hằng biểu thức chính quy làm đối số thứ hai"
+msgstr ""
+"index: (chỉ mục) không cho phép hằng biểu thức chính quy làm đối số thứ hai"
-#: awkgram.y:4045
+#: awkgram.y:4069
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "hàm “%s”: tham số “%s” che biến toàn cục"
-#: awkgram.y:4102 debug.c:4041 debug.c:4084 debug.c:5204
+#: awkgram.y:4126 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "không mở được “%s” để ghi (%s)"
-#: awkgram.y:4103
+#: awkgram.y:4127
msgid "sending variable list to standard error"
msgstr "đang gởi danh sách biến tới thiết bị lỗi chuẩn"
-#: awkgram.y:4111
+#: awkgram.y:4135
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: gặp lỗi khi đóng (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4160
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() (hàm bóng) được gọi hai lần!"
-#: awkgram.y:4144
+#: awkgram.y:4168
msgid "there were shadowed variables."
msgstr "có biến bị bóng."
-#: awkgram.y:4215
+#: awkgram.y:4239
#, c-format
msgid "function name `%s' previously defined"
msgstr "tên hàm “%s” trước đây đã được định nghĩa rồi"
-#: awkgram.y:4261
+#: awkgram.y:4285
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr "hàm “%s”: không thể dùng tên hàm như là tên tham số"
-#: awkgram.y:4264
+#: awkgram.y:4288
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
msgstr "hàm “%s”: không thể dùng biến đặc biệt “%s” như là tham số hàm"
-#: awkgram.y:4272
+#: awkgram.y:4296
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "hàm “%s”: tham số “#%d”, “%s”, nhân đôi tham số “#%d”"
-#: awkgram.y:4359 awkgram.y:4365
+#: awkgram.y:4383 awkgram.y:4389
#, c-format
msgid "function `%s' called but never defined"
msgstr "hàm “%s” được gọi nhưng mà chưa định nghĩa"
-#: awkgram.y:4369
+#: awkgram.y:4393
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "hàm “%s” được định nghĩa nhưng mà chưa được gọi trực tiếp bao giờ"
-#: awkgram.y:4401
+#: awkgram.y:4425
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr "hằng biểu thức chính quy cho tham số “#%d” làm giá trị luận lý (bun)"
-#: awkgram.y:4460
+#: awkgram.y:4484
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -496,20 +525,21 @@ msgstr ""
"hàm “%s” được gọi với dấu cách nằm giữa tên và “(”\n"
"hoặc được dùng như là biến hay mảng"
-#: awkgram.y:4696
+#: awkgram.y:4720
msgid "division by zero attempted"
msgstr "gặp phép chia cho số không"
-#: awkgram.y:4705
+#: awkgram.y:4729
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "gặp phép chia cho số không trong “%%”"
-#: awkgram.y:5025
-msgid "cannot assign a value to the result of a field post-increment expression"
+#: awkgram.y:5049
+msgid ""
+"cannot assign a value to the result of a field post-increment expression"
msgstr "không thể gán giá trị cho kết quả của biểu thức trường tăng-trước"
-#: awkgram.y:5028
+#: awkgram.y:5052
#, c-format
msgid "invalid target of assignment (opcode %s)"
msgstr "gán đich không hợp lệ (mã thi hành “%s”)"
@@ -535,17 +565,22 @@ msgstr "exp: đối số “%g” nằm ngoài phạm vi"
#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
-msgstr "fflush: không thể flush (đẩy dữ liệu lên đĩa): ống dẫn “%s” được mở để đọc, không phải để ghi"
+msgstr ""
+"fflush: không thể flush (đẩy dữ liệu lên đĩa): ống dẫn “%s” được mở để đọc, "
+"không phải để ghi"
#: builtin.c:232
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
-msgstr "fflush: không thể flush (đẩy dữ liệu vào đĩa): tập tin “%s” được mở để đọc, không phải để ghi"
+msgstr ""
+"fflush: không thể flush (đẩy dữ liệu vào đĩa): tập tin “%s” được mở để đọc, "
+"không phải để ghi"
#: builtin.c:244
#, c-format
msgid "fflush: `%s' is not an open file, pipe or co-process"
-msgstr "fflush: “%s” không phải là tập tin, ống dẫn hay đồng tiến trình được mở"
+msgstr ""
+"fflush: “%s” không phải là tập tin, ống dẫn hay đồng tiến trình được mở"
#: builtin.c:362
msgid "index: received non-string first argument"
@@ -610,7 +645,8 @@ msgstr "lỗi nghiêm trọng: số lượng đối số với “$” phải >0
#: builtin.c:919
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
-msgstr "lỗi nghiêm trọng: số lượng đối số %ld lớn hơn tổng số đối số được cung cấp"
+msgstr ""
+"lỗi nghiêm trọng: số lượng đối số %ld lớn hơn tổng số đối số được cung cấp"
#: builtin.c:923
msgid "fatal: `$' not permitted after period in format"
@@ -618,299 +654,314 @@ msgstr "lỗi nghiêm trọng: không cho phép “$” nằm sau dấu chấm t
#: builtin.c:939
msgid "fatal: no `$' supplied for positional field width or precision"
-msgstr "lỗi nghiêm trọng: chưa cung cấp “$” cho độ rộng trường thuộc vị trí hay cho độ chính xác"
+msgstr ""
+"lỗi nghiêm trọng: chưa cung cấp “$” cho độ rộng trường thuộc vị trí hay cho "
+"độ chính xác"
-#: builtin.c:1011
+#: builtin.c:1009
msgid "`l' is meaningless in awk formats; ignored"
msgstr "chữ “l” không có nghĩa trong định dạng awk nên bị bỏ qua"
-#: builtin.c:1015
+#: builtin.c:1013
msgid "fatal: `l' is not permitted in POSIX awk formats"
msgstr "lỗi nghiêm trọng: không cho phép chữ “l” nằm trong định dạng awk POSIX"
-#: builtin.c:1028
+#: builtin.c:1026
msgid "`L' is meaningless in awk formats; ignored"
msgstr "chữ “L” không có nghĩa trong định dạng awk nên bị bỏ qua"
-#: builtin.c:1032
+#: builtin.c:1030
msgid "fatal: `L' is not permitted in POSIX awk formats"
msgstr "lỗi nghiêm trọng: không cho phép chữ “L” nằm trong định dạng awk POSIX"
-#: builtin.c:1045
+#: builtin.c:1043
msgid "`h' is meaningless in awk formats; ignored"
msgstr "chữ “h” không có nghĩa trong định dạng awk nên bị bỏ qua"
-#: builtin.c:1049
+#: builtin.c:1047
msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "lỗi nghiêm trọng: không cho phép chữ “h” nằm trong định dạng awk POSIX"
-#: builtin.c:1447
+#: builtin.c:1463
#, c-format
msgid "[s]printf: value %g is out of range for `%%%c' format"
msgstr "[s]printf: giá trị %g ở ngoại phạm vi cho dạng thức “%%%c”"
-#: builtin.c:1545
+#: builtin.c:1561
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
-msgstr "đang bỏ qua ký tự ghi rõ định dạng không rõ “%c”: không có đối số được chuyển đổi"
+msgstr ""
+"đang bỏ qua ký tự ghi rõ định dạng không rõ “%c”: không có đối số được "
+"chuyển đổi"
-#: builtin.c:1550
+#: builtin.c:1566
msgid "fatal: not enough arguments to satisfy format string"
msgstr "lỗi nghiêm trọng: chưa có đủ đối số để đáp ứng chuỗi định dạng"
-#: builtin.c:1552
+#: builtin.c:1568
msgid "^ ran out for this one"
msgstr "bị hết “^” cho cái này"
-#: builtin.c:1559
+#: builtin.c:1575
msgid "[s]printf: format specifier does not have control letter"
msgstr "[s]printf: chỉ định định dạng không có ký hiệu điều khiển"
-#: builtin.c:1562
+#: builtin.c:1578
msgid "too many arguments supplied for format string"
msgstr "quá nhiều đối số được cung cấp cho chuỗi định dạng"
-#: builtin.c:1618
+#: builtin.c:1634
msgid "sprintf: no arguments"
msgstr "sprintf: không có đối số"
-#: builtin.c:1641 builtin.c:1652
+#: builtin.c:1657 builtin.c:1668
msgid "printf: no arguments"
msgstr "printf: không có đối số"
-#: builtin.c:1695
+#: builtin.c:1711
msgid "sqrt: received non-numeric argument"
msgstr "sqrt: (căn bậc hai) đã nhận đối số không phải thuộc số"
-#: builtin.c:1699
+#: builtin.c:1715
#, c-format
msgid "sqrt: called with negative argument %g"
msgstr "sqrt: (căn bậc hai) đã gọi với đối số âm “%g”"
-#: builtin.c:1730
+#: builtin.c:1746
#, c-format
msgid "substr: length %g is not >= 1"
msgstr "substr: (chuỗi con) độ dài %g không phải ≥1"
-#: builtin.c:1732
+#: builtin.c:1748
#, c-format
msgid "substr: length %g is not >= 0"
msgstr "substr: (chuỗi con) độ dài %g không phải ≥0"
-#: builtin.c:1739
+#: builtin.c:1755
#, c-format
msgid "substr: non-integer length %g will be truncated"
msgstr "substr: (chuỗi con) sẽ cắt xén độ dài không phải số nguyên “%g”"
-#: builtin.c:1744
+#: builtin.c:1760
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
-msgstr "substr: (chuỗi con) độ dài %g là quá lớn cho chỉ số chuỗi, nên xén ngắn thành %g"
+msgstr ""
+"substr: (chuỗi con) độ dài %g là quá lớn cho chỉ số chuỗi, nên xén ngắn "
+"thành %g"
-#: builtin.c:1756
+#: builtin.c:1772
#, c-format
msgid "substr: start index %g is invalid, using 1"
msgstr "substr: (chuỗi con) chỉ số đầu “%g” không hợp lệ nên dùng 1"
-#: builtin.c:1761
+#: builtin.c:1777
#, c-format
msgid "substr: non-integer start index %g will be truncated"
-msgstr "substr: (chuỗi con) chỉ số đầu không phải số nguyên “%g” sẽ bị cắt ngắn"
+msgstr ""
+"substr: (chuỗi con) chỉ số đầu không phải số nguyên “%g” sẽ bị cắt ngắn"
-#: builtin.c:1786
+#: builtin.c:1802
msgid "substr: source string is zero length"
msgstr "substr: (chuỗi con) chuỗi nguồn có độ dài số không"
-#: builtin.c:1802
+#: builtin.c:1818
#, c-format
msgid "substr: start index %g is past end of string"
msgstr "substr: (chuỗi con) chỉ số đầu %g nằm sau kết thúc của chuỗi"
-#: builtin.c:1810
+#: builtin.c:1826
#, c-format
-msgid "substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr "substr: (chuỗi con) độ dài %g chỉ số đầu %g vượt quá độ dài của đối số đầu (%lu)"
+msgid ""
+"substr: length %g at start index %g exceeds length of first argument (%lu)"
+msgstr ""
+"substr: (chuỗi con) độ dài %g chỉ số đầu %g vượt quá độ dài của đối số đầu "
+"(%lu)"
-#: builtin.c:1884
+#: builtin.c:1900
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
-msgstr "strftime: giá trị định dạng trong PROCINFO[”strftime”] phải thuộc kiểu số"
+msgstr ""
+"strftime: giá trị định dạng trong PROCINFO[”strftime”] phải thuộc kiểu số"
-#: builtin.c:1907
+#: builtin.c:1923
msgid "strftime: received non-numeric second argument"
msgstr "strftime: đã nhận đối số thứ hai khác thuộc số"
-#: builtin.c:1911
+#: builtin.c:1927
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr "strftime: tham số thứ hai nhỏ hơn 0 hay quá lớn dành cho time_t"
-#: builtin.c:1918
+#: builtin.c:1934
msgid "strftime: received non-string first argument"
msgstr "strftime: đã nhận đối số thứ nhất khác chuỗi"
-#: builtin.c:1925
+#: builtin.c:1941
msgid "strftime: received empty format string"
msgstr "strftime: đã nhận chuỗi định dạng rỗng"
-#: builtin.c:1991
+#: builtin.c:2007
msgid "mktime: received non-string argument"
msgstr "mktime: đã nhận đối số khác chuỗi"
-#: builtin.c:2008
+#: builtin.c:2024
msgid "mktime: at least one of the values is out of the default range"
msgstr "mktime: ít nhất một của những giá trị nằm ở ngoại phạm vi mặc định"
-#: builtin.c:2043
+#: builtin.c:2059
msgid "'system' function not allowed in sandbox mode"
msgstr "hàm “system” không cho phép ở chế độ khuôn đúc"
-#: builtin.c:2048
+#: builtin.c:2064
msgid "system: received non-string argument"
msgstr "system: (hệ thống) đã nhận đối số khác chuỗi"
-#: builtin.c:2168
+#: builtin.c:2184
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "gặp tham chiếu đến trường chưa được khởi tạo “$%d”"
-#: builtin.c:2255
+#: builtin.c:2271
msgid "tolower: received non-string argument"
msgstr "tolower: (đến thấp hơn) đã nhận đối số khác chuỗi"
-#: builtin.c:2289
+#: builtin.c:2305
msgid "toupper: received non-string argument"
msgstr "toupper: (đến cao hơn) đã nhận đối số khác chuỗi"
-#: builtin.c:2325 mpfr.c:672
+#: builtin.c:2341 mpfr.c:672
msgid "atan2: received non-numeric first argument"
msgstr "atan2: đã nhận đối số thứ nhất khác thuộc số"
-#: builtin.c:2327 mpfr.c:674
+#: builtin.c:2343 mpfr.c:674
msgid "atan2: received non-numeric second argument"
msgstr "atan2: đã nhận đối số thứ hai khác thuộc số"
-#: builtin.c:2346
+#: builtin.c:2362
msgid "sin: received non-numeric argument"
msgstr "sin: đã nhận đối số không phải thuộc số"
-#: builtin.c:2362
+#: builtin.c:2378
msgid "cos: received non-numeric argument"
msgstr "cos: đã nhận đối số không phải thuộc số"
-#: builtin.c:2415 mpfr.c:1156
+#: builtin.c:2431 mpfr.c:1156
msgid "srand: received non-numeric argument"
msgstr "srand: đã nhận đối số không phải thuộc số"
-#: builtin.c:2446
+#: builtin.c:2462
msgid "match: third argument is not an array"
msgstr "match: (khớp) đối số thứ ba không phải là mảng"
-#: builtin.c:2718
+#: builtin.c:2734
msgid "gensub: third argument of 0 treated as 1"
msgstr "gensub: đối số thứ ba của 0 được xử lý như 1"
-#: builtin.c:3014
+#: builtin.c:3030
msgid "lshift: received non-numeric first argument"
msgstr "lshift: đã nhận đối số đầu không phải thuộc số"
-#: builtin.c:3016
+#: builtin.c:3032
msgid "lshift: received non-numeric second argument"
msgstr "lshift: (dịch bên trái) đã nhận đối số thứ hai khác thuộc số"
-#: builtin.c:3022
+#: builtin.c:3038
#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
msgstr "lshift(%f, %f): giá trị âm sẽ gây ra kết quả không như mong muốn"
-#: builtin.c:3024
+#: builtin.c:3040
#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
msgstr "lshift(%f, %f): giá trị thuộc phân số sẽ bị cắt ngắn"
-#: builtin.c:3026
+#: builtin.c:3042
#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
-msgstr "lshift(%f, %f): giá trị dịch quá lớn sẽ gây ra kết quả không như mong muốn"
+msgstr ""
+"lshift(%f, %f): giá trị dịch quá lớn sẽ gây ra kết quả không như mong muốn"
-#: builtin.c:3051
+#: builtin.c:3067
msgid "rshift: received non-numeric first argument"
msgstr "rshift: đã nhận đối số thứ nhất khác thuộc số"
-#: builtin.c:3053
+#: builtin.c:3069
msgid "rshift: received non-numeric second argument"
msgstr "rshift: (dịch phải) đã nhận đối số thứ hai khác thuộc số"
-#: builtin.c:3059
+#: builtin.c:3075
#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
msgstr "rshift(%f, %f): giá trị âm sẽ gây ra kết quả không như mong muốn"
-#: builtin.c:3061
+#: builtin.c:3077
#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
msgstr "rshift(%f, %f): giá trị thuộc kiểu phân số sẽ bị xén ngắn"
-#: builtin.c:3063
+#: builtin.c:3079
#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
-msgstr "rshift(%f, %f): giá trị dịch quá lớn sẽ gây ra kết quả không như mong muốn"
+msgstr ""
+"rshift(%f, %f): giá trị dịch quá lớn sẽ gây ra kết quả không như mong muốn"
-#: builtin.c:3088 mpfr.c:968
+#: builtin.c:3104 mpfr.c:968
msgid "and: called with less than two arguments"
msgstr "and: được gọi với ít hơn hai đối số"
-#: builtin.c:3093
+#: builtin.c:3109
#, c-format
msgid "and: argument %d is non-numeric"
msgstr "and: đối số %d không phải thuộc số"
-#: builtin.c:3097
+#: builtin.c:3113
#, c-format
msgid "and: argument %d negative value %g will give strange results"
-msgstr "and: (và) đối số %d giá trị âm %g sẽ đưa lại kết quả không như mong muốn"
+msgstr ""
+"and: (và) đối số %d giá trị âm %g sẽ đưa lại kết quả không như mong muốn"
-#: builtin.c:3120 mpfr.c:1000
+#: builtin.c:3136 mpfr.c:1000
msgid "or: called with less than two arguments"
msgstr "or: (hoặc) được gọi với ít hơn hai đối số"
-#: builtin.c:3125
+#: builtin.c:3141
#, c-format
msgid "or: argument %d is non-numeric"
msgstr "or: (hoặc) đối số %d không thuộc kiểu số"
-#: builtin.c:3129
+#: builtin.c:3145
#, c-format
msgid "or: argument %d negative value %g will give strange results"
-msgstr "or: (hoặc) đối số %d giá trị âm %g sẽ đưa lại kết quả không như mong muốn"
+msgstr ""
+"or: (hoặc) đối số %d giá trị âm %g sẽ đưa lại kết quả không như mong muốn"
-#: builtin.c:3151 mpfr.c:1031
+#: builtin.c:3167 mpfr.c:1031
msgid "xor: called with less than two arguments"
msgstr "xor: được gọi với ít hơn hai đối số"
-#: builtin.c:3157
+#: builtin.c:3173
#, c-format
msgid "xor: argument %d is non-numeric"
msgstr "xor: đối số %d không thuộc kiểu số"
-#: builtin.c:3161
+#: builtin.c:3177
#, c-format
msgid "xor: argument %d negative value %g will give strange results"
msgstr "xor: đối số %d giá trị âm %g sẽ đưa lại kết quả không như mong muốn"
-#: builtin.c:3186 mpfr.c:787
+#: builtin.c:3202 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: (biên dịch) đã nhận được đối số không-phải-số"
-#: builtin.c:3192
+#: builtin.c:3208
#, c-format
msgid "compl(%f): negative value will give strange results"
msgstr "compl(%f): giá trị âm sẽ gây ra kết quả không như mong đợi"
-#: builtin.c:3194
+#: builtin.c:3210
#, c-format
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%f): giá trị thuộc phân số sẽ bị cắt ngắn"
-#: builtin.c:3363
+#: builtin.c:3379
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: “%s” không phải là một phân loại miền địa phương hợp lệ"
@@ -1016,24 +1067,35 @@ msgid "non-zero integer value"
msgstr "giá trị số nguyên khác không"
#: command.y:817
-msgid "backtrace [N] - print trace of all or N innermost (outermost if N < 0) frames."
-msgstr "backtrace [N] - 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)."
+msgid ""
+"backtrace [N] - print trace of all or N innermost (outermost if N < 0) "
+"frames."
+msgstr ""
+"backtrace [N] - 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:819
-msgid "break [[filename:]N|function] - set breakpoint at the specified location."
+msgid ""
+"break [[filename:]N|function] - set breakpoint at the specified location."
msgstr "break [[tên_tập_tin:]N|hàm] - đặt điểm ngắt tại vị trí đã cho."
#: command.y:821
msgid "clear [[filename:]N|function] - delete breakpoints previously set."
-msgstr "clear [[tên_tập_tin:]N|function] - xóa các điểm ngắt được đặt trước đây."
+msgstr ""
+"clear [[tên_tập_tin:]N|function] - xóa các điểm ngắt được đặt trước đây."
#: command.y:823
-msgid "commands [num] - starts a list of commands to be executed at a breakpoint(watchpoint) hit."
-msgstr "commands [số] - chạy một danh sách các câu lệnh được thực thi tại điểm ngắt (hay điểm theo dõi) tìm được."
+msgid ""
+"commands [num] - starts a list of commands to be executed at a "
+"breakpoint(watchpoint) hit."
+msgstr ""
+"commands [số] - chạy một danh sách các câu lệnh được thực thi tại điểm ngắt "
+"(hay điểm theo dõi) tìm được."
#: command.y:825
msgid "condition num [expr] - set or clear breakpoint or watchpoint condition."
-msgstr "condition num [expr] - đặt hay xóa điểm ngắt hay điều kiện điểm theo dõi."
+msgstr ""
+"condition num [expr] - đặt hay xóa điểm ngắt hay điều kiện điểm theo dõi."
#: command.y:827
msgid "continue [COUNT] - continue program being debugged."
@@ -1057,7 +1119,8 @@ msgstr "down [N] - chuyển xuống N khung stack."
#: command.y:837
msgid "dump [filename] - dump instructions to file or stdout."
-msgstr "dump [tên_tập_tin] - dump các chỉ lệnh ra tập tin hay đầu ra tiêu chuẩn."
+msgstr ""
+"dump [tên_tập_tin] - dump các chỉ lệnh ra tập tin hay đầu ra tiêu chuẩn."
#: command.y:839
msgid "enable [once|del] [breakpoints] [range] - enable specified breakpoints."
@@ -1088,8 +1151,11 @@ msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT."
msgstr "ignore N SỐ-LƯỢNG - đặt số lượng điểm ngắt bị bỏ qua."
#: command.y:853
-msgid "info topic - source|sources|variables|functions|break|frame|args|locals|display|watch."
-msgstr "info chủ_đề - nguồn|nguồn|biến|hàm|break|frame|args|locals|display|watch."
+msgid ""
+"info topic - source|sources|variables|functions|break|frame|args|locals|"
+"display|watch."
+msgstr ""
+"info chủ_đề - nguồn|nguồn|biến|hàm|break|frame|args|locals|display|watch."
#: command.y:855
msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)."
@@ -1097,11 +1163,16 @@ msgstr "list [-|+|[tập_tin:]số_dòng|hàm|vùng] - liệt kê các dòng đ
#: command.y:857
msgid "next [COUNT] - step program, proceeding through subroutine calls."
-msgstr "next [SỐ_LƯỢNG] - nhảy một chỉ lệnh, nhưng được xử lý thông qua gọi thủ tục con."
+msgstr ""
+"next [SỐ_LƯỢNG] - nhảy một chỉ lệnh, nhưng được xử lý thông qua gọi thủ "
+"tục con."
#: command.y:859
-msgid "nexti [COUNT] - step one instruction, but proceed through subroutine calls."
-msgstr "nexti [SỐ_LƯỢNG] - nhảy từng chỉ lệnh, nhưng được xử lý thông qua gọi thủ tục con."
+msgid ""
+"nexti [COUNT] - step one instruction, but proceed through subroutine calls."
+msgstr ""
+"nexti [SỐ_LƯỢNG] - nhảy từng chỉ lệnh, nhưng được xử lý thông qua gọi thủ "
+"tục con."
#: command.y:861
msgid "option [name[=value]] - set or display debugger option(s)."
@@ -1121,7 +1192,9 @@ msgstr "quit - thoát khỏi chương trình gỡ lỗi."
#: command.y:869
msgid "return [value] - make selected stack frame return to its caller."
-msgstr "return [giá-trị] - làm cho khung stack đã chọn trả về giá trị này cho bộ gọi nó."
+msgstr ""
+"return [giá-trị] - làm cho khung stack đã chọn trả về giá trị này cho bộ gọi "
+"nó."
#: command.y:871
msgid "run - start or restart executing program."
@@ -1136,8 +1209,11 @@ msgid "set var = value - assign value to a scalar variable."
msgstr "set biến = giá_trị - gán giá trị cho một biến vô hướng."
#: command.y:879
-msgid "silent - suspends usual message when stopped at a breakpoint/watchpoint."
-msgstr "silent - chặn các lời nhắn thông thường khi dừng tại điểm ngăt hay điểm theo dõi."
+msgid ""
+"silent - suspends usual message when stopped at a breakpoint/watchpoint."
+msgstr ""
+"silent - chặn các lời nhắn thông thường khi dừng tại điểm ngăt hay điểm theo "
+"dõi."
#: command.y:881
msgid "source file - execute commands from file."
@@ -1145,7 +1221,9 @@ msgstr "source file - thực hiện các câu lệnh từ tập tin."
#: command.y:883
msgid "step [COUNT] - step program until it reaches a different source line."
-msgstr "step [SỐ_LƯỢNG] - chạy từng bước chương trình cho đến khi nó gặp một dòng nguồn khác."
+msgstr ""
+"step [SỐ_LƯỢNG] - chạy từng bước chương trình cho đến khi nó gặp một dòng "
+"nguồn khác."
#: command.y:885
msgid "stepi [COUNT] - step one instruction exactly."
@@ -1164,8 +1242,12 @@ msgid "undisplay [N] - remove variable(s) from automatic display list."
msgstr "undisplay [N] - gỡ bỏ các biến từ danh sách hiển thị tự động."
#: command.y:893
-msgid "until [[filename:]N|function] - execute until program reaches a different line or line N within current frame."
-msgstr "until [[tên_tập_tin:]N|hàm] - thực hiện cho đến khi chương trình đạt đến dòng khác hay dòng N trong khung hiện tại."
+msgid ""
+"until [[filename:]N|function] - execute until program reaches a different "
+"line or line N within current frame."
+msgstr ""
+"until [[tên_tập_tin:]N|hàm] - thực hiện cho đến khi chương trình đạt đến "
+"dòng khác hay dòng N trong khung hiện tại."
#: command.y:895
msgid "unwatch [N] - remove variable(s) from watch list."
@@ -1501,7 +1583,9 @@ msgstr "số khung không hợp lệ"
#: debug.c:2200
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Chú ý: điểm ngắt %d (được bật, bỏ qua %ld gợi ý tiếp), đồng thời được đặt tại %s:%d"
+msgstr ""
+"Chú ý: điểm ngắt %d (được bật, bỏ qua %ld gợi ý tiếp), đồng thời được đặt "
+"tại %s:%d"
#: debug.c:2207
#, c-format
@@ -1511,7 +1595,9 @@ msgstr "Chú ý: điểm ngắt %d (được bật), đồng thời được đ
#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Chú ý: điểm ngắt %d (bị tắt, bỏ qua %ld gợi ý tiếp), đồng thời được đặt tại %s:%d"
+msgstr ""
+"Chú ý: điểm ngắt %d (bị tắt, bỏ qua %ld gợi ý tiếp), đồng thời được đặt tại "
+"%s:%d"
#: debug.c:2221
#, c-format
@@ -1593,7 +1679,8 @@ msgstr "Sẽ dừng lần gặp điểm ngắt %d tiếp theo.\n"
#: debug.c:2783
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
-msgstr "Chỉ có thể gỡ lỗi các chương trình được cung cấp cùng với tùy chọn “-f”.\n"
+msgstr ""
+"Chỉ có thể gỡ lỗi các chương trình được cung cấp cùng với tùy chọn “-f”.\n"
#: debug.c:2908
#, c-format
@@ -1739,40 +1826,40 @@ msgstr "“return” không được phép trong ngữ cảnh hiện hành; câu
msgid "No symbol `%s' in current context"
msgstr "Không có ký hiệu “%s” trong ngữ cảnh hiện thời"
-#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
-#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1191
+#: dfa.c:1118 dfa.c:1121 dfa.c:1142 dfa.c:1150 dfa.c:1162 dfa.c:1197
+#: dfa.c:1206 dfa.c:1209 dfa.c:1214 dfa.c:1228 dfa.c:1275
msgid "unbalanced ["
msgstr "thiếu dấu ngoặc vuông mở ["
-#: dfa.c:1052
+#: dfa.c:1174
msgid "invalid character class"
msgstr "sai lớp ký tự"
-#: dfa.c:1228
+#: dfa.c:1316
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:]"
-#: dfa.c:1280
+#: dfa.c:1366
msgid "unfinished \\ escape"
msgstr "chưa kết thúc dãy thoát \\"
-#: dfa.c:1427 regcomp.c:161
+#: dfa.c:1513 regcomp.c:161
msgid "Invalid content of \\{\\}"
msgstr "Nội dung của “\\{\\}” không hợp lệ"
-#: dfa.c:1430 regcomp.c:176
+#: dfa.c:1516 regcomp.c:176
msgid "Regular expression too big"
msgstr "Biểu thức chính quy quá lớn"
-#: dfa.c:1847
+#: dfa.c:1936
msgid "unbalanced ("
msgstr "thiếu dấu ("
-#: dfa.c:1973
+#: dfa.c:2062
msgid "no syntax specified"
msgstr "chưa chỉ rõ cú pháp"
-#: dfa.c:1981
+#: dfa.c:2070
msgid "unbalanced )"
msgstr "thiếu dấu )"
@@ -1894,8 +1981,10 @@ msgstr "load_ext: không thể mở thư viện “%s” (%s)\n"
#: ext.c:104
#, c-format
-msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
-msgstr "load_ext: thư viện “%s”: chưa định nghĩa “plugin_is_GPL_compatible” (%s)\n"
+msgid ""
+"load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
+msgstr ""
+"load_ext: thư viện “%s”: chưa định nghĩa “plugin_is_GPL_compatible” (%s)\n"
#: ext.c:110
#, c-format
@@ -1922,8 +2011,10 @@ msgstr "phần mở rộng: không thể mở thư viện “%s” (%s)"
#: ext.c:186
#, c-format
-msgid "extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-msgstr "phần mở rộng: thư viện “%s”: chưa định nghĩa “plugin_is_GPL_compatible” (%s)"
+msgid ""
+"extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
+msgstr ""
+"phần mở rộng: thư viện “%s”: chưa định nghĩa “plugin_is_GPL_compatible” (%s)"
#: ext.c:190
#, c-format
@@ -1952,7 +2043,9 @@ msgstr "make_builtin: hàm “%s” đã được định nghĩa trước đây
#: ext.c:246
#, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
-msgstr "make_builtin: không thể sử dụng “%s” như là một hàm được xây dựng sẵn trong gawk"
+msgstr ""
+"make_builtin: không thể sử dụng “%s” như là một hàm được xây dựng sẵn trong "
+"gawk"
#: ext.c:249 ext.c:304
#, c-format
@@ -1986,7 +2079,9 @@ msgstr "tên hàm “%s” đã được định nghĩa trước đó"
#: ext.c:301
#, c-format
msgid "extension: can't use gawk built-in `%s' as function name"
-msgstr "extension: (phần mở rộng) không thể dùng điều có sẵn của gawk “%s” như là tên hàm"
+msgstr ""
+"extension: (phần mở rộng) không thể dùng điều có sẵn của gawk “%s” như là "
+"tên hàm"
#: ext.c:375
#, c-format
@@ -2258,16 +2353,16 @@ msgstr "chr: được gọi mà không có đối số"
msgid "chr: called with inappropriate argument(s)"
msgstr "chr: được gọi với đối số không thích hợp"
-#: extension/readdir.c:277
+#: extension/readdir.c:281
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
msgstr "dir_take_control_of: opendir/fdopendir gặp lỗi: %s"
-#: extension/readfile.c:84
+#: extension/readfile.c:113
msgid "readfile: called with too many arguments"
msgstr "readfile: được gọi với quá nhiều đối số"
-#: extension/readfile.c:118
+#: extension/readfile.c:137
msgid "readfile: called with no arguments"
msgstr "readfile: được gọi mà không có đối số"
@@ -2319,27 +2414,27 @@ msgstr "do_reada: clear_array gặp lỗi\n"
msgid "read_array: set_array_element failed\n"
msgstr "read_array: set_array_element gặp lỗi\n"
-#: extension/time.c:106
+#: extension/time.c:113
msgid "gettimeofday: ignoring arguments"
msgstr "gettimeofday: đang lờ đi các đối số"
-#: extension/time.c:137
+#: extension/time.c:144
msgid "gettimeofday: not supported on this platform"
msgstr "gettimeofday: không được hỗ trợ trên nền tảng này"
-#: extension/time.c:158
+#: extension/time.c:165
msgid "sleep: called with too many arguments"
msgstr "sleep: được gọi với quá nhiều đối số"
-#: extension/time.c:161
+#: extension/time.c:168
msgid "sleep: missing required numeric argument"
msgstr "sleep: thiếu đối số dạng số cần thiết"
-#: extension/time.c:167
+#: extension/time.c:174
msgid "sleep: argument is negative"
msgstr "sleep: đối số âm"
-#: extension/time.c:201
+#: extension/time.c:208
msgid "sleep: not supported on this platform"
msgstr "sleep: không được hỗ trợ trên nền tảng này"
@@ -2361,19 +2456,26 @@ msgstr "split: (chia tách) đối số thứ hai không phải là mảng"
#: field.c:993
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ư"
+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
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ư"
+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
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"
+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:1032
msgid "split: null string for third arg is a gawk extension"
-msgstr "split: (chia tách) chuỗi vô giá trị cho đối số thứ ba là phần mở rộng gawk"
+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
msgid "patsplit: fourth argument is not an array"
@@ -2389,15 +2491,21 @@ msgstr "patsplit: đối số thứ ba không phải không rỗng"
#: field.c:1087
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ư"
+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:1092
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ư"
+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:1095
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"
+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:1133
msgid "`FIELDWIDTHS' is a gawk extension"
@@ -2432,20 +2540,20 @@ msgstr "node_to_awk_value: nút nhận được là null"
msgid "node_to_awk_value: received null val"
msgstr "node_to_awk_value: biến nhận được là null"
-#: gawkapi.c:808
+#: gawkapi.c:807
msgid "remove_element: received null array"
msgstr "remove_element: mảng nhận được là null"
-#: gawkapi.c:811
+#: gawkapi.c:810
msgid "remove_element: received null subscript"
msgstr "remove_element: nhận được là null"
-#: gawkapi.c:948
+#: gawkapi.c:947
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
msgstr "api_flatten_array: không thể chuyển đổi chỉ số %d\n"
-#: gawkapi.c:953
+#: gawkapi.c:952
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
msgstr "api_flatten_array: không thể chuyển đổi giá trị %d\n"
@@ -2537,7 +2645,9 @@ msgstr "biểu thức cho điều chuyển hướng “%s” có giá trị chu
#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
-msgstr "tên tập tin “%s” cho điều chuyển hướng “%s” có lẽ là kết quả của biểu thức luận lý"
+msgstr ""
+"tên tập tin “%s” cho điều chuyển hướng “%s” có lẽ là kết quả của biểu thức "
+"luận lý"
#: io.c:809
#, c-format
@@ -2570,8 +2680,11 @@ msgid "can't redirect to `%s' (%s)"
msgstr "không thể chuyển hướng đến “%s” (%s)"
#: io.c:1040
-msgid "reached system limit for open files: starting to multiplex file descriptors"
-msgstr "đã tới giới hạn hệ thống về tập tin được mở nên bắt đầu phối hợp nhiều dòng điều mô tả tập tin"
+msgid ""
+"reached system limit for open files: starting to multiplex file descriptors"
+msgstr ""
+"đã tới giới hạn hệ thống về tập tin được mở nên bắt đầu phối hợp nhiều dòng "
+"điều mô tả tập tin"
#: io.c:1056
#, c-format
@@ -2589,7 +2702,9 @@ msgstr "close: (đóng) đối số thứ hai phải là “to” (đến) hay
#: io.c:1103
#, c-format
msgid "close: `%.*s' is not an open file, pipe or co-process"
-msgstr "close: (đóng) “%.*s” không phải là tập tin, ống dẫn hay đồng tiến trình đã được mở"
+msgstr ""
+"close: (đóng) “%.*s” không phải là tập tin, ống dẫn hay đồng tiến trình đã "
+"được mở"
#: io.c:1108
msgid "close of redirection that was never opened"
@@ -2598,7 +2713,8 @@ msgstr "đóng một chuyển hướng mà nó chưa từng được mở"
#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr "close: chuyển hướng “%s” không được mở bởi “|&” nên đối số thứ hai bị bỏ qua"
+msgstr ""
+"close: chuyển hướng “%s” không được mở bởi “|&” nên đối số thứ hai bị bỏ qua"
#: io.c:1222
#, c-format
@@ -2705,7 +2821,9 @@ msgstr "lỗi đóng đầu ra tiêu chuẩn trong tiến trình con (%s)"
#: io.c:1922
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
-msgstr "gặp lỗi khi di chuyển pty (thiết bị cuối giả) phụ thuộc đến thiết bị đầu ra tiêu chuẩn trong con (trùng: %s)"
+msgstr ""
+"gặp lỗi khi di chuyển pty (thiết bị cuối giả) phụ thuộc đến thiết bị đầu ra "
+"tiêu chuẩn trong con (trùng: %s)"
#: io.c:1924 io.c:2110
#, c-format
@@ -2715,7 +2833,9 @@ msgstr "lỗi đóng thiết bị nhập chuẩn trong tiến trình con (%s)"
#: io.c:1927
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
-msgstr "lỗi di chuyển pty (thiết bị cuối giả) phụ tới thiết bị nhập chuẩn trong điều con (nhân đôi: %s)"
+msgstr ""
+"lỗi di chuyển pty (thiết bị cuối giả) phụ tới thiết bị nhập chuẩn trong điều "
+"con (nhân đôi: %s)"
#: io.c:1929 io.c:1951
#, c-format
@@ -2725,12 +2845,16 @@ msgstr "đóng pty (thiết bị cuối giả) phụ thuộc gặp lỗi (%s)"
#: io.c:2040 io.c:2108 io.c:2276 io.c:2308
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
-msgstr "lỗi di chuyển ống dẫn đến thiết bị xuất chuẩn trong tiến trình con (trùng: %s)"
+msgstr ""
+"lỗi di chuyển ống dẫn đến thiết bị xuất chuẩn trong tiến trình con (trùng: "
+"%s)"
#: io.c:2047 io.c:2113
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
-msgstr "lỗi di chuyển ống dẫn đến thiết bị nhập chuẩn trong tiến trình con (trùng: %s)"
+msgstr ""
+"lỗi di chuyển ống dẫn đến thiết bị nhập chuẩn trong tiến trình con (trùng: "
+"%s)"
#: io.c:2073 io.c:2298
msgid "restoring stdout in parent process failed\n"
@@ -2766,7 +2890,9 @@ msgstr "register_input_parser: nhận được con trỏ NULL"
#: io.c:2818
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
-msgstr "bộ phân tích đầu vào “%s” xung đột với bộ phân tích đầu vào được cài đặt trước đó “%s”"
+msgstr ""
+"bộ phân tích đầu vào “%s” xung đột với bộ phân tích đầu vào được cài đặt "
+"trước đó “%s”"
#: io.c:2825
#, c-format
@@ -2779,8 +2905,10 @@ msgstr "register_output_wrapper: nhận được con trỏ NULL"
#: io.c:2873
#, c-format
-msgid "output wrapper `%s' conflicts with previously installed output wrapper `%s'"
-msgstr "bộ bao kết xuất “%s” xung đột với bộ bao kết xuất được cài đặt trước đó “%s”"
+msgid ""
+"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
+msgstr ""
+"bộ bao kết xuất “%s” xung đột với bộ bao kết xuất được cài đặt trước đó “%s”"
#: io.c:2880
#, c-format
@@ -2793,8 +2921,12 @@ msgstr "register_output_processor: nhận được con trỏ NULL"
#: io.c:2930
#, c-format
-msgid "two-way processor `%s' conflicts with previously installed two-way processor `%s'"
-msgstr "bộ xử lý hai hướng “%s” xung đột với bộ xử lý hai hướng đã được cài đặt trước đó “%s”"
+msgid ""
+"two-way processor `%s' conflicts with previously installed two-way processor "
+"`%s'"
+msgstr ""
+"bộ xử lý hai hướng “%s” xung đột với bộ xử lý hai hướng đã được cài đặt "
+"trước đó “%s”"
#: io.c:2939
#, c-format
@@ -2834,7 +2966,9 @@ msgstr "%s: tùy chọn cần đến đối số “-- %c”\n"
#: main.c:562
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
-msgstr "biến môi trường “POSIXLY_CORRECT” (đúng kiểu POSIX) đã được đặt; đang bật tùy chọn “--posix”"
+msgstr ""
+"biến môi trường “POSIXLY_CORRECT” (đúng kiểu POSIX) đã được đặt; đang bật "
+"tùy chọn “--posix”"
#: main.c:568
msgid "`--posix' overrides `--traditional'"
@@ -2842,7 +2976,9 @@ msgstr "tùy chọn “--posix” có quyền cao hơn “--traditional” (truy
#: main.c:579
msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
-msgstr "“--posix”/“--traditional” (cổ điển) có quyền cao hơn “--non-decimal-data” (dữ liệu khác thập phân)"
+msgstr ""
+"“--posix”/“--traditional” (cổ điển) có quyền cao hơn “--non-decimal-"
+"data” (dữ liệu khác thập phân)"
#: main.c:583
#, c-format
@@ -2875,12 +3011,16 @@ msgstr "không có đoạn chữ chương trình nào cả!"
#: main.c:799
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
-msgstr "Cách dùng: %s [tùy chọn kiểu POSIX hay GNU] -f tập_tin_chương_trình [--] tập_tin ...\n"
+msgstr ""
+"Cách dùng: %s [tùy chọn kiểu POSIX hay GNU] -f tập_tin_chương_trình [--] "
+"tập_tin ...\n"
#: main.c:801
#, c-format
msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
-msgstr "Cách dùng: %s [tùy chọn kiểu POSIX hay GNU] [--] %cchương_trình%c tập_tin ...\n"
+msgstr ""
+"Cách dùng: %s [tùy chọn kiểu POSIX hay GNU] [--] %cchương_trình%c "
+"tập_tin ...\n"
#: main.c:806
msgid "POSIX options:\t\tGNU long options: (standard)\n"
@@ -3225,8 +3365,12 @@ msgstr "không có số thập lúc nằm trong thoát chuỗi “\\x”"
#: node.c:579
#, c-format
-msgid "hex escape \\x%.*s of %d characters probably not interpreted the way you expect"
-msgstr "thoát chuỗi thập lục \\x%.*s chứa %d ký tự mà rất có thể không phải được đọc bằng cách dự định"
+msgid ""
+"hex escape \\x%.*s of %d characters probably not interpreted the way you "
+"expect"
+msgstr ""
+"thoát chuỗi thập lục \\x%.*s chứa %d ký tự mà rất có thể không phải được đọc "
+"bằng cách dự định"
#: node.c:594
#, c-format
@@ -3234,8 +3378,12 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
msgstr "thoát chuỗi “\\%c” được xử lý như là “%c” chuẩn"
#: node.c:739
-msgid "Invalid multibyte data detected. There may be a mismatch between your data and your locale."
-msgstr "Dữ liệu dạng đa byte (multibyte) không hợp lệ được tìm thấy. Tại đó có lẽ không khớp giữa dữ liệu của bạn và nơi xảy ra."
+msgid ""
+"Invalid multibyte data detected. There may be a mismatch between your data "
+"and your locale."
+msgstr ""
+"Dữ liệu dạng đa byte (multibyte) không hợp lệ được tìm thấy. Tại đó có lẽ "
+"không khớp giữa dữ liệu của bạn và nơi xảy ra."
#: posix/gawkmisc.c:177
#, c-format
@@ -3245,7 +3393,9 @@ msgstr "%s %s “%s”: không thể lấy cờ mô tả (fd): (fcntl F_GETFD: %
#: posix/gawkmisc.c:189
#, c-format
msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
-msgstr "%s %s “%s”: không thể đặt “close-on-exec” (đóng một khi thực hiện): (fcntl F_SETFD: %s)"
+msgstr ""
+"%s %s “%s”: không thể đặt “close-on-exec” (đóng một khi thực hiện): (fcntl "
+"F_SETFD: %s)"
#: profile.c:71
#, c-format
@@ -3314,7 +3464,9 @@ msgstr "redir2str: không hiểu kiểu chuyển hướng %d"
#: re.c:607
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
-msgstr "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]”"
+msgstr ""
+"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]”"
#: regcomp.c:131
msgid "Success"
@@ -3456,8 +3608,11 @@ msgstr "không thể pop (lấy ra) ngữ cảnh chính"
#~ msgid "statement has no effect"
#~ msgstr "câu không có tác dụng"
-#~ msgid "for loop: array `%s' changed size from %ld to %ld during loop execution"
-#~ msgstr "cho loop: (cho vòng lặp) mảng “%s” đã thay đổi kích thước từ %ld đến %ld trong khi thực hiện vòng lặp"
+#~ msgid ""
+#~ "for loop: array `%s' changed size from %ld to %ld during loop execution"
+#~ msgstr ""
+#~ "cho loop: (cho vòng lặp) mảng “%s” đã thay đổi kích thước từ %ld đến %ld "
+#~ "trong khi thực hiện vòng lặp"
#~ msgid "function called indirectly through `%s' does not exist"
#~ msgstr "hàm được gọi gián tiếp thông qua “%s” không tồn tại"
diff --git a/posix/ChangeLog b/posix/ChangeLog
index 9eb72ff4..b93b891f 100644
--- a/posix/ChangeLog
+++ b/posix/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
2013-06-03 Arnold D. Robbins <arnold@skeeve.com>
* gawkmisc.c (init_sockets): Remove ifdefs.
diff --git a/regcomp.c b/regcomp.c
index f3c4587d..776b7134 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -3128,8 +3128,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
if (BE (sbcset == NULL, 0))
#endif /* RE_ENABLE_I18N */
{
- re_free (sbcset);
#ifdef RE_ENABLE_I18N
+ re_free (sbcset);
re_free (mbcset);
#endif
*err = REG_ESPACE;
diff --git a/regex_internal.c b/regex_internal.c
index 10dd6e00..056cff3d 100644
--- a/regex_internal.c
+++ b/regex_internal.c
@@ -320,12 +320,11 @@ build_wcs_upper_buffer (re_string_t *pstr)
+ byte_idx), remain_len, &pstr->cur_state);
if (BE (mbclen + 2 > 2, 1))
{
- wchar_t wcu = wc;
- if (iswlower (wc))
+ wchar_t wcu = towupper (wc);
+ if (wcu != wc)
{
size_t mbcdlen;
- wcu = towupper (wc);
mbcdlen = wcrtomb (buf, wcu, &prev_st);
if (BE (mbclen == mbcdlen, 1))
memcpy (pstr->mbs + byte_idx, buf, mbclen);
@@ -390,12 +389,11 @@ build_wcs_upper_buffer (re_string_t *pstr)
mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
if (BE (mbclen + 2 > 2, 1))
{
- wchar_t wcu = wc;
- if (iswlower (wc))
+ wchar_t wcu = towupper (wc);
+ if (wcu != wc)
{
size_t mbcdlen;
- wcu = towupper (wc);
mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st);
if (BE (mbclen == mbcdlen, 1))
memcpy (pstr->mbs + byte_idx, buf, mbclen);
@@ -547,10 +545,7 @@ build_upper_buffer (re_string_t *pstr)
int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx];
if (BE (pstr->trans != NULL, 0))
ch = pstr->trans[ch];
- if (islower (ch))
- pstr->mbs[char_idx] = toupper (ch);
- else
- pstr->mbs[char_idx] = ch;
+ pstr->mbs[char_idx] = toupper (ch);
}
pstr->valid_len = char_idx;
pstr->valid_raw_len = char_idx;
diff --git a/test/ChangeLog b/test/ChangeLog
index 65409956..6d4cd1c2 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,30 @@
+2014-04-11 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 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 <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
+2014-04-04 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am: Prettify list of tests a little bit.
+
+2014-04-03 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (EXTRA_DIST): Add readfile2.ok. Oops.
+
+2014-03-27 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (readfile2): New test.
+ * readfile2.awk, readfile2.ok: New files.
+
+2014-02-28 Arnold D. Robbins <arnold@skeeve.com>
+
+ * regrange.ok: Update after code improvements.
+
2014-02-03 Stepan Kasal <kasal@ucw.cz>
* strftime.awk: the default format uses %e, not %d (Introduced on
diff --git a/test/Makefile.am b/test/Makefile.am
index 97848a00..238f2ed7 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -710,6 +710,8 @@ EXTRA_DIST = \
range1.ok \
readdir.awk \
readdir0.awk \
+ readfile2.awk \
+ readfile2.ok \
rebt8b1.awk \
rebt8b1.ok \
rebt8b2.awk \
@@ -947,8 +949,7 @@ BASIC_TESTS = \
arrayref arrymem1 arryref2 arryref3 arryref4 arryref5 arynasty \
arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \
aryprm8 arysubnm asgext awkpath \
- back89 backgsub \
- badassign1 \
+ back89 backgsub badassign1 \
childin clobber closebad clsflnam compare compare2 concat1 concat2 \
concat3 concat4 convfmt \
datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \
@@ -1021,7 +1022,7 @@ LOCALE_CHARSET_TESTS = \
SHLIB_TESTS = \
fnmatch filefuncs fork fork2 fts functab4 inplace1 inplace2 inplace3 \
- ordchr ordchr2 readdir readfile revout revtwoway rwarray testext time
+ ordchr ordchr2 readdir readfile readfile2 revout revtwoway rwarray testext time
# List of the tests which should be run with --lint option:
NEED_LINT = \
@@ -1144,6 +1145,10 @@ machine-msg-end:
charset-msg-start:
@echo "======== Starting tests that can vary based on character set or locale support ========"
+ @echo "************************************************"
+ @echo "** Some or all of these tests may fail if you **"
+ @echo "** have inadequate or missing locale support **"
+ @echo "************************************************"
charset-msg-end:
@echo "======== Done with tests that can vary based on character set or locale support ========"
@@ -1736,6 +1741,11 @@ readfile::
@$(AWK) -l readfile 'BEGIN {printf "%s", readfile("Makefile")}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) Makefile _$@ && rm -f _$@ || cp -p Makefile $@.ok
+readfile2::
+ @echo $@
+ @$(AWK) -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.awk "$(srcdir)"/readdir.awk > _$@ || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
include2::
@echo $@
@AWKPATH="$(srcdir)" $(AWK) --include inclib 'BEGIN {print sandwich("a", "b", "c")}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/Makefile.in b/test/Makefile.in
index 468c19c5..0831c597 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -956,6 +956,8 @@ EXTRA_DIST = \
range1.ok \
readdir.awk \
readdir0.awk \
+ readfile2.awk \
+ readfile2.ok \
rebt8b1.awk \
rebt8b1.ok \
rebt8b2.awk \
@@ -1192,8 +1194,7 @@ BASIC_TESTS = \
arrayref arrymem1 arryref2 arryref3 arryref4 arryref5 arynasty \
arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \
aryprm8 arysubnm asgext awkpath \
- back89 backgsub \
- badassign1 \
+ back89 backgsub badassign1 \
childin clobber closebad clsflnam compare compare2 concat1 concat2 \
concat3 concat4 convfmt \
datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \
@@ -1263,7 +1264,7 @@ LOCALE_CHARSET_TESTS = \
SHLIB_TESTS = \
fnmatch filefuncs fork fork2 fts functab4 inplace1 inplace2 inplace3 \
- ordchr ordchr2 readdir readfile revout revtwoway rwarray testext time
+ ordchr ordchr2 readdir readfile readfile2 revout revtwoway rwarray testext time
# List of the tests which should be run with --lint option:
@@ -1571,6 +1572,10 @@ machine-msg-end:
charset-msg-start:
@echo "======== Starting tests that can vary based on character set or locale support ========"
+ @echo "************************************************"
+ @echo "** Some or all of these tests may fail if you **"
+ @echo "** have inadequate or missing locale support **"
+ @echo "************************************************"
charset-msg-end:
@echo "======== Done with tests that can vary based on character set or locale support ========"
@@ -2160,6 +2165,11 @@ readfile::
@$(AWK) -l readfile 'BEGIN {printf "%s", readfile("Makefile")}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) Makefile _$@ && rm -f _$@ || cp -p Makefile $@.ok
+readfile2::
+ @echo $@
+ @$(AWK) -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.awk "$(srcdir)"/readdir.awk > _$@ || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
include2::
@echo $@
@AWKPATH="$(srcdir)" $(AWK) --include inclib 'BEGIN {print sandwich("a", "b", "c")}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/readfile2.awk b/test/readfile2.awk
new file mode 100644
index 00000000..c21483fc
--- /dev/null
+++ b/test/readfile2.awk
@@ -0,0 +1,12 @@
+@load "readfile"
+BEGIN { PROCINFO["readfile"] = 1 }
+BEGINFILE { print "Start of", basename(FILENAME) }
+{ printf ("%d: <%s>\n", FNR, $0 ) }
+ENDFILE { print "End of", basename(FILENAME) }
+
+function basename(file, result)
+{
+ result = file
+ gsub(".*/", "", result)
+ return result
+}
diff --git a/test/readfile2.ok b/test/readfile2.ok
new file mode 100644
index 00000000..be1ded6c
--- /dev/null
+++ b/test/readfile2.ok
@@ -0,0 +1,21 @@
+Start of readfile2.awk
+1: <@load "readfile"
+BEGIN { PROCINFO["readfile"] = 1 }
+BEGINFILE { print "Start of", basename(FILENAME) }
+{ printf ("%d: <%s>\n", FNR, $0 ) }
+ENDFILE { print "End of", basename(FILENAME) }
+
+function basename(file, result)
+{
+ result = file
+ gsub(".*/", "", result)
+ return result
+}
+>
+End of readfile2.awk
+Start of readdir.awk
+1: <@load "readdir"
+
+{ print }
+>
+End of readdir.awk
diff --git a/test/regrange.ok b/test/regrange.ok
index 1fa00c70..ae8c6499 100644
--- a/test/regrange.ok
+++ b/test/regrange.ok
@@ -3,4 +3,4 @@
"c" ~ /[[a-d]/ --> 1
"\" ~ /[\[-\]]/ --> 1
"[.c.]" ~ /[a-[.e.]]/ --> 1
-"[.d.]" ~ /[[.c.]-[.z.]]/ --> 0
+"[.d.]" ~ /[[.c.]-[.z.]]/ --> 1
diff --git a/vms/ChangeLog b/vms/ChangeLog
index 94bc9f1a..1bb34475 100644
--- a/vms/ChangeLog
+++ b/vms/ChangeLog
@@ -1,3 +1,11 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * descrip.mms, vmsbuild.com: Update patchlevel.
+
2014-02-12 John E. Malmberg <wb8tyw@qsl.net>
* vmstest.com: (strftime) requires GNV Coreutils date command to run
diff --git a/vms/descrip.mms b/vms/descrip.mms
index 1f24f8f1..a0b7bd6a 100644
--- a/vms/descrip.mms
+++ b/vms/descrip.mms
@@ -122,7 +122,7 @@ DOCS= $(DOCDIR)gawk.1,$(DOCDIR)gawk.texi,$(DOCDIR)texinfo.tex
# Release of gawk
REL=4.1
-PATCHLVL=0
+PATCHLVL=1
# generic target
all : gawk
diff --git a/vms/vax/ChangeLog b/vms/vax/ChangeLog
index 526bc420..7cf2c4fa 100644
--- a/vms/vax/ChangeLog
+++ b/vms/vax/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-08 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.1.1: Release tar ball made.
+
2013-12-29 John Malmberg <wb8tyw@qsl.net>
* ChangeLog: New directory.
diff --git a/vms/vmsbuild.com b/vms/vmsbuild.com
index 2c0d39f0..c13e4b57 100644
--- a/vms/vmsbuild.com
+++ b/vms/vmsbuild.com
@@ -10,10 +10,11 @@ $! gawk 3.1.1 revised, Apr'02
$! gawk 3.1.6 revised, Mar'07
$! gawk-bytecode revd, Jan'10
$! gawk 4.0.0 revd, May'11
-$! gawk 4.1.0 revd, Nov'12
+$! gawk 4.1.0 revd, May'13
+$! gawk 4.1.1 revd, Apr'14
$!
$ REL = "4.1" !release version number
-$ PATCHLVL = "0"
+$ PATCHLVL = "1"
$!
$ if (f$getsyi("HW_MODEL") .lt. 1024)
$ then