gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, master, updated. gawk-4.1.0-3802-g9e237c


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, master, updated. gawk-4.1.0-3802-g9e237cf
Date: Mon, 22 Jul 2019 23:22:05 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, master has been updated
       via  9e237cf01f89ef9aab10a295b700c324f4b96e3d (commit)
       via  01ec45a8915f531cc3491e5b3ca5e2c2ef0a57d1 (commit)
       via  9a80874f7f13422d2e60cac2bfa87469dfa25152 (commit)
       via  3940fe507bc67794100e1f075597f451ef1f3c22 (commit)
       via  2a7b1a82bccd03781452124dff9194ab308a83fb (commit)
       via  d5eae9adb4b9ebee89fe4978db0b12b4d7a1328c (commit)
       via  91bcee4486440e1b9824b24fa8881c09b51a3f25 (commit)
       via  a6e29c22e038d72069a0ee461523c892b37287d0 (commit)
      from  680bf3fd4f7821aef7b588a4312c2a6a75ae2587 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=9e237cf01f89ef9aab10a295b700c324f4b96e3d

commit 9e237cf01f89ef9aab10a295b700c324f4b96e3d
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jul 23 06:21:31 2019 +0300

    Test tarball 5.0.61.

diff --git a/configure b/configure
index d007e04..a9f5e7c 100755
--- a/configure
+++ b/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 5.0.60.
+# Generated by GNU Autoconf 2.69 for GNU Awk 5.0.61.
 #
 # Report bugs to <address@hidden>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GNU Awk'
 PACKAGE_TARNAME='gawk'
-PACKAGE_VERSION='5.0.60'
-PACKAGE_STRING='GNU Awk 5.0.60'
+PACKAGE_VERSION='5.0.61'
+PACKAGE_STRING='GNU Awk 5.0.61'
 PACKAGE_BUGREPORT='address@hidden'
 PACKAGE_URL='http://www.gnu.org/software/gawk/'
 
@@ -1331,7 +1331,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 5.0.60 to adapt to many kinds of systems.
+\`configure' configures GNU Awk 5.0.61 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1401,7 +1401,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU Awk 5.0.60:";;
+     short | recursive ) echo "Configuration of GNU Awk 5.0.61:";;
    esac
   cat <<\_ACEOF
 
@@ -1523,7 +1523,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU Awk configure 5.0.60
+GNU Awk configure 5.0.61
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2232,7 +2232,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 $as_me 5.0.60, which was
+It was created by GNU Awk $as_me 5.0.61, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3115,7 +3115,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gawk'
- VERSION='5.0.60'
+ VERSION='5.0.61'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -11606,7 +11606,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 $as_me 5.0.60, which was
+This file was extended by GNU Awk $as_me 5.0.61, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -11674,7 +11674,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 config.status 5.0.60
+GNU Awk config.status 5.0.61
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 09b9ed8..436ef4a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@ dnl
 
 dnl Process this file with autoconf to produce a configure script.
 
-AC_INIT([GNU Awk],[5.0.60],[address@hidden],[gawk])
+AC_INIT([GNU Awk],[5.0.61],[address@hidden],[gawk])
 
 # This is a hack. Different versions of install on different systems
 # are just too different. Chuck it and use install-sh.
diff --git a/extension/configure b/extension/configure
index 6cb1a0e..2399939 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 5.0.60.
+# Generated by GNU Autoconf 2.69 for GNU Awk Bundled Extensions 5.0.61.
 #
 # Report bugs to <address@hidden>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GNU Awk Bundled Extensions'
 PACKAGE_TARNAME='gawk-extensions'
-PACKAGE_VERSION='5.0.60'
-PACKAGE_STRING='GNU Awk Bundled Extensions 5.0.60'
+PACKAGE_VERSION='5.0.61'
+PACKAGE_STRING='GNU Awk Bundled Extensions 5.0.61'
 PACKAGE_BUGREPORT='address@hidden'
 PACKAGE_URL='http://www.gnu.org/software/gawk-extensions/'
 
@@ -1339,7 +1339,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 5.0.60 to adapt to many 
kinds of systems.
+\`configure' configures GNU Awk Bundled Extensions 5.0.61 to adapt to many 
kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1409,7 +1409,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU Awk Bundled Extensions 
5.0.60:";;
+     short | recursive ) echo "Configuration of GNU Awk Bundled Extensions 
5.0.61:";;
    esac
   cat <<\_ACEOF
 
@@ -1531,7 +1531,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU Awk Bundled Extensions configure 5.0.60
+GNU Awk Bundled Extensions configure 5.0.61
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2003,7 +2003,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 5.0.60, which was
+It was created by GNU Awk Bundled Extensions $as_me 5.0.61, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2872,7 +2872,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gawk-extensions'
- VERSION='5.0.60'
+ VERSION='5.0.61'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15943,7 +15943,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 5.0.60, which was
+This file was extended by GNU Awk Bundled Extensions $as_me 5.0.61, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16011,7 +16011,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 5.0.60
+GNU Awk Bundled Extensions config.status 5.0.61
 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 a11e6b8..7152826 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-2018 the Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2019 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],[5.0.60],[address@hidden],[gawk-extensions])
+AC_INIT([GNU Awk Bundled 
Extensions],[5.0.61],[address@hidden],[gawk-extensions])
 
 AC_PREREQ([2.69])
 
diff --git a/pc/Makefile.tst b/pc/Makefile.tst
index e6bf035..e0da8dc 100644
--- a/pc/Makefile.tst
+++ b/pc/Makefile.tst
@@ -150,7 +150,7 @@ BASIC_TESTS = \
        callparam childin clobber closebad clsflnam compare compare2 \
        concat1 concat2 concat3 concat4 concat5 convfmt \
        datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress 
dynlj \
-       eofsplit eofsrc1 exit2 exitval1 exitval2 exitval3 \
+       escapebrace eofsplit eofsrc1 exit2 exitval1 exitval2 exitval3 \
        fcall_exit fcall_exit2 fldchg fldchgnf fldterm fnamedat fnarray 
fnarray2 \
        fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fscaret fsnul1 \
        fsrs fsspcoln fstabplus funsemnl funsmnam funstack \
@@ -205,6 +205,7 @@ GAWK_EXT_TESTS = \
        lint lintexp lintindex lintint lintlength lintold lintset lintwarn \
        manyfiles match1 match2 match3 mbstr1 mbstr2 mixed1 mktime muldimposix \
        nastyparm negtime next nondec nondec2 nonfatal1 nonfatal2 nonfatal3 \
+       nsawk1a nsawk1b nsawk1c nsawk2a nsawk2b \
        nsbad nsbad_cmd nsforloop nsfuncrecurse nsindirect1 nsindirect2 nsprof1 
nsprof2 \
        patsplit posix printfbad1 printfbad2 printfbad3 printfbad4 printhuge \
        procinfs profile0 profile1 profile2 profile3 profile4 profile5 profile6 
\
@@ -233,7 +234,7 @@ SHLIB_TESTS = \
        apiterm \
        filefuncs fnmatch fork fork2 fts functab4 \
        getfile \
-       inplace1 inplace2 inplace3 \
+       inplace1 inplace2 inplace2bcomp inplace3 inplace3bcomp \
        ordchr ordchr2 \
        readdir readdir_test readdir_retest readfile readfile2 revout \
        revtwoway rwarray \
@@ -262,7 +263,7 @@ NEED_MPFR = mpfrbigint mpfrbigint2 mpfrexprange mpfrfield 
mpfrieee mpfrmemok1 \
 NEED_NONDEC = mpfrbigint2 nondec2 intarray forcenum
 
 # List of tests that need --posix
-NEED_POSIX = printf0 posix2008sub paramasfunc1 paramasfunc2 muldimposix
+NEED_POSIX = escapebrace printf0 posix2008sub paramasfunc1 paramasfunc2 
muldimposix
 
 # List of tests that need --pretty-print
 NEED_PRETTY = nsprof1 nsprof2 \
@@ -892,6 +893,31 @@ readfile2::
        @$(AWK) -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.awk 
"$(srcdir)"/readdir.awk > _$@ || echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
+nsawk1a::
+       @echo $@
+       @$(AWK) -f "$(srcdir)"/nsawk1.awk > _$@ || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
+nsawk1b::
+       @echo $@
+       @$(AWK) -v I=fine -f "$(srcdir)"/nsawk1.awk > _$@ || echo EXIT CODE: 
$$? >>_$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
+nsawk1c::
+       @echo $@
+       @$(AWK) -v awk::I=fine -f "$(srcdir)"/nsawk1.awk > _$@ || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
+nsawk2a::
+       @echo $@
+       @$(AWK) -v I=fine -f "$(srcdir)"/nsawk2.awk > _$@ || echo EXIT CODE: 
$$? >>_$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
+nsawk2b::
+       @echo $@
+       @$(AWK) -v awk::I=fine -f "$(srcdir)"/nsawk2.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: $$? >>_$@
@@ -952,6 +978,17 @@ inplace2::
        @-$(CMP) "$(srcdir)"/$@.2.ok _$@.2 && rm -f _$@.2
        @-$(CMP) "$(srcdir)"/$@.2.bak.ok _$@.2.bak && rm -f _$@.2.bak
 
+inplace2bcomp::
+       @echo $@
+       @cp "$(srcdir)"/inplace.1.in _$@.1
+       @cp "$(srcdir)"/inplace.2.in _$@.2
+       @AWKPATH="$(srcdir)"/../awklib/eg/lib $(AWK) -i inplace -v 
INPLACE_SUFFIX=.orig 'BEGIN {print "before"} {gsub(/foo/, "bar"); print} END 
{print "after"}' _$@.1 - _$@.2 < "$(srcdir)"/inplace.in >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+       @-$(CMP) "$(srcdir)"/$@.1.ok _$@.1 && rm -f _$@.1
+       @-$(CMP) "$(srcdir)"/$@.1.orig.ok _$@.1.orig && rm -f _$@.1.orig
+       @-$(CMP) "$(srcdir)"/$@.2.ok _$@.2 && rm -f _$@.2
+       @-$(CMP) "$(srcdir)"/$@.2.orig.ok _$@.2.orig && rm -f _$@.2.orig
+
 inplace3::
        @echo $@
        @cp "$(srcdir)"/inplace.1.in _$@.1
@@ -964,6 +1001,18 @@ inplace3::
        @-$(CMP) "$(srcdir)"/$@.2.ok _$@.2 && rm -f _$@.2
        @-$(CMP) "$(srcdir)"/$@.2.bak.ok _$@.2.bak && rm -f _$@.2.bak
 
+inplace3bcomp::
+       @echo $@
+       @cp "$(srcdir)"/inplace.1.in _$@.1
+       @cp "$(srcdir)"/inplace.2.in _$@.2
+       @AWKPATH="$(srcdir)"/../awklib/eg/lib $(AWK) -i inplace -v 
INPLACE_SUFFIX=.orig 'BEGIN {print "before"} {gsub(/foo/, "bar"); print} END 
{print "after"}' _$@.1 - _$@.2 < "$(srcdir)"/inplace.in >_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @AWKPATH="$(srcdir)"/../awklib/eg/lib $(AWK) -i inplace -v 
INPLACE_SUFFIX=.orig 'BEGIN {print "Before"} {gsub(/bar/, "foo"); print} END 
{print "After"}' _$@.1 - _$@.2 < "$(srcdir)"/inplace.in >>_$@ 2>&1 || echo EXIT 
CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+       @-$(CMP) "$(srcdir)"/$@.1.ok _$@.1 && rm -f _$@.1
+       @-$(CMP) "$(srcdir)"/$@.1.orig.ok _$@.1.orig && rm -f _$@.1.orig
+       @-$(CMP) "$(srcdir)"/$@.2.ok _$@.2 && rm -f _$@.2
+       @-$(CMP) "$(srcdir)"/$@.2.orig.ok _$@.2.orig && rm -f _$@.2.orig
+
 testext::
        @echo $@
        @$(AWK) ' /^(@load|BEGIN)/,/^}/' "$(top_srcdir)"/extension/testext.c > 
testext.awk
@@ -1435,6 +1484,11 @@ dynlj:
        @AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
+escapebrace:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f $@.awk  --posix < "$(srcdir)"/$@.in >_$@ 
2>&1 || echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
 eofsplit:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
diff --git a/pc/config.h b/pc/config.h
index 284d0ef..fa5d849 100644
--- a/pc/config.h
+++ b/pc/config.h
@@ -458,7 +458,7 @@
 #define PACKAGE_NAME "GNU Awk"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GNU Awk 5.0.1"
+#define PACKAGE_STRING "GNU Awk 5.0.61"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gawk"
@@ -467,7 +467,7 @@
 #define PACKAGE_URL "http://www.gnu.org/software/gawk/";
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "5.0.1"
+#define PACKAGE_VERSION "5.0.61"
 
 /* Define to 1 if *printf supports %a format */
 #define PRINTF_HAS_A_FORMAT 1
@@ -528,7 +528,7 @@
 
 
 /* Version number of package */
-#define VERSION "5.0.1"
+#define VERSION "5.0.61"
 
 /* Enable large inode numbers on Mac OS X 10.5.  */
 #ifndef _DARWIN_USE_64_BIT_INODE
diff --git a/po/ca.gmo b/po/ca.gmo
index 865b6cf..e356fe7 100644
Binary files a/po/ca.gmo and b/po/ca.gmo differ
diff --git a/po/ca.po b/po/ca.po
index ff5ceb2..1e896f5 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.1.3h\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2016-12-18 19:51+0100\n"
 "Last-Translator: Walter Garcia-Fontes <address@hidden>\n"
 "Language-Team: Catalan <address@hidden>\n"
@@ -149,11 +149,11 @@ msgid "duplicate `default' detected in switch body"
 msgstr ""
 "s'ha detectat el cas predeterminat `default' duplicat a l'expressió switch "
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "no es permet `break' a fora d'un bucle o bifurcació"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "no es permet `continue' a fora d'un bucle"
 
@@ -204,7 +204,7 @@ msgstr "expressi
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "expressió regular a l'esquerra de l'operador `~' o `!~'"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr ""
 "l'antic awk no dóna suport a la paraula clau `in' excepte després de `for'"
@@ -222,325 +222,325 @@ msgstr "`getline' sense redirigir no 
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "`getline' no redirigit sense definir dintre de l'acció FINAL"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "l'antic awk no suporta matrius multidimensionals"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "la crida de `length' sense parèntesis no és portable"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "les crides a funcions indirectes són una extensió gawk"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, 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:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "s'ha intentat usar la no-funció «%s» en una crida a funcions"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "expressió de subíndex no vàlida"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "advertiment: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "fatal: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "nova línia inesperada o final d'una cadena de caràcters"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "no es pot obrir el fitxer font `%s' per a lectura (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, 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:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "motiu desconegut"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr "no es pot incloure `%s' i usar-lo com un fitxer de programa"
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "ja s'ha inclòs el fitxer font `%s'"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "ja s'ha carregat la biblioteca compartida `%s'"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include és una extensió de gawk"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "nom de fitxer buit després de @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load és una extensió de gawk"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "fitxer buit després de @load"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "el text del programa en la línia de comandaments està buit"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "no es pot llegir el fitxer font `%s' (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "el fitxer font `%s' està buit"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "Error PEBKAC: caràcter «\\%03o'» no vàlid al codi font"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "el fitxer font no finalitza amb un retorn de carro"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "expressió regular sense finalitzar acaba amb `\\' al final del fitxer"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "%s: %d: el modificador regex tawk `/.../%c' no funciona a gawk"
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "el modificador regex tawk `/.../%c' no funciona a gawk"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "expressió regular sense finalitzar"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "expressió regular sense finalitzar al final del fitxer"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "l'ús de `\\ #...' com a continuació de línia no és portable"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "la barra invertida no és l'últim caràcter en la línia"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "les matrius multidimensionals són una extensió gawk"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX no permet l'operador `**='"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "l'antic awk no suporta l'operador `**='"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX no permet l'operador `**'"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "l'antic awk no suporta l'operador `**='"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "l'operador `^=' no està suportat en l'antic awk"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "l'operador `^' no està suportat en l'antic awk"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "cadena sense finalitzar"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 #, fuzzy
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX no permet seqüències d'escapada `\\x'"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 #, fuzzy
 msgid "backslash string continuation is not portable"
 msgstr "l'ús de `\\ #...' com a continuació de línia no és portable"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "caràcter `%c' no vàlid en l'expressió"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "`%s' és una extensió de gawk"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX no permet «%s»"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "`%s' no està suportat en l'antic awk"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 #, fuzzy
 msgid "`goto' considered harmful!"
 msgstr "`goto' es considera perjudicial!\n"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d no és vàlid com a nombre d'arguments per a %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, 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:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "%s el tercer paràmetre no és un objecte intercanviable"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: el tercer argument és una extensió de gawk"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: el segon argument és una extensió de gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "l'ús de dcgettext(_\"...\") no és correcte: elimineu el guió baix inicial"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "l'ús de dcgettext(_\"...\") no és correcte: elimineu el guió baix inicial"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "índex: no es permet una constant regexp com a segon argument"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "funció `%s': paràmetre `%s' ofusca la variable global"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "no es pot obrir `%s' per a escriptura (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "s'està enviant la llista de variables a l'eixida d'error estàndard"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: tancament erroni (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() s'ha cridat dues vegades!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "hi ha hagut variables a l'ombra"
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "nom de la funció `%s' definida prèviament"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, 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 paràmetre"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, 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 paràmetre de "
 "funció"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, fuzzy, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "funció `%s': paràmetre `%s' ofusca la variable global"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "funció `%s': paràmetre #%d, `%s', duplica al paràmetre #%d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "es crida a la funció `%s' però no s'ha definit"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, 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:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr ""
 "l'expressió regular constant per al paràmetre #%d condueix a un valor booleà"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -549,66 +549,66 @@ 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:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "s'ha intentat una divisió per zero"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "s'ha intentat una divisió per zero en `%%'"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 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:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "destí no vàlid d'assignació (opcode %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include és una extensió de gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1036,104 +1036,104 @@ msgid "rshift(%f, %f): too large shift value will 
give strange results"
 msgstr ""
 "rshift(%f, %f): un valor de desplaçament massa gran donarà resultats estranys"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: cridat amb menys de dos arguments"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "exp: l'argument %d no és numèric"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, fuzzy, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: l'argument %d amb valor negatiu %g donarà resultats estranys"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: cridat amb menys de dos arguments"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: l'argument %d no és numèric"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, fuzzy, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: l'argument %d amb valor negatiu %g donarà resultats estranys"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xort: cridat amb menys de dos arguments"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: l'argument %d no és numèric"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, fuzzy, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: l'argument %d del valor negatiu %g donarà resultats estranys"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: s'ha rebut un argument que no és numèric"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): el valor negatiu donarà resultats estranys"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): el valor fraccionari serà truncat"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s' no és una categoria local vàlida"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: el tercer argument no és una matriu"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: el primer argument rebut no és numèric"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "lshift: el segon argument rebut no és numèric"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "s'ha intentat una divisió per zero"
 
-#: builtin.c:4046
+#: builtin.c:4040
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: el segon argument no és una matriu"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "opció: paràmetre no vàlid - \"%s\""
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -3618,27 +3618,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipus desconegut de redireccionament %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, fuzzy, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "la seqüència d'escapada `\\%c' és tractada com a una simple `%c'"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "el component regexp `%.*s' probablement hauria de ser `[%.*s]'"
@@ -3807,12 +3807,12 @@ msgstr ") o \\) desemparellats"
 msgid "No previous regular expression"
 msgstr "No hi ha una expressió regular prèvia"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr "funció %s»: no es pot usar la funció `%s' com a nom de paràmetre"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "no es pot mostrar el context principal"
 
diff --git a/po/da.gmo b/po/da.gmo
index 56207c0..92a21d8 100644
Binary files a/po/da.gmo and b/po/da.gmo differ
diff --git a/po/da.po b/po/da.po
index 50f5dbd..d4d5b31 100644
--- a/po/da.po
+++ b/po/da.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.1.1d\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2015-05-18 12:37+0200\n"
 "Last-Translator: Keld Simonsen <address@hidden>\n"
 "Language-Team: Danish <address@hidden>\n"
@@ -144,11 +144,11 @@ msgstr "dublet case-v
 msgid "duplicate `default' detected in switch body"
 msgstr "dublet 'default' opdaget i switch-krop"
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "'break' uden for en løkke eller switch er ikke tilladt"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "'continue' uden for en løkke er ikke tilladt"
 
@@ -200,7 +200,7 @@ msgstr "regul
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "regulært udtryk på venstre side af en '~'- eller '!~'-operator"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr ""
 "gamle versioner af awk understøtter ikke nøgleordet 'in' undtagen efter 'for'"
@@ -218,327 +218,327 @@ msgstr "ikke-omdirigeret 'getline' ugyldig inden i 
'%s'-regel"
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "ikke-omdirigeret 'getline' udefineret inden i END-handling"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "gamle versioner af awk understøtter ikke flerdimensionale array"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "kald af 'length' uden parenteser er ikke portabelt"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "indirekte funktionskald er en gawk-udvidelse"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr "kan ikke bruge specialvariabel '%s' til indirekte funktionskald"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "forsøg på at bruge ikke-funktionen '%s' som et funktionskald"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "ugyldigt indeksudtryk"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "advarsel: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "fatal: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "uventet nylinjetegn eller strengafslutning"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "kan ikke åbne kildefilen '%s' for læsning (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr "kan ikke åbne delt bibliotek '%s' for læsning (%s)"
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "ukendt årsag"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr ""
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "allerede inkluderet kildefil '%s'"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "allerede indlæst delt bibliotek '%s'"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include er en gawk-udvidelse"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "tomt filnavn efter @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load er en gawk-udvidelse"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "tomt filnavn efter @load"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "tom programtekst på kommandolinjen"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "kan ikke læse kildefilen '%s' (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "kildefilen '%s' er tom"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr ""
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "kildefilen slutter ikke med en ny linje"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "uafsluttet regulært udtryk slutter med '\\' i slutningen af filen"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, 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:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "regex-ændringstegn '/.../%c' fra tawk virker ikke i gawk"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "uafsluttet regulært udtryk"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "uafsluttet regulært udtryk i slutningen af filen"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "brug af '\\ #...' for linjefortsættelse er ikke portabelt"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "sidste tegn på linjen er ikke en omvendt skråstreg"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 #, fuzzy
 msgid "multidimensional arrays are a gawk extension"
 msgstr "indirekte funktionskald er en gawk-udvidelse"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX tillader ikke operatoren '**='"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "gamle versioner af awk understøtter ikke operatoren '**='"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX tillader ikke operatoren '**'"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "gamle versioner af awk understøtter ikke operatoren '**'"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "operatoren '^=' understøttes ikke i gamle versioner af awk"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "operatoren '^' understøttes ikke i gamle versioner af awk"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "uafsluttet streng"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 #, fuzzy
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX tillader ikke '\\x'-kontrolsekvenser"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 #, fuzzy
 msgid "backslash string continuation is not portable"
 msgstr "brug af '\\ #...' for linjefortsættelse er ikke portabelt"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "ugyldigt tegn '%c' i udtryk"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "'%s' er en gawk-udvidelse"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX tillader ikke '%s'"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "'%s' understøttes ikke i gamle versioner af awk"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 #, fuzzy
 msgid "`goto' considered harmful!"
 msgstr "'goto' anses for skadelig!\n"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d er et ugyldigt antal argumenter for %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, 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:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "%s: tredje argument er ikke et ændringsbart objekt"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: tredje argument er en gawk-udvidelse"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: andet argument er en gawk-udvidelse"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "brug af dcgettext(_\"...\") er forkert: fjern det indledende "
 "understregningstegn"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "brug af dcgettext(_\"...\") er forkert: fjern det indledende "
 "understregningstegn"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: regexp-konstant som andet argument er ikke tilladt"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "funktionen '%s': parameteren '%s' overskygger en global variabel"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "kunne ikke åbne '%s' for skrivning (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "sender variabelliste til standard fejl"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: lukning mislykkedes (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() kaldt to gange!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "der var skyggede variable."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "funktionsnavnet '%s' er allerede defineret"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr "funktionen '%s': kan ikke bruge funktionsnavn som parameternavn"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, 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:5092
+#: awkgram.y:5094
 #, fuzzy, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "funktionen '%s': parameteren '%s' overskygger en global variabel"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "funktionen '%s': parameter %d, '%s', er samme som parameter %d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "funktionen '%s' kaldt, men aldrig defineret"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "funktionen '%s' defineret, men aldrig kaldt direkte"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "konstant regulært udtryk for parameter %d giver en boolesk værdi"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -547,64 +547,64 @@ msgstr ""
 "funktionen '%s' kaldt med blanktegn mellem navnet og '(',\n"
 "eller brugt som en variabel eller et array"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "forsøgte at dividere med nul"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "forsøgte at dividere med nul i '%%'"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, fuzzy, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "%d er et ugyldigt antal argumenter for %s"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include er en gawk-udvidelse"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1014,104 +1014,104 @@ msgstr "rshift(%f, %f): kommatalsv
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): for stor skifteværdi vil give mærkelige resultater"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: kaldt med mindre end to argumenter"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argumentet %d er ikke-numerisk"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, fuzzy, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: argument %d negativ værdi %g vil give mærkelige resultater"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: kaldt med mindre end to argumenter"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argumentet %d er ikke-numerisk"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, fuzzy, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: argument %d negativ værdi %g vil give mærkelige resultater"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "zor: kaldt med mindre end to argumenter"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argumentet %d er ikke-numerisk"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, fuzzy, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: argument %d negativ værdi %g vil give mærkelige resultater"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: fik et ikke-numerisk argument"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): negativ værdi vil give mærkelige resultater"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): kommatalsværdi vil blive trunkeret"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: '%s' er ikke en gyldig lokalitetskategori"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: tredje argument er ikke et array"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: fik et ikke-numerisk første argument"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "and: fik et ikke-numerisk andet argument"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "forsøgte at dividere med nul"
 
-#: builtin.c:4046
+#: builtin.c:4040
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: andet argument er ikke et array"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "flag: ugyldig parameter - \"%s\""
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -3511,27 +3511,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: uykendt omdirigeringstype %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, fuzzy, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "kontrolsekvensen '\\%c' behandlet som kun '%c'"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "regexp-komponent `%.*s' skulle nok være `[%.*s]'"
@@ -3701,12 +3701,12 @@ msgstr "Ubalanceret ) eller \\)"
 msgid "No previous regular expression"
 msgstr "Intet foregående regulært udtryk"
 
-#: symbol.c:688
+#: symbol.c:691
 #, fuzzy, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr "funktionen '%s': kan ikke bruge funktionsnavn som parameternavn"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr ""
 
diff --git a/po/de.gmo b/po/de.gmo
index ba572f3..b50d267 100644
Binary files a/po/de.gmo and b/po/de.gmo differ
diff --git a/po/de.po b/po/de.po
index a2abe87..9cd7438 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.1.64\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2017-09-18 09:08+0200\n"
 "Last-Translator: Philipp Thomas <address@hidden>\n"
 "Language-Team: German <address@hidden>\n"
@@ -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:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 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:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "»continue« ist außerhalb einer Schleife nicht zulässig"
 
@@ -204,7 +204,7 @@ msgstr "Regulärer Ausdruck auf der rechten Seite einer 
Zuweisung"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "Regulärer Ausdruck links vom »~«- oder »!~«-Operator"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "Das alte awk unterstützt das Schlüsselwort »in« nur nach »for«"
 
@@ -222,337 +222,337 @@ msgid "non-redirected `getline' undefined inside END 
action"
 msgstr ""
 "Nicht-umgelenktes »getline« ist innerhalb der END-Aktion nicht definiert"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "Das alte awk unterstützt keine mehrdimensionalen Felder"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "Aufruf von »length« ohne Klammern ist nicht portabel"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "indirekte Funktionsaufrufe sind eine gawk-Erweiterung"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr ""
 "die besondere Variable „%s“ kann nicht für den indirekten 
Funktionsaufruf "
 "verwendet werden"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "es wird versucht, „%s“ als Funktion aufzurufen, obwohl es keine 
ist"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "Ungültiger Index-Ausdruck"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "Warnung: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "Fatal: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "Unerwarteter Zeilenumbruch oder Ende der Zeichenkette"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "Quelldatei „%s“ kann nicht zum Lesen geöffnet werden (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr ""
 "Die dynamische Bibliothek „%s“ kann nicht zum Lesen geöffnet werden (%s)"
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "Unbekannte Ursache"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr "„%s“ kann nicht eingebunden und als Programmdatei verwendet werden"
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "Quelldatei „%s“ wurde bereits eingebunden"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "Die dynamische Bibliothek „%s“ wurde bereits eingebunden"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "»@include« ist eine gawk-Erweiterung"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "leerer Dateiname nach @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "»@load« ist eine Gawk-Erweiterung"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "leerer Dateiname nach @load"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "Kein Programmtext auf der Kommandozeile"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "Die Quelldatei „%s“ kann nicht gelesen werden (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "Die Quelldatei „%s“ ist leer"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "PEBKAC Fehler: ungültiges Zeichen „\\%03o“ im Quellcode"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "Die Quelldatei hört nicht mit einem Zeilenende auf"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 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:3679
+#: awkgram.y:3681
 #, 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:3683
+#: awkgram.y:3685
 #, 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:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "Nicht beendeter regulärer Ausdruck"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "Nicht beendeter regulärer Ausdruck am Dateiende"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr ""
 "Die Verwendung von »\\#...« zur Fortsetzung von Zeilen ist nicht portabel"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "das letzte Zeichen auf der Zeile ist kein Backslash (»\\«)"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "mehrdimensionale Felder sind eine Gawk-Erweiterung"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX erlaubt den Operator »**=« nicht"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "Das alte awk unterstützt den Operator »**=« nicht"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX erlaubt den Operator »**« nicht"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "Das alte awk unterstützt den Operator »**« nicht"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "Das alte awk unterstützt den Operator »^=« nicht"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "Das alte awk unterstützt den Operator »^« nicht"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "Nicht beendete Zeichenkette"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 #, fuzzy
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX erlaubt keine »\\x«-Escapes"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 #, fuzzy
 msgid "backslash string continuation is not portable"
 msgstr ""
 "Die Verwendung von »\\#...« zur Fortsetzung von Zeilen ist nicht portabel"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "Ungültiges Zeichen »%c« in einem Ausdruck"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "„%s“ ist eine gawk-Erweiterung"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX erlaubt „%s“ nicht"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "„%s“ wird im alten awk nicht unterstützt"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 #, fuzzy
 msgid "`goto' considered harmful!"
 msgstr "»goto« gilt als schlechter Stil!\n"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "Unzulässige Argumentzahl %d für %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, 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:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "Der dritte Parameter von %s ist ein unveränderliches Objekt"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: Das dritte Argument ist eine gawk-Erweiterung"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: Das zweite Argument ist eine gawk-Erweiterung"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "Fehlerhafte Verwendung von dcgettext(_\"...\"): \n"
 "Entfernen Sie den führenden Unterstrich"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "Fehlerhafte Verwendung von dcngettext(_\"...\"): \n"
 "Entfernen Sie den führenden Unterstrich"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: eine Regexp-Konstante als zweites Argument ist unzulässig"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "Funktion „%s“: Parameter „%s“ verdeckt eine globale Variable"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "„%s“ kann nicht zum Schreiben geöffne werden(%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "Die Liste der Variablen wird auf der Standardfehlerausgabe ausgegeben"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: close ist gescheitert (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() zweimal aufgerufen!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "es sind verdeckte Variablen vorhanden"
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "Funktion „%s“ wurde bereits definiert"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, 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:5088
+#: awkgram.y:5090
 #, 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:5092
+#: awkgram.y:5094
 #, fuzzy, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "Funktion „%s“: Parameter „%s“ verdeckt eine globale Variable"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "Funktion „%s“: Parameter #%d, „%s“ wiederholt Parameter #%d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "Aufgerufene Funktion „%s“ ist nirgends definiert"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "Funktion „%s“ wurde definiert aber nirgends aufgerufen"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, 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:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -561,66 +561,66 @@ msgstr ""
 "Funktion „%s“ wird mit Leerzeichen zwischen Name und »(« aufgerufen, \n"
 "oder als Variable oder Feld verwendet"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "Division durch Null wurde versucht"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "Division durch Null versucht in »%%«"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 "dem Ergebnis eines Feld-Postinkrementausdruck kann kein Wert zugewiesen "
 "werden"
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "Unzulässiges Ziel für eine Zuweisung (Opcode %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "»@include« ist eine gawk-Erweiterung"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1048,89 +1048,89 @@ msgstr ""
 "rshift(%f, %f): Zu große Shift-Werte werden zu merkwürdigen Ergebnissen "
 "führen"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: wird mit weniger als zwei Argumenten aufgerufen"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: das Argument %d ist nicht numerisch"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: der negative Wert %2$g von Argument %1$d ist unzulässig"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: wird mit weniger als zwei Argumenten aufgerufen"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: das Argument %d ist nicht numerisch"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: der negative Wert %2$g von Argument %1$d ist unzuässig"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: wird mit weniger als zwei Argumenten aufgerufen"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: das Argument %d ist nicht numerisch"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: der negative Wert %2$g von Argument %1$d ist unzulässig"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: das erste Argument ist keine Zahl"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): Der negative Wert ist unzulässig"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): der Dezimalteil wird abgeschnitten"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: „%s“ ist keine gültige Locale-Kategorie"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: das dritte Argument ist kein Feld"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: das erste Argument ist keine Zahl"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: das zweite Argument ist keine Zahl"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: Division durch Null wurde versucht"
 
-#: builtin.c:4046
+#: builtin.c:4040
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: das zweite Argument ist kein Feld"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
@@ -1138,12 +1138,12 @@ msgstr ""
 "typeof fand die unzulässige Kombination von Kennungen „%s”; Bitte senden 
Sie "
 "einen Fehlerbericht."
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: ungültiger Parametertyp „%s“"
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: unbekannter Parametrttyp „%s”"
@@ -3653,27 +3653,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: unbekannter Umlenkungstyp %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, fuzzy, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "Fluchtsequenz »\\%c« wird wie ein normales »%c« behandelt"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
@@ -3843,13 +3843,13 @@ msgstr ") oder \\) werden nicht geöffnet"
 msgid "No previous regular expression"
 msgstr "Kein vorangehender regulärer Ausdruck"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr ""
 "Funktion „%s“: Funktionsname „%s“ kann nicht als Parametername 
benutzt werden"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "der Hauptkontext kann nicht entfernt werden"
 
diff --git a/po/es.gmo b/po/es.gmo
index 39a222d..8a21cbd 100644
Binary files a/po/es.gmo and b/po/es.gmo differ
diff --git a/po/es.po b/po/es.po
index 1fd5061..2d2a375 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.2.0e\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2018-03-24 17:48+0200\n"
 "Last-Translator: Francisco Javier Serrador <address@hidden>\n"
 "Language-Team: Spanish <address@hidden>\n"
@@ -148,11 +148,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:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "no se permite `break' fuera de un bucle o switch"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "`continue' no se permite fuera de un bucle"
 
@@ -203,7 +203,7 @@ msgstr "expreg del lado derecho de asignación"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "expreg `~' o `!~' a la izquierda del operador"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr ""
 "el awk antiguo no admite la palabra clave `in' excepto después de `for'"
@@ -221,330 +221,330 @@ msgstr "`getline' no redirigido es inválido dentro de 
regla «%s»"
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "`getline' no redirigido indefinido dentro de la acción de END"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "el awk antiguo no admite matrices multidimensionales"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "la llamada de `length' sin paréntesis no es transportable"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "las llamadas indirectas a función son una extensión de gawk"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr ""
 "la variable especial «%s» no se puede usar como llamada indirecta a 
función"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "trata utilizar una no-función «%s» dentro de llamada de función"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "expresión de subíndice inválida"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "aviso: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "fatal: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "nueva línea o fin de la cadena inesperados"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "no puede abrir el fichero fuente «%s» para lectura (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr "no puede abrir biblioteca «%s» compartida para lectura (%s)"
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "razón desconocida"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr "no puede incluir «%s» y emplearla como un fichero de programa"
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "ya se incluyó el fichero fuente «%s»"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "ya caargada la biblioteca compartida «%s»"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include es una extensión de gawk"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "nombre de fichero vacío después de @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load es una extensión de gawk"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "nombre de fichero vacío después de @load"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "texto de programa vacío en la línea de órdenes"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "no puede leer el fichero fuente «%s» (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "el fichero fuente «%s» está vacío"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "Error PEBKAC: carácter inválido '\\%03o' en código fuente"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "el fichero fuente no termina con línea nueva"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "expreg sin terminar finaliza con `\\` al final del fichero"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, 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:3683
+#: awkgram.y:3685
 #, 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:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "expreg sin terminar"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "expreg sin terminar al final del fichero"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "la utilización de la continuación de línea `\\ #…' no es 
transportable"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "barra invertida no es el último caracter en la línea"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "matrices multidimensionales son una extensión de gawk"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX no permite el operador `**='"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "el awk antiguo no admite el operador `**='"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX no permite el operador `**'"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "el awk antiguo no admite el operador `**'"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "el operador `^=' no se admite en el awk antiguo"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "el operador `^' no se admite en el awk antiguo"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "cadena sin terminar"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 #, fuzzy
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX no permite `\\x' como escapes"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 #, fuzzy
 msgid "backslash string continuation is not portable"
 msgstr "la utilización de la continuación de línea `\\ #…' no es 
transportable"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "carácter «%c» inválido en la expresión"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "«%s» es una extensión de gawk"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX no permite «%s»"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "«%s» no se admite en el awk antiguo"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 #, fuzzy
 msgid "`goto' considered harmful!"
 msgstr "¡`goto' se considera dañino!\n"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, 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:4598
+#: awkgram.y:4600
 #, 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:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "el tercer argumento de %s no es un objecto modificable"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: el tercer argumento es una extensión de gawk"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: el segundo argumento es una extensión de gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "la utilización de dcgettext(_\"…\") es incorrecta: quite el subrayado 
inicial"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "la utilización de dcngettext(_\"…\") es incorrecta: quite el subrayado "
 "inicial"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "indizado: expreg constante como segundo argumento no está permitido"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "función «%s»: parámetro «%s» oscurece la variable global"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "no se puede abrir «%s» para escritura (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "se envía la lista de variables a la salida común de error"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: fallado close (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "¡se llamó shadow_funcs() dos veces!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "hay variables opacadas."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "el nombre de función «%s» se definió previamente"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, 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:5088
+#: awkgram.y:5090
 #, 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:5092
+#: awkgram.y:5094
 #, fuzzy, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "función «%s»: parámetro «%s» oscurece la variable global"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, 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:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "se llamó a la función «%s» pero nunca se definió"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "se definió la función «%s» pero nunca se llamó directamente"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "expreg constante para el parámetro #%d da un valor booleano"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -553,65 +553,65 @@ msgstr ""
 "se llamó a la función «%s» con espacio entre el nombre y el `(',\n"
 "o se usó como una variable o una matriz"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "se intentó una división entre cero"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "se intentó una división entre cero en `%%'"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 "no puede asignar un valor al resultado de un campo expresión 
post-intremental"
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "objetivo inválido de asignación (codigo op %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include es una extensión de gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1042,89 +1042,89 @@ msgstr ""
 "rshift(%f, %f): un valor de desplazamiento muy grande dará resultados "
 "extraños"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: llamado con menos de dos argumentos"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "y: argumento %d es no-numérico"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "y: argumento negativo %d valorador %g no está permitido"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "o: llamado con menos de dos argumentos"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "o: argumento %d es no numérico"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "o: argumento negativo %d valorador %g no está permitido"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "oex: llamado con menos de dos argumentos"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "oex: argumento %d es no-numérico"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "oex: argumento negativo %d valorado %g no está permitido"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: se recibió un argumento que no es númerico"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): valor negativo no está permitido"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): valor fraccional será truncado"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: «%s» no es una categoría local válida"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: tercer argumento no es una matriz"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: primer argumento recibido es no-númerico"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: segundo argumento recibido no es númerico"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: intentado división entre cero"
 
-#: builtin.c:4046
+#: builtin.c:4040
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: el segundo argumento no es una matriz"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
@@ -1132,12 +1132,12 @@ msgstr ""
 "typeof detectado inválidas marcas combinadas «%s»; envíe un reporte de "
 "defecto."
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "tipode: tipo de argumento inválido «%s»"
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "tipode: tipo de argumento inválido «%s»"
@@ -3612,27 +3612,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipo de redirección %d desconocida"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, fuzzy, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "la secuencia de escape `\\%c' tratada como una simple `%c'"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
@@ -3802,13 +3802,13 @@ msgstr ") o \\) desemparejados"
 msgid "No previous regular expression"
 msgstr "No hay una expresión regular previa"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr ""
 "función «%s»: no se puede usar una función «%s» como nombre 
paramétrico"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "no puede extraer por arriba el contexto principal"
 
diff --git a/po/fi.gmo b/po/fi.gmo
index 5007e58..5ae7e0e 100644
Binary files a/po/fi.gmo and b/po/fi.gmo differ
diff --git a/po/fi.po b/po/fi.po
index 49aecdd..361db7e 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.1.62\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2017-08-19 12:18+0300\n"
 "Last-Translator: Jorma Karvonen <address@hidden>\n"
 "Language-Team: Finnish <address@hidden>\n"
@@ -147,11 +147,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:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "”break” ei ole sallittu silmukan tai switch-lauseen ulkopuolella"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "”continue” ei ole sallittu silmukan ulkopuolella"
 
@@ -202,7 +202,7 @@ msgstr "säännöllinen lauseke sijoituksen oikealla 
puolella"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "säännöllinen lauseke ”~”- tai ”!~”-operaattorin vasemmalla 
puolella"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "vanha awk ei tue avainsanaa ”in” paitsi ”for”-sanan jälkeen"
 
@@ -219,323 +219,323 @@ msgstr "edelleenohjaamaton ”getline” virheellinen 
”%s”-säännön sisäl
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "edelleenohjaamaton ”getline” määrittelemätön END-toiminnon 
sisällä"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "vanha awk ei tue moniulotteisia taulukkoja"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "”length”-kutsu ilman sulkumerkkejä ei ole siirrettävä"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "epäsuorat funktiokutsut ovat gawk-laajennus"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr "erikoismuuttujan ”%s” käyttö epäsuoralle funktiokutsulle 
epäonnistui"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "yritys käyttää ei-funktio ”%s” funktiokutsussa"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "virheellinen indeksointilauseke"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "varoitus: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "tuhoisa: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "odottamaton rivinvaihto tai merkkijonon loppu"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "lähdetiedoston ”%s” avaaminen lukemista varten (%s) epäonnistui"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr "jaetun kirjaston ”%s” avaaminen lukemista varten (%s) epäonnistui"
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "syy tuntematon"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, 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:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "on jo sisällytetty lähdetiedostoon ”%s”"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "jaettu kirjasto ”%s” on jo ladattu"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include on gawk-laajennus"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "tyhjä tiedostonimi @include:n jälkeen"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load on gawk-laajennus"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "tyhjä tiedostonimi @load:n jälkeen"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "tyhjä ohjelmateksti komentorivillä"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "lähdetiedoston ”%s” (%s) lukeminen epäonnistui"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "lähdetiedosto ”%s” on tyhjä"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "PEBKAC-virhe: virheellinen merkki ’\\%03o’ lähdekoodissa"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "lähdetiedoston lopussa ei ole rivinvaihtoa"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr ""
 "päättämätön säännöllinen lauseke loppuu ”\\”-merkkeihin tiedoston 
lopussa"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, 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:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "tawkin regex-määre ”/.../%c” ei toimi gawkissa"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "päättämätön säännöllinen lauseke"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "päättämätön säännöllinen lauseke tiedoston lopussa"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "”\\ #...”-rivijatkamisen käyttö ei ole siirrettävä"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "kenoviiva ei ole rivin viimeinen merkki"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "moniulotteiset taulukot ovat gawk-laajennus"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX ei salli operaattoria ”**=”"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "vanha awk ei tue operaattoria ”**=”"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX ei salli operaattoria ”**”"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "vanha awk ei tue operaattoria ”**”"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "operaattoria ”^=” ei tueta vanhassa awk:ssa"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "operaattoria ”^” ei tueta vanhassa awk:ssa"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "päättämätön merkkijono"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 #, fuzzy
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX ei salli ”\\x”-koodinvaihtoja"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 #, fuzzy
 msgid "backslash string continuation is not portable"
 msgstr "”\\ #...”-rivijatkamisen käyttö ei ole siirrettävä"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "virheellinen merkki ’%c’ lausekkeessa"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "”%s” on gawk-laajennus"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX ei salli operaattoria ”%s”"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "”%s” ei ole tuettu vanhassa awk-ohjelmassa"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 #, fuzzy
 msgid "`goto' considered harmful!"
 msgstr "”goto”-käskyä pidetään haitallisena!\n"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d on virheellinen argumenttilukumäärä operaattorille %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
 msgstr ""
 "%s: merkkijonoliteraalilla ei ole vaikutusta korvauksen viimeisenä "
 "argumenttina"
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "%s kolmas parametri ei ole vaihdettava objekti"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: kolmas argumentti on gawk-laajennus"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: toinen argumentti on gawk-laajennus"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr "dcgettext(_\"...\")-käyttö on virheellinen: poista alaviiva alusta"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr "dcngettext(_\"...\")-käyttö on virheellinen: poista alaviiva alusta"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "indeksi: regexp-vakio toisena argumenttina ei ole sallitttu"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "funktio ”%s”: parametri ”%s” varjostaa yleismuuttujaa"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "tiedoston ”%s” avaaminen kirjoittamista varten (%s) epäonnistui"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "lähetetään muuttujaluettelo vakiovirheeseen"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: sulkeminen epäonnistui (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() kutsuttu kahdesti!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "siellä oli varjostettuja muuttujia."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "funktionimi ”%s” on jo aikaisemmin määritelty"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr "funktio ”%s”: funktionimen käyttö parametrinimenä epäonnistui"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, 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"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, fuzzy, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "funktio ”%s”: parametri ”%s” varjostaa yleismuuttujaa"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "funktio ”%s”: parametri #%d, ”%s”, samanlainen parametri #%d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "funktiota ”%s” kutsuttiin, mutta sitä ei ole koskaan määritelty"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "funktio ”%s” määriteltiin, mutta sitä ei ole koskaan kutsuttu 
suoraan"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "säännöllisen lausekkeen vakio parametrille #%d antaa boolean-arvon"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -544,65 +544,65 @@ msgstr ""
 "funktio ”%s” kutsuttu välilyönnillä nimen ja ”(”-merkin\n"
 "välillä, tai käytetty muuttujana tai taulukkona"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "nollalla jakoa yritettiin"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "jakoa nollalla yritettiin operaattorissa ”%%”"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 "arvon sijoittaminen kenttäjälkikasvatuslausekkeen tulokseen epäonnistui"
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "virheellinen sijoituskohde (käskykoodi %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include on gawk-laajennus"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1027,100 +1027,100 @@ msgstr "rshift(%f, %f): jaosarvot typistetään"
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): liian suuri siirrosarvo antaa outoja tuloksia"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: kutsuttu vähemmällä kuin kahdella argumentilla"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argumentti %d ei ole numeeraaliargumentti"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: argumentin %d negatiivinen arvo %g ei ole sallittu"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: kutsuttu vähemmällä kuin kahdella argumentilla"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argumentti %d ei ole numeraaliargumentti"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: argumentin %d negatiivinen arvo %g ei ole sallittu"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: kutsuttu vähemmällä kuin kahdella argumentilla"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argumentti %d ei ole numeraaliargumentti"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: argumentin %d negatiivinen arvo %g ei ole sallittu"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): negatiivinen arvo ei ole sallittu"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): jaosarvo typistetään"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: ”%s” ei ole kelvollinen paikallinen kategoria"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: kolmas argumentti ei ole taulukko"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: toinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: nollalla jakoa yritettiin"
 
-#: builtin.c:4046
+#: builtin.c:4040
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: toinen argumentti ei ole taulukko"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: virheellinen argumenttityyppi ”%s”"
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, fuzzy, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: virheellinen argumenttityyppi ”%s”"
@@ -3594,27 +3594,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tuntematon edelleenohjaustyyppi %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, fuzzy, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "koodinvaihtosekvenssi ”\\%c” käsitelty kuin pelkkä ”%c”"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
@@ -3784,12 +3784,12 @@ msgstr "Pariton ) tai \\)"
 msgid "No previous regular expression"
 msgstr "Ei edellistä säännöllistä lauseketta"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr "funktio ”%s”: funktion ”%s” käyttö parametrinimenä 
epäonnistui"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "pääsisällön pop-toiminto epäonnistui"
 
diff --git a/po/fr.gmo b/po/fr.gmo
index 2ae1aeb..b804872 100644
Binary files a/po/fr.gmo and b/po/fr.gmo differ
diff --git a/po/fr.po b/po/fr.po
index 33f25fa..7abd0ed 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.2.63\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2019-03-02 23:58+0100\n"
 "Last-Translator: Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir."
 "org>\n"
@@ -139,11 +139,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:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 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:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "« continue » est interdit en dehors d'une boucle ou d'un switch"
 
@@ -195,7 +195,7 @@ msgstr "expression rationnelle à droite d'une affectation"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "expression rationnelle à gauche d'un opérateur « ~ » ou « !~ 
»"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "l'ancien awk n'autorise le mot-clef « in » qu'après « for »"
 
@@ -212,47 +212,47 @@ msgstr "un « getline » non redirigé n'est pas valide 
dans une règle « %s
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "dans une action END, un « getline » non redirigé n'est pas 
défini"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "l'ancien awk ne dispose pas des tableaux multidimensionnels"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "l'appel de « length » sans parenthèses n'est pas portable"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "les appels indirects de fonctions sont une extension gawk"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, 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"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "tentative d'appel de « %s » comme fonction"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "expression indice incorrecte"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "avertissement : "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "fatal : "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "fin de chaîne ou passage à la ligne inattendu"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
@@ -260,288 +260,288 @@ msgstr ""
 "fichiers sources et arguments doivent contenir des règles et fonctions "
 "complètes"
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "impossible d'ouvrir le fichier source « %s » en lecture (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, 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:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "raison inconnue"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, 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:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "le fichier source « %s » a déjà été intégré"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "la bibliothèque partagée « %s » est déjà chargée"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include est une extension gawk"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "Le nom de fichier après @include est vide"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load est une extension gawk"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "Le nom de fichier après @load est vide"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "le programme indiqué en ligne de commande est vide"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "impossible de lire le fichier source « %s » (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "le fichier source « %s » est vide"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "erreur bête : caractère incorrect « \\%03o » dans le code 
source"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "le fichier source ne se termine pas par un passage à la ligne"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr ""
 "expression rationnelle non refermée terminée par un « \\ » en fin de 
fichier"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, 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"
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, 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"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "expression rationnelle non refermée"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "expression rationnelle non refermée en fin de fichier"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr ""
 "l'utilisation de « \\ #... » pour prolonger une ligne n'est pas portable"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "la barre oblique inverse n'est pas le dernier caractère de la ligne"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "les tableaux multidimensionnels sont une extension gawk"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX n'autorise pas l'opérateur « **= »"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "l'ancien awk ne dispose pas de l'opérateur « **= »"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX n'autorise pas l'opérateur « ** »"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "l'ancien awk ne dispose pas de l'opérateur « ** »"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "l'ancien awk ne dispose pas de l'opérateur « ^= »"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "l'ancien awk ne dispose pas de l'opérateur « ^ »"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "chaîne non refermée"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX interdit les sauts de lignes physiques dans les chaînes"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 msgid "backslash string continuation is not portable"
 msgstr "prolonger une chaîne via une barre oblique inversée est non portable"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "caractère incorrect « %c » dans l'expression"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "« %s » est une extension gawk"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX n'autorise pas « %s »"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "l'ancien awk ne dispose pas de « %s »"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 msgid "`goto' considered harmful!"
 msgstr "« goto » est jugé dangereux !"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, 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:4598
+#: awkgram.y:4600
 #, 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"
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, 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:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match : le 3e argument est une extension gawk"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close : le 2e argument est une extension gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "utilisation incorrecte de dcgettext(_\"...\") : enlevez le souligné de 
tête"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "utilisation incorrecte de dcngettext(_\"...\") : enlevez le souligné de 
tête"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr ""
 "index : le second argument ne peut être une expression rationnelle 
constante"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "fonction « %s » : le paramètre « %s » masque la variable 
globale"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "impossible d'ouvrir « %s » en écriture (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "envoi de la liste des variables vers la sortie d'erreur standard"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s : échec de la fermeture (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadows_funcs() a été appelé deux fois !"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "il y avait des variables masquées."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "nom de fonction « %s » déjà défini"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, 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"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, 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"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr ""
 "fonction « %s » : le paramètre « %s » ne peut contenir un espace de 
noms"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, 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"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "fonction « %s » appelée sans être définie"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "fonction « %s » définie mais jamais appelée directement"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, 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:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -550,47 +550,47 @@ msgstr ""
 "fonction « %s » appelée avec un espace entre son nom\n"
 "et « ( », ou utilisée comme variable ou tableau"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "tentative de division par zéro"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "tentative de division par zéro dans « %% »"
 
 # gawk 'BEGIN { $1++ = 1 }'
-#: awkgram.y:5802
+#: awkgram.y:5804
 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:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "cible de l'assignement incorrecte (opcode %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 "identifiant %s : les noms qualifiés sont interdits en mode POSIX / "
 "traditionnel"
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 "identifiant %s : le séparateur d'espace de noms est « :: », et non « 
: »"
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "l'identifiant qualifié « %s » est mal formé"
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
@@ -598,13 +598,13 @@ msgstr ""
 "identifiant « %s » : le séparateur d'espace de noms ne peut apparaître 
"
 "qu'une fois"
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 "utiliser l'identifiant réservé « %s » comme espace de noms est interdit"
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
@@ -613,11 +613,11 @@ msgstr ""
 "utiliser l'identifiant réservé « %s » comme 2nd composant d'un nom 
qualifié "
 "est interdit"
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 msgid "@namespace is a gawk extension"
 msgstr "@namespace est une extension gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1040,88 +1040,88 @@ 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"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and : appelé avec moins de 2 arguments"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and : l'argument %d n'est pas numérique"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and : l'argument %d est négatif (%g) ce qui est interdit"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or : appelé avec moins de 2 arguments"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or : l'argument %d n'est pas numérique"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or : l'argument %d est négatif (%g) ce qui est interdit"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor : appelé avec moins de 2 arguments"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor : l'argument %d n'est pas numérique"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor : l'argument %d est négatif (%g) ce qui est interdit"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl : l'argument n'est pas numérique"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f) : les valeurs négatives sont interdites"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f) : les valeurs non entières seront tronquées"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, 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"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv : le 3e argument n'est pas un tableau"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv : le premier argument n'est pas numérique"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv : le second argument reçu n'est pas numérique"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv : tentative de division par zéro"
 
-#: builtin.c:4046
+#: builtin.c:4040
 msgid "typeof: second argument is not an array"
 msgstr "typeof : le 2e argument n'est pas un tableau"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
@@ -1129,12 +1129,12 @@ msgstr ""
 "typeof : utilisation de drapeaux incorrects « %s ». Merci de nous 
remonter "
 "l'erreur."
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof : type de paramètre incorrect « %s »"
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof : type d'argument inconnu « %s »"
@@ -3599,7 +3599,7 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str : type de redirection %d inconnu"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
@@ -3607,25 +3607,25 @@ msgstr ""
 "le comportement d'une exp. rationnelle incluant des caractères NUL est non "
 "défini pour POSIX"
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr "octet NUL invalide dans une exp. rationnelle dynamique"
 
-#: re.c:172
+#: re.c:174
 #, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr ""
 "séquence d'échappement d'exp. rationnelle « \\%c » traitée comme un 
simple "
 "« %c »"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 "séquence d'échappement d'exp. rationnelle « \\%c » n'est pas un 
opérateur "
 "connu"
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
@@ -3796,13 +3796,13 @@ msgstr ") ou \\) sans correspondance"
 msgid "No previous regular expression"
 msgstr "Aucune expression rationnelle précédente"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr ""
 "fonction « %s » : impossible d'utiliser la fonction « %s » comme 
paramètre"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "impossible de rétablir (pop) le contexte principal (main)"
 
diff --git a/po/gawk.pot b/po/gawk.pot
index 1740c94..b7e32c1 100644
--- a/po/gawk.pot
+++ b/po/gawk.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gawk 5.0.1\n"
+"Project-Id-Version: gawk 5.0.61\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -135,11 +135,11 @@ msgstr ""
 msgid "duplicate `default' detected in switch body"
 msgstr ""
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr ""
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr ""
 
@@ -189,7 +189,7 @@ msgstr ""
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr ""
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr ""
 
@@ -206,379 +206,379 @@ msgstr ""
 msgid "non-redirected `getline' undefined inside END action"
 msgstr ""
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr ""
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr ""
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr ""
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr ""
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr ""
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr ""
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr ""
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr ""
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr ""
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr ""
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr ""
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr ""
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr ""
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr ""
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr ""
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr ""
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr ""
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr ""
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr ""
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr ""
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr ""
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr ""
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr ""
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr ""
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr ""
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr ""
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr ""
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr ""
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr ""
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr ""
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr ""
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr ""
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr ""
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr ""
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr ""
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr ""
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr ""
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr ""
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr ""
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 msgid "POSIX does not allow physical newlines in string values"
 msgstr ""
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 msgid "backslash string continuation is not portable"
 msgstr ""
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr ""
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr ""
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr ""
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr ""
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 msgid "`goto' considered harmful!"
 msgstr ""
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr ""
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
 msgstr ""
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr ""
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr ""
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr ""
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr ""
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr ""
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr ""
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr ""
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr ""
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr ""
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr ""
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr ""
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr ""
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
 msgstr ""
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr ""
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr ""
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr ""
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr ""
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr ""
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
 "or used as a variable or an array"
 msgstr ""
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr ""
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr ""
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr ""
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 msgid "@namespace is a gawk extension"
 msgstr ""
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -981,99 +981,99 @@ msgstr ""
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr ""
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr ""
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr ""
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr ""
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr ""
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr ""
 
-#: builtin.c:4046
+#: builtin.c:4040
 msgid "typeof: second argument is not an array"
 msgstr ""
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr ""
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -3373,27 +3373,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr ""
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr ""
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
@@ -3562,11 +3562,11 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr ""
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr ""
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr ""
diff --git a/po/id.gmo b/po/id.gmo
index 7fbe309..ff2845c 100644
Binary files a/po/id.gmo and b/po/id.gmo differ
diff --git a/po/id.po b/po/id.po
index f62f1ef..438c7ed 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.1.0b\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2014-08-03 07:30+0700\n"
 "Last-Translator: Arif E. Nugroho <address@hidden>\n"
 "Language-Team: Indonesian <address@hidden>\n"
@@ -134,11 +134,11 @@ msgstr "duplikasi nilai case dalam tubuh switch: %s"
 msgid "duplicate `default' detected in switch body"
 msgstr "Duplikasi `default' terdeteksi dalam tubuh switch"
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "`break' diluar sebuah loop tidak diijinkan"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "`continue' diluar sebuah loop tidak diijinkan"
 
@@ -189,7 +189,7 @@ msgstr "ekspresi regular di penempatan kanan"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "ekspresi regular di kiri dari operator `~' atau `!~'"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "awk lama tidak mendukung kata kunci `in' kecuali setelah `for'"
 
@@ -206,328 +206,328 @@ msgstr "`getline' invalid inside `%s' rule"
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "tidak terdireksi `getline' tidak terdefinisi didalam aksi END"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "awk lama tidak mendukung array multi dimensi"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "panggilan dari `length' tanpa tanda kurung tidak portabel"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "indirect adalah sebuah ekstensi gawk"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr "tidak dapat menggunakan variabel `%s' sebagai fungsi parameter"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, fuzzy, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "mencoba untuk menggunakan fungsi `%s' sebagai sebuah array"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "ekspresi subscript tidak valid"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "peringatan: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "fatal: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "tidak terduga baris baru atau akhir dari string"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "tidak dapat membuka berkas sumber `%s' untuk pembacaan (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr "tidak dapat membuka berkas sumber `%s' untuk pembacaan (%s)"
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "alasan tidak diketahui"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr "can't include `%s' and use it as a program file"
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "tidak dapat membaca berkas sumber `%s'"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "already loaded shared library `%s'"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include adalah sebuah ekstensi gawk"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "empty filename after @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load adalah sebuah ekstensi gawk"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "empty filename after @load"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "aplikasi teks kosong di baris perintah"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "tidak dapat membaca berkas sumber `%s' (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "berkas sumber `%s' kosong"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr ""
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "berkas sumber tidak berakhir dalam baris baru"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "tidak terakhiri regexp akhir denga `\\' diakhir dari berkas"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "%s: %d: tawk regex pemodifikasi `/.../%c' tidak bekerja dalam gawk"
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "tawk regex pemodifikasi `/.../%c' tidak bekerja dalam gawk"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "tidak terselesaikan regexp"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "tidak terselesaikan di akhir dari berkas"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "penggunaan dari `\\ #...' kelanjutan baris tidak portabel"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "backslash bukan karakter terakhir di baris"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 #, fuzzy
 msgid "multidimensional arrays are a gawk extension"
 msgstr "indirect adalah sebuah ekstensi gawk"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX tidak mengijinkan operator `**='"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "awk lama tidak mendukung operator `**='"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX tidak mengijinkan operator `**'"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "awk lama tidak mendukung operator `**'"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "operator `^=' tidak didukung dalam awk lama"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "operator `^' tidak didukung dalam awk lama"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "string tidak terselesaikan"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 #, fuzzy
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX tidak mengijinkan escapes `\\x'"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 #, fuzzy
 msgid "backslash string continuation is not portable"
 msgstr "penggunaan dari `\\ #...' kelanjutan baris tidak portabel"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "karakter '%c' tidak valid dalam ekspresi"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "`%s' adalah sebuah ekstensi gawk"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX tidak mengijinkan `%s'"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "`%s' tidak didukung dalam awk lama"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 #, fuzzy
 msgid "`goto' considered harmful!"
 msgstr "`goto' dipertimbangkan berbahaya!\n"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d tidak valid sebagai jumlah dari argumen untuk %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
 msgstr ""
 "%s: literal string sebagai argumen terakhir dari pergantian tidak memiliki "
 "efek"
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "%s parameter ketika bukan sebuah objek yang dapat diubah"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "cocok: argumen ketiga adalah sebuah ekstensi gawk"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "tutup: argumen kedua adalah sebuah ekstensi gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "penggunaan dari dcgettext(_\"...\") adalah tidak benar: hapus garis bawah "
 "yang mengawali"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "penggunaan dari dcngettext(_\"...\") adalah tidak benar: hapus garis bawah "
 "yang mengawali"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: diterima argumen kedua bukan string"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "fungsi `%s': parameter `%s' bayangan variabel global"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "tidak dapat membuka `%s' untuk menulis (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "mengirim profile ke standar error"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: tutup gagal (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() dipanggil dua kali!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "disana tidak ada variabel bayangan."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "nama fungsi `%s' sebelumnya telah didefinisikan"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr ""
 "fungsi `%s': tidak dapat menggunakan nama fungsi sebagai nama parameter"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
 msgstr ""
 "fungsi `%s': tidak dapat menggunakan variabel `%s' sebagai fungsi parameter"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, fuzzy, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "fungsi `%s': parameter `%s' bayangan variabel global"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "fungsi `%s': parameter #%d, `%s', duplikasi paramter #%d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "fungsi `%s' dipanggil tetapi tidak pernah didefinisikan"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "fungsi `%s' didefinisikan tetapi tidak pernah dipanggil"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "konstanta regexp untuk parameter #%d menghasilkan nilai boolean"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -536,65 +536,65 @@ msgstr ""
 "fungsi `%s' dipanggil dengan spasi diantara nama dan `(',\n"
 "atau gunakan sebagai sebuah variabel atau sebuah array"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "pembagian dengan nol telah dicoba"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "pembagian dengan nol dicoba dalam `%%'"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 "cannot assign a value to the result of a field post-increment expression"
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "tidak valid sebagai jumlah dari argumen untuk %s"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include adalah sebuah ekstensi gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1009,104 +1009,104 @@ msgstr "rshift(%f, %f): nilai pecahan akan dipotong"
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): nilai shift terlalu besar akan memberikan hasil aneh"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: dipanggil dengan argumen negatif"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argumen %d diluar dari jangkauan"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, fuzzy, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: nilai %d negatif akan memberikan %g hasil aneh"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: dipanggil dengan argumen negatif"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argumen %d diluar dari jangkauan"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, fuzzy, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: nilai %d negatif akan memberikan %g hasil aneh"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: dipanggil dengan argumen negatif"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argumen %d diluar dari jangkauan"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, fuzzy, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: nilai %d negatif akan memberikan %g hasil aneh"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: diterima argumen bukan numerik"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): nilai negatif akan memberikan hasil aneh"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): nilai pecahan akan dipotong"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s' bukan sebuah kategori lokal yang valid"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: argumen ketiga bukan sebuah array"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: diterima argumen pertama tidak numerik"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "and: diterima argumen kedua bukan numerik"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "pembagian dengan nol telah dicoba"
 
-#: builtin.c:4046
+#: builtin.c:4040
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: argumen kedua bukan sebuah array"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "option: invalid parameter - \"%s\""
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -3520,27 +3520,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: unknown redirection type %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, fuzzy, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "escape sequence `\\%c' diperlakukan sebagai plain `%c'"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "regexp component `%.*s' should probably be `[%.*s]'"
@@ -3712,13 +3712,13 @@ msgstr "Tidak cocok ) atau \\)"
 msgid "No previous regular expression"
 msgstr "Tidak ada ekspresi regular sebelumnya"
 
-#: symbol.c:688
+#: symbol.c:691
 #, fuzzy, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr ""
 "fungsi `%s': tidak dapat menggunakan nama fungsi sebagai nama parameter"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "can not pop main context"
 
diff --git a/po/it.gmo b/po/it.gmo
index eba8293..75d3186 100644
Binary files a/po/it.gmo and b/po/it.gmo differ
diff --git a/po/it.po b/po/it.po
index 4c39115..19453dc 100644
--- a/po/it.po
+++ b/po/it.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU Awk 5.1.0, API: 3.0\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-07-22 10:32+0200\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2019-07-22 11:07+0100\n"
 "Last-Translator: Antonio Colombo <address@hidden>\n"
 "Language-Team: Italian <address@hidden>\n"
@@ -1033,88 +1033,88 @@ msgstr "rshift(%f, %f): valori decimali saranno 
troncati"
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): valori troppo alti daranno risultati strani"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: chiamata con meno di due argomenti"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: l'argomento %d non è numerico"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: argomento %d, valore negativo %g non consentito"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: chiamata con meno di due argomenti"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: l'argomento %d non è numerico"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: argomento %d, valore negativo %g non consentito"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: chiamata con meno di due argomenti"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: l'argomento %d non è numerico"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: argomento %d, valore negativo %g non consentito"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: l'argomento ricevuto non è numerico"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): valore negativo non consentito"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): valori decimali saranno troncati"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s' non è una categoria `locale' valida"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: il terzo argomento non è un vettore"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: il primo argomento ricevuto non è numerico"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: il secondo argomento ricevuto non è numerico"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: tentativo di dividere per zero"
 
-#: builtin.c:4046
+#: builtin.c:4040
 msgid "typeof: second argument is not an array"
 msgstr "typeof: il secondo argomento non è un vettore"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
@@ -1122,12 +1122,12 @@ msgstr ""
 "typeof ha trovato una combinazione di flag `%s' non valida; siete pregati di "
 "notificare questo bug."
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: tipo di argomento sconosciuto `%s'"
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: tipo di argomento sconosciuto `%s'"
diff --git a/po/ja.gmo b/po/ja.gmo
index b51b306..1c0af86 100644
Binary files a/po/ja.gmo and b/po/ja.gmo differ
diff --git a/po/ja.po b/po/ja.po
index adfc20c..9c3c6b9 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.1.0b\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2014-11-07 12:26+0000\n"
 "Last-Translator: Yasuaki Taniguchi <address@hidden>\n"
 "Language-Team: Japanese <address@hidden>\n"
@@ -136,11 +136,11 @@ msgstr "switch 文の中で重複した case 
値が使用されています: %s"
 msgid "duplicate `default' detected in switch body"
 msgstr "switch 文の中で重複した `default' が検出されました"
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "`break' はループまたは switch 
の外では許可されていません"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "`continue' はループの外では許可されていません"
 
@@ -191,7 +191,7 @@ msgstr "正規表現が代å…
¥å¼ã®å³è¾ºã«ä½¿ç”¨ã•ã‚Œã¦ã„ます"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "`~' や `!~' 
演算子の左辺に正規表現が使用されています"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "古い awk では `in' 予約語は `for' 
の後を除きサポートしません"
 
@@ -208,325 +208,325 @@ msgstr "`%s' ルールの内
側ではリダイレクトされていない `getli
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "リダイレクトされていない `getline' は END 
アクションでは未定義です。"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "古い awk は多次元配列をサポートしません"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "小括弧が無い `length' は移植性がありません"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "間接関数呼び出しは gawk 拡張です"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr "特別な変数 `%s' 
は間接関数呼び出し用には使用出来ません"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, fuzzy, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "関数 `%s' を配列として使用する試みです"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "添字の式が無効です"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "警告: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "致命的: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "予期しない改行または文字列終端です"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "ソースファイル `%s' を読み込み用に開けません (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr "共有ライブラリ `%s' を読み込み用に開けません (%s)"
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "原因不明"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr ""
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "ソースファイル `%s' は既に読み込まれています"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "共有ライブラリ `%s' は既に読み込まれています"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include は gawk 拡張です"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "@include の後に空のファイル名があります"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load は gawk 拡張です"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "@load の後に空のファイル名があります"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "コマンド行のプログラム表記が空です"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "ソースファイル `%s' を読み込めません (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "ソースファイル `%s' は空です"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr ""
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "ソースファイルが改行で終っていません"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "終端されていない正規表現がファイル最後の `\\' 
で終っています。"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "%s: %d: tawk の正規表現修飾子 `/.../%c' は gawk 
で使用できません"
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "tawk の正規表現修飾子 `/.../%c' は gawk 
で使用できません"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "正規表現が終端されていません"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "ファイルの中で正規表現が終端されていません"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "`\\ #...' 形式の行継続は移植性がありません"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr 
"バックスラッシュが行最後の文字になっていません。"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 #, fuzzy
 msgid "multidimensional arrays are a gawk extension"
 msgstr "間接関数呼び出しは gawk 拡張です"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX では演算子 `**=' は許可されていません"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "古い awk は演算子 `**=' をサポートしません"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX では演算子 `**' は許可されていません"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "古い awk は演算子 `**' をサポートしません"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "古い awk は演算子 `^=' をサポートしません"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "古い awk は演算子 `^' をサポートしません"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "文字列が終端されていません"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 #, fuzzy
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX では `\\x' エスケープは許可されていません"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 #, fuzzy
 msgid "backslash string continuation is not portable"
 msgstr "`\\ #...' 形式の行継続は移植性がありません"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "式内に無効な文字 '%c' があります"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "`%s' は gawk 拡張です"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX では `%s' は許可されていません"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "古い awk は `%s' をサポートしません"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 #, fuzzy
 msgid "`goto' considered harmful!"
 msgstr "`goto' は有害だと見なされています!\n"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d は %s 用の引数の数としては無効です"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
 msgstr "%s: 
文字列リテラルを置き換え最後の引数に使用すると効果がありません"
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "%s 第三仮引数は可変オブジェクトではありません"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: 第三引数は gawk 拡張です"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: 第二引数は gawk 拡張です"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "dcgettext(_\"...\")の使用法が間違っています: 先é 
­ã®ã‚¢ãƒ³ãƒ€ãƒ¼ã‚¹ã‚³ã‚¢(_)を削除し"
 "てください"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "dcngettext(_\"...\")の使用法が間違っています: 先é 
­ã®ã‚¢ãƒ³ãƒ€ãƒ¼ã‚¹ã‚³ã‚¢(_)を削除し"
 "てください"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 #, fuzzy
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: 文字列では無い第二引数を受け取りました"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "関数 `%s': 仮引数 `%s' が大域変数を覆い隠しています"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "`%s' を書込み用に開けませんでした (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "変数リストを標準エラーに送っています"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: 閉じるのに失敗しました (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() を二回呼び出しています!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "覆い隠された変数がありました"
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "関数名 `%s' は前に定義されています"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr "関数 `%s': 関数名を仮引数名として使用出来ません"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
 msgstr "関数 `%s': 特別な変数 `%s' 
は関数の仮引数として使用出来ません"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, fuzzy, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "関数 `%s': 仮引数 `%s' が大域変数を覆い隠しています"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "関数 `%s': 仮引数 #%d, `%s' が仮引数 #%d 
と重複しています"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "未定義の関数 `%s' を呼び出しました"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "関数 `%s' 
は定義されていますが、一度も直接呼び出されていません"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "仮引数 #%d 用の正規表現定数は真偽値を出力します"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -535,64 +535,64 @@ msgstr ""
 "関数名と `(' の間にスペースを入れて関数 `%s' 
を呼び出しています。\n"
 "または、変数か配列として使われています。"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "ゼロによる除算が試みられました"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "`%%' 内でゼロによる除算が試みられました"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, fuzzy, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "%d は %s 用の引数の数としては無効です"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include は gawk 拡張です"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1009,105 +1009,105 @@ msgstr "rshift(%f, %f): 
小数点以下は切り捨てられます"
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): 
シフト値が大き過ぎると異常な結果になります"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: 2個未満の引数で呼び出されました"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: 引数 %d が非数値です"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, fuzzy, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and(%lf, %lf): è² 
の数値を使用すると異常な結果になります"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: 2個未満の引数で呼び出されました"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: 引数 %d が非数値です"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, fuzzy, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "compl(%lf): è² 
の数値を使用すると異常な結果になります"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 #, fuzzy
 msgid "xor: called with less than two arguments"
 msgstr "xor: 2個未満の引数で呼び出されました"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: 引数 %d が非数値です"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, fuzzy, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor(%lf, %lf): è² 
の数値を使用すると異常な結果になります"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: 非数値の引数を受け取りました"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): è² 
の数値を使用すると異常な結果になります"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): 小数点以下は切り捨てられます"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s' は無効なロケール区分です"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: 第三引数が配列ではありません"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: 非数値の第一引数を受け取りました"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "and: 非数値の第二引数を受け取りました"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "ゼロによる除算が試みられました"
 
-#: builtin.c:4046
+#: builtin.c:4040
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: 第二引数が配列ではありません"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "option: 無効なパラメーター - \"%s\""
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -3507,27 +3507,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: 不明なリダイレクト型 %d です"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, fuzzy, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "エスケープシーケンス `\\%c' は `%c' 
と同等に扱われます"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "正規表現の要素 `%.*s' はおそらく `[%.*s]' 
であるべきです"
@@ -3700,12 +3700,12 @@ msgstr ") または \\) が不一致です"
 msgid "No previous regular expression"
 msgstr "以前に正規表現がありません"
 
-#: symbol.c:688
+#: symbol.c:691
 #, fuzzy, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr "関数 `%s': 関数名を仮引数名として使用出来ません"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr ""
 
diff --git a/po/ko.gmo b/po/ko.gmo
index fd3a9e0..a88d083 100644
Binary files a/po/ko.gmo and b/po/ko.gmo differ
diff --git a/po/ko.po b/po/ko.po
index 194b2d7..f47db61 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.2.63\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2019-03-04 16:44+0900\n"
 "Last-Translator: Seong-ho Cho <address@hidden>\n"
 "Language-Team: Korean <address@hidden>\n"
@@ -139,11 +139,11 @@ msgstr "switch문에 중복된 case 값: %s"
 msgid "duplicate `default' detected in switch body"
 msgstr "switch문에 중복된 `default' 절"
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "`break' 구문은 루프문 또는 switch문 밖에서 사용할 수 
없습니다"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "`continue' 구문은 루프문 밖에서 사용할 수 없습니다"
 
@@ -195,7 +195,7 @@ msgstr "할당문의 우항에 정규 표현식이 
있습니다"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "`~' 또는 `!~' 연산자 좌항에 정규 표현식이 있습니다'"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr ""
 "awk 이전 버전에서는 `for' 다음을 제외한 부분에서 `in' 
키워드를 취급하지 않습"
@@ -216,322 +216,322 @@ msgid "non-redirected `getline' undefined inside END 
action"
 msgstr ""
 "END 동작 내에서 리다이렉션 처리하지 않는 `getline'을 ì 
•ì˜í•˜ì§€ 않았습니다"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "awk 이전 버전에서는 다차원 배열을 지원하지 
않습니다"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "괄호를 뺀 `length' 호출은 이식 가능하지 않습니다"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "간접 함수 호출 방식은 gawk 확장 기능입니다"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr "간접 함수 호출시 `%s' 특수 변수를 취급할 수 
없습니다"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "함수가 아닌 `%s' 이름을 함수 호출 구역 안에서 
취급하려고 합니다"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "잘못된 하위스크립트 연산식"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "경고: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "실패: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "예상치 못한 개행 문자 또는 문자열 끝"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 "원본 파일 / 명령행 인자에 완전한 함수 이름 또는 규칙이 
들어있어야 합니다"
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "읽을 `%s' 파일을 열 수 없습니다(%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr "읽을 `%s' 공유 라이브러리를 열 수 없습니다(%s)"
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "원인을 알 수 없음"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr "`%s' 요소를 프로그램 파일로 넣어 쓸 수 없습니다"
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "이미 `%s' 원본 파일을 넣었습니다"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "이미 `%s' 공유 라이브러리를 불러왔습니다"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include는 gawk 확장 기능입니다"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "@include 다음에 파일 이름이 없습니다"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load는 gawk 확장 기능입니다"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "@load 다음에 파일 이름이 없습니다"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "명령행에 프로그램 텍스트가 없습니다"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "`%s' 원본 파일을 읽을 수 없습니다(%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "`%s' 원본 파일이 비었습니다"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "PEBKAC 오류: 소스 코드에 잘못된 문자 '\\%03o'"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "원본 파일이 개행 문자로 끝나지 않았습니다"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "파일 끝에 `\\' 문자로 끝나지 않은 정규 표현식이 
있습니다"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr ""
 "%s: %d: gawk에서는 `/.../%c' tawk 정규표현식 수정자가 
동작하지 않습니다"
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "gawk에서는 `/.../%c' tawk 정규 표현식 수정자가 
동작하지 않습니다"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "끝나지 않은 정규 표현식"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "파일 끝에 끝나지 않은 정규 표현식"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "`\\ #...' 행 연속 표현자는 이식 불가능합니다"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "행의 백슬래시 문자는 마지막 문자가 아닙니다"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "다차원 배열은 gawk 확장 기능입니다"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX에서는 `**=' 연산자를 허용하지 않습니다"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "오래된 awk 버전에서는 `**=' 연산자를 지원하지 
않습니다"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX에서는 `**' 연산자를 지원하지 않습니다"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "오래된 awk 버전에서는 `**' 연산자를 지원하지 
않습니다"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "오래된 awk 버전에서는 `^=' 연산자를 지원하지 
않습니다"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "오래된 awk 버전에서는 `^' 연산자를 지원하지 
않습니다"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "끝나지 않은 문자열"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX에서는 문자열 값에 물리 개행 문자를 허용하지 
않습니다"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 msgid "backslash string continuation is not portable"
 msgstr "백슬래시 문자열 연속 표현자는 이식 불가능합니다"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "표현식에 잘못된 문자 '%c'"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "`%s'은(는) gawk 확장 기능입니다"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX에서는 `%s'을(를) 허용하지 않습니다"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "오래된 awk 버전에서는 `%s'을(를) 지원하지 않습니다"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 msgid "`goto' considered harmful!"
 msgstr "`goto' 사용은 바람직하지 않습니다!"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d은(는) %s의 잘못된 인자 숫자입니다"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
 msgstr "%s: 인자의 마지막 부분으로서 문자열 그 자체는 
반영하지 않습니다"
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "세번째 %s 매개변수는 값을 바꿀 수 없는 개체입니다"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: 세번째 인자는 gawk 확장 기능입니다"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: 두번째 인자는 gawk 확장 기능입니다"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "dcgettext(_\"...\") 사용이 올바르지 않습니다: 앞서 표기한 
언더스코어 문자를 "
 "제거하십시오"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "dcngettext(_\"...\") 사용이 올바르지 않습니다: 앞서 표기한 
언더스코어 문자를 "
 "제거하십시오"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: 두번째 인자 위치에는 정규표현식 상수를 
허용하지 않습니다"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "`%s' 함수: `%s' 매개 변수와 전역 변수가 겹칩니다"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "기록할 `%s'을(를) 열 수 없습니다(%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "STDERR로 변수 목록 보내는 중"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: 닫기 실패 (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() 함수를 두번 호출했습니다!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "중복 변수가 있습니다."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "`%s' 함수 이름은 이미 앞에서 정의했습니다"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr "`%s' 함수: 함수 이름을 매개변수 이름으로 사용할 수 
없습니다"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
 msgstr "`%s' 함수: `%s' 특수 변수를 함수 이름으로 활용할 수 
없습니다"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "`%s' 함수: `%s' 매개변수에 이름 공간 명칭을 넣을 수 
없습니다"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "`%s' 함수: 매개변수 #%d, `%s'이(가) 매개변수 #%d와(과) 
중복됩니다"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "`%s' 함수를 호출했지만 정의하지 않았습니다"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "`%s' 함수를 정의했지만 직접 호출한 적이 없습니다"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "#%d 매개변수의 정규표현식 상수에서 부울린 값을 
넘겨줍니다"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -540,53 +540,53 @@ msgstr ""
 "이름과 `(' 괄호 사이에 공백을 넣어 `%s' 함수를 
호출했거나,\n"
 "변수 또는 배열로 사용했습니다"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "0으로 나누기를 시도했습니다"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "`%%'에서 0으로 나누기를 시도했습니다"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr "필드 후위 증가 연산자의 결과에 값을 할당할 수 
없습니다"
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "할당 대상이 잘못되었습니다(opcode %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr "%s 식별자: 기존 / POSIX 모드에서 한정 이름은 
허용하지 않습니다"
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr "%s 식별자: 이름 공간은 콜론 하나가 아닌 두개로 
구분합니다."
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "`%s' 한정 식별자의 구성이 올바르지 않습니다"
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 "`%s' 식별자: 이름 공간 구분자는 한정 명칭에서 한번만 
나타내레 수 있습니다"
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr "`%s' 예약 식별자는 이름 공간 명칭으로 허용하지 
않습니다"
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
@@ -594,11 +594,11 @@ msgid ""
 msgstr ""
 "한정 명칭의 두번째 요소로서의 `%s' 예약 식별자 활용은 
허용하지 않습니다"
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 msgid "@namespace is a gawk extension"
 msgstr "@namespace는 gawk 확장 기능입니다"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr "`%s' 이름 공간 명칭에는 식별자 이름 규칙을 
따라야합니다"
@@ -1006,88 +1006,88 @@ msgstr "rshift(%f, %f): 소숫점 아래 값은 
잘립니다"
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): 쉬프팅한 값이 크면 이상한 결과를 가ì 
¸ì˜¬ 수 있습니다"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: 인자 갯수가 둘 미만입니다"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: %d번째 인자 값은 숫자가 아닙니다"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: %d번째 %g 음수 인자 값은 허용하지 않습니다"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: 인자 갯수가 둘 미만입니다"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: %d번째 인자 값은 숫자가 아닙니다"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: %d번째 %g 음수 인자 값은 허용하지 않습니다"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: 인자 갯수가 둘 미만입니다"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: %d번째 인자 값은 숫자가 아닙니다"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: %d번째 %g 음수 인자 값은 허용하지 않습니다"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: 숫자가 아닌 인자 값을 받았습니다"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): 음수 값은 허용하지 않습니다"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): 소숫점 아래 값은 잘립니다"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s'은(는) 유효한 로캘 분류가 아닙니다"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: 세번째 인자 값이 배열이 아닙니다"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: 숫자가 아닌 첫번째 인자 값을 받았습니다"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: 숫자가 아닌 두번째 인자 값을 받았습니다"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: 0으로 나누기를 시도했습니다"
 
-#: builtin.c:4046
+#: builtin.c:4040
 msgid "typeof: second argument is not an array"
 msgstr "typeof: 두번째 인자 값이 배열이 아닙니다"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
@@ -1095,12 +1095,12 @@ msgstr ""
 "typeof에서 잘못된 `%s' 플래그 조합을 발견했습니다. 오류 
보고서를 제출해주십시"
 "오."
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: 잘못된 `%s' 인자 형식"
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: 알 수 없는 `%s' 인자 형식"
@@ -3519,28 +3519,28 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: 알 수 없는 %d 리다이렉션 형식"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr "NUL 문자가 들어간 정규 표현식에 대응하는 동작은 
POSIX에 없습니다"
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr "동적 정규 표현식에 잘못된 NUL 바이트"
 
-#: re.c:172
+#: re.c:174
 #, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "정규 표현식의 `\\%c' 이스케이프 시퀀스는 단순 `%c' 
문자로 취급합니다"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 "정규 표현식의 `\\%c' 이스케이프 시퀀스는 알려진 정규 
표현식 연산자가 아닙니다"
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "정규 표현식의 `%.*s' 구성 요소는 `[%.*s]' 이어야 할 것 
같습니다"
@@ -3711,11 +3711,11 @@ msgstr "일치하지 않는 ) 또는 \\) 괄호"
 msgid "No previous regular expression"
 msgstr "이전 정규 표현식 없음"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr "`%s' 함수: `%s' 함수를 매개변수 이름으로 사용할 수 
없습니다"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "주 컨텍스트를 빠져나올 수 없습니다"
diff --git a/po/ms.gmo b/po/ms.gmo
index 37aa8bd..0761c9f 100644
Binary files a/po/ms.gmo and b/po/ms.gmo differ
diff --git a/po/ms.po b/po/ms.po
index 9b90c4b..c9647dd 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: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2013-04-19 10:45+0800\n"
 "Last-Translator: Sharuzzaman Ahmat Raslan <address@hidden>\n"
 "Language-Team: Malay <address@hidden>\n"
@@ -137,11 +137,11 @@ msgstr ""
 msgid "duplicate `default' detected in switch body"
 msgstr ""
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr ""
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr ""
 
@@ -191,7 +191,7 @@ msgstr ""
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr ""
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr ""
 
@@ -208,379 +208,379 @@ msgstr ""
 msgid "non-redirected `getline' undefined inside END action"
 msgstr ""
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr ""
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr ""
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr ""
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr ""
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr ""
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr ""
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr ""
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr ""
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr ""
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr ""
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr ""
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr ""
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr ""
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr ""
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr ""
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr ""
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr ""
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr ""
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr ""
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr ""
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr ""
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr ""
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr ""
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr ""
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr ""
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr ""
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr ""
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr ""
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr ""
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr ""
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr ""
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr ""
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr ""
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr ""
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr ""
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr ""
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr ""
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr ""
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr ""
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 msgid "POSIX does not allow physical newlines in string values"
 msgstr ""
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 msgid "backslash string continuation is not portable"
 msgstr ""
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr ""
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr ""
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr ""
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr ""
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 msgid "`goto' considered harmful!"
 msgstr ""
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr ""
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
 msgstr ""
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr ""
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr ""
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr ""
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr ""
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr ""
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr ""
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr ""
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr ""
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr ""
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr ""
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr ""
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr ""
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
 msgstr ""
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr ""
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr ""
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr ""
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr ""
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr ""
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
 "or used as a variable or an array"
 msgstr ""
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr ""
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr ""
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr ""
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 msgid "@namespace is a gawk extension"
 msgstr ""
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -983,99 +983,99 @@ msgstr ""
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr ""
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr ""
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr ""
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr ""
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr ""
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr ""
 
-#: builtin.c:4046
+#: builtin.c:4040
 msgid "typeof: second argument is not an array"
 msgstr ""
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr ""
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -3375,27 +3375,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr ""
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr ""
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
@@ -3564,12 +3564,12 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr ""
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr ""
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr ""
 
diff --git a/po/nl.gmo b/po/nl.gmo
index 0e33777..549856c 100644
Binary files a/po/nl.gmo and b/po/nl.gmo differ
diff --git a/po/nl.po b/po/nl.po
index 81f8352..cf418a7 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.2.63\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2019-03-04 10:51+0100\n"
 "Last-Translator: Benno Schulenberg <address@hidden>\n"
 "Language-Team: Dutch <address@hidden>\n"
@@ -149,11 +149,11 @@ msgstr "dubbele 'case'-waarde in 'switch'-opdracht: %s"
 msgid "duplicate `default' detected in switch body"
 msgstr "dubbele 'default' in 'switch'-opdracht"
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "'break' buiten een lus of 'switch'-opdracht is niet toegestaan"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "'continue' buiten een lus is niet toegestaan"
 
@@ -204,7 +204,7 @@ msgstr "reguliere expressie rechts van toewijzing"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "reguliere expressie links van operator '~' of '!~'"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "oude 'awk' kent het sleutelwoord 'in' niet, behalve na 'for'"
 
@@ -221,320 +221,320 @@ msgstr "niet-omgeleide 'getline' is ongeldig binnen een 
'%s'-regel"
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "niet-omgeleide 'getline' is ongedefinieerd binnen een END-actie"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "oude 'awk' kent geen meerdimensionale arrays"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "aanroep van 'length' zonder haakjes is niet overdraagbaar"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "indirecte functieaanroepen zijn een gawk-uitbreiding"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr ""
 "kan speciale variabele '%s' niet voor indirecte functieaanroep gebruiken"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "niet-functie '%s' wordt gebruikt in functie-aanroep"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "ongeldige index-expressie"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "waarschuwing: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "fataal: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "onverwacht regeleinde of einde van string"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "kan bronbestand '%s' niet openen om te lezen (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, 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:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "reden onbekend"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, 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:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "bronbestand '%s' is reeds ingesloten"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "gedeelde bibliotheek '%s' is reeds geladen"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "'@include' is een gawk-uitbreiding"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "lege bestandsnaam na '@include'"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "'@load' is een gawk-uitbreiding"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "lege bestandsnaam na '@load'"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "lege programmatekst op opdrachtregel"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "kan bronbestand '%s' niet lezen (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "bronbestand '%s' is leeg"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "PEBKAC-fout: ongeldig teken '\\%03o' in brontekst"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "bronbestand eindigt niet met een regeleindeteken (LF)"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "onafgesloten reguliere expressie eindigt met '\\' aan bestandseinde"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, 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:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "regexp-optie '/.../%c' van 'tawk' werkt niet in gawk"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "onafgesloten reguliere expressie"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "onafgesloten reguliere expressie aan bestandseinde"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "gebruik van regelvoortzetting '\\ #...' is niet overdraagbaar"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "backslash is niet het laatste teken op de regel"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "meerdimensionale arrays zijn een gawk-uitbreiding"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX staat operator '**=' niet toe"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "oude 'awk' kent de operator '**=' niet"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX staat operator '**' niet toe"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "oude 'awk' kent de operator '**' niet"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "oude 'awk' kent de operator '^=' niet"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "oude 'awk' kent de operator '^' niet"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "onafgesloten string"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX staat geen nieuweregeltekens toe in tekenreeksen"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 msgid "backslash string continuation is not portable"
 msgstr "een backslash-regelvoortzetting is niet overdraagbaar"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "ongeldig teken '%c' in expressie"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "'%s' is een gawk-uitbreiding"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX staat '%s' niet toe"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "oude 'awk' kent '%s' niet"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 msgid "`goto' considered harmful!"
 msgstr "'goto' wordt als schadelijk beschouwd!"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d is een ongeldig aantal argumenten voor %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, 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:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "%s: derde parameter is geen veranderbaar object"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: derde argument is een gawk-uitbreiding"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: tweede argument is een gawk-uitbreiding"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr "dcgettext(_\"...\") is onjuist: verwijder het liggende streepje"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr "dcngettext(_\"...\") is onjuist: verwijder het liggende streepje"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr ""
 "index: een reguliere-expressie-constante als tweede argument is niet "
 "toegestaan"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "functie '%s': parameter '%s' schaduwt een globale variabele"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "kan '%s' niet openen om te schrijven (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "variabelenlijst gaat naar standaardfoutuitvoer"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: sluiten is mislukt (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() twee keer aangeroepen!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "er waren geschaduwde variabelen."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "functienaam '%s' is al eerder gedefinieerd"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr "functie '%s': kan functienaam niet als parameternaam gebruiken"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, 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"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "functie '%s': parameter '%s' mag geen naamsruimte bevatten"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "functie '%s': parameter #%d, '%s', dupliceert parameter #%d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "functie '%s' wordt aangeroepen maar is nergens gedefinieerd"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "functie '%s' is gedefinieerd maar wordt nergens direct aangeroepen"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "regexp-constante als parameter #%d levert booleanwaarde op"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -543,66 +543,66 @@ msgstr ""
 "functie '%s' wordt aangeroepen met een spatie tussen naam en '(',\n"
 "of wordt gebruikt als variabele of array"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "deling door nul"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "deling door nul in '%%'"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 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:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "ongeldig doel van toewijzing (opcode %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "'@include' is een gawk-uitbreiding"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1019,104 +1019,104 @@ msgstr "rshift(%f, %f): cijfers na de komma worden 
afgekapt"
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): te grote opschuifwaarden geven rare resultaten"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: aangeroepen met minder dan twee argumenten"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argument %d is niet-numeriek"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, fuzzy, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: negatieve waarde %2$g van argument %1$d geeft rare resultaten"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: aangeroepen met minder dan twee argumenten"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argument %d is niet-numeriek"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, fuzzy, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: negatieve waarde %2$g van argument %1$d geeft rare resultaten"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: aangeroepen met minder dan twee argumenten"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argument %d is niet-numeriek"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, fuzzy, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: negatieve waarde %2$g van argument %1$d geeft rare resultaten"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: argument is geen getal"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): negatieve waarden geven rare resultaten"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): cijfers na de komma worden afgekapt"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: '%s' is geen geldige taalregio-deelcategorie"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: derde argument is geen array"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: eerste argument is geen getal"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "and: tweede argument is geen getal"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "deling door nul"
 
-#: builtin.c:4046
+#: builtin.c:4040
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: tweede argument is geen array"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "option: ongeldige parameter -- \"%s\""
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -3571,27 +3571,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str(): onbekend omleidingstype %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, fuzzy, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "stuurcodereeks '\\%c' behandeld als normale '%c'"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
@@ -3761,12 +3761,12 @@ msgstr "Ongepaarde ) of \\)"
 msgid "No previous regular expression"
 msgstr "Geen eerdere reguliere expressie"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr "functie '%s': kan functie '%s' niet als parameternaam gebruiken"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "kan hoofdcontext niet poppen"
 
diff --git a/po/pl.gmo b/po/pl.gmo
index 392c1af..d5be09a 100644
Binary files a/po/pl.gmo and b/po/pl.gmo differ
diff --git a/po/pl.po b/po/pl.po
index 8f2ae05..25953e5 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.1.0b\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2014-03-22 17:49+0100\n"
 "Last-Translator: Wojciech Polak <address@hidden>\n"
 "Language-Team: Polish <address@hidden>\n"
@@ -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:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "instrukcja `break' poza pętlą lub switch'em jest niedozwolona"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "instrukcja `continue' poza pętlą jest niedozwolona"
 
@@ -201,7 +201,7 @@ msgstr "wyrażanie regularne po prawej stronie przypisania"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "wyrażenie regularne po lewej stronie operatora `~' lub `!~'"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr ""
 "stary awk nie wspiera słowa kluczowego `in', z wyjątkiem po słowie `for'"
@@ -221,329 +221,329 @@ msgid "non-redirected `getline' undefined inside END 
action"
 msgstr ""
 "komenda `getline' bez przekierowania nie jest zdefiniowana wewnątrz akcji 
END"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "stary awk nie wspiera wielowymiarowych tablic"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "wywołanie `length' bez nawiasów jest nieprzenośne"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "pośrednie wywołania funkcji są rozszerzeniem gawk"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr ""
 "nie można użyć specjalnej zmiennej `%s' do pośredniego wywołania funkcji"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, fuzzy, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "próba użycia funkcji `%s' jako tablicy"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "nieprawidłowe wyrażenie indeksowe"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "ostrzeżenie: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "fatalny błąd: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "niespodziewany znak nowego wiersza lub końca łańcucha"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "nie można otworzyć pliku źródłowego `%s' do czytania (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, 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:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "nieznany powód"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, 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:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "plik źródłowy `%s' jest już załączony"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "biblioteka współdzielona jest już załadowana `%s'"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include jest rozszerzeniem gawk"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "pusta nazwa pliku po @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load jest rozszerzeniem gawk"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "pusta nazwa pliku po @load"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "pusty tekst programu w linii poleceń"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "nie można otworzyć pliku źródłowego `%s' (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "plik źródłowy `%s' jest pusty"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr ""
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "plik źródłowy nie posiada na końcu znaku nowego wiersza"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 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:3679
+#: awkgram.y:3681
 #, 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:3683
+#: awkgram.y:3685
 #, 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:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "niezakończone wyrażenie regularne"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "niezakończone wyrażenie regularne na końcu pliku"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "użycie `\\ #...' kontynuacji linii nie jest przenośne"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "backslash nie jest ostatnim znakiem w wierszu"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 #, fuzzy
 msgid "multidimensional arrays are a gawk extension"
 msgstr "pośrednie wywołania funkcji są rozszerzeniem gawk"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX nie zezwala na operator `**='"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "stary awk nie wspiera operatora `**='"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX nie zezwala na operator `**'"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "stary awk nie wspiera operatora `**'"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "operator `^=' nie jest wspierany w starym awk"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "operator `^' nie jest wspierany w starym awk"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "niezakończony łańcuch"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 #, fuzzy
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX nie zezwala na sekwencję ucieczki `\\x'"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 #, fuzzy
 msgid "backslash string continuation is not portable"
 msgstr "użycie `\\ #...' kontynuacji linii nie jest przenośne"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "nieprawidłowy znak '%c' w wyrażeniu"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "`%s' jest rozszerzeniem gawk"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX nie zezwala na `%s'"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "`%s' nie jest wspierany w starym awk"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 #, fuzzy
 msgid "`goto' considered harmful!"
 msgstr "`goto' uważane za szkodliwe!\n"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, 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:4598
+#: awkgram.y:4600
 #, 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:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "%s trzeci parametr nie jest zmiennym obiektem"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: trzeci argument jest rozszerzeniem gawk"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: drugi argument jest rozszerzeniem gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr "nieprawidłowe użycie dcgettext(_\"...\"): usuń znak podkreślenia"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr "nieprawidłowe użycie dcngettext(_\"...\"): usuń znak podkreślenia"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: stały regexp jako drugi argument nie jest dozwolony"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "funkcja `%s': parametr `%s' zasłania globalną zmienną"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "nie można otworzyć `%s' do zapisu (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "wysyłanie listy zmiennych na standardowe wyjście diagnostyczne"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: zamknięcie nie powiodło się (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() wywołana podwójnie!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "wystąpiły przykryte zmienne."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "nazwa funkcji `%s' została zdefiniowana poprzednio"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, 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:5088
+#: awkgram.y:5090
 #, 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:5092
+#: awkgram.y:5094
 #, fuzzy, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "funkcja `%s': parametr `%s' zasłania globalną zmienną"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "funkcja `%s': parametr #%d, `%s', powiela parametr #%d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "funkcja `%s' została wywołana, ale nigdy nie została zdefiniowana"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, 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:5224
+#: awkgram.y:5226
 #, 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:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -553,64 +553,64 @@ msgstr ""
 "`(',\n"
 "lub użyta jako zmienna lub jako tablica"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "próba dzielenia przez zero"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "próba dzielenia przez zero w `%%'"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 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:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "nieprawidłowy cel przypisania (opcode %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include jest rozszerzeniem gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1029,104 +1029,104 @@ msgstr "rshift(%f, %f): ułamkowe wartości zostaną 
obcięte"
 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:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: wywołano z mniej niż dwoma argumentami"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argument %d nie jest liczbą"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, fuzzy, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: argument %d ujemna wartość %g spowoduje dziwne wyniki"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: wywołano z mniej niż dwoma argumentami"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argument %d nie jest liczbą"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, fuzzy, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: argument %d ujemna wartość %g spowoduje dziwne wyniki"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: wywołano z mniej niż dwoma argumentami"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argument %d nie jest liczbą"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, fuzzy, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: argument %d ujemna wartość %g spowoduje dziwne wyniki"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: otrzymano argument, który nie jest liczbą"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): ujemne wartości spowodują dziwne wyniki"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): ułamkowe wartości zostaną obcięte"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s' nie jest prawidłową kategorią lokalizacji"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: otrzymano trzeci argument, który nie jest tablicą"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: otrzymano pierwszy argument, który nie jest liczbą"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "and: otrzymano drugi argument, który nie jest liczbą"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "próba dzielenia przez zero"
 
-#: builtin.c:4046
+#: builtin.c:4040
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: drugi argument nie jest tablicą"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "option: nieprawidłowy parametr - \"%s\""
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -3545,27 +3545,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: nieznany typ przekierowania %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, fuzzy, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "sekwencja ucieczki `\\%c' potraktowana jako zwykłe `%c'"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "komponent regexp `%.*s' powinien być prawdopodobnie `[%.*s]'"
@@ -3737,12 +3737,12 @@ msgstr "Niedopasowany znak ) lub \\)"
 msgid "No previous regular expression"
 msgstr "Brak poprzedniego wyrażenia regularnego"
 
-#: symbol.c:688
+#: symbol.c:691
 #, fuzzy, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr "funkcja `%s': nie można użyć nazwy funkcji jako nazwy parametru"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "nie można zdjąć głównego kontekstu"
 
diff --git a/po/pt.gmo b/po/pt.gmo
index b050df4..8273d24 100644
Binary files a/po/pt.gmo and b/po/pt.gmo differ
diff --git a/po/pt.po b/po/pt.po
index c8f383b..31c1285 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.2.63\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2019-05-26 08:43+0100\n"
 "Last-Translator: Pedro Albuquerque <address@hidden>\n"
 "Language-Team: Portuguese <address@hidden>\n"
@@ -142,11 +142,11 @@ msgstr "valores de \"case\" duplicados no corpo do 
\"switch\": %s"
 msgid "duplicate `default' detected in switch body"
 msgstr "\"default\" duplicado detectado no corpo do \"switch\""
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "\"break\" não é permitido fora de um ciclo ou \"switch\""
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "\"continue\" não é permitido fora de um ciclo"
 
@@ -197,7 +197,7 @@ msgstr "expressão regular à direita de atribuição"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "expressão regular à esquerda de operador \"~\" ou \"!~\""
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "o awk antigo não suporta a palavra-chave \"in\", excepto após 
\"for\""
 
@@ -214,46 +214,46 @@ msgstr "\"getline\" não redireccionado inválido dentro 
de regra \"%s\""
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "\"getline\" não redireccionado indefinido dentro de acção END"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "o awk antigo não suporta matrizes multi-dimensionais"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "chamada de \"length\" sem parênteses não é portável"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "chamadas de função indirectas são uma extensão gawk"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr ""
 "impossível usar a variável especial \"%s\" para chamada de função 
indirecta"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "tentativa de usar a não-função \"%s\" em chamada de função"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "expressão subscrita inválida"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "aviso: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "fatal: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "nova linha ou fim de cadeia inesperados"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
@@ -261,277 +261,277 @@ msgstr ""
 "ficheiros-fonte/argumentos de linha de comandos têm de conter funções ou "
 "regras completas"
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "impossível abrir ficheiro-fonte \"%s\" para leitura (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr "impossível abrir biblioteca partilhada \"%s\" para leitura (%s)"
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "motivo desconhecido"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr "impossível incluir \"%s\" e usá-la como ficheiro de programa"
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "ficheiro-fonte \"%s\" já incluído"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "biblioteca partilhada \"%s\" já incluída"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include é uma extensão gawk"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "nome de ficheiro vazio após @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load é uma extensão gawk"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "nome de ficheiro vazio após @load"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "texto de programa vazio na linha de comandos"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "impossível ler ficheiro-fonte \"%s\" (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "ficheiro-fonte \"%s\" vazio"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "erro PEBKAC: carácter \"\\%03o\" inválido no código-fonte"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "ficheiro-fonte não termina com nova linha"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "regexp não terminada acaba com \"\\\" no fim do ficheiro"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "%s: %d: modificador regexp tawk \"/.../%c\" não funciona no gawk"
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "modificador regexp tawk \"/.../%c\" não funciona no gawk"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "regexp não terminada"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "regexp não terminada no fim do ficheiro"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "uso de continuação de linha \"\\ #...\" não é portável"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "a barra invertida não é o último carácter na linha"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "matrizes multi-dimensionais são uma extensão gawk"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX não permite o operador \"**=\""
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "o awk antigo não suporta o operador \"**=\""
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX não permite o operador  \"**\""
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "o awk antigo não suporta o operador  \"**\""
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "o awk antigo não suporta o operador  \"^=\""
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "o awk antigo não suporta o operador  \"^\""
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "cadeia indeterminada"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX não permite novas linhas físicas em valores de cadeia"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 msgid "backslash string continuation is not portable"
 msgstr "continuação de cadeia com barra invertida não é portável"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "carácter \"%c\" inválido em expressão"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "\"%s\" é uma extensão gawk"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX não permite \"%s\""
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "o awk antigo não suporta \"%s\""
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 msgid "`goto' considered harmful!"
 msgstr "\"goto\" considerado perigoso"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d é inválido como nº de argumentos para %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
 msgstr ""
 "%s: literal de cadeia como último argumento de substituto não tem efeito"
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "o terceiro parâmetro de %s não é um objecto alterável"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: o terceiro argumento é uma extensão gawk"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: o segundo argumento é uma extensão gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "o uso de dcgettext(_\"...\") está incorrecto: remova o sublinhado inicial"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "o uso de dcngettext(_\"...\") está incorrecto: remova o sublinhado inicial"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: constante regexp como segundo argumento não é permitido"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "função \"%s\": o parâmetro \"%s\" sombreia uma variável global"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "impossível abrir \"%s\" para escrita (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "a enviar lista de variáveis para erro padrão"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: falha ao fechar (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() chamada duas vezes!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "houve variáveis sombreadas."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "nome de função \"%s\" previamente definido"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr "função \"%s\": impossível usar o nome da função como nome de 
parâmetro"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
 msgstr ""
 "função \"%s\": impossível usar a variável especial \"%s\" como parâmetro 
da "
 "função"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "função \"%s\": o parâmetro \"%s\" não pode conter um namespace"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "função \"%s\": o parâmetro nº %d, \"%s\", duplica o parâmetro nº 
%d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "função \"%s\" chamada, mas não foi definida"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "função \"%s\" definida, mas nunca é chamada directamente"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "constante regexp para o parâmetro nº %d entrega um valor booleano"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -540,47 +540,47 @@ msgstr ""
 "função \"%s\" chamada com espaço entre o nome e \"(\",\n"
 "ou usada como variável ou matriz"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "tentativa de dividir por zero"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "tentativa de dividir por zero em \"%%\""
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 "impossível atribuir um valor ao resultado de uma expressão de 
pós-incremento "
 "de campo"
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "alvo de atribuição inválido (opcode %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 "identificador %s: nomes qualificados não são permitidos em modo 
tradicional/"
 "POSIX"
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 "identificador %s: o separador de espaços de nome é duplo dois-pontos, não "
 "dois-pontos único"
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "identificador %s qualificado está mal formado"
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
@@ -588,12 +588,12 @@ msgstr ""
 "identificador %s: o separador de espaços de nome só pode aparecer uma vez "
 "num nome qualificado"
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr "não é permitido usar o identificador reservado %s como namespace"
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
@@ -602,11 +602,11 @@ msgstr ""
 "não é permitido usar o identificador reservado %s como 2º componente de 
nome "
 "qualificado"
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 msgid "@namespace is a gawk extension"
 msgstr "@namespace é uma extensão gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1030,88 +1030,88 @@ msgstr ""
 "rshift(%f, %f): um valor de deslocamento muito grande dará resultados "
 "estranhos"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: chamada com menos de dois argumentos"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argumento %d é não-numérico"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: valor negativo do argumento %d %g não é permitido"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: chamada com menos de dois argumentos"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argumento %d é não-numérico"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: valor negativo do argumento %d %g não é permitido"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: chamada com menos de dois argumentos"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argumento %d é não-numérico"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: valor negativo do argumento %d %g não é permitido"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: recebido argumento não-numérico"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): valor negativo não é permitido"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): valores fraccionais serão truncados"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: \"%s\" não é uma categoria regional válida"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: 3º argumento não é uma matriz"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: recebido 1º argumento não-numérico"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: recebido 2º argumento não-numérico"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: tentativa de dividir por zero"
 
-#: builtin.c:4046
+#: builtin.c:4040
 msgid "typeof: second argument is not an array"
 msgstr "typeof: 2º argumento não é uma matriz"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
@@ -1119,12 +1119,12 @@ msgstr ""
 "typeof detectou uma combinação de bandeira \"%s\" inválida; por favor, 
faça "
 "um relatório de erro."
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: tipo de argumento \"%s\" inválido"
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: tipo de argumento \"%s\" desconhecido"
@@ -3564,7 +3564,7 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipo de redireccionamento %d desconhecido"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
@@ -3572,22 +3572,22 @@ msgstr ""
 "o comportamento de comparação de uma regexp contendo caracteres NUL não é 
"
 "definido pelo POSIX"
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr "byte NUL inválido em regexp dinâmica"
 
-#: re.c:172
+#: re.c:174
 #, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "sequência de escape de regexp \"\\%c\" tratada como \"%c\" simples"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 "sequência de escape de regexp \"\\%c\" não é um operador regexp conhecido"
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "componente regexp \"%.*s\" provavelmente deveria ser \"[%.*s]\""
@@ -3756,11 +3756,11 @@ msgstr ") ou \\) sem par"
 msgid "No previous regular expression"
 msgstr "Sem expressão regular anterior"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr "função \"%s\": impossível usar a função \"%s\" como nome de 
parâmetro"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "impossível abrir o contexto principal"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index a08cd9e..f439af9 100644
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 559e135..487f86c 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.2.63\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2019-03-07 08:07-0200\n"
 "Last-Translator: Rafael Fontenelle <address@hidden>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -146,11 +146,11 @@ msgstr "valores de case duplicados no corpo do switch: %s"
 msgid "duplicate `default' detected in switch body"
 msgstr "\"default\" duplicados detectados no corpo do switch"
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "\"break\" não é permitido fora um loop ou switch"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "\"continue\" não é permitido fora de um loop"
 
@@ -202,7 +202,7 @@ msgstr "expressão regular à direita de atribuição"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "expressão regular à esquerda de operador \"~\" ou \"!~\""
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr ""
 "o velho awk não oferece suporte à palavra-chave \"in\", exceto após 
\"for\""
@@ -220,47 +220,47 @@ msgstr "\"getline\" não redirecionado inválido dentro 
da regra \"%s\""
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "\"getline\" não redirecionado indefinido dentro da ação END"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "o velho awk não oferece suporte a vetores multidimensionais"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "chamada de \"length\" sem parênteses não é portável"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "chamadas indiretas de função são uma extensão do gawk"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr ""
 "não é possível usar a variável especial \"%s\" para chamada indireta de "
 "função"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "tentativa de usar não função \"%s\" em chamada de função"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "expressão de índice inválida"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "aviso: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "fatal: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "nova linha ou fim de string inesperado"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
@@ -268,278 +268,278 @@ msgstr ""
 "arquivos-fonte/argumentos de linha de comando devem conter funções ou 
regras "
 "completas"
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "não foi possível abrir arquivo-fonte \"%s\" para leitura (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr ""
 "não foi possível abrir a biblioteca compartilhada \"%s\" para leitura (%s)"
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "motivo desconhecido"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr "não é possível incluir \"%s\" e usá-lo como um arquivo de programa"
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "arquivo-fonte \"%s\" já incluso"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "biblioteca compartilhada \"%s\" já carregada"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include é uma extensão do gawk"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "nome de arquivo vazio após @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load é uma extensão do gawk"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "nome de arquivo vazio após @load"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "texto de programa vazio na linha de comando"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "não foi possível ler arquivo-fonte \"%s\" (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "arquivo-fonte \"%s\" está vazio"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "erro PEBKAC: caractere inválido \"\\%03o\" no código-fonte"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "arquivo-fonte não termina em nova linha"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "expressão regular inacabada termina com \"\\\" no fim do arquivo"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "%s: %d: modificador tawk regex \"/../%c\" não funciona no gawk"
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "modificador tawk regex \"/../%c\" não funciona no gawk"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "expressão regular inacabada"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "expressão regular inacabada no fim do arquivo"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "uso da continuação de linha \"\\ #...\" não é portável"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "barra invertida não é o último caractere da linha"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "vetores multidimensionais são é uma extensão do gawk"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX não permite o operador \"**=\""
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "o velho awk não oferece suporte ao operador \"**=\""
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX não permite o operador \"**\""
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "o velho awk não oferece suporte ao operador \"**\""
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "sem suporte ao operador `^=' no velho awk"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "sem suporte ao operador \"^\" no velho awk"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "string inacabada"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX não permite novas linhas físicas em valores de string"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 msgid "backslash string continuation is not portable"
 msgstr "continuação de string com barra invertida não é portável"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "caractere inválido \"%c\" em expressão"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "\"%s\" é uma extensão do gawk"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX não permite \"%s\""
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "não há suporte a \"%s\" no velho awk"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 msgid "`goto' considered harmful!"
 msgstr "\"goto\" é considerado danoso!"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d é inválido como número de argumentos para %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
 msgstr ""
 "%s: string literal como último argumento de substituição não tem efeito"
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "terceiro parâmetro %s não é um objeto modificável"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: terceiro argumento é uma extensão do gawk"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: segundo argumento é uma extensão do gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr "uso de dcgettext(_\"...\") é incorreto: remova o sublinhado 
precedente"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "uso de dcngettext(_\"...\") é incorreto: remova o sublinhado precedente"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: constante de exp. reg. como segundo argumento não é permitido"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "função \"%s\": parâmetro \"%s\" encobre variável global"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "não foi possível abrir \"%s\" para escrita (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "enviando lista de variáveis para saída de erro padrão"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: \"close\" falhou (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() chamada duas vezes!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "houve variáveis encobertas."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "nome de função \"%s\" definido anteriormente"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr ""
 "função \"%s\": não é possível usar o nome da função como nome de 
parâmetro"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
 msgstr ""
 "função \"%s\": não é possível usar a variável especial \"%s\" como um "
 "parâmetro de função"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "função \"%s\": parâmetro \"%s\" não pode conter um espaço de nome"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "função \"%s\": parâmetro nº %d, \"%s\", duplica parâmetro nº %d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "função \"%s\" chamada, mas nunca definida"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "função \"%s\" definida, mas nunca chamada diretamente"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "constante com expr. reg. para parâmetro nº %d retorna valor booleano"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -548,47 +548,47 @@ msgstr ""
 "função \"%s\" chamada com espaço entre o nome e o \"(\",\n"
 "ou usada como uma variável ou um vetor"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "tentativa de divisão por zero"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "tentativa de divisão por zero em \"%%\""
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 "não é possível atribuir um valor ao resultado de uma expressão de campo 
pós-"
 "incremento"
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "alvo de atribuição inválido (código de operação %s)o"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 "identificador %s: nomes qualificados não são permitidos no modo POSIX / "
 "tradicional"
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 "identificador %s: separador de espaço de nome é dois caracteres de dois "
 "pontos, e não um"
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "identificador qualificado \"%s\" está malformado"
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
@@ -596,14 +596,14 @@ msgstr ""
 "identificador \"%s\": separador de espaço de nome só pode aparecer uma vez "
 "em um nome qualificado"
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 "o uso de identificador reservado \"%s\" como um espaço de nome não é "
 "permitido"
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
@@ -612,11 +612,11 @@ msgstr ""
 "o uso de identificador reservado \"%s\" como segundo componente de um nome "
 "qualificado não é permitido"
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 msgid "@namespace is a gawk extension"
 msgstr "@namespace é uma extensão do gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1036,88 +1036,88 @@ msgstr "rshift(%f, %f): valores fracionários serão 
truncados"
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): deslocamento excessivo dará resultados estranhos"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: chamada com menos de dois argumentos"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argumento %d é não numérico"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: o argumento %d com valor negativo %g não é permitido"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: chamada com menos de dois argumentos"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argumento %d é não numérico"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: o argumento %d com valor negativo %g não é permitido"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: chamada com menos de dois argumentos"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argumento %d é não numérico"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: o argumento %d com valor negativo %g não é permitido"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: recebeu primeiro argumento não numérico"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): valor negativo não é permitida"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): valores fracionários serão truncados"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: \"%s\" não é uma categoria de \"locale\" válida"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: terceiro argumento não é um vetor"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: recebeu primeiro argumento não numérico"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: recebeu segundo argumento não numérico"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: tentativa de divisão por zero"
 
-#: builtin.c:4046
+#: builtin.c:4040
 msgid "typeof: second argument is not an array"
 msgstr "typeof: segundo argumento não é um vetor"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
@@ -1125,12 +1125,12 @@ msgstr ""
 "typeof detectou combinação inválida de flags \"%s\"; por favor, faça um "
 "relato de erro."
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: tipo de argumento inválido \"%s\""
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: tipo de argumento desconhecido \"%s\""
@@ -3593,7 +3593,7 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipo de redirecionamento desconhecido %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
@@ -3601,22 +3601,22 @@ msgstr ""
 "comportamento de correspondência à regexp contendo caracteres NUL não 
está "
 "definido pelo POSIX"
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr "byte NUL inválido em regexp dinâmica"
 
-#: re.c:172
+#: re.c:174
 #, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "sequência de escape \"\\%c\" da regexp tratada como \"%c\" normal"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 "sequência de escape \"\\%c\" da regexp não é um operador de regexp 
conhecido"
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "componente de expr. reg. \"%.*s\" deve provavelmente ser \"[%.*s]\""
@@ -3785,13 +3785,13 @@ msgstr ") ou \\) sem correspondente"
 msgid "No previous regular expression"
 msgstr "Nenhuma expressão regular anterior"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr ""
 "função \"%s\": não é possível usar a função \"%s\" como um nome de 
parâmetro"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "não foi possível trazer contexto principal"
 
diff --git a/po/sv.gmo b/po/sv.gmo
index 29f9868..a79abfb 100644
Binary files a/po/sv.gmo and b/po/sv.gmo differ
diff --git a/po/sv.po b/po/sv.po
index 42a3447..3a71f0d 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.2.63\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2019-03-09 21:06+0100\n"
 "Last-Translator: Göran Uddeborg <address@hidden>\n"
 "Language-Team: Swedish <address@hidden>\n"
@@ -147,11 +147,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:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "”break” är inte tillåtet utanför en slinga eller switch"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "”continue” är inte tillåtet utanför en slinga"
 
@@ -201,7 +201,7 @@ msgstr "reguljärt uttryck i högerledet av en tilldelning"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "reguljärt uttryck på vänster sida om en ”~”- eller 
”!~”-operator"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "gamla awk stöder inte operatorn ”**”"
 
@@ -218,46 +218,46 @@ msgstr "icke omdirigerad ”getline” är ogiltigt inuti 
”%s”-regel"
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "icke omdirigerad ”getline” odefinierad inuti END-åtgärd"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "gamla awk stöder inte flerdimensionella vektorer"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "anrop av ”length” utan parenteser är inte portabelt"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "indirekta funktionsanrop är en gawk-utökning"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, 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"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "försök att använda en icke-funktion ”%s” i ett funktionsanrop"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "ogiltig indexuttryck"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "varning: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "ödesdigert: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "oväntat nyradstecken eller slut på strängen"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
@@ -265,280 +265,280 @@ msgstr ""
 "källkodsfiler/kommandoradsargument måste innehålla kompletta funktioner "
 "eller regler"
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "kan inte öppna källfilen ”%s” för läsning (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, 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:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "okänd anledning"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, 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:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "inkluderade redan källfilen ”%s”"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "inkluderade redan det delade biblioteket ”%s”"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include är en gawk-utökning"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "tomt filnamn efter @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load är en gawk-utökning"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "tomt filnamn efter @load"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "tom programtext på kommandoraden"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "kan inte läsa källfilen ”%s” (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "källfilen ”%s” är tom"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "PEBKAC-fel: ogiltigt tecken ”\\%03o” i källkoden"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "källfilen slutar inte med en ny rad"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "oavslutat reguljärt uttryck slutar med ”\\” i slutet av filen"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, 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"
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, 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"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "oavslutat reguljärt uttryck"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "oavslutat reguljärt uttryck i slutet av filen"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "Användning av ”\\ #...” för radfortsättning är inte portabelt"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "sista tecknet på raden är inte ett omvänt snedstreck"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "flerdimensionella matriser är en gawk-utökning"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX tillåter inte operatorn ”**=”"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "gamla awk stöder inte operatorn ”**=”"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX tillåter inte operatorn ”**”"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "gamla awk stöder inte operatorn ”**”"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "operatorn ”^=” stöds inte i gamla awk"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "operatorn ”^” stöds inte i gamla awk"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "oavslutad sträng"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX tillåter inte fysiska nyrader i strängvärden"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 msgid "backslash string continuation is not portable"
 msgstr "strängfortsättning med omvänt snedstreck är inte portabelt"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "ogiltigt tecken ”%c” i uttryck"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "”%s” är en gawk-utökning"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX tillåter inte ”%s”"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "”%s” stöds inte i gamla awk"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 msgid "`goto' considered harmful!"
 msgstr "”goto” anses skadligt!"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d är ett ogiltigt antal argument för %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, 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"
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "%s: tredje argumentet är inte ett ändringsbart objekt"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: tredje argumentet är en gawk-utökning"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: andra argumentet är en gawk-utökning"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "användandet av dcgettext(_\"...\") är felaktigt: ta bort det inledande "
 "understrykningstecknet"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "användandet av dcngettext(_\"...\") är felaktigt: ta bort det inledande "
 "understrykningstecknet"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: reguljäruttryck som andra argumentet är inte tillåtet"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "funktionen ”%s”: parametern ”%s” överskuggar en global 
variabel"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "kunde inte öppna ”%s” för skrivning (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "skickar variabellista till standard fel"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: misslyckades att stänga (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() anropad två gånger!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "det fanns överskuggade variabler."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "funktionsnamnet ”%s” är definierat sedan tidigare"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, 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:5088
+#: awkgram.y:5090
 #, 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"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "funktionen ”%s”: parametern ”%s” får inte innehålla en 
namnrymd"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "funktionen ”%s”: parameter %d, ”%s”, är samma som parameter 
%d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "funktionen ”%s” anropad men aldrig definierad"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "funktionen ”%s” definierad men aldrig anropad direkt"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, 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:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -547,45 +547,45 @@ msgstr ""
 "funktionen ”%s” anropad med blanktecken mellan namnet och ”(”,\n"
 "eller använd som variabel eller vektor"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "försökte dividera med noll"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "försökte dividera med noll i ”%%”"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 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:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "ogiltigt mål för tilldelning (op-kod %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 "identifierare %s: kvalificerade namn är inte tillåtna i 
traditionellt/POSIX-"
 "läge"
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr "identifierare %s: namnrymdsseparatorn är två kolon, inte ett"
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "den kvalificerade identifieraren ”%s” är felaktigt formad"
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
@@ -593,14 +593,14 @@ msgstr ""
 "identifierare ”%s”: namnrymdsseparatorn kan endast förekomma in gång i 
ett "
 "kvalificerat namn"
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 "att använda den reserverade identifieraren ”%s” som en namnrymd är inte 
"
 "tillåtet"
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
@@ -609,11 +609,11 @@ msgstr ""
 "att använda den reserverade identifieraren ”%s” som den andra 
komponenten i "
 "ett kvalificerat namn är inte tillåtet"
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 msgid "@namespace is a gawk extension"
 msgstr "@namespace är en gawk-utökning"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1023,88 +1023,88 @@ msgstr "rshift(%f, %f): flyttalsvärden kommer huggas 
av"
 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:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: anropad med mindre än två argument"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argument %d är inte numeriskt"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: argument %d med negativt värde %g är inte tillåtet"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: anropad med färre än två argument"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argument %d är inte numeriskt"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: argument %d med negativt värde %g är inte tillåtet"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: anropad med färre än två argument"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argument %d är inte numeriskt"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: argument %d med negativt värde %g är inte tillåtet"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: fick ett ickenumeriskt argument"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): negativt värde är inte tillåtet"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): flyttalsvärde kommer huggas av"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: ”%s” är inte en giltig lokalkategori"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: tredje argumentet är inte en vektor"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: fick ett ickenumeriskt första argument"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: fick ett ickenumeriskt andra argument"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: försökte dividera med noll"
 
-#: builtin.c:4046
+#: builtin.c:4040
 msgid "typeof: second argument is not an array"
 msgstr "typeof: andra argumentet är inte en vektor"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
@@ -1112,12 +1112,12 @@ msgstr ""
 "typeof upptäckte en ogiltig flaggkompination ”%s”, skicka gärna en "
 "felrapport."
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: felaktig argumenttyp ”%s”"
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: okänd argumenttyp ”%s”"
@@ -3537,7 +3537,7 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: okänd omdirigeringstyp %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
@@ -3545,23 +3545,23 @@ msgstr ""
 "beteendet vid matchning av ett reguljäruttryck som innehåller NULL-tecken 
är "
 "inte definierat av POSIX"
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr "felaktig NULL-byte i dynamiskt reguljäruttryck"
 
-#: re.c:172
+#: re.c:174
 #, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "kontrollsekvensen ”\\%c” i reguljäruttryck behandlad som bara 
”%c”"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 "kontrollsekvensen ”\\%c” i reguljäruttryck är inte en känd operator i "
 "reguljäruttryck"
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "komponenten ”%.*s” i reguljäruttryck skall förmodligen vara 
”[%.*s]”"
@@ -3730,12 +3730,12 @@ msgstr "Obalanserad ) eller \\)"
 msgid "No previous regular expression"
 msgstr "Inget föregående reguljärt uttryck"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr ""
 "funktionen ”%s”: kan inte använda funktionen ”%s” som ett 
parameternamn"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "kan inte poppa huvudsammanhang"
diff --git a/po/vi.gmo b/po/vi.gmo
index 33a2c1d..26f16d0 100644
Binary files a/po/vi.gmo and b/po/vi.gmo differ
diff --git a/po/vi.po b/po/vi.po
index ef38c84..4563874 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.2.0e\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2018-01-30 08:07+0700\n"
 "Last-Translator: Trần Ngọc Quân <address@hidden>\n"
 "Language-Team: Vietnamese <address@hidden>\n"
@@ -153,12 +153,12 @@ 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)"
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 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"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 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"
 
@@ -210,7 +210,7 @@ msgstr "biểu thức chính quy nằm bên phải phép 
gán"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "biểu thức chính quy nằm bên trái toán tử “~” hay 
“!~”"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "awk cũ không hỗ trợ từ khóa “in”, trừ khi nằm sau 
“for”"
 
@@ -229,329 +229,329 @@ 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:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "awk cũ không hỗ trợ mảng đa chiều"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 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"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "cuộc gọi hàm gián tiếp là một phần mở rộng gawk"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr "không thể dùng biến đặc biệt “%s” cho cú gọi hàm 
gián tiếp"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "cố gắng dùng không-phải-hàm “%s” trong cú gọi hàm"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "biểu thức in thấp không hợp lệ"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "cảnh báo: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "lỗi nghiêm trọng: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 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:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr ""
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "không thể mở tập tin nguồn “%s” để đọc (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, 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:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "không rõ lý do"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, 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:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "đã sẵn bao gồm tập tin nguồn “%s”"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, 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:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include là phần mở rộng của gawk"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "tập tin trống sau @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load là một phần mở rộng gawk"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "tên tập tin trống sau @load"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 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:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "không thể đọc tập tin nguồn “%s” (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "tập tin nguồn “%s” là rỗng"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "Lỗi PEBKAC: gặp ký tự không hợp lệ “\\%03o” trong mã 
nguồn"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "tập tin nguồn không kết thúc bằng một dòng trống"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 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"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, 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"
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, 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"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "biểu thức chính quy chưa được chấm dứt"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 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:3789
+#: awkgram.y:3791
 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:3811
+#: awkgram.y:3813
 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:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "mảng nhiều chiều là một phần mở rộng gawk"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX không cho phép toán tử “**=”"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "awk cũ không hỗ trợ toán tử “**=”"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX không cho phép toán tử “**”"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "awk cũ không hỗ trợ toán tử “**”"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "awk cũ không hỗ trợ toán tử “^=”"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "awk cũ không hỗ trợ toán tử “^”"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "chuỗi không được chấm dứt"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 #, fuzzy
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX không cho phép thoát chuỗi “\\x”"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 #, fuzzy
 msgid "backslash string continuation is not portable"
 msgstr "không thể mang khả năng dùng “\\#…” để tiếp tục 
dòng"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, 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:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "“%s” là một phần mở rộng gawk"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX không cho phép “%s”"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "awk kiểu cũ không hỗ trợ “%s”"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 #, fuzzy
 msgid "`goto' considered harmful!"
 msgstr "“goto” được xem là có hại!\n"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, 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:4598
+#: awkgram.y:4600
 #, 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"
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, 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:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 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:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: (đóng) đối số thứ hai là phần mở rộng gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 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:4794
+#: awkgram.y:4796
 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:4813
+#: awkgram.y:4815
 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"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, 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:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "không mở được “%s” để ghi (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 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:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: gặp lỗi khi đóng (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() (hàm bóng) được gọi hai lần!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "có biến bị bóng."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, 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:5085
+#: awkgram.y:5087
 #, 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:5088
+#: awkgram.y:5090
 #, 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:5092
+#: awkgram.y:5094
 #, fuzzy, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "hàm “%s”: tham số “%s” che biến toàn cục"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, 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:5188
+#: awkgram.y:5190
 #, 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:5192
+#: awkgram.y:5194
 #, 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:5224
+#: awkgram.y:5226
 #, 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:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -560,64 +560,64 @@ 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:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "gặp phép chia cho số không"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "gặp phép chia cho số không trong “%%”"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 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:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "gán đich không hợp lệ (mã thi hành “%s”)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include là phần mở rộng của gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1040,101 +1040,101 @@ 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"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: được gọi với ít hơn hai đối số"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: đối số %d không phải thuộc số"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: (và) đối số %d giá trị âm %g là không được phép"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 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:3511
+#: builtin.c:3509
 #, 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:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: (hoặc) đối số %d giá trị âm %g là không được 
phép"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: được gọi với ít hơn hai đối số"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: đối số %d không thuộc kiểu số"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: đối số %d giá trị âm %g là không được phép"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: (biên dịch) đã nhận được đối số 
không-phải-số"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): giá trị âm là không được phép"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, 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:3764
+#: builtin.c:3758
 #, 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ệ"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: đối số thứ ba không phải là mảng"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: đã nhận đối số đầu không phải thuộc số"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: đã nhận đối số thứ hai không thuộc số"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: gặp phép chia cho số không"
 
-#: builtin.c:4046
+#: builtin.c:4040
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: (chia tách) đối số thứ hai không phải là mảng"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 "typeof dò tìm thấy tổ hợp các cờ không hợp lệ “%s”; vui 
lòng báo cáo lỗi này."
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: tùy chọn không hợp lệ “%s”"
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: không biết kiểu tham số “%s”"
@@ -3591,27 +3591,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: không hiểu kiểu chuyển hướng %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr ""
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr ""
 
-#: re.c:172
+#: re.c:174
 #, fuzzy, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "thoát chuỗi “\\%c” được xử lý như là “%c” chuẩn"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
@@ -3782,12 +3782,12 @@ msgstr "Chưa khớp “)” hoặc “\\)”"
 msgid "No previous regular expression"
 msgstr "Không có biểu thức chính quy nằm trước"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr "hàm “%s”: không thể dùng hàm “%s” như là tên tham 
số"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "không thể pop (lấy ra) ngữ cảnh chính"
 
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index c87a86e..0d900d7 100644
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 628fbb3..d0e8e99 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 4.2.63\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
+"POT-Creation-Date: 2019-07-23 06:12+0300\n"
 "PO-Revision-Date: 2019-03-19 17:46+0100\n"
 "Last-Translator: Tianze Wang <address@hidden>\n"
 "Language-Team: Chinese (simplified) <address@hidden>\n"
@@ -140,11 +140,11 @@ msgstr "switch 中有重复的 case 值:%s"
 msgid "duplicate `default' detected in switch body"
 msgstr "switch 中有重复的“default”"
 
-#: awkgram.y:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "“break”在循环或 switch外使用是不允许的"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "“continue”在循环外使用是不允许的"
 
@@ -194,7 +194,7 @@ msgstr "正则表达式在赋值算符的右边"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "正则表达式在“~”或“!~”算符的左边"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "老 awk 只支持关键词“in”在“for”的后面"
 
@@ -211,316 +211,316 @@ msgstr "非重定向的“getline” 
在“%s”规则中无效"
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "在 END 环境中,非重定向的“getline”未定义"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "老 awk 不支持多维数组"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "不带括号调用“length”是不可以移植的"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "间接函数调用是一个 gawk 扩展"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr "无法使用特殊变量“%s”作为间接函数的参数"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "试图把非函数“%s”当函数来调用"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "无效的下标表达式"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "警告:"
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "致命错误:"
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "未预期的新行或字符串结束"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
 msgstr "源文件 / 命令行中的参数必须包含完整的函数或规则"
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "无法打开源文件“%s”进行读取(%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr "无法打开共享库“%s”进行读取(%s)"
 
-#: awkgram.y:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "未知原因"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr "无法包含“%s”并将其作为程序文件使用"
 
-#: awkgram.y:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "已经包含了源文件“%s”"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "已经加载了共享库“%s”"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include 是 gawk 扩展"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "@include 后的文件名为空"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load 是 gawk 扩展"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "@load 后的文件名为空"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "命令行中程序体为空"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "无法读取源文件“%s”(%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "源文件“%s”为空"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "PEBKAC 错误:源代码中有无效的字符“\\%03o”"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "源文件不以换行符结束"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "未终止的正则表达式在文件结束处以“\\”结束"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "%s:%d:tawk 正则表达式修饰符“/.../%c”无法在 gawk 
中工作"
 
-#: awkgram.y:3683
+#: awkgram.y:3685
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "tawk 正则表达式修饰符“/.../%c”无法在 gawk 中工作"
 
-#: awkgram.y:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "未终止的正则表达式"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "未终止的正则表达式在文件结束处"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "使用“\\ #...”来续行是不可移植的"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "反斜杠不是行的最后一个字符"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "多维数组是一个 gawk 扩展"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX 不允许操作符“**=”"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "老 awk 不支持操作符“**=”"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX 不允许操作符“**”"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "老 awk 不支持操作符“**”"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "老 awk 不支持操作符“^=”"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "老 awk 不支持操作符“^”"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "未结束的字符串"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 msgid "POSIX does not allow physical newlines in string values"
 msgstr "POSIX 不允许字符串的值中包含换行符"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 msgid "backslash string continuation is not portable"
 msgstr "使用“\\ #...”来续行会导致代码缺乏å…
¼å®¹æ€§ï¼ˆå¯ç§»æ¤æ€§ï¼‰"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "表达式中的无效字符“%c”"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "“%s”是 gawk 扩展"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX 不允许“%s”"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "老 awk 不支持“%s”"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 msgid "`goto' considered harmful!"
 msgstr "“goto”有害,请慎用!"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d 是 %s 的无效参数个数"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
 msgstr "%s:字符串作为 substitute 的最后一个参数无任何效果"
 
-#: awkgram.y:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "%s 第三个参数不是一个可变对象"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match:第三个参数是 gawk 扩展"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close:第二个参数是 gawk 扩展"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr "使用 dcgettext(_\"...\") 是错误的:去掉开始的下划线"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr "使用 dcngettext(_\"...\") 是错误的:去掉开始的下划线"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index:不允许将正则表达式常量作为第二个参数"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "函数“%s”:参数“%s”掩盖了公共变量"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "无法以写模式打开“%s” (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "发送变量列表到标准错误输出"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s:关闭失败(%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() 被调用两次!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "有变量被掩盖。"
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "函数名“%s”前面已定义"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
 msgstr "函数“%s”:无法使用函数名作为参数名"
 
-#: awkgram.y:5088
+#: awkgram.y:5090
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
 msgstr "函数“%s”:无法使用特殊变量“%s”作为函数参数"
 
-#: awkgram.y:5092
+#: awkgram.y:5094
 #, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "函数“%s”:参数“%s”中不允许包
含命名空间(namespace)"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "函数“%s”:第 %d 个参数, “%s”, 与第 %d 个参数重复"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "调用了函数“%s”,但其未被定义"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "定义了函数“%s”,但从未被调用"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "第 %d 个参数的正则表达式常量产生布尔值"
 
-#: awkgram.y:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -529,63 +529,63 @@ msgstr ""
 "函数“%s”被调用时名字与“(”间有空格,\n"
 "或被用作变量或数组"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "试图除0"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "在“%%”中试图除 0"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr "无法将值赋给字段后增表达式"
 
-#: awkgram.y:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "赋值的目标无效(操作码 %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr "标识符 %s:传统 / POSIX 模式下不å…
è®¸ä½¿ç”¨åˆè§„名称(qualified name)"
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr "标识符 %s:命名空间的分隔符应为双冒号(::)"
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "合规标识符“%s”格式错误"
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr "æ 
‡è¯†ç¬¦â€œ%s”:合规名称中的命名空间分隔符最多只能出现一次"
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr "不允许将反向标识符“%s”作为命名空间"
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr "不允许将反向æ 
‡è¯†ç¬¦â€œ%s”作为合规名称的第二个组成部分"
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 msgid "@namespace is a gawk extension"
 msgstr "@namespace 是 gawk 保留字"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr "命名空间“%s”必须符合标识符的命名规则"
@@ -988,99 +988,99 @@ msgstr "rshift(%f, %f):小数部分会被截断"
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f):过大的移位会得到奇怪的结果"
 
-#: builtin.c:3474 mpfr.c:982
+#: builtin.c:3473 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and:调用时传递的参数不足2个"
 
-#: builtin.c:3479
+#: builtin.c:3478
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and:参数 %d 不是数值"
 
-#: builtin.c:3483
+#: builtin.c:3482
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and:参数 %d 不允许为负值 %g"
 
-#: builtin.c:3506 mpfr.c:1014
+#: builtin.c:3504 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or:调用时传递的参数不足2个"
 
-#: builtin.c:3511
+#: builtin.c:3509
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or:参数 %d 不是数值"
 
-#: builtin.c:3515
+#: builtin.c:3513
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or:数 %d 不允许为负值 %g"
 
-#: builtin.c:3537 mpfr.c:1045
+#: builtin.c:3534 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor:调用时传递的参数不足2个"
 
-#: builtin.c:3543
+#: builtin.c:3540
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor:参数 %d 不是数值"
 
-#: builtin.c:3547
+#: builtin.c:3544
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor:数 %d 不允许为负值 %g"
 
-#: builtin.c:3572 mpfr.c:804
+#: builtin.c:3566 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl:收到非数字参数"
 
-#: builtin.c:3577
+#: builtin.c:3571
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f):不允许使用负值"
 
-#: builtin.c:3580
+#: builtin.c:3574
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f):小数部分会被截断"
 
-#: builtin.c:3764
+#: builtin.c:3758
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext:“%s”不是一个有效的区域目录"
 
-#: builtin.c:3988 mpfr.c:1203
+#: builtin.c:3982 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv:第三个参数不是数组"
 
-#: builtin.c:3996 mpfr.c:1211
+#: builtin.c:3990 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv:第一个参数不是数字"
 
-#: builtin.c:3998 mpfr.c:1213
+#: builtin.c:3992 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv:第二个参数不是数字"
 
-#: builtin.c:4007 mpfr.c:1252
+#: builtin.c:4001 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv:试图除0"
 
-#: builtin.c:4046
+#: builtin.c:4040
 msgid "typeof: second argument is not an array"
 msgstr "typeof:第二个参数不是数组"
 
-#: builtin.c:4082
+#: builtin.c:4076
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr "typeof 函数发现一个无
效的选项组合“%s”;请向开发者汇报此错误。"
 
-#: builtin.c:4101
+#: builtin.c:4095
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof:参数类型“%s”无效"
 
-#: builtin.c:4105
+#: builtin.c:4099
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof:参数类型“%s”未知"
@@ -3437,27 +3437,27 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str:未知重定向类型 %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
 msgstr "POSIX 规范中不支持匹配包含 NUL 字符的正则表达式"
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr "动态正则表达式中含有无效的 NUL 字节"
 
-#: re.c:172
+#: re.c:174
 #, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr 
"正则表达式中的转义序列“\\%c”将被当作纯文本“%c”"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr "正则表达式中的转义序列“\\%c”不是有效的操作符"
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "正则表达式成分“%.*s”可能应为“[%.*s]”"
@@ -3626,12 +3626,12 @@ msgstr "未匹配的 ) 或 \\)"
 msgid "No previous regular expression"
 msgstr "前面没有正则表达式"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr "函数“%s”:无法将函数名“%s”作为参数名"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "无法弹出 main 的上下文"
 

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=01ec45a8915f531cc3491e5b3ca5e2c2ef0a57d1

commit 01ec45a8915f531cc3491e5b3ca5e2c2ef0a57d1
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jul 23 06:21:11 2019 +0300

    Fix typos in test/Makefile.am.

diff --git a/test/ChangeLog b/test/ChangeLog
index 5239ff9..9b608be 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
+2019-07-23         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.am (EXTRA_DISTS): Fix typos in filenames.
+
 2019-06-28         Michal Jaegermann     <address@hidden>
 
        Add backwards compatibility tests for inplace.
diff --git a/test/Makefile.am b/test/Makefile.am
index 5b57d9c..f16225d 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -267,8 +267,8 @@ EXTRA_DIST = \
        dynlj.awk \
        dynlj.ok \
        escapebrace.awk \
-       scapebrace.in \
-       scapebrace.ok \
+       escapebrace.in \
+       escapebrace.ok \
        eofsplit.awk \
        eofsplit.ok \
        eofsrc1a.awk \
diff --git a/test/Makefile.in b/test/Makefile.in
index 3c18b26..4b10060 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -526,8 +526,8 @@ EXTRA_DIST = \
        dynlj.awk \
        dynlj.ok \
        escapebrace.awk \
-       scapebrace.in \
-       scapebrace.ok \
+       escapebrace.in \
+       escapebrace.ok \
        eofsplit.awk \
        eofsplit.ok \
        eofsrc1a.awk \

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=9a80874f7f13422d2e60cac2bfa87469dfa25152

commit 9a80874f7f13422d2e60cac2bfa87469dfa25152
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jul 23 06:11:43 2019 +0300

    Further improvements to bitwise functions.

diff --git a/ChangeLog b/ChangeLog
index 6ba53f6..5a20c09 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-07-23         Koichi Murase         <address@hidden>
+
+       * builtin.c (do_xor): Remove unneeded local variable `i'. Simplify
+       the loop's computation.
+       (do_and): Improve the initial value for the result.
+
 2019-07-23         Andrew J. Schorr      <address@hidden>
 
        Fix reporting of negative arguments for and(), or() and xor().
diff --git a/builtin.c b/builtin.c
index 2f37968..1c205aa 100644
--- a/builtin.c
+++ b/builtin.c
@@ -3468,7 +3468,7 @@ do_and(int nargs)
        uintmax_t res, uval;
        AWKNUM val;
 
-       res = ~0;       /* start off with all ones */
+       res = ~(uintmax_t) 0;   /* start off with all ones */
        if (nargs < 2)
                fatal(_("and: called with less than two arguments"));
 
@@ -3529,13 +3529,12 @@ do_xor(int nargs)
        NODE *s1;
        uintmax_t res, uval;
        AWKNUM val;
-       int i;
 
        if (nargs < 2)
                fatal(_("xor: called with less than two arguments"));
 
-       res = 0;        /* silence compiler warning */
-       for (i = 1; nargs > 0; nargs--, i++) {
+       res = 0;        /* start with all zeroes */
+       for (; nargs > 0; nargs--) {
                s1 = POP_SCALAR();
                if (do_lint && (fixtype(s1)->flags & NUMBER) == 0)
                        lintwarn(_("xor: argument %d is non-numeric"), nargs);
@@ -3545,10 +3544,7 @@ do_xor(int nargs)
                        fatal(_("xor: argument %d negative value %g is not 
allowed"), nargs, val);
 
                uval = (uintmax_t) val;
-               if (i == 1)
-                       res = uval;
-               else
-                       res ^= uval;
+               res ^= uval;
 
                DEREF(s1);
        }

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=3940fe507bc67794100e1f075597f451ef1f3c22

commit 3940fe507bc67794100e1f075597f451ef1f3c22
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jul 23 06:06:41 2019 +0300

    Fix checking for negative arguments to bitwise functions.

diff --git a/ChangeLog b/ChangeLog
index a5b2c80..6ba53f6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2019-07-23         Andrew J. Schorr      <address@hidden>
+
+       Fix reporting of negative arguments for and(), or() and xor().
+       Thanks to Koichi Murase <address@hidden> for the
+       report.
+
+       * builtin.c (do_and): Use nargs instead of i in the loop to
+       check for non-numeric and negative arguments.
+       (do_or): Ditto.
+       (do_xor): Ditto.
+
 2019-07-23         Arnold D. Robbins     <address@hidden>
 
        * Checklist: Updated.
@@ -23,6 +34,7 @@
        * gawkapi.h: Update copyright year, fix some spelling errors.
 
 2019-07-08         Andrew J. Schorr      <address@hidden>
+2019-07-08         Andrew J. Schorr      <address@hidden>
 
        * gawkapi.h (gawk_api_major_version): Bump from 2 to 3 because the
        namespace changes altered the function signatures in gawk_api_t.
diff --git a/builtin.c b/builtin.c
index bea88b8..2f37968 100644
--- a/builtin.c
+++ b/builtin.c
@@ -3467,20 +3467,19 @@ do_and(int nargs)
        NODE *s1;
        uintmax_t res, uval;
        AWKNUM val;
-       int i;
 
        res = ~0;       /* start off with all ones */
        if (nargs < 2)
                fatal(_("and: called with less than two arguments"));
 
-       for (i = 1; nargs > 0; nargs--, i++) {
+       for (; nargs > 0; nargs--) {
                s1 = POP_SCALAR();
                if (do_lint && (fixtype(s1)->flags & NUMBER) == 0)
-                       lintwarn(_("and: argument %d is non-numeric"), i);
+                       lintwarn(_("and: argument %d is non-numeric"), nargs);
 
                val = force_number(s1)->numbr;
                if (val < 0)
-                       fatal(_("and: argument %d negative value %g is not 
allowed"), i, val);
+                       fatal(_("and: argument %d negative value %g is not 
allowed"), nargs, val);
 
                uval = (uintmax_t) val;
                res &= uval;
@@ -3499,20 +3498,19 @@ do_or(int nargs)
        NODE *s1;
        uintmax_t res, uval;
        AWKNUM val;
-       int i;
 
        res = 0;
        if (nargs < 2)
                fatal(_("or: called with less than two arguments"));
 
-       for (i = 1; nargs > 0; nargs--, i++) {
+       for (; nargs > 0; nargs--) {
                s1 = POP_SCALAR();
                if (do_lint && (fixtype(s1)->flags & NUMBER) == 0)
-                       lintwarn(_("or: argument %d is non-numeric"), i);
+                       lintwarn(_("or: argument %d is non-numeric"), nargs);
 
                val = force_number(s1)->numbr;
                if (val < 0)
-                       fatal(_("or: argument %d negative value %g is not 
allowed"), i, val);
+                       fatal(_("or: argument %d negative value %g is not 
allowed"), nargs, val);
 
                uval = (uintmax_t) val;
                res |= uval;
@@ -3540,11 +3538,11 @@ do_xor(int nargs)
        for (i = 1; nargs > 0; nargs--, i++) {
                s1 = POP_SCALAR();
                if (do_lint && (fixtype(s1)->flags & NUMBER) == 0)
-                       lintwarn(_("xor: argument %d is non-numeric"), i);
+                       lintwarn(_("xor: argument %d is non-numeric"), nargs);
 
                val = force_number(s1)->numbr;
                if (val < 0)
-                       fatal(_("xor: argument %d negative value %g is not 
allowed"), i, val);
+                       fatal(_("xor: argument %d negative value %g is not 
allowed"), nargs, val);
 
                uval = (uintmax_t) val;
                if (i == 1)

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=2a7b1a82bccd03781452124dff9194ab308a83fb

commit 2a7b1a82bccd03781452124dff9194ab308a83fb
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jul 23 06:03:03 2019 +0300

    Update Checklist.

diff --git a/ChangeLog b/ChangeLog
index ea0711a..a5b2c80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2019-07-23         Arnold D. Robbins     <address@hidden>
+
+       * Checklist: Updated.
+
 2019-07-21         Arnold D. Robbins     <address@hidden>
 
        * command.y, custom.h, eval.c, ext.c, field.c, io.c,
diff --git a/Checklist b/Checklist
index 579e618..d9c6fb9 100644
--- a/Checklist
+++ b/Checklist
@@ -1,4 +1,4 @@
-Thu Apr 18 20:01:43 IDT 2019
+Tue Jul 23 05:56:35 IDT 2019
 ============================
 
 A checklist for making releases
@@ -28,6 +28,10 @@ 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
+Italian translations are up to date:
+       doc/it/gawktexi.in
+       doc/it/gawk.1
+       po/it.po
 Run prepinfo on the manual.
 Spell check the manual.
 Update the wordlist for spell checking.

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=d5eae9adb4b9ebee89fe4978db0b12b4d7a1328c

commit d5eae9adb4b9ebee89fe4978db0b12b4d7a1328c
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jul 23 06:02:47 2019 +0300

    Documentation updates and fixes.

diff --git a/NEWS b/NEWS
index 2e335d8..b401d40 100644
--- a/NEWS
+++ b/NEWS
@@ -8,7 +8,9 @@ Changes from 5.0.1 to 5.1.0
 ---------------------------
 
 1. The major version of the API is bumped to 3, something that should
-have happened at the 5.0.0 release but didn't.
+   have happened at the 5.0.0 release but didn't.
+
+2. Several bugs have been fixed.  See the ChangeLog for details.
 
 Changes from 5.0.0 to 5.0.1
 ---------------------------
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 6bf265e..959fa3e 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,10 @@
+2019-07-23         Arnold D. Robbins     <address@hidden>
+
+       * gawk.1: Fix typo, update edition. Thanks to Antonio
+       Columbo for the pointers.
+       * gawktexi.in: Update EDITION. Thanks to Antonio Columbo.
+       Fix two typos. Thanks to Mark Krauze.
+
 2019-07-21         Arnold D. Robbins     <address@hidden>
 
        * awkcard.in, gawk.1, gawkinet.texi, gawktexi.in: Copyrights
diff --git a/doc/gawk.1 b/doc/gawk.1
index 1ad2b0c..1469f00 100644
--- a/doc/gawk.1
+++ b/doc/gawk.1
@@ -1,4 +1,4 @@
-1ds PX \s-1POSIX\s+1
+.ds PX \s-1POSIX\s+1
 .ds UX \s-1UNIX\s+1
 .ds GN \s-1GNU\s+1
 .ds AK \s-1AWK\s+1
@@ -4223,7 +4223,7 @@ Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger,
 Addison-Wesley, 1988.  ISBN 0-201-07981-X.
 .PP
 \*(EP,
-Edition 5.0, shipped with the
+Edition 5.1, shipped with the
 .I gawk
 source.
 The current version of this document is available online at
diff --git a/doc/gawk.info b/doc/gawk.info
index d43c970..16ff724 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -4,7 +4,7 @@ Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2019
 Free Software Foundation, Inc.
 
 
-   This is Edition 5.0 of 'GAWK: Effective AWK Programming: A User's
+   This is Edition 5.1 of 'GAWK: Effective AWK Programming: A User's
 Guide for GNU Awk', for the 5.1.0 (or later) version of the GNU
 implementation of AWK.
 
@@ -41,7 +41,7 @@ particular records in a file and perform operations upon them.
 Free Software Foundation, Inc.
 
 
-   This is Edition 5.0 of 'GAWK: Effective AWK Programming: A User's
+   This is Edition 5.1 of 'GAWK: Effective AWK Programming: A User's
 Guide for GNU Awk', for the 5.1.0 (or later) version of the GNU
 implementation of AWK.
 
@@ -1264,7 +1264,7 @@ For FSF edition 4.0, the content was thoroughly reviewed 
and updated.
 All references to 'gawk' versions prior to 4.0 were removed.  Of
 significant note for that edition was the addition of *note Debugger::.
 
-   For FSF edition 5.0, the content has been reorganized into parts, and
+   For FSF edition 5.1, the content has been reorganized into parts, and
 the major new additions are *note Arbitrary Precision Arithmetic::, and
 *note Dynamic Extensions::.
 
@@ -5998,7 +5998,7 @@ you want your program to be portable to all 'awk' 
implementations.
 
      NOTE: Unfortunately, 'gawk' has not been consistent in its
      treatment of a construct like '"echo " "date" | getline'.  Most
-     versions, including the current version, treat it at as '("echo "
+     versions, including the current version, treat it as '("echo "
      "date") | getline'.  (This is also how BWK 'awk' behaves.)  Some
      versions instead treat it as '"echo " ("date" | getline)'.  (This
      is how 'mawk' behaves.)  In short, _always_ use explicit
@@ -7752,7 +7752,7 @@ lines by ending the line with a backslash.  For example 
in C:
 
      int main()
      {
-         printf "hello, \
+         printf("hello, \
      world\n");
          return 0;
      }
@@ -37029,490 +37029,490 @@ Node: Getline/File261934
 Node: Getline/Variable/File263322
 Ref: Getline/Variable/File-Footnote-1264927
 Node: Getline/Pipe265015
-Node: Getline/Variable/Pipe267722
-Node: Getline/Coprocess268857
-Node: Getline/Variable/Coprocess270124
-Node: Getline Notes270866
-Node: Getline Summary273663
-Ref: table-getline-variants274087
-Node: Read Timeout274835
-Ref: Read Timeout-Footnote-1278741
-Node: Retrying Input278799
-Node: Command-line directories279998
-Node: Input Summary280904
-Node: Input Exercises284076
-Node: Printing284510
-Node: Print286344
-Node: Print Examples287801
-Node: Output Separators290581
-Node: OFMT292598
-Node: Printf293954
-Node: Basic Printf294739
-Node: Control Letters296313
-Node: Format Modifiers301477
-Node: Printf Examples307492
-Node: Redirection309978
-Node: Special FD316819
-Ref: Special FD-Footnote-1319987
-Node: Special Files320061
-Node: Other Inherited Files320678
-Node: Special Network321679
-Node: Special Caveats322539
-Node: Close Files And Pipes323488
-Ref: table-close-pipe-return-values330395
-Ref: Close Files And Pipes-Footnote-1331208
-Ref: Close Files And Pipes-Footnote-2331356
-Node: Nonfatal331508
-Node: Output Summary333846
-Node: Output Exercises335068
-Node: Expressions335747
-Node: Values336935
-Node: Constants337613
-Node: Scalar Constants338304
-Ref: Scalar Constants-Footnote-1340828
-Node: Nondecimal-numbers341078
-Node: Regexp Constants344079
-Node: Using Constant Regexps344605
-Node: Standard Regexp Constants345227
-Node: Strong Regexp Constants348415
-Node: Variables351373
-Node: Using Variables352030
-Node: Assignment Options353940
-Node: Conversion356407
-Node: Strings And Numbers356931
-Ref: Strings And Numbers-Footnote-1359994
-Node: Locale influences conversions360103
-Ref: table-locale-affects362861
-Node: All Operators363479
-Node: Arithmetic Ops364108
-Node: Concatenation366614
-Ref: Concatenation-Footnote-1369461
-Node: Assignment Ops369568
-Ref: table-assign-ops374559
-Node: Increment Ops375872
-Node: Truth Values and Conditions379332
-Node: Truth Values380406
-Node: Typing and Comparison381454
-Node: Variable Typing382274
-Ref: Variable Typing-Footnote-1388737
-Ref: Variable Typing-Footnote-2388809
-Node: Comparison Operators388886
-Ref: table-relational-ops389305
-Node: POSIX String Comparison392800
-Ref: POSIX String Comparison-Footnote-1394495
-Ref: POSIX String Comparison-Footnote-2394634
-Node: Boolean Ops394718
-Ref: Boolean Ops-Footnote-1399200
-Node: Conditional Exp399292
-Node: Function Calls401028
-Node: Precedence404905
-Node: Locales408564
-Node: Expressions Summary410196
-Node: Patterns and Actions412769
-Node: Pattern Overview413889
-Node: Regexp Patterns415566
-Node: Expression Patterns416108
-Node: Ranges419889
-Node: BEGIN/END422997
-Node: Using BEGIN/END423758
-Ref: Using BEGIN/END-Footnote-1426494
-Node: I/O And BEGIN/END426600
-Node: BEGINFILE/ENDFILE428914
-Node: Empty431827
-Node: Using Shell Variables432144
-Node: Action Overview434418
-Node: Statements436743
-Node: If Statement438591
-Node: While Statement440086
-Node: Do Statement442114
-Node: For Statement443262
-Node: Switch Statement446433
-Node: Break Statement448819
-Node: Continue Statement450911
-Node: Next Statement452738
-Node: Nextfile Statement455121
-Node: Exit Statement457773
-Node: Built-in Variables460176
-Node: User-modified461309
-Node: Auto-set469076
-Ref: Auto-set-Footnote-1485883
-Ref: Auto-set-Footnote-2486089
-Node: ARGC and ARGV486145
-Node: Pattern Action Summary490358
-Node: Arrays492788
-Node: Array Basics494117
-Node: Array Intro494961
-Ref: figure-array-elements496936
-Ref: Array Intro-Footnote-1499640
-Node: Reference to Elements499768
-Node: Assigning Elements502232
-Node: Array Example502723
-Node: Scanning an Array504482
-Node: Controlling Scanning507504
-Ref: Controlling Scanning-Footnote-1512903
-Node: Numeric Array Subscripts513219
-Node: Uninitialized Subscripts515403
-Node: Delete517022
-Ref: Delete-Footnote-1519774
-Node: Multidimensional519831
-Node: Multiscanning522926
-Node: Arrays of Arrays524517
-Node: Arrays Summary529285
-Node: Functions531378
-Node: Built-in532416
-Node: Calling Built-in533497
-Node: Numeric Functions535493
-Ref: Numeric Functions-Footnote-1539521
-Ref: Numeric Functions-Footnote-2540169
-Ref: Numeric Functions-Footnote-3540217
-Node: String Functions540489
-Ref: String Functions-Footnote-1564347
-Ref: String Functions-Footnote-2564475
-Ref: String Functions-Footnote-3564723
-Node: Gory Details564810
-Ref: table-sub-escapes566601
-Ref: table-sub-proposed568120
-Ref: table-posix-sub569483
-Ref: table-gensub-escapes571024
-Ref: Gory Details-Footnote-1571847
-Node: I/O Functions572001
-Ref: table-system-return-values578469
-Ref: I/O Functions-Footnote-1580549
-Ref: I/O Functions-Footnote-2580697
-Node: Time Functions580817
-Ref: Time Functions-Footnote-1591488
-Ref: Time Functions-Footnote-2591556
-Ref: Time Functions-Footnote-3591714
-Ref: Time Functions-Footnote-4591825
-Ref: Time Functions-Footnote-5591937
-Ref: Time Functions-Footnote-6592164
-Node: Bitwise Functions592430
-Ref: table-bitwise-ops593024
-Ref: Bitwise Functions-Footnote-1599087
-Ref: Bitwise Functions-Footnote-2599260
-Node: Type Functions599451
-Node: I18N Functions602314
-Node: User-defined603965
-Node: Definition Syntax604777
-Ref: Definition Syntax-Footnote-1610464
-Node: Function Example610535
-Ref: Function Example-Footnote-1613457
-Node: Function Calling613479
-Node: Calling A Function614067
-Node: Variable Scope615025
-Node: Pass By Value/Reference618019
-Node: Function Caveats620663
-Ref: Function Caveats-Footnote-1622710
-Node: Return Statement622830
-Node: Dynamic Typing625809
-Node: Indirect Calls626739
-Ref: Indirect Calls-Footnote-1636991
-Node: Functions Summary637119
-Node: Library Functions639824
-Ref: Library Functions-Footnote-1643431
-Ref: Library Functions-Footnote-2643574
-Node: Library Names643745
-Ref: Library Names-Footnote-1647412
-Ref: Library Names-Footnote-2647635
-Node: General Functions647721
-Node: Strtonum Function648824
-Node: Assert Function651846
-Node: Round Function655172
-Node: Cliff Random Function656712
-Node: Ordinal Functions657728
-Ref: Ordinal Functions-Footnote-1660791
-Ref: Ordinal Functions-Footnote-2661043
-Node: Join Function661253
-Ref: Join Function-Footnote-1663023
-Node: Getlocaltime Function663223
-Node: Readfile Function666965
-Node: Shell Quoting668942
-Node: Data File Management670343
-Node: Filetrans Function670975
-Node: Rewind Function675071
-Node: File Checking676980
-Ref: File Checking-Footnote-1678314
-Node: Empty Files678515
-Node: Ignoring Assigns680494
-Node: Getopt Function682044
-Ref: Getopt Function-Footnote-1693513
-Node: Passwd Functions693713
-Ref: Passwd Functions-Footnote-1702552
-Node: Group Functions702640
-Ref: Group Functions-Footnote-1710538
-Node: Walking Arrays710745
-Node: Library Functions Summary713753
-Node: Library Exercises715159
-Node: Sample Programs715624
-Node: Running Examples716394
-Node: Clones717122
-Node: Cut Program718346
-Node: Egrep Program728275
-Ref: Egrep Program-Footnote-1735787
-Node: Id Program735897
-Node: Split Program739577
-Ref: Split Program-Footnote-1743035
-Node: Tee Program743164
-Node: Uniq Program745954
-Node: Wc Program753575
-Ref: Wc Program-Footnote-1757830
-Node: Miscellaneous Programs757924
-Node: Dupword Program759137
-Node: Alarm Program761167
-Node: Translate Program766022
-Ref: Translate Program-Footnote-1770587
-Node: Labels Program770857
-Ref: Labels Program-Footnote-1774208
-Node: Word Sorting774292
-Node: History Sorting778364
-Node: Extract Program780199
-Node: Simple Sed788253
-Node: Igawk Program791327
-Ref: Igawk Program-Footnote-1805658
-Ref: Igawk Program-Footnote-2805860
-Ref: Igawk Program-Footnote-3805982
-Node: Anagram Program806097
-Node: Signature Program809159
-Node: Programs Summary810406
-Node: Programs Exercises811620
-Ref: Programs Exercises-Footnote-1815749
-Node: Advanced Features815840
-Node: Nondecimal Data817830
-Node: Array Sorting819421
-Node: Controlling Array Traversal820121
-Ref: Controlling Array Traversal-Footnote-1828489
-Node: Array Sorting Functions828607
-Ref: Array Sorting Functions-Footnote-1833698
-Node: Two-way I/O833894
-Ref: Two-way I/O-Footnote-1841615
-Ref: Two-way I/O-Footnote-2841802
-Node: TCP/IP Networking841884
-Node: Profiling845002
-Node: Advanced Features Summary854017
-Node: Internationalization855861
-Node: I18N and L10N857341
-Node: Explaining gettext858028
-Ref: Explaining gettext-Footnote-1863920
-Ref: Explaining gettext-Footnote-2864105
-Node: Programmer i18n864270
-Ref: Programmer i18n-Footnote-1869219
-Node: Translator i18n869268
-Node: String Extraction870062
-Ref: String Extraction-Footnote-1871194
-Node: Printf Ordering871280
-Ref: Printf Ordering-Footnote-1874066
-Node: I18N Portability874130
-Ref: I18N Portability-Footnote-1876586
-Node: I18N Example876649
-Ref: I18N Example-Footnote-1879924
-Ref: I18N Example-Footnote-2879997
-Node: Gawk I18N880106
-Node: I18N Summary880755
-Node: Debugger882096
-Node: Debugging883096
-Node: Debugging Concepts883537
-Node: Debugging Terms885346
-Node: Awk Debugging887921
-Ref: Awk Debugging-Footnote-1888866
-Node: Sample Debugging Session888998
-Node: Debugger Invocation889532
-Node: Finding The Bug890918
-Node: List of Debugger Commands897392
-Node: Breakpoint Control898725
-Node: Debugger Execution Control902419
-Node: Viewing And Changing Data905781
-Node: Execution Stack909322
-Node: Debugger Info910959
-Node: Miscellaneous Debugger Commands915030
-Node: Readline Support920092
-Node: Limitations920988
-Node: Debugging Summary923542
-Node: Namespaces924821
-Node: Global Namespace925932
-Node: Qualified Names927330
-Node: Default Namespace928329
-Node: Changing The Namespace929070
-Node: Naming Rules930684
-Node: Internal Name Management932532
-Node: Namespace Example933574
-Node: Namespace And Features936136
-Node: Namespace Summary937571
-Node: Arbitrary Precision Arithmetic939048
-Node: Computer Arithmetic940535
-Ref: table-numeric-ranges944301
-Ref: table-floating-point-ranges944794
-Ref: Computer Arithmetic-Footnote-1945452
-Node: Math Definitions945509
-Ref: table-ieee-formats948825
-Ref: Math Definitions-Footnote-1949428
-Node: MPFR features949533
-Node: FP Math Caution951251
-Ref: FP Math Caution-Footnote-1952323
-Node: Inexactness of computations952692
-Node: Inexact representation953652
-Node: Comparing FP Values955012
-Node: Errors accumulate956253
-Node: Getting Accuracy957686
-Node: Try To Round960396
-Node: Setting precision961295
-Ref: table-predefined-precision-strings961992
-Node: Setting the rounding mode963822
-Ref: table-gawk-rounding-modes964196
-Ref: Setting the rounding mode-Footnote-1968127
-Node: Arbitrary Precision Integers968306
-Ref: Arbitrary Precision Integers-Footnote-1971481
-Node: Checking for MPFR971630
-Node: POSIX Floating Point Problems973104
-Ref: POSIX Floating Point Problems-Footnote-1977389
-Node: Floating point summary977427
-Node: Dynamic Extensions979617
-Node: Extension Intro981170
-Node: Plugin License982436
-Node: Extension Mechanism Outline983233
-Ref: figure-load-extension983672
-Ref: figure-register-new-function985237
-Ref: figure-call-new-function986329
-Node: Extension API Description988391
-Node: Extension API Functions Introduction990033
-Ref: table-api-std-headers991869
-Node: General Data Types995734
-Ref: General Data Types-Footnote-11004095
-Node: Memory Allocation Functions1004394
-Ref: Memory Allocation Functions-Footnote-11008604
-Node: Constructor Functions1008703
-Node: Registration Functions1012289
-Node: Extension Functions1012974
-Node: Exit Callback Functions1018296
-Node: Extension Version String1019546
-Node: Input Parsers1020209
-Node: Output Wrappers1032930
-Node: Two-way processors1037442
-Node: Printing Messages1039707
-Ref: Printing Messages-Footnote-11040878
-Node: Updating ERRNO1041031
-Node: Requesting Values1041770
-Ref: table-value-types-returned1042507
-Node: Accessing Parameters1043443
-Node: Symbol Table Access1044678
-Node: Symbol table by name1045190
-Ref: Symbol table by name-Footnote-11048214
-Node: Symbol table by cookie1048342
-Ref: Symbol table by cookie-Footnote-11052527
-Node: Cached values1052591
-Ref: Cached values-Footnote-11056127
-Node: Array Manipulation1056280
-Ref: Array Manipulation-Footnote-11057371
-Node: Array Data Types1057408
-Ref: Array Data Types-Footnote-11060066
-Node: Array Functions1060158
-Node: Flattening Arrays1064656
-Node: Creating Arrays1071632
-Node: Redirection API1076399
-Node: Extension API Variables1079232
-Node: Extension Versioning1079943
-Ref: gawk-api-version1080372
-Node: Extension GMP/MPFR Versioning1082103
-Node: Extension API Informational Variables1083731
-Node: Extension API Boilerplate1084804
-Node: Changes from API V11088778
-Node: Finding Extensions1090350
-Node: Extension Example1090909
-Node: Internal File Description1091707
-Node: Internal File Ops1095787
-Ref: Internal File Ops-Footnote-11107137
-Node: Using Internal File Ops1107277
-Ref: Using Internal File Ops-Footnote-11109660
-Node: Extension Samples1109934
-Node: Extension Sample File Functions1111463
-Node: Extension Sample Fnmatch1119112
-Node: Extension Sample Fork1120599
-Node: Extension Sample Inplace1121817
-Node: Extension Sample Ord1125442
-Node: Extension Sample Readdir1126278
-Ref: table-readdir-file-types1127167
-Node: Extension Sample Revout1127972
-Node: Extension Sample Rev2way1128561
-Node: Extension Sample Read write array1129301
-Node: Extension Sample Readfile1131243
-Node: Extension Sample Time1132338
-Node: Extension Sample API Tests1133686
-Node: gawkextlib1134178
-Node: Extension summary1137096
-Node: Extension Exercises1140798
-Node: Language History1142040
-Node: V7/SVR3.11143696
-Node: SVR41145848
-Node: POSIX1147282
-Node: BTL1148662
-Node: POSIX/GNU1149391
-Node: Feature History1155169
-Node: Common Extensions1171362
-Node: Ranges and Locales1172645
-Ref: Ranges and Locales-Footnote-11177261
-Ref: Ranges and Locales-Footnote-21177288
-Ref: Ranges and Locales-Footnote-31177523
-Node: Contributors1177744
-Node: History summary1183697
-Node: Installation1185077
-Node: Gawk Distribution1186021
-Node: Getting1186505
-Node: Extracting1187468
-Node: Distribution contents1189106
-Node: Unix Installation1195586
-Node: Quick Installation1196268
-Node: Shell Startup Files1198682
-Node: Additional Configuration Options1199771
-Node: Configuration Philosophy1202086
-Node: Non-Unix Installation1204455
-Node: PC Installation1204915
-Node: PC Binary Installation1205753
-Node: PC Compiling1206188
-Node: PC Using1207305
-Node: Cygwin1210858
-Node: MSYS1211957
-Node: VMS Installation1212458
-Node: VMS Compilation1213249
-Ref: VMS Compilation-Footnote-11214478
-Node: VMS Dynamic Extensions1214536
-Node: VMS Installation Details1216221
-Node: VMS Running1218474
-Node: VMS GNV1222753
-Node: VMS Old Gawk1223488
-Node: Bugs1223959
-Node: Bug address1224622
-Node: Usenet1227604
-Node: Maintainers1228608
-Node: Other Versions1229869
-Node: Installation summary1236957
-Node: Notes1238159
-Node: Compatibility Mode1238953
-Node: Additions1239735
-Node: Accessing The Source1240660
-Node: Adding Code1242097
-Node: New Ports1248316
-Node: Derived Files1252691
-Ref: Derived Files-Footnote-11258351
-Ref: Derived Files-Footnote-21258386
-Ref: Derived Files-Footnote-31258984
-Node: Future Extensions1259098
-Node: Implementation Limitations1259756
-Node: Extension Design1260939
-Node: Old Extension Problems1262083
-Ref: Old Extension Problems-Footnote-11263601
-Node: Extension New Mechanism Goals1263658
-Ref: Extension New Mechanism Goals-Footnote-11267022
-Node: Extension Other Design Decisions1267211
-Node: Extension Future Growth1269324
-Node: Notes summary1270160
-Node: Basic Concepts1271318
-Node: Basic High Level1271999
-Ref: figure-general-flow1272281
-Ref: figure-process-flow1272966
-Ref: Basic High Level-Footnote-11276267
-Node: Basic Data Typing1276452
-Node: Glossary1279780
-Node: Copying1311618
-Node: GNU Free Documentation License1349161
-Node: Index1374281
+Node: Getline/Variable/Pipe267719
+Node: Getline/Coprocess268854
+Node: Getline/Variable/Coprocess270121
+Node: Getline Notes270863
+Node: Getline Summary273660
+Ref: table-getline-variants274084
+Node: Read Timeout274832
+Ref: Read Timeout-Footnote-1278738
+Node: Retrying Input278796
+Node: Command-line directories279995
+Node: Input Summary280901
+Node: Input Exercises284073
+Node: Printing284507
+Node: Print286341
+Node: Print Examples287798
+Node: Output Separators290578
+Node: OFMT292595
+Node: Printf293951
+Node: Basic Printf294736
+Node: Control Letters296310
+Node: Format Modifiers301474
+Node: Printf Examples307489
+Node: Redirection309975
+Node: Special FD316816
+Ref: Special FD-Footnote-1319984
+Node: Special Files320058
+Node: Other Inherited Files320675
+Node: Special Network321676
+Node: Special Caveats322536
+Node: Close Files And Pipes323485
+Ref: table-close-pipe-return-values330392
+Ref: Close Files And Pipes-Footnote-1331205
+Ref: Close Files And Pipes-Footnote-2331353
+Node: Nonfatal331505
+Node: Output Summary333843
+Node: Output Exercises335065
+Node: Expressions335744
+Node: Values336932
+Node: Constants337610
+Node: Scalar Constants338301
+Ref: Scalar Constants-Footnote-1340825
+Node: Nondecimal-numbers341075
+Node: Regexp Constants344076
+Node: Using Constant Regexps344602
+Node: Standard Regexp Constants345224
+Node: Strong Regexp Constants348412
+Node: Variables351370
+Node: Using Variables352027
+Node: Assignment Options353937
+Node: Conversion356404
+Node: Strings And Numbers356928
+Ref: Strings And Numbers-Footnote-1359991
+Node: Locale influences conversions360100
+Ref: table-locale-affects362858
+Node: All Operators363476
+Node: Arithmetic Ops364105
+Node: Concatenation366611
+Ref: Concatenation-Footnote-1369458
+Node: Assignment Ops369565
+Ref: table-assign-ops374556
+Node: Increment Ops375869
+Node: Truth Values and Conditions379329
+Node: Truth Values380403
+Node: Typing and Comparison381451
+Node: Variable Typing382271
+Ref: Variable Typing-Footnote-1388734
+Ref: Variable Typing-Footnote-2388806
+Node: Comparison Operators388883
+Ref: table-relational-ops389302
+Node: POSIX String Comparison392797
+Ref: POSIX String Comparison-Footnote-1394492
+Ref: POSIX String Comparison-Footnote-2394631
+Node: Boolean Ops394715
+Ref: Boolean Ops-Footnote-1399197
+Node: Conditional Exp399289
+Node: Function Calls401025
+Node: Precedence404902
+Node: Locales408561
+Node: Expressions Summary410193
+Node: Patterns and Actions412766
+Node: Pattern Overview413886
+Node: Regexp Patterns415563
+Node: Expression Patterns416105
+Node: Ranges419886
+Node: BEGIN/END422994
+Node: Using BEGIN/END423755
+Ref: Using BEGIN/END-Footnote-1426491
+Node: I/O And BEGIN/END426597
+Node: BEGINFILE/ENDFILE428911
+Node: Empty431824
+Node: Using Shell Variables432141
+Node: Action Overview434415
+Node: Statements436740
+Node: If Statement438588
+Node: While Statement440083
+Node: Do Statement442111
+Node: For Statement443259
+Node: Switch Statement446430
+Node: Break Statement448816
+Node: Continue Statement450908
+Node: Next Statement452735
+Node: Nextfile Statement455118
+Node: Exit Statement457770
+Node: Built-in Variables460173
+Node: User-modified461306
+Node: Auto-set469073
+Ref: Auto-set-Footnote-1485880
+Ref: Auto-set-Footnote-2486086
+Node: ARGC and ARGV486142
+Node: Pattern Action Summary490355
+Node: Arrays492785
+Node: Array Basics494114
+Node: Array Intro494958
+Ref: figure-array-elements496933
+Ref: Array Intro-Footnote-1499637
+Node: Reference to Elements499765
+Node: Assigning Elements502229
+Node: Array Example502720
+Node: Scanning an Array504479
+Node: Controlling Scanning507501
+Ref: Controlling Scanning-Footnote-1512900
+Node: Numeric Array Subscripts513216
+Node: Uninitialized Subscripts515400
+Node: Delete517019
+Ref: Delete-Footnote-1519771
+Node: Multidimensional519828
+Node: Multiscanning522923
+Node: Arrays of Arrays524514
+Node: Arrays Summary529282
+Node: Functions531375
+Node: Built-in532413
+Node: Calling Built-in533494
+Node: Numeric Functions535490
+Ref: Numeric Functions-Footnote-1539518
+Ref: Numeric Functions-Footnote-2540166
+Ref: Numeric Functions-Footnote-3540214
+Node: String Functions540486
+Ref: String Functions-Footnote-1564344
+Ref: String Functions-Footnote-2564472
+Ref: String Functions-Footnote-3564720
+Node: Gory Details564807
+Ref: table-sub-escapes566598
+Ref: table-sub-proposed568117
+Ref: table-posix-sub569480
+Ref: table-gensub-escapes571021
+Ref: Gory Details-Footnote-1571844
+Node: I/O Functions571998
+Ref: table-system-return-values578466
+Ref: I/O Functions-Footnote-1580546
+Ref: I/O Functions-Footnote-2580694
+Node: Time Functions580814
+Ref: Time Functions-Footnote-1591485
+Ref: Time Functions-Footnote-2591553
+Ref: Time Functions-Footnote-3591711
+Ref: Time Functions-Footnote-4591822
+Ref: Time Functions-Footnote-5591934
+Ref: Time Functions-Footnote-6592161
+Node: Bitwise Functions592427
+Ref: table-bitwise-ops593021
+Ref: Bitwise Functions-Footnote-1599084
+Ref: Bitwise Functions-Footnote-2599257
+Node: Type Functions599448
+Node: I18N Functions602311
+Node: User-defined603962
+Node: Definition Syntax604774
+Ref: Definition Syntax-Footnote-1610461
+Node: Function Example610532
+Ref: Function Example-Footnote-1613454
+Node: Function Calling613476
+Node: Calling A Function614064
+Node: Variable Scope615022
+Node: Pass By Value/Reference618016
+Node: Function Caveats620660
+Ref: Function Caveats-Footnote-1622707
+Node: Return Statement622827
+Node: Dynamic Typing625806
+Node: Indirect Calls626736
+Ref: Indirect Calls-Footnote-1636988
+Node: Functions Summary637116
+Node: Library Functions639821
+Ref: Library Functions-Footnote-1643428
+Ref: Library Functions-Footnote-2643571
+Node: Library Names643742
+Ref: Library Names-Footnote-1647409
+Ref: Library Names-Footnote-2647632
+Node: General Functions647718
+Node: Strtonum Function648821
+Node: Assert Function651843
+Node: Round Function655169
+Node: Cliff Random Function656709
+Node: Ordinal Functions657725
+Ref: Ordinal Functions-Footnote-1660788
+Ref: Ordinal Functions-Footnote-2661040
+Node: Join Function661250
+Ref: Join Function-Footnote-1663020
+Node: Getlocaltime Function663220
+Node: Readfile Function666962
+Node: Shell Quoting668939
+Node: Data File Management670340
+Node: Filetrans Function670972
+Node: Rewind Function675068
+Node: File Checking676977
+Ref: File Checking-Footnote-1678311
+Node: Empty Files678512
+Node: Ignoring Assigns680491
+Node: Getopt Function682041
+Ref: Getopt Function-Footnote-1693510
+Node: Passwd Functions693710
+Ref: Passwd Functions-Footnote-1702549
+Node: Group Functions702637
+Ref: Group Functions-Footnote-1710535
+Node: Walking Arrays710742
+Node: Library Functions Summary713750
+Node: Library Exercises715156
+Node: Sample Programs715621
+Node: Running Examples716391
+Node: Clones717119
+Node: Cut Program718343
+Node: Egrep Program728272
+Ref: Egrep Program-Footnote-1735784
+Node: Id Program735894
+Node: Split Program739574
+Ref: Split Program-Footnote-1743032
+Node: Tee Program743161
+Node: Uniq Program745951
+Node: Wc Program753572
+Ref: Wc Program-Footnote-1757827
+Node: Miscellaneous Programs757921
+Node: Dupword Program759134
+Node: Alarm Program761164
+Node: Translate Program766019
+Ref: Translate Program-Footnote-1770584
+Node: Labels Program770854
+Ref: Labels Program-Footnote-1774205
+Node: Word Sorting774289
+Node: History Sorting778361
+Node: Extract Program780196
+Node: Simple Sed788250
+Node: Igawk Program791324
+Ref: Igawk Program-Footnote-1805655
+Ref: Igawk Program-Footnote-2805857
+Ref: Igawk Program-Footnote-3805979
+Node: Anagram Program806094
+Node: Signature Program809156
+Node: Programs Summary810403
+Node: Programs Exercises811617
+Ref: Programs Exercises-Footnote-1815746
+Node: Advanced Features815837
+Node: Nondecimal Data817827
+Node: Array Sorting819418
+Node: Controlling Array Traversal820118
+Ref: Controlling Array Traversal-Footnote-1828486
+Node: Array Sorting Functions828604
+Ref: Array Sorting Functions-Footnote-1833695
+Node: Two-way I/O833891
+Ref: Two-way I/O-Footnote-1841612
+Ref: Two-way I/O-Footnote-2841799
+Node: TCP/IP Networking841881
+Node: Profiling844999
+Node: Advanced Features Summary854014
+Node: Internationalization855858
+Node: I18N and L10N857338
+Node: Explaining gettext858025
+Ref: Explaining gettext-Footnote-1863917
+Ref: Explaining gettext-Footnote-2864102
+Node: Programmer i18n864267
+Ref: Programmer i18n-Footnote-1869216
+Node: Translator i18n869265
+Node: String Extraction870059
+Ref: String Extraction-Footnote-1871191
+Node: Printf Ordering871277
+Ref: Printf Ordering-Footnote-1874063
+Node: I18N Portability874127
+Ref: I18N Portability-Footnote-1876583
+Node: I18N Example876646
+Ref: I18N Example-Footnote-1879921
+Ref: I18N Example-Footnote-2879994
+Node: Gawk I18N880103
+Node: I18N Summary880752
+Node: Debugger882093
+Node: Debugging883093
+Node: Debugging Concepts883534
+Node: Debugging Terms885343
+Node: Awk Debugging887918
+Ref: Awk Debugging-Footnote-1888863
+Node: Sample Debugging Session888995
+Node: Debugger Invocation889529
+Node: Finding The Bug890915
+Node: List of Debugger Commands897389
+Node: Breakpoint Control898722
+Node: Debugger Execution Control902416
+Node: Viewing And Changing Data905778
+Node: Execution Stack909319
+Node: Debugger Info910956
+Node: Miscellaneous Debugger Commands915027
+Node: Readline Support920089
+Node: Limitations920985
+Node: Debugging Summary923539
+Node: Namespaces924818
+Node: Global Namespace925929
+Node: Qualified Names927327
+Node: Default Namespace928326
+Node: Changing The Namespace929067
+Node: Naming Rules930681
+Node: Internal Name Management932529
+Node: Namespace Example933571
+Node: Namespace And Features936133
+Node: Namespace Summary937568
+Node: Arbitrary Precision Arithmetic939045
+Node: Computer Arithmetic940532
+Ref: table-numeric-ranges944298
+Ref: table-floating-point-ranges944791
+Ref: Computer Arithmetic-Footnote-1945449
+Node: Math Definitions945506
+Ref: table-ieee-formats948822
+Ref: Math Definitions-Footnote-1949425
+Node: MPFR features949530
+Node: FP Math Caution951248
+Ref: FP Math Caution-Footnote-1952320
+Node: Inexactness of computations952689
+Node: Inexact representation953649
+Node: Comparing FP Values955009
+Node: Errors accumulate956250
+Node: Getting Accuracy957683
+Node: Try To Round960393
+Node: Setting precision961292
+Ref: table-predefined-precision-strings961989
+Node: Setting the rounding mode963819
+Ref: table-gawk-rounding-modes964193
+Ref: Setting the rounding mode-Footnote-1968124
+Node: Arbitrary Precision Integers968303
+Ref: Arbitrary Precision Integers-Footnote-1971478
+Node: Checking for MPFR971627
+Node: POSIX Floating Point Problems973101
+Ref: POSIX Floating Point Problems-Footnote-1977386
+Node: Floating point summary977424
+Node: Dynamic Extensions979614
+Node: Extension Intro981167
+Node: Plugin License982433
+Node: Extension Mechanism Outline983230
+Ref: figure-load-extension983669
+Ref: figure-register-new-function985234
+Ref: figure-call-new-function986326
+Node: Extension API Description988388
+Node: Extension API Functions Introduction990030
+Ref: table-api-std-headers991866
+Node: General Data Types995731
+Ref: General Data Types-Footnote-11004092
+Node: Memory Allocation Functions1004391
+Ref: Memory Allocation Functions-Footnote-11008601
+Node: Constructor Functions1008700
+Node: Registration Functions1012286
+Node: Extension Functions1012971
+Node: Exit Callback Functions1018293
+Node: Extension Version String1019543
+Node: Input Parsers1020206
+Node: Output Wrappers1032927
+Node: Two-way processors1037439
+Node: Printing Messages1039704
+Ref: Printing Messages-Footnote-11040875
+Node: Updating ERRNO1041028
+Node: Requesting Values1041767
+Ref: table-value-types-returned1042504
+Node: Accessing Parameters1043440
+Node: Symbol Table Access1044675
+Node: Symbol table by name1045187
+Ref: Symbol table by name-Footnote-11048211
+Node: Symbol table by cookie1048339
+Ref: Symbol table by cookie-Footnote-11052524
+Node: Cached values1052588
+Ref: Cached values-Footnote-11056124
+Node: Array Manipulation1056277
+Ref: Array Manipulation-Footnote-11057368
+Node: Array Data Types1057405
+Ref: Array Data Types-Footnote-11060063
+Node: Array Functions1060155
+Node: Flattening Arrays1064653
+Node: Creating Arrays1071629
+Node: Redirection API1076396
+Node: Extension API Variables1079229
+Node: Extension Versioning1079940
+Ref: gawk-api-version1080369
+Node: Extension GMP/MPFR Versioning1082100
+Node: Extension API Informational Variables1083728
+Node: Extension API Boilerplate1084801
+Node: Changes from API V11088775
+Node: Finding Extensions1090347
+Node: Extension Example1090906
+Node: Internal File Description1091704
+Node: Internal File Ops1095784
+Ref: Internal File Ops-Footnote-11107134
+Node: Using Internal File Ops1107274
+Ref: Using Internal File Ops-Footnote-11109657
+Node: Extension Samples1109931
+Node: Extension Sample File Functions1111460
+Node: Extension Sample Fnmatch1119109
+Node: Extension Sample Fork1120596
+Node: Extension Sample Inplace1121814
+Node: Extension Sample Ord1125439
+Node: Extension Sample Readdir1126275
+Ref: table-readdir-file-types1127164
+Node: Extension Sample Revout1127969
+Node: Extension Sample Rev2way1128558
+Node: Extension Sample Read write array1129298
+Node: Extension Sample Readfile1131240
+Node: Extension Sample Time1132335
+Node: Extension Sample API Tests1133683
+Node: gawkextlib1134175
+Node: Extension summary1137093
+Node: Extension Exercises1140795
+Node: Language History1142037
+Node: V7/SVR3.11143693
+Node: SVR41145845
+Node: POSIX1147279
+Node: BTL1148659
+Node: POSIX/GNU1149388
+Node: Feature History1155166
+Node: Common Extensions1171359
+Node: Ranges and Locales1172642
+Ref: Ranges and Locales-Footnote-11177258
+Ref: Ranges and Locales-Footnote-21177285
+Ref: Ranges and Locales-Footnote-31177520
+Node: Contributors1177741
+Node: History summary1183694
+Node: Installation1185074
+Node: Gawk Distribution1186018
+Node: Getting1186502
+Node: Extracting1187465
+Node: Distribution contents1189103
+Node: Unix Installation1195583
+Node: Quick Installation1196265
+Node: Shell Startup Files1198679
+Node: Additional Configuration Options1199768
+Node: Configuration Philosophy1202083
+Node: Non-Unix Installation1204452
+Node: PC Installation1204912
+Node: PC Binary Installation1205750
+Node: PC Compiling1206185
+Node: PC Using1207302
+Node: Cygwin1210855
+Node: MSYS1211954
+Node: VMS Installation1212455
+Node: VMS Compilation1213246
+Ref: VMS Compilation-Footnote-11214475
+Node: VMS Dynamic Extensions1214533
+Node: VMS Installation Details1216218
+Node: VMS Running1218471
+Node: VMS GNV1222750
+Node: VMS Old Gawk1223485
+Node: Bugs1223956
+Node: Bug address1224619
+Node: Usenet1227601
+Node: Maintainers1228605
+Node: Other Versions1229866
+Node: Installation summary1236954
+Node: Notes1238156
+Node: Compatibility Mode1238950
+Node: Additions1239732
+Node: Accessing The Source1240657
+Node: Adding Code1242094
+Node: New Ports1248313
+Node: Derived Files1252688
+Ref: Derived Files-Footnote-11258348
+Ref: Derived Files-Footnote-21258383
+Ref: Derived Files-Footnote-31258981
+Node: Future Extensions1259095
+Node: Implementation Limitations1259753
+Node: Extension Design1260936
+Node: Old Extension Problems1262080
+Ref: Old Extension Problems-Footnote-11263598
+Node: Extension New Mechanism Goals1263655
+Ref: Extension New Mechanism Goals-Footnote-11267019
+Node: Extension Other Design Decisions1267208
+Node: Extension Future Growth1269321
+Node: Notes summary1270157
+Node: Basic Concepts1271315
+Node: Basic High Level1271996
+Ref: figure-general-flow1272278
+Ref: figure-process-flow1272963
+Ref: Basic High Level-Footnote-11276264
+Node: Basic Data Typing1276449
+Node: Glossary1279777
+Node: Copying1311615
+Node: GNU Free Documentation License1349158
+Node: Index1374278
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 46cf5f5..9c6f9e2 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -71,7 +71,7 @@
 @set TITLE GAWK: Effective AWK Programming
 @end ifclear
 @set SUBTITLE A User's Guide for GNU Awk
-@set EDITION 5.0
+@set EDITION 5.1
 
 @iftex
 @set DOCUMENT book
@@ -8836,7 +8836,7 @@ to be portable to all @command{awk} implementations.
 @quotation NOTE
 Unfortunately, @command{gawk} has not been consistent in its treatment
 of a construct like @samp{@w{"echo "} "date" | getline}.
-Most versions, including the current version, treat it at as
+Most versions, including the current version, treat it as
 @samp{@w{("echo "} "date") | getline}.
 (This is also how BWK @command{awk} behaves.)
 Some versions instead treat it as
@@ -11154,7 +11154,7 @@ multiple lines by ending the line with a backslash. For 
example in C:
 
 int main()
 @{
-    printf "hello, \
+    printf("hello, \
 world\n");
     return 0;
 @}
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index a2b2269..b7dc972 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -66,7 +66,7 @@
 @set TITLE GAWK: Effective AWK Programming
 @end ifclear
 @set SUBTITLE A User's Guide for GNU Awk
-@set EDITION 5.0
+@set EDITION 5.1
 
 @iftex
 @set DOCUMENT book
@@ -8434,7 +8434,7 @@ to be portable to all @command{awk} implementations.
 @quotation NOTE
 Unfortunately, @command{gawk} has not been consistent in its treatment
 of a construct like @samp{@w{"echo "} "date" | getline}.
-Most versions, including the current version, treat it at as
+Most versions, including the current version, treat it as
 @samp{@w{("echo "} "date") | getline}.
 (This is also how BWK @command{awk} behaves.)
 Some versions instead treat it as
@@ -10639,7 +10639,7 @@ multiple lines by ending the line with a backslash. For 
example in C:
 
 int main()
 @{
-    printf "hello, \
+    printf("hello, \
 world\n");
     return 0;
 @}

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=91bcee4486440e1b9824b24fa8881c09b51a3f25

commit 91bcee4486440e1b9824b24fa8881c09b51a3f25
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jul 23 06:01:16 2019 +0300

    Update Italian documentation translations.

diff --git a/doc/it/ChangeLog b/doc/it/ChangeLog
index f25843b..dca449f 100644
--- a/doc/it/ChangeLog
+++ b/doc/it/ChangeLog
@@ -1,3 +1,9 @@
+2019-07-22         Antonio Giovanni Colombo   <address@hidden>
+
+       * gawktexi.in: Updated.
+       * gawk.1: Updated.
+       * texinfo.tex: Updated.
+
 2019-07-08         Antonio Giovanni Colombo   <address@hidden>
 
        * gawktexi.in: Updated.
diff --git a/doc/it/gawk.1 b/doc/it/gawk.1
index bcc0c59..5bc8899 100644
--- a/doc/it/gawk.1
+++ b/doc/it/gawk.1
@@ -10,6 +10,7 @@
 .\"Aggiornam. a gawk-4.2.0 di A.G. Colombo - revis. M. Curreli - Dicembre 2017
 .\"Aggiornam. a gawk-4.2.1 di A.G. Colombo - revis. M. Curreli - Febbraio 2018
 .\"Aggiornam. a gawk-4.2.2 di A.G. Colombo - revis. M. Curreli - Dicembre 2018
+.\"Aggiornam. a gawk-5.1.0 di A.G. Colombo - Luglio 2019
 
 .ds PX \s-1POSIX\s+1
 .ds UX \s-1UNIX\s+1
@@ -26,7 +27,7 @@
 .              if \w'\(rq' .ds rq "\(rq
 .      \}
 .\}
-.TH GAWK 1 "Nov 29 2018" "Free Software Foundation" "Utility Commands"
+.TH GAWK 1 "Jul 21 2019" "Free Software Foundation" "Utility Commands"
 .SH NOME
 gawk \- linguaggio per il riconoscimento e il trattamento di espressioni
 regolari
@@ -65,17 +66,17 @@ La riga di comando contiene opzioni per
 stesso, il testo del programma \*(AK (se non è stato fornito con le opzioni
 .B \-f
 o
-.BR \-i ),
+.B \-\^\-include ),
 e valori da rendere disponibili
 nelle variabili \*(AK predefinite
 .B ARGC
 e
-.BR ARGV .
+.B ARGV .
 .PP
 Quando
 .I gawk
 è invocato con l'opzione
-.BR \-\^\-profile ,
+.B \-\^\-profile ,
 inizia a raccogliere statistiche sul comportamento del programma
 durante l'esecuzione.
 .I Gawk
@@ -97,7 +98,9 @@ carica il
 codice sorgente di AWK e poi richiede l'inserimento di comandi di debug.
 .I Gawk
 può analizzare solo il sorgente di un programma AWK fornito tramite l'opzione
-.BR \-f .
+.BR \-f
+e
+.B \-\^\-include .
 Il debugger è documentato in \*(EP.
 .SH FORMATO DELLE OPZIONI
 .PP
@@ -145,6 +148,9 @@ Si possono specificare pi
 .B \-f
 (o
 .BR \-\^\-file ).
+I file letti come specificato da
+.B \-f
+sono trattati come se iniziassero con la direttiva implicita \fB@namespace 
"awk"\fR.
 .TP
 .PD 0
 .BI \-F " fs"
@@ -263,10 +269,13 @@ Quest'opzione permette di combinare in modo semplice 
funzioni di libreria
 (usate attraverso i file indicati dalle opzioni
 .B \-f
 e
-.BR \-i )
+.B \-\^\-include )
 con codice sorgente immesso sulla riga di comando.
 È rivolta principalmente a programmi  \*(AK di media e grande dimensione
 usati all'interno di script di shell.
+Ogni argomento specificato da
+.B \-e
+è trattato come se iniziasse con la direttiva implicita \fB@namespace "awk"\fR.
 .TP
 .PD 0
 .BI "\-E " file
@@ -296,7 +305,7 @@ nel programma.  Il programma in s
 Si veda la distribuzione \*(GN
 .I gettext
 per maggiori informazioni sui file
-.BR \&.pot .
+.B \&.pot .
 .TP
 .PD 0
 .B \-h
@@ -319,10 +328,13 @@ Cerca la libreria usando la variabile d'ambiente
 .BR AWKPATH .
 Se la ricerca iniziale non va a buon fine, viene
 fatto un altro tentativo dopo aver aggiunto il suffisso
-.BR \&.awk .
+.B \&.awk .
 Il file verrà caricato solo una volta
 (cioè vengono ignorati i duplicati), e il codice non costituisce
 il sorgente del programma principale.
+I file letti come specificato da
+.B \-\^\-include
+sono trattati come se iniziassero con la direttiva implicita \fB@namespace 
"awk"\fR.
 .TP
 .PD 0
 .BI "\-l " lib
@@ -334,7 +346,7 @@ Carica un'estensione
 dalla libreria condivisa
 .IR lib .
 Cerca la libreria usando la variabile d'ambiente
-.BR AWKLIBPATH .
+.B AWKLIBPATH .
 Se la ricerca iniziale non va a buon fine, viene
 fatto un altro tentativo dopo aver aggiunto il suffisso della libreria
 condivisa predefinita per la piattaforma.
@@ -357,6 +369,11 @@ Con l'argomento opzionale
 .BR invalid ,
 vengono emessi solo gli avvertimenti relativi a quello che è
 effettivamente non valido (funzionalità non ancora completamente implementata).
+Specificando l'argomento facoltativo
+.BR no-ext ,
+gli avvertimenti riguardo alle estensioni
+.I gawk
+sono disabilitati.
 .TP
 .PD 0
 .B \-M
@@ -366,7 +383,7 @@ effettivamente non valido (funzionalit
 Forza il calcolo con precisione arbitraria sui numeri.  Quest'opzione
 non ha effetto se
 .I gawk
-non è compilato per l'uso delle librerie GNU MPFR e MP.
+non è compilato per utilizzare le librerie GNU MPFR e GMP.
 (In tal caso,
 .I gawk
 invia un messaggio di avvertimento.)
@@ -396,7 +413,7 @@ faccia questo quando l'opzione
 il punto come separatore decimale, anche per le localizzazioni in cui
 il carattere di separazione non è il punto.  Quest'opzione ignora il
 comportamento predefinito, senza il rigore draconiano dell'opzione
-.BR \-\^\-posix .
+.B \-\^\-posix .
 .ig
 .\" Quest'opzione è lasciata intenzionalmente non documentata.
 .TP
@@ -423,7 +440,7 @@ Se non viene indicato un
 usa un file di nome
 .B awkprof.out
 nella directory corrente.
-Sottintende
+Quest'opzione attiva anche l'opzione
 .BR \-\^\-no\-optimize .
 .TP
 .PD 0
@@ -449,7 +466,7 @@ Quello predefinito 
 Il profilo contiene il numero di esecuzioni di ogni istruzione sul margine
 sinistro e il conteggio delle chiamate di funzione per ogni funzione definita
 dall'utente.
-Sottindende
+Quest'opzione attiva anche l'opzione
 .BR \-\^\-no\-optimize .
 .TP
 .PD 0
@@ -458,7 +475,7 @@ Sottindende
 .PD
 .B \-\^\-posix
 Quest'opzione attiva la modalità di
-.IR compatibilità ,
+.I compatibilità ,
 con le seguenti restrizioni aggiuntive:
 .RS
 .TP "\w'\(bu'u+1n"
@@ -477,7 +494,7 @@ e
 Non viene riconosciuto il sinonimo
 .B func
 per la parola chiave
-.BR function .
+.B function .
 .TP
 \(bu
 Non si possono usare gli operatori
@@ -507,7 +524,7 @@ mai state disponibili.  Lo standard \*(PX le ha aggiunte, 
per rendere
 ed
 .I egrep
 coerenti tra di loro.  Sono abilitate in modalità predefinita, però 
quest'opzione
-rimane per essere usata con l'opzione
+rimane per essere usata insieme all'opzione
 .BR \-\^\-traditional .
 .TP
 .PD 0
@@ -516,7 +533,7 @@ rimane per essere usata con l'opzione
 .PD
 .B \-\^\-no\-optimize
 Disabilita le ottimizzazioni predefinite di
-.I gawk
+.IR gawk
 nella rappresentazione interna del programma.
 .TP
 .PD 0
@@ -580,7 +597,7 @@ per l'elaborazione.  Questo 
 .BR #! .
 .PP
 Per compatibilità con \*(PX, si può usare l'opzione
-.BR \-W ,
+.B \-W ,
 seguita dal nome di un'opzione lunga.
 .SH ESECUZIONE DEL PROGRAMMA AWK
 .PP
@@ -594,6 +611,8 @@ e definizioni di funzione opzionali.
 .br
 \fB@load "\fInome_del_file\fB"
 .br
+\fB@namespace "\fInome\^\fB"
+.br
 \fIcriterio di ricerca\fB      { \fIistruzioni di azione\fB }\fR
 .br
 \fBfunction \fInome\fB(\fIlista di parametri\fB) { \fIistruzioni\fB }\fR
@@ -624,13 +643,13 @@ Oltre a ci
 possono essere usate per includere altri file sorgenti nel programma,
 rendendo l'uso della libreria ancora più facile.  Questo è equivalente
 all'uso dell'opzione
-.BR \-i .
+.B \-\^\-include .
 .PP
 Le righe che iniziano con
 .B @load
 possono essere usate per caricare funzioni di estensione nel programma.  
Questo è
 equivalente all'uso dell'opzione
-.BR \-l .
+.B \-\^\-load .
 .PP
 La variabile d'ambiente
 .B AWKPATH
@@ -638,7 +657,7 @@ specifica il percorso lungo il quale cercare i file sorgenti
 indicati con le opzioni
 .B \-f
 e
-.BR \-i .
+.B \-\^\-include .
 Se questa variabile non esiste, il percorso predefinito è
 \fB"/usr/local/share/awk"\fR
 (la directory in questione può variare a seconda di come
@@ -653,7 +672,7 @@ La variabile d'ambiente
 .B AWKLIBPATH
 specifica il percorso lungo il quale cercare i file sorgenti
 indicati con l'opzione
-.BR \-l ,
+.B \-\^\-load .
 Se questa variabile non esiste, il percorso predefinito è
 \fB"/usr/local/lib/gawk"\fR
 (la directory in questione può variare a seconda di come
@@ -857,7 +876,8 @@ Ogni campo nel record in input pu
 .BR $2 ,
 e così via.
 .B $0
-è l'intero record.
+è l'intero record,
+compresi eventuali spazi bianchi iniziali e finali.
 Non è necessario che i campi siano indicati da costanti:
 .RS
 .PP
@@ -1015,7 +1035,7 @@ Se impostato,
 .I gawk
 suddivide l'input in campi, dove i campi corrispondono
 all'espressione regolare, invece di usare il
-valore della variabile
+valore di
 .B FS
 come separatore di campo.
 Si veda
@@ -1139,7 +1159,7 @@ Gli indici partono dallo zero.
 .TP
 \fBPROCINFO["egid"]\fP
 Il valore della chiamata di sistema
-.IR getegid (2).
+.IR getegid (2) .
 .TP
 \fBPROCINFO["errno"]\fP
 Il valore di
@@ -1150,7 +1170,7 @@ quando
 .TP
 \fBPROCINFO["euid"]\fP
 Il valore della chiamata di sistema
-.IR geteuid (2).
+.IR geteuid (2) .
 .TP
 \fBPROCINFO["FS"]\fP
 \fB"FS"\fP se la separazione in campi con
@@ -1167,7 +1187,7 @@ o \fB"API"\fP se la separazione in campi con 
l'analizzatore di input API
 .TP
 \fBPROCINFO["gid"]\fP
 Il valore della chiamata di sistema
-.IR getgid (2).
+.IR getgid (2) .
 .TP
 \fBPROCINFO["identifiers"]\fP
 Un sottovettore, avente come indici i nomi di tutti gli identificatori usati
@@ -1191,7 +1211,7 @@ L'identificatore 
 L'identificatore è una funzione di estensione caricata con
 .B @load
 o
-.BR \-l .
+.BR \-\^\-load .
 .TP
 \fB"scalar"\fR
 L'identificatore è uno scalare.
@@ -1206,47 +1226,50 @@ ancora non lo sa).
 L'identificatore è una funzione definita dall'utente.
 .RE
 .TP
+\fBPROCINFO["pgrpid"]\fP
+Il valore dalla chiamata di sistema
+.IR getpgrp (2) .
+.TP
+\fBPROCINFO["pid"]\fP
+Il valore dalla chiamata di sistema
+.IR getpid (2) .
+.TP
 \fBPROCINFO["platform"]\fP
 Una stringa che indica la piattaforma sulla quale
 .I gawk
 è stato compilato.  Può essere una delle alternative seguenti:
 .RS
 .TP
-\fB"vms"\fR
-OpenVMS o Vax/VMS.
-.TP
-\fB"macosx"\fR
-Mac OS X.
-.TP
-\fB"cygwin"\fR, \fB"djgpp"\fR, \fB"mingw"\fR
-Microsoft Windows, avendo compilato in Cygwin, DJGPP, o MinGW, rispettivamente.
+\fB"djgpp"\fR, \fB"mingw"\fR
+Microsoft Windows, compilato tramite DJGPP o MinGW, rispettivamente.
 .TP
 \fB"os2"\fR
 OS/2.
 .TP
 \fB"posix"\fR
-GNU/Linux e i sistemi Unix precedenti.
-.RE
+GNU/Linux, Cygwin, Mac OS X, e i sistemi Unix precedenti.
 .TP
-\fBPROCINFO["pgrpid"]\fP
-Il process group ID del processo corrente.
-.TP
-\fBPROCINFO["pid"]\fP
-L'ID di processo del processo corrente.
+\fB"vms"\fR
+OpenVMS o Vax/VMS.
+.RE
 .TP
 \fBPROCINFO["ppid"]\fP
-Il process ID del "padre" [parent] del processo corrente.
+Il valore della chiamata di sistema
+.IR getppid (2) .
 .TP
 \fBPROCINFO["strftime"]\fP
 La stringa di formato data/ora predefinita per
 .BR strftime() .
+Cambiandone il valore cambia anche il modo con cui
+.B strftime()
+visualizza i valori di data e ora se chiamata senza specificare argomenti.
 .TP
 \fBPROCINFO["uid"]\fP
 Il valore della chiamata di sistema
-.IR getuid (2).
+.IR getuid (2) .
 .TP
 \fBPROCINFO["version"]\fP
-la versione di
+La versione di
 .IR gawk .
 .PP
 I seguenti elementi sono presenti se è disponibile il caricamento delle
@@ -1263,7 +1286,7 @@ compilato in
 .IR gawk\^ :
 .TP
 \fBPROCINFO["gmp_version"]\fP
-La versione della libreria GNU MP usata per il supporto ai numeri
+La versione della libreria GNU GMP usata per il supporto ai numeri
 con precisione arbitraria in
 .IR gawk .
 .TP
@@ -1367,16 +1390,29 @@ devono essere ordinati gli elementi del vettore.
 .B ROUNDMODE
 La modalità di arrotondamento da usare per operazioni sui numeri con precisione
 arbitraria, quella predefinita è \fB"N"\fR (IEEE-754 roundTiesToEven mode).
-Sono accettati i valori
-\fB"N"\fR o \fB"n"\fR per roundTiesToEven,
-\fB"U"\fR o \fB"u"\fR per roundTowardPositive,
-\fB"D"\fR o \fB"d"\fR per roundTowardNegative,
-\fB"Z"\fR o \fB"z"\fR per roundTowardZero
-e, se la versione della libreria GNU MPFR in uso li supporta,
-\fB"A"\fR o \fB"a"\fR per arrotondamento lontano da zero (per eccesso).
+Sono accettati i valori:
+.RS
+.TP
+\fB"A"\fR o \fB"a"\fR
+per arrotondamento lontano da zero (per eccesso).
+Questi valori sono disponibili solo se la versione della libreria GNU MPFR
+supporta gli arrotondamenti lontano da zero.
+.TP "\w'\fB\(dqD\(dq\fR o \fB\(dqd\(dq\fR'u+1n"
+\fB"D"\fR o \fB"d"\fR
+per roundTowardNegative.
+.TP
+\fB"N"\fR o \fB"n"\fR
+per roundTiesToEven.
+.TP
+\fB"U"\fR o \fB"u"\fR
+per roundTowardPositive.
+.TP
+\fB"Z"\fR o \fB"z"\fR
+per roundTowardZero.
+.RE
 .TP
 .B RS
-Il separatore di record in input, normalmente "newline".
+Il separatore di record in input (se non specificato è "newline").
 .TP
 .B RT
 Il terminatore di record.
@@ -1399,8 +1435,8 @@ La lunghezza della stringa trovata da
 oppure \-1 se non ci sono corrispondenze.
 .TP
 .B SUBSEP
-Il carattere usato per separare indici multipli negli elementi di un vettore,
-quello predefinito è \fB"\e034"\fR.
+La stringa usata per separare indici multipli negli elementi di un vettore,
+quella predefinita è \fB"\e034"\fR.
 .TP
 .B SYMTAB
 Un vettore i cui indici sono i nomi di tutti i vettori e le variabili 
@@ -1442,7 +1478,7 @@ Se l'espressione 
 l'indice del vettore è una stringa ottenuta concatenando
 i valori (stringa) di ogni espressione, separati dal valore della
 variabile
-.BR SUBSEP .
+.B SUBSEP .
 Questa modalità è usata per simulare vettori multidimensionali.
 Per esempio:
 .PP
@@ -1517,7 +1553,37 @@ si aspetta di trovare un vettore (come nel secondo 
argomento di
 .BR split() ).
 Si può fare questo creando un elemento nel sottovettore e cancellandolo
 poi con l'istruzione
-.BR delete .
+.B delete .
+.SS Spazi-dei-nomi
+.I Gawk
+fornisce una semplice funzionalità, 
+.I namespace ,
+(spazio-dei-nomi) per ovviare al fatto che tutte le variabili in
+AWK sono globali.
+.PP
+Un
+.I "nome qualificato"
+consiste di due identificativi semplici, congiunti da una coppia di ":"
+.RB ( :: ).
+Il primo dei due identificativi designa lo spazio-dei-nomi (namespace)
+mentre il secondo è il nome della variabile al suo interno.
+Tutti i nomi semplici (non qualificati) sono considerati come appartenenti
+allo spazio-dei-nomi ``corrente''; lo spazio-dei-nomi predefinito ha nome
+.BR awk .
+Comunque, gli identificativi i cui nomi sono composti solo da lettere
+maiuscole, vengono sempre considerati come facenti parte dello spazio-dei-nomi
+.B awk ,
+anche se lo spazio-dei-nomi corrente è diverso da quello predefinito.
+.PP
+Si può cambiare lo spazio-dei-nomi corente tramite la direttiva
+\fB@namespace "\fInome\^\fB"\fR .
+.PP
+I nomi delle funzioni interne predefinite non possono essere usati come
+nomi di uno spazio-dei-nomi.  I nomi di ulteriori funzioni, fornite da
+.I gawk
+possono essere usati come nomi di uno spazio-dei-nomi o come semplici
+identificativi in altri spazi-dei-nomi.
+Per ulteriori dettagli, vedere \*(EP.
 .SS Notazione e conversione delle variabili
 .PP
 Le variabili e i campi
@@ -1535,7 +1601,7 @@ valore di stringa "" (la stringa nulla, o vuota).
 .PP
 Quando una stringa deve essere convertita in un numero, la conversione
 è compiuta con
-.IR strtod (3).
+.IR strtod (3) .
 I numeri sono convertiti a stringhe usando
 .IR sprintf (3)
 col valore di
@@ -1592,7 +1658,7 @@ a
 agli elementi di
 .B ARGV
 di
-.BR ENVIRON ,
+.B ENVIRON ,
 ed agli elementi di un vettore creato da
 .B split()
 o da
@@ -1667,7 +1733,7 @@ costituite da espressioni regolari.  Cos
 .B /a\e52b/
 è equivalente a
 .BR /a\e*b/ .
-.SS "Costanti di tipo Regexp"
+.SS Costanti di tipo Regexp
 Una costante di tipo espressione regolare è una sequenza di caratteri
 racchiusa tra barre (come
 .BR /valore/ ).
@@ -1680,7 +1746,7 @@ all'interno di costanti che sono espressioni regolari
 (p.es.,
 .B "/[\ \et\ef\en\er\ev]/"
 corrisponde a tutti i caratteri non stampabili [bianchi]).
-.TP
+.PP
 .I Gawk
 consente anche di usare costanti formate da espressioni regolari
 .IR "fortemente tipizzate" .
@@ -1722,13 +1788,16 @@ virgola,
 .BR && ,
 o
 .BR || .
-Le istruzioni in righe terminanti con
+Anche le istruzioni in righe terminanti con
 .B do
 o
 .B else
 continuano automaticamente alla riga successiva.
-Negli altri casi, una riga terminante con un  \*(lq\e\*(rq
-continua alla successiva, e il "newline" è ignorato.
+Negli altri casi, un'istruzione può continua sulla riga successiva
+se termina con \*(lq\e\*(rq, nel qual caso il "newline" è ignorato.
+Comunque, un \*(lq\e\*(rq che venga dopo un carattere
+.B #
+non è speciale.
 .PP
 Si possono scrivere più istruzioni sulla stessa riga separandole con
 \*(lq;\*(rq.
@@ -1763,13 +1832,13 @@ Le azioni di tutti i criteri di ricerca
 .B BEGIN
 sono unite insieme, come se tutte le istruzioni fossero
 scritte in un'unica regola
-.BR BEGIN ,
+.B BEGIN ,
 e sono eseguite prima che sia letto qualsiasi input.
 Allo stesso modo, tutte le regole
 .B END
 sono fuse insieme, ed eseguite dopo che tutti i dati in input sono
 terminati o dopo che si è incontrata l'istruzione
-.BR exit .
+.B exit .
 .B BEGIN
 e
 .B END
@@ -1783,11 +1852,11 @@ devono necessariamente essere seguiti dall'indicazione 
di un'azione
 .B BEGINFILE
 e
 .B ENDFILE
-sono altri criteri speciali il cui contenuto è eseguito
+sono altri criteri speciali le cui azioni sono eseguite
 prima della lettura del primo record di ogni file di input richiamato sulla 
riga
 di comando, e dopo la lettura dell'ultimo record di ognuno di questi file.
 All'interno della regola
-.B BEGINFILE
+.B BEGINFILE ,
 il valore di
 .B ERRNO
 è una stringa vuota se il file è stato aperto con successo.
@@ -1867,6 +1936,8 @@ Corrisponde alla fine di una stringa.
 Una lista di caratteri: corrisponde a uno qualsiasi dei caratteri
 .IR abc.\|.\|. .
 Si possono includere intervalli di caratteri separandoli con un trattino.
+Per aggiungere alla lista il carattere trattino, inserirlo all'inizio o
+alla fine della lista stessa.
 .TP
 \fB[^\fIabc.\|.\|.\fB]\fR
 Una lista di caratteri negata: corrisponde a qualsiasi carattere eccetto
@@ -2302,7 +2373,7 @@ imposta
 .TP
 \fIcomando\fB | getline \fR[\fIvariabile\fR]
 Esegue
-.I comando
+.IR comando
 dirigendo l'output [del comando] o in
 .B $0
 o in
@@ -2322,33 +2393,36 @@ come sopra, e
 .BR RT .
 I coprocessi sono un'estensione
 .IR gawk .
-.RI (il " comando
+.RI "(Il " comando
 può anche essere un socket.  Vedere la sottosezione
 .BR "Nomi di file speciali" ,
 più avanti.)
 .TP
 .B next
-Cessa l'elaborazione della riga di input corrente.  È letta la successiva,
-e l'elaborazione ricomincia dal primo criterio di ricerca del
+Cessa l'elaborazione della riga di input corrente.
+Legge la successiva riga di input,
+e l'elaborazione ricomincia a partire dal primo criterio di ricerca del
 programma \*(AK.
 Se non ci sono più righe in input,
 .I gawk
-esegue i comandi delle regole
+esegue i comandi di ogni regola
 .BR END ,
 se presenti.
 .TP
 .B "nextfile"
 Cessa l'elaborazione del file di input corrente.  La prossima riga
-sarà letta dal file di input successivo.  Sono aggiornati
+letta proverrà dal file di input successivo.
+Aggiorna
 .B FILENAME
 e
 .BR ARGIND ,
+reimposta
 .B FNR
-è reimpostato a 1, e l'elaborazione riprende dal primo criterio di ricerca
+a 1, e l'elaborazione riprende dal primo criterio di ricerca
 del programma \*(AK.
-Quando non ci sono più righe in input,
+Se non ci sono più righe in input,
 .I gawk
-esegue i comandi delle regole
+esegue i comandi di ogni regola
 .B ENDFILE
 ed
 .BR END ,
@@ -2405,7 +2479,7 @@ e
 .BR printf .
 .TP
 .BI "print .\|.\|. >>" " file"
-Aggiunge righe alla fine di
+Aggiunge l'output alla fine di
 .IR file .
 .TP
 .BI "print .\|.\|. |" " comando"
@@ -2536,7 +2610,7 @@ invece di
 .TP
 .B %%
 Un singolo carattere
-.BR % ;
+.B % ;
 non c'è alcuna conversione di argomenti.
 .PP
 Alcuni ulteriori parametri facoltativi possono comparire fra il
@@ -2648,7 +2722,7 @@ Con i formati
 e
 .BR %X ,
 specifica il numero minimo di
-cifre da stampare.  Per
+cifre da stampare.  Per il formato
 .BR %s ,
 specifica il massimo numero di caratteri
 della stringa che dovrebbero essere stampati.
@@ -2758,7 +2832,9 @@ e
 per richiedere una connessione IPv6.
 Specificando semplicemente
 .B /inet
-usa quello predefinito del sistema (molto probabilmente sarà IPv4).
+usa quello predefinito del sistema (molto probabilmente IPv4).
+Si può usare solo con l'operatore bidirezionale di I/O
+.B |& .
 .TP
 .PD 0
 .BI /inet/udp/ lport / rhost / rport
@@ -3259,7 +3335,7 @@ Se
 Se
 .I format
 è omesso, è assunto un formato equivalente a quello dell'output del comando
-.IR date (1).
+.IR date (1) .
 Il formato predefinito è disponibile in
 .BR PROCINFO["strftime"] .
 Vedere le specifiche per la funzione
@@ -3318,27 +3394,28 @@ XOR bit per bit ai valori degli argomenti della lista 
degli argomenti.  Gli
 argomenti devono essere almeno due.
 .PP
 .SS Funzioni di tipo
-La funzione seguente va usata per vettori multidimensionali.
-.TP
+Le seguenti funzioni forniscono informazioni relative agli argomenti
+che vengono loro passati.
+.TP \w'\fBisarray(\fIx\fB)\fR'u+1n
 \fBisarray(\fIx\fB)\fR
 Restituisce "Vero" se
 .I x
 è un vettore, altrimenti restituisce "Falso".
 [0 e la stringa nulla significano "Falso". Qualsiasi altro valore sta per 
"Vero".]
-.PP
-È possibile conoscere il tipo di qualsiasi variabile o elemento di vettore
-con la seguente funzione:
+Questa funzione è destinata principalmente a essere usata con elementi di
+vettori multidimensionali, e con parametri usati da funzioni.
 .TP
 \fBtypeof(\fIx\fB)\fR
-Return a string indicating the type of
+Restituisce una stringa che indica il tipo di
 .IR x .
-The string will be one of
+La stringa sarà una di queste:
 \fB"array"\fP,
 \fB"number"\fP,
 \fB"regexp"\fP,
 \fB"string"\fP,
 \fB"strnum"\fP,
-or
+\fB"unassigned"\fP
+o
 \fB"undefined"\fP.
 .SS Funzioni di internazionalizzazione
 Le seguenti funzioni possono essere usate all'interno di un programma AWK
@@ -3509,9 +3586,10 @@ al posto di
 .BR function .
 anche se questo modo di operare è deprecato.
 .SH CARICARE DINAMICAMENTE NUOVE FUNZIONI
-Si possono aggiungere dinamicamente nuove funzioni predefinite all'interpreter
+Si possono aggiungere dinamicamente nuove funzioni scritte in C o C++
+all'interpreter
 .I gawk
-con l'istruzione
+in esecuzione tramite l'istruzione
 .BR @load .
 Una descrizione dettagliata non è possibile in questa pagina di manuale;
 vedere \*(EP.
@@ -3637,7 +3715,7 @@ assegnazione compariva prima di un nome di file, 
l'assegnazione sarebbe
 avvenuta 
 .I prima
 di eseguire la regola
-.BR BEGIN .
+.B BEGIN .
 Esistono applicazioni che dipendono da questa \*(lqfunzionalità.\*(rq
 Quando
 .I awk
@@ -3645,8 +3723,8 @@ Quando
 .B \-v
 per assegnare valori alle variabili prima dell'inizio dell'esecuzione è stata 
aggiunta
 per tener conto delle applicazioni che dipendevano dal precedente 
comportamento.
-(Questa funzionalità ha ottenuto l'approvazione sia dei Bell Laboratories
-che degli sviluppatori di \*(GN .)
+(Questa funzionalità ha ottenuto l'approvazione sia dagli sviluppatori
+dei Bell Laboratories che dagli sviluppatori di \*(GN .)
 .PP
 Nella scansione degli argomenti,
 .I gawk
@@ -3971,7 +4049,7 @@ pu
 .I gawk
 esamina alla ricerca di file coi nomi indicati tramite le opzioni
 .BR \-f ,
-.RB \-\^\-file ,
+.BR \-\^\-file ,
 .B \-i
 e
 .BR \-\^\-include ,
@@ -4002,7 +4080,7 @@ Per le connessioni a un host remoto via socket,
 .B GAWK_SOCK_RETRIES
 controlla il numero di tentativi di lettura, e
 .B GAWK_MSEC_SLEEP
-l'intervallo fra un tentativo di lettura e l'altro.
+l'intervallo fra un tentativo di lettura e quello successivo.
 L'intervallo è in millisecondi.  Su sistemi che non supportano
 .IR usleep (3),
 il valore è arrotondato a un numero intero di secondi.
@@ -4048,7 +4126,7 @@ non-POSIX, questo valore pu
 .SH INFORMAZIONE SULLA VERSIONE
 Questa pagina man documenta
 .IR gawk ,
-versione 4.2.
+versione 5.1.
 .SH AUTORI
 La versione originale di \*(UX
 .I awk
@@ -4119,8 +4197,12 @@ inviate un messaggio per segnalare l'errore a
 Anche se gli sviluppatori di
 .I gawk
 di tanto in tanto leggono questo forum, inviare qui messaggi di segnalazione
-di errore è una maniera poco affidabile per segnalare errori.  Siete invece
-pregati di usare l'indirizzo di posta elettronica scritto più sopra.
+di errore è una maniera poco affidabile per segnalare errori.
+Analogamente, 
+.B NON
+usare una comunità web (tipo Stack Overflow) per segnalare errori.
+Siete invece pregati di usare gli indirizzi di posta elettronica
+riportati più sopra.
 Veramente!
 .PP
 Se state usando un sistema GNU/Linux o basato sulla distribuzione BSD,
@@ -4157,7 +4239,7 @@ Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger,
 Addison-Wesley, 1988.  ISBN 0-201-07981-X.
 .PP
 \*(EP,
-Edition 4.2, disponibile con il codice sorgente
+Edizione 5.1, disponibile con il codice sorgente
 .IR gawk .
 La versione originale corrente di questo documento è
 disponibile online a:
@@ -4209,7 +4291,7 @@ Lo ringraziamo.
 .SH COPYING PERMISSIONS
 Copyright \(co 1989, 1991, 1992, 1993, 1994, 1995, 1996,
 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2007, 2009,
-2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018
+2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
 Free Software Foundation, Inc.
 .PP
 Permission is granted to make and distribute verbatim copies of
diff --git a/doc/it/gawktexi.in b/doc/it/gawktexi.in
index 7dc5d1f..b81468a 100644
--- a/doc/it/gawktexi.in
+++ b/doc/it/gawktexi.in
@@ -56,9 +56,9 @@
 @c applies to and all the info about who's publishing this edition
 
 @c These apply across the board.
-@set UPDATE-MONTH Giugno 2019
-@set VERSION 5.0
-@set PATCHLEVEL 1
+@set UPDATE-MONTH Luglio 2019
+@set VERSION 5.1
+@set PATCHLEVEL 0
 
 @c added Italian hyphenation stuff
 @hyphenation{ven-go-no o-met-te-re o-met-ten-do}
@@ -71,7 +71,7 @@
 @set TITLE GAWK: Programmare efficacemente in AWK
 @end ifclear
 @set SUBTITLE Una Guida Utente per GNU Awk
-@set EDITION 5.0
+@set EDITION 5.1
 
 @iftex
 @set DOCUMENT libro
@@ -1033,8 +1033,8 @@ Copyright dell'edizione italiana @copyright{} 2016 -- 
Free Software Foundation,
 * Supporto per Readline::               Supporto per Readline.
 * Limitazioni::                         Limitazioni.
 * Sommario sul debug::                  Sommario sul debug.
-* Spazio-dei-nomi globale::             Lo spazio-dei-nomi globale in 
@command{awk}
-                                        standard.
+* Spazio-dei-nomi globale::             Lo spazio-dei-nomi globale in
+                                        @command{awk} standard.
 * Nomi qualificati::                    Come qualificare nomi con uno
                                         spazio-dei-nomi.
 * Spazio-dei-nomi di default::          Lo spazio-dei-nomi di default.
@@ -1042,9 +1042,9 @@ Copyright dell'edizione italiana @copyright{} 2016 -- 
Free Software Foundation,
 * Regole per i nomi::                   Regole per assegnare nomi a uno
                                         spazio-dei-nomi e ai suoi componenti.
 * Gestione interna dei nomi::           Come i nomi sono gestiti internamente.
-* Esempio di spazio-dei-nomi::          Esempio di codice che usa uno 
spazio-dei-nomi.
-* Spazio-dei-nomi e funzionalit@`a::      Lo spazio-dei-nomi e le altre 
funzionalit@`a
-                                        di @command{gawk}.
+* Esempio di spazio-dei-nomi::  Esempio di codice che usa uno spazio-dei-nomi.
+* Spazio-dei-nomi e funzionalit@`a::      Lo spazio-dei-nomi e le altre
+                                        funzionalit@`a di @command{gawk}.
 * Sommario sugli spazi-dei-nomi::       Sommario sugli spazi-dei-nomi.
 * Aritmetica del computer::             Una rapida introduzione alla 
matematica del
                                         computer.
@@ -1134,7 +1134,7 @@ Copyright dell'edizione italiana @copyright{} 2016 -- 
Free Software Foundation,
 * Esempio di estensione Readfile::      Leggere un intero file in una stringa.
 * Esempio di estensione Time::          Un'interfaccia a @code{gettimeofday()}
                                         e @code{sleep()}.
-* Esempio di estensione API Test::      Test per la API.
+* Esempio di estensione API Test::      Test per l'API.
 * gawkextlib::                          Il progetto @code{gawkextlib}.
 * Sommario delle estensioni::           Sommario delle estensioni.
 * Esercizi sulle estensioni::           Esercizi.
@@ -11512,7 +11512,7 @@ Per esempio in C:
 
 int main()
 @{
-    printf "ciao, \
+    printf("ciao, \
 mondo\n");
     return 0;
 @}
@@ -33494,8 +33494,8 @@ Chi ne trovasse, @`e pregato di notificarlo 
(@xref{Bug}).
 @end quotation
 
 @menu
-* Spazio-dei-nomi globale::             Lo spazio-dei-nomi globale in 
@command{awk}
-                                        standard.
+* Spazio-dei-nomi globale::             Lo spazio-dei-nomi globale in
+                                        @command{awk} standard.
 * Nomi qualificati::                    Come qualificare nomi con uno
                                         spazio-dei-nomi.
 * Spazio-dei-nomi di default::          Lo spazio-dei-nomi di default.
@@ -33503,9 +33503,9 @@ Chi ne trovasse, @`e pregato di notificarlo 
(@xref{Bug}).
 * Regole per i nomi::                   Regole per assegnare nomi a uno
                                         spazio-dei-nomi ai suoi componenti.
 * Gestione interna dei nomi::           Come i nomi sono gestiti internamente.
-* Esempio di spazio-dei-nomi::          Esempio di codice che usa uno 
spazio-dei-nomi.
-* Spazio-dei-nomi e funzionalit@`a::      Lo spazio-dei-nomi e le altre 
funzionalit@`a
-                                        di @command{gawk}.
+* Esempio di spazio-dei-nomi::  Esempio di codice che usa uno spazio-dei-nomi.
+* Spazio-dei-nomi e funzionalit@`a::      Lo spazio-dei-nomi e le altre
+                                        funzionalit@`a di @command{gawk}.
 * Sommario sugli spazi-dei-nomi::      Sommario sugli spazi-dei-nomi.
 @end menu
 
@@ -35555,7 +35555,7 @@ Questa
 @ifinfo
 Questo
 @end ifinfo
-(non breve) @value{SECTION} descrive l'API in detttaglio.
+(non breve) @value{SECTION} descrive l'API in dettaglio.
 
 @menu
 * Intro funzioni estensione API::   Introduzione alle funzioni dell'API.
@@ -39407,7 +39407,7 @@ si usa l'estensione API.
 * Esempio di estensione Readfile::      Leggere un intero file in una stringa.
 * Esempio di estensione Time::          Un'interfaccia a @code{gettimeofday()}
                                       e @code{sleep()}.
-* Esempio di estensione API Test::    Test per la API.
+* Esempio di estensione API Test::    Test per l'API.
 @end menu
 
 @node Esempio di estensione funzioni file
@@ -40166,7 +40166,7 @@ ottenere il tempo di attesa richiesto.
 @end table
 
 @node Esempio di estensione API Test
-@subsection Test per la API
+@subsection Test per l'API
 @cindex @code{testext}, estensione
 @cindex estensione @code{testext()}
 
@@ -41988,6 +41988,11 @@ L'elemento di vettore @code{PROCINFO["platform"]}, che 
permette di
 scrivere del codice che tiene conto di piattaforma / sistema operativo.
 @end itemize
 
+La @value{PVERSION} 5.1 @`e stata creata per distribuire @command{gawk} con
+un nuovo numero di versione maggiore per l'API.  Sfortunatamente questo
+dettaglio era stato dimenticato al momento in cui era stata preparata la
+@value{PVERSION} 5.0.
+
 @c XXX ADD MORE STUFF HERE
 @end ifclear
 
diff --git a/doc/it/texinfo.tex b/doc/it/texinfo.tex
index 2ae6710..d97820c 100644
--- a/doc/it/texinfo.tex
+++ b/doc/it/texinfo.tex
@@ -3,12 +3,9 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2018-03-10.14}
+\def\texinfoversion{2019-06-01.23}
 %
-% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
-% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018
-% Free Software Foundation, Inc.
+% Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
@@ -163,6 +160,7 @@
 \ifx\putwordDeffunc\undefined   \gdef\putwordDeffunc{Function}\fi
 %
 % added for Italian
+%
 \gdef\putwordla{la}
 \gdef\putwordLa{La}
 \gdef\putwordsivedail{si veda il}
@@ -175,6 +173,7 @@
 \def\pxrefIl#1{\putwordSivedail{} \xrefX[#1,,,,,,,]}
 \def\xrefil#1{\putwordsivedail{} \xrefX[#1,,,,,,,]}
 \def\xrefIl#1{\putwordSivedail{} \xrefX[#1,,,,,,,]}
+%
 
 % Give the space character the catcode for a space.
 \def\spaceisspace{\catcode`\ =10\relax}
@@ -258,17 +257,7 @@
 %
 \def\finalout{\overfullrule=0pt }
 
-% Do @cropmarks to get crop marks.
-%
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
 \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
-\newdimen\cornerlong  \cornerlong=1pc
-\newdimen\cornerthick \cornerthick=.3pt
 \newdimen\topandbottommargin \topandbottommargin=.75in
 
 % Output a mark which sets \thischapter, \thissection and \thiscolor.
@@ -284,8 +273,8 @@
 
 % \domark is called twice inside \chapmacro, to add one
 % mark before the section break, and one after.
-%   In the second call \prevchapterdefs is the same as \lastchapterdefs,
-% and \prevsectiondefs is the same as \lastsectiondefs.
+%   In the second call \prevchapterdefs is the same as \currentchapterdefs,
+% and \prevsectiondefs is the same as \currentsectiondefs.
 %   Then if the page is not broken at the mark, some of the previous
 % section appears on the page, and we can get the name of this section
 % from \firstmark for @everyheadingmarks top.
@@ -293,11 +282,11 @@
 %
 % See page 260 of The TeXbook.
 \def\domark{%
-  \toks0=\expandafter{\lastchapterdefs}%
-  \toks2=\expandafter{\lastsectiondefs}%
+  \toks0=\expandafter{\currentchapterdefs}%
+  \toks2=\expandafter{\currentsectiondefs}%
   \toks4=\expandafter{\prevchapterdefs}%
   \toks6=\expandafter{\prevsectiondefs}%
-  \toks8=\expandafter{\lastcolordefs}%
+  \toks8=\expandafter{\currentcolordefs}%
   \mark{%
                    \the\toks0 \the\toks2  % 0: marks for @everyheadingmarks top
       \noexpand\or \the\toks4 \the\toks6  % 1: for @everyheadingmarks bottom
@@ -314,19 +303,19 @@
 % @setcolor (or @url, or @link, etc.) between @contents and the very
 % first @chapter.
 \def\gettopheadingmarks{%
-  \ifcase0\topmark\fi
+  \ifcase0\the\savedtopmark\fi
   \ifx\thischapter\empty \ifcase0\firstmark\fi \fi
 }
 \def\getbottomheadingmarks{\ifcase1\botmark\fi}
-\def\getcolormarks{\ifcase2\topmark\fi}
+\def\getcolormarks{\ifcase2\the\savedtopmark\fi}
 
 % Avoid "undefined control sequence" errors.
-\def\lastchapterdefs{}
-\def\lastsectiondefs{}
-\def\lastsection{}
+\def\currentchapterdefs{}
+\def\currentsectiondefs{}
+\def\currentsection{}
 \def\prevchapterdefs{}
 \def\prevsectiondefs{}
-\def\lastcolordefs{}
+\def\currentcolordefs{}
 
 % Margin to add to right of even pages, to left of odd pages.
 \newdimen\bindingoffset
@@ -336,39 +325,57 @@
 % Main output routine.
 %
 \chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
+\newtoks\defaultoutput
+\defaultoutput = {\savetopmark\onepageout{\pagecontents\PAGE}}
+\output=\expandafter{\the\defaultoutput}
 
 \newbox\headlinebox
 \newbox\footlinebox
 
+% When outputting the double column layout for indices, an output routine
+% is run several times, which hides the original value of \topmark.  This
+% can lead to a page heading being output and duplicating the chapter heading
+% of the index.  Hence, save the contents of \topmark at the beginning of
+% the output routine.  The saved contents are valid until we actually
+% \shipout a page.
+%
+% (We used to run a short output routine to actually set \topmark and 
+% \firstmark to the right values, but if this was called with an empty page 
+% containing whatsits for writing index entries, the whatsits would be thrown 
+% away and the index auxiliary file would remain empty.)
+%
+\newtoks\savedtopmark
+\newif\iftopmarksaved
+\topmarksavedtrue
+\def\savetopmark{%
+  \iftopmarksaved\else
+    \global\savedtopmark=\expandafter{\topmark}%
+    \global\topmarksavedtrue
+  \fi
+}
+
 % \onepageout takes a vbox as an argument.
-% \shipout a vbox for a single page, adding an optional header, footer,
-% cropmarks, and footnote.  This also causes index entries for this page
-% to be written to the auxiliary files.
+% \shipout a vbox for a single page, adding an optional header, footer
+% and footnote.  This also causes index entries for this page to be written
+% to the auxiliary files.
 %
 \def\onepageout#1{%
-  \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
+  \hoffset=\normaloffset
   %
   \ifodd\pageno  \advance\hoffset by \bindingoffset
   \else \advance\hoffset by -\bindingoffset\fi
   %
-  % Common context changes for both heading and footing.
-  % Do this outside of the \shipout so @code etc. will be expanded in
-  % the headline as they should be, not taken literally (outputting ''code).
-  \def\commmonheadfootline{\let\hsize=\txipagewidth \texinfochars}
-  %
   % Retrieve the information for the headings from the marks in the page,
   % and call Plain TeX's \makeheadline and \makefootline, which use the
   % values in \headline and \footline.
   %
   % This is used to check if we are on the first page of a chapter.
-  \ifcase1\topmark\fi
+  \ifcase1\the\savedtopmark\fi
   \let\prevchaptername\thischaptername
   \ifcase0\firstmark\fi
   \let\curchaptername\thischaptername
   %
   \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
-  \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
   %
   \ifx\curchaptername\prevchaptername
     \let\thischapterheading\thischapter
@@ -379,7 +386,14 @@
     \def\thischapterheading{}%
   \fi
   %
+  % Common context changes for both heading and footing.
+  % Do this outside of the \shipout so @code etc. will be expanded in
+  % the headline as they should be, not taken literally (outputting ''code).
+  \def\commmonheadfootline{\let\hsize=\txipagewidth \texinfochars}
+  %
   \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
+  %
+  \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
   \global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}%
   %
   {%
@@ -388,37 +402,12 @@
     % take effect in \write's, yet the group defined by the \vbox ends
     % before the \shipout runs.
     %
-    \indexdummies         % don't expand commands in the output.
-    \normalturnoffactive  % \ in index entries must not stay \, e.g., if
-               % the page break happens to be in the middle of an example.
-               % We don't want .vr (or whatever) entries like this:
-               % \entry{{\indexbackslash }acronym}{32}{\code {\acronym}}
-               % "\acronym" won't work when it's read back in;
-               % it needs to be
-               % {\code {{\backslashcurfont }acronym}
+    \atdummies         % don't expand commands in the output.
+    \turnoffactive
     \shipout\vbox{%
       % Do this early so pdf references go to the beginning of the page.
       \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
       %
-      \ifcropmarks \vbox to \outervsize\bgroup
-        \hsize = \outerhsize
-        \vskip-\topandbottommargin
-        \vtop to0pt{%
-          \line{\ewtop\hfil\ewtop}%
-          \nointerlineskip
-          \line{%
-            \vbox{\moveleft\cornerthick\nstop}%
-            \hfill
-            \vbox{\moveright\cornerthick\nstop}%
-          }%
-          \vss}%
-        \vskip\topandbottommargin
-        \line\bgroup
-          \hfil % center the page within the outer (page) hsize.
-          \ifodd\pageno\hskip\bindingoffset\fi
-          \vbox\bgroup
-      \fi
-      %
       \unvbox\headlinebox
       \pagebody{#1}%
       \ifdim\ht\footlinebox > 0pt
@@ -429,24 +418,9 @@
         \unvbox\footlinebox
       \fi
       %
-      \ifcropmarks
-          \egroup % end of \vbox\bgroup
-        \hfil\egroup % end of (centering) \line\bgroup
-        \vskip\topandbottommargin plus1fill minus1fill
-        \boxmaxdepth = \cornerthick
-        \vbox to0pt{\vss
-          \line{%
-            \vbox{\moveleft\cornerthick\nsbot}%
-            \hfill
-            \vbox{\moveright\cornerthick\nsbot}%
-          }%
-          \nointerlineskip
-          \line{\ewbot\hfil\ewbot}%
-        }%
-      \egroup % \vbox from first cropmarks clause
-      \fi
-    }% end of \shipout\vbox
-  }% end of group with \indexdummies
+    }%
+  }%
+  \global\topmarksavedfalse
   \advancepageno
   \ifnum\outputpenalty>-20000 \else\dosupereject\fi
 }
@@ -465,17 +439,6 @@
 \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
 }
 
-% Here are the rules for the cropmarks.  Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
-  {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
-  {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
 
 % Argument parsing
 
@@ -501,11 +464,10 @@
   }%
 }
 
-% First remove any @comment, then any @c comment.  Also remove a @texinfoc
-% comment (see \scanmacro for details).  Pass the result on to \argcheckspaces.
+% First remove any @comment, then any @c comment.  Pass the result on to 
+% \argcheckspaces.
 \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
-\def\argremovec#1\c#2\ArgTerm{\argremovetexinfoc #1\texinfoc\ArgTerm}
-\def\argremovetexinfoc#1\texinfoc#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
 
 % Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
 %
@@ -1177,6 +1139,16 @@ where each line of input produces a line of output.}
   \fi
 \fi
 
+\newif\ifpdforxetex
+\pdforxetexfalse
+\ifpdf
+  \pdforxetextrue
+\fi
+\ifx\XeTeXrevision\thisisundefined\else
+  \pdforxetextrue
+\fi
+
+
 % PDF uses PostScript string constants for the names of xref targets,
 % for display in the outlines, and in other places.  Thus, we have to
 % double any backslashes.  Otherwise, a name like "\node" will be
@@ -1233,7 +1205,7 @@ output) for that.)}
   % Set color, and create a mark which defines \thiscolor accordingly,
   % so that \makeheadline knows which color to restore.
   \def\setcolor#1{%
-    \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
+    \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
     \domark
     \pdfsetcolor{#1}%
   }
@@ -1241,7 +1213,7 @@ output) for that.)}
   \def\maincolor{\rgbBlack}
   \pdfsetcolor{\maincolor}
   \edef\thiscolor{\maincolor}
-  \def\lastcolordefs{}
+  \def\currentcolordefs{}
   %
   \def\makefootline{%
     \baselineskip24pt
@@ -1542,6 +1514,9 @@ output) for that.)}
       \startlink attr{/Border [0 0 0]}%
         user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
     \endgroup}
+  % \pdfgettoks - Surround page numbers in #1 with @pdflink.  #1 may
+  % be a simple number, or a list of numbers in the case of an index
+  % entry.
   \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
   \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
   \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
@@ -1616,7 +1591,7 @@ output) for that.)}
   % Set color, and create a mark which defines \thiscolor accordingly,
   % so that \makeheadline knows which color to restore.
   \def\setcolor#1{%
-    \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
+    \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
     \domark
     \pdfsetcolor{#1}%
   }
@@ -1624,7 +1599,7 @@ output) for that.)}
   \def\maincolor{\rgbBlack}
   \pdfsetcolor{\maincolor}
   \edef\thiscolor{\maincolor}
-  \def\lastcolordefs{}
+  \def\currentcolordefs{}
   %
   \def\makefootline{%
     \baselineskip24pt
@@ -2216,7 +2191,7 @@ end
 % A few fonts for @defun names and args.
 \setfont\defbf\bfshape{10}{\magstep1}{OT1}
 \setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
-\setfont\defsl\slshape{10}{\magstep1}{OT1TT}
+\setfont\defsl\slshape{10}{\magstep1}{OT1}
 \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
 \def\df{\let\ttfont=\deftt \let\bffont = \defbf
 \let\ttslfont=\defttsl \let\slfont=\defsl \bf}
@@ -2364,7 +2339,7 @@ end
 % A few fonts for @defun names and args.
 \setfont\defbf\bfshape{10}{\magstephalf}{OT1}
 \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
-\setfont\defsl\slshape{10}{\magstephalf}{OT1TT}
+\setfont\defsl\slshape{10}{\magstephalf}{OT1}
 \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
 \def\df{\let\ttfont=\deftt \let\bffont = \defbf
 \let\slfont=\defsl \let\ttslfont=\defttsl \bf}
@@ -2887,7 +2862,7 @@ end
 
 % @t, explicit typewriter.
 \def\t#1{%
-  {\tt \rawbackslash \plainfrenchspacing #1}%
+  {\tt \plainfrenchspacing #1}%
   \null
 }
 
@@ -2914,7 +2889,6 @@ end
     % Turn off hyphenation.
     \nohyphenation
     %
-    \rawbackslash
     \plainfrenchspacing
     #1%
   }%
@@ -3101,41 +3075,33 @@ end
   \global\def/{\normalslash}
 }
 
-% we put a little stretch before and after the breakable chars, to help
-% line breaking of long url's.  The unequal skips make look better in
-% cmtt at least, especially for dots.
-\def\urefprestretchamount{.13em}
-\def\urefpoststretchamount{.1em}
-\def\urefprestretch{\urefprebreak \hskip0pt plus\urefprestretchamount\relax}
-\def\urefpoststretch{\urefpostbreak \hskip0pt plus\urefprestretchamount\relax}
-%
-\def\urefcodeamp{\urefprestretch \&\urefpoststretch}
-\def\urefcodedot{\urefprestretch .\urefpoststretch}
-\def\urefcodehash{\urefprestretch \#\urefpoststretch}
-\def\urefcodequest{\urefprestretch ?\urefpoststretch}
+\def\urefcodeamp{\urefprebreak \&\urefpostbreak}
+\def\urefcodedot{\urefprebreak .\urefpostbreak}
+\def\urefcodehash{\urefprebreak \#\urefpostbreak}
+\def\urefcodequest{\urefprebreak ?\urefpostbreak}
 \def\urefcodeslash{\futurelet\next\urefcodeslashfinish}
 {
   \catcode`\/=\active
   \global\def\urefcodeslashfinish{%
-    \urefprestretch \slashChar
+    \urefprebreak \slashChar
     % Allow line break only after the final / in a sequence of
     % slashes, to avoid line break between the slashes in http://.
-    \ifx\next/\else \urefpoststretch \fi
+    \ifx\next/\else \urefpostbreak \fi
   }
 }
 
-% One more complication: by default we'll break after the special
-% characters, but some people like to break before the special chars, so
-% allow that.  Also allow no breaking at all, for manual control.
+% By default we'll break after the special characters, but some people like to 
+% break before the special chars, so allow that.  Also allow no breaking at 
+% all, for manual control.
 % 
 \parseargdef\urefbreakstyle{%
   \def\txiarg{#1}%
   \ifx\txiarg\wordnone
     \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak}
   \else\ifx\txiarg\wordbefore
-    \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak}
+    \def\urefprebreak{\urefallowbreak}\def\urefpostbreak{\nobreak}
   \else\ifx\txiarg\wordafter
-    \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak}
+    \def\urefprebreak{\nobreak}\def\urefpostbreak{\urefallowbreak}
   \else
     \errhelp = \EMsimple
     \errmessage{Unknown @urefbreakstyle setting `\txiarg'}%
@@ -3145,6 +3111,14 @@ end
 \def\wordbefore{before}
 \def\wordnone{none}
 
+% Allow a ragged right output to aid breaking long URL's.  Putting stretch in 
+% between characters of the URL doesn't look good.
+\def\urefallowbreak{%
+  \hskip 0pt plus 4 em\relax
+  \allowbreak
+  \hskip 0pt plus -4 em\relax
+}
+
 \urefbreakstyle after
 
 % @url synonym for @uref, since that's how everyone uses it.
@@ -3155,7 +3129,7 @@ end
 % So now @email is just like @uref, unless we are pdf.
 %
 %\def\email#1{\angleleft{\tt #1}\angleright}
-\ifpdf
+\ifpdforxetex
   \def\email#1{\doemail#1,,\finish}
   \def\doemail#1,#2,#3\finish{\begingroup
     \unsepspaces
@@ -3165,18 +3139,7 @@ end
     \endlink
   \endgroup}
 \else
-  \ifx\XeTeXrevision\thisisundefined
-    \let\email=\uref
-  \else
-    \def\email#1{\doemail#1,,\finish}
-    \def\doemail#1,#2,#3\finish{\begingroup
-      \unsepspaces
-      \pdfurl{mailto:#1}%
-      \setbox0 = \hbox{\ignorespaces #2}%
-      \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
-      \endlink
-    \endgroup}
-  \fi
+  \let\email=\uref
 \fi
 
 % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
@@ -4710,19 +4673,6 @@ end
   }
 }
 
-% We have this subroutine so that we can handle at least some @value's
-% properly in indexes (we call \makevalueexpandable in \indexdummies).
-% The command has to be fully expandable (if the variable is set), since
-% the result winds up in the index file.  This means that if the
-% variable's value contains other Texinfo commands, it's almost certain
-% it will fail (although perhaps we could fix that with sufficient work
-% to do a one-level expansion on the result, instead of complete).
-% 
-% Unfortunately, this has the consequence that when _ is in the *value*
-% of an @set, it does not print properly in the roman fonts (get the cmr
-% dot accent at position 126 instead).  No fix comes to mind, and it's
-% been this way since 2003 or earlier, so just ignore it.
-% 
 \def\expandablevalue#1{%
   \expandafter\ifx\csname SET#1\endcsname\relax
     {[No value for ``#1'']}%
@@ -4751,7 +4701,7 @@ end
 % if possible, otherwise sort late.
 \def\indexnofontsvalue#1{%
   \expandafter\ifx\csname SET#1\endcsname\relax
-    ZZZZZZZ
+    ZZZZZZZ%
   \else
     \csname SET#1\endcsname
   \fi
@@ -4901,23 +4851,8 @@ end
 \def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
 
 
-% Used when writing an index entry out to an index file to prevent
-% expansion of Texinfo commands that can appear in an index entry.
-%
-\def\indexdummies{%
-  \escapechar = `\\     % use backslash in output files.
-  \definedummyletter\@%
-  \definedummyletter\ %
-  %
-  % For texindex which always views { and } as separators.
-  \def\{{\lbracechar{}}%
-  \def\}{\rbracechar{}}%
-  %
-  % Do the redefinitions.
-  \definedummies
-}
-
-% Used for the aux and toc files, where @ is the escape character.
+% Used for the aux, toc and index files to prevent expansion of Texinfo 
+% commands.
 %
 \def\atdummies{%
   \definedummyletter\@%
@@ -4947,8 +4882,7 @@ end
 \def\definedummyletter#1{\def#1{\string#1}}%
 \let\definedummyaccent\definedummyletter
 
-% Called from \indexdummies and \atdummies, to effectively prevent
-% the expansion of commands.
+% Called from \atdummies to prevent the expansion of commands.
 %
 \def\definedummies{%
   %
@@ -4997,6 +4931,7 @@ end
   % Assorted special characters.
   \definedummyword\atchar
   \definedummyword\arrow
+  \definedummyword\backslashchar
   \definedummyword\bullet
   \definedummyword\comma
   \definedummyword\copyright
@@ -5033,6 +4968,8 @@ end
   \definedummyword\sup
   \definedummyword\textdegree
   %
+  \definedummyword\subentry
+  %
   % We want to disable all macros so that they are not expanded by \write.
   \macrolist
   \let\value\dummyvalue
@@ -5113,11 +5050,10 @@ end
   \commondummyword\xref
 }
 
-% For testing: output @{ and @} in index sort strings as \{ and \}.
-\newif\ifusebracesinindexes
-
 \let\indexlbrace\relax
 \let\indexrbrace\relax
+\let\indexatchar\relax
+\let\indexbackslash\relax
 
 {\catcode`\@=0
 \catcode`\\=13
@@ -5151,10 +5087,8 @@ end
   }
 
   \gdef\indexnonalnumreappear{%
-    \useindexbackslash
     \let-\normaldash
     \let<\normalless
-    \def\@{@}%
   }
 }
 
@@ -5265,36 +5199,16 @@ end
 
 
 
-\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-
-% Most index entries go through here, but \dosubind is the general case.
 % #1 is the index name, #2 is the entry text.
-\def\doind#1#2{\dosubind{#1}{#2}{}}
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-% TODO: Two-level index?  Operation index?
-
-% Workhorse for all indexes.
-% #1 is name of index, #2 is stuff to put there, #3 is subentry --
-% empty if called from \doind, as we usually are (the main exception
-% is with most defuns, which call us directly).
-%
-\def\dosubind#1#2#3{%
+\def\doind#1#2{%
   \iflinks
   {%
-    \requireopenindexfile{#1}%
-    % Store the main index entry text (including the third arg).
-    \toks0 = {#2}%
-    % If third arg is present, precede it with a space.
-    \def\thirdarg{#3}%
-    \ifx\thirdarg\empty \else
-      \toks0 = \expandafter{\the\toks0 \space #3}%
-    \fi
     %
+    \requireopenindexfile{#1}%
     \edef\writeto{\csname#1indfile\endcsname}%
     %
-    \safewhatsit\dosubindwrite
+    \def\indextext{#2}%
+    \safewhatsit\doindwrite
   }%
   \fi
 }
@@ -5316,21 +5230,7 @@ end
 \fi}
 \def\indexisfl{fl}
 
-% Output \ as {\indexbackslash}, because \ is an escape character in
-% the index files.
-\let\indexbackslash=\relax
-{\catcode`\@=0 \catcode`\\=\active
-  @gdef@useindexbackslash{@def\{{@indexbackslash}}}
-}
-
-% Definition for writing index entry text.
-\def\sortas#1{\ignorespaces}%
-
-% Definition for writing index entry sort key.  Should occur at the at
-% the beginning of the index entry, like
-%     @cindex @sortas{september} \september
-% The \ignorespaces takes care of following space, but there's no way
-% to remove space before it.
+% Definition for writing index entry sort key.
 {
 \catcode`\-=13
 \gdef\indexwritesortas{%
@@ -5341,51 +5241,150 @@ end
   \xdef\indexsortkey{#1}\endgroup}
 }
 
+\def\indexwriteseealso#1{
+  \gdef\pagenumbertext{\string\seealso{#1}}%
+}
+\def\indexwriteseeentry#1{
+  \gdef\pagenumbertext{\string\seeentry{#1}}%
+}
+
+% The default definitions
+\def\sortas#1{}%
+\def\seealso#1{\i{\putwordSeeAlso}\ #1}% for sorted index file only
+\def\putwordSeeAlso{See also}
+\def\seeentry#1{\i{\putwordSee}\ #1}% for sorted index file only
 
-% Write the entry in \toks0 to the index file.
+
+% Given index entry text like "aaa @subentry bbb @sortas{ZZZ}":
+%   * Set \bracedtext to "{aaa}{bbb}"
+%   * Set \fullindexsortkey to "aaa @subentry ZZZ"
+%   * If @seealso occurs, set \pagenumbertext
 %
-\def\dosubindwrite{%
-  % Put the index entry in the margin if desired.
-  \ifx\SETmarginindex\relax\else
-    \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
+\def\splitindexentry#1{%
+  \gdef\fullindexsortkey{}%
+  \xdef\bracedtext{}%
+  \def\sep{}%
+  \def\seealso##1{}%
+  \def\seeentry##1{}%
+  \expandafter\doindexsegment#1\subentry\finish\subentry
+}
+
+% append the results from the next segment
+\def\doindexsegment#1\subentry{%
+  \def\segment{#1}%
+  \ifx\segment\isfinish
+  \else
+    %
+    % Fully expand the segment, throwing away any @sortas directives, and 
+    % trim spaces.
+    \edef\trimmed{\segment}%
+    \edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
+    %
+    \xdef\bracedtext{\bracedtext{\trimmed}}%
+    %
+    % Get the string to sort by.  Process the segment with all
+    % font commands turned off.
+    \bgroup
+      \let\sortas\indexwritesortas
+      \let\seealso\indexwriteseealso
+      \let\seeentry\indexwriteseeentry
+      \indexnofonts
+      % The braces around the commands are recognized by texindex.
+      \def\lbracechar{{\string\indexlbrace}}%
+      \def\rbracechar{{\string\indexrbrace}}%
+      \let\{=\lbracechar
+      \let\}=\rbracechar
+      \def\@{{\string\indexatchar}}%
+      \def\atchar##1{\@}%
+      \def\backslashchar{{\string\indexbackslash}}%
+      \uccode`\~=`\\ \uppercase{\let~\backslashchar}%
+      %
+      \let\indexsortkey\empty
+      \global\let\pagenumbertext\empty
+      % Execute the segment and throw away the typeset output.  This executes
+      % any @sortas or @seealso commands in this segment.
+      \setbox\dummybox = \hbox{\segment}%
+      \ifx\indexsortkey\empty{%
+        \indexnonalnumdisappear
+        \xdef\trimmed{\segment}%
+        \xdef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
+        \xdef\indexsortkey{\trimmed}%
+        \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi
+      }\fi
+      %
+      % Append to \fullindexsortkey.
+      \edef\tmp{\gdef\noexpand\fullindexsortkey{%
+                  \fullindexsortkey\sep\indexsortkey}}%
+      \tmp
+    \egroup
+    \def\sep{\subentry}%
+    %
+    \expandafter\doindexsegment
   \fi
+}
+\def\isfinish{\finish}%
+\newbox\dummybox % used above
+
+\let\subentry\relax
+
+% Use \ instead of @ in index files.  To support old texi2dvi and texindex.
+% This works without changing the escape character used in the toc or aux
+% files because the index entries are fully expanded here, and \string uses
+% the current value of \escapechar.
+\def\escapeisbackslash{\escapechar=`\\}
+
+% Use \ in index files by default.  texi2dvi didn't support @ as the escape 
+% character (as it checked for "\entry" in the files, and not "@entry").  When 
+% the new version of texi2dvi has had a chance to become more prevalent, then 
+% the escape character can change back to @ again.  This should be an easy 
+% change to make now because both @ and \ are only used as escape characters 
in 
+% index files, never standing for themselves. 
+%
+\set txiindexescapeisbackslash
+
+% Write the entry in \indextext to the index file.
+%
+\def\doindwrite{%
+  \maybemarginindex
   %
-  % Remember, we are within a group.
-  \indexdummies % Must do this here, since \bf, etc expand at this stage
-  \useindexbackslash % \indexbackslash isn't defined now so it will be output 
-                     % as is; and it will print as backslash.
-  % The braces around \indexbrace are recognized by texindex.
-  %
-  % Get the string to sort by, by processing the index entry with all
-  % font commands turned off.
-  {\indexnofonts
-   \def\lbracechar{{\indexlbrace}}%
-   \def\rbracechar{{\indexrbrace}}%
-   \let\{=\lbracechar
-   \let\}=\rbracechar
-   \indexnonalnumdisappear
-   \xdef\indexsortkey{}%
-   \let\sortas=\indexwritesortas
-   \edef\temp{\the\toks0}%
-   \setbox\dummybox = \hbox{\temp}% Make sure to execute any \sortas
-   \ifx\indexsortkey\empty
-     \xdef\indexsortkey{\temp}%
-     \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi
-   \fi
-  }%
+  \atdummies
+  %
+  \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax\else
+    \escapeisbackslash
+  \fi
+  %
+  % For texindex which always views { and } as separators.
+  \def\{{\lbracechar{}}%
+  \def\}{\rbracechar{}}%
+  \uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}%
+  %
+  % Split the entry into primary entry and any subentries, and get the index 
+  % sort key.
+  \splitindexentry\indextext
   %
   % Set up the complete index entry, with both the sort key and
   % the original text, including any font commands.  We write
   % three arguments to \entry to the .?? file (four in the
   % subentry case), texindex reduces to two when writing the .??s
   % sorted result.
+  %
   \edef\temp{%
     \write\writeto{%
-      \string\entry{\indexsortkey}{\noexpand\folio}{\the\toks0}}%
+      \string\entry{\fullindexsortkey}%
+        {\ifx\pagenumbertext\empty\noexpand\folio\else\pagenumbertext\fi}%
+        \bracedtext}%
   }%
   \temp
 }
-\newbox\dummybox % used above
+
+% Put the index entry in the margin if desired (undocumented).
+\def\maybemarginindex{%
+  \ifx\SETmarginindex\relax\else
+    \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \relax\indextext}}%
+  \fi
+}
+\let\SETmarginindex=\relax
+
 
 % Take care of unwanted page breaks/skips around a whatsit:
 %
@@ -5473,9 +5472,14 @@ end
 %  \entry {topic}{pagelist}
 %     for a topic that is used without subtopics
 %  \primary {topic}
+%  \entry {topic}{}
 %     for the beginning of a topic that is used with subtopics
 %  \secondary {subtopic}{pagelist}
 %     for each subtopic.
+%  \secondary {subtopic}{}
+%     for a subtopic with sub-subtopics
+%  \tertiary {subtopic}{subsubtopic}{pagelist}
+%     for each sub-subtopic.
 
 % Define the user-accessible indexing commands
 % @findex, @vindex, @kindex, @cindex.
@@ -5487,11 +5491,6 @@ end
 \def\tindex {\tpindex}
 \def\pindex {\pgindex}
 
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
 % Define the macros used in formatting output of the sorted index material.
 
 % @printindex causes a particular index (the ??s file) to get printed.
@@ -5505,14 +5504,10 @@ end
   \plainfrenchspacing
   \everypar = {}% don't want the \kern\-parindent from indentation suppression.
   %
-  % See if the index file exists and is nonempty.
-  % Change catcode of @ here so that if the index file contains
-  % \initial {@}
-  % as its first line, TeX doesn't complain about mismatched braces
-  % (because it thinks @} is a control sequence).
-  \catcode`\@ = 12
   % See comment in \requireopenindexfile.
   \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi
+  %
+  % See if the index file exists and is nonempty.
   \openin 1 \jobname.\indexname s
   \ifeof 1
     % \enddoublecolumns gets confused if there is no text in the index,
@@ -5522,8 +5517,6 @@ end
     \putwordIndexNonexistent
     \typeout{No file \jobname.\indexname s.}%
   \else
-    \catcode`\\ = 0
-    %
     % If the index file exists but is empty, then \openin leaves \ifeof
     % false.  We have to make TeX try to read something from the file, so
     % it can discover if there is anything in it.
@@ -5531,47 +5524,51 @@ end
     \ifeof 1
       \putwordIndexIsEmpty
     \else
-      % Index files are almost Texinfo source, but we use \ as the escape
-      % character.  It would be better to use @, but that's too big a change
-      % to make right now.
-      \def\indexbackslash{\ttbackslash}%
-      \let\indexlbrace\{   % Likewise, set these sequences for braces
-      \let\indexrbrace\}   % used in the sort key.
-      \begindoublecolumns
-      \let\dotheinsertentrybox\dotheinsertentryboxwithpenalty
-      %
-      % Read input from the index file line by line.
-      \loopdo
-        \ifeof1 \else
-          \read 1 to \nextline
-        \fi
-        %
-        \indexinputprocessing
-        \thisline
-        %
-        \ifeof1\else
-        \let\thisline\nextline
-      \repeat
-      %%
-      \enddoublecolumns
+      \expandafter\printindexzz\thisline\relax\relax\finish%
     \fi
   \fi
   \closein 1
 \endgroup}
-\def\loopdo#1\repeat{\def\body{#1}\loopdoxxx}
-\def\loopdoxxx{\let\next=\relax\body\let\next=\loopdoxxx\fi\next}
 
-\def\indexinputprocessing{%
-  \ifeof1
-    \let\firsttoken\relax
+% If the index file starts with a backslash, forgo reading the index
+% file altogether.  If somebody upgrades texinfo.tex they may still have
+% old index files using \ as the escape character.  Reading this would
+% at best lead to typesetting garbage, at worst a TeX syntax error.
+\def\printindexzz#1#2\finish{%
+  \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax
+    \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1
+      \expandafter\ifx\csname SETtxiskipindexfileswithbackslash\endcsname\relax
+\errmessage{%
+ERROR: A sorted index file in an obsolete format was skipped.  
+To fix this problem, please upgrade your version of 'texi2dvi'
+or 'texi2pdf' to that at <https://ftp.gnu.org/gnu/texinfo>.
+If you are using an old version of 'texindex' (part of the Texinfo 
+distribution), you may also need to upgrade to a newer version (at least 6.0).
+You may be able to typeset the index if you run
+'texindex \jobname.\indexname' yourself.
+You could also try setting the 'txiindexescapeisbackslash' flag by 
+running a command like
+'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'.  If you do 
+this, Texinfo will try to use index files in the old format.
+If you continue to have problems, deleting the index files and starting again 
+might help (with 'rm \jobname.?? \jobname.??s')%
+}%
+      \else
+        (Skipped sorted index file in obsolete format)
+      \fi
+    \else
+      \begindoublecolumns
+      \input \jobname.\indexname s
+      \enddoublecolumns
+    \fi
   \else
-    \edef\act{\gdef\noexpand\firsttoken{\getfirsttoken\nextline}}%
-    \act
+    \begindoublecolumns
+    \catcode`\\=0\relax
+    \catcode`\@=12\relax
+    \input \jobname.\indexname s
+    \enddoublecolumns
   \fi
 }
-\def\getfirsttoken#1{\expandafter\getfirsttokenx#1\endfirsttoken}
-\long\def\getfirsttokenx#1#2\endfirsttoken{\noexpand#1}
-
 
 % These macros are used by the sorted index file itself.
 % Change them to control the appearance of the index.
@@ -5580,12 +5577,19 @@ end
 \catcode`\|=13 \catcode`\<=13 \catcode`\>=13 \catcode`\+=13 \catcode`\"=13
 \catcode`\$=3
 \gdef\initialglyphs{%
+  % special control sequences used in the index sort key
+  \let\indexlbrace\{%
+  \let\indexrbrace\}%
+  \let\indexatchar\@%
+  \def\indexbackslash{\math{\backslash}}%
+  %
   % Some changes for non-alphabetic characters.  Using the glyphs from the
   % math fonts looks more consistent than the typewriter font used elsewhere
   % for these characters.
-  \def\indexbackslash{\math{\backslash}}%
-  \let\\=\indexbackslash
+  \uccode`\~=`\\ \uppercase{\def~{\math{\backslash}}}
   %
+  % In case @\ is used for backslash
+  \uppercase{\let\\=~}
   % Can't get bold backslash so don't use bold forward slash
   \catcode`\/=13
   \def/{{\secrmnotbold \normalslash}}%
@@ -5645,12 +5649,6 @@ end
 \def\entry{%
   \begingroup
     %
-    % For pdfTeX and XeTeX.
-    % The redefinition of \domark stops marks being added in \pdflink to 
-    % preserve coloured links across page boundaries.  Otherwise the marks
-    % would get in the way of \lastbox in \insertentrybox.
-    \let\domark\relax
-    %
     % Start a new paragraph if necessary, so our assignments below can't
     % affect previous text.
     \par
@@ -5683,35 +5681,31 @@ end
 \gdef\finishentry#1{%
     \egroup % end box A
     \dimen@ = \wd\boxA % Length of text of entry
-    \global\setbox\boxA=\hbox\bgroup\unhbox\boxA
-    % #1 is the page number.
-    %
-    % Get the width of the page numbers, and only use
-    % leaders if they are present.
-    \global\setbox\boxB = \hbox{#1}%
-    \ifdim\wd\boxB = 0pt
-      \null\nobreak\hfill\ %
-    \else
-      %
-      \null\nobreak\indexdotfill % Have leaders before the page number.
+    \global\setbox\boxA=\hbox\bgroup
+      \unhbox\boxA
+      % #1 is the page number.
       %
-      \ifpdf
-        \pdfgettoks#1.%
-        \hskip\skip\thinshrinkable\the\toksA
+      % Get the width of the page numbers, and only use
+      % leaders if they are present.
+      \global\setbox\boxB = \hbox{#1}%
+      \ifdim\wd\boxB = 0pt
+        \null\nobreak\hfill\ %
       \else
-        \ifx\XeTeXrevision\thisisundefined
-          \hskip\skip\thinshrinkable #1%
-        \else
+        %
+        \null\nobreak\indexdotfill % Have leaders before the page number.
+        %
+        \ifpdforxetex
           \pdfgettoks#1.%
           \hskip\skip\thinshrinkable\the\toksA
+        \else
+          \hskip\skip\thinshrinkable #1%
         \fi
       \fi
-    \fi
     \egroup % end \boxA
     \ifdim\wd\boxB = 0pt
-      \global\setbox\entrybox=\vbox{\unhbox\boxA}%
-    \else
-    \global\setbox\entrybox=\vbox\bgroup
+      \noindent\unhbox\boxA\par
+      \nobreak
+    \else\bgroup
       % We want the text of the entries to be aligned to the left, and the
       % page numbers to be aligned to the right.
       %
@@ -5777,55 +5771,11 @@ end
     \egroup % The \vbox
     \fi
   \endgroup
-  \dotheinsertentrybox
 }}
 
 \newskip\thinshrinkable
 \skip\thinshrinkable=.15em minus .15em
 
-\newbox\entrybox
-\def\insertentrybox{%
-  \ourunvbox\entrybox
-}
-
-% default definition
-\let\dotheinsertentrybox\insertentrybox
-
-% Use \lastbox to take apart vbox box by box, and add each sub-box
-% to the current vertical list.
-\def\ourunvbox#1{%
-\bgroup % for local binding of \delayedbox
-  % Remove the last box from box #1
-  \global\setbox#1=\vbox{%
-    \unvbox#1%
-    \unskip % remove any glue
-    \unpenalty
-    \global\setbox\interbox=\lastbox
-  }%
-  \setbox\delayedbox=\box\interbox
-  \ifdim\ht#1=0pt\else
-    \ourunvbox#1 % Repeat on what's left of the box
-    \nobreak
-  \fi
-  \box\delayedbox
-\egroup
-}
-\newbox\delayedbox
-\newbox\interbox
-
-% Used from \printindex.  \firsttoken should be the first token
-% after the \entry.  If it's not another \entry, we are at the last
-% line of a group of index entries, so insert a penalty to discourage
-% widowed index entries.
-\def\dotheinsertentryboxwithpenalty{%
-  \ifx\firsttoken\isentry
-  \else
-    \penalty 9000
-  \fi
-  \insertentrybox
-}
-\def\isentry{\entry}%
-
 % Like plain.tex's \dotfill, except uses up at least 1 em.
 % The filll stretch here overpowers both the fil and fill stretch to push
 % the page number to the right.
@@ -5835,24 +5785,15 @@ end
 
 \def\primary #1{\line{#1\hfil}}
 
-\newskip\secondaryindent \secondaryindent=0.5cm
-\def\secondary#1#2{{%
-  \parfillskip=0in
-  \parskip=0in
-  \hangindent=1in
-  \hangafter=1
-  \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
-  \ifpdf
-    \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
-  \else
-    \ifx\XeTeXrevision\thisisundefined
-      #2
-    \else
-      \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
-    \fi
-  \fi
-  \par
-}}
+\def\secondary{\indententry{0.5cm}}
+\def\tertiary{\indententry{1cm}}
+
+\def\indententry#1#2#3{%
+  \bgroup
+  \leftskip=#1
+  \entry{#2}{#3}%
+  \egroup
+}
 
 % Define two-column mode, which we use to typeset indexes.
 % Adapted from the TeXbook, page 416, which is to say,
@@ -5862,60 +5803,21 @@ end
 \newbox\partialpage
 \newdimen\doublecolumnhsize
 
-% Use inside an output routine to save \topmark and \firstmark
-\def\savemarks{%
-  \global\savedtopmark=\expandafter{\topmark }%
-  \global\savedfirstmark=\expandafter{\firstmark }%
-}
-\newtoks\savedtopmark
-\newtoks\savedfirstmark
-
-% Set \topmark and \firstmark for next time \output runs.
-% Can't be run from withinside \output (because any material
-% added while an output routine is active, including 
-% penalties, is saved for after it finishes).  The page so far
-% should be empty, otherwise what's on it will be thrown away.
-\def\restoremarks{%
-  \mark{\the\savedtopmark}%
-  \bgroup\output = {%
-    \setbox\dummybox=\box\PAGE
-  }abc\eject\egroup
-  % "abc" because output routine doesn't fire for a completely empty page.
-  \mark{\the\savedfirstmark}%
-}
-
 \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
   % If not much space left on page, start a new page.
   \ifdim\pagetotal>0.8\vsize\vfill\eject\fi
   %
   % Grab any single-column material above us.
   \output = {%
-    %
-    % Here is a possibility not foreseen in manmac: if we accumulate a
-    % whole lot of material, we might end up calling this \output
-    % routine twice in a row (see the doublecol-lose test, which is
-    % essentially a couple of indexes with @setchapternewpage off).  In
-    % that case we just ship out what is in \partialpage with the normal
-    % output routine.  Generally, \partialpage will be empty when this
-    % runs and this will be a no-op.  See the indexspread.tex test case.
-    \ifvoid\partialpage \else
-      \onepageout{\pagecontents\partialpage}%
-    \fi
+    \savetopmark
     %
     \global\setbox\partialpage = \vbox{%
       % Unvbox the main output page.
       \unvbox\PAGE
       \kern-\topskip \kern\baselineskip
     }%
-    \savemarks
   }%
   \eject % run that output routine to set \partialpage
-  \restoremarks
-  %
-  % We recover the two marks that the last output routine saved in order
-  % to propagate the information in marks added around a chapter heading,
-  % which could be otherwise be lost by the time the final page is output.
-  %
   %
   % Use the double-column output routine for subsequent pages.
   \output = {\doublecolumnout}%
@@ -5941,7 +5843,9 @@ end
     \divide\doublecolumnhsize by 2
   \hsize = \doublecolumnhsize
   %
-  % Double the \vsize as well.
+  % Get the available space for the double columns -- the normal
+  % (undoubled) page height minus any material left over from the
+  % previous page.
   \advance\vsize by -\ht\partialpage
   \vsize = 2\vsize
   %
@@ -5954,17 +5858,15 @@ end
 %
 \def\doublecolumnout{%
   %
+  \savetopmark
   \splittopskip=\topskip \splitmaxdepth=\maxdepth
-  % Get the available space for the double columns -- the normal
-  % (undoubled) page height minus any material left over from the
-  % previous page.
   \dimen@ = \vsize
   \divide\dimen@ by 2
   %
   % box0 will be the left-hand column, box2 the right.
   \setbox0=\vsplit\PAGE to\dimen@ \setbox2=\vsplit\PAGE to\dimen@
   \global\advance\vsize by 2\ht\partialpage
-  \onepageout\pagesofar
+  \onepageout\pagesofar % empty except for the first time we are called
   \unvbox\PAGE
   \penalty\outputpenalty
 }
@@ -5980,7 +5882,7 @@ end
 }
 
 
-% Finished with with double columns.
+% Finished with double columns.
 \def\enddoublecolumns{%
   % The following penalty ensures that the page builder is exercised
   % _before_ we change the output routine.  This is necessary in the
@@ -6012,7 +5914,7 @@ end
   %
   \output = {%
     % Split the last of the double-column material.
-    \savemarks
+    \savetopmark
     \balancecolumns
   }%
   \eject % call the \output just set
@@ -6020,10 +5922,9 @@ end
     % Having called \balancecolumns once, we do not
     % want to call it again.  Therefore, reset \output to its normal
     % definition right away.
-    \global\output = {\onepageout{\pagecontents\PAGE}}%
+    \global\output=\expandafter{\the\defaultoutput}
     %
     \endgroup % started in \begindoublecolumns
-    \restoremarks
     % Leave the double-column material on the current page, no automatic
     % page break.
     \box\balancedcolumns
@@ -6047,13 +5948,14 @@ end
 \def\balancecolumns{%
   \setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120.
   \dimen@ = \ht0
-  \advance\dimen@ by \topskip
-  \advance\dimen@ by-\baselineskip
-  \ifdim\dimen@<5\baselineskip
+  \ifdim\dimen@<7\baselineskip
     % Don't split a short final column in two.
     \setbox2=\vbox{}%
     \global\setbox\balancedcolumns=\vbox{\pagesofar}%
   \else
+    % double the leading vertical space
+    \advance\dimen@ by \topskip
+    \advance\dimen@ by-\baselineskip
     \divide\dimen@ by 2 % target to split to
     \dimen@ii = \dimen@
     \splittopskip = \topskip
@@ -6188,11 +6090,9 @@ end
 
 % @raisesections: treat @section as chapter, @subsection as section, etc.
 \def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
 
 % @lowersections: treat @chapter as section, @section as subsection, etc.
 \def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
 
 % we only have subsub.
 \chardef\maxseclevel = 3
@@ -6537,27 +6437,22 @@ end
   \expandafter\ifx\thisenv\titlepage\else
     \checkenv{}% chapters, etc., should not start inside an environment.
   \fi
-  % FIXME: \chapmacro is currently called from inside \titlepage when
-  % \setcontentsaftertitlepage to print the "Table of Contents" heading, but
-  % this should probably be done by \sectionheading with an option to print
-  % in chapter size.
-  %
   % Insert the first mark before the heading break (see notes for \domark).
-  \let\prevchapterdefs=\lastchapterdefs
-  \let\prevsectiondefs=\lastsectiondefs
-  \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
+  \let\prevchapterdefs=\currentchapterdefs
+  \let\prevsectiondefs=\currentsectiondefs
+  \gdef\currentsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
                         \gdef\thissection{}}%
   %
   \def\temptype{#2}%
   \ifx\temptype\Ynothingkeyword
-    \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
+    \gdef\currentchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
                           \gdef\thischapter{\thischaptername}}%
   \else\ifx\temptype\Yomitfromtockeyword
-    \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
+    \gdef\currentchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
                           \gdef\thischapter{}}%
   \else\ifx\temptype\Yappendixkeyword
     \toks0={#1}%
-    \xdef\lastchapterdefs{%
+    \xdef\currentchapterdefs{%
       \gdef\noexpand\thischaptername{\the\toks0}%
       \gdef\noexpand\thischapternum{\appendixletter}%
       % \noexpand\putwordAppendix avoids expanding indigestible
@@ -6568,7 +6463,7 @@ end
     }%
   \else
     \toks0={#1}%
-    \xdef\lastchapterdefs{%
+    \xdef\currentchapterdefs{%
       \gdef\noexpand\thischaptername{\the\toks0}%
       \gdef\noexpand\thischapternum{\the\chapno}%
       % \noexpand\putwordChapter avoids expanding indigestible
@@ -6588,18 +6483,18 @@ end
   %
   % Now the second mark, after the heading break.  No break points
   % between here and the heading.
-  \let\prevchapterdefs=\lastchapterdefs
-  \let\prevsectiondefs=\lastsectiondefs
+  \let\prevchapterdefs=\currentchapterdefs
+  \let\prevsectiondefs=\currentsectiondefs
   \domark
   %
   {%
     \chapfonts \rm
     \let\footnote=\errfootnoteheading % give better error message
     %
-    % Have to define \lastsection before calling \donoderef, because the
+    % Have to define \currentsection before calling \donoderef, because the
     % xref code eventually uses it.  On the other hand, it has to be called
     % after \pchapsepmacro, or the headline will change too soon.
-    \gdef\lastsection{#1}%
+    \gdef\currentsection{#1}%
     %
     % Only insert the separating space if we have a chapter/appendix
     % number, and don't print the unnumbered ``number''.
@@ -6688,10 +6583,10 @@ end
     \csname #2fonts\endcsname \rm
     %
     % Insert first mark before the heading break (see notes for \domark).
-    \let\prevsectiondefs=\lastsectiondefs
+    \let\prevsectiondefs=\currentsectiondefs
     \ifx\temptype\Ynothingkeyword
       \ifx\sectionlevel\seckeyword
-        \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
+        
\gdef\currentsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
                               \gdef\thissection{\thissectionname}}%
       \fi
     \else\ifx\temptype\Yomitfromtockeyword
@@ -6699,7 +6594,7 @@ end
     \else\ifx\temptype\Yappendixkeyword
       \ifx\sectionlevel\seckeyword
         \toks0={#1}%
-        \xdef\lastsectiondefs{%
+        \xdef\currentsectiondefs{%
           \gdef\noexpand\thissectionname{\the\toks0}%
           \gdef\noexpand\thissectionnum{#4}%
           % \noexpand\putwordSection avoids expanding indigestible
@@ -6712,7 +6607,7 @@ end
     \else
       \ifx\sectionlevel\seckeyword
         \toks0={#1}%
-        \xdef\lastsectiondefs{%
+        \xdef\currentsectiondefs{%
           \gdef\noexpand\thissectionname{\the\toks0}%
           \gdef\noexpand\thissectionnum{#4}%
           % \noexpand\putwordSection avoids expanding indigestible
@@ -6738,28 +6633,28 @@ end
     %
     % Now the second mark, after the heading break.  No break points
     % between here and the heading.
-    \global\let\prevsectiondefs=\lastsectiondefs
+    \global\let\prevsectiondefs=\currentsectiondefs
     \domark
     %
     % Only insert the space after the number if we have a section number.
     \ifx\temptype\Ynothingkeyword
       \setbox0 = \hbox{}%
       \def\toctype{unn}%
-      \gdef\lastsection{#1}%
+      \gdef\currentsection{#1}%
     \else\ifx\temptype\Yomitfromtockeyword
       % for @headings -- no section number, don't include in toc,
-      % and don't redefine \lastsection.
+      % and don't redefine \currentsection.
       \setbox0 = \hbox{}%
       \def\toctype{omit}%
       \let\sectionlevel=\empty
     \else\ifx\temptype\Yappendixkeyword
       \setbox0 = \hbox{#4\enspace}%
       \def\toctype{app}%
-      \gdef\lastsection{#1}%
+      \gdef\currentsection{#1}%
     \else
       \setbox0 = \hbox{#4\enspace}%
       \def\toctype{num}%
-      \gdef\lastsection{#1}%
+      \gdef\currentsection{#1}%
     \fi\fi\fi
     %
     % Write the toc entry (before \donoderef).  See comments in \chapmacro.
@@ -6849,13 +6744,8 @@ end
   % 1 and 2 (the page numbers aren't printed), and so are the first
   % two pages of the document.  Thus, we'd have two destinations named
   % `1', and two named `2'.
-  \ifpdf
+  \ifpdforxetex
     \global\pdfmakepagedesttrue
-  \else
-    \ifx\XeTeXrevision\thisisundefined
-    \else
-      \global\pdfmakepagedesttrue
-    \fi
   \fi
 }
 
@@ -7218,11 +7108,7 @@ end
 
 % @cartouche ... @end cartouche: draw rectangle w/rounded corners around
 % environment contents.
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
+
 %
 \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
 \def\ctr{{\hskip 6pt\circle\char'010}}
@@ -7237,7 +7123,18 @@ end
 %
 \newskip\lskip\newskip\rskip
 
+% only require the font if @cartouche is actually used
+\def\cartouchefontdefs{%
+  \font\circle=lcircle10\relax
+  \circthick=\fontdimen8\circle
+}
+\newdimen\circthick
+\newdimen\cartouter\newdimen\cartinner
+\newskip\normbskip\newskip\normpskip\newskip\normlskip
+
+
 \envdef\cartouche{%
+  \cartouchefontdefs
   \ifhmode\par\fi  % can't be in the midst of a paragraph.
   \startsavinginserts
   \lskip=\leftskip \rskip=\rightskip
@@ -7416,13 +7313,9 @@ end
 
 
 % @raggedright does more-or-less normal line breaking but no right
-% justification.  From plain.tex.  Don't stretch around special
-% characters in urls in this environment, since the stretch at the right
-% should be enough.
+% justification.  From plain.tex.
 \envdef\raggedright{%
   \rightskip0pt plus2.4em \spaceskip.3333em \xspaceskip.5em\relax
-  \def\urefprestretchamount{0pt}%
-  \def\urefpoststretchamount{0pt}%
 }
 \let\Eraggedright\par
 
@@ -7584,7 +7477,7 @@ end
   \nonfillstart
   \tt % easiest (and conventionally used) font for verbatim
   % The \leavevmode here is for blank lines.  Otherwise, we would
-  % never \starttabox and the \egroup would end verbatim mode.
+  % never \starttabbox and the \egroup would end verbatim mode.
   \def\par{\leavevmode\egroup\box\verbbox\endgraf}%
   \tabexpand
   \setupmarkupstyle{verbatim}%
@@ -7647,9 +7540,12 @@ end
   {%
     \makevalueexpandable
     \setupverbatim
-    \indexnofonts       % Allow `@@' and other weird things in file names.
-    \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}%
-    \input #1
+    {%
+      \indexnofonts       % Allow `@@' and other weird things in file names.
+      \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}%
+      \edef\tmp{\noexpand\input #1 }
+      \expandafter
+    }\tmp
     \afterenvbreak
   }%
 }
@@ -7794,6 +7690,21 @@ end
   \fi\fi
 }
 
+% \dosubind {index}{topic}{subtopic}
+%
+% If SUBTOPIC is present, precede it with a space, and call \doind.
+% (At some time during the 20th century, this made a two-level entry in an 
+% index such as the operation index.  Nobody seemed to notice the change in 
+% behaviour though.)
+\def\dosubind#1#2#3{%
+  \def\thirdarg{#3}%
+  \ifx\thirdarg\empty
+    \doind{#1}{#2}%
+  \else
+    \doind{#1}{#2\space#3}%
+  \fi
+}
+
 % Untyped functions:
 
 % @deffn category name args
@@ -7808,7 +7719,6 @@ end
 % \deffngeneral {subind}category name args
 %
 \def\deffngeneral#1#2 #3 #4\endheader{%
-  % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
   \dosubind{fn}{\code{#3}}{#1}%
   \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
 }
@@ -8015,6 +7925,7 @@ end
   \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
   \gdef\magicamp{\let&=\amprm}
 }
+\let\ampchar\&
 
 \newcount\parencount
 
@@ -8095,36 +8006,18 @@ end
   }
 \fi
 
-% alias because \c means cedilla in @tex or @math
-\let\texinfoc=\c
-
-\newcount\savedcatcodeone
-\newcount\savedcatcodetwo
-
 % Used at the time of macro expansion.
 % Argument is macro body with arguments substituted
 \def\scanmacro#1{%
   \newlinechar`\^^M
   \def\xeatspaces{\eatspaces}%
   %
-  % Temporarily undo catcode changes of \printindex.  Set catcode of @ to
-  % 0 so that @-commands in macro expansions aren't printed literally when 
-  % formatting an index file, where \ is used as the escape character.
-  \savedcatcodeone=\catcode`\@
-  \savedcatcodetwo=\catcode`\\
-  \catcode`\@=0
-  \catcode`\\=\active
-  %
   % Process the macro body under the current catcode regime.
-  \scantokens{#1@texinfoc}%
+  \scantokens{#1@comment}%
   %
-  \catcode`\@=\savedcatcodeone
-  \catcode`\\=\savedcatcodetwo
-  %
-  % The \texinfoc is to remove the \newlinechar added by \scantokens, and
-  % can be noticed by \parsearg.
-  %   We avoid surrounding the call to \scantokens with \bgroup and \egroup
-  % to allow macros to open or close groups themselves.
+  % The \comment is to remove the \newlinechar added by \scantokens, and
+  % can be noticed by \parsearg.  Note \c isn't used because this means 
cedilla 
+  % in math mode.
 }
 
 % Used for copying and captions
@@ -8225,12 +8118,14 @@ end
 \def\macroargctxt{%
   \scanctxt
   \catcode`\ =\active
+  \catcode`\@=\other
   \catcode`\^^M=\other
   \catcode`\\=\active
 }
 
 \def\macrolineargctxt{% used for whole-line arguments without braces
   \scanctxt
+  \catcode`\@=\other
   \catcode`\{=\other
   \catcode`\}=\other
 }
@@ -8794,9 +8689,29 @@ end
 % also remove a trailing comma, in case of something like this:
 % @node Help-Cross,  ,  , Cross-refs
 \def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
-\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
+\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}\omittopnode}
+
+% Used so that the @top node doesn't have to be wrapped in an @ifnottex
+% conditional.
+% \doignore goes to more effort to skip nested conditionals but we don't need 
+% that here.
+\def\omittopnode{%
+   \ifx\lastnode\wordTop
+   \expandafter\ignorenode\fi
+}
+\def\wordTop{Top}
+
+% Until the next @node or @bye command, divert output to a box that is not 
+% output.
+\def\ignorenode{\setbox\dummybox\vbox\bgroup\def\node{\egroup\node}%
+\ignorenodebye
+}
+
+{\let\bye\relax
+\gdef\ignorenodebye{\let\bye\ignorenodebyedef}
+\gdef\ignorenodebyedef{\egroup(`Top' node ignored)\bye}}
+% The redefinition of \bye here is because it is declared \outer
 
-\let\nwnode=\node
 \let\lastnode=\empty
 
 % Write a cross-reference definition for the current node.  #1 is the
@@ -8819,7 +8734,7 @@ end
 
 % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
 % anchor), which consists of three parts:
-% 1) NAME-title - the current sectioning name taken from \lastsection,
+% 1) NAME-title - the current sectioning name taken from \currentsection,
 %                 or the anchor name.
 % 2) NAME-snt   - section number and type, passed as the SNT arg, or
 %                 empty for anchors.
@@ -8841,7 +8756,7 @@ end
        \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
          ##1}{##2}}% these are parameters of \writexrdef
       }%
-      \toks0 = \expandafter{\lastsection}%
+      \toks0 = \expandafter{\currentsection}%
       \immediate \writexrdef{title}{\the\toks0 }%
       \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
       \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout
@@ -9271,19 +9186,6 @@ end
   \catcode`\^^]=\other
   \catcode`\^^^=\other
   \catcode`\^^_=\other
-  % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
-  % in xref tags, i.e., node names.  But since ^^e4 notation isn't
-  % supported in the main text, it doesn't seem desirable.  Furthermore,
-  % that is not enough: for node names that actually contain a ^
-  % character, we would end up writing a line like this: 'xrdef {'hat
-  % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
-  % argument, and \hat is not an expandable control sequence.  It could
-  % all be worked out, but why?  Either we support ^^ or we don't.
-  %
-  % The other change necessary for this was to define \auxhat:
-  % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
-  % and then to call \auxhat in \setq.
-  %
   \catcode`\^=\other
   %
   % Special characters.  Should be turned off anyway, but...
@@ -9301,14 +9203,7 @@ end
   \catcode`\%=\other
   \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
   %
-  % This is to support \ in node names and titles, since the \
-  % characters end up in a \csname.  It's easier than
-  % leaving it active and making its active definition an actual \
-  % character.  What I don't understand is why it works in the *value*
-  % of the xrdef.  Seems like it should be a catcode12 \, and that
-  % should not typeset properly.  But it works, so I'm moving on for
-  % now.  --karl, 15jan04.
-  \catcode`\\=\other
+  \catcode`\\=\active
   %
   % @ is our escape character in .aux files, and we need braces.
   \catcode`\{=1
@@ -9639,13 +9534,13 @@ end
       \global\advance\floatno by 1
       %
       {%
-        % This magic value for \lastsection is output by \setref as the
+        % This magic value for \currentsection is output by \setref as the
         % XREFLABEL-title value.  \xrefX uses it to distinguish float
         % labels (which have a completely different output format) from
         % node and anchor labels.  And \xrdef uses it to construct the
         % lists of floats.
         %
-        \edef\lastsection{\floatmagic=\safefloattype}%
+        \edef\currentsection{\floatmagic=\safefloattype}%
         \setref{\floatlabel}{Yfloat}%
       }%
     \fi
@@ -9768,7 +9663,7 @@ end
 
 % #1 is the control sequence we are passed; we expand into a conditional
 % which is true if #1 represents a float ref.  That is, the magic
-% \lastsection value which we \setref above.
+% \currentsection value which we \setref above.
 %
 \def\iffloat#1{\expandafter\doiffloat#1==\finish}
 %
@@ -11256,21 +11151,14 @@ directory should work if nowhere else does.}
    \relax
 }
 
-% define all Unicode characters we know about, for the sake of @U.
+% Define all Unicode characters we know about.  This makes UTF-8 the default
+% input encoding and allows @U to work.
 \iftxinativeunicodecapable
   \nativeunicodechardefsatu
 \else
   \utfeightchardefs
 \fi
 
-
-% Make non-ASCII characters printable again for compatibility with
-% existing Texinfo documents that may use them, even without declaring a
-% document encoding.
-%
-\setnonasciicharscatcode \other
-
-
 \message{formatting,}
 
 \newdimen\defaultparindent \defaultparindent = 15pt
@@ -11453,25 +11341,6 @@ directory should work if nowhere else does.}
   \globaldefs = 0
 }}
 
-  % Aggiunto formato 17x24, comunemente usato per i testi scientifici.
-\def\manuale{{\globaldefs = 1
-  \parskip = 2pt plus 1pt minus 0.1pt
-  \textleading = 12.0pt
-  %
-  \internalpagesizes{190mm}{120mm}%
-                    {\voffset}{0mm}%
-                    {\hoffset}{0mm}%
-                    {\bindingoffset}{4.6mm}%
-                    {240mm}{170mm}%
-  %
-  \lispnarrowing = 0.2in
-  \tolerance = 800
-  \hfuzz = 1.2pt
-  \contentsrightmargin = 0pt
-  \defbodyindent = 2mm
-  \tableindent = 12mm
-}}
-
 % Use @afourwide to print on A4 paper in landscape format.
 \def\afourwide{{\globaldefs = 1
   \afourpaper
@@ -11605,11 +11474,9 @@ directory should work if nowhere else does.}
 % \backslashcurfont outputs one backslash character in current font,
 % as in \char`\\.
 \global\chardef\backslashcurfont=`\\
-\global\let\rawbackslashxx=\backslashcurfont  % let existing .??s files work
 
-% \realbackslash is an actual character `\' with catcode other, and
-% \doublebackslash is two of them (for the pdf outlines).
-{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
+% \realbackslash is an actual character `\' with catcode other.
+{\catcode`\\=\other @gdef@realbackslash{\}}
 
 % In Texinfo, backslash is an active character; it prints the backslash
 % in fixed width font.
@@ -11627,10 +11494,8 @@ directory should work if nowhere else does.}
 @def@ttbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
 @let@backslashchar = @ttbackslash % @backslashchar{} is for user documents.
 
-% \rawbackslash defines an active \ to do \backslashcurfont.
 % \otherbackslash defines an active \ to be a literal `\' character with
-% catcode other.  We switch back and forth between these.
-@gdef@rawbackslash{@let\=@backslashcurfont}
+% catcode other.
 @gdef@otherbackslash{@let\=@realbackslash}
 
 % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
@@ -11702,7 +11567,7 @@ directory should work if nowhere else does.}
   @ifx\@eatinput @let\ = @ttbackslash @fi
   @catcode13=5 % regular end of line
   @enableemergencynewline
-  @let@c=@texinfoc
+  @let@c=@comment
   @let@parsearg@originalparsearg
   % Also turn back on active characters that might appear in the input
   % file name, in case not using a pre-dumped format.

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=a6e29c22e038d72069a0ee461523c892b37287d0

commit a6e29c22e038d72069a0ee461523c892b37287d0
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jul 23 06:00:52 2019 +0300

    Update it.po.

diff --git a/po/ChangeLog b/po/ChangeLog
index 15f7207..c8e11f5 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,7 @@
+2019-07-23         Arnold D. Robbins     <address@hidden>
+
+       * it.po: Updated.
+
 2019-06-18         Arnold D. Robbins     <address@hidden>
 
        * 5.0.1: Release tar ball made.
diff --git a/po/it.po b/po/it.po
index 230bde3..4c39115 100644
--- a/po/it.po
+++ b/po/it.po
@@ -4,10 +4,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU Awk 4.2.2, API: 2.0\n"
+"Project-Id-Version: GNU Awk 5.1.0, API: 3.0\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-06-18 20:07+0300\n"
-"PO-Revision-Date: 2019-02-17 20:00+0100\n"
+"POT-Creation-Date: 2019-07-22 10:32+0200\n"
+"PO-Revision-Date: 2019-07-22 11:07+0100\n"
 "Last-Translator: Antonio Colombo <address@hidden>\n"
 "Language-Team: Italian <address@hidden>\n"
 "Language: it\n"
@@ -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:1035 awkgram.y:4457
+#: awkgram.y:1035 awkgram.y:4459
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "`break' non consentito fuori da un ciclo o da uno `switch'"
 
-#: awkgram.y:1045 awkgram.y:4449
+#: awkgram.y:1045 awkgram.y:4451
 msgid "`continue' is not allowed outside a loop"
 msgstr "`continue' non consentito fuori da un un ciclo"
 
@@ -195,7 +195,7 @@ msgstr "espressione regolare usata per assegnare un valore"
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "espressione regolare prima di operatore `~' o `!~'"
 
-#: awkgram.y:1665 awkgram.y:1814
+#: awkgram.y:1665 awkgram.y:1815
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "il vecchio awk non supporta la parola-chiave `in' se non dopo `for'"
 
@@ -212,47 +212,47 @@ msgstr "`getline' non ridiretta invalida all'interno 
della regola `%s'"
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "`getline' non ri-diretta indefinita dentro `azione' END"
 
-#: awkgram.y:1816
+#: awkgram.y:1817
 msgid "old awk does not support multidimensional arrays"
 msgstr "il vecchio awk non supporta vettori multidimensionali"
 
-#: awkgram.y:1919
+#: awkgram.y:1920
 msgid "call of `length' without parentheses is not portable"
 msgstr "chiamata a `length' senza parentesi non-portabile"
 
-#: awkgram.y:1993
+#: awkgram.y:1994
 msgid "indirect function calls are a gawk extension"
 msgstr "chiamate a funzione indirette sono un'estensione gawk"
 
-#: awkgram.y:2006
+#: awkgram.y:2007
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
 msgstr ""
 "non riesco a usare la variabile speciale `%s' come parametro indiretto di "
 "funzione"
 
-#: awkgram.y:2039
+#: awkgram.y:2040
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "tentativo di usare la non-funzione `%s' in una chiamata di funzione"
 
-#: awkgram.y:2104
+#: awkgram.y:2105
 msgid "invalid subscript expression"
 msgstr "espressione indice invalida"
 
-#: awkgram.y:2477 awkgram.y:2497 gawkapi.c:273 gawkapi.c:290 msg.c:137
+#: awkgram.y:2478 awkgram.y:2498 gawkapi.c:273 gawkapi.c:290 msg.c:137
 msgid "warning: "
 msgstr "attenzione: "
 
-#: awkgram.y:2495 gawkapi.c:245 gawkapi.c:288 msg.c:169
+#: awkgram.y:2496 gawkapi.c:245 gawkapi.c:288 msg.c:169
 msgid "fatal: "
 msgstr "fatale: "
 
-#: awkgram.y:2548
+#: awkgram.y:2549
 msgid "unexpected newline or end of string"
 msgstr "carattere 'a capo' o fine stringa non previsti"
 
-#: awkgram.y:2569
+#: awkgram.y:2570
 msgid ""
 "source files / command-line arguments must contain complete functions or "
 "rules"
@@ -260,283 +260,283 @@ msgstr ""
 "i file sorgente / gli argomenti sulla riga di comando devono contenere "
 "funzioni o regole complete"
 
-#: awkgram.y:2851 awkgram.y:2929 awkgram.y:3167 debug.c:536 debug.c:552
+#: awkgram.y:2852 awkgram.y:2930 awkgram.y:3168 debug.c:536 debug.c:552
 #: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "non riesco ad aprire file sorgente `%s' in lettura (%s)"
 
-#: awkgram.y:2852 awkgram.y:2989
+#: awkgram.y:2853 awkgram.y:2990
 #, 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:2854 awkgram.y:2930 awkgram.y:2990 builtin.c:149 debug.c:5345
+#: awkgram.y:2855 awkgram.y:2931 awkgram.y:2991 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "ragione indeterminata"
 
-#: awkgram.y:2863 awkgram.y:2887
+#: awkgram.y:2864 awkgram.y:2888
 #, 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:2876
+#: awkgram.y:2877
 #, c-format
 msgid "already included source file `%s'"
 msgstr "file sorgente `%s' già incluso"
 
-#: awkgram.y:2877
+#: awkgram.y:2878
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "shared library `%s' già inclusa"
 
-#: awkgram.y:2914
+#: awkgram.y:2915
 msgid "@include is a gawk extension"
 msgstr "@include è un'estensione gawk"
 
-#: awkgram.y:2920
+#: awkgram.y:2921
 msgid "empty filename after @include"
 msgstr "nome-file mancante dopo @include"
 
-#: awkgram.y:2969
+#: awkgram.y:2970
 msgid "@load is a gawk extension"
 msgstr "@load è un'estensione gawk"
 
-#: awkgram.y:2976
+#: awkgram.y:2977
 msgid "empty filename after @load"
 msgstr "nome-file mancante dopo @include"
 
-#: awkgram.y:3119
+#: awkgram.y:3120
 msgid "empty program text on command line"
 msgstr "programma nullo sulla riga comandi"
 
-#: awkgram.y:3234
+#: awkgram.y:3236
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "non riesco a leggere file sorgente `%s' (%s)"
 
-#: awkgram.y:3245
+#: awkgram.y:3247
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "file sorgente `%s' vuoto"
 
-#: awkgram.y:3304
+#: awkgram.y:3306
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "errore PEBKAC: carattere invalido '\\%03o' nel codice sorgente"
 
-#: awkgram.y:3531
+#: awkgram.y:3533
 msgid "source file does not end in newline"
 msgstr "file sorgente non termina con carattere 'a capo'"
 
-#: awkgram.y:3652
+#: awkgram.y:3654
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "espressione regolare non completata termina con `\\' a fine file"
 
-#: awkgram.y:3679
+#: awkgram.y:3681
 #, 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:3683
+#: awkgram.y:3685
 #, 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:3696
+#: awkgram.y:3698
 msgid "unterminated regexp"
 msgstr "espressione regolare non completata"
 
-#: awkgram.y:3700
+#: awkgram.y:3702
 msgid "unterminated regexp at end of file"
 msgstr "espressione regolare non completata a fine file"
 
-#: awkgram.y:3789
+#: awkgram.y:3791
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "uso di `\\ #...' continuazione riga non-portabile"
 
-#: awkgram.y:3811
+#: awkgram.y:3813
 msgid "backslash not last character on line"
 msgstr "la barra inversa non è l'ultimo carattere della riga"
 
-#: awkgram.y:3858 awkgram.y:3860
+#: awkgram.y:3860 awkgram.y:3862
 msgid "multidimensional arrays are a gawk extension"
 msgstr "i vettori multidimensionali sono un'estensione gawk"
 
-#: awkgram.y:3885
+#: awkgram.y:3887
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX non consente l'operatore `**='"
 
-#: awkgram.y:3887
+#: awkgram.y:3889
 msgid "old awk does not support operator `**='"
 msgstr "il vecchio awk non supporta l'operatore `**='"
 
-#: awkgram.y:3896
+#: awkgram.y:3898
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX non consente l'operatore `**'"
 
-#: awkgram.y:3898
+#: awkgram.y:3900
 msgid "old awk does not support operator `**'"
 msgstr "il vecchio awk non supporta l'operatore `**'"
 
-#: awkgram.y:3933
+#: awkgram.y:3935
 msgid "operator `^=' is not supported in old awk"
 msgstr "l'operatore `^=' non è supportato nel vecchio awk"
 
-#: awkgram.y:3941
+#: awkgram.y:3943
 msgid "operator `^' is not supported in old awk"
 msgstr "l'operatore `^' non è supportato nel vecchio awk"
 
-#: awkgram.y:4038 awkgram.y:4060 command.y:1187
+#: awkgram.y:4040 awkgram.y:4062 command.y:1187
 msgid "unterminated string"
 msgstr "stringa non terminata"
 
-#: awkgram.y:4048 main.c:1220
+#: awkgram.y:4050 main.c:1220
 msgid "POSIX does not allow physical newlines in string values"
 msgstr ""
 "POSIX non consente dei caratteri di ritorno a capo nei valori assegnati a "
 "una stringa"
 
-#: awkgram.y:4050 node.c:453
+#: awkgram.y:4052 node.c:453
 msgid "backslash string continuation is not portable"
 msgstr "uso di barra inversa per continuazione stringa non-portabile"
 
-#: awkgram.y:4288
+#: awkgram.y:4290
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "carattere '%c' non valido in un'espressione"
 
-#: awkgram.y:4383
+#: awkgram.y:4385
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "`%s' è un'estensione gawk"
 
-#: awkgram.y:4388
+#: awkgram.y:4390
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX non consente `%s'"
 
-#: awkgram.y:4396
+#: awkgram.y:4398
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "`%s' non è supportato nel vecchio awk"
 
-#: awkgram.y:4494
+#: awkgram.y:4496
 msgid "`goto' considered harmful!"
 msgstr "`goto' considerato pericoloso!"
 
-#: awkgram.y:4563
+#: awkgram.y:4565
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d non valido come numero di argomenti per %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4600
 #, 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:4603
+#: awkgram.y:4605
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "il terzo parametro di '%s'  non è un oggetto modificabile"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4709 awkgram.y:4712
 msgid "match: third argument is a gawk extension"
 msgstr "match: il terzo argomento è un'estensione gawk"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4766 awkgram.y:4769
 msgid "close: second argument is a gawk extension"
 msgstr "close: il secondo argomento è un'estensione gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4781
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "uso scorretto di dcgettext(_\"...\"): togliere il carattere '_' iniziale"
 
-#: awkgram.y:4794
+#: awkgram.y:4796
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
 msgstr ""
 "uso scorretto di dcngettext(_\"...\"): togliere il carattere '_' iniziale"
 
-#: awkgram.y:4813
+#: awkgram.y:4815
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: espressione regolare come secondo argomento non consentita"
 
-#: awkgram.y:4866
+#: awkgram.y:4868
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "funzione `%s': il parametro `%s' nasconde variabile globale"
 
-#: awkgram.y:4915 debug.c:4179 debug.c:4222 debug.c:5343
+#: awkgram.y:4917 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "non riesco ad aprire `%s' in scrittura (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4918
 msgid "sending variable list to standard error"
 msgstr "mando lista variabili a `standard error'"
 
-#: awkgram.y:4924
+#: awkgram.y:4926
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: `close' non riuscita (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4951
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() chiamata due volte!"
 
-#: awkgram.y:4957
+#: awkgram.y:4959
 msgid "there were shadowed variables."
 msgstr "c'erano variabili nascoste."
 
-#: awkgram.y:5034
+#: awkgram.y:5036
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "funzione di nome `%s' definita in precedenza"
 
-#: awkgram.y:5085
+#: awkgram.y:5087
 #, 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:5088
+#: awkgram.y:5090
 #, 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:5092
+#: awkgram.y:5094
 #, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
 msgstr "funzione `%s': il parametro `%s' non può contenere un nome-di-spazio"
 
-#: awkgram.y:5099
+#: awkgram.y:5101
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "funzione `%s': il parametro #%d, `%s', duplica il parametro #%d"
 
-#: awkgram.y:5188
+#: awkgram.y:5190
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "funzione `%s' chiamata ma mai definita"
 
-#: awkgram.y:5192
+#: awkgram.y:5194
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "funzione `%s' definita ma mai chiamata direttamente"
 
-#: awkgram.y:5224
+#: awkgram.y:5226
 #, 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:5239
+#: awkgram.y:5241
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -545,47 +545,47 @@ msgstr ""
 "funzione `%s' chiamata con spazio tra il nome e `(',\n"
 "o usata come variabile o vettore"
 
-#: awkgram.y:5454
+#: awkgram.y:5456
 msgid "division by zero attempted"
 msgstr "tentativo di dividere per zero"
 
-#: awkgram.y:5463
+#: awkgram.y:5465
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "tentativo di dividere per zero in `%%'"
 
-#: awkgram.y:5802
+#: awkgram.y:5804
 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:5805
+#: awkgram.y:5807
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "destinazione di assegnazione non valida (codice operativo %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6699
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 "identificativo %s: nomi qualificati non consentiti in modo tradizionale / "
 "POSIX"
 
-#: awkgram.y:6702
+#: awkgram.y:6704
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 "identificativo %s: il separatore dello spazio-dei-nomi è costituito  da due "
 "caratteri ':', non da uno solo"
 
-#: awkgram.y:6708
+#: awkgram.y:6710
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "l'identificativo qualificato `%s' non è nel formato richiesto"
 
-#: awkgram.y:6715
+#: awkgram.y:6717
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
@@ -593,14 +593,14 @@ msgstr ""
 "identificativo `%s': il separatore dello spazio-dei-nomi può apparire una "
 "sola volta in un identificativo qualificato"
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6766 awkgram.y:6817
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 "l'uso dell'identificativo riservato `%s' come nome-di-spazio  non è "
 "consentito"
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6773 awkgram.y:6783
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
@@ -609,11 +609,11 @@ msgstr ""
 "l'uso dell'identificativo riservato `%s' come secondo componente di un "
 "identificativo qualificato non è consentito"
 
-#: awkgram.y:6799
+#: awkgram.y:6801
 msgid "@namespace is a gawk extension"
 msgstr "@namespace è un'estensione gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6808
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -1136,6 +1136,7 @@ msgstr "typeof: tipo di argomento sconosciuto `%s'"
 #, c-format
 msgid "cannot add a new file (%.*s) to ARGV in sandbox mode"
 msgstr ""
+"non è consentito aggiungere un nuovo file (%.*s) ad ARGV in modo sandbox"
 
 #: command.y:227
 #, c-format
@@ -2204,9 +2205,8 @@ msgid "function `%s': argument #%d: attempt to use array 
as a scalar"
 msgstr "funzione `%s': argomento #%d: tentativo di usare vettore come scalare"
 
 #: ext.c:232
-#, fuzzy
 msgid "dynamic loading of libraries is not supported"
-msgstr "caricamento dinamico di libreria non supportato"
+msgstr "caricamento dinamico di librerie non supportato"
 
 #: extension/filefuncs.c:442
 #, c-format
@@ -2397,7 +2397,7 @@ msgid "inplace::end: fsetpos(stdout) failed (%s)"
 msgstr "inplace::end: fsetpos(stdout) non riuscita (%s)"
 
 #: extension/inplace.c:247
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: link(`%s', `%s') failed (%s)"
 msgstr "inplace::end: link(`%s', `%s') non riuscita (%s)"
 
@@ -3155,9 +3155,8 @@ msgstr "\t-l libreria\t\t--load=libreria\n"
 #. values, they should not be translated. Thanks.
 #.
 #: main.c:608
-#, fuzzy
 msgid "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n"
-msgstr "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n"
+msgstr "\t-L[fatal|invalid|no-ext]\t--lint[=fatal|invalid|no-ext]\n"
 
 #: main.c:609
 msgid "\t-M\t\t\t--bignum\n"
@@ -3225,7 +3224,6 @@ msgstr "\t-Z locale-name\t\t--locale=locale-name\n"
 #. address for translation bugs.
 #. no-wrap
 #: main.c:637
-#, fuzzy
 msgid ""
 "\n"
 "To report bugs, see node `Bugs' in `gawk.info'\n"
@@ -3371,9 +3369,8 @@ msgid "empty argument to `-e/--source' ignored"
 msgstr "argomento di `-e/--source' nullo, ignorato"
 
 #: main.c:1662 main.c:1667
-#, fuzzy
 msgid "`--profile' overrides `--pretty-print'"
-msgstr "`--posix' annulla `--traditional'"
+msgstr "`--profile' annulla `--pretty-print'"
 
 #: main.c:1679
 msgid "-M ignored: MPFR/GMP support not compiled in"
@@ -3575,7 +3572,7 @@ msgstr ""
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipo di ri-direzione non noto %d"
 
-#: re.c:58 re.c:161
+#: re.c:58 re.c:163
 msgid ""
 "behavior of matching a regexp containing NUL characters is not defined by "
 "POSIX"
@@ -3583,23 +3580,23 @@ msgstr ""
 "la regola per la corrispondenza di un'espressione regolare che contiene dei "
 "caratteri NUL non è definita in POSIX"
 
-#: re.c:125
+#: re.c:127
 msgid "invalid NUL byte in dynamic regexp"
 msgstr "byte NUL non valido un'espressione regolare dinamica"
 
-#: re.c:172
+#: re.c:174
 #, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
 msgstr "la sequenza di protezione `\\%c' considerata come semplice `%c'"
 
-#: re.c:191
+#: re.c:193
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 "la sequenza di protezione `\\%c' non è un operatore noto per un'espressione "
 "regolare"
 
-#: re.c:650
+#: re.c:652
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
@@ -3769,12 +3766,12 @@ msgstr ") o \\) non aperta"
 msgid "No previous regular expression"
 msgstr "Nessuna espressione regolare precedente"
 
-#: symbol.c:688
+#: symbol.c:691
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
 msgstr ""
 "funzione `%s': non è possibile come nome parametro quello della funzione `%s'"
 
-#: symbol.c:818
+#: symbol.c:821
 msgid "can not pop main context"
 msgstr "non posso salire più in alto nello stack"

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog              |   22 ++
 Checklist              |    6 +-
 NEWS                   |    4 +-
 builtin.c              |   30 +-
 configure              |   20 +-
 configure.ac           |    2 +-
 doc/ChangeLog          |    7 +
 doc/gawk.1             |    4 +-
 doc/gawk.info          |  980 +++++++++++++++++++++++------------------------
 doc/gawk.texi          |    6 +-
 doc/gawktexi.in        |    6 +-
 doc/it/ChangeLog       |    6 +
 doc/it/gawk.1          |  290 +++++++++-----
 doc/it/gawktexi.in     |   43 ++-
 doc/it/texinfo.tex     | 1001 +++++++++++++++++++++---------------------------
 extension/configure    |   20 +-
 extension/configure.ac |    4 +-
 pc/Makefile.tst        |   60 ++-
 pc/config.h            |    6 +-
 po/ChangeLog           |    4 +
 po/ca.gmo              |  Bin 74153 -> 74153 bytes
 po/ca.po               |  228 +++++------
 po/da.gmo              |  Bin 46834 -> 46834 bytes
 po/da.po               |  228 +++++------
 po/de.gmo              |  Bin 83082 -> 83082 bytes
 po/de.po               |  228 +++++------
 po/es.gmo              |  Bin 80963 -> 80963 bytes
 po/es.po               |  228 +++++------
 po/fi.gmo              |  Bin 80423 -> 80423 bytes
 po/fi.po               |  228 +++++------
 po/fr.gmo              |  Bin 91514 -> 91514 bytes
 po/fr.po               |  228 +++++------
 po/gawk.pot            |  230 +++++------
 po/id.gmo              |  Bin 67652 -> 67652 bytes
 po/id.po               |  228 +++++------
 po/it.gmo              |  Bin 87411 -> 88741 bytes
 po/it.po               |  245 ++++++------
 po/ja.gmo              |  Bin 47557 -> 47557 bytes
 po/ja.po               |  228 +++++------
 po/ko.gmo              |  Bin 94866 -> 94866 bytes
 po/ko.po               |  228 +++++------
 po/ms.gmo              |  Bin 1082 -> 1082 bytes
 po/ms.po               |  228 +++++------
 po/nl.gmo              |  Bin 72589 -> 72589 bytes
 po/nl.po               |  228 +++++------
 po/pl.gmo              |  Bin 59338 -> 59338 bytes
 po/pl.po               |  228 +++++------
 po/pt.gmo              |  Bin 86697 -> 86697 bytes
 po/pt.po               |  228 +++++------
 po/pt_BR.gmo           |  Bin 87983 -> 87983 bytes
 po/pt_BR.po            |  228 +++++------
 po/sv.gmo              |  Bin 87635 -> 87635 bytes
 po/sv.po               |  228 +++++------
 po/vi.gmo              |  Bin 90510 -> 90510 bytes
 po/vi.po               |  228 +++++------
 po/zh_CN.gmo           |  Bin 81957 -> 81957 bytes
 po/zh_CN.po            |  228 +++++------
 test/ChangeLog         |    4 +
 test/Makefile.am       |    4 +-
 test/Makefile.in       |    4 +-
 60 files changed, 3465 insertions(+), 3419 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]