gawk-diffs
[Top][All Lists]
Advanced

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

[SCM] gawk branch, master, updated. gawk-4.1.0-3859-g6b7b05f


From: Arnold Robbins
Subject: [SCM] gawk branch, master, updated. gawk-4.1.0-3859-g6b7b05f
Date: Sun, 22 Dec 2019 14:53:55 -0500 (EST)

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  6b7b05f011d15d8b12ee497a26d6dc69cbf445ed (commit)
       via  0c31cf60d2777573de6b34f239a2c4c21bbb8bfc (commit)
       via  6a8e3366a8441364df62499cd827ecc98cbfce07 (commit)
       via  a5b3c3c1686d3f5f684bbd23128347b7af194273 (commit)
       via  2c94bddc97b3ec05ecaebb394bab57be707ca81f (commit)
      from  85d4a663bbe5ac966b15b4d671bf892638350f4d (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=6b7b05f011d15d8b12ee497a26d6dc69cbf445ed

commit 6b7b05f011d15d8b12ee497a26d6dc69cbf445ed
Author: Arnold D. Robbins <address@hidden>
Date:   Sun Dec 22 21:53:33 2019 +0200

    Fix for building on Windows with msys2.

diff --git a/ChangeLog b/ChangeLog
index ecb56e2..94ec981 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-12-22         Jannick               <address@hidden>
+
+       * configure.ac: Hardcode the shared object extension to dll
+       on Windows platforms, i.e.whenever EXEEXT is '.exe'.
+
 2019-12-22         Arnold D. Robbins     <address@hidden>
 
        * gettext.h: Update from gettext 0.20.1.
diff --git a/configure b/configure
index 8d5d2d2..b771eff 100755
--- a/configure
+++ b/configure
@@ -11057,11 +11057,17 @@ ac_config_headers="$ac_config_headers 
config.h:configh.in"
 
 
 
+if test "x$EXEEXT" = x.exe; then :
+  GAWKLIBEXT=dll
+else
+
 case $acl_shlibext in
 dylib) GAWKLIBEXT=so ;;        # MacOS uses .dylib for shared libraries, but 
libtool uses .so for modules
 *) GAWKLIBEXT=$acl_shlibext ;;
 esac
 
+fi
+
 
 ac_config_files="$ac_config_files Makefile support/Makefile awklib/Makefile 
doc/Makefile extras/Makefile po/Makefile.in test/Makefile"
 
diff --git a/configure.ac b/configure.ac
index f353cea..af3432c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -458,10 +458,12 @@ AH_BOTTOM([#include "custom.h"])
 dnl Crude but small hack to make plug-ins work on Mac OS X
 dnl We should really use the libtool value for shrext_cmds, but that
 dnl is not available here, since we do not use libtool at the top level.
+AS_VAR_IF([EXEEXT],[.exe],[GAWKLIBEXT=dll],[
 case $acl_shlibext in
 dylib) GAWKLIBEXT=so ;;        # MacOS uses .dylib for shared libraries, but 
libtool uses .so for modules
 *) GAWKLIBEXT=$acl_shlibext ;;
 esac
+])
 AC_SUBST(GAWKLIBEXT)
 
 AC_CONFIG_FILES(Makefile

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

commit 0c31cf60d2777573de6b34f239a2c4c21bbb8bfc
Author: Arnold D. Robbins <address@hidden>
Date:   Sun Dec 22 21:49:31 2019 +0200

    Update gettext.h.

diff --git a/ChangeLog b/ChangeLog
index a589fb3..ecb56e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-12-22         Arnold D. Robbins     <address@hidden>
+
+       * gettext.h: Update from gettext 0.20.1.
+       * NEWS: Updated.
+
 2019-12-18  Paul Eggert  <address@hidden>
 
        Fix memcpy issue found by -fsanitize=undefined
diff --git a/NEWS b/NEWS
index c8a2c5b..6295859 100644
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,7 @@ Changes from 5.0.1 to 5.1.0
 
 2. A number of memory leak issues have been fixed.
 
-3. Infrastructure upgrades: Bison 3.5, Texinfo 6.7.
+3. Infrastructure upgrades: Bison 3.5, Texinfo 6.7, Gettext 0.20.1.
 
 4. The indexing in the manual has been thoroughly revised, in particular
    making use of the facilities in Texinfo 6.7.  That version (or newer)
diff --git a/gettext.h b/gettext.h
index bfc6148..657fdbe 100644
--- a/gettext.h
+++ b/gettext.h
@@ -1,25 +1,26 @@
 /* Convenience header for conditional use of GNU <libintl.h>.
-   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2016 Free Software
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2018 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation; either version 2.1 of the License, or
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU Lesser General Public License for more details.
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 #ifndef _LIBGETTEXT_H
 #define _LIBGETTEXT_H 1
 
-/* NLS can be disabled through the configure --disable-nls option.  */
-#if ENABLE_NLS
+/* NLS can be disabled through the configure --disable-nls option
+   or through "#define ENABLE NLS 0" before including this file.  */
+#if defined ENABLE_NLS && ENABLE_NLS
 
 /* ADR: Need this so gcc -g without -O works. */
 #ifdef HAVE_LOCALE_H
@@ -71,9 +72,8 @@
    for invalid uses of the value returned from these functions.
    On pre-ANSI systems without 'const', the config.h file is supposed to
    contain "#define const".  */
-/* ADR: BOGUS. Remove const. 19 Feb 2002 */
 # undef gettext
-# define gettext(Msgid) ((char *) (Msgid))
+# define gettext(Msgid) ((const char *) (Msgid))
 # undef dgettext
 # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
 # undef dcgettext
@@ -193,7 +193,8 @@ npgettext_aux (const char *domain,
 #include <string.h>
 
 #if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
-     /* || __STDC_VERSION__ >= 199901L */ )
+     /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc)
+        || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ )
 # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
 #else
 # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0

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

commit 6a8e3366a8441364df62499cd827ecc98cbfce07
Author: Arnold D. Robbins <address@hidden>
Date:   Sun Dec 22 21:49:08 2019 +0200

    Update po/* after updating gettext.

diff --git a/po/ChangeLog b/po/ChangeLog
index c8e11f5..e328c59 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,7 @@
+2019-12-22         Arnold D. Robbins     <address@hidden>
+
+       * Move to gettext 0.20.1.
+
 2019-07-23         Arnold D. Robbins     <address@hidden>
 
        * it.po: Updated.
diff --git a/po/ca.gmo b/po/ca.gmo
index e356fe7..1b6ad52 100644
Binary files a/po/ca.gmo and b/po/ca.gmo differ
diff --git a/po/ca.po b/po/ca.po
index 1e896f5..5612b78 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\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"
@@ -37,8 +37,8 @@ msgstr "s'ha intentat usar un par
 msgid "attempt to use scalar `%s' as an array"
 msgstr "s'ha intentat usar la dada escalar `%s' com a una matriu"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -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:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "s'ha intentat una divisió per zero"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "s'ha intentat una divisió per zero en `%%'"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "destí no vàlid d'assignació (opcode %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include és una extensió de gawk"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -817,71 +817,71 @@ msgstr "[s]printf: l'especificador de format no cont
 msgid "too many arguments supplied for format string"
 msgstr "s'han proporcionat masses arguments per a la cadena de format"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: sense arguments"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: sense arguments"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "printf: s'han intentat escriure a un final d'escriptura tancat a una "
 "canonada de doble via"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: s'ha rebut un argument no numèric"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: cridat amb l'argument negatiu %g"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: la longitud %g no és >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: la longitud %g no és >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: la longitud sobre un nombre no enter %g serà truncada"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 "substr: la llargada %g és massa gran per a la indexació de cadenes de "
 "caràcters, es truncarà a %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: l'índex d'inici %g no és vàlid, usant 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: l'índex d'inici no enter %g serà truncat"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: la cadena font és de longitud zero"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: l'índex d'inici %g sobrepassa l'acabament de la cadena"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -889,251 +889,251 @@ msgstr ""
 "substr: la longitud %g a l'índex d'inici %g excedeix la longitud del primer "
 "argument (%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr "strftime: el valor de format a PROCINFO[\"strftime\"] té tipus numèric"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: s'ha rebut un segon argument no numèric"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr ""
 "strftime: el segon argument és més petit que 0 o massa gran per a time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: ssegon argument fora de rang per a time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: el primer argument rebut no és una cadena"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: s'ha rebut una cadena de format buida"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: s'ha rebut un argument que no és una cadena"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: almenys un dels valors està forra del rang predeterminat"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "la funció 'system' no es permet fora del mode entorn de proves"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: s'ha rebut un argument que no és una cadena"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "print: s'ha intentat escriure a un final d'escriptura tancat a una canonada "
 "de doble via"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "referència a una variable sense inicialitzar `$%d'"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: s'ha rebut un argument que no és una cadena"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: s'ha rebut un argument que no és una cadena"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: el primer argument rebut no és numèric"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: el segon argument rebut no és numèric"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: s'ha rebut un argument que no és numèric"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: s'ha rebut un argument que no és numèric"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: s'ha rebut un argument que no és numèric"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: el tercer argument no és una matriu"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: el tercer argument `%.*s' es tractarà com a 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: es pot cridar indirectament amb dos arguments"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "la crida indirecta a %s requereix almenys dos arguments"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: el primer argument rebut no és numèric"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: el segon argument rebut no és numèric"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, fuzzy, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): els valors negatius donaran resultats estranys"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): els valors fraccionaris sernn truncats"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 "lshift(%f, %f): un valor de desplaçament massa gran donarà resultats estranys"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: el primer argument rebut no és numèric"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: el segon argument rebut no és numèric"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, fuzzy, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): els valors negatius donaran resultats estranys"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): els valors fraccionaris seran truncats"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 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:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: cridat amb menys de dos arguments"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "exp: l'argument %d no és numèric"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, 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:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: cridat amb menys de dos arguments"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: l'argument %d no és numèric"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xort: cridat amb menys de dos arguments"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: l'argument %d no és numèric"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: s'ha rebut un argument que no és numèric"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): el valor negatiu donarà resultats estranys"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): el valor fraccionari serà truncat"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s' no és una categoria local vàlida"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: el tercer argument no és una matriu"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: el primer argument rebut no és numèric"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "lshift: el segon argument rebut no és numèric"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "s'ha intentat una divisió per zero"
 
-#: builtin.c:4040
+#: builtin.c:4041
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: el segon argument no és una matriu"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "opció: paràmetre no vàlid - \"%s\""
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -2540,99 +2540,99 @@ msgstr "sleep: no est
 msgid "input record too large"
 msgstr ""
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF s'inicialitza sobre un valor negatiu"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: el quart argument és una extensió gawk"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: el quart argument no és una matriu"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: el segon argument no és una matriu"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 "split: no es pot usar una submatriu de segon argument per a quart argument"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: no es pot usar una submatriu de segon argument per a quart argument"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: no est pot usar una submatriu de quart argument per a segon argument"
 
-#: field.c:1036
+#: field.c:1027
 #, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: la cadena nul·la per al tercer argument és una extensió de gawk"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: el quart argument no és una matriu"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: el tercer argument no és una matriu"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: el segon argument no és una matriu"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit: no es pot usar la mateixa matriu per a segon i quart argument"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: no es pot usar una submatriu de segon argument per a quart argument"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: no es pot usar una submatriu de quart argument per a segon argument"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "`FIELDWIDTHS' és una extensió de gawk"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr ""
 
-#: field.c:1239
+#: field.c:1230
 #, fuzzy, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "valor FIELDWIDTHS no vàlid, a prop de `%s'"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "la cadena nul·la per a `FS' és una extensió de gawk"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "l'antic awk no suporta expressions regulars com a valor de `FS'"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "`FPAT' és una extensió gawk"
 
@@ -3604,7 +3604,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# perfil gawk, creat %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3613,7 +3613,7 @@ msgstr ""
 "\n"
 "\t# Funcions, llistades alfabèticament\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipus desconegut de redireccionament %d"
@@ -3638,44 +3638,44 @@ msgstr "la seq
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "el component regexp `%.*s' probablement hauria de ser `[%.*s]'"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "[ sense aparellar"
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "classe no vàlida de caràcters"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "la sintaxi de la classe de caràcters és [[:espai:]], no [:espai:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "seqüència d'escapada \\ sense finalitzar"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "contingut no vàlid de \\{\\}"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "l'expressió regular és massa gran"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "( sense aparellar"
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "no s'ha especificat una sintaxi"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ") sense aparellar"
 
diff --git a/po/da.gmo b/po/da.gmo
index 92a21d8..4a344b9 100644
Binary files a/po/da.gmo and b/po/da.gmo differ
diff --git a/po/da.po b/po/da.po
index d4d5b31..207f5ac 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\n"
 "PO-Revision-Date: 2015-05-18 12:37+0200\n"
 "Last-Translator: Keld Simonsen <address@hidden>\n"
 "Language-Team: Danish <address@hidden>\n"
@@ -40,8 +40,8 @@ msgstr "fors
 msgid "attempt to use scalar `%s' as an array"
 msgstr "forsøg på at bruge skalar '%s' som et array"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -547,64 +547,64 @@ msgstr ""
 "funktionen '%s' kaldt med blanktegn mellem navnet og '(',\n"
 "eller brugt som en variabel eller et array"
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "forsøgte at dividere med nul"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "forsøgte at dividere med nul i '%%'"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 
-#: awkgram.y:5807
+#: awkgram.y:5801
 #, fuzzy, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "%d er et ugyldigt antal argumenter for %s"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include er en gawk-udvidelse"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -804,67 +804,67 @@ msgstr "[s]printf: formatspecifikation har intet 
kommandobogstav"
 msgid "too many arguments supplied for format string"
 msgstr "for mange argumenter til formatstrengen"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: ingen argumenter"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: ingen argumenter"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: fik ikke-numerisk argument"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: kaldt med negativt argument %g"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: længden %g er ikke >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: længden %g er ikke >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: længden %g som ikke er et heltal vil blive trunkeret"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr "substr: længden %g for stor til strengindeksering, trunkerer til %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: startindeks %g er ugyldigt, bruger 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: startindeks %g som ikke er et heltal vil blive trunkeret"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: kildestrengen er tom"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: startindeks %g er forbi slutningen på strengen"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -872,246 +872,246 @@ msgstr ""
 "substr: længden %g ved startindeks %g overskrider længden af første argument "
 "(%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr "strftime: formatværdi i PROCINFO[\"strftime\"] har numerisk type"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: fik et ikke-numerisk andet argument"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: andet argument mindre end 0 eller for stort til time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: andet argument uden for område for time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: fik et første argument som ikke er en streng"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: fik en tom formatstreng"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: fik et argument som ikke er en streng"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: mindst én af værdierne er udenfor standardområdet"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "'system'-funktion ikke tilladt i sandkasse-tilstand"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: fik et argument som ikke er en streng"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "reference til ikke-initieret felt '$%d'"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: fik et argument som ikke er en streng"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: fik et argument som ikke er en streng"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: fik et ikke-numerisk første argument"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: fik et ikke-numerisk andet argument"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: fik et ikke-numerisk argument"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: fik et ikke-numerisk argument"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: fik et ikke-numerisk argument"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: tredje argument er ikke et array"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: tredje argument '%.*s' behandlet som 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: kan kun kaldes indirekte med to argumenter"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "indirekte kald til %s kræver mindst to argumenter"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: fik et ikke-numerisk første argument"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: fik et ikke-numerisk andet argument"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, fuzzy, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): negative værdier vil give mærkelige resultater"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): kommatalsværdier vil blive trunkeret"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f): for stor skifteværdi vil give mærkelige resultater"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: fik et ikke-numerisk første argument"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: fik et ikke-numerisk andet argument"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, fuzzy, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): negative værdier vil give mærkelige resultater"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): kommatalsværdier vil blive trunkeret"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 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:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: kaldt med mindre end to argumenter"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argumentet %d er ikke-numerisk"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, 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:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: kaldt med mindre end to argumenter"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argumentet %d er ikke-numerisk"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "zor: kaldt med mindre end to argumenter"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argumentet %d er ikke-numerisk"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: fik et ikke-numerisk argument"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): negativ værdi vil give mærkelige resultater"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): kommatalsværdi vil blive trunkeret"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: '%s' er ikke en gyldig lokalitetskategori"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: tredje argument er ikke et array"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: fik et ikke-numerisk første argument"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "and: fik et ikke-numerisk andet argument"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "forsøgte at dividere med nul"
 
-#: builtin.c:4040
+#: builtin.c:4041
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: andet argument er ikke et array"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "flag: ugyldig parameter - \"%s\""
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -2452,97 +2452,97 @@ msgstr ""
 msgid "input record too large"
 msgstr ""
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF sat til en negativ værdi"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: fjerde argument er en gawk-udvidelse"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: fjerde argument er ikke et array"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: andet argument er ikke et array"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr "split: kan ikke bruge det samme array som andet og fjerde argument"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: kan ikke bruge et underarray af andet argument som fjerde argument"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: kan ikke bruge et underarray af fjerde argument som andet argument"
 
-#: field.c:1036
+#: field.c:1027
 #, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: tom streng som tredje argument er en gawk-udvidelse"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: fjerde argument er ikke et array"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: andet argument er ikke et array"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patmatch: tredje argument er ikke et array"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr "patsplit: kan ikke bruge det samme array som andet og fjerde argument"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: kan ikke bruge et underarray af andet argument som fjerde argument"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: kan ikke bruge et underarray af fjerde argument som andet argument"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "'FIELDWIDTHS' er en gawk-udvidelse"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr ""
 
-#: field.c:1239
+#: field.c:1230
 #, fuzzy, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "ugyldig FIELDWIDTHS værdi, nær '%s"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "tom streng som 'FS' er en gawk-udvidelse"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "gamle versioner af awk understøtter ikke regexp'er som værdi for 'FS'"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "'FPAT' er en gawk-udvidelse"
 
@@ -3497,7 +3497,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# profil til gawk oprettet %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3506,7 +3506,7 @@ msgstr ""
 "\n"
 "\t# Funktioner, listede alfabetisk\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: uykendt omdirigeringstype %d"
@@ -3531,44 +3531,44 @@ msgstr "kontrolsekvensen '\\%c' behandlet som kun '%c'"
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "regexp-komponent `%.*s' skulle nok være `[%.*s]'"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr ""
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "Ugyldig tegnklasse"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr ""
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr ""
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "ugyldigt indhold i \\{\\}"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "regulært udtryk for stort"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr ""
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "ingen syntaks angivet"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ""
 
diff --git a/po/de.gmo b/po/de.gmo
index b50d267..ca88fcd 100644
Binary files a/po/de.gmo and b/po/de.gmo differ
diff --git a/po/de.po b/po/de.po
index 9cd7438..7293e05 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\n"
 "PO-Revision-Date: 2017-09-18 09:08+0200\n"
 "Last-Translator: Philipp Thomas <address@hidden>\n"
 "Language-Team: German <address@hidden>\n"
@@ -37,8 +37,8 @@ msgstr "Es wird versucht, den skalaren Parameter „%s“ als 
Feld zu verwenden"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "Es wird versucht, den Skalar „%s“ als Array zu verwenden"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -561,66 +561,66 @@ msgstr ""
 "Funktion „%s“ wird mit Leerzeichen zwischen Name und »(« aufgerufen, \n"
 "oder als Variable oder Feld verwendet"
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "Division durch Null wurde versucht"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "Division durch Null versucht in »%%«"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "Unzulässiges Ziel für eine Zuweisung (Opcode %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "»@include« ist eine gawk-Erweiterung"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -826,70 +826,70 @@ msgstr "[s]printf: Format-Spezifikation hat keinen 
Controlcode"
 msgid "too many arguments supplied for format string"
 msgstr "Zu viele Argumente für den Formatstring"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: Keine Argumente"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: Keine Argumente"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "printf: Versuch in die geschlossene schreibende Seite einer bidirektionalen "
 "Pipe zu schreiben"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: das Argument ist keine Zahl"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: das Argument %g ist negativ"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: Länge %g ist nicht >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: Länge %g ist nicht >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: Nicht ganzzahlige Länge %g wird abgeschnitten"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 "substr: Länge %g ist zu groß für Stringindizierung, wird auf %g gekürzt"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: Start-Index %g ist ungültig, 1 wird verwendet"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: Nicht ganzzahliger Start-Wert %g wird abgeschnitten"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: Quellstring ist leer"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: Start-Wert %g liegt hinter dem Ende des Strings"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -897,240 +897,240 @@ msgstr ""
 "substr: Länge %g am Start-Wert %g überschreitet die Länge des ersten "
 "Arguments (%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr "strftime: Formatwert in PROCINFO[\"strftime\"] ist numerischen Typs"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: Das zweite Argument ist keine Zahl"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr ""
 "strftime: das zweite Argument ist kleiner als 0 oder zu groß für time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr ""
 "strftime: das zweite Argument ist ausserhalb des Gültigkeitsbereichs von "
 "time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: Das erste Argument ist kein String"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: Der Format-String ist leer"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: Das Argument ist kein String"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: mindestens einer der Werte ist außerhalb des normalen 
Bereichs"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "Die Funktion »system« ist im Sandbox-Modus nicht erlaubt"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: Das Argument ist kein String"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "print: Versuch in die geschlossene schreibende Seite einer bidirektionalen "
 "Pipe zu schreiben"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "Referenz auf das nicht initialisierte Feld »$%d«"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: das Argument ist kein String"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: das Argument ist kein String"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: das erste Argument ist keine Zahl"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: das zweite Argument ist keine Zahl"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: das Argument ist keine Zahl"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: das Argument ist keine Zahl"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: das Argument ist keine Zahl"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: das dritte Argument ist kein Array"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: das dritte Argument „%.*s“ wird als 1 interpretiert"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: kann indirekt nur mit zwei Argumenten aufgerufen werden"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "der indirekte Aufruf von %s erfordert mindestens zwei Argumente"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: das erste Argument ist keine Zahl"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: das zweite Argument ist keine Zahl"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): Negative Werte sind nicht zulässig"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): Dezimalteil wird abgeschnitten"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 "lshift(%f, %f): Zu große Shift-Werte werden zu merkwürdigen Ergebnissen "
 "führen"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: das erste Argument ist keine Zahl"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: das zweite Argument ist keine Zahl"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift (%f, %f): Negative Werte sind nicht zulässig"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): Dezimalteil wird abgeschnitten"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 "rshift(%f, %f): Zu große Shift-Werte werden zu merkwürdigen Ergebnissen "
 "führen"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: wird mit weniger als zwei Argumenten aufgerufen"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: das Argument %d ist nicht numerisch"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, 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:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: wird mit weniger als zwei Argumenten aufgerufen"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: das Argument %d ist nicht numerisch"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: wird mit weniger als zwei Argumenten aufgerufen"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: das Argument %d ist nicht numerisch"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: das erste Argument ist keine Zahl"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): Der negative Wert ist unzulässig"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): der Dezimalteil wird abgeschnitten"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: „%s“ ist keine gültige Locale-Kategorie"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: das dritte Argument ist kein Feld"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: das erste Argument ist keine Zahl"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: das zweite Argument ist keine Zahl"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: Division durch Null wurde versucht"
 
-#: builtin.c:4040
+#: builtin.c:4041
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: das zweite Argument ist kein Feld"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, 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:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: ungültiger Parametertyp „%s“"
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: unbekannter Parametrttyp „%s”"
@@ -2551,105 +2551,105 @@ msgstr "sleep: wird auf dieser Plattform nicht 
unterstützt"
 msgid "input record too large"
 msgstr "Der Eingabe-Datensatz ist zu groß"
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF wird ein negativer Wert zugewiesen"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: das vierte Argument ist eine gawk-Erweiterung"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: das vierte Argument ist kein Feld"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: das zweite Argument ist kein Feld"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 "split: als zweites und viertes Argument kann nicht das gleiche Feld "
 "verwendet werden"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: Ein untergeordnetes Feld des zweiten Arguments kann nicht als viertes "
 "Argument verwendet werden"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: Ein untergeordnetes Feld des vierten Arguments kann nicht als zweites "
 "Argument verwendet werden"
 
-#: field.c:1036
+#: field.c:1027
 #, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: Null-String als drittes Argument ist eine gawk-Erweiterung"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: Das vierte Argument ist kein Feld"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: Das zweite Argument ist kein Feld"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: Das dritte Argument darf nicht Null sein"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit: als zweites und viertes Argument kann nicht das gleiche Feld "
 "verwendet werden"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: Ein untergeordnetes Feld des zweiten Arguments kann nicht als "
 "viertes Argument verwendet werden"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: Ein untergeordnetes Feld des vierten Arguments kann nicht als "
 "zweites Argument verwendet werden"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "»FIELDWIDTHS« ist eine gawk-Erweiterung"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr "„*” muss der letzte Bezeichner in FIELDWIDTHS sein"
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "ungültiger FIELDWIDTHS-Wert für Feld %d, nah bei „%s“"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "Null-String für »FS« ist eine gawk-Erweiterung"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "Das alte awk unterstützt keine regulären Ausdrücke als Wert von 
»FS«"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "»FPAT« ist eine gawk-Erweiterung"
 
@@ -3639,7 +3639,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# gawk-Profil, erzeugt %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3648,7 +3648,7 @@ msgstr ""
 "\n"
 "\t# Funktionen in alphabetischer Reihenfolge\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: unbekannter Umlenkungstyp %d"
@@ -3673,45 +3673,45 @@ msgstr "Fluchtsequenz »\\%c« wird wie ein normales 
»%c« behandelt"
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
 "Regulärer-Ausdruck-Komponente »%.*s« sollte wahrscheinlich »[%.*s]« sein"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "nicht geschlossene ["
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "ungültige Zeichenklasse"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "Die Syntax für Zeichenklassen ist [[:space:]], nicht [:space:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "nicht beendetes \\ Escape"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "Ungültiger Inhalt von \\{\\}"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "Regulärer Ausdruck ist zu groß"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "nicht geschlossene ("
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "keine Syntax angegeben"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr "nicht geöffnete )"
 
diff --git a/po/es.gmo b/po/es.gmo
index 8a21cbd..f2caae4 100644
Binary files a/po/es.gmo and b/po/es.gmo differ
diff --git a/po/es.po b/po/es.po
index 2d2a375..ff82929 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\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"
@@ -39,8 +39,8 @@ msgstr "trata utilizar parámetro escalar «%s» como una 
matriz"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "trata utilizar el escalar «%s» como una matriz"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -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:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "se intentó una división entre cero"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "se intentó una división entre cero en `%%'"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "objetivo inválido de asignación (codigo op %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include es una extensión de gawk"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -820,71 +820,71 @@ msgstr "[s]printf: el especificador de formato no tiene 
letras de control"
 msgid "too many arguments supplied for format string"
 msgstr "se proporcionaron demasiados argumentos para la cadena de formato"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: sin argumentos"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: sin argumentos"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "printf: intenta escribir a final de escritura cerrada de dos tuberías de 
vía "
 "doble"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: se recibió un argumento que no es un númerico"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: se llamó con el argumento negativo %g"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: la longitud %g no es >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: la longitud %g no es >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: se truncará la longitud no entera %g"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 "substr: la longitud %g es demasiado grande para ser índice de cadena, se "
 "trunca a %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: el índice de inicio %g es inválido, se usa 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: se truncará el índice de inicio no entero %g"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: la cadena de origen es de longitud cero"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: el índice de inicio %g está después del fin de la cadena"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -892,239 +892,239 @@ msgstr ""
 "substr: la cadena %g en el índice de inicio %g excede la longitud del primer 
"
 "argumento (%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr ""
 "strftime: el valor de formato en PROCINFO[\"strftime\"] tiene tipo numérico"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: el segundo argumento recibido no es númerico"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr ""
 "strftime: el segundo argumento es menor que 0 o demasiado grande para time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: segundo argumento fuera de rango para tiempo time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: el primer argumento recibido no es una cadena"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: se recibió una cadena de formato vacía"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: se recibió un argumento que no es una cadena"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr ""
 "mktime: por lo menos uno de los valores está fuera del rango por defecto"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "función 'system' no se permite en modo sandbox"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: se recibió un argumento que no es una cadena"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "print: intenta escribir a final de escritura cerrada de tubería de vía 
doble"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "referencia al campo sin inicializar `$%d'"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: se recibió un argumento que no es una cadena"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: se recibió un argumento que no es una cadena"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: el primer argumento recibido no es númerico"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: el segundo argumento recibido no es númerico"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: se recibió un argumento que no es númerico"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: se recibió un argumento que no es númerico"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: se recibió un argumento que no es númerico"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: el tercer argumento no es una matriz"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: el tercer argumento `%.*s' tratado como 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: puede ser llamado indirectamente solo con dos argumentos"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "llamada indirecta a %s requiere al menos dos argumentos"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: el primer argumento recibido no es númerico"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: el segundo argumento recibido no es númerico"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): los valores negativos no están permitidos"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): valores fraccionarios serán truncados"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 "lshift(%f, %f): valor de desplazamiento demasiado grande dará resultados "
 "extraños"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: el primer argumento recibido no es númerico"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: el segundo argumento recibido no es númerico"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): valores negativos no están permitidos"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): valores fraccionarios serán truncados"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 "rshift(%f, %f): un valor de desplazamiento muy grande dará resultados "
 "extraños"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: llamado con menos de dos argumentos"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "y: argumento %d es no-numérico"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "y: argumento negativo %d valorador %g no está permitido"
 
-#: builtin.c:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "o: llamado con menos de dos argumentos"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "o: argumento %d es no numérico"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "o: argumento negativo %d valorador %g no está permitido"
 
-#: builtin.c:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "oex: llamado con menos de dos argumentos"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "oex: argumento %d es no-numérico"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "oex: argumento negativo %d valorado %g no está permitido"
 
-#: builtin.c:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: se recibió un argumento que no es númerico"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): valor negativo no está permitido"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): valor fraccional será truncado"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: «%s» no es una categoría local válida"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: tercer argumento no es una matriz"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: primer argumento recibido es no-númerico"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: segundo argumento recibido no es númerico"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: intentado división entre cero"
 
-#: builtin.c:4040
+#: builtin.c:4041
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: el segundo argumento no es una matriz"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, 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:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "tipode: tipo de argumento inválido «%s»"
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "tipode: tipo de argumento inválido «%s»"
@@ -2529,104 +2529,104 @@ msgstr "sleep: no compatible en esta plataforma"
 msgid "input record too large"
 msgstr "registro entrante demadiado grande"
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF definido a valor negativo"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: el cuarto argumento es una extensión de gawk"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: el cuarto argumento no es una matriz"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: el segundo argumento no es una matriz"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 "split: no se puede usar la misma matriz para el segundo y cuarto argumentos"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: no se puede usar una submatriz del segundo argumento para el cuarto "
 "argumento"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: no se puede usar una submatriz del cuarto argumento para el segundo "
 "argumento"
 
-#: field.c:1036
+#: field.c:1027
 #, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
 msgstr ""
 "split: la cadena nula para el tercer argumento es una extensión de gawk"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: el cuarto argumento no es una matriz"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: el segundo argumento no es una matriz"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: el tercer argumento no debe ser nulo"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit: no se puede usar la misma matriz para segundo y cuarto argumentos"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: no se puede usar una submatriz del segundo argumento para el "
 "cuarto argumento"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: no se puede usar una submatriz del cuarto argumento para el "
 "segundo argumento"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "`FIELDWIDTHS' es una extensión gawk"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr "`*' debe ser el último designador en FIELDWIDTHS"
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "valor de FIELDWIDTHS inválido, para campo %d, cercano a «%s»"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "la cadena nula para `FS' es una extensión de gawk"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "el awk antiguo no admite expresiones regulares como valor de `FS'"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "`FPAT' es una extensión de gawk"
 
@@ -3598,7 +3598,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# perfil de gawk, creado %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3607,7 +3607,7 @@ msgstr ""
 "\n"
 "\t# Funciones, enumeradas alfabéticamente\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipo de redirección %d desconocida"
@@ -3632,45 +3632,45 @@ msgstr "la secuencia de escape `\\%c' tratada como una 
simple `%c'"
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
 "el componente de expresión regular `%.*s' probablemente debe ser `[%.*s]'"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "desbalanceado ["
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "clase de carácter inválido"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "sintaxis de clase de carácter es [[:espacio:]], no [:espacio:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "escape \\ no terminado"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "contenido inválido de \\{\\}"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "expresión regular demasiado grande"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "desbalanceado ("
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "sin sintaxis especificada"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ") desbalanceado"
 
diff --git a/po/fi.gmo b/po/fi.gmo
index 5ae7e0e..c443a98 100644
Binary files a/po/fi.gmo and b/po/fi.gmo differ
diff --git a/po/fi.po b/po/fi.po
index 361db7e..0442d28 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\n"
 "PO-Revision-Date: 2017-08-19 12:18+0300\n"
 "Last-Translator: Jorma Karvonen <address@hidden>\n"
 "Language-Team: Finnish <address@hidden>\n"
@@ -38,8 +38,8 @@ msgstr "yritettiin käyttää skalaariparametria ”%s” 
taulukkona"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "yritettiin käyttää skalaaria ”%s” taulukkona"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -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:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "nollalla jakoa yritettiin"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "jakoa nollalla yritettiin operaattorissa ”%%”"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "virheellinen sijoituskohde (käskykoodi %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include on gawk-laajennus"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -809,70 +809,70 @@ msgstr "[s]printf: muotoargumentilla ei ole 
ohjauskirjainta"
 msgid "too many arguments supplied for format string"
 msgstr "muotomerkkijonoon toimitettu liian monta argumenttia"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: ei argumentteja"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: ei argumentteja"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "printf: yritettiin kirjoittaa kaksisuuntaisen putken suljettuun "
 "kirjoituspäähän"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: pituus %g ei ole >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: pituus %g ei ole >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: typistetään pituus %g, joka ei ole kokonaisluku"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 "substr: pituus %g liian suuri merkkijononindeksointiin, typistetään arvoon 
%g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: aloitusindeksi %g on virheellinen, käytetään 1:tä"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: typistetään aloitusindeksi %g, joka ei ole kokonaisluku"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: lähdemerkkijono on nollapituinen"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: aloitusindeksi %g on merkkijonon lopun jälkeen"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -880,247 +880,247 @@ msgstr ""
 "substr: pituus %g alkuindeksissä %g ylittää ensimmäisen argumentin 
pituuden "
 "(%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr ""
 "strftime: muotoarvolla kohteessa PROCINFO[\"strftime\"] on numerotyyppi"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: toinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr ""
 "strftime: toinen argumentti on pienempi kuin 0 tai liian suuri time_t-"
 "rakenteeseen"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: kohteen time_t toinen argumentti lukualueen ulkopuolella"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: ensimmäinen vastaanotettu argumentti ei ole merkkijono"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: vastaanotettu tyhjä muotomerkkijono"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: vastaanotettu argumentti ei ole merkkijono"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: vähintään yksi arvoista on oletuslukualueen ulkopuolella"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "’system’-funktio ei ole sallittu hiekkalaatikkotilassa"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: vastaanotettu argumentti ei ole merkkijono"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "print: yritettiin kirjoittaa kaksisuuntaisen putken suljettuun "
 "kirjoituspäähän"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "viite alustamattomaan kenttään ”$%d”"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: vastaanotettu argumentti ei ole merkkijono"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: vastaanotettu argumentti ei ole merkkijono"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: toinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: kolmas argumentti ei ole taulukko"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: kolmatta argumenttia  ”%.*s” käsiteltiin kuin 1:stä"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: voidaan kutsua epäsuorasti vain kahdella argumentilla"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "epäsuora kutsu kohteeseen %s vaatii vähintään kaksi argumenttia"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: toinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): negatiiviset arvot eivät ole sallittuja"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): jaosarvot typistetään"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f): liian suuri siirrosarvo antaa outoja tuloksia"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: toinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): negatiiviset arvot eivät ole sallittuja"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): jaosarvot typistetään"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): liian suuri siirrosarvo antaa outoja tuloksia"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: kutsuttu vähemmällä kuin kahdella argumentilla"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argumentti %d ei ole numeeraaliargumentti"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: argumentin %d negatiivinen arvo %g ei ole sallittu"
 
-#: builtin.c:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: kutsuttu vähemmällä kuin kahdella argumentilla"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argumentti %d ei ole numeraaliargumentti"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: argumentin %d negatiivinen arvo %g ei ole sallittu"
 
-#: builtin.c:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: kutsuttu vähemmällä kuin kahdella argumentilla"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argumentti %d ei ole numeraaliargumentti"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: argumentin %d negatiivinen arvo %g ei ole sallittu"
 
-#: builtin.c:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): negatiivinen arvo ei ole sallittu"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): jaosarvo typistetään"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: ”%s” ei ole kelvollinen paikallinen kategoria"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: kolmas argumentti ei ole taulukko"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: toinen vastaanotettu argumentti ei ole numeerinen"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: nollalla jakoa yritettiin"
 
-#: builtin.c:4040
+#: builtin.c:4041
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: toinen argumentti ei ole taulukko"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: virheellinen argumenttityyppi ”%s”"
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, fuzzy, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: virheellinen argumenttityyppi ”%s”"
@@ -2507,104 +2507,104 @@ msgstr "sleep: ei ole tuettu tällä alustalla"
 msgid "input record too large"
 msgstr ""
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF asetettu negatiiviseen arvoon"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: neljäs argumentti on gawk-laajennus"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: neljäs argumentti ei ole taulukko"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: toinen argumentti ei ole taulukko"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 "split: saman taulukon käyttö toiselle ja neljännelle argumentille 
epäonnistui"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: toisen argumentin käyttö alitaulukkoa neljännelle argumentille "
 "epäonnistui"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: neljännen argumentin käyttö alitaulukkoa toiselle argumentille "
 "epäonnistui"
 
-#: field.c:1036
+#: field.c:1027
 #, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: null-merkkijono kolmantena argumenttina on gawk-laajennus"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: neljäs argumentti ei ole taulukko"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: toinen argumentti ei ole taulukko"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: kolmas argumentti ei ole taulukko"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit: saman taulukon käyttö toiselle ja neljännelle argumentille "
 "epäonnistui"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: toisen argumentin käyttö alitaulukkkoa neljännelle argumentille "
 "epäonnistui"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: neljännen argumentin käyttö alitaulukkoa toiselle argumentille "
 "epäonnistui"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "”FIELDWIDTHS” on gawk-laajennus"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr ""
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "virheellinen FIELDWIDTHS-arvo kentälle %d lähellä ”%s”"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "null-merkkijono ”FS”-kenttäerotinmuuttujalle on gawk-laajennus"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "vanha awk ei tue regexp-arvoja ”FS”-kenttäerotinmuuttujana"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "”FPAT” on gawk-laajennus"
 
@@ -3580,7 +3580,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# gawk-profiili, luotu %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3589,7 +3589,7 @@ msgstr ""
 "\n"
 "\t# Funktiot, luetteloitu aakkosjärjestyksessä\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tuntematon edelleenohjaustyyppi %d"
@@ -3614,45 +3614,45 @@ msgstr "koodinvaihtosekvenssi ”\\%c” käsitelty 
kuin pelkkä ”%c”"
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
 "säännöllisen lausekkeen komponentin ”%.*s” pitäisi luultavasti olla 
”[%.*s]”"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "pariton ["
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "virheellinen merkkiluokka"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "merkkiluokkasyntaksi on [[:space:]], ei [:space:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "päättymätön \\-koodinvaihtomerkki"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "virheellinen \\{\\}-sisältö"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "säännöllinen lauseke on liian suuri"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "pariton ("
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "syntaksi ei ole määritelty"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr "pariton )"
 
diff --git a/po/fr.gmo b/po/fr.gmo
index b804872..1d901f9 100644
Binary files a/po/fr.gmo and b/po/fr.gmo differ
diff --git a/po/fr.po b/po/fr.po
index 7abd0ed..8961e4b 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\n"
 "PO-Revision-Date: 2019-03-02 23:58+0100\n"
 "Last-Translator: Jean-Philippe Guérard <jean-philippe.guerard@corbeaunoir."
 "org>\n"
@@ -40,8 +40,8 @@ msgstr "tentative d'utiliser le paramètre scalaire « %s 
» comme tableau"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "tentative d'utiliser le scalaire « %s » comme tableau"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -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:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "tentative de division par zéro"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "tentative de division par zéro dans « %% »"
 
 # gawk 'BEGIN { $1++ = 1 }'
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "cible de l'assignement incorrecte (opcode %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, 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:6704
+#: awkgram.y:6698
 #, 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:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "l'identifiant qualifié « %s » est mal formé"
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, 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:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, 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:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, 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:6801
+#: awkgram.y:6795
 msgid "@namespace is a gawk extension"
 msgstr "@namespace est une extension gawk"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -824,68 +824,68 @@ msgstr "[s]printf : spécification de format sans lettre 
de contrôle"
 msgid "too many arguments supplied for format string"
 msgstr "trop d'arguments pour la chaîne de formatage"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf : aucun argument"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf : aucun argument"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "printf : tentative d'écriture vers un tube bidirectionnel fermé côté 
écriture"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt : l'argument n'est pas numérique"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt : appelé avec un argument négatif %g"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr : la longueur %g n'est pas >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr : la longueur %g n'est pas >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr : la longueur %g n'est pas entière, elle sera tronquée"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr "substr : la longueur %g est trop grande, tronquée à %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr : l'index de début %g n'est pas valide, utilisation de 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr : l'index de début %g n'est pas un entier, il sera tronqué"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr : la chaîne source est de longueur nulle"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr : l'index de début %g est au-delà de la fin de la chaîne"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -893,235 +893,235 @@ msgstr ""
 "substr : la longueur %g à partir de %g dépasse la fin du 1er argument 
(%lu)"
 
 # Exemple : gawk --lint 'BEGIN { PROCINFO["strftime"]=123 ;  print strftime() 
}'
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr ""
 "strftime : la valeur de formatage PROCINFO[\"strftime\"] est de type "
 "numérique"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime : le second argument n'est pas numérique"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: second argument négatif ou trop grand pour time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: second argument hors plage pour time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftim : le premier argument n'est pas une chaîne"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime : la chaîne de formatage est vide"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime : l'argument n'est pas une chaîne"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr ""
 "mktime : au moins l'une des valeurs est en dehors de la plage par défaut"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "La fonction « system » est interdite en isolement (mode sandbox)"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system : l'argument n'est pas une chaîne"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "print : tentative d'écriture vers un tube bidirectionnel fermé côté 
écriture"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "référence à un champ non initialisé « $%d »"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower : l'argument n'est pas une chaîne"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper : l'argument n'est pas une chaîne"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2 : le premier argument n'est pas numérique"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2 : le second argument n'est pas numérique"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin : l'argument n'est pas numérique"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos : l'argument n'est pas numérique"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand : l'argument n'est pas numérique"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match : le 3e argument n'est pas un tableau"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub : le 3e argument « %.*s » sera traité comme un 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s : un appel indirect nécessite deux arguments"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "un appel indirect à %s demande au moins 2 arguments"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift : le premier argument n'est pas numérique"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift : le second argument reçu n'est pas numérique"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f) : les valeurs négatives sont interdites"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f) : les valeurs non entières seront tronquées"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f) : un décalage trop grand donne des résultats 
inattendus"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift : le premier argument n'est pas numérique"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift : le second argument reçu n'est pas numérique"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f) : les valeurs négatives sont interdites"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f) : les valeurs non entières seront tronquées"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 "rshift(%f, %f) : un décalage trop grand donnera des résultats inattendus"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and : appelé avec moins de 2 arguments"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and : l'argument %d n'est pas numérique"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, 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:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or : appelé avec moins de 2 arguments"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or : l'argument %d n'est pas numérique"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor : appelé avec moins de 2 arguments"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor : l'argument %d n'est pas numérique"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl : l'argument n'est pas numérique"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f) : les valeurs négatives sont interdites"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f) : les valeurs non entières seront tronquées"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, 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:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv : le 3e argument n'est pas un tableau"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv : le premier argument n'est pas numérique"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv : le second argument reçu n'est pas numérique"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv : tentative de division par zéro"
 
-#: builtin.c:4040
+#: builtin.c:4041
 msgid "typeof: second argument is not an array"
 msgstr "typeof : le 2e argument n'est pas un tableau"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, 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:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof : type de paramètre incorrect « %s »"
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof : type d'argument inconnu « %s »"
@@ -2514,102 +2514,102 @@ msgstr "sleep : n'est pas disponible sur cette 
plateforme"
 msgid "input record too large"
 msgstr "champ d'entrée trop grand"
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "une valeur négative a été assignée à NF"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr "décrémenter NF n'est pas portable vers de nombreux awk"
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr "accéder aux champs depuis un END pourrait ne pas être portable"
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split : le 4e argument est une extension gawk"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split : le 4e argument n'est pas un tableau"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split : le 2e argument n'est pas un tableau"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr "split : impossible d'utiliser le même tableau comme 2e et 4e 
argument"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split : impossible d'utiliser un sous-tableau du 2e argument en 4e argument"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split : impossible d'utiliser un sous-tableau du 4e argument en 2e argument"
 
-#: field.c:1036
+#: field.c:1027
 msgid "split: null string for third arg is a non-standard extension"
 msgstr ""
 "split : utiliser une chaîne vide en 3e argument est une extension non "
 "standard"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit : le 4e argument n'est pas un tableau"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit : le 2e argument n'est pas un tableau"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit : le 3e argument n'est pas un tableau"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit : impossible d'utiliser le même tableau comme 2e et 4e argument"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit : impossible d'utiliser un sous-tableau du 2e argument en 4e "
 "argument"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit : impossible d'utiliser un sous-tableau du 4e argument en 2e "
 "argument"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "« FIELDWIDTHS » est une extension gawk"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr "« * » doit être le dernier élément de FIELDWIDTHS"
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "valeur de FIELDWIDTHS incorrecte, pour le champ %d, près de « %s 
»"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "utiliser une chaîne vide pour « FS » est une extension gawk"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr ""
 "l'ancien awk n'accepte pas les expr. rationnelles comme valeur de « FS »"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "« FPAT » est une extension gawk"
 
@@ -3585,7 +3585,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# profile gawk, créé %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3594,7 +3594,7 @@ msgstr ""
 "\n"
 "\t# Fonctions, par ordre alphabétique\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str : type de redirection %d inconnu"
@@ -3625,46 +3625,46 @@ msgstr ""
 "séquence d'échappement d'exp. rationnelle « \\%c » n'est pas un 
opérateur "
 "connu"
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
 "le composant d'expression rationnelle « %.*s » devrait probablement être 
"
 "« [%.*s] »"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "[ non apparié"
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "classe de caractères incorrecte"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "la syntaxe des classes de caractères est [[:space:]], et non 
[:space:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "échappement \\ non terminé"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "contenu de \\{\\} incorrect"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "expression rationnelle trop grande"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "( non apparié"
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "aucune syntaxe indiquée"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ") non apparié"
 
diff --git a/po/gawk.pot b/po/gawk.pot
index b7e32c1..0117224 100644
--- a/po/gawk.pot
+++ b/po/gawk.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gawk 5.0.61\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -36,8 +36,8 @@ msgstr ""
 msgid "attempt to use scalar `%s' as an array"
 msgstr ""
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -522,63 +522,63 @@ msgid ""
 "or used as a variable or an array"
 msgstr ""
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr ""
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr ""
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 
-#: awkgram.y:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr ""
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 msgid "@namespace is a gawk extension"
 msgstr ""
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -773,307 +773,307 @@ msgstr ""
 msgid "too many arguments supplied for format string"
 msgstr ""
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr ""
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr ""
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr ""
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr ""
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr ""
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr ""
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr ""
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr ""
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr ""
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr ""
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
 msgstr ""
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr ""
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr ""
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr ""
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr ""
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr ""
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr ""
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr ""
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr ""
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr ""
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr ""
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr ""
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr ""
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr ""
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr ""
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr ""
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr ""
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr ""
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr ""
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr ""
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr ""
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr ""
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr ""
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr ""
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr ""
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr ""
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr ""
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr ""
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr ""
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr ""
 
-#: builtin.c:4040
+#: builtin.c:4041
 msgid "typeof: second argument is not an array"
 msgstr ""
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr ""
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -2385,92 +2385,92 @@ msgstr ""
 msgid "input record too large"
 msgstr ""
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr ""
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr ""
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr ""
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr ""
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 
-#: field.c:1036
+#: field.c:1027
 msgid "split: null string for third arg is a non-standard extension"
 msgstr ""
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr ""
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr ""
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr ""
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr ""
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr ""
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr ""
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr ""
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr ""
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr ""
 
@@ -3361,14 +3361,14 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr ""
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
 "\t# Functions, listed alphabetically\n"
 msgstr ""
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr ""
@@ -3393,44 +3393,44 @@ msgstr ""
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr ""
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr ""
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr ""
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr ""
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr ""
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr ""
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr ""
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr ""
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ""
 
diff --git a/po/id.gmo b/po/id.gmo
index ff2845c..466a9c9 100644
Binary files a/po/id.gmo and b/po/id.gmo differ
diff --git a/po/id.po b/po/id.po
index 438c7ed..823ace3 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\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"
@@ -35,8 +35,8 @@ msgstr "mencoba untuk menggunakan parameter `%s' sebagai 
sebuah array"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "mencoba untuk menggunakan skalar `%s' sebagai sebuah array"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -536,65 +536,65 @@ msgstr ""
 "fungsi `%s' dipanggil dengan spasi diantara nama dan `(',\n"
 "atau gunakan sebagai sebuah variabel atau sebuah array"
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "pembagian dengan nol telah dicoba"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "pembagian dengan nol dicoba dalam `%%'"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "tidak valid sebagai jumlah dari argumen untuk %s"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include adalah sebuah ekstensi gawk"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -797,68 +797,68 @@ msgstr "[s]printf: penspesifikasi format tidak memiliki 
pengontrol huruf"
 msgid "too many arguments supplied for format string"
 msgstr "terlalu banyak argumen diberikan untuk format string"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: tidak ada argumen"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: tidak ada argumen"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: diterima argumen bukan numerik"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: dipanggil dengan argumen %g negatif"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: panjang %g tidak >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: panjang %g tidak >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: panjang bukan integer %g akan dipotong"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 "substr: panjang %g terlalu besar untuk pengindeksan string, dipotong ke %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: awal indeks %g tidak valid, menggunakan 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: awal indeks %g bukan integer akan dipotong"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: sumber string memiliki panjang nol"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: awal indeks %g melewati akhir dari string"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -866,247 +866,247 @@ msgstr ""
 "substr: panjang %g di awal indeks %g melewati panjang dari argumen pertama "
 "(%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: diterima argumen kedua bukan numerik"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: second argument less than 0 or too big for time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 #, fuzzy
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: second argument less than 0 or too big for time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: diterima argumen pertama bukan string"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: diterima format string kosong"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: diterima argumen bukan string"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: at least one of the values is out of the default range"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "'system' function not allowed in sandbox mode"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: diterima argumen bukan string"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "referensi ke field tidak terinisialisasi `$%d'"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: diterima argumen bukan string"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: diterima argumen bukan string"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: diterima argumen pertama bukan numerik"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: diterima argumen kedua bukan numerik"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: diterima argumen bukan numerik"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: diterima argumen bukan numerik"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: diterima argumen bukan numerik"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: argumen ketiga bukan sebuah array"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, fuzzy, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: argumen ketiga dari 0 diperlakukan sebagai 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, fuzzy, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "and: dipanggil dengan argumen negatif"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, fuzzy, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "and: dipanggil dengan argumen negatif"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: diterima argumen pertama bukan numerik"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: diterima argumen kedua bukan numerik"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, fuzzy, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): nilai negatif akan memberikan hasil aneh"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): nilai pecahan akan dipotong"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f): nilai shift terlalu besar akan memberikan hasil aneh"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: diterima argumen pertama bukan numerik"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: diterima argumen kedua bukan-numerik"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, fuzzy, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f. %f): nilai negatif akan memberikan hasil aneh"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): nilai pecahan akan dipotong"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 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:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: dipanggil dengan argumen negatif"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argumen %d diluar dari jangkauan"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, 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:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: dipanggil dengan argumen negatif"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argumen %d diluar dari jangkauan"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: dipanggil dengan argumen negatif"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argumen %d diluar dari jangkauan"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: diterima argumen bukan numerik"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): nilai negatif akan memberikan hasil aneh"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): nilai pecahan akan dipotong"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s' bukan sebuah kategori lokal yang valid"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: argumen ketiga bukan sebuah array"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: diterima argumen pertama tidak numerik"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "and: diterima argumen kedua bukan numerik"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "pembagian dengan nol telah dicoba"
 
-#: builtin.c:4040
+#: builtin.c:4041
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: argumen kedua bukan sebuah array"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "option: invalid parameter - \"%s\""
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -2461,93 +2461,93 @@ msgstr "sleep: not supported on this platform"
 msgid "input record too large"
 msgstr ""
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF set ke nilai negatif"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: argumen ketiga adalah sebuah ekstensi gawk"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: argumen kedua bukan sebuah array"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: argumen kedua bukan sebuah array"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr "split: cannot use the same array for second and fourth args"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr "split: cannot use a subarray of second arg for fourth arg"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr "split: cannot use a subarray of fourth arg for secod arg"
 
-#: field.c:1036
+#: field.c:1027
 #, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: null string untuk arg ketika adalah sebuah ekstensi gawk"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: argumen kedua bukan sebuah array"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: argumen kedua bukan sebuah array"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: argumen ketiga bukan sebuah array"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr "patsplit: cannot use the same array for second and fourth args"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr "patsplit: cannot use a subarray of second arg for fourth arg"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr "patsplit: cannot use a subarray of fourth arg for second arg"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "`FIELDWIDTHS' adalah sebuah ekstensi gawk"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr ""
 
-#: field.c:1239
+#: field.c:1230
 #, fuzzy, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "nilai FIELDWIDTHS tidak valid, didekat `%s'"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "null string untuk `FS' adalah sebuah ekstensi gawk"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "awk lama tidak mendukung regexps sebagai nilai dari `FS'"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "`FPAT' adalah sebuah ekstensi gawk"
 
@@ -3506,7 +3506,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# gawk profile, dibuat %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3515,7 +3515,7 @@ msgstr ""
 "\n"
 "\t# Fungsi, terdaftar secara alphabet\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: unknown redirection type %d"
@@ -3540,46 +3540,46 @@ msgstr "escape sequence `\\%c' diperlakukan sebagai 
plain `%c'"
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "regexp component `%.*s' should probably be `[%.*s]'"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "unbalanced ["
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "nama kelas karakter tidak valid"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "character class syntax is [[:space:]], not [:space:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "unfinished \\ escape"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 #, fuzzy
 msgid "invalid content of \\{\\}"
 msgstr "Isi dari \\{\\} tidak valid"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 #, fuzzy
 msgid "regular expression too big"
 msgstr "Ekspresi regular terlalu besar"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "unbalanced ("
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "no syntax specified"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr "unbalanced )"
 
diff --git a/po/it.gmo b/po/it.gmo
index 75d3186..16493f8 100644
Binary files a/po/it.gmo and b/po/it.gmo differ
diff --git a/po/it.po b/po/it.po
index 19453dc..47bed79 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-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+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"
@@ -34,8 +34,8 @@ msgstr "tentativo di usare il parametro scalare `%s' come un 
vettore"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "tentativo di usare scalare '%s' come vettore"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -545,47 +545,47 @@ msgstr ""
 "funzione `%s' chiamata con spazio tra il nome e `(',\n"
 "o usata come variabile o vettore"
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "tentativo di dividere per zero"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "tentativo di dividere per zero in `%%'"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "destinazione di assegnazione non valida (codice operativo %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, 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:6704
+#: awkgram.y:6698
 #, 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:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "l'identificativo qualificato `%s' non è nel formato richiesto"
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, 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:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, 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:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, 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:6801
+#: awkgram.y:6795
 msgid "@namespace is a gawk extension"
 msgstr "@namespace è un'estensione gawk"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -818,69 +818,69 @@ msgstr "[s]printf: specifica di formato senza un 
carattere di controllo"
 msgid "too many arguments supplied for format string"
 msgstr "troppi argomenti specificati per questa stringa di formato"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: nessun argomento"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: nessun argomento"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "printf: tentativo di scrivere al lato in scrittura, chiuso, di una `pipe' "
 "bidirezionale"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: l'argomento ricevuto non è numerico"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: chiamata con argomento negativo %g"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: lunghezza %g non >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: lunghezza %g non >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: lunghezza non intera %g: sarà troncata"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr "substr: lunghezza %g troppo elevata per indice stringa, tronco a %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: indice di partenza %g non valido, uso 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: indice di partenza non intero %g: sarà troncato"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: stringa di partenza lunga zero"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: indice di partenza %g oltre la fine della stringa"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -888,233 +888,233 @@ msgstr ""
 "substr: lunghezza %g all'indice di partenza %g supera la lunghezza del primo "
 "argomento (%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr ""
 "strftime: il valore del formato in PROCINFO[\"strftime\"] è di tipo numerico"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: il secondo argomento ricevuto non è numerico"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: il secondo argomento è < 0 o troppo elevato per time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: il secondo argomento è fuori intervallo per time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: il primo argomento ricevuto non è una stringa"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: il formato ricevuto è una stringa nulla"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: l'argomento ricevuto non è una stringa"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: almeno un valore è fuori dall'intervallo di default"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "funzione 'system' non consentita in modo `sandbox'"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: l'argomento ricevuto non è una stringa"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "print: tentativo di scrivere al lato in scrittura, chiuso, di una `pipe' "
 "bidirezionale"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "riferimento a variabile non inizializzata `$%d'"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: l'argomento ricevuto non è una stringa"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: l'argomento ricevuto non è una stringa"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: il primo argomento ricevuto non è numerico"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: il secondo argomento ricevuto non è numerico"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: l'argomento ricevuto non è numerico"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: l'argomento ricevuto non è numerico"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: l'argomento ricevuto non è numerico"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: il terzo argomento non è un vettore"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: il terzo argomento `%.*s' trattato come 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: può essere chiamata indirettamente solo con due argomenti"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "chiamata indiretta a %s richiede almeno due argomenti"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: il primo argomento ricevuto non è numerico"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: il secondo argomento ricevuto non è numerico"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): valori negativi non sono consentiti"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): valori decimali saranno troncati"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f): valori troppo alti daranno risultati strani"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: il primo argomento ricevuto non è numerico"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: il secondo argomento ricevuto non è numerico"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): valori negativi non sono consentiti"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): valori decimali saranno troncati"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): valori troppo alti daranno risultati strani"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: chiamata con meno di due argomenti"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: l'argomento %d non è numerico"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: argomento %d, valore negativo %g non consentito"
 
-#: builtin.c:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: chiamata con meno di due argomenti"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: l'argomento %d non è numerico"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: argomento %d, valore negativo %g non consentito"
 
-#: builtin.c:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: chiamata con meno di due argomenti"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: l'argomento %d non è numerico"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: argomento %d, valore negativo %g non consentito"
 
-#: builtin.c:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: l'argomento ricevuto non è numerico"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): valore negativo non consentito"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): valori decimali saranno troncati"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s' non è una categoria `locale' valida"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: il terzo argomento non è un vettore"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: il primo argomento ricevuto non è numerico"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: il secondo argomento ricevuto non è numerico"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: tentativo di dividere per zero"
 
-#: builtin.c:4040
+#: builtin.c:4041
 msgid "typeof: second argument is not an array"
 msgstr "typeof: il secondo argomento non è un vettore"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, 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:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: tipo di argomento sconosciuto `%s'"
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: tipo di argomento sconosciuto `%s'"
@@ -2498,102 +2498,102 @@ msgstr "sleep: non supportato in questa architettura"
 msgid "input record too large"
 msgstr "record in input troppo lungo"
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF impostato a un valore negativo"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr "diminuire NF è non-portabile a molte versioni awk"
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr "utilizzare campi da una regola END può essere non-portabile"
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: il quarto argomento è un'estensione gawk"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: il quarto argomento non è un vettore"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: il secondo argomento non è un vettore"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 "split: non si può usare un unico vettore come secondo e quarto argomento"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: non consentito un quarto argomento che sia un sottovettore del "
 "secondo argomento"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: non consentito un secondo argomento che sia un sottovettore del "
 "quarto argomento"
 
-#: field.c:1036
+#: field.c:1027
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: la stringa nulla come terzo arg. è un'estensione non-standard"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: il quarto argomento non è un vettore"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: il secondo argomento non è un vettore"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: il terzo argomento non può essere nullo"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit: non si può usare un unico vettore come secondo e quarto argomento"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: non consentito un quarto argomento che sia un sottovettore del "
 "secondo argomento"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: non consentito un secondo argomento che sia un sottovettore del "
 "quarto argomento"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "`FIELDWIDTHS' è un'estensione gawk"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr "`*' deve essere l'ultimo  elemento specificato per FIELDWIDTHS"
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "valore di FIELDWIDTHS non valido, per il campo %d, vicino a `%s'"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "la stringa nulla usata come `FS' è un'estensione gawk"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "il vecchio awk non supporta espressioni come valori di `FS'"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "`FPAT' è un'estensione gawk"
 
@@ -3558,7 +3558,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# profilo gawk, creato %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3567,7 +3567,7 @@ msgstr ""
 "\n"
 "\t# Funzioni, in ordine alfabetico\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipo di ri-direzione non noto %d"
@@ -3596,45 +3596,45 @@ msgstr ""
 "la sequenza di protezione `\\%c' non è un operatore noto per un'espressione "
 "regolare"
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
 "componente di espressione `%.*s' dovrebbe probabilmente essere `[%.*s]'"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "[ non chiusa"
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "character class non valida"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "sintassi character class è [[:spazio:]], non [:spazio:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "sequenza escape \\ non completa"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "contenuto di \\{\\} non valido"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "espressione regolare troppo complessa"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "( non chiusa"
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "nessuna sintassi specificata"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ") non aperta"
 
diff --git a/po/ja.gmo b/po/ja.gmo
index 1c0af86..70fcf34 100644
Binary files a/po/ja.gmo and b/po/ja.gmo differ
diff --git a/po/ja.po b/po/ja.po
index 9c3c6b9..7f63b77 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\n"
 "PO-Revision-Date: 2014-11-07 12:26+0000\n"
 "Last-Translator: Yasuaki Taniguchi <address@hidden>\n"
 "Language-Team: Japanese <address@hidden>\n"
@@ -37,8 +37,8 @@ msgstr "スカラー仮引数 `%s' をé…
åˆ—として使用する試みです"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "スカラー `%s' を配列として使用する試みです"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -535,64 +535,64 @@ msgstr ""
 "関数名と `(' の間にスペースを入れて関数 `%s' 
を呼び出しています。\n"
 "または、変数か配列として使われています。"
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "ゼロによる除算が試みられました"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "`%%' 内でゼロによる除算が試みられました"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 
-#: awkgram.y:5807
+#: awkgram.y:5801
 #, fuzzy, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "%d は %s 用の引数の数としては無効です"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include は gawk 拡張です"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -798,67 +798,67 @@ msgstr "[s]printf: 
書式指定子に制御文字がありません"
 msgid "too many arguments supplied for format string"
 msgstr "書式文字列に与えられている引数が多すぎます"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: 引数がありません"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: 引数がありません"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: 数値では無い引数を受け取りました"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: 負の値 %g を引数に使用して呼び出されました"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: 長さ %g が 1 以上ではありません"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: 長さ %g が 0 以上ではありません"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: 文字数 %g の小数点以下は切り捨てます。"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr "substr: 文字数 %g は最大値を超えています。%g 
を使います。"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: 開始インデックス %g 
が無効です。1を使用します"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: 開始インデックス %g 
が非整数のため、値は切り捨てられます"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: 文字列の長さがゼロです。"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: 開始インデックス %g 
が文字列終端の後にあります"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -866,248 +866,248 @@ msgstr ""
 "substr: 開始インデックス %2$g からの長さ %1$g 
は第一引数の長さを超えています "
 "(%3$lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr "strftime: PROCINFO[\"strftime\"] の書式の値は数値型です"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: 非数値の第二引数を受け取りました"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr ""
 
-#: builtin.c:2023
+#: builtin.c:2024
 #, fuzzy
 msgid "strftime: second argument out of range for time_t"
 msgstr "asorti: 第二引数が配列ではありません"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: 非文字列の第一引数を受け取りました"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: 空の書式文字列を受け取りました"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: 非文字列引数を受け取りました"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: 一つ以上の値がデフォルトの範囲を超
えています"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "サンドボックスモードでは 'system' 
関数は許可されていません"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: 文字列では無い引数を受け取りました"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "初期化されていないフィールド `$%d' への参照です"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: 非文字列引数を受け取りました"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: 非文字列引数を受け取りました"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: 非数値の第一引数を受け取りました"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: 非数値の第二引数を受け取りました"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: 非数値の引数を受け取りました"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: 非数値の引数を受け取りました"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: 非数値の引数を受け取りました"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: 第三引数が配列ではありません"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, fuzzy, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: 第三引数が 0 です。1 を代わりに使用します"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, fuzzy, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "and: 2個未満の引数で呼び出されました"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, fuzzy, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "and: 2個未満の引数で呼び出されました"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: 非数値の第一引数を受け取りました"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: 非数値の第二引数を受け取りました"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, fuzzy, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): è² 
の数値を使用すると異常な結果になります"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): 小数点以下は切り捨てられます"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f): 
シフト値が大き過ぎると異常な結果になります"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: 非数値の第一引数を受け取りました"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: 非数値の第二引数を受け取りました"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, fuzzy, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): è² 
の数値を使用すると異常な結果になります"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): 小数点以下は切り捨てられます"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): 
シフト値が大き過ぎると異常な結果になります"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: 2個未満の引数で呼び出されました"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: 引数 %d が非数値です"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, fuzzy, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and(%lf, %lf): è² 
の数値を使用すると異常な結果になります"
 
-#: builtin.c:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: 2個未満の引数で呼び出されました"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: 引数 %d が非数値です"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, fuzzy, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "compl(%lf): è² 
の数値を使用すると異常な結果になります"
 
-#: builtin.c:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 #, fuzzy
 msgid "xor: called with less than two arguments"
 msgstr "xor: 2個未満の引数で呼び出されました"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: 引数 %d が非数値です"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, fuzzy, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor(%lf, %lf): è² 
の数値を使用すると異常な結果になります"
 
-#: builtin.c:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: 非数値の引数を受け取りました"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): è² 
の数値を使用すると異常な結果になります"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): 小数点以下は切り捨てられます"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s' は無効なロケール区分です"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: 第三引数が配列ではありません"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: 非数値の第一引数を受け取りました"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "and: 非数値の第二引数を受け取りました"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "ゼロによる除算が試みられました"
 
-#: builtin.c:4040
+#: builtin.c:4041
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: 第二引数が配列ではありません"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "option: 無効なパラメーター - \"%s\""
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -2447,93 +2447,93 @@ msgstr ""
 msgid "input record too large"
 msgstr ""
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF が負の値に設定されています"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: 第四引数は gawk 拡張です"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: 第四引数が配列ではありません"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: 第二引数が配列ではありません"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr "split: 第二引数と第四引数に同じé…
åˆ—を使用することは出来ません"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr "split: 第四引数に第二引数の部分é…
åˆ—を使用することは出来ません"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr "split: 第二引数に第四引数の部分é…
åˆ—を使用することは出来ません"
 
-#: field.c:1036
+#: field.c:1027
 #, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: 第三引数に NULL 文字列を使用することは gawk 
拡張です"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: 第四引数が配列ではありません"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: 第二引数が配列ではありません"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: 第三引数は非 NULL でなければいけません"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr "patsplit: 第二引数と第四引数に同じé…
åˆ—を使用することは出来ません"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr "patsplit: 第四引数に第二引数の部分é…
åˆ—を使用することは出来ません"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr "patsplit: 第二引数に第四引数の部分é…
åˆ—を使用することは出来ません"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "`FIELDWIDTHS' は gawk 拡張です"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr ""
 
-#: field.c:1239
+#: field.c:1230
 #, fuzzy, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "`%s' 付近の FIELDWIDTHS 値が無効です"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "`FS' に NULL 文字列を使用するのは gawk 拡張です"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "古い awk は `FS' 
の値として正規表現をサポートしません"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "`FPAT' は gawk 拡張です"
 
@@ -3493,7 +3493,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# gawk プロファイル、作成日時 %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3502,7 +3502,7 @@ msgstr ""
 "\n"
 "\t# 関数一覧(アルファベット順)\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: 不明なリダイレクト型 %d です"
@@ -3527,47 +3527,47 @@ msgstr "エスケープシーケンス `\\%c' は `%c' 
と同等に扱われま
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "正規表現の要素 `%.*s' はおそらく `[%.*s]' 
であるべきです"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr ""
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 #, fuzzy
 msgid "invalid character class"
 msgstr "無効な文字クラス名です"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr ""
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr ""
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 #, fuzzy
 msgid "invalid content of \\{\\}"
 msgstr "\\{\\} の中身が無効です"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 #, fuzzy
 msgid "regular expression too big"
 msgstr "正規表現が大きすぎます"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr ""
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr ""
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ""
 
diff --git a/po/ko.gmo b/po/ko.gmo
index a88d083..2f1a740 100644
Binary files a/po/ko.gmo and b/po/ko.gmo differ
diff --git a/po/ko.po b/po/ko.po
index f47db61..cf12d16 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\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"
@@ -38,8 +38,8 @@ msgstr "`%s' 스칼라 매개변수를 배열로 취급하ë 
¤ê³  합니다"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "`%s' 스칼라 구조를 배열 구조로 취급하려고 합니다"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -540,53 +540,53 @@ msgstr ""
 "이름과 `(' 괄호 사이에 공백을 넣어 `%s' 함수를 
호출했거나,\n"
 "변수 또는 배열로 사용했습니다"
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "0으로 나누기를 시도했습니다"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "`%%'에서 0으로 나누기를 시도했습니다"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr "필드 후위 증가 연산자의 결과에 값을 할당할 수 
없습니다"
 
-#: awkgram.y:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "할당 대상이 잘못되었습니다(opcode %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr "%s 식별자: 기존 / POSIX 모드에서 한정 이름은 
허용하지 않습니다"
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr "%s 식별자: 이름 공간은 콜론 하나가 아닌 두개로 
구분합니다."
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "`%s' 한정 식별자의 구성이 올바르지 않습니다"
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 "`%s' 식별자: 이름 공간 구분자는 한정 명칭에서 한번만 
나타내레 수 있습니다"
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr "`%s' 예약 식별자는 이름 공간 명칭으로 허용하지 
않습니다"
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
@@ -594,11 +594,11 @@ msgid ""
 msgstr ""
 "한정 명칭의 두번째 요소로서의 `%s' 예약 식별자 활용은 
허용하지 않습니다"
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 msgid "@namespace is a gawk extension"
 msgstr "@namespace는 gawk 확장 기능입니다"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr "`%s' 이름 공간 명칭에는 식별자 이름 규칙을 
따라야합니다"
@@ -795,68 +795,68 @@ msgstr "[s]printf: 형식 지정자에 제어 문자가 
없습니다"
 msgid "too many arguments supplied for format string"
 msgstr "형식 문자열에 너무나 많은 인자 값을 넣었습니다"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: 인자 값 없음"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: 인자 값 없음"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr "printf: 이미 닫힌 양방향 파이프라인의 쓰기 끝 지ì 
ì—ì„œ 쓰기 시도"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: 숫자가 아닌 인자 값을 받았습니다"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "substr: 음의 %g 인자 값을 넣어 호출했습니다"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: %g 길이가 1보다 크거나 같지 않습니다"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: %g 길이가 0보다 크거나 같지 않습니다"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: 숫자가 아닌 %g 길이 값을 자릅니다"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 "substr: 문자열 인덱싱 번호로는 %g 길이 값이 너무 커서 %g 
값으로 자릅니다"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: %g 시작 인덱스 값이 잘못되어 1을 사용합니다"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: 시작 인덱스로 사용하는 %g 비 정수값을 자릅
니다"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: 원본 문자열 길이가 0입니다"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: %g 시작 인덱스 값이 문자열 길이보다 큽니다"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -864,230 +864,230 @@ msgstr ""
 "substr: %2$g 시작 인덱스로부터의 %1$g 길이는 첫번째 인자 
값의 길이를 초과합니"
 "다(%3$lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr "strftime: PROCINFO[\"strftime\"]의 형식 값에 숫자 값이 
있습니다"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: 숫자가 아닌 두번째 인자 값을 받았습니다"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: 두번째 인자 값이 0보다 작거나 time_t보다 
큽니다"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: 두번째 인자 값이 time_t 범위를 벗어납니다"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: 문자열이 아닌 첫번째 인자 값을 받았습니다"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: 빈 형식 문자열을 받았습니다"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: 문자열이 아닌 인자 값을 받았습니다"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: 지정 값 중 최소 한개 이상이 기본 범위를 
벗어납니다"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "샌드박스 모드에서는 'system' 함수 실행을 허용하지 
않습니다"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: 문자열이 아닌 인자값을 받았습니다"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr "print: 이미 닫힌 양방향 파이프라인의 쓰기 끝 지ì 
ì—ì„œ 쓰기 시도"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "초기화하지 않은 `$%d'번 필드 참조"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: 문자열이 아닌 인자 값을 받았습니다"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: 문자열이 아닌 인자 값을 받았습니다"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: 숫자가 아닌 첫번째 인자 값을 받았습니다"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: 숫자가 아닌 두번째 인자 값을 받았습니다"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: 숫자가 아닌 인자 값을 받았습니다"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: 숫자가 아닌 인자 값을 받았습니다"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: 숫자가 아닌 인자 값을 받았습니다"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: 세번째 인자 값이 배열이 아닙니다"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: 세번째 `%.*s' 인자 값을 1로 취급합니다"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: 인자 값 2개만을 사용하여 간접 호출할 수 
있습니다"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "%s 간접 호출시 최소 인자 값 2개가 필요합니다"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: 숫자가 아닌 첫번째 인자 값을 받았습니다"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: 숫자가 아닌 두번째 인자 값을 받았습니다"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): 음수 값은 허용하지 않습니다"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): 소숫점 아래 값은 잘립니다"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f): 쉬프팅한 값이 크면 이상한 결과를 가ì 
¸ì˜¬ 수 있습니다"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: 숫자가 아닌 첫번째 인자 값을 받았습니다"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: 숫자가 아닌 두번째 인자 값을 받았습니다"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): 음수 값은 허용하지 않습니다"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): 소숫점 아래 값은 잘립니다"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): 쉬프팅한 값이 크면 이상한 결과를 가ì 
¸ì˜¬ 수 있습니다"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: 인자 갯수가 둘 미만입니다"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: %d번째 인자 값은 숫자가 아닙니다"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: %d번째 %g 음수 인자 값은 허용하지 않습니다"
 
-#: builtin.c:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: 인자 갯수가 둘 미만입니다"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: %d번째 인자 값은 숫자가 아닙니다"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or: %d번째 %g 음수 인자 값은 허용하지 않습니다"
 
-#: builtin.c:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: 인자 갯수가 둘 미만입니다"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: %d번째 인자 값은 숫자가 아닙니다"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor: %d번째 %g 음수 인자 값은 허용하지 않습니다"
 
-#: builtin.c:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: 숫자가 아닌 인자 값을 받았습니다"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): 음수 값은 허용하지 않습니다"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): 소숫점 아래 값은 잘립니다"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s'은(는) 유효한 로캘 분류가 아닙니다"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: 세번째 인자 값이 배열이 아닙니다"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: 숫자가 아닌 첫번째 인자 값을 받았습니다"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: 숫자가 아닌 두번째 인자 값을 받았습니다"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: 0으로 나누기를 시도했습니다"
 
-#: builtin.c:4040
+#: builtin.c:4041
 msgid "typeof: second argument is not an array"
 msgstr "typeof: 두번째 인자 값이 배열이 아닙니다"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
@@ -1095,12 +1095,12 @@ msgstr ""
 "typeof에서 잘못된 `%s' 플래그 조합을 발견했습니다. 오류 
보고서를 제출해주십시"
 "오."
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: 잘못된 `%s' 인자 형식"
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: 알 수 없는 `%s' 인자 형식"
@@ -2462,100 +2462,100 @@ msgstr "sleep: 이 플랫폼에서 지원하지 
않습니다"
 msgid "input record too large"
 msgstr "입력 레코드가 너무 큽니다"
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF 값을 음수 값으로 설정했습니다"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr "대부분의 awk 버전에 NF 값 감소 코드를 이식할 수 
없습니다"
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr "END 규칙에서의 필드 접근 코드는 이식 불가능합니다"
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: 네번째 인자 대입은 gawk 확장 기능입니다"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: 네번째 인자 값이 배열이 아닙니다"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: 두번째 인자 값이 배열이 아닙니다"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 "split: 두번째 인자와 네번째 인자 값으로 동일한 배열을 
사용할 수 없습니다"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: 네번째 인자에 대한 두번째 인자 값으로 하위 배열을 
사용할 수 없습니다"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: 두번째 인자에 대한 네번째 인자 값으로 하위 배열을 
사용할 수 없습니다"
 
-#: field.c:1036
+#: field.c:1027
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: 세번째 null 문자열 인자 값은 비 표준 확장 
기능입니다"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: 네번째 인자 값은 배열이 아닙니다"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: 두번째 인자 값은 배열이 아닙니다"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: 세번째 인자 값은 null 값이 아니어야 합니다"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit: 두번째 인자와 네번째 인자 값으로 동일한 배열을 
사용할 수 없습니다"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: 네번째 인자에 대한 두번째 인자 값으로 하위 
배열을 사용할 수 없습니"
 "다"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: 두번째 인자에 대한 네번째 인자 값으로 하위 
배열을 사용할 수 없습니"
 "다"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "`FIELDWIDTHS'는 gawk 확장 기능입니다"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr "`*'는 FIELDWIDTHS의 마지막 지시자여야합니다"
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "%d번째 필드 `%s' 부근에 잘못된 FIELDWIDTHS 값"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "`FS'에 대한 null 문자열 대입은 gawk 확장 기능입니다"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "오래된 awk 버전에서는 `FS'의 정규 표현식값 사용을 
지원하지 않습니다"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "`FPAT'은 gawk 확장 기능입니다"
 
@@ -3505,7 +3505,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# gawk 프로파일, created %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3514,7 +3514,7 @@ msgstr ""
 "\n"
 "\t# 알파벳 순 함수\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: 알 수 없는 %d 리다이렉션 형식"
@@ -3540,44 +3540,44 @@ msgid "regexp escape sequence `\\%c' is not a known 
regexp operator"
 msgstr ""
 "정규 표현식의 `\\%c' 이스케이프 시퀀스는 알려진 정규 
표현식 연산자가 아닙니다"
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "정규 표현식의 `%.*s' 구성 요소는 `[%.*s]' 이어야 할 것 
같습니다"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "짝이 맞지 않는 [ 괄호"
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "잘못된 문자 클래스"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "문자 클래스 표기 방식은 [:space:]가 아닌 [[:space:]]입
니다"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "끝나지 않은 \\ 이스케이프 문자"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "잘못된 \\{\\} 내용"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "정규 표현식이 너무 깁니다"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "짝이 맞지 않는 ( 괄호"
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "구문을 지정하지 않았습니다"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr "짝이 맞지 않는 ) 괄호"
 
diff --git a/po/ms.gmo b/po/ms.gmo
index 0761c9f..2f6283f 100644
Binary files a/po/ms.gmo and b/po/ms.gmo differ
diff --git a/po/ms.po b/po/ms.po
index c9647dd..1137bb6 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\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"
@@ -38,8 +38,8 @@ msgstr "cubaan untuk menggunakan parameter skalar `%s' 
sebagai tatasusunan"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "cubaan untuk menggunakan skalar `%s' sebagai tatasusunan"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -524,63 +524,63 @@ msgid ""
 "or used as a variable or an array"
 msgstr ""
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr ""
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr ""
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr ""
 
-#: awkgram.y:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr ""
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 msgid "@namespace is a gawk extension"
 msgstr ""
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -775,307 +775,307 @@ msgstr ""
 msgid "too many arguments supplied for format string"
 msgstr ""
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr ""
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr ""
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr ""
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr ""
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr ""
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr ""
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr ""
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr ""
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr ""
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr ""
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
 msgstr ""
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr ""
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr ""
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr ""
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr ""
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr ""
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr ""
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr ""
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr ""
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr ""
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr ""
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr ""
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr ""
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr ""
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr ""
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr ""
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr ""
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr ""
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr ""
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr ""
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr ""
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr ""
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr ""
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr ""
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr ""
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr ""
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr ""
 
-#: builtin.c:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr ""
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr ""
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr ""
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr ""
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr ""
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr ""
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr ""
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr ""
 
-#: builtin.c:4040
+#: builtin.c:4041
 msgid "typeof: second argument is not an array"
 msgstr ""
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr ""
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -2387,92 +2387,92 @@ msgstr ""
 msgid "input record too large"
 msgstr ""
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr ""
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr ""
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr ""
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr ""
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 
-#: field.c:1036
+#: field.c:1027
 msgid "split: null string for third arg is a non-standard extension"
 msgstr ""
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr ""
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr ""
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr ""
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr ""
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr ""
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr ""
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr ""
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr ""
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr ""
 
@@ -3363,14 +3363,14 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr ""
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
 "\t# Functions, listed alphabetically\n"
 msgstr ""
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr ""
@@ -3395,44 +3395,44 @@ msgstr ""
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr ""
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr ""
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr ""
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr ""
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr ""
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr ""
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr ""
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr ""
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ""
 
diff --git a/po/nl.gmo b/po/nl.gmo
index 549856c..0ac1f3e 100644
Binary files a/po/nl.gmo and b/po/nl.gmo differ
diff --git a/po/nl.po b/po/nl.po
index cf418a7..bc65147 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\n"
 "PO-Revision-Date: 2019-03-04 10:51+0100\n"
 "Last-Translator: Benno Schulenberg <address@hidden>\n"
 "Language-Team: Dutch <address@hidden>\n"
@@ -42,8 +42,8 @@ msgstr "scalaire parameter '%s' wordt gebruikt als array"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "scalair '%s' wordt gebruikt als array"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -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:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "deling door nul"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "deling door nul in '%%'"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "ongeldig doel van toewijzing (opcode %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "'@include' is een gawk-uitbreiding"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -807,68 +807,68 @@ msgstr "[s]printf: opmaakaanduiding mist een stuurletter"
 msgid "too many arguments supplied for format string"
 msgstr "te veel argumenten voor opmaakstring"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: geen argumenten"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: geen argumenten"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr "printf: poging tot schrijven naar gesloten schrijfkant van tweewegpijp"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: argument is geen getal"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: argument %g is negatief"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: lengte %g is niet >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: lengte %g is niet >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: lengte %g is geen integer; wordt afgekapt"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 "substr: lengte %g is te groot voor stringindexering; wordt verkort tot %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: startindex %g is ongeldig; 1 wordt gebruikt"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: startindex %g is geen integer; wordt afgekapt"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: bronstring heeft lengte nul"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: startindex %g ligt voorbij het einde van de string"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -876,247 +876,247 @@ msgstr ""
 "substr: lengte %g bij startindex %g is groter dan de lengte van het eerste "
 "argument (%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr "strftime: opmaakwaarde in PROCINFO[\"strftime\"] is numeriek"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: tweede argument is geen getal"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: tweede argument is kleiner dan nul of te groot voor 'time_t'"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: tweede argument ligt buiten toegestaan bereik voor 'time_t'"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: eerste argument is geen string"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: opmaakstring is leeg"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: argument is geen string"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: minstens één van waarden valt buiten het standaardbereik"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "'system'-functie is niet toegestaan in sandbox-modus"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: argument is geen string"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr "print: poging tot schrijven naar gesloten schrijfkant van tweewegpijp"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "verwijzing naar ongeïnitialiseerd veld '$%d'"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: argument is geen string"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: argument is geen string"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: eerste argument is geen getal"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: tweede argument is geen getal"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: argument is geen getal"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: argument is geen getal"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: argument is geen getal"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: derde argument is geen array"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: derde argument is '%.*s'; wordt beschouwd als 1"
 
 # FIXME: ambiguous
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: kan alleen indirect aangeroepen worden met twee argumenten"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "indirecte aanroep van %s vereist minstens twee argumenten"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: eerste argument is geen getal"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: tweede argument is geen getal"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, fuzzy, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): negatieve waarden geven rare resultaten"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): cijfers na de komma worden afgekapt"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f): te grote opschuifwaarden geven rare resultaten"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: eerste argument is geen getal"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: tweede argument is geen getal"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, fuzzy, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): negatieve waarden geven rare resultaten"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): cijfers na de komma worden afgekapt"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): te grote opschuifwaarden geven rare resultaten"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: aangeroepen met minder dan twee argumenten"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argument %d is niet-numeriek"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, 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:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: aangeroepen met minder dan twee argumenten"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argument %d is niet-numeriek"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: aangeroepen met minder dan twee argumenten"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argument %d is niet-numeriek"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: argument is geen getal"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): negatieve waarden geven rare resultaten"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): cijfers na de komma worden afgekapt"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: '%s' is geen geldige taalregio-deelcategorie"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: derde argument is geen array"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: eerste argument is geen getal"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "and: tweede argument is geen getal"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "deling door nul"
 
-#: builtin.c:4040
+#: builtin.c:4041
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: tweede argument is geen array"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "option: ongeldige parameter -- \"%s\""
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -2498,105 +2498,105 @@ msgstr "sleep: wordt op dit platform niet ondersteund"
 msgid "input record too large"
 msgstr ""
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF is op een negatieve waarde gezet"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: vierde argument is een gawk-uitbreiding"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: vierde argument is geen array"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: tweede argument is geen array"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 "split: hetzelfde array kan niet zowel als tweede als als vierde argument "
 "gebruikt worden"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: een subarray van het tweede argument kan niet als vierde argument "
 "gebruikt worden"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: een subarray van het vierde argument kan niet als tweede argument "
 "gebruikt worden"
 
-#: field.c:1036
+#: field.c:1027
 #, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: lege string als derde argument is een gawk-uitbreiding"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: vierde argument is geen array"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: tweede argument is geen array"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: derde argument moet niet-nil zijn"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit: hetzelfde array kan niet zowel als tweede als als vierde argument "
 "gebruikt worden"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: een subarray van het tweede argument kan niet als vierde argument "
 "gebruikt worden"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: een subarray van het vierde argument kan niet als tweede argument "
 "gebruikt worden"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "'FIELDWIDTHS' is een gawk-uitbreiding"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr ""
 
-#: field.c:1239
+#: field.c:1230
 #, fuzzy, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "ongeldige waarde voor FIELDWIDTHS, nabij '%s'"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "een lege string als 'FS' is een gawk-uitbreiding"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "oude 'awk' staat geen reguliere expressies toe als waarde van 'FS'"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "'FPAT' is een gawk-uitbreiding"
 
@@ -3557,7 +3557,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# gawk-profiel, gemaakt op %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3566,7 +3566,7 @@ msgstr ""
 "\n"
 "\t# Functies, alfabetisch geordend\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str(): onbekend omleidingstype %d"
@@ -3591,45 +3591,45 @@ msgstr "stuurcodereeks '\\%c' behandeld als normale 
'%c'"
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
 "component '%.*s' van reguliere expressie moet vermoedelijk '[%.*s]' zijn"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "ongepaarde ["
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "ongeldige tekenklasse"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "syntax van tekenklasse is [[:space:]], niet [:space:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "onafgemaakte \\-stuurcode"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "ongeldige inhoud van \\{\\}"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "reguliere expressie is te groot"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "ongepaarde ("
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "geen syntax opgegeven"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr "ongepaarde )"
 
diff --git a/po/pl.gmo b/po/pl.gmo
index d5be09a..27eacb5 100644
Binary files a/po/pl.gmo and b/po/pl.gmo differ
diff --git a/po/pl.po b/po/pl.po
index 25953e5..64d803b 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\n"
 "PO-Revision-Date: 2014-03-22 17:49+0100\n"
 "Last-Translator: Wojciech Polak <address@hidden>\n"
 "Language-Team: Polish <address@hidden>\n"
@@ -39,8 +39,8 @@ msgstr "próba użycia parametru `%s' skalaru jako tablicy"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "próba użycia skalaru `%s' jako tablicy"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -553,64 +553,64 @@ msgstr ""
 "`(',\n"
 "lub użyta jako zmienna lub jako tablica"
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "próba dzielenia przez zero"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "próba dzielenia przez zero w `%%'"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "nieprawidłowy cel przypisania (opcode %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include jest rozszerzeniem gawk"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -815,69 +815,69 @@ msgstr "[s]printf: specyfikator formatu nie posiada 
kontrolnej litery"
 msgid "too many arguments supplied for format string"
 msgstr "zbyt dużo podanych argumentów w łańcuchu formatującym"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: brak argumentów"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: brak argumentów"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: otrzymano argument, który nie jest liczbą"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: wywołana z ujemnym argumentem %g"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: długość %g nie jest >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: długość %g nie jest >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: długość %g, która nie jest liczbą całkowitą, zostanie 
obcięta"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr "substr: długość %g zbyt duża dla indeksu łańcucha, obcinanie do 
%g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: początkowy indeks %g jest nieprawidłowy, nastąpi użycie 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr ""
 "substr: początkowy indeks %g, który nie jest liczbą całkowitą, zostanie "
 "obcięty"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: łańcuch źródłowy ma zerową długość"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: początkowy indeks %g leży poza końcem łańcucha"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -885,248 +885,248 @@ msgstr ""
 "substr: długość %g zaczynając od %g przekracza długość pierwszego 
argumentu "
 "(%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr ""
 "strftime: wartość formatu w PROCINFO[\"strftime\"] posiada typ numeryczny"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: otrzymano drugi argument, który nie jest liczbą"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: drugi argument mniejszy od 0 lub zbyt duży dla time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 #, fuzzy
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: drugi argument mniejszy od 0 lub zbyt duży dla time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: otrzymano pierwszy argument, który nie jest łańcuchem"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: otrzymano pusty łańcuch formatujący"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: otrzymano argument, który nie jest łańcuchem"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: przynajmniej jedna z wartości jest poza domyślnym zakresem"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "funkcja 'system' nie jest dozwolona w trybie piaskownicy"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: otrzymano argument, który nie jest łańcuchem"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "odwołanie do niezainicjowanego pola `$%d'"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: otrzymano argument, który nie jest łańcuchem"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: otrzymano argument, który nie jest łańcuchem"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: otrzymano pierwszy argument, który nie jest liczbą"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: otrzymano drugi argument, który nie jest liczbą"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: otrzymano argument, który nie jest liczbą"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: otrzymano argument, który nie jest liczbą"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: otrzymano argument, który nie jest liczbą"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: otrzymano trzeci argument, który nie jest tablicą"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, fuzzy, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: trzeci argument 0 potraktowany jako 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, fuzzy, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "and: wywołano z mniej niż dwoma argumentami"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, fuzzy, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "and: wywołano z mniej niż dwoma argumentami"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: otrzymano pierwszy argument, który nie jest liczbą"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: otrzymano drugi argument, który nie jest liczbą"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, fuzzy, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): ujemne wartości spowodują dziwne wyniki"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): ułamkowe wartości zostaną obcięte"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f): zbyt duża wartość przesunięcia spowoduje dziwne 
wyniki"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: otrzymano pierwszy argument, który nie jest liczbą"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: otrzymano drugi argument, który nie jest liczbą"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, fuzzy, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): ujemne wartości spowodują dziwne wyniki"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): ułamkowe wartości zostaną obcięte"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): zbyt duża wartość przesunięcia spowoduje dziwne 
wyniki"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: wywołano z mniej niż dwoma argumentami"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argument %d nie jest liczbą"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, 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:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: wywołano z mniej niż dwoma argumentami"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argument %d nie jest liczbą"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: wywołano z mniej niż dwoma argumentami"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argument %d nie jest liczbą"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: otrzymano argument, który nie jest liczbą"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, fuzzy, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): ujemne wartości spowodują dziwne wyniki"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): ułamkowe wartości zostaną obcięte"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: `%s' nie jest prawidłową kategorią lokalizacji"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 #, fuzzy
 msgid "intdiv: third argument is not an array"
 msgstr "match: otrzymano trzeci argument, który nie jest tablicą"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 #, fuzzy
 msgid "intdiv: received non-numeric first argument"
 msgstr "and: otrzymano pierwszy argument, który nie jest liczbą"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 #, fuzzy
 msgid "intdiv: received non-numeric second argument"
 msgstr "and: otrzymano drugi argument, który nie jest liczbą"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 #, fuzzy
 msgid "intdiv: division by zero attempted"
 msgstr "próba dzielenia przez zero"
 
-#: builtin.c:4040
+#: builtin.c:4041
 #, fuzzy
 msgid "typeof: second argument is not an array"
 msgstr "split: drugi argument nie jest tablicą"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr ""
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, fuzzy, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "option: nieprawidłowy parametr - \"%s\""
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr ""
@@ -2462,101 +2462,101 @@ msgstr "sleep: funkcja nie jest wspierana na tej 
platformie"
 msgid "input record too large"
 msgstr ""
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF ustawiony na wartość ujemną"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: czwarty argument jest rozszerzeniem gawk"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: czwarty argument nie jest tablicą"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: drugi argument nie jest tablicą"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 "split: nie można użyć tej samej tablicy dla drugiego i czwartego argumentu"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: nie można użyć podtablicy drugiego argumentu dla czwartego 
argumentu"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: nie można użyć podtablicy czwartego argumentu dla drugiego 
argumentu"
 
-#: field.c:1036
+#: field.c:1027
 #, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: zerowy łańcuch dla trzeciego argumentu jest rozszerzeniem 
gawk"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: czwarty argument nie jest tablicą"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: drugi argument nie jest tablicą"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: trzeci argument nie może być pusty"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit: nie można użyć tej samej tablicy dla drugiego i czwartego 
argumentu"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: nie można użyć podtablicy drugiego argumentu dla czwartego "
 "argumentu"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: nie można użyć podtablicy czwartego argumentu dla drugiego "
 "argumentu"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "`FIELDWIDTHS' jest rozszerzeniem gawk"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr ""
 
-#: field.c:1239
+#: field.c:1230
 #, fuzzy, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "nieprawidłowa wartość FIELDWIDTHS, w pobliżu `%s'"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "zerowy łańcuch dla `FS' jest rozszerzeniem gawk"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "stary awk nie wspiera wyrażeń regularnych jako wartości `FS'"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "`FPAT' jest rozszerzeniem gawk"
 
@@ -3531,7 +3531,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# profil programu gawk, utworzony %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3540,7 +3540,7 @@ msgstr ""
 "\n"
 "\t# Funkcje, spis alfabetyczny\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: nieznany typ przekierowania %d"
@@ -3565,46 +3565,46 @@ msgstr "sekwencja ucieczki `\\%c' potraktowana jako 
zwykłe `%c'"
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "komponent regexp `%.*s' powinien być prawdopodobnie `[%.*s]'"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "[ nie do pary"
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "nieprawidłowa klasa znaku"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "składnia klasy znaku to [[:space:]], a nie [:space:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "niedokończona sekwencja ucieczki \\"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 #, fuzzy
 msgid "invalid content of \\{\\}"
 msgstr "Nieprawidłowa zawartość \\{\\}"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 #, fuzzy
 msgid "regular expression too big"
 msgstr "Wyrażenie regularne jest zbyt duże"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "( nie do pary"
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "nie podano składni"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ") nie do pary"
 
diff --git a/po/pt.gmo b/po/pt.gmo
index 8273d24..5c48ccb 100644
Binary files a/po/pt.gmo and b/po/pt.gmo differ
diff --git a/po/pt.po b/po/pt.po
index 31c1285..3c56978 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\n"
 "PO-Revision-Date: 2019-05-26 08:43+0100\n"
 "Last-Translator: Pedro Albuquerque <address@hidden>\n"
 "Language-Team: Portuguese <address@hidden>\n"
@@ -39,8 +39,8 @@ msgstr "tentativa de usar o parâmetro escalar \"%s\" como 
matriz"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "tentativa de usar o escalar \"%s\" como matriz"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -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:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "tentativa de dividir por zero"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "tentativa de dividir por zero em \"%%\""
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "alvo de atribuição inválido (opcode %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, 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:6704
+#: awkgram.y:6698
 #, 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:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "identificador %s qualificado está mal formado"
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, 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:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, 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:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, 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:6801
+#: awkgram.y:6795
 msgid "@namespace is a gawk extension"
 msgstr "@namespace é uma extensão gawk"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -811,70 +811,70 @@ msgstr "[s]printf: especificador de formato não tem 
letra de controlo"
 msgid "too many arguments supplied for format string"
 msgstr "demasiados argumentos para cadeia de formato"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: sem argumentos"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: sem argumentos"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "printf: tentativa de escrever no lado de escrita fechado de um túnel de duas 
"
 "vias"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: recebido argumento não-numérico"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: chamada com argumento %g negativo"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: tamanho %g não é >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: tamanho %g não é >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: tamanho não-inteiro %g será truncado"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 "substr: tamanho %g muito grande para indexação da cadeia, a truncar para %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: índice inicial %g inválido, a usar 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: índice inicial não-inteiro %g será truncado"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: cadeia-fonte tem tamanho zero"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: índice inicial %g está para lá do fim da cadeia"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -882,236 +882,236 @@ msgstr ""
 "substr: tamanho %g no índice inicial %g excede o tamanho do 1º argumento "
 "(%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr "strftime: valor de formato em PROCINFO[\"strftime\"] tem tipo 
numérico"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: recebido 2º argumento não-numérico"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: 2º argumento menor que 0 ou muito grande para time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: 2º argumento fora do intervalo para time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: recebido 1º argumento não-cadeia"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: recebida cadeia de formato vazia"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: recebido argumento não-cadeia"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: pelo menos um dos valores está fora do intervalo predefinido"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "função \"system\" não permitida em modo sandbox"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: recebido argumento não-cadeia"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "print: tentativa de escrever no lado de escrita fechado de um túnel de duas "
 "vias"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "referência a campo não inicializado \"$%d\""
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: recebido argumento não-cadeia"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: recebido argumento não-cadeia"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: recebido 1º argumento não-numérico"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: recebido 2º argumento não-numérico"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: recebido argumento não-numérico"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: recebido argumento não-numérico"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: recebido argumento não-numérico"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: o 3º argumento não é uma matriz"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: 3º argumento \"%.*s\" tratado como 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: pode ser chamada indirectamente só com dois argumentos"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "chamada indirecta a %s requer pelo menos dois argumentos"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: recebido 1º argumento não-numérico"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: recebido 2º argumento não-numérico"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): não são permitidos valores negativos"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): valores fraccionais serão truncados"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 "lshift(%f, %f): um valor de deslocamento muito grande dará resultados "
 "estranhos"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: recebido 1º argumento não-numérico"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: recebido 2º argumento não-numérico"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): não são permitidos valores negativos"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): valores fraccionais serão truncados"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 "rshift(%f, %f): um valor de deslocamento muito grande dará resultados "
 "estranhos"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: chamada com menos de dois argumentos"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argumento %d é não-numérico"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and: valor negativo do argumento %d %g não é permitido"
 
-#: builtin.c:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: chamada com menos de dois argumentos"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argumento %d é não-numérico"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: chamada com menos de dois argumentos"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argumento %d é não-numérico"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: recebido argumento não-numérico"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): valor negativo não é permitido"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): valores fraccionais serão truncados"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: \"%s\" não é uma categoria regional válida"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: 3º argumento não é uma matriz"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: recebido 1º argumento não-numérico"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: recebido 2º argumento não-numérico"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: tentativa de dividir por zero"
 
-#: builtin.c:4040
+#: builtin.c:4041
 msgid "typeof: second argument is not an array"
 msgstr "typeof: 2º argumento não é uma matriz"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, 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:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: tipo de argumento \"%s\" inválido"
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: tipo de argumento \"%s\" desconhecido"
@@ -2501,96 +2501,96 @@ msgstr "sleep: não suportado nesta plataforma"
 msgid "input record too large"
 msgstr "registo de entrada muito grande"
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF definido como valor negativo"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr "decrementar NF não é portável para muitas versões awk"
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr "aceder a campos a partir de uma regra END pode não ser portável"
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: o 4º argumento é uma extensão gawk"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: o 4º argumento não é uma matriz"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: 2º argumento não é uma matriz"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr "split: impossível usar a mesma matriz para 2º e 4º argumentos"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: impossível usar uma sub-matriz do 2º argumento como 4º argumento"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: impossível usar uma sub-matriz do 4º argumento como 2º argumento"
 
-#: field.c:1036
+#: field.c:1027
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: cadeia nula para 3º argumento é uma extensão não-padrão"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: o 4º argumento não é uma matriz"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: o 2º argumento não é uma matriz"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: o 3º argumento não pode ser nulo"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr "patsplit:  impossível usar a mesma matriz para 2º e 4º argumentos"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: impossível usar uma sub-matriz do 2º argumento como 4º argumento"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: impossível usar uma sub-matriz do 4º argumento como 2º argumento"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "\"FIELDWIDTHS\" é uma extensão gawk"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr "\"*\" tem de ser o último designador em FIELDWIDTHS"
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "valor FIELDWIDTHS inválido, para o campo %d, perto de \"%s\""
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "cadeia nula para \"FS\" é uma extensão gawk"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "o awk antigo não suporta regexps como valores de \"FS\""
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "\"FPAT\" é uma extensão gawk"
 
@@ -3550,7 +3550,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# perfil gawk, criado %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3559,7 +3559,7 @@ msgstr ""
 "\n"
 "\t# Funções, listadas alfabeticamente\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipo de redireccionamento %d desconhecido"
@@ -3587,44 +3587,44 @@ 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:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "componente regexp \"%.*s\" provavelmente deveria ser \"[%.*s]\""
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "[ sem par"
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "classe de carácter inválida"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "a sintaxe da classe de carácter é [[:espaço:]], não [:espaço:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "escape \\ não terminado"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "conteúdo de \\{\\} inválido"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "expressão regular muito grande"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "( sem par"
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "sem sintaxe especificada"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ") sem par"
 
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index f439af9..e85eff3 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 487f86c..c4a497c 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\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."
@@ -40,8 +40,8 @@ msgstr "tentativa de usar parâmetro escalar \"%s\" como um 
vetor"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "tentativa de usar escalar \"%s\" como um vetor"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -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:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "tentativa de divisão por zero"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "tentativa de divisão por zero em \"%%\""
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, 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:6699
+#: awkgram.y:6693
 #, 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:6704
+#: awkgram.y:6698
 #, 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:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "identificador qualificado \"%s\" está malformado"
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, 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:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, 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:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, 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:6801
+#: awkgram.y:6795
 msgid "@namespace is a gawk extension"
 msgstr "@namespace é uma extensão do gawk"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -821,69 +821,69 @@ msgstr "[s]printf: especificador de formato não tem 
letra de controle"
 msgid "too many arguments supplied for format string"
 msgstr "excesso de argumentos fornecidos para a string de formato"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: nenhum argumento"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: nenhum argumento"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "printf: tentativa de escrever para lado de escrita fechado de pipe "
 "bidirecional"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: recebeu argumento não numérico"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: chamada com argumento negativo %g"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: comprimento %g não é >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: comprimento %g não é >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: comprimento não inteiro %g será truncado"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr "substr: comprimento %g grande demais para indexação, truncando para 
%g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: posição inicial %g é inválida, usando 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: posição inicial não inteira %g será truncada"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: string origem tem comprimento zero"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: posição inicial %g está além do fim da string"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -891,233 +891,233 @@ msgstr ""
 "substr: comprimento %g a partir da posição inicial %g excede tamanho do 1º 
"
 "argumento (%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr ""
 "strftime: valor de formato em PROCINFO[\"strftime\"] possui tipo numérico"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: recebeu segundo argumento não numérico"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: segundo argumento menor que 0 ou grande demais para time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: segundo argumento não é um vetor para time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: recebeu primeiro argumento não string"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: recebeu string de formato vazia"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: recebeu argumento não string"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: pelo menos um dos valores está fora da faixa padrão"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "função \"system\" não é permitido no modo sandbox"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: recebeu argumento não string"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr ""
 "print: tentativa de escrever para lado de escrita fechado de pipe "
 "bidirecional"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "referência a campo não inicializado \"$%d\""
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: recebeu argumento não string"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: recebeu argumento não string"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: recebeu primeiro argumento não numérico"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: recebeu segundo argumento não numérico"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: recebeu argumento não numérico"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: recebeu argumento não numérico"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: recebeu argumento não numérico"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: terceiro argumento não é um vetor"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: terceiro argumento \"%.*s\" tratado como 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: pode ser chamado indiretamente somente com dois argumentos"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "chamada indireta para %s requer pelo menos dois argumentos"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: recebeu primeiro argumento não numérico"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: recebeu segundo argumento não numérico"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): valores negativos não são permitidos"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f) valores fracionários serão truncados"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f): deslocamento excessivo dará resultados estranhos"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: recebeu primeiro argumento não numérico"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: recebeu segundo argumento não numérico"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): valores negativos não são permitidos"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): valores fracionários serão truncados"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): deslocamento excessivo dará resultados estranhos"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: chamada com menos de dois argumentos"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argumento %d é não numérico"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, 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:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: chamada com menos de dois argumentos"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argumento %d é não numérico"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: chamada com menos de dois argumentos"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argumento %d é não numérico"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: recebeu primeiro argumento não numérico"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): valor negativo não é permitida"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): valores fracionários serão truncados"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: \"%s\" não é uma categoria de \"locale\" válida"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: terceiro argumento não é um vetor"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: recebeu primeiro argumento não numérico"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: recebeu segundo argumento não numérico"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: tentativa de divisão por zero"
 
-#: builtin.c:4040
+#: builtin.c:4041
 msgid "typeof: second argument is not an array"
 msgstr "typeof: segundo argumento não é um vetor"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, 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:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: tipo de argumento inválido \"%s\""
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: tipo de argumento desconhecido \"%s\""
@@ -2524,97 +2524,97 @@ msgstr "sleep: sem suporte nesta plataforma"
 msgid "input record too large"
 msgstr "registro de entrada grande demais"
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF definido para valor negativo"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr "o decremento de NF não é portável para muitas versões awk"
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr "o acesso a campos de uma regra END não pode ser portável"
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: quarto argumento é uma extensão do gawk"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: quarto argumento não é um vetor"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: segundo argumento não é um vetor"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr "split: não é possível usar o mesmo vetor para segundo e quarto args"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: não é possível usar um subvetor do segundo arg para o quarto arg"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: não é possível usar um subvetor do quarto arg para o segundo arg"
 
-#: field.c:1036
+#: field.c:1027
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: string nula para segundo argumento é uma extensão não 
padrão"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: quarto argumento não é um vetor"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: segundo argumento não é um vetor"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: terceiro argumento não é um vetor"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit: não é possível usar o mesmo vetor para segundo e quarto 
argumentos"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: não é possível usar um subvetor do segundo arg para o quarto arg"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: não é possível usar um subvetor do quarto arg para o segundo arg"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "\"FIELDWIDTHS\" é uma extensão do gawk"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr "\"*\" deve ser o último designador em FIELDWIDTHS"
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "valor FIELDWIDTHS inválido, para campo %d, próximo a \"%s\""
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "string nula para \"FS\" é uma extensão do gawk"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "o velho awk não oferece suporte a expr. reg. como valor de \"FS\""
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "\"FPAT\" é uma extensão do gawk"
 
@@ -3579,7 +3579,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# perfil gawk, criado %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3588,7 +3588,7 @@ msgstr ""
 "\n"
 "\t# Funções, listadas alfabeticamente\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipo de redirecionamento desconhecido %d"
@@ -3616,44 +3616,44 @@ 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:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "componente de expr. reg. \"%.*s\" deve provavelmente ser \"[%.*s]\""
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "[ sem correspondente"
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "classe de caracteres inválida"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "a sintaxe de classe de caracteres é [[:space:]], e não [:space:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "escape \\ não terminado"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "conteúdo inválido de \\{\\}"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "expressão regular grande demais"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "( sem correspondente"
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "nenhuma sintaxe especificada"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ") sem correspondente"
 
diff --git a/po/sv.gmo b/po/sv.gmo
index a79abfb..4acce3d 100644
Binary files a/po/sv.gmo and b/po/sv.gmo differ
diff --git a/po/sv.po b/po/sv.po
index 3a71f0d..b363605 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\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"
@@ -40,8 +40,8 @@ msgstr "försök att använda skalärparametern ”%s” som 
en vektor"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "försök att använda skalären ”%s” som en vektor"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -547,45 +547,45 @@ msgstr ""
 "funktionen ”%s” anropad med blanktecken mellan namnet och ”(”,\n"
 "eller använd som variabel eller vektor"
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "försökte dividera med noll"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "försökte dividera med noll i ”%%”"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "ogiltigt mål för tilldelning (op-kod %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, 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:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr "identifierare %s: namnrymdsseparatorn är två kolon, inte ett"
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "den kvalificerade identifieraren ”%s” är felaktigt formad"
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, 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:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, 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:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, 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:6801
+#: awkgram.y:6795
 msgid "@namespace is a gawk extension"
 msgstr "@namespace är en gawk-utökning"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -813,67 +813,67 @@ msgstr "[s]printf: formatspecificeraren har ingen 
kommandobokstav"
 msgid "too many arguments supplied for format string"
 msgstr "för många argument för formatsträngen"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: inga argument"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: inga argument"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr "printf: försök att skriva till stängd skrivände av ett 
tvåvägsrör"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: fick ickenumeriskt argument"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: anropad med negativt argument %g"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: längden %g är inte >= 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: längden %g är inte >= 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: längden %g som inte är ett heltal kommer huggas av"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr "substr: längden %g är för stor för strängindexering, huggas av 
till %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: startindex %g är ogiltigt, använder 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr: startindex %g som inte är ett heltal kommer huggas av"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: källsträngen är tom"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: startindex %g är bortom strängens slut"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -881,230 +881,230 @@ msgstr ""
 "substr: längden %g vid startindex %g överskrider det första argumentets "
 "längd (%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr "strftime: formatvärde i PROCINFO[\"strftime\"] har numerisk typ"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: fick ett ickenumeriskt andra argument"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: andra argumentet mindre än 0 eller för stort för time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: andra argumentet utanför intervallet för för time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: fick ett första argument som inte är en sträng"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: fick en tom formatsträng"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: fick ett argument som inte är en sträng"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: åtminstone ett av värdena är utanför standardintervallet"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "funktionen ”system” är inte tillåten i sandlådeläge"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: fick ett argument som inte är en sträng"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr "print: försök att skriva till stängd skrivände av ett 
tvåvägsrör"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "referens till icke initierat fält ”$%d”"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: fick ett argument som inte är en sträng"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: fick ett argument som inte är en sträng"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: fick ett ickenumeriskt första argument"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: fick ett ickenumeriskt andra argument"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: fick ett ickenumeriskt argument"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: fick ett ickenumeriskt argument"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: fick ett ickenumeriskt argument"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: tredje argumentet är inte en vektor"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: tredje argumentet ”%.*s” behandlat som 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: kan anropas indirekt endast med två argument"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "indirekt anrop till %s kräver åtminstone två argument"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: fick ett ickenumeriskt första argument"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: fick ett ickenumeriskt andra argument"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): negativa värden är inte tillåtna"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): flyttalsvärden kommer huggas av"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f): för stort skiftvärde kommer ge konstiga resultat"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: fick ett ickenumeriskt första argument"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: fick ett ickenumeriskt andra argument"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): negativa värden är inte tillåtna"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): flyttalsvärden kommer huggas av"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f): för stor skiftvärde kommer ge konstiga resultat"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and: anropad med mindre än två argument"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: argument %d är inte numeriskt"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, 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:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or: anropad med färre än två argument"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or: argument %d är inte numeriskt"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor: anropad med färre än två argument"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: argument %d är inte numeriskt"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl: fick ett ickenumeriskt argument"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): negativt värde är inte tillåtet"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f): flyttalsvärde kommer huggas av"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext: ”%s” är inte en giltig lokalkategori"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv: tredje argumentet är inte en vektor"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv: fick ett ickenumeriskt första argument"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv: fick ett ickenumeriskt andra argument"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: försökte dividera med noll"
 
-#: builtin.c:4040
+#: builtin.c:4041
 msgid "typeof: second argument is not an array"
 msgstr "typeof: andra argumentet är inte en vektor"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, 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:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: felaktig argumenttyp ”%s”"
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: okänd argumenttyp ”%s”"
@@ -2474,102 +2474,102 @@ msgstr "sleep: stödjs inte på denna plattform"
 msgid "input record too large"
 msgstr "indataposten är för stor"
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF satt till ett negativt värde"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr "dekrementering av NF är inte portabelt till många awk-versioner"
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr "att komma åt fält från en END-regel är inte med säkerhet 
portabelt"
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split: fjärde argumentet är en gawk-utökning"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split: fjärde argumentet är inte en vektor"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: andra argumentet är inte en vektor"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 "split: det går inte att använda samma vektor som andra och fjärde argument"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split: det går inte att använda en delvektor av andra argumentet som 
fjärde "
 "argument"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split: det går inte att använda en delvektor av fjärde argumentet som 
andra "
 "argument"
 
-#: field.c:1036
+#: field.c:1027
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split: tom sträng som tredje argument är en icke-standard-utökning"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: fjärde argumentet är inte en vektor"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: andra argumentet är inte en vektor"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: tredje argumentet får inte vara tomt"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit: det går inte att använda samma vektor som andra och fjärde 
argument"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit: det går inte att använda en delvektor av andra argumentet som "
 "fjärde argument"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit: det går inte att använda en delvektor av fjärde argumentet som "
 "andra argument"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "”FIELDWIDTHS” är en gawk-utökning"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr "”*” måste vara den sista beteckningen i FIELDWIDTHS"
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "ogiltigt FIELDWITHS-värde, för fält %d, i närheten av ”%s”"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "tom sträng som ”FS” är en gawk-utökning"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "gamla awk stöder inte reguljära uttryck som värden på ”FS”"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "”FPAT” är en gawk-utökning"
 
@@ -3523,7 +3523,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# gawkprofil, skapad %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3532,7 +3532,7 @@ msgstr ""
 "\n"
 "\t# Funktioner, listade alfabetiskt\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: okänd omdirigeringstyp %d"
@@ -3561,44 +3561,44 @@ msgstr ""
 "kontrollsekvensen ”\\%c” i reguljäruttryck är inte en känd operator i "
 "reguljäruttryck"
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "komponenten ”%.*s” i reguljäruttryck skall förmodligen vara 
”[%.*s]”"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "obalanserad ["
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "ogiltig teckenklass"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "syntaxen för teckenklass är [[:space:]], inte [:space:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "oavslutad \\-följd"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "ogiltigt innehåll i \\{\\}"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "reguljärt uttryck för stort"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "obalanserad ("
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "ingen syntax angiven"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr "obalanserad )"
 
diff --git a/po/vi.gmo b/po/vi.gmo
index 26f16d0..6be9d2f 100644
Binary files a/po/vi.gmo and b/po/vi.gmo differ
diff --git a/po/vi.po b/po/vi.po
index 4563874..07cc3d2 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\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"
@@ -40,8 +40,8 @@ msgstr "cố dùng tham số vô hướng “%s” như là 
mảng"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "cố dùng “%s” vô hướng như là mảng"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -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:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "gặp phép chia cho số không"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "gặp phép chia cho số không trong “%%”"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 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:5807
+#: awkgram.y:5801
 #, 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:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr ""
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr ""
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr ""
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr ""
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr ""
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr ""
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 #, fuzzy
 msgid "@namespace is a gawk extension"
 msgstr "@include là phần mở rộng của gawk"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr ""
@@ -824,70 +824,70 @@ msgstr "[s]printf: chỉ định định dạng không 
có ký hiệu điều kh
 msgid "too many arguments supplied for format string"
 msgstr "quá nhiều đối số được cung cấp cho chuỗi định 
dạng"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf: không có đối số"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf: không có đối số"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr "printf: cố ghi vào một đường ống hai chiều mà chiều 
ghi đã đóng"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt: (căn bậc hai) đã nhận đối số không phải thuộc 
số"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt: (căn bậc hai) đã gọi với đối số âm “%g”"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr: (chuỗi con) độ dài %g không ≥1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr: (chuỗi con) độ dài %g không ≥0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr: (chuỗi con) sẽ cắt xén độ dài không phải số 
nguyên “%g”"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr ""
 "substr: (chuỗi con) độ dài %g là quá lớn cho chỉ số chuỗi, 
nên xén ngắn "
 "thành %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr: (chuỗi con) chỉ số đầu “%g” không hợp lệ 
nên dùng 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr ""
 "substr: (chuỗi con) chỉ số đầu không phải số nguyên “%g” 
sẽ bị cắt ngắn"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr: (chuỗi con) chuỗi nguồn có độ dài số không"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr: (chuỗi con) chỉ số đầu %g nằm sau kết thúc của 
chuỗi"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
@@ -895,246 +895,246 @@ msgstr ""
 "substr: (chuỗi con) độ dài %g chỉ số đầu %g vượt quá độ 
dài của đối số đầu "
 "(%lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr ""
 "strftime: giá trị định dạng trong PROCINFO[\"strftime\"] phải 
thuộc kiểu số"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime: đã nhận đối số thứ hai khác thuộc số"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime: tham số thứ hai nhỏ hơn 0 hay quá lớn dành cho 
time_t"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime: tham số thứ hai nằm ngoài phạm vi cho phép của 
kiểu time_t"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime: đã nhận đối số thứ nhất khác chuỗi"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime: đã nhận chuỗi định dạng rỗng"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime: đã nhận đối số khác chuỗi"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime: ít nhất một của những giá trị nằm ở ngoại 
phạm vi mặc định"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "hàm “system” không cho phép ở chế độ khuôn đúc"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system: (hệ thống) đã nhận đối số khác chuỗi"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr "print: cố ghi vào một đường ống hai chiều mà chiều ghi 
đã đóng"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "gặp tham chiếu đến trường chưa được khởi tạo 
“$%d”"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower: (thành chư thường) đã nhận đối số khác chuỗi"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper: (thành chữ HOA) đã nhận đối số khác chuỗi"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2: đã nhận đối số thứ nhất khác thuộc số"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2: đã nhận đối số thứ hai khác thuộc số"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin: đã nhận đối số không thuộc kiểu số học"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos: đã nhận đối số không thuộc kiểu số học"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand: đã nhận đối số không thuộc kiểu số học"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match: (khớp) đối số thứ ba không phải là mảng"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub: đối số thứ ba “%.*s” được xử lý như 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s: được gọi một cách gián tiếp với ít hơn hai đối 
số"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "cú gọi gián tiếp đến %s cần ít nhất hai đối số"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift: đã nhận đối số đầu không phải thuộc số"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift: (dịch bên trái) đã nhận đối số thứ hai khác 
thuộc số"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f): giá trị âm l không được phép"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f): giá trị thuộc phân số sẽ bị cắt ngắn"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 "lshift(%f, %f): giá trị dịch quá lớn sẽ gây ra kết quả không 
như mong muốn"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift: đã nhận đối số thứ nhất khác thuộc số"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift: (dịch phải) đã nhận đối số thứ hai khác 
thuộc số"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f): giá trị âm là không được phép"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f): giá trị thuộc kiểu phân số sẽ bị xén 
ngắn"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr ""
 "rshift(%f, %f): giá trị dịch quá lớn sẽ gây ra kết quả không 
như mong muốn"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 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:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and: đối số %d không phải thuộc số"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, 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:3504 mpfr.c:1014
+#: builtin.c:3505 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:3509
+#: builtin.c:3510
 #, 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:3513
+#: builtin.c:3514
 #, 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:3534 mpfr.c:1045
+#: builtin.c:3535 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:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor: đối số %d không thuộc kiểu số"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, 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:3566 mpfr.c:804
+#: builtin.c:3567 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:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f): giá trị âm là không được phép"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, 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:3758
+#: builtin.c:3759
 #, 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:3982 mpfr.c:1203
+#: builtin.c:3983 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:3990 mpfr.c:1211
+#: builtin.c:3991 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:3992 mpfr.c:1213
+#: builtin.c:3993 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:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv: gặp phép chia cho số không"
 
-#: builtin.c:4040
+#: builtin.c:4041
 #, 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:4076
+#: builtin.c:4113
 #, 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:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof: tùy chọn không hợp lệ “%s”"
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof: không biết kiểu tham số “%s”"
@@ -2496,107 +2496,107 @@ msgstr "sleep: không được hỗ trợ trên nền 
tảng này"
 msgid "input record too large"
 msgstr "bản ghi đầu vào quá lớn"
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "“NF” được đặt thành giá trị âm"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr ""
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr ""
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split (chia tách): đối số thứ tư là phần mở rộng gawk"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split (chia tách): đối số thứ tư không phải là mảng"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split: (chia tách) đối số thứ hai không phải là mảng"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr ""
 "split (chia tách): không thể sử dụng cùng một mảng có cả 
đối số thứ hai và "
 "thứ tư"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "split (phân tách): không thể sử dụng mảng con của tham số 
thứ hai cho tham "
 "số thứ tư"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "split (phân tách): không thể sử dụng mảng con của tham số 
thứ tư cho tham số "
 "thứ hai"
 
-#: field.c:1036
+#: field.c:1027
 #, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
 msgstr ""
 "split: (chia tách) chuỗi vô giá trị cho đối số thứ ba là 
phần mở rộng gawk"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit: đối số thứ tư không phải là mảng"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit: đối số thứ hai không phải là mảng"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit: đối số thứ ba không phải không rỗng"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr ""
 "patsplit (chương trình chia tách): không thể sử dụng cùng một 
mảng cho cả "
 "hai đối số thứ hai và thứ tư"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr ""
 "patsplit (chương trình phân tách): không thể sử dụng mảng con 
của tham số "
 "thứ hai cho tham số thứ tư"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr ""
 "patsplit (chương trình phân tách): không thể sử dụng mảng con 
của tham số "
 "thứ tư cho tham số thứ hai"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "“FIELDWIDTHS” (độ rộng trường) là phần mở rộng gawk"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr "“*” phải là bộ định danh cuối cùng trong FIELDWIDTHS"
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr ""
 "giá trị FIELDWIDTHS (độ rộng trường) không hợp lệ, cho 
trường %d, gần “%s”"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "chuỗi vô giá trị cho “FS” là phần mở rộng gawk"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "awk cũ không hỗ trợ biểu thức chính quy làm giá trị 
của “FS”"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "“FPAT” là phần mở rộng của gawk"
 
@@ -3577,7 +3577,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# hồ sơ gawk, được tạo %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3586,7 +3586,7 @@ msgstr ""
 "\n"
 "\t# Danh sách các hàm theo thứ tự abc\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: không hiểu kiểu chuyển hướng %d"
@@ -3611,46 +3611,46 @@ msgstr "thoát chuỗi “\\%c” được xử lý 
như là “%c” chuẩn"
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr ""
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr ""
 "thành phần của biểu thức chính qui (regexp) “%.*s” gần như 
chắc chắn nên là "
 "“[%.*s]”"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "thiếu dấu ngoặc vuông mở ["
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "sai lớp ký tự"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "cú pháp lớp ký tự là [[:dấu_cách:]], không phải 
[:dấu_cách:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "chưa kết thúc dãy thoát \\"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "nội dung của “\\{\\}” không hợp lệ"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "biểu thức chính quy quá lớn"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "thiếu dấu ("
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "chưa chỉ rõ cú pháp"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr "thiếu dấu )"
 
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 0d900d7..51bf321 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 d0e8e99..91c59e3 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-07-23 06:12+0300\n"
+"POT-Creation-Date: 2019-12-22 21:25+0200\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"
@@ -41,8 +41,8 @@ msgstr "试图把标量参数“%s”当数组使用"
 msgid "attempt to use scalar `%s' as an array"
 msgstr "试图把标量“%s”当数组使用"
 
-#: array.c:400 array.c:567 builtin.c:88 builtin.c:1686 builtin.c:1732
-#: builtin.c:1745 builtin.c:2240 builtin.c:2267 eval.c:1151 eval.c:1155
+#: array.c:400 array.c:567 builtin.c:88 builtin.c:1687 builtin.c:1733
+#: builtin.c:1746 builtin.c:2241 builtin.c:2268 eval.c:1151 eval.c:1155
 #: eval.c:1530
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
@@ -529,63 +529,63 @@ msgstr ""
 "函数“%s”被调用时名字与“(”间有空格,\n"
 "或被用作变量或数组"
 
-#: awkgram.y:5456
+#: awkgram.y:5450
 msgid "division by zero attempted"
 msgstr "试图除0"
 
-#: awkgram.y:5465
+#: awkgram.y:5459
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "在“%%”中试图除 0"
 
-#: awkgram.y:5804
+#: awkgram.y:5798
 msgid ""
 "cannot assign a value to the result of a field post-increment expression"
 msgstr "无法将值赋给字段后增表达式"
 
-#: awkgram.y:5807
+#: awkgram.y:5801
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "赋值的目标无效(操作码 %s)"
 
-#: awkgram.y:6699
+#: awkgram.y:6693
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
 msgstr "标识符 %s:传统 / POSIX 模式下不å…
è®¸ä½¿ç”¨åˆè§„名称(qualified name)"
 
-#: awkgram.y:6704
+#: awkgram.y:6698
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
 msgstr "标识符 %s:命名空间的分隔符应为双冒号(::)"
 
-#: awkgram.y:6710
+#: awkgram.y:6704
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
 msgstr "合规标识符“%s”格式错误"
 
-#: awkgram.y:6717
+#: awkgram.y:6711
 #, c-format
 msgid ""
 "identifier `%s': namespace separator can only appear once in a qualified name"
 msgstr "æ 
‡è¯†ç¬¦â€œ%s”:合规名称中的命名空间分隔符最多只能出现一次"
 
-#: awkgram.y:6766 awkgram.y:6817
+#: awkgram.y:6760 awkgram.y:6811
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
 msgstr "不允许将反向标识符“%s”作为命名空间"
 
-#: awkgram.y:6773 awkgram.y:6783
+#: awkgram.y:6767 awkgram.y:6777
 #, c-format
 msgid ""
 "using reserved identifier `%s' as second component of a qualified name is "
 "not allowed"
 msgstr "不允许将反向æ 
‡è¯†ç¬¦â€œ%s”作为合规名称的第二个组成部分"
 
-#: awkgram.y:6801
+#: awkgram.y:6795
 msgid "@namespace is a gawk extension"
 msgstr "@namespace 是 gawk 保留字"
 
-#: awkgram.y:6808
+#: awkgram.y:6802
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
 msgstr "命名空间“%s”必须符合标识符的命名规则"
@@ -780,307 +780,307 @@ msgstr "[s]printf:指定格式不含控制字符"
 msgid "too many arguments supplied for format string"
 msgstr "相对格式来说参数个数过多"
 
-#: builtin.c:1705
+#: builtin.c:1706
 msgid "sprintf: no arguments"
 msgstr "sprintf:没有参数"
 
-#: builtin.c:1728 builtin.c:1739
+#: builtin.c:1729 builtin.c:1740
 msgid "printf: no arguments"
 msgstr "printf:没有参数"
 
-#: builtin.c:1754
+#: builtin.c:1755
 msgid "printf: attempt to write to closed write end of two-way pipe"
 msgstr "printf:试图向写入端已被关闭的双向管道中写入数据"
 
-#: builtin.c:1795
+#: builtin.c:1796
 msgid "sqrt: received non-numeric argument"
 msgstr "sqrt:收到非数字参数"
 
-#: builtin.c:1799
+#: builtin.c:1800
 #, c-format
 msgid "sqrt: called with negative argument %g"
 msgstr "sqrt:收到负数参数 %g"
 
-#: builtin.c:1830
+#: builtin.c:1831
 #, c-format
 msgid "substr: length %g is not >= 1"
 msgstr "substr:长度 %g 小于 1"
 
-#: builtin.c:1832
+#: builtin.c:1833
 #, c-format
 msgid "substr: length %g is not >= 0"
 msgstr "substr:长度 %g 小于 0"
 
-#: builtin.c:1846
+#: builtin.c:1847
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
 msgstr "substr:非整数的长度 %g 会被截断"
 
-#: builtin.c:1851
+#: builtin.c:1852
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
 msgstr "substr:长度 %g 作为字符串索引过大,截断至 %g"
 
-#: builtin.c:1863
+#: builtin.c:1864
 #, c-format
 msgid "substr: start index %g is invalid, using 1"
 msgstr "substr:开始坐标 %g 无效,使用 1"
 
-#: builtin.c:1868
+#: builtin.c:1869
 #, c-format
 msgid "substr: non-integer start index %g will be truncated"
 msgstr "substr:非整数的开始索引 %g 会被截断"
 
-#: builtin.c:1891
+#: builtin.c:1892
 msgid "substr: source string is zero length"
 msgstr "substr:源字符串长度为0"
 
-#: builtin.c:1905
+#: builtin.c:1906
 #, c-format
 msgid "substr: start index %g is past end of string"
 msgstr "substr:开始坐标 %g 超出字符串尾部"
 
-#: builtin.c:1913
+#: builtin.c:1914
 #, c-format
 msgid ""
 "substr: length %g at start index %g exceeds length of first argument (%lu)"
 msgstr "substr:在开始坐标 %2$g 下长度 %1$g 超
出第一个参数的长度 (%3$lu)"
 
-#: builtin.c:1986
+#: builtin.c:1987
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
 msgstr "strftime:PROCINFO[\"strftime\"] 中的格式值含有数值类型"
 
-#: builtin.c:2006
+#: builtin.c:2007
 msgid "strftime: received non-numeric second argument"
 msgstr "strftime:第二个参数不是数字"
 
-#: builtin.c:2016
+#: builtin.c:2017
 msgid "strftime: second argument less than 0 or too big for time_t"
 msgstr "strftime:第二个参数小于0,或对于 time_t 来说太大"
 
-#: builtin.c:2023
+#: builtin.c:2024
 msgid "strftime: second argument out of range for time_t"
 msgstr "strftime:第二个参数对于 time_t 来说太大"
 
-#: builtin.c:2032
+#: builtin.c:2033
 msgid "strftime: received non-string first argument"
 msgstr "strftime:第一个参数不是字符串"
 
-#: builtin.c:2039
+#: builtin.c:2040
 msgid "strftime: received empty format string"
 msgstr "strftime:收到空格式字符串"
 
-#: builtin.c:2122
+#: builtin.c:2123
 msgid "mktime: received non-string argument"
 msgstr "mktime:收到非字符串参数"
 
-#: builtin.c:2139
+#: builtin.c:2140
 msgid "mktime: at least one of the values is out of the default range"
 msgstr "mktime:至少有一个值超出默认范围"
 
-#: builtin.c:2175
+#: builtin.c:2176
 msgid "'system' function not allowed in sandbox mode"
 msgstr "沙箱模式中不允许使用\"system\"函数"
 
-#: builtin.c:2180
+#: builtin.c:2181
 msgid "system: received non-string argument"
 msgstr "system:收到非字符串参数"
 
-#: builtin.c:2249 builtin.c:2322
+#: builtin.c:2250 builtin.c:2323
 msgid "print: attempt to write to closed write end of two-way pipe"
 msgstr "print:试图向写入端已被关闭的双向管道中写入数据"
 
-#: builtin.c:2345
+#: builtin.c:2346
 #, c-format
 msgid "reference to uninitialized field `$%d'"
 msgstr "引用未初始化的字段“$%d”"
 
-#: builtin.c:2430
+#: builtin.c:2431
 msgid "tolower: received non-string argument"
 msgstr "tolower:收到非字符串参数"
 
-#: builtin.c:2461
+#: builtin.c:2462
 msgid "toupper: received non-string argument"
 msgstr "toupper:收到非字符串参数"
 
-#: builtin.c:2494 mpfr.c:674
+#: builtin.c:2495 mpfr.c:674
 msgid "atan2: received non-numeric first argument"
 msgstr "atan2:第一个参数不是数字"
 
-#: builtin.c:2496 mpfr.c:676
+#: builtin.c:2497 mpfr.c:676
 msgid "atan2: received non-numeric second argument"
 msgstr "atan2:第二个参数不是数字"
 
-#: builtin.c:2515
+#: builtin.c:2516
 msgid "sin: received non-numeric argument"
 msgstr "sin:收到非数字参数"
 
-#: builtin.c:2531
+#: builtin.c:2532
 msgid "cos: received non-numeric argument"
 msgstr "cos:收到非数字参数"
 
-#: builtin.c:2645 mpfr.c:1169
+#: builtin.c:2646 mpfr.c:1169
 msgid "srand: received non-numeric argument"
 msgstr "srand:收到非数字参数"
 
-#: builtin.c:2676
+#: builtin.c:2677
 msgid "match: third argument is not an array"
 msgstr "match:第三个参数不是数组"
 
-#: builtin.c:2919
+#: builtin.c:2920
 #, c-format
 msgid "gensub: third argument `%.*s' treated as 1"
 msgstr "gensub:第三个参数“%.*s”被当作 1"
 
-#: builtin.c:3241
+#: builtin.c:3242
 #, c-format
 msgid "%s: can be called indirectly only with two arguments"
 msgstr "%s:间接调用时只能传递两个参数"
 
-#: builtin.c:3341
+#: builtin.c:3342
 #, c-format
 msgid "indirect call to %s requires at least two arguments"
 msgstr "间接调用 %s 需要传递至少两个参数"
 
-#: builtin.c:3396
+#: builtin.c:3397
 msgid "lshift: received non-numeric first argument"
 msgstr "lshift:第一个参数不是数字"
 
-#: builtin.c:3398
+#: builtin.c:3399
 msgid "lshift: received non-numeric second argument"
 msgstr "lshift:第二个参数不是数字"
 
-#: builtin.c:3404
+#: builtin.c:3405
 #, c-format
 msgid "lshift(%f, %f): negative values are not allowed"
 msgstr "lshift(%f, %f):不允许传入负值"
 
-#: builtin.c:3408
+#: builtin.c:3409
 #, c-format
 msgid "lshift(%f, %f): fractional values will be truncated"
 msgstr "lshift(%f, %f):小数部分会被截断"
 
-#: builtin.c:3410
+#: builtin.c:3411
 #, c-format
 msgid "lshift(%f, %f): too large shift value will give strange results"
 msgstr "lshift(%f, %f):过大的移位会得到奇怪的结果"
 
-#: builtin.c:3435
+#: builtin.c:3436
 msgid "rshift: received non-numeric first argument"
 msgstr "rshift:第一个参数不是数字"
 
-#: builtin.c:3437
+#: builtin.c:3438
 msgid "rshift: received non-numeric second argument"
 msgstr "rshift:第二个参数不是数字"
 
-#: builtin.c:3443
+#: builtin.c:3444
 #, c-format
 msgid "rshift(%f, %f): negative values are not allowed"
 msgstr "rshift(%f, %f):不允许传入负值"
 
-#: builtin.c:3447
+#: builtin.c:3448
 #, c-format
 msgid "rshift(%f, %f): fractional values will be truncated"
 msgstr "rshift(%f, %f):小数部分会被截断"
 
-#: builtin.c:3449
+#: builtin.c:3450
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
 msgstr "rshift(%f, %f):过大的移位会得到奇怪的结果"
 
-#: builtin.c:3473 mpfr.c:982
+#: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
 msgstr "and:调用时传递的参数不足2个"
 
-#: builtin.c:3478
+#: builtin.c:3479
 #, c-format
 msgid "and: argument %d is non-numeric"
 msgstr "and:参数 %d 不是数值"
 
-#: builtin.c:3482
+#: builtin.c:3483
 #, c-format
 msgid "and: argument %d negative value %g is not allowed"
 msgstr "and:参数 %d 不允许为负值 %g"
 
-#: builtin.c:3504 mpfr.c:1014
+#: builtin.c:3505 mpfr.c:1014
 msgid "or: called with less than two arguments"
 msgstr "or:调用时传递的参数不足2个"
 
-#: builtin.c:3509
+#: builtin.c:3510
 #, c-format
 msgid "or: argument %d is non-numeric"
 msgstr "or:参数 %d 不是数值"
 
-#: builtin.c:3513
+#: builtin.c:3514
 #, c-format
 msgid "or: argument %d negative value %g is not allowed"
 msgstr "or:数 %d 不允许为负值 %g"
 
-#: builtin.c:3534 mpfr.c:1045
+#: builtin.c:3535 mpfr.c:1045
 msgid "xor: called with less than two arguments"
 msgstr "xor:调用时传递的参数不足2个"
 
-#: builtin.c:3540
+#: builtin.c:3541
 #, c-format
 msgid "xor: argument %d is non-numeric"
 msgstr "xor:参数 %d 不是数值"
 
-#: builtin.c:3544
+#: builtin.c:3545
 #, c-format
 msgid "xor: argument %d negative value %g is not allowed"
 msgstr "xor:数 %d 不允许为负值 %g"
 
-#: builtin.c:3566 mpfr.c:804
+#: builtin.c:3567 mpfr.c:804
 msgid "compl: received non-numeric argument"
 msgstr "compl:收到非数字参数"
 
-#: builtin.c:3571
+#: builtin.c:3572
 #, c-format
 msgid "compl(%f): negative value is not allowed"
 msgstr "compl(%f):不允许使用负值"
 
-#: builtin.c:3574
+#: builtin.c:3575
 #, c-format
 msgid "compl(%f): fractional value will be truncated"
 msgstr "compl(%f):小数部分会被截断"
 
-#: builtin.c:3758
+#: builtin.c:3759
 #, c-format
 msgid "dcgettext: `%s' is not a valid locale category"
 msgstr "dcgettext:“%s”不是一个有效的区域目录"
 
-#: builtin.c:3982 mpfr.c:1203
+#: builtin.c:3983 mpfr.c:1203
 msgid "intdiv: third argument is not an array"
 msgstr "intdiv:第三个参数不是数组"
 
-#: builtin.c:3990 mpfr.c:1211
+#: builtin.c:3991 mpfr.c:1211
 msgid "intdiv: received non-numeric first argument"
 msgstr "intdiv:第一个参数不是数字"
 
-#: builtin.c:3992 mpfr.c:1213
+#: builtin.c:3993 mpfr.c:1213
 msgid "intdiv: received non-numeric second argument"
 msgstr "intdiv:第二个参数不是数字"
 
-#: builtin.c:4001 mpfr.c:1252
+#: builtin.c:4002 mpfr.c:1252
 msgid "intdiv: division by zero attempted"
 msgstr "intdiv:试图除0"
 
-#: builtin.c:4040
+#: builtin.c:4041
 msgid "typeof: second argument is not an array"
 msgstr "typeof:第二个参数不是数组"
 
-#: builtin.c:4076
+#: builtin.c:4113
 #, c-format
 msgid ""
 "typeof detected invalid flags combination `%s'; please file a bug report."
 msgstr "typeof 函数发现一个无
效的选项组合“%s”;请向开发者汇报此错误。"
 
-#: builtin.c:4095
+#: builtin.c:4132
 #, c-format
 msgid "typeof: invalid argument type `%s'"
 msgstr "typeof:参数类型“%s”无效"
 
-#: builtin.c:4099
+#: builtin.c:4136
 #, c-format
 msgid "typeof: unknown argument type `%s'"
 msgstr "typeof:参数类型“%s”未知"
@@ -2410,92 +2410,92 @@ msgstr "sleep:不被此平台支持"
 msgid "input record too large"
 msgstr "输入的记录太长"
 
-#: field.c:398
+#: field.c:400
 msgid "NF set to negative value"
 msgstr "NF 被设置为负值"
 
-#: field.c:403
+#: field.c:405
 msgid "decrementing NF is not portable to many awk versions"
 msgstr "降序 NF 无法被大多数 awk 所兼容"
 
-#: field.c:847
+#: field.c:849
 msgid "accessing fields from an END rule may not be portable"
 msgstr "其他 awk 可能不支持使用 END "
 
-#: field.c:976 field.c:983
+#: field.c:967 field.c:974
 msgid "split: fourth argument is a gawk extension"
 msgstr "split:第四个参数是 gawk 扩展"
 
-#: field.c:980
+#: field.c:971
 msgid "split: fourth argument is not an array"
 msgstr "split:第四个参数不是数组"
 
-#: field.c:990
+#: field.c:981
 msgid "split: second argument is not an array"
 msgstr "split:第二个参数不是数组"
 
-#: field.c:994
+#: field.c:985
 msgid "split: cannot use the same array for second and fourth args"
 msgstr "split:无法将同一个数组用于第二和第四个参数"
 
-#: field.c:999
+#: field.c:990
 msgid "split: cannot use a subarray of second arg for fourth arg"
 msgstr "split:无法将第二个参数的子数组用于第四个参数"
 
-#: field.c:1002
+#: field.c:993
 msgid "split: cannot use a subarray of fourth arg for second arg"
 msgstr "split:无法将第四个参数的子数组用于第二个参数"
 
-#: field.c:1036
+#: field.c:1027
 msgid "split: null string for third arg is a non-standard extension"
 msgstr "split:第三个参数为空字符串:其他 awk 
可能不支持这一特性"
 
-#: field.c:1073
+#: field.c:1064
 msgid "patsplit: fourth argument is not an array"
 msgstr "patsplit:第四个参数不是数组"
 
-#: field.c:1078
+#: field.c:1069
 msgid "patsplit: second argument is not an array"
 msgstr "patsplit:第二个参数不是数组"
 
-#: field.c:1087
+#: field.c:1078
 msgid "patsplit: third argument must be non-null"
 msgstr "patsplit:第三个参数必须不为空"
 
-#: field.c:1091
+#: field.c:1082
 msgid "patsplit: cannot use the same array for second and fourth args"
 msgstr "patsplit:无法将同一个数组用于第二和第四个参数"
 
-#: field.c:1096
+#: field.c:1087
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
 msgstr "patsplit:无法将第二个参数的子数组用于第四个参数"
 
-#: field.c:1099
+#: field.c:1090
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
 msgstr "patsplit:无法将第四个参数的子数组用于第二个参数"
 
-#: field.c:1149
+#: field.c:1140
 msgid "`FIELDWIDTHS' is a gawk extension"
 msgstr "“FIELDWIDTHS”是 gawk 扩展"
 
-#: field.c:1218
+#: field.c:1209
 msgid "`*' must be the last designator in FIELDWIDTHS"
 msgstr "FIELDWIDTHS中的“*”必须位于所有通配符的末尾"
 
-#: field.c:1239
+#: field.c:1230
 #, c-format
 msgid "invalid FIELDWIDTHS value, for field %d, near `%s'"
 msgstr "第 %d 字段中的 FIELDWIDTHS 值无效(位于“%s”附近)"
 
-#: field.c:1312
+#: field.c:1303
 msgid "null string for `FS' is a gawk extension"
 msgstr "给“FS”传递了空字符串,应为 gawk 扩展"
 
-#: field.c:1316
+#: field.c:1307
 msgid "old awk does not support regexps as value of `FS'"
 msgstr "老 awk 不支持把“FS”设置为正则表达式"
 
-#: field.c:1443
+#: field.c:1434
 msgid "`FPAT' is a gawk extension"
 msgstr "“FPAT”是 gawk 扩展"
 
@@ -3423,7 +3423,7 @@ msgstr ""
 msgid "\t# gawk profile, created %s\n"
 msgstr "\t# gawk 配置, 创建 %s\n"
 
-#: profile.c:1962
+#: profile.c:1965
 #, c-format
 msgid ""
 "\n"
@@ -3432,7 +3432,7 @@ msgstr ""
 "\n"
 "\t# 函数列表,字典序\n"
 
-#: profile.c:2023
+#: profile.c:2026
 #, c-format
 msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str:未知重定向类型 %d"
@@ -3457,44 +3457,44 @@ msgstr 
"正则表达式中的转义序列“\\%c”将被当作纯文本“%c”
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
 msgstr "正则表达式中的转义序列“\\%c”不是有效的操作符"
 
-#: re.c:652
+#: re.c:663
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
 msgstr "正则表达式成分“%.*s”可能应为“[%.*s]”"
 
-#: support/dfa.c:1017
+#: support/dfa.c:938
 msgid "unbalanced ["
 msgstr "[ 不配对"
 
-#: support/dfa.c:1138
+#: support/dfa.c:1059
 msgid "invalid character class"
 msgstr "无效的字符类型名"
 
-#: support/dfa.c:1264
+#: support/dfa.c:1185
 msgid "character class syntax is [[:space:]], not [:space:]"
 msgstr "字符类型的语法为 [[:space:]],而不是 [:space:]"
 
-#: support/dfa.c:1331
+#: support/dfa.c:1252
 msgid "unfinished \\ escape"
 msgstr "不完整的 \\ 转义"
 
-#: support/dfa.c:1492
+#: support/dfa.c:1413
 msgid "invalid content of \\{\\}"
 msgstr "\\{\\} 中内容无效"
 
-#: support/dfa.c:1495
+#: support/dfa.c:1416
 msgid "regular expression too big"
 msgstr "正则表达式过大"
 
-#: support/dfa.c:1910
+#: support/dfa.c:1887
 msgid "unbalanced ("
 msgstr "( 不配对"
 
-#: support/dfa.c:2028
+#: support/dfa.c:2004
 msgid "no syntax specified"
 msgstr "未指定语法"
 
-#: support/dfa.c:2039
+#: support/dfa.c:2015
 msgid "unbalanced )"
 msgstr ") 不配对"
 

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

commit a5b3c3c1686d3f5f684bbd23128347b7af194273
Author: Arnold D. Robbins <address@hidden>
Date:   Sun Dec 22 21:48:18 2019 +0200

    Update pc/Makefile.tst.

diff --git a/pc/ChangeLog b/pc/ChangeLog
index d6224da..86f1e4b 100644
--- a/pc/ChangeLog
+++ b/pc/ChangeLog
@@ -1,3 +1,7 @@
+2019-12-22         Arnold D. Robbins     <address@hidden>
+
+       * Makefile.tst: Updated.
+
 2019-06-18         Arnold D. Robbins     <address@hidden>
 
        * 5.0.1: Release tar ball made.
diff --git a/pc/Makefile.tst b/pc/Makefile.tst
index e0da8dc..e5978c9 100644
--- a/pc/Makefile.tst
+++ b/pc/Makefile.tst
@@ -195,9 +195,9 @@ GAWK_EXT_TESTS = \
        dbugeval dbugeval2 dbugeval3 dbugtypedre1 dbugtypedre2 delsub \
        devfd devfd1 devfd2 dfacheck1 dumpvars \
        errno exit \
-       fieldwdth forcenum fpat1 fpat2 fpat3 fpat4 fpat5 fpat6 fpatnull fsfwfs \
-       funlen functab1 functab2 functab3 fwtest fwtest2 fwtest3 fwtest4 \
-       fwtest5 fwtest6 fwtest7 fwtest8 \
+       fieldwdth forcenum fpat1 fpat2 fpat3 fpat4 fpat5 fpat6 fpat7 fpatnull \
+       fsfwfs funlen functab1 functab2 functab3 \
+       fwtest fwtest2 fwtest3 fwtest4 fwtest5 fwtest6 fwtest7 fwtest8 \
        genpot gensub gensub2 gensub3 getlndir gnuops2 gnuops3 gnureops gsubind 
\
        icasefs icasers id igncdym igncfs ignrcas2 ignrcas4 ignrcase incdupe \
        incdupe2 incdupe3 incdupe4 incdupe5 incdupe6 incdupe7 include include2 \
@@ -217,6 +217,7 @@ GAWK_EXT_TESTS = \
        splitarg4 strftfld strftime strtonum strtonum1 switch2 symtab1 symtab2 \
        symtab3 symtab4 symtab5 symtab6 symtab7 symtab8 symtab9 symtab10 \
        timeout typedregex1 typedregex2 typedregex3 typedregex4 \
+       typedregex5 typedregex6 \
        typeof1 typeof2 typeof3 typeof4 typeof5 \
        watchpoint1
 
@@ -256,7 +257,7 @@ NEED_LINT_OLD = lintold
 # List of tests that must be run with -M
 NEED_MPFR = mpfrbigint mpfrbigint2 mpfrexprange mpfrfield mpfrieee mpfrmemok1 \
        mpfrnegzero mpfrnr mpfrrem mpfrrnd mpfrrndeval mpfrsort mpfrsqrt \
-       mpfrstrtonum mpgforcenum mpfruplus
+       mpfrstrtonum mpgforcenum mpfruplus mpfranswer42
 
 
 # List of tests that need --non-decimal-data
@@ -768,7 +769,7 @@ mixed1::
 mbprintf5::
        @echo $@ $(ZOS_FAIL)
        @-case `uname` in \
-       CYGWIN* | MINGW32* | *MS-DOS*) echo this test fails on this system --- 
skipping $@ ;; \
+       CYGWIN* | MSYS* | MINGW32* | *MS-DOS*) echo this test fails on this 
system --- skipping $@ ;; \
        *) \
        [ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE ; \
        $(AWK) -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT 
CODE: $$? >> _$@ ; \
@@ -866,6 +867,11 @@ mpfruplus:
        @$(AWK) -M -f "$(srcdir)"/uplus.awk > _$@ 2>&1 || echo EXIT CODE: $$? 
>> _$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
+mpfranswer42:
+       @echo $@
+       @$(AWK) -M -f "$(srcdir)"/mpfranswer42.awk > _$@ 2>&1 || echo EXIT 
CODE: $$? >> _$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
 mpfrmemok1:
        @echo $@
        @$(AWK) -p- -M -f "$(srcdir)"/$@.awk 2>&1 | sed 1d > _$@ || echo EXIT 
CODE: $$? >> _$@
@@ -1058,7 +1064,7 @@ fts:
        IRIX) \
        echo This test may fail on IRIX systems when run on an NFS filesystem.; 
\
        echo If it does, try rerunning on an xfs filesystem. ;; \
-       CYGWIN*) \
+       CYGWIN* | MSYS*) \
        echo This test may fail on CYGWIN systems when run on an NFS 
filesystem.; \
        echo If it does, try rerunning on an ntfs filesystem. ;; \
        esac
@@ -2643,6 +2649,11 @@ fpat6:
        @AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
+fpat7:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
 fpatnull:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
@@ -3203,6 +3214,16 @@ typedregex3:
        @AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@
        @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
 
+typedregex5:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
+typedregex6:
+       @echo $@
+       @AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || 
echo EXIT CODE: $$? >>_$@
+       @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
 typeof1:
        @echo $@
        @AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? 
>>_$@

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

commit 2c94bddc97b3ec05ecaebb394bab57be707ca81f
Author: Arnold D. Robbins <address@hidden>
Date:   Sun Dec 22 20:45:27 2019 +0200

    Add implementation-notes.txt to the repo.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 0e12cae..3a8688b 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2019-12-22         Arnold D. Robbins     <address@hidden>
+
+       * implementation-notes.txt: New file.
+
 2019-12-15         Arnold D. Robbins     <address@hidden>
 
        * gawktexi.in: Use `@codequoteundirected on' and
diff --git a/doc/implementation-notes.txt b/doc/implementation-notes.txt
new file mode 100644
index 0000000..275c422
--- /dev/null
+++ b/doc/implementation-notes.txt
@@ -0,0 +1,57 @@
+IMPLEMENTATION NOTES
+====================
+
+Multibyte Strings
+-----------------
+
+Gawk stores strings as (char *, size_t) pair, not as C strings, in order
+to follow the GNU "no arbitrary limits" design principle. There are also
+some flag bits associated with awk values, such as whether the type
+is string or number, and if the numeric and/or string values are current.
+
+Wide character support consists of an additional (wchar_t *, size_t)
+pair and a flag bit indicating that the wide character string value
+is current.
+
+The primary representation is the char* string, which holds the
+multibyte encoding of the string (UTF-8 or whatever is used in the
+current locale). This is used for input and output.
+
+The wide character representation is created and managed on an
+as-needed basis.  That is, when we need to know about characters
+and not bytes: length(), substr(), index(), match() and printf("%c")
+format.  (Did I forget any?)
+
+Fortunately, the GNU regex routines know how to match directly
+on the multibyte representation, although I've often wished
+for a version of those APIs that would take the wide character
+strings directly.
+
+Getting info out of match() is a bit of a pain. The regex routines
+return match start and length in terms of byte offsets.  Gawk builds
+a secondary index that turns these offsets into offsets within
+the multibyte string, so that proper values can be returned.
+
+For printf %c, the wide character representation has to be
+turned back into multibyte encoded characters and then printed.
+
+Assignment of a string value clears the wide-string-current bit
+and the memory for the wchar_t* string is released.
+
+GOTCHAS
+*******
+
+There is a significant GOTCHA with GLIBC.  The "constant" MB_CUR_MAX
+indicates how many bytes are the maximum needed to multibyte-encode
+a character in the current locale.  And it's easy to use it in code.
+
+The problem is that this constant is actually a macro defined to call
+a function to return the correct value.  This makes sense, since with
+setlocale() you can change the current locale of the running program.
+
+But, for programs like gawk that don't change their locale mid-run,
+using MB_CUR_MAX inside a heavily-called loop is a disaster (e.g., the
+loop that parses input data to find the end of the record).
+
+Thus gawk has it's own `gawk_mb_cur_max' variable that it initializes upon
+start-up, and doesn't touch afterwards. That variable is used everywhere.

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

Summary of changes:
 ChangeLog                    |  10 ++
 NEWS                         |   2 +-
 configure                    |   6 ++
 configure.ac                 |   2 +
 doc/ChangeLog                |   4 +
 doc/implementation-notes.txt |  57 +++++++++++
 gettext.h                    |  23 +++--
 pc/ChangeLog                 |   4 +
 pc/Makefile.tst              |  33 ++++--
 po/ChangeLog                 |   4 +
 po/ca.gmo                    | Bin 74153 -> 74112 bytes
 po/ca.po                     | 234 +++++++++++++++++++++----------------------
 po/da.gmo                    | Bin 46834 -> 46793 bytes
 po/da.po                     | 234 +++++++++++++++++++++----------------------
 po/de.gmo                    | Bin 83082 -> 83041 bytes
 po/de.po                     | 234 +++++++++++++++++++++----------------------
 po/es.gmo                    | Bin 80963 -> 80922 bytes
 po/es.po                     | 234 +++++++++++++++++++++----------------------
 po/fi.gmo                    | Bin 80423 -> 80382 bytes
 po/fi.po                     | 234 +++++++++++++++++++++----------------------
 po/fr.gmo                    | Bin 91514 -> 91473 bytes
 po/fr.po                     | 234 +++++++++++++++++++++----------------------
 po/gawk.pot                  | 234 +++++++++++++++++++++----------------------
 po/id.gmo                    | Bin 67652 -> 67611 bytes
 po/id.po                     | 234 +++++++++++++++++++++----------------------
 po/it.gmo                    | Bin 88741 -> 88700 bytes
 po/it.po                     | 234 +++++++++++++++++++++----------------------
 po/ja.gmo                    | Bin 47557 -> 47516 bytes
 po/ja.po                     | 234 +++++++++++++++++++++----------------------
 po/ko.gmo                    | Bin 94866 -> 94825 bytes
 po/ko.po                     | 234 +++++++++++++++++++++----------------------
 po/ms.gmo                    | Bin 1082 -> 1041 bytes
 po/ms.po                     | 234 +++++++++++++++++++++----------------------
 po/nl.gmo                    | Bin 72589 -> 72548 bytes
 po/nl.po                     | 234 +++++++++++++++++++++----------------------
 po/pl.gmo                    | Bin 59338 -> 59297 bytes
 po/pl.po                     | 234 +++++++++++++++++++++----------------------
 po/pt.gmo                    | Bin 86697 -> 86656 bytes
 po/pt.po                     | 234 +++++++++++++++++++++----------------------
 po/pt_BR.gmo                 | Bin 87983 -> 87942 bytes
 po/pt_BR.po                  | 234 +++++++++++++++++++++----------------------
 po/sv.gmo                    | Bin 87635 -> 87594 bytes
 po/sv.po                     | 234 +++++++++++++++++++++----------------------
 po/vi.gmo                    | Bin 90510 -> 90469 bytes
 po/vi.po                     | 234 +++++++++++++++++++++----------------------
 po/zh_CN.gmo                 | Bin 81957 -> 81916 bytes
 po/zh_CN.po                  | 234 +++++++++++++++++++++----------------------
 47 files changed, 2350 insertions(+), 2241 deletions(-)
 create mode 100644 doc/implementation-notes.txt


hooks/post-receive
-- 
gawk



reply via email to

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