gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, porting, updated. gawk-4.1.0-3657-g3576f


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, porting, updated. gawk-4.1.0-3657-g3576fe4
Date: Fri, 15 Feb 2019 05:59:53 -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, porting has been updated
       via  3576fe40421775a3d8e20a0a7a3c751cc062d742 (commit)
       via  79fbe93a20957ec382da76fdc2af5cf0a2de5e6f (commit)
       via  83b59da8d4e33804bc7679446243104a76c4ded8 (commit)
       via  14f533360b22c47012f8fbabdcc42897f3a095e8 (commit)
       via  8ec98d6231f61daedc317ec8198cf0864f090f43 (commit)
      from  db439eb8acf47c3b28d15ce239477315b8157c05 (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=3576fe40421775a3d8e20a0a7a3c751cc062d742

commit 3576fe40421775a3d8e20a0a7a3c751cc062d742
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Feb 15 12:58:43 2019 +0200

    More doc updates.

diff --git a/ChangeLog b/ChangeLog
index d5e70f7..248453b 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,7 @@
 
        * awkgram.y: If profiling, correctly turn `print' into `print $0'.
        Thanks to Hermann Peifer for the bug report.
+       * TODO: Updated.
 
 2019-02-11         Arnold D. Robbins     <address@hidden>
 
diff --git a/TODO b/TODO
index 5f10b2b..c46aedd 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-Sun Feb  3 20:34:46 IST 2019
+Fri Feb 15 12:51:55 IST 2019
 ============================
 
 There were too many files tracking different thoughts and ideas for
@@ -30,6 +30,11 @@ Minor Cleanups and Code Improvements
        See if something like  b = a "" can be optimized to not do
        a concatenation, but instead just set STRCUR on a.
 
+       Review all conditional warnings to see if they should be made
+       into calls to lintwarn. The advantage is that that --lint=fatal
+       would then make such warnings exit gawk, along with regular
+       lint warnings.
+
 Minor New Features
 ------------------
 
@@ -43,6 +48,10 @@ Minor New Features
 
        Enhance --lint=invalid to apply in more places.
 
+       Remove, if possible, the limitation that eval in the debugger
+       cannot run code that calls user defined functions which
+       execute return.
+
        ? Add an optional base to strtonum, allowing 2-36.
 
        ? Optional third argument for index indicating where to start the
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 1feb4ff..3ed04bb 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -2,6 +2,9 @@
 
        * gawktexi.in: Fix wording for %f.
        Thanks to Dan Liddell <address@hidden> for the catch.
+       (Viewing And Changing Data): Note that eval has problems calling
+       user-defined functions that return a value. Thanks to
+       Lothar Langer <address@hidden> for the report.
 
 2019-02-11         Arnold D. Robbins     <address@hidden>
 
diff --git a/doc/gawk.info b/doc/gawk.info
index 1b4cb79..a91a2c6 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -22342,6 +22342,11 @@ The commands for viewing and changing variables inside 
of 'gawk' are:
      can do anything that an 'awk' program would do: assign values to
      variables, call functions, and so on.
 
+          NOTE: Do to implementation constraintss, using 'eval' to call
+          a user-defined function that returns a value does not work,
+          generating an error message.  We hope to one day remove this
+          constraint.
+
 'eval' PARAM, ...
 AWK STATEMENTS
 'end'
@@ -33974,7 +33979,7 @@ Index
 * assert() user-defined function:        Assert Function.     (line  28)
 * assertions:                            Assert Function.     (line   6)
 * assign values to variables, in debugger: Viewing And Changing Data.
-                                                              (line  58)
+                                                              (line  63)
 * assignment operators:                  Assignment Ops.      (line   6)
 * assignment operators, evaluation order: Assignment Ops.     (line 110)
 * assignment operators, lvalues/rvalues: Assignment Ops.      (line  31)
@@ -34567,11 +34572,11 @@ Index
 * debugger commands, o (option):         Debugger Info.       (line  57)
 * debugger commands, option:             Debugger Info.       (line  57)
 * debugger commands, p (print):          Viewing And Changing Data.
-                                                              (line  35)
+                                                              (line  40)
 * debugger commands, print:              Viewing And Changing Data.
-                                                              (line  35)
+                                                              (line  40)
 * debugger commands, printf:             Viewing And Changing Data.
-                                                              (line  53)
+                                                              (line  58)
 * debugger commands, q (quit):           Miscellaneous Debugger Commands.
                                                               (line 100)
 * debugger commands, quit:               Miscellaneous Debugger Commands.
@@ -34585,7 +34590,7 @@ Index
 * debugger commands, s (step):           Debugger Execution Control.
                                                               (line  68)
 * debugger commands, set:                Viewing And Changing Data.
-                                                              (line  58)
+                                                              (line  63)
 * debugger commands, si (stepi):         Debugger Execution Control.
                                                               (line  75)
 * debugger commands, silent:             Debugger Execution Control.
@@ -34601,16 +34606,16 @@ Index
 * debugger commands, u (until):          Debugger Execution Control.
                                                               (line  82)
 * debugger commands, undisplay:          Viewing And Changing Data.
-                                                              (line  79)
+                                                              (line  84)
 * debugger commands, until:              Debugger Execution Control.
                                                               (line  82)
 * debugger commands, unwatch:            Viewing And Changing Data.
-                                                              (line  83)
+                                                              (line  88)
 * debugger commands, up:                 Execution Stack.     (line  36)
 * debugger commands, w (watch):          Viewing And Changing Data.
-                                                              (line  66)
+                                                              (line  71)
 * debugger commands, watch:              Viewing And Changing Data.
-                                                              (line  66)
+                                                              (line  71)
 * debugger commands, where (backtrace):  Execution Stack.     (line  13)
 * debugger, b command:                   Finding The Bug.     (line  32)
 * debugger, backtrace command:           Finding The Bug.     (line  52)
@@ -34660,7 +34665,7 @@ Index
 * delete debugger command:               Breakpoint Control.  (line  64)
 * delete statement:                      Delete.              (line   6)
 * delete watchpoint:                     Viewing And Changing Data.
-                                                              (line  83)
+                                                              (line  88)
 * deleting elements in arrays:           Delete.              (line   6)
 * deleting entire arrays:                Delete.              (line  39)
 * Demaille, Akim:                        Acknowledgments.     (line  60)
@@ -35884,7 +35889,7 @@ Index
 * output, records:                       Output Separators.   (line  20)
 * output, standard:                      Special FD.          (line   6)
 * p debugger command (alias for print):  Viewing And Changing Data.
-                                                              (line  35)
+                                                              (line  40)
 * package, definition of:                Global Namespace.    (line  18)
 * Papadopoulos, Panos:                   Contributors.        (line 131)
 * parent process ID of gawk process:     Auto-set.            (line 251)
@@ -36028,7 +36033,7 @@ Index
 * pretty printing <1>:                   Profiling.           (line 222)
 * pretty-printing, profiling, difference with: Profiling.     (line 229)
 * print debugger command:                Viewing And Changing Data.
-                                                              (line  35)
+                                                              (line  40)
 * print statement:                       Printing.            (line  16)
 * print statement, BEGIN/END patterns and: I/O And BEGIN/END. (line  15)
 * print statement, commas, omitting:     Print Examples.      (line  30)
@@ -36039,9 +36044,9 @@ Index
                                                               (line  17)
 * print statement, sprintf() function and: Round Function.    (line   6)
 * print variables, in debugger:          Viewing And Changing Data.
-                                                              (line  35)
+                                                              (line  40)
 * printf debugger command:               Viewing And Changing Data.
-                                                              (line  53)
+                                                              (line  58)
 * printf statement:                      Printing.            (line  16)
 * printf statement <1>:                  Printf.              (line   6)
 * printf statement, columns, aligning:   Print Examples.      (line  69)
@@ -36342,10 +36347,10 @@ Index
 * separators, subscript:                 User-modified.       (line 149)
 * set breakpoint:                        Breakpoint Control.  (line  11)
 * set debugger command:                  Viewing And Changing Data.
-                                                              (line  58)
+                                                              (line  63)
 * set directory of message catalogs:     I18N Functions.      (line  11)
 * set watchpoint:                        Viewing And Changing Data.
-                                                              (line  66)
+                                                              (line  71)
 * shadowing of variable values:          Definition Syntax.   (line  77)
 * shell quoting, rules for:              Quoting.             (line   6)
 * shells, piping commands into:          Redirection.         (line 136)
@@ -36504,7 +36509,7 @@ Index
 * stepi debugger command:                Debugger Execution Control.
                                                               (line  75)
 * stop automatic display, in debugger:   Viewing And Changing Data.
-                                                              (line  79)
+                                                              (line  84)
 * stream editors:                        Full Line Fields.    (line  22)
 * stream editors <1>:                    Simple Sed.          (line   6)
 * strftime:                              Time Functions.      (line  50)
@@ -36674,7 +36679,7 @@ Index
                                                               (line  29)
 * underscore (_), translatable string:   Programmer i18n.     (line  69)
 * undisplay debugger command:            Viewing And Changing Data.
-                                                              (line  79)
+                                                              (line  84)
 * undocumented features:                 Undocumented.        (line   6)
 * Unicode:                               Ordinal Functions.   (line  45)
 * Unicode <1>:                           Ranges and Locales.  (line  61)
@@ -36695,7 +36700,7 @@ Index
 * until debugger command:                Debugger Execution Control.
                                                               (line  82)
 * unwatch debugger command:              Viewing And Changing Data.
-                                                              (line  83)
+                                                              (line  88)
 * up debugger command:                   Execution Stack.     (line  36)
 * uppercase names, namespace for:        Default Namespace.   (line  10)
 * user database, reading:                Passwd Functions.    (line   6)
@@ -36756,7 +36761,7 @@ Index
 * vertical bar (|), || operator <1>:     Precedence.          (line  88)
 * Vinschen, Corinna:                     Acknowledgments.     (line  60)
 * w debugger command (alias for watch):  Viewing And Changing Data.
-                                                              (line  66)
+                                                              (line  71)
 * w utility:                             Fixed width data.    (line  17)
 * wait() extension function:             Extension Sample Fork.
                                                               (line  22)
@@ -36768,7 +36773,7 @@ Index
 * Wallin, Anders:                        Contributors.        (line 106)
 * warnings, issuing:                     Options.             (line 210)
 * watch debugger command:                Viewing And Changing Data.
-                                                              (line  66)
+                                                              (line  71)
 * watchpoint (debugger):                 Debugging Terms.     (line  42)
 * wc utility:                            Wc Program.          (line   6)
 * wc.awk program:                        Wc Program.          (line  46)
@@ -37209,198 +37214,198 @@ Node: List of Debugger Commands895922
 Node: Breakpoint Control897255
 Node: Debugger Execution Control900949
 Node: Viewing And Changing Data904311
-Node: Execution Stack907685
-Node: Debugger Info909322
-Node: Miscellaneous Debugger Commands913393
-Node: Readline Support918455
-Node: Limitations919351
-Node: Debugging Summary921460
-Node: Namespaces922739
-Node: Global Namespace923818
-Node: Qualified Names925216
-Node: Default Namespace926215
-Node: Changing The Namespace926956
-Node: Naming Rules928570
-Node: Internal Name Management930418
-Node: Namespace Example931460
-Node: Namespace And Features934022
-Node: Namespace Summary935457
-Node: Arbitrary Precision Arithmetic936934
-Node: Computer Arithmetic938421
-Ref: table-numeric-ranges942187
-Ref: table-floating-point-ranges942680
-Ref: Computer Arithmetic-Footnote-1943338
-Node: Math Definitions943395
-Ref: table-ieee-formats946711
-Ref: Math Definitions-Footnote-1947314
-Node: MPFR features947419
-Node: FP Math Caution949137
-Ref: FP Math Caution-Footnote-1950209
-Node: Inexactness of computations950578
-Node: Inexact representation951538
-Node: Comparing FP Values952898
-Node: Errors accumulate954139
-Node: Getting Accuracy955572
-Node: Try To Round958282
-Node: Setting precision959181
-Ref: table-predefined-precision-strings959878
-Node: Setting the rounding mode961708
-Ref: table-gawk-rounding-modes962082
-Ref: Setting the rounding mode-Footnote-1966013
-Node: Arbitrary Precision Integers966192
-Ref: Arbitrary Precision Integers-Footnote-1969367
-Node: Checking for MPFR969516
-Node: POSIX Floating Point Problems970990
-Ref: POSIX Floating Point Problems-Footnote-1975275
-Node: Floating point summary975313
-Node: Dynamic Extensions977503
-Node: Extension Intro979056
-Node: Plugin License980322
-Node: Extension Mechanism Outline981119
-Ref: figure-load-extension981558
-Ref: figure-register-new-function983123
-Ref: figure-call-new-function984215
-Node: Extension API Description986277
-Node: Extension API Functions Introduction987919
-Ref: table-api-std-headers989755
-Node: General Data Types993620
-Ref: General Data Types-Footnote-11001981
-Node: Memory Allocation Functions1002280
-Ref: Memory Allocation Functions-Footnote-11006490
-Node: Constructor Functions1006589
-Node: Registration Functions1010175
-Node: Extension Functions1010860
-Node: Exit Callback Functions1016182
-Node: Extension Version String1017432
-Node: Input Parsers1018095
-Node: Output Wrappers1030816
-Node: Two-way processors1035328
-Node: Printing Messages1037593
-Ref: Printing Messages-Footnote-11038764
-Node: Updating ERRNO1038917
-Node: Requesting Values1039656
-Ref: table-value-types-returned1040393
-Node: Accessing Parameters1041329
-Node: Symbol Table Access1042564
-Node: Symbol table by name1043076
-Ref: Symbol table by name-Footnote-11046100
-Node: Symbol table by cookie1046228
-Ref: Symbol table by cookie-Footnote-11050413
-Node: Cached values1050477
-Ref: Cached values-Footnote-11054013
-Node: Array Manipulation1054166
-Ref: Array Manipulation-Footnote-11055257
-Node: Array Data Types1055294
-Ref: Array Data Types-Footnote-11057952
-Node: Array Functions1058044
-Node: Flattening Arrays1062542
-Node: Creating Arrays1069518
-Node: Redirection API1074285
-Node: Extension API Variables1077118
-Node: Extension Versioning1077829
-Ref: gawk-api-version1078258
-Node: Extension GMP/MPFR Versioning1079989
-Node: Extension API Informational Variables1081617
-Node: Extension API Boilerplate1082690
-Node: Changes from API V11086664
-Node: Finding Extensions1088236
-Node: Extension Example1088795
-Node: Internal File Description1089593
-Node: Internal File Ops1093673
-Ref: Internal File Ops-Footnote-11105023
-Node: Using Internal File Ops1105163
-Ref: Using Internal File Ops-Footnote-11107546
-Node: Extension Samples1107820
-Node: Extension Sample File Functions1109349
-Node: Extension Sample Fnmatch1116998
-Node: Extension Sample Fork1118485
-Node: Extension Sample Inplace1119703
-Node: Extension Sample Ord1123007
-Node: Extension Sample Readdir1123843
-Ref: table-readdir-file-types1124732
-Node: Extension Sample Revout1125537
-Node: Extension Sample Rev2way1126126
-Node: Extension Sample Read write array1126866
-Node: Extension Sample Readfile1128808
-Node: Extension Sample Time1129903
-Node: Extension Sample API Tests1131251
-Node: gawkextlib1131743
-Node: Extension summary1134661
-Node: Extension Exercises1138363
-Node: Language History1139605
-Node: V7/SVR3.11141261
-Node: SVR41143413
-Node: POSIX1144847
-Node: BTL1146227
-Node: POSIX/GNU1146956
-Node: Feature History1152734
-Node: Common Extensions1168780
-Node: Ranges and Locales1170063
-Ref: Ranges and Locales-Footnote-11174679
-Ref: Ranges and Locales-Footnote-21174706
-Ref: Ranges and Locales-Footnote-31174941
-Node: Contributors1175162
-Node: History summary1181107
-Node: Installation1182487
-Node: Gawk Distribution1183431
-Node: Getting1183915
-Node: Extracting1184878
-Node: Distribution contents1186516
-Node: Unix Installation1192996
-Node: Quick Installation1193678
-Node: Shell Startup Files1196092
-Node: Additional Configuration Options1197181
-Node: Configuration Philosophy1199346
-Node: Non-Unix Installation1201715
-Node: PC Installation1202175
-Node: PC Binary Installation1203013
-Node: PC Compiling1203448
-Node: PC Using1204565
-Node: Cygwin1208118
-Node: MSYS1209217
-Node: VMS Installation1209718
-Node: VMS Compilation1210509
-Ref: VMS Compilation-Footnote-11211738
-Node: VMS Dynamic Extensions1211796
-Node: VMS Installation Details1213481
-Node: VMS Running1215734
-Node: VMS GNV1220013
-Node: VMS Old Gawk1220748
-Node: Bugs1221219
-Node: Bug address1221882
-Node: Usenet1224864
-Node: Maintainers1225868
-Node: Other Versions1227129
-Node: Installation summary1234043
-Node: Notes1235245
-Node: Compatibility Mode1236039
-Node: Additions1236821
-Node: Accessing The Source1237746
-Node: Adding Code1239183
-Node: New Ports1245402
-Node: Derived Files1249890
-Ref: Derived Files-Footnote-11255536
-Ref: Derived Files-Footnote-21255571
-Ref: Derived Files-Footnote-31256169
-Node: Future Extensions1256283
-Node: Implementation Limitations1256941
-Node: Extension Design1258124
-Node: Old Extension Problems1259268
-Ref: Old Extension Problems-Footnote-11260786
-Node: Extension New Mechanism Goals1260843
-Ref: Extension New Mechanism Goals-Footnote-11264207
-Node: Extension Other Design Decisions1264396
-Node: Extension Future Growth1266509
-Node: Notes summary1267345
-Node: Basic Concepts1268520
-Node: Basic High Level1269201
-Ref: figure-general-flow1269483
-Ref: figure-process-flow1270168
-Ref: Basic High Level-Footnote-11273469
-Node: Basic Data Typing1273654
-Node: Glossary1276982
-Node: Copying1308820
-Node: GNU Free Documentation License1346363
-Node: Index1371483
+Node: Execution Stack907921
+Node: Debugger Info909558
+Node: Miscellaneous Debugger Commands913629
+Node: Readline Support918691
+Node: Limitations919587
+Node: Debugging Summary921696
+Node: Namespaces922975
+Node: Global Namespace924054
+Node: Qualified Names925452
+Node: Default Namespace926451
+Node: Changing The Namespace927192
+Node: Naming Rules928806
+Node: Internal Name Management930654
+Node: Namespace Example931696
+Node: Namespace And Features934258
+Node: Namespace Summary935693
+Node: Arbitrary Precision Arithmetic937170
+Node: Computer Arithmetic938657
+Ref: table-numeric-ranges942423
+Ref: table-floating-point-ranges942916
+Ref: Computer Arithmetic-Footnote-1943574
+Node: Math Definitions943631
+Ref: table-ieee-formats946947
+Ref: Math Definitions-Footnote-1947550
+Node: MPFR features947655
+Node: FP Math Caution949373
+Ref: FP Math Caution-Footnote-1950445
+Node: Inexactness of computations950814
+Node: Inexact representation951774
+Node: Comparing FP Values953134
+Node: Errors accumulate954375
+Node: Getting Accuracy955808
+Node: Try To Round958518
+Node: Setting precision959417
+Ref: table-predefined-precision-strings960114
+Node: Setting the rounding mode961944
+Ref: table-gawk-rounding-modes962318
+Ref: Setting the rounding mode-Footnote-1966249
+Node: Arbitrary Precision Integers966428
+Ref: Arbitrary Precision Integers-Footnote-1969603
+Node: Checking for MPFR969752
+Node: POSIX Floating Point Problems971226
+Ref: POSIX Floating Point Problems-Footnote-1975511
+Node: Floating point summary975549
+Node: Dynamic Extensions977739
+Node: Extension Intro979292
+Node: Plugin License980558
+Node: Extension Mechanism Outline981355
+Ref: figure-load-extension981794
+Ref: figure-register-new-function983359
+Ref: figure-call-new-function984451
+Node: Extension API Description986513
+Node: Extension API Functions Introduction988155
+Ref: table-api-std-headers989991
+Node: General Data Types993856
+Ref: General Data Types-Footnote-11002217
+Node: Memory Allocation Functions1002516
+Ref: Memory Allocation Functions-Footnote-11006726
+Node: Constructor Functions1006825
+Node: Registration Functions1010411
+Node: Extension Functions1011096
+Node: Exit Callback Functions1016418
+Node: Extension Version String1017668
+Node: Input Parsers1018331
+Node: Output Wrappers1031052
+Node: Two-way processors1035564
+Node: Printing Messages1037829
+Ref: Printing Messages-Footnote-11039000
+Node: Updating ERRNO1039153
+Node: Requesting Values1039892
+Ref: table-value-types-returned1040629
+Node: Accessing Parameters1041565
+Node: Symbol Table Access1042800
+Node: Symbol table by name1043312
+Ref: Symbol table by name-Footnote-11046336
+Node: Symbol table by cookie1046464
+Ref: Symbol table by cookie-Footnote-11050649
+Node: Cached values1050713
+Ref: Cached values-Footnote-11054249
+Node: Array Manipulation1054402
+Ref: Array Manipulation-Footnote-11055493
+Node: Array Data Types1055530
+Ref: Array Data Types-Footnote-11058188
+Node: Array Functions1058280
+Node: Flattening Arrays1062778
+Node: Creating Arrays1069754
+Node: Redirection API1074521
+Node: Extension API Variables1077354
+Node: Extension Versioning1078065
+Ref: gawk-api-version1078494
+Node: Extension GMP/MPFR Versioning1080225
+Node: Extension API Informational Variables1081853
+Node: Extension API Boilerplate1082926
+Node: Changes from API V11086900
+Node: Finding Extensions1088472
+Node: Extension Example1089031
+Node: Internal File Description1089829
+Node: Internal File Ops1093909
+Ref: Internal File Ops-Footnote-11105259
+Node: Using Internal File Ops1105399
+Ref: Using Internal File Ops-Footnote-11107782
+Node: Extension Samples1108056
+Node: Extension Sample File Functions1109585
+Node: Extension Sample Fnmatch1117234
+Node: Extension Sample Fork1118721
+Node: Extension Sample Inplace1119939
+Node: Extension Sample Ord1123243
+Node: Extension Sample Readdir1124079
+Ref: table-readdir-file-types1124968
+Node: Extension Sample Revout1125773
+Node: Extension Sample Rev2way1126362
+Node: Extension Sample Read write array1127102
+Node: Extension Sample Readfile1129044
+Node: Extension Sample Time1130139
+Node: Extension Sample API Tests1131487
+Node: gawkextlib1131979
+Node: Extension summary1134897
+Node: Extension Exercises1138599
+Node: Language History1139841
+Node: V7/SVR3.11141497
+Node: SVR41143649
+Node: POSIX1145083
+Node: BTL1146463
+Node: POSIX/GNU1147192
+Node: Feature History1152970
+Node: Common Extensions1169016
+Node: Ranges and Locales1170299
+Ref: Ranges and Locales-Footnote-11174915
+Ref: Ranges and Locales-Footnote-21174942
+Ref: Ranges and Locales-Footnote-31175177
+Node: Contributors1175398
+Node: History summary1181343
+Node: Installation1182723
+Node: Gawk Distribution1183667
+Node: Getting1184151
+Node: Extracting1185114
+Node: Distribution contents1186752
+Node: Unix Installation1193232
+Node: Quick Installation1193914
+Node: Shell Startup Files1196328
+Node: Additional Configuration Options1197417
+Node: Configuration Philosophy1199582
+Node: Non-Unix Installation1201951
+Node: PC Installation1202411
+Node: PC Binary Installation1203249
+Node: PC Compiling1203684
+Node: PC Using1204801
+Node: Cygwin1208354
+Node: MSYS1209453
+Node: VMS Installation1209954
+Node: VMS Compilation1210745
+Ref: VMS Compilation-Footnote-11211974
+Node: VMS Dynamic Extensions1212032
+Node: VMS Installation Details1213717
+Node: VMS Running1215970
+Node: VMS GNV1220249
+Node: VMS Old Gawk1220984
+Node: Bugs1221455
+Node: Bug address1222118
+Node: Usenet1225100
+Node: Maintainers1226104
+Node: Other Versions1227365
+Node: Installation summary1234279
+Node: Notes1235481
+Node: Compatibility Mode1236275
+Node: Additions1237057
+Node: Accessing The Source1237982
+Node: Adding Code1239419
+Node: New Ports1245638
+Node: Derived Files1250126
+Ref: Derived Files-Footnote-11255772
+Ref: Derived Files-Footnote-21255807
+Ref: Derived Files-Footnote-31256405
+Node: Future Extensions1256519
+Node: Implementation Limitations1257177
+Node: Extension Design1258360
+Node: Old Extension Problems1259504
+Ref: Old Extension Problems-Footnote-11261022
+Node: Extension New Mechanism Goals1261079
+Ref: Extension New Mechanism Goals-Footnote-11264443
+Node: Extension Other Design Decisions1264632
+Node: Extension Future Growth1266745
+Node: Notes summary1267581
+Node: Basic Concepts1268756
+Node: Basic High Level1269437
+Ref: figure-general-flow1269719
+Ref: figure-process-flow1270404
+Ref: Basic High Level-Footnote-11273705
+Node: Basic Data Typing1273890
+Node: Glossary1277218
+Node: Copying1309056
+Node: GNU Free Documentation License1346599
+Node: Index1371719
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 27a6fc4..b0b4d3d 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -31131,6 +31131,12 @@ Evaluate @var{awk statements} in the context of the 
running program.
 You can do anything that an @command{awk} program would do: assign
 values to variables, call functions, and so on.
 
address@hidden NOTE
+Do to implementation constraintss, using @code{eval} to call a
+user-defined function that returns a value does not work, generating
+an error message.  We hope to one day remove this constraint.
address@hidden quotation
+
 @item @code{eval} @var{param}, @dots{}
 @itemx @var{awk statements}
 @itemx @code{end}
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 51b5618..3f514c8 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -30143,6 +30143,12 @@ Evaluate @var{awk statements} in the context of the 
running program.
 You can do anything that an @command{awk} program would do: assign
 values to variables, call functions, and so on.
 
address@hidden NOTE
+Do to implementation constraintss, using @code{eval} to call a
+user-defined function that returns a value does not work, generating
+an error message.  We hope to one day remove this constraint.
address@hidden quotation
+
 @item @code{eval} @var{param}, @dots{}
 @itemx @var{awk statements}
 @itemx @code{end}

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

commit 79fbe93a20957ec382da76fdc2af5cf0a2de5e6f
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Feb 15 11:20:32 2019 +0200

    Fix plain `print' to work if profiling.

diff --git a/ChangeLog b/ChangeLog
index a646037..d5e70f7 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-02-15         Arnold D. Robbins     <address@hidden>
+
+       * awkgram.y: If profiling, correctly turn `print' into `print $0'.
+       Thanks to Hermann Peifer for the bug report.
+
 2019-02-11         Arnold D. Robbins     <address@hidden>
 
        * configure.ac: Update version for next test tarball.
diff --git a/awkgram.c b/awkgram.c
index 2269c58..a9edb06 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -689,21 +689,21 @@ static const yytype_uint16 yyrline[] =
      469,   470,   481,   487,   495,   496,   500,   500,   534,   533,
      567,   582,   584,   589,   590,   610,   615,   616,   620,   631,
      636,   643,   751,   802,   852,   978,   999,  1020,  1030,  1040,
-    1050,  1061,  1074,  1092,  1091,  1105,  1123,  1123,  1221,  1221,
-    1254,  1284,  1292,  1293,  1299,  1300,  1307,  1312,  1325,  1340,
-    1342,  1350,  1357,  1359,  1367,  1376,  1378,  1387,  1388,  1396,
-    1401,  1401,  1414,  1420,  1432,  1436,  1458,  1459,  1465,  1466,
-    1475,  1476,  1481,  1486,  1503,  1505,  1507,  1514,  1515,  1521,
-    1522,  1527,  1529,  1536,  1538,  1546,  1551,  1562,  1563,  1568,
-    1570,  1577,  1579,  1587,  1592,  1602,  1603,  1608,  1615,  1619,
-    1621,  1623,  1636,  1653,  1663,  1670,  1672,  1677,  1679,  1681,
-    1689,  1691,  1696,  1698,  1703,  1705,  1707,  1764,  1766,  1768,
-    1770,  1772,  1774,  1776,  1778,  1792,  1797,  1802,  1827,  1833,
-    1835,  1837,  1839,  1841,  1843,  1848,  1852,  1884,  1892,  1898,
-    1904,  1917,  1918,  1919,  1924,  1929,  1933,  1937,  1952,  1973,
-    1978,  2015,  2052,  2053,  2059,  2060,  2065,  2067,  2074,  2091,
-    2108,  2110,  2117,  2122,  2128,  2139,  2151,  2160,  2164,  2169,
-    2173,  2177,  2181,  2186,  2187,  2191,  2195,  2199
+    1050,  1061,  1074,  1092,  1091,  1105,  1123,  1123,  1225,  1225,
+    1258,  1288,  1296,  1297,  1303,  1304,  1311,  1316,  1329,  1344,
+    1346,  1354,  1361,  1363,  1371,  1380,  1382,  1391,  1392,  1400,
+    1405,  1405,  1418,  1424,  1436,  1440,  1462,  1463,  1469,  1470,
+    1479,  1480,  1485,  1490,  1507,  1509,  1511,  1518,  1519,  1525,
+    1526,  1531,  1533,  1540,  1542,  1550,  1555,  1566,  1567,  1572,
+    1574,  1581,  1583,  1591,  1596,  1606,  1607,  1612,  1619,  1623,
+    1625,  1627,  1640,  1657,  1667,  1674,  1676,  1681,  1683,  1685,
+    1693,  1695,  1700,  1702,  1707,  1709,  1711,  1768,  1770,  1772,
+    1774,  1776,  1778,  1780,  1782,  1796,  1801,  1806,  1831,  1837,
+    1839,  1841,  1843,  1845,  1847,  1852,  1856,  1888,  1896,  1902,
+    1908,  1921,  1922,  1923,  1928,  1933,  1937,  1941,  1956,  1977,
+    1982,  2019,  2056,  2057,  2063,  2064,  2069,  2071,  2078,  2095,
+    2112,  2114,  2121,  2126,  2132,  2143,  2155,  2164,  2168,  2173,
+    2177,  2181,  2185,  2190,  2191,  2195,  2199,  2203
 };
 #endif
 
@@ -3056,8 +3056,10 @@ regular_loop:
                         */
 regular_print:
                        if (yyvsp[0] == NULL) {         /* no redirection */
-                               if (yyvsp[-1] == NULL)  {       /* printf 
without arg */
+                               if (yyvsp[-1] == NULL)  {       /* print/printf 
without arg */
                                        yyvsp[-3]->expr_count = 0;
+                                       if (yyvsp[-3]->opcode == Op_K_print)
+                                               yyvsp[-3]->opcode = 
Op_K_print_rec;
                                        yyvsp[-3]->redir_type = redirect_none;
                                        yyval = list_create(yyvsp[-3]);
                                } else {
@@ -3074,6 +3076,8 @@ regular_print:
                                bcfree(ip);
                                if (yyvsp[-1] == NULL) {
                                        yyvsp[-3]->expr_count = 0;
+                                       if (yyvsp[-3]->opcode == Op_K_print)
+                                               yyvsp[-3]->opcode = 
Op_K_print_rec;
                                        yyval = list_append(yyvsp[0], 
yyvsp[-3]);
                                } else {
                                        INSTRUCTION *t = yyvsp[-1];
@@ -3083,17 +3087,17 @@ regular_print:
                        }
                }
          }
-#line 3087 "awkgram.c" /* yacc.c:1652  */
+#line 3091 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 68:
-#line 1221 "awkgram.y" /* yacc.c:1652  */
+#line 1225 "awkgram.y" /* yacc.c:1652  */
     { sub_counter = 0; }
-#line 3093 "awkgram.c" /* yacc.c:1652  */
+#line 3097 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 69:
-#line 1222 "awkgram.y" /* yacc.c:1652  */
+#line 1226 "awkgram.y" /* yacc.c:1652  */
     {
                char *arr = yyvsp[-2]->lextok;
 
@@ -3126,11 +3130,11 @@ regular_print:
                        yyval = list_append(list_append(yyvsp[0], yyvsp[-2]), 
yyvsp[-3]);
                }
          }
-#line 3130 "awkgram.c" /* yacc.c:1652  */
+#line 3134 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 70:
-#line 1259 "awkgram.y" /* yacc.c:1652  */
+#line 1263 "awkgram.y" /* yacc.c:1652  */
     {
                static bool warned = false;
                char *arr = yyvsp[-1]->lextok;
@@ -3156,54 +3160,54 @@ regular_print:
                                fatal(_("`delete' is not allowed with 
FUNCTAB"));
                }
          }
-#line 3160 "awkgram.c" /* yacc.c:1652  */
+#line 3164 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 71:
-#line 1285 "awkgram.y" /* yacc.c:1652  */
+#line 1289 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = optimize_assignment(yyvsp[0]);
          }
-#line 3168 "awkgram.c" /* yacc.c:1652  */
+#line 3172 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 72:
-#line 1292 "awkgram.y" /* yacc.c:1652  */
+#line 1296 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3174 "awkgram.c" /* yacc.c:1652  */
+#line 3178 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 73:
-#line 1294 "awkgram.y" /* yacc.c:1652  */
+#line 1298 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3180 "awkgram.c" /* yacc.c:1652  */
+#line 3184 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 74:
-#line 1299 "awkgram.y" /* yacc.c:1652  */
+#line 1303 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3186 "awkgram.c" /* yacc.c:1652  */
+#line 3190 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 75:
-#line 1301 "awkgram.y" /* yacc.c:1652  */
+#line 1305 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[-1] == NULL)
                        yyval = list_create(yyvsp[0]);
                else
                        yyval = list_prepend(yyvsp[-1], yyvsp[0]);
          }
-#line 3197 "awkgram.c" /* yacc.c:1652  */
+#line 3201 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 76:
-#line 1308 "awkgram.y" /* yacc.c:1652  */
+#line 1312 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3203 "awkgram.c" /* yacc.c:1652  */
+#line 3207 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 77:
-#line 1313 "awkgram.y" /* yacc.c:1652  */
+#line 1317 "awkgram.y" /* yacc.c:1652  */
     {
                INSTRUCTION *casestmt = yyvsp[0];
                if (yyvsp[0] == NULL)
@@ -3216,11 +3220,11 @@ regular_print:
                bcfree(yyvsp[-2]);
                yyval = yyvsp[-4];
          }
-#line 3220 "awkgram.c" /* yacc.c:1652  */
+#line 3224 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 78:
-#line 1326 "awkgram.y" /* yacc.c:1652  */
+#line 1330 "awkgram.y" /* yacc.c:1652  */
     {
                INSTRUCTION *casestmt = yyvsp[0];
                if (yyvsp[0] == NULL)
@@ -3232,17 +3236,17 @@ regular_print:
                yyvsp[-3]->comment = yyvsp[-1];
                yyval = yyvsp[-3];
          }
-#line 3236 "awkgram.c" /* yacc.c:1652  */
+#line 3240 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 79:
-#line 1341 "awkgram.y" /* yacc.c:1652  */
+#line 1345 "awkgram.y" /* yacc.c:1652  */
     {  yyval = yyvsp[0]; }
-#line 3242 "awkgram.c" /* yacc.c:1652  */
+#line 3246 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 80:
-#line 1343 "awkgram.y" /* yacc.c:1652  */
+#line 1347 "awkgram.y" /* yacc.c:1652  */
     {
                NODE *n = yyvsp[0]->memory;
                (void) force_number(n);
@@ -3250,28 +3254,28 @@ regular_print:
                bcfree(yyvsp[-1]);
                yyval = yyvsp[0];
          }
-#line 3254 "awkgram.c" /* yacc.c:1652  */
+#line 3258 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 81:
-#line 1351 "awkgram.y" /* yacc.c:1652  */
+#line 1355 "awkgram.y" /* yacc.c:1652  */
     {
                NODE *n = yyvsp[0]->lasti->memory;
                bcfree(yyvsp[-1]);
                add_sign_to_num(n, '+');
                yyval = yyvsp[0];
          }
-#line 3265 "awkgram.c" /* yacc.c:1652  */
+#line 3269 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 82:
-#line 1358 "awkgram.y" /* yacc.c:1652  */
+#line 1362 "awkgram.y" /* yacc.c:1652  */
     {  yyval = yyvsp[0]; }
-#line 3271 "awkgram.c" /* yacc.c:1652  */
+#line 3275 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 83:
-#line 1360 "awkgram.y" /* yacc.c:1652  */
+#line 1364 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[0]->memory->type == Node_regex)
                        yyvsp[0]->opcode = Op_push_re;
@@ -3279,57 +3283,57 @@ regular_print:
                        yyvsp[0]->opcode = Op_push;
                yyval = yyvsp[0];
          }
-#line 3283 "awkgram.c" /* yacc.c:1652  */
+#line 3287 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 84:
-#line 1368 "awkgram.y" /* yacc.c:1652  */
+#line 1372 "awkgram.y" /* yacc.c:1652  */
     {
                assert((yyvsp[0]->memory->flags & REGEX) == REGEX);
                yyvsp[0]->opcode = Op_push_re;
                yyval = yyvsp[0];
          }
-#line 3293 "awkgram.c" /* yacc.c:1652  */
+#line 3297 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 85:
-#line 1377 "awkgram.y" /* yacc.c:1652  */
+#line 1381 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3299 "awkgram.c" /* yacc.c:1652  */
+#line 3303 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 86:
-#line 1379 "awkgram.y" /* yacc.c:1652  */
+#line 1383 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3305 "awkgram.c" /* yacc.c:1652  */
+#line 3309 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 88:
-#line 1389 "awkgram.y" /* yacc.c:1652  */
+#line 1393 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = yyvsp[-1];
          }
-#line 3313 "awkgram.c" /* yacc.c:1652  */
+#line 3317 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 89:
-#line 1396 "awkgram.y" /* yacc.c:1652  */
+#line 1400 "awkgram.y" /* yacc.c:1652  */
     {
                in_print = false;
                in_parens = 0;
                yyval = NULL;
          }
-#line 3323 "awkgram.c" /* yacc.c:1652  */
+#line 3327 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 90:
-#line 1401 "awkgram.y" /* yacc.c:1652  */
+#line 1405 "awkgram.y" /* yacc.c:1652  */
     { in_print = false; in_parens = 0; }
-#line 3329 "awkgram.c" /* yacc.c:1652  */
+#line 3333 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 91:
-#line 1402 "awkgram.y" /* yacc.c:1652  */
+#line 1406 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[-2]->redir_type == redirect_twoway
                        && yyvsp[0]->lasti->opcode == Op_K_getline_redir
@@ -3339,21 +3343,21 @@ regular_print:
                        lintwarn(_("concatenation as I/O `>' redirection target 
is ambiguous"));
                yyval = list_prepend(yyvsp[0], yyvsp[-2]);
          }
-#line 3343 "awkgram.c" /* yacc.c:1652  */
+#line 3347 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 92:
-#line 1415 "awkgram.y" /* yacc.c:1652  */
+#line 1419 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[-1] != NULL)
                        yyvsp[-5]->comment = yyvsp[-1];
                yyval = mk_condition(yyvsp[-3], yyvsp[-5], yyvsp[0], NULL, 
NULL);
          }
-#line 3353 "awkgram.c" /* yacc.c:1652  */
+#line 3357 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 93:
-#line 1422 "awkgram.y" /* yacc.c:1652  */
+#line 1426 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[-4] != NULL)
                        yyvsp[-8]->comment = yyvsp[-4];
@@ -3361,19 +3365,19 @@ regular_print:
                        yyvsp[-2]->comment = yyvsp[-1];
                yyval = mk_condition(yyvsp[-6], yyvsp[-8], yyvsp[-3], 
yyvsp[-2], yyvsp[0]);
          }
-#line 3365 "awkgram.c" /* yacc.c:1652  */
+#line 3369 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 94:
-#line 1433 "awkgram.y" /* yacc.c:1652  */
+#line 1437 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = yyvsp[0];
          }
-#line 3373 "awkgram.c" /* yacc.c:1652  */
+#line 3377 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 95:
-#line 1437 "awkgram.y" /* yacc.c:1652  */
+#line 1441 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[-1] != NULL && yyvsp[0] != NULL) {
                        if (yyvsp[-1]->memory->comment_type == EOL_COMMENT) {
@@ -3391,59 +3395,59 @@ regular_print:
                } else
                        yyval = NULL;
          }
-#line 3395 "awkgram.c" /* yacc.c:1652  */
+#line 3399 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 96:
-#line 1458 "awkgram.y" /* yacc.c:1652  */
+#line 1462 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3401 "awkgram.c" /* yacc.c:1652  */
+#line 3405 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 97:
-#line 1460 "awkgram.y" /* yacc.c:1652  */
+#line 1464 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3407 "awkgram.c" /* yacc.c:1652  */
+#line 3411 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 98:
-#line 1465 "awkgram.y" /* yacc.c:1652  */
+#line 1469 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3413 "awkgram.c" /* yacc.c:1652  */
+#line 3417 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 99:
-#line 1467 "awkgram.y" /* yacc.c:1652  */
+#line 1471 "awkgram.y" /* yacc.c:1652  */
     {
                bcfree(yyvsp[-1]);
                yyval = yyvsp[0];
          }
-#line 3422 "awkgram.c" /* yacc.c:1652  */
+#line 3426 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 100:
-#line 1475 "awkgram.y" /* yacc.c:1652  */
+#line 1479 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3428 "awkgram.c" /* yacc.c:1652  */
+#line 3432 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 101:
-#line 1477 "awkgram.y" /* yacc.c:1652  */
+#line 1481 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3434 "awkgram.c" /* yacc.c:1652  */
+#line 3438 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 102:
-#line 1482 "awkgram.y" /* yacc.c:1652  */
+#line 1486 "awkgram.y" /* yacc.c:1652  */
     {
                yyvsp[0]->param_count = 0;
                yyval = list_create(yyvsp[0]);
          }
-#line 3443 "awkgram.c" /* yacc.c:1652  */
+#line 3447 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 103:
-#line 1487 "awkgram.y" /* yacc.c:1652  */
+#line 1491 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[-2] != NULL && yyvsp[0] != NULL) {
                        yyvsp[0]->param_count = yyvsp[-2]->lasti->param_count + 
1;
@@ -3460,76 +3464,76 @@ regular_print:
                } else
                        yyval = NULL;
          }
-#line 3464 "awkgram.c" /* yacc.c:1652  */
+#line 3468 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 104:
-#line 1504 "awkgram.y" /* yacc.c:1652  */
+#line 1508 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3470 "awkgram.c" /* yacc.c:1652  */
+#line 3474 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 105:
-#line 1506 "awkgram.y" /* yacc.c:1652  */
+#line 1510 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[-1]; }
-#line 3476 "awkgram.c" /* yacc.c:1652  */
+#line 3480 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 106:
-#line 1508 "awkgram.y" /* yacc.c:1652  */
+#line 1512 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[-2]; }
-#line 3482 "awkgram.c" /* yacc.c:1652  */
+#line 3486 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 107:
-#line 1514 "awkgram.y" /* yacc.c:1652  */
+#line 1518 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3488 "awkgram.c" /* yacc.c:1652  */
+#line 3492 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 108:
-#line 1516 "awkgram.y" /* yacc.c:1652  */
+#line 1520 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3494 "awkgram.c" /* yacc.c:1652  */
+#line 3498 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 109:
-#line 1521 "awkgram.y" /* yacc.c:1652  */
+#line 1525 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3500 "awkgram.c" /* yacc.c:1652  */
+#line 3504 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 110:
-#line 1523 "awkgram.y" /* yacc.c:1652  */
+#line 1527 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3506 "awkgram.c" /* yacc.c:1652  */
+#line 3510 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 111:
-#line 1528 "awkgram.y" /* yacc.c:1652  */
+#line 1532 "awkgram.y" /* yacc.c:1652  */
     {  yyval = mk_expression_list(NULL, yyvsp[0]); }
-#line 3512 "awkgram.c" /* yacc.c:1652  */
+#line 3516 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 112:
-#line 1530 "awkgram.y" /* yacc.c:1652  */
+#line 1534 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[-1] != NULL)
                        yyvsp[-2]->lasti->comment = yyvsp[-1];
                yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
                yyerrok;
          }
-#line 3523 "awkgram.c" /* yacc.c:1652  */
+#line 3527 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 113:
-#line 1537 "awkgram.y" /* yacc.c:1652  */
+#line 1541 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3529 "awkgram.c" /* yacc.c:1652  */
+#line 3533 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 114:
-#line 1539 "awkgram.y" /* yacc.c:1652  */
+#line 1543 "awkgram.y" /* yacc.c:1652  */
     {
                /*
                 * Returning the expression list instead of NULL lets
@@ -3537,66 +3541,66 @@ regular_print:
                 */
                yyval = yyvsp[-1];
          }
-#line 3541 "awkgram.c" /* yacc.c:1652  */
+#line 3545 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 115:
-#line 1547 "awkgram.y" /* yacc.c:1652  */
+#line 1551 "awkgram.y" /* yacc.c:1652  */
     {
                /* Ditto */
                yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
          }
-#line 3550 "awkgram.c" /* yacc.c:1652  */
+#line 3554 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 116:
-#line 1552 "awkgram.y" /* yacc.c:1652  */
+#line 1556 "awkgram.y" /* yacc.c:1652  */
     {
                /* Ditto */
                if (yyvsp[-1] != NULL)
                        yyvsp[-2]->lasti->comment = yyvsp[-1];
                yyval = yyvsp[-2];
          }
-#line 3561 "awkgram.c" /* yacc.c:1652  */
+#line 3565 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 117:
-#line 1562 "awkgram.y" /* yacc.c:1652  */
+#line 1566 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3567 "awkgram.c" /* yacc.c:1652  */
+#line 3571 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 118:
-#line 1564 "awkgram.y" /* yacc.c:1652  */
+#line 1568 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3573 "awkgram.c" /* yacc.c:1652  */
+#line 3577 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 119:
-#line 1569 "awkgram.y" /* yacc.c:1652  */
+#line 1573 "awkgram.y" /* yacc.c:1652  */
     {  yyval = mk_expression_list(NULL, yyvsp[0]); }
-#line 3579 "awkgram.c" /* yacc.c:1652  */
+#line 3583 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 120:
-#line 1571 "awkgram.y" /* yacc.c:1652  */
+#line 1575 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[-1] != NULL)
                        yyvsp[-2]->lasti->comment = yyvsp[-1];
                yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
                yyerrok;
          }
-#line 3590 "awkgram.c" /* yacc.c:1652  */
+#line 3594 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 121:
-#line 1578 "awkgram.y" /* yacc.c:1652  */
+#line 1582 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 3596 "awkgram.c" /* yacc.c:1652  */
+#line 3600 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 122:
-#line 1580 "awkgram.y" /* yacc.c:1652  */
+#line 1584 "awkgram.y" /* yacc.c:1652  */
     {
                /*
                 * Returning the expression list instead of NULL lets
@@ -3604,74 +3608,74 @@ regular_print:
                 */
                yyval = yyvsp[-1];
          }
-#line 3608 "awkgram.c" /* yacc.c:1652  */
+#line 3612 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 123:
-#line 1588 "awkgram.y" /* yacc.c:1652  */
+#line 1592 "awkgram.y" /* yacc.c:1652  */
     {
                /* Ditto */
                yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
          }
-#line 3617 "awkgram.c" /* yacc.c:1652  */
+#line 3621 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 124:
-#line 1593 "awkgram.y" /* yacc.c:1652  */
+#line 1597 "awkgram.y" /* yacc.c:1652  */
     {
                /* Ditto */
                if (yyvsp[-1] != NULL)
                        yyvsp[-2]->comment = yyvsp[-1];
                yyval = yyvsp[-2];
          }
-#line 3628 "awkgram.c" /* yacc.c:1652  */
+#line 3632 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 125:
-#line 1602 "awkgram.y" /* yacc.c:1652  */
+#line 1606 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3634 "awkgram.c" /* yacc.c:1652  */
+#line 3638 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 126:
-#line 1603 "awkgram.y" /* yacc.c:1652  */
+#line 1607 "awkgram.y" /* yacc.c:1652  */
     { yyval = list_create(yyvsp[0]); }
-#line 3640 "awkgram.c" /* yacc.c:1652  */
+#line 3644 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 127:
-#line 1609 "awkgram.y" /* yacc.c:1652  */
+#line 1613 "awkgram.y" /* yacc.c:1652  */
     {
                if (do_lint && yyvsp[0]->lasti->opcode == Op_match_rec)
                        lintwarn_ln(yyvsp[-1]->source_line,
                                _("regular expression on right of assignment"));
                yyval = mk_assignment(yyvsp[-2], yyvsp[0], yyvsp[-1]);
          }
-#line 3651 "awkgram.c" /* yacc.c:1652  */
+#line 3655 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 128:
-#line 1616 "awkgram.y" /* yacc.c:1652  */
+#line 1620 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = mk_assignment(yyvsp[-2], list_create(yyvsp[0]), 
yyvsp[-1]);
          }
-#line 3659 "awkgram.c" /* yacc.c:1652  */
+#line 3663 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 129:
-#line 1620 "awkgram.y" /* yacc.c:1652  */
+#line 1624 "awkgram.y" /* yacc.c:1652  */
     {  yyval = mk_boolean(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3665 "awkgram.c" /* yacc.c:1652  */
+#line 3669 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 130:
-#line 1622 "awkgram.y" /* yacc.c:1652  */
+#line 1626 "awkgram.y" /* yacc.c:1652  */
     {  yyval = mk_boolean(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3671 "awkgram.c" /* yacc.c:1652  */
+#line 3675 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 131:
-#line 1624 "awkgram.y" /* yacc.c:1652  */
+#line 1628 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[-2]->lasti->opcode == Op_match_rec)
                        warning_ln(yyvsp[-1]->source_line,
@@ -3684,11 +3688,11 @@ regular_print:
                bcfree(yyvsp[0]);
                yyval = list_append(yyvsp[-2], yyvsp[-1]);
          }
-#line 3688 "awkgram.c" /* yacc.c:1652  */
+#line 3692 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 132:
-#line 1637 "awkgram.y" /* yacc.c:1652  */
+#line 1641 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[-2]->lasti->opcode == Op_match_rec)
                        warning_ln(yyvsp[-1]->source_line,
@@ -3705,11 +3709,11 @@ regular_print:
                        yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), 
yyvsp[-1]);
                }
          }
-#line 3709 "awkgram.c" /* yacc.c:1652  */
+#line 3713 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 133:
-#line 1654 "awkgram.y" /* yacc.c:1652  */
+#line 1658 "awkgram.y" /* yacc.c:1652  */
     {
                if (do_lint_old)
                        warning_ln(yyvsp[-1]->source_line,
@@ -3719,91 +3723,91 @@ regular_print:
                yyvsp[-1]->expr_count = 1;
                yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), yyvsp[-1]);
          }
-#line 3723 "awkgram.c" /* yacc.c:1652  */
+#line 3727 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 134:
-#line 1664 "awkgram.y" /* yacc.c:1652  */
+#line 1668 "awkgram.y" /* yacc.c:1652  */
     {
                if (do_lint && yyvsp[0]->lasti->opcode == Op_match_rec)
                        lintwarn_ln(yyvsp[-1]->source_line,
                                _("regular expression on right of comparison"));
                yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), yyvsp[-1]);
          }
-#line 3734 "awkgram.c" /* yacc.c:1652  */
+#line 3738 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 135:
-#line 1671 "awkgram.y" /* yacc.c:1652  */
+#line 1675 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_condition(yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], 
yyvsp[0]); }
-#line 3740 "awkgram.c" /* yacc.c:1652  */
+#line 3744 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 136:
-#line 1673 "awkgram.y" /* yacc.c:1652  */
+#line 1677 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3746 "awkgram.c" /* yacc.c:1652  */
+#line 3750 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 137:
-#line 1678 "awkgram.y" /* yacc.c:1652  */
+#line 1682 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3752 "awkgram.c" /* yacc.c:1652  */
+#line 3756 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 138:
-#line 1680 "awkgram.y" /* yacc.c:1652  */
+#line 1684 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3758 "awkgram.c" /* yacc.c:1652  */
+#line 3762 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 139:
-#line 1682 "awkgram.y" /* yacc.c:1652  */
+#line 1686 "awkgram.y" /* yacc.c:1652  */
     {
                yyvsp[0]->opcode = Op_assign_quotient;
                yyval = yyvsp[0];
          }
-#line 3767 "awkgram.c" /* yacc.c:1652  */
+#line 3771 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 140:
-#line 1690 "awkgram.y" /* yacc.c:1652  */
+#line 1694 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3773 "awkgram.c" /* yacc.c:1652  */
+#line 3777 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 141:
-#line 1692 "awkgram.y" /* yacc.c:1652  */
+#line 1696 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3779 "awkgram.c" /* yacc.c:1652  */
+#line 3783 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 142:
-#line 1697 "awkgram.y" /* yacc.c:1652  */
+#line 1701 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3785 "awkgram.c" /* yacc.c:1652  */
+#line 3789 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 143:
-#line 1699 "awkgram.y" /* yacc.c:1652  */
+#line 1703 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3791 "awkgram.c" /* yacc.c:1652  */
+#line 3795 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 144:
-#line 1704 "awkgram.y" /* yacc.c:1652  */
+#line 1708 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3797 "awkgram.c" /* yacc.c:1652  */
+#line 3801 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 145:
-#line 1706 "awkgram.y" /* yacc.c:1652  */
+#line 1710 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 3803 "awkgram.c" /* yacc.c:1652  */
+#line 3807 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 146:
-#line 1708 "awkgram.y" /* yacc.c:1652  */
+#line 1712 "awkgram.y" /* yacc.c:1652  */
     {
                int count = 2;
                bool is_simple_var = false;
@@ -3857,47 +3861,47 @@ regular_print:
                                max_args = count;
                }
          }
-#line 3861 "awkgram.c" /* yacc.c:1652  */
+#line 3865 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 148:
-#line 1767 "awkgram.y" /* yacc.c:1652  */
+#line 1771 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3867 "awkgram.c" /* yacc.c:1652  */
+#line 3871 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 149:
-#line 1769 "awkgram.y" /* yacc.c:1652  */
+#line 1773 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3873 "awkgram.c" /* yacc.c:1652  */
+#line 3877 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 150:
-#line 1771 "awkgram.y" /* yacc.c:1652  */
+#line 1775 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3879 "awkgram.c" /* yacc.c:1652  */
+#line 3883 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 151:
-#line 1773 "awkgram.y" /* yacc.c:1652  */
+#line 1777 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3885 "awkgram.c" /* yacc.c:1652  */
+#line 3889 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 152:
-#line 1775 "awkgram.y" /* yacc.c:1652  */
+#line 1779 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3891 "awkgram.c" /* yacc.c:1652  */
+#line 3895 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 153:
-#line 1777 "awkgram.y" /* yacc.c:1652  */
+#line 1781 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3897 "awkgram.c" /* yacc.c:1652  */
+#line 3901 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 154:
-#line 1779 "awkgram.y" /* yacc.c:1652  */
+#line 1783 "awkgram.y" /* yacc.c:1652  */
     {
                /*
                 * In BEGINFILE/ENDFILE, allow `getline [var] < file'
@@ -3911,29 +3915,29 @@ regular_print:
                                _("non-redirected `getline' undefined inside 
END action"));
                yyval = mk_getline(yyvsp[-2], yyvsp[-1], yyvsp[0], 
redirect_input);
          }
-#line 3915 "awkgram.c" /* yacc.c:1652  */
+#line 3919 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 155:
-#line 1793 "awkgram.y" /* yacc.c:1652  */
+#line 1797 "awkgram.y" /* yacc.c:1652  */
     {
                yyvsp[0]->opcode = Op_postincrement;
                yyval = mk_assignment(yyvsp[-1], NULL, yyvsp[0]);
          }
-#line 3924 "awkgram.c" /* yacc.c:1652  */
+#line 3928 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 156:
-#line 1798 "awkgram.y" /* yacc.c:1652  */
+#line 1802 "awkgram.y" /* yacc.c:1652  */
     {
                yyvsp[0]->opcode = Op_postdecrement;
                yyval = mk_assignment(yyvsp[-1], NULL, yyvsp[0]);
          }
-#line 3933 "awkgram.c" /* yacc.c:1652  */
+#line 3937 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 157:
-#line 1803 "awkgram.y" /* yacc.c:1652  */
+#line 1807 "awkgram.y" /* yacc.c:1652  */
     {
                if (do_lint_old) {
                    warning_ln(yyvsp[-1]->source_line,
@@ -3953,64 +3957,64 @@ regular_print:
                        yyval = list_append(list_merge(t, yyvsp[0]), yyvsp[-1]);
                }
          }
-#line 3957 "awkgram.c" /* yacc.c:1652  */
+#line 3961 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 158:
-#line 1828 "awkgram.y" /* yacc.c:1652  */
+#line 1832 "awkgram.y" /* yacc.c:1652  */
     {
                  yyval = mk_getline(yyvsp[-1], yyvsp[0], yyvsp[-3], 
yyvsp[-2]->redir_type);
                  bcfree(yyvsp[-2]);
                }
-#line 3966 "awkgram.c" /* yacc.c:1652  */
+#line 3970 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 159:
-#line 1834 "awkgram.y" /* yacc.c:1652  */
+#line 1838 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3972 "awkgram.c" /* yacc.c:1652  */
+#line 3976 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 160:
-#line 1836 "awkgram.y" /* yacc.c:1652  */
+#line 1840 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3978 "awkgram.c" /* yacc.c:1652  */
+#line 3982 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 161:
-#line 1838 "awkgram.y" /* yacc.c:1652  */
+#line 1842 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3984 "awkgram.c" /* yacc.c:1652  */
+#line 3988 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 162:
-#line 1840 "awkgram.y" /* yacc.c:1652  */
+#line 1844 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3990 "awkgram.c" /* yacc.c:1652  */
+#line 3994 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 163:
-#line 1842 "awkgram.y" /* yacc.c:1652  */
+#line 1846 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 3996 "awkgram.c" /* yacc.c:1652  */
+#line 4000 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 164:
-#line 1844 "awkgram.y" /* yacc.c:1652  */
+#line 1848 "awkgram.y" /* yacc.c:1652  */
     { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
-#line 4002 "awkgram.c" /* yacc.c:1652  */
+#line 4006 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 165:
-#line 1849 "awkgram.y" /* yacc.c:1652  */
+#line 1853 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = list_create(yyvsp[0]);
          }
-#line 4010 "awkgram.c" /* yacc.c:1652  */
+#line 4014 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 166:
-#line 1853 "awkgram.y" /* yacc.c:1652  */
+#line 1857 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[0]->opcode == Op_match_rec) {
                        yyvsp[0]->opcode = Op_nomatch;
@@ -4042,11 +4046,11 @@ regular_print:
                        }
                }
           }
-#line 4046 "awkgram.c" /* yacc.c:1652  */
+#line 4050 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 167:
-#line 1885 "awkgram.y" /* yacc.c:1652  */
+#line 1889 "awkgram.y" /* yacc.c:1652  */
     {
                // Always include. Allows us to lint warn on
                // print "foo" > "bar" 1
@@ -4054,31 +4058,31 @@ regular_print:
                // print "foo" > ("bar" 1)
                yyval = list_append(yyvsp[-1], bcalloc(Op_parens, 1, 
sourceline));
          }
-#line 4058 "awkgram.c" /* yacc.c:1652  */
+#line 4062 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 168:
-#line 1893 "awkgram.y" /* yacc.c:1652  */
+#line 1897 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = snode(yyvsp[-1], yyvsp[-3]);
                if (yyval == NULL)
                        YYABORT;
          }
-#line 4068 "awkgram.c" /* yacc.c:1652  */
+#line 4072 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 169:
-#line 1899 "awkgram.y" /* yacc.c:1652  */
+#line 1903 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = snode(yyvsp[-1], yyvsp[-3]);
                if (yyval == NULL)
                        YYABORT;
          }
-#line 4078 "awkgram.c" /* yacc.c:1652  */
+#line 4082 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 170:
-#line 1905 "awkgram.y" /* yacc.c:1652  */
+#line 1909 "awkgram.y" /* yacc.c:1652  */
     {
                static bool warned = false;
 
@@ -4091,45 +4095,45 @@ regular_print:
                if (yyval == NULL)
                        YYABORT;
          }
-#line 4095 "awkgram.c" /* yacc.c:1652  */
+#line 4099 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 173:
-#line 1920 "awkgram.y" /* yacc.c:1652  */
+#line 1924 "awkgram.y" /* yacc.c:1652  */
     {
                yyvsp[-1]->opcode = Op_preincrement;
                yyval = mk_assignment(yyvsp[0], NULL, yyvsp[-1]);
          }
-#line 4104 "awkgram.c" /* yacc.c:1652  */
+#line 4108 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 174:
-#line 1925 "awkgram.y" /* yacc.c:1652  */
+#line 1929 "awkgram.y" /* yacc.c:1652  */
     {
                yyvsp[-1]->opcode = Op_predecrement;
                yyval = mk_assignment(yyvsp[0], NULL, yyvsp[-1]);
          }
-#line 4113 "awkgram.c" /* yacc.c:1652  */
+#line 4117 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 175:
-#line 1930 "awkgram.y" /* yacc.c:1652  */
+#line 1934 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = list_create(yyvsp[0]);
          }
-#line 4121 "awkgram.c" /* yacc.c:1652  */
+#line 4125 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 176:
-#line 1934 "awkgram.y" /* yacc.c:1652  */
+#line 1938 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = list_create(yyvsp[0]);
          }
-#line 4129 "awkgram.c" /* yacc.c:1652  */
+#line 4133 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 177:
-#line 1938 "awkgram.y" /* yacc.c:1652  */
+#line 1942 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[0]->lasti->opcode == Op_push_i
                        && (yyvsp[0]->lasti->memory->flags & STRING) == 0
@@ -4144,11 +4148,11 @@ regular_print:
                        yyval = list_append(yyvsp[0], yyvsp[-1]);
                }
          }
-#line 4148 "awkgram.c" /* yacc.c:1652  */
+#line 4152 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 178:
-#line 1953 "awkgram.y" /* yacc.c:1652  */
+#line 1957 "awkgram.y" /* yacc.c:1652  */
     {
                if (yyvsp[0]->lasti->opcode == Op_push_i
                        && (yyvsp[0]->lasti->memory->flags & STRING) == 0
@@ -4166,20 +4170,20 @@ regular_print:
                        yyval = list_append(yyvsp[0], yyvsp[-1]);
                }
          }
-#line 4170 "awkgram.c" /* yacc.c:1652  */
+#line 4174 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 179:
-#line 1974 "awkgram.y" /* yacc.c:1652  */
+#line 1978 "awkgram.y" /* yacc.c:1652  */
     {
                func_use(yyvsp[0]->lasti->func_name, FUNC_USE);
                yyval = yyvsp[0];
          }
-#line 4179 "awkgram.c" /* yacc.c:1652  */
+#line 4183 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 180:
-#line 1979 "awkgram.y" /* yacc.c:1652  */
+#line 1983 "awkgram.y" /* yacc.c:1652  */
     {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@ -4213,11 +4217,11 @@ regular_print:
                yyval = list_prepend(yyvsp[0], t);
                at_seen = false;
          }
-#line 4217 "awkgram.c" /* yacc.c:1652  */
+#line 4221 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 181:
-#line 2016 "awkgram.y" /* yacc.c:1652  */
+#line 2020 "awkgram.y" /* yacc.c:1652  */
     {
                NODE *n;
                char *name = yyvsp[-3]->func_name;
@@ -4250,49 +4254,49 @@ regular_print:
                        yyval = list_append(t, yyvsp[-3]);
                }
          }
-#line 4254 "awkgram.c" /* yacc.c:1652  */
+#line 4258 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 182:
-#line 2052 "awkgram.y" /* yacc.c:1652  */
+#line 2056 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 4260 "awkgram.c" /* yacc.c:1652  */
+#line 4264 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 183:
-#line 2054 "awkgram.y" /* yacc.c:1652  */
+#line 2058 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 4266 "awkgram.c" /* yacc.c:1652  */
+#line 4270 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 184:
-#line 2059 "awkgram.y" /* yacc.c:1652  */
+#line 2063 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 4272 "awkgram.c" /* yacc.c:1652  */
+#line 4276 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 185:
-#line 2061 "awkgram.y" /* yacc.c:1652  */
+#line 2065 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[-1]; }
-#line 4278 "awkgram.c" /* yacc.c:1652  */
+#line 4282 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 186:
-#line 2066 "awkgram.y" /* yacc.c:1652  */
+#line 2070 "awkgram.y" /* yacc.c:1652  */
     {  yyval = yyvsp[0]; }
-#line 4284 "awkgram.c" /* yacc.c:1652  */
+#line 4288 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 187:
-#line 2068 "awkgram.y" /* yacc.c:1652  */
+#line 2072 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = list_merge(yyvsp[-1], yyvsp[0]);
          }
-#line 4292 "awkgram.c" /* yacc.c:1652  */
+#line 4296 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 188:
-#line 2075 "awkgram.y" /* yacc.c:1652  */
+#line 2079 "awkgram.y" /* yacc.c:1652  */
     {
                INSTRUCTION *ip = yyvsp[0]->lasti;
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@ -4306,11 +4310,11 @@ regular_print:
                sub_counter++;  /* count # of dimensions */
                yyval = yyvsp[0];
          }
-#line 4310 "awkgram.c" /* yacc.c:1652  */
+#line 4314 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 189:
-#line 2092 "awkgram.y" /* yacc.c:1652  */
+#line 2096 "awkgram.y" /* yacc.c:1652  */
     {
                INSTRUCTION *t = yyvsp[-1];
                if (yyvsp[-1] == NULL) {
@@ -4324,41 +4328,41 @@ regular_print:
                        yyvsp[0]->sub_count = count_expressions(&t, false);
                yyval = list_append(t, yyvsp[0]);
          }
-#line 4328 "awkgram.c" /* yacc.c:1652  */
+#line 4332 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 190:
-#line 2109 "awkgram.y" /* yacc.c:1652  */
+#line 2113 "awkgram.y" /* yacc.c:1652  */
     {  yyval = yyvsp[0]; }
-#line 4334 "awkgram.c" /* yacc.c:1652  */
+#line 4338 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 191:
-#line 2111 "awkgram.y" /* yacc.c:1652  */
+#line 2115 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = list_merge(yyvsp[-1], yyvsp[0]);
          }
-#line 4342 "awkgram.c" /* yacc.c:1652  */
+#line 4346 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 192:
-#line 2118 "awkgram.y" /* yacc.c:1652  */
+#line 2122 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[-1]; }
-#line 4348 "awkgram.c" /* yacc.c:1652  */
+#line 4352 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 193:
-#line 2123 "awkgram.y" /* yacc.c:1652  */
+#line 2127 "awkgram.y" /* yacc.c:1652  */
     {
                yyvsp[0]->opcode = Op_push;
                yyvsp[0]->memory = variable(yyvsp[0]->source_line, 
yyvsp[0]->lextok, Node_var_new);
                yyval = list_create(yyvsp[0]);
          }
-#line 4358 "awkgram.c" /* yacc.c:1652  */
+#line 4362 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 194:
-#line 2129 "awkgram.y" /* yacc.c:1652  */
+#line 2133 "awkgram.y" /* yacc.c:1652  */
     {
                char *arr = yyvsp[-1]->lextok;
 
@@ -4366,11 +4370,11 @@ regular_print:
                yyvsp[-1]->opcode = Op_push_array;
                yyval = list_prepend(yyvsp[0], yyvsp[-1]);
          }
-#line 4370 "awkgram.c" /* yacc.c:1652  */
+#line 4374 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 195:
-#line 2140 "awkgram.y" /* yacc.c:1652  */
+#line 2144 "awkgram.y" /* yacc.c:1652  */
     {
                INSTRUCTION *ip = yyvsp[0]->nexti;
                if (ip->opcode == Op_push
@@ -4382,85 +4386,85 @@ regular_print:
                } else
                        yyval = yyvsp[0];
          }
-#line 4386 "awkgram.c" /* yacc.c:1652  */
+#line 4390 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 196:
-#line 2152 "awkgram.y" /* yacc.c:1652  */
+#line 2156 "awkgram.y" /* yacc.c:1652  */
     {
                yyval = list_append(yyvsp[-1], yyvsp[-2]);
                if (yyvsp[0] != NULL)
                        mk_assignment(yyvsp[-1], NULL, yyvsp[0]);
          }
-#line 4396 "awkgram.c" /* yacc.c:1652  */
+#line 4400 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 197:
-#line 2161 "awkgram.y" /* yacc.c:1652  */
+#line 2165 "awkgram.y" /* yacc.c:1652  */
     {
                yyvsp[0]->opcode = Op_postincrement;
          }
-#line 4404 "awkgram.c" /* yacc.c:1652  */
+#line 4408 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 198:
-#line 2165 "awkgram.y" /* yacc.c:1652  */
+#line 2169 "awkgram.y" /* yacc.c:1652  */
     {
                yyvsp[0]->opcode = Op_postdecrement;
          }
-#line 4412 "awkgram.c" /* yacc.c:1652  */
+#line 4416 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 199:
-#line 2169 "awkgram.y" /* yacc.c:1652  */
+#line 2173 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 4418 "awkgram.c" /* yacc.c:1652  */
+#line 4422 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 200:
-#line 2173 "awkgram.y" /* yacc.c:1652  */
+#line 2177 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; }
-#line 4424 "awkgram.c" /* yacc.c:1652  */
+#line 4428 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 201:
-#line 2177 "awkgram.y" /* yacc.c:1652  */
+#line 2181 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; yyerrok; }
-#line 4430 "awkgram.c" /* yacc.c:1652  */
+#line 4434 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 202:
-#line 2181 "awkgram.y" /* yacc.c:1652  */
+#line 2185 "awkgram.y" /* yacc.c:1652  */
     { yyerrok; }
-#line 4436 "awkgram.c" /* yacc.c:1652  */
+#line 4440 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 203:
-#line 2186 "awkgram.y" /* yacc.c:1652  */
+#line 2190 "awkgram.y" /* yacc.c:1652  */
     { yyval = NULL; }
-#line 4442 "awkgram.c" /* yacc.c:1652  */
+#line 4446 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 205:
-#line 2191 "awkgram.y" /* yacc.c:1652  */
+#line 2195 "awkgram.y" /* yacc.c:1652  */
     { yyerrok; }
-#line 4448 "awkgram.c" /* yacc.c:1652  */
+#line 4452 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 206:
-#line 2195 "awkgram.y" /* yacc.c:1652  */
+#line 2199 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; yyerrok; }
-#line 4454 "awkgram.c" /* yacc.c:1652  */
+#line 4458 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 207:
-#line 2199 "awkgram.y" /* yacc.c:1652  */
+#line 2203 "awkgram.y" /* yacc.c:1652  */
     { yyval = yyvsp[0]; yyerrok; }
-#line 4460 "awkgram.c" /* yacc.c:1652  */
+#line 4464 "awkgram.c" /* yacc.c:1652  */
     break;
 
 
-#line 4464 "awkgram.c" /* yacc.c:1652  */
+#line 4468 "awkgram.c" /* yacc.c:1652  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4691,7 +4695,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 2201 "awkgram.y" /* yacc.c:1918  */
+#line 2205 "awkgram.y" /* yacc.c:1918  */
 
 
 struct token {
diff --git a/awkgram.y b/awkgram.y
index 720efce..9f2b4d3 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -1190,8 +1190,10 @@ simple_stmt
                         */
 regular_print:
                        if ($4 == NULL) {               /* no redirection */
-                               if ($3 == NULL) {       /* printf without arg */
+                               if ($3 == NULL) {       /* print/printf without 
arg */
                                        $1->expr_count = 0;
+                                       if ($1->opcode == Op_K_print)
+                                               $1->opcode = Op_K_print_rec;
                                        $1->redir_type = redirect_none;
                                        $$ = list_create($1);
                                } else {
@@ -1208,6 +1210,8 @@ regular_print:
                                bcfree(ip);
                                if ($3 == NULL) {
                                        $1->expr_count = 0;
+                                       if ($1->opcode == Op_K_print)
+                                               $1->opcode = Op_K_print_rec;
                                        $$ = list_append($4, $1);
                                } else {
                                        INSTRUCTION *t = $3;
diff --git a/test/ChangeLog b/test/ChangeLog
index 591bb69..5b6fd3b 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,9 @@
+2019-02-15         Arnold D. Robbins     <address@hidden>
+
+       * profile11.ok: Updated after code fix.
+       * Makefile.am (EXTRA_DIST): Add profile12 files, new test.
+       * profile12.awk, profile12.in, profil12.ok: New files.
+
 2019-02-05  Juan Manuel Guerrero  <address@hidden>
 
        * Makefile.am (EXPECTED_FAIL_DJGPP): Add randtest and symtab6
diff --git a/test/Makefile.am b/test/Makefile.am
index 9f1ca54..19f1d68 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -924,6 +924,9 @@ EXTRA_DIST = \
        profile10.ok \
        profile11.awk \
        profile11.ok \
+       profile12.awk \
+       profile12.in \
+       profile12.ok \
        prt1eval.awk \
        prt1eval.ok \
        prtoeval.awk \
@@ -1334,7 +1337,7 @@ GAWK_EXT_TESTS = \
        nsbad nsbad_cmd nsforloop nsfuncrecurse nsindirect1 nsindirect2 nsprof1 
nsprof2 \
        patsplit posix printfbad1 printfbad2 printfbad3 printfbad4 printhuge \
        procinfs profile0 profile1 profile2 profile3 profile4 profile5 profile6 
\
-       profile7 profile8 profile9 profile10 profile11 pty1 pty2 \
+       profile7 profile8 profile9 profile10 profile11 profile12 pty1 pty2 \
        rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline 
rsglstdin \
        rsstart1 rsstart2 rsstart3 rstest6 \
        shadow shadowbuiltin sortfor sortfor2 sortu sourcesplit 
split_after_fpat \
@@ -1947,6 +1950,12 @@ profile7:
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+profile12:
+       @echo $@
+       @$(AWK) address@hidden -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@
+       @rm address@hidden
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 mpfrieee:
        @echo $@
        @$(AWK) -M -vPREC=double -f "$(srcdir)"/address@hidden > _$@ 2>&1 || 
echo EXIT CODE: $$? >> _$@
diff --git a/test/Makefile.in b/test/Makefile.in
index 2e17d9e..502533a 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -1182,6 +1182,9 @@ EXTRA_DIST = \
        profile10.ok \
        profile11.awk \
        profile11.ok \
+       profile12.awk \
+       profile12.in \
+       profile12.ok \
        prt1eval.awk \
        prt1eval.ok \
        prtoeval.awk \
@@ -1592,7 +1595,7 @@ GAWK_EXT_TESTS = \
        nsbad nsbad_cmd nsforloop nsfuncrecurse nsindirect1 nsindirect2 nsprof1 
nsprof2 \
        patsplit posix printfbad1 printfbad2 printfbad3 printfbad4 printhuge \
        procinfs profile0 profile1 profile2 profile3 profile4 profile5 profile6 
\
-       profile7 profile8 profile9 profile10 profile11 pty1 pty2 \
+       profile7 profile8 profile9 profile10 profile11 profile12 pty1 pty2 \
        rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline 
rsglstdin \
        rsstart1 rsstart2 rsstart3 rstest6 \
        shadow shadowbuiltin sortfor sortfor2 sortu sourcesplit 
split_after_fpat \
@@ -2396,6 +2399,12 @@ profile7:
        @sed 1,2d < address@hidden > _$@; rm address@hidden
        @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
 
+profile12:
+       @echo $@
+       @$(AWK) address@hidden -f "$(srcdir)"/address@hidden 
"$(srcdir)"/address@hidden > _$@ 2>&1 || echo EXIT CODE: $$? >> _$@
+       @rm address@hidden
+       @-$(CMP) "$(srcdir)"/address@hidden _$@ && rm -f _$@
+
 mpfrieee:
        @echo $@
        @$(AWK) -M -vPREC=double -f "$(srcdir)"/address@hidden > _$@ 2>&1 || 
echo EXIT CODE: $$? >> _$@
diff --git a/test/profile11.ok b/test/profile11.ok
index 77f4dd7..be02737 100644
--- a/test/profile11.ok
+++ b/test/profile11.ok
@@ -301,7 +301,7 @@ BEGIN {
 
 # range comment c
 /foo/, /bar/ {
-       print 
+       print
 }
 
 
diff --git a/test/profile12.awk b/test/profile12.awk
new file mode 100644
index 0000000..6664e68
--- /dev/null
+++ b/test/profile12.awk
@@ -0,0 +1,3 @@
+NR == 1
+NR == 2 { print }
+NR == 3 { print $0 }
diff --git a/test/profile12.in b/test/profile12.in
new file mode 100644
index 0000000..e579141
--- /dev/null
+++ b/test/profile12.in
@@ -0,0 +1,4 @@
+Line 1
+Line 2
+Line 3
+Line 4
diff --git a/test/profile12.ok b/test/profile12.ok
new file mode 100644
index 0000000..6ad36e5
--- /dev/null
+++ b/test/profile12.ok
@@ -0,0 +1,3 @@
+Line 1
+Line 2
+Line 3

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

commit 83b59da8d4e33804bc7679446243104a76c4ded8
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Feb 15 11:19:01 2019 +0200

    Typo fix in extension/inplace.c.

diff --git a/extension/ChangeLog b/extension/ChangeLog
index 35b8297..ddce96a 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,9 @@
+2019-02-15         Arnold D. Robbins     <address@hidden>
+
+       * inplace.c (do_inplace_end): Fix error message to use inplace::end.
+       Thanks to Jean-Philippe Guerard
+       <address@hidden> for the report.
+
 2018-12-18         Arnold D. Robbins     <address@hidden>
 
        * Makefile.am (distclean-local): Remove .deps directory.
diff --git a/extension/inplace.c b/extension/inplace.c
index d2a0411..dea65f6 100644
--- a/extension/inplace.c
+++ b/extension/inplace.c
@@ -244,7 +244,7 @@ do_inplace_end(int nargs, awk_value_t *result, struct 
awk_ext_func *unused)
                        filename.str_value.str, suffix.str_value.str);
                unlink(bakname); /* if backup file exists already, remove it */
                if (link(filename.str_value.str, bakname) < 0)
-                       fatal(ext_id, _("inplace_end: link(`%s', `%s') failed 
(%s)"),
+                       fatal(ext_id, _("inplace::end: link(`%s', `%s') failed 
(%s)"),
                                filename.str_value.str, bakname, 
strerror(errno));
                gawk_free(bakname);
        }

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

commit 14f533360b22c47012f8fbabdcc42897f3a095e8
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Feb 15 11:18:31 2019 +0200

    Update fr.po and pt_BR.po.

diff --git a/po/ChangeLog b/po/ChangeLog
index d58ee0d..ff2b51a 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,7 @@
+2019-02-15         Arnold D. Robbins     <address@hidden>
+
+       * fr.po, pt_BR.po: Updated.
+
 2018-12-18         Arnold D. Robbins     <address@hidden>
 
        * it.po: Updated.
diff --git a/po/fr.po b/po/fr.po
index 4320cc6..b37a160 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -3,16 +3,15 @@
 # Ce fichier est distribué sous la même licence que le paquet gawk.
 # Copyright © 2004 Free Software Foundation, Inc.
 # Michel Robitaille <address@hidden>, 1996-2005.
-# Jean-Philippe Guérard <address@hidden>, 2010-2018.
+# Jean-Philippe Guérard <address@hidden>, 2010-2019.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gawk 4.2.0e\n"
+"Project-Id-Version: gawk 4.2.62\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2019-01-26 21:24+0200\n"
-"PO-Revision-Date: 2018-01-29 23:26+0100\n"
-"Last-Translator: Jean-Philippe Guérard <address@hidden"
-"org>\n"
+"POT-Creation-Date: 2019-02-11 21:00+0200\n"
+"PO-Revision-Date: 2019-02-13 22:40+0100\n"
+"Last-Translator: Jean-Philippe Guérard <address@hidden>\n"
 "Language-Team: French <address@hidden>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
@@ -116,433 +115,408 @@ msgstr "chaque règle doit avoir au moins une partie 
motif ou action"
 msgid "old awk does not support multiple `BEGIN' or `END' rules"
 msgstr "l'ancien awk ne permet pas les « BEGIN » ou « END » multiples"
 
-#: awkgram.y:497
+#: awkgram.y:483
 #, c-format
 msgid "`%s' is a built-in function, it cannot be redefined"
 msgstr "« %s » est une fonction interne, elle ne peut être redéfinie"
 
-#: awkgram.y:561
+#: awkgram.y:547
 msgid "regexp constant `//' looks like a C++ comment, but is not"
 msgstr "l'expression rationnelle constante « // » n'est pas un commentaire 
C++"
 
-#: awkgram.y:565
+#: awkgram.y:551
 #, c-format
 msgid "regexp constant `/%s/' looks like a C comment, but is not"
 msgstr "l'expression rationnelle constante « /%s/ » n'est pas un 
commentaire C"
 
-#: awkgram.y:692
+#: awkgram.y:678
 #, c-format
 msgid "duplicate case values in switch body: %s"
 msgstr "le corps du switch comporte des cas répétés : %s"
 
-#: awkgram.y:713
+#: awkgram.y:699
 msgid "duplicate `default' detected in switch body"
 msgstr "plusieurs « default » ont été détectés dans le corps du switch"
 
-#: awkgram.y:1048 awkgram.y:4461
+#: awkgram.y:1034 awkgram.y:4447
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "« break » est interdit en dehors d'une boucle ou d'un switch"
 
-#: awkgram.y:1058 awkgram.y:4453
+#: awkgram.y:1044 awkgram.y:4439
 msgid "`continue' is not allowed outside a loop"
 msgstr "« continue » est interdit en dehors d'une boucle ou d'un switch"
 
-#: awkgram.y:1069
+#: awkgram.y:1055
 #, c-format
 msgid "`next' used in %s action"
 msgstr "« next » est utilisé dans l'action %s"
 
-#: awkgram.y:1080
+#: awkgram.y:1066
 #, c-format
 msgid "`nextfile' used in %s action"
 msgstr "« nextfile » est utilisé dans l'action %s"
 
-#: awkgram.y:1108
+#: awkgram.y:1094
 msgid "`return' used outside function context"
 msgstr "« return » est utilisé hors du contexte d'une fonction"
 
-#: awkgram.y:1178
+#: awkgram.y:1164
 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr ""
-"dans BEGIN ou END, un « print » seul devrait sans doute être un « 
print "
-"\"\" »"
+msgstr "dans BEGIN ou END, un « print » seul devrait sans doute être un 
« print \"\" »"
 
-#: awkgram.y:1244 awkgram.y:1293
+#: awkgram.y:1230 awkgram.y:1279
 msgid "`delete' is not allowed with SYMTAB"
 msgstr "« delete » est interdit sur SYMTAB"
 
-#: awkgram.y:1246 awkgram.y:1295
+#: awkgram.y:1232 awkgram.y:1281
 msgid "`delete' is not allowed with FUNCTAB"
 msgstr "« delete » est interdit sur FUNCTAB"
 
-#: awkgram.y:1280 awkgram.y:1284
+#: awkgram.y:1266 awkgram.y:1270
 msgid "`delete(array)' is a non-portable tawk extension"
 msgstr "« delete(array) » est une extension non portable de tawk"
 
-#: awkgram.y:1420
+#: awkgram.y:1406
 msgid "multistage two-way pipelines don't work"
 msgstr "impossible d'utiliser des tubes bidirectionnels en série"
 
-#: awkgram.y:1422
+#: awkgram.y:1408
 msgid "concatenation as I/O `>' redirection target is ambiguous"
-msgstr ""
+msgstr "concaténation ambiguë comme cible d'une redirection d'E/S (« > 
»)"
 
-#: awkgram.y:1626
+#: awkgram.y:1612
 msgid "regular expression on right of assignment"
 msgstr "expression rationnelle à droite d'une affectation"
 
-#: awkgram.y:1641 awkgram.y:1654
+#: awkgram.y:1627 awkgram.y:1640
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "expression rationnelle à gauche d'un opérateur « ~ » ou « !~ 
»"
 
-#: awkgram.y:1671 awkgram.y:1820
+#: awkgram.y:1657 awkgram.y:1806
 msgid "old awk does not support the keyword `in' except after `for'"
 msgstr "l'ancien awk n'autorise le mot-clef « in » qu'après « for »"
 
-#: awkgram.y:1681
+#: awkgram.y:1667
 msgid "regular expression on right of comparison"
 msgstr "expression rationnelle à droite d'une comparaison"
 
-#: awkgram.y:1800
+#: awkgram.y:1786
 #, c-format
 msgid "non-redirected `getline' invalid inside `%s' rule"
 msgstr "un « getline » non redirigé n'est pas valide dans une règle « 
%s »"
 
-#: awkgram.y:1803
+#: awkgram.y:1789
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "dans une action END, un « getline » non redirigé n'est pas 
défini"
 
-#: awkgram.y:1822
+#: awkgram.y:1808
 msgid "old awk does not support multidimensional arrays"
 msgstr "l'ancien awk ne dispose pas des tableaux multidimensionnels"
 
-#: awkgram.y:1925
+#: awkgram.y:1911
 msgid "call of `length' without parentheses is not portable"
 msgstr "l'appel de « length » sans parenthèses n'est pas portable"
 
-#: awkgram.y:1999
+#: awkgram.y:1985
 msgid "indirect function calls are a gawk extension"
 msgstr "les appels indirects de fonctions sont une extension gawk"
 
-#: awkgram.y:2012
+#: awkgram.y:1998
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
-msgstr ""
-"impossible d'utiliser la variable spéciale « %s » pour un appel indirect 
de "
-"fonction"
+msgstr "impossible d'utiliser la variable spéciale « %s » pour un appel 
indirect de fonction"
 
-#: awkgram.y:2045
+#: awkgram.y:2031
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "tentative d'appel de « %s » comme fonction"
 
-#: awkgram.y:2110
+#: awkgram.y:2096
 msgid "invalid subscript expression"
 msgstr "expression indice incorrecte"
 
-#: awkgram.y:2483 awkgram.y:2503 gawkapi.c:273 gawkapi.c:290 msg.c:130
+#: awkgram.y:2469 awkgram.y:2489 gawkapi.c:273 gawkapi.c:290 msg.c:130
 msgid "warning: "
 msgstr "avertissement : "
 
-#: awkgram.y:2501 gawkapi.c:245 gawkapi.c:288 msg.c:162
+#: awkgram.y:2487 gawkapi.c:245 gawkapi.c:288 msg.c:162
 msgid "fatal: "
 msgstr "fatal : "
 
-#: awkgram.y:2554
+#: awkgram.y:2540
 msgid "unexpected newline or end of string"
 msgstr "fin de chaîne ou passage à la ligne inattendu"
 
-#: awkgram.y:2575
-msgid ""
-"source files / command-line arguments must contain complete functions or "
-"rules"
-msgstr ""
+#: awkgram.y:2561
+msgid "source files / command-line arguments must contain complete functions 
or rules"
+msgstr "fichiers sources et arguments doivent contenir des règles et 
fonctions complètes"
 
-#: awkgram.y:2855 awkgram.y:2933 awkgram.y:3171 debug.c:531 debug.c:547
-#: debug.c:2824 debug.c:5193
+#: awkgram.y:2841 awkgram.y:2919 awkgram.y:3157 debug.c:536 debug.c:552
+#: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "impossible d'ouvrir le fichier source « %s » en lecture (%s)"
 
-#: awkgram.y:2856 awkgram.y:2993
+#: awkgram.y:2842 awkgram.y:2979
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
 msgstr "impossible d'ouvrir la bibliothèque partagée « %s » en lecture 
(%s)"
 
-#: awkgram.y:2858 awkgram.y:2934 awkgram.y:2994 builtin.c:149 debug.c:5344
+#: awkgram.y:2844 awkgram.y:2920 awkgram.y:2980 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "raison inconnue"
 
-#: awkgram.y:2867 awkgram.y:2891
+#: awkgram.y:2853 awkgram.y:2877
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr "impossible d'inclure « %s » et de l'utiliser comme extension"
 
-#: awkgram.y:2880
+#: awkgram.y:2866
 #, c-format
 msgid "already included source file `%s'"
 msgstr "le fichier source « %s » a déjà été intégré"
 
-#: awkgram.y:2881
+#: awkgram.y:2867
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "la bibliothèque partagée « %s » est déjà chargée"
 
-#: awkgram.y:2918
+#: awkgram.y:2904
 msgid "@include is a gawk extension"
 msgstr "@include est une extension gawk"
 
-#: awkgram.y:2924
+#: awkgram.y:2910
 msgid "empty filename after @include"
 msgstr "Le nom de fichier après @include est vide"
 
-#: awkgram.y:2973
+#: awkgram.y:2959
 msgid "@load is a gawk extension"
 msgstr "@load est une extension gawk"
 
-#: awkgram.y:2980
+#: awkgram.y:2966
 msgid "empty filename after @load"
 msgstr "Le nom de fichier après @load est vide"
 
-#: awkgram.y:3123
+#: awkgram.y:3109
 msgid "empty program text on command line"
 msgstr "le programme indiqué en ligne de commande est vide"
 
-#: awkgram.y:3238
+#: awkgram.y:3224
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "impossible de lire le fichier source « %s » (%s)"
 
-#: awkgram.y:3249
+#: awkgram.y:3235
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "le fichier source « %s » est vide"
 
-#: awkgram.y:3308
+#: awkgram.y:3294
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "erreur bête : caractère incorrect « \\%03o » dans le code 
source"
 
-#: awkgram.y:3535
+#: awkgram.y:3521
 msgid "source file does not end in newline"
 msgstr "le fichier source ne se termine pas par un passage à la ligne"
 
-#: awkgram.y:3656
+#: awkgram.y:3642
 msgid "unterminated regexp ends with `\\' at end of file"
-msgstr ""
-"expression rationnelle non refermée terminée par un « \\ » en fin de 
fichier"
+msgstr "expression rationnelle non refermée terminée par un « \\ » en 
fin de fichier"
 
-#: awkgram.y:3683
+#: awkgram.y:3669
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr ""
-"%s : %d : le modificateur d'expressions rationnelles « /.../%c » de 
tawk ne "
-"marche pas dans gawk"
+msgstr "%s : %d : le modificateur d'expressions rationnelles « /.../%c » 
de tawk ne marche pas dans gawk"
 
-#: awkgram.y:3687
+#: awkgram.y:3673
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr ""
-"le modificateur d'expressions rationnelles « /.../%c » de tawk ne marche 
pas "
-"dans gawk"
+msgstr "le modificateur d'expressions rationnelles « /.../%c » de tawk ne 
marche pas dans gawk"
 
-#: awkgram.y:3700
+#: awkgram.y:3686
 msgid "unterminated regexp"
 msgstr "expression rationnelle non refermée"
 
-#: awkgram.y:3704
+#: awkgram.y:3690
 msgid "unterminated regexp at end of file"
 msgstr "expression rationnelle non refermée en fin de fichier"
 
-#: awkgram.y:3793
+#: awkgram.y:3779
 msgid "use of `\\ #...' line continuation is not portable"
-msgstr ""
-"l'utilisation de « \\ #... » pour prolonger une ligne n'est pas portable"
+msgstr "l'utilisation de « \\ #... » pour prolonger une ligne n'est pas 
portable"
 
-#: awkgram.y:3815
+#: awkgram.y:3801
 msgid "backslash not last character on line"
 msgstr "la barre oblique inverse n'est pas le dernier caractère de la ligne"
 
-#: awkgram.y:3862 awkgram.y:3864
+#: awkgram.y:3848 awkgram.y:3850
 msgid "multidimensional arrays are a gawk extension"
 msgstr "les tableaux multidimensionnels sont une extension gawk"
 
-#: awkgram.y:3889
+#: awkgram.y:3875
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX n'autorise pas l'opérateur « **= »"
 
-#: awkgram.y:3891
+#: awkgram.y:3877
 msgid "old awk does not support operator `**='"
 msgstr "l'ancien awk ne dispose pas de l'opérateur « **= »"
 
-#: awkgram.y:3900
+#: awkgram.y:3886
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX n'autorise pas l'opérateur « ** »"
 
-#: awkgram.y:3902
+#: awkgram.y:3888
 msgid "old awk does not support operator `**'"
 msgstr "l'ancien awk ne dispose pas de l'opérateur « ** »"
 
-#: awkgram.y:3937
+#: awkgram.y:3923
 msgid "operator `^=' is not supported in old awk"
 msgstr "l'ancien awk ne dispose pas de l'opérateur « ^= »"
 
-#: awkgram.y:3945
+#: awkgram.y:3931
 msgid "operator `^' is not supported in old awk"
 msgstr "l'ancien awk ne dispose pas de l'opérateur « ^ »"
 
-#: awkgram.y:4042 awkgram.y:4064 command.y:1187
+#: awkgram.y:4028 awkgram.y:4050 command.y:1187
 msgid "unterminated string"
 msgstr "chaîne non refermée"
 
-#: awkgram.y:4052 main.c:1197
-#, fuzzy
+#: awkgram.y:4038 main.c:1197
 msgid "POSIX does not allow physical newlines in string values"
-msgstr "POSIX n'autorise pas les séquences d'échappement « \\x »"
+msgstr "POSIX interdit les sauts de lignes physiques dans les chaînes"
 
-#: awkgram.y:4054 node.c:453
-#, fuzzy
+#: awkgram.y:4040 node.c:453
 msgid "backslash string continuation is not portable"
-msgstr ""
-"l'utilisation de « \\ #... » pour prolonger une ligne n'est pas portable"
+msgstr "prolonger une chaîne via une barre oblique inversée est non portable"
 
-#: awkgram.y:4292
+#: awkgram.y:4278
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "caractère incorrect « %c » dans l'expression"
 
-#: awkgram.y:4387
+#: awkgram.y:4373
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "« %s » est une extension gawk"
 
-#: awkgram.y:4392
+#: awkgram.y:4378
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX n'autorise pas « %s »"
 
-#: awkgram.y:4400
+#: awkgram.y:4386
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "l'ancien awk ne dispose pas de « %s »"
 
-#: awkgram.y:4494
-#, fuzzy
+#: awkgram.y:4484
 msgid "`goto' considered harmful!"
-msgstr "« goto est jugé dangereux ! » (Edsger W. Dijkstra)\n"
+msgstr "« goto » est jugé dangereux !"
 
-#: awkgram.y:4563
+#: awkgram.y:4553
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d n'est pas un nombre d'arguments valide de %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4588
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
-msgstr ""
-"%s : une chaîne littérale en dernier argument d'une substitution est sans "
-"effet"
+msgstr "%s : une chaîne littérale en dernier argument d'une substitution 
est sans effet"
 
-#: awkgram.y:4603
+#: awkgram.y:4593
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "le 3e paramètre de %s n'est pas un objet modifiable"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4697 awkgram.y:4700
 msgid "match: third argument is a gawk extension"
 msgstr "match : le 3e argument est une extension gawk"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4754 awkgram.y:4757
 msgid "close: second argument is a gawk extension"
 msgstr "close : le 2e argument est une extension gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4769
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
-msgstr ""
-"utilisation incorrecte de dcgettext(_\"...\") : enlevez le souligné de 
tête"
+msgstr "utilisation incorrecte de dcgettext(_\"...\") : enlevez le souligné 
de tête"
 
-#: awkgram.y:4794
+#: awkgram.y:4784
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
-msgstr ""
-"utilisation incorrecte de dcngettext(_\"...\") : enlevez le souligné de 
tête"
+msgstr "utilisation incorrecte de dcngettext(_\"...\") : enlevez le souligné 
de tête"
 
-#: awkgram.y:4813
+#: awkgram.y:4803
 msgid "index: regexp constant as second argument is not allowed"
-msgstr ""
-"index : le second argument ne peut être une expression rationnelle 
constante"
+msgstr "index : le second argument ne peut être une expression rationnelle 
constante"
 
-#: awkgram.y:4866
+#: awkgram.y:4856
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "fonction « %s » : le paramètre « %s » masque la variable 
globale"
 
-#: awkgram.y:4915 debug.c:4178 debug.c:4221 debug.c:5342
+#: awkgram.y:4905 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "impossible d'ouvrir « %s » en écriture (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4906
 msgid "sending variable list to standard error"
 msgstr "envoi de la liste des variables vers la sortie d'erreur standard"
 
-#: awkgram.y:4924
+#: awkgram.y:4914
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s : échec de la fermeture (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4939
 msgid "shadow_funcs() called twice!"
 msgstr "shadows_funcs() a été appelé deux fois !"
 
-#: awkgram.y:4957
+#: awkgram.y:4947
 msgid "there were shadowed variables."
 msgstr "il y avait des variables masquées."
 
-#: awkgram.y:5034
+#: awkgram.y:5024
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "nom de fonction « %s » déjà défini"
 
-#: awkgram.y:5085
+#: awkgram.y:5075
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
-msgstr ""
-"fonction « %s » : impossible d'utiliser un nom de fonction comme 
paramètre"
+msgstr "fonction « %s » : impossible d'utiliser un nom de fonction comme 
paramètre"
 
-#: awkgram.y:5088
+#: awkgram.y:5078
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
-msgstr ""
-"fonction « %s » : impossible d'utiliser la variable spéciale « %s » 
comme "
-"paramètre d'une fonction"
+msgstr "fonction « %s » : impossible d'utiliser la variable spéciale « 
%s » comme paramètre d'une fonction"
 
-#: awkgram.y:5092
-#, fuzzy, c-format
+#: awkgram.y:5082
+#, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
-msgstr "fonction « %s » : le paramètre « %s » masque la variable 
globale"
+msgstr "fonction « %s » : le paramètre « %s » ne peut contenir un 
espace de noms"
 
-#: awkgram.y:5099
+#: awkgram.y:5089
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
-msgstr ""
-"fonction « %s » : paramètre #%d, « %s » est un doublon du 
paramètre #%d"
+msgstr "fonction « %s » : paramètre #%d, « %s » est un doublon du 
paramètre #%d"
 
-#: awkgram.y:5188
+#: awkgram.y:5178
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "fonction « %s » appelée sans être définie"
 
-#: awkgram.y:5192
+#: awkgram.y:5182
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "fonction « %s » définie mais jamais appelée directement"
 
-#: awkgram.y:5224
+#: awkgram.y:5214
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "le paramètre #%d, une expr. rationnelle constante, fournit un 
booléen"
 
-#: awkgram.y:5239
+#: awkgram.y:5229
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -551,70 +525,63 @@ msgstr ""
 "fonction « %s » appelée avec un espace entre son nom\n"
 "et « ( », ou utilisée comme variable ou tableau"
 
-#: awkgram.y:5454
+#: awkgram.y:5444
 msgid "division by zero attempted"
 msgstr "tentative de division par zéro"
 
-#: awkgram.y:5463
+#: awkgram.y:5453
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "tentative de division par zéro dans « %% »"
 
 # gawk 'BEGIN { $1++ = 1 }'
-#: awkgram.y:5802
-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:5792
+msgid "cannot assign a value to the result of a field post-increment 
expression"
+msgstr "impossible d'assigner une valeur au résultat de la 
post-incrémentation d'un champ"
 
-#: awkgram.y:5805
+#: awkgram.y:5795
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "cible de l'assignement incorrecte (opcode %s)"
 
-#: awkgram.y:6697
+#: awkgram.y:6687
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
-msgstr ""
+msgstr "identifiant %s : les noms qualifiés sont interdits en mode POSIX / 
traditionnel"
 
-#: awkgram.y:6702
+#: awkgram.y:6692
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
-msgstr ""
+msgstr "identifiant %s : le séparateur d'espace de noms est « :: », et 
non « : »"
 
-#: awkgram.y:6708
+#: awkgram.y:6698
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
-msgstr ""
+msgstr "l'identifiant qualifié « %s » est mal formé"
 
-#: awkgram.y:6715
+#: awkgram.y:6705
 #, c-format
-msgid ""
-"identifier `%s': namespace separator can only appear once in a qualified name"
-msgstr ""
+msgid "identifier `%s': namespace separator can only appear once in a 
qualified name"
+msgstr "identifiant « %s » : le séparateur d'espace de noms ne peut 
apparaître qu'une fois"
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6754 awkgram.y:6805
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
-msgstr ""
+msgstr "utiliser l'identifiant réservé « %s » comme espace de noms est 
interdit"
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6761 awkgram.y:6771
 #, c-format
-msgid ""
-"using reserved identifier `%s' as second component of a qualified name is "
-"not allowed"
-msgstr ""
+msgid "using reserved identifier `%s' as second component of a qualified name 
is not allowed"
+msgstr "utiliser l'identifiant réservé « %s » comme 2nd composant d'un 
nom qualifié est interdit"
 
-#: awkgram.y:6799
-#, fuzzy
+#: awkgram.y:6789
 msgid "@namespace is a gawk extension"
-msgstr "@include est une extension gawk"
+msgstr "@namespace est une extension gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6796
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
-msgstr ""
+msgstr "l'espace de noms « %s » doit respecter les règles d'écriture des 
identifiants"
 
 #: builtin.c:143
 #, c-format
@@ -641,16 +608,12 @@ msgstr "exp : l'argument %g est hors limite"
 #: builtin.c:245
 #, c-format
 msgid "fflush: cannot flush: pipe `%.*s' opened for reading, not writing"
-msgstr ""
-"fflush : vidage impossible : le tube « %.*s » est ouvert en lecture et 
non "
-"en écriture"
+msgstr "fflush : vidage impossible : le tube « %.*s » est ouvert en 
lecture et non en écriture"
 
 #: builtin.c:248
 #, c-format
 msgid "fflush: cannot flush: file `%.*s' opened for reading, not writing"
-msgstr ""
-"fflush : vidage impossible : fichier « %.*s » ouvert en lecture, pas en 
"
-"écriture"
+msgstr "fflush : vidage impossible : fichier « %.*s » ouvert en lecture, 
pas en écriture"
 
 #: builtin.c:259
 #, c-format
@@ -660,15 +623,12 @@ msgstr "fflush : vidage vers le fichier « %.*s » 
impossible : %s"
 #: builtin.c:264
 #, c-format
 msgid "fflush: cannot flush: two-way pipe `%.*s' has closed write end"
-msgstr ""
-"fflush : vidage impossible : le tube bidirectionnel « %.*s » a fermé 
son "
-"côté écriture"
+msgstr "fflush : vidage impossible : le tube bidirectionnel « %.*s » a 
fermé son côté écriture"
 
 #: builtin.c:270
 #, c-format
 msgid "fflush: `%.*s' is not an open file, pipe or co-process"
-msgstr ""
-"fflush : « %.*s » n'est ni un fichier ouvert, ni un tube, ni un 
co-processus"
+msgstr "fflush : « %.*s » n'est ni un fichier ouvert, ni un tube, ni un 
co-processus"
 
 #: builtin.c:377
 msgid "index: received non-string first argument"
@@ -705,8 +665,7 @@ msgstr "log : l'argument est négatif %g"
 
 #: builtin.c:785 builtin.c:790 builtin.c:943
 msgid "fatal: must use `count$' on all formats or none"
-msgstr ""
-"fatal : « numéro$ » doit être utilisé pour toutes les formats ou pour 
aucun"
+msgstr "fatal : « numéro$ » doit être utilisé pour toutes les formats 
ou pour aucun"
 
 #: builtin.c:862
 #, c-format
@@ -734,8 +693,7 @@ msgstr "fatal : le numéro d'argument de « $ » doit 
être > 0"
 #: builtin.c:930
 #, c-format
 msgid "fatal: arg count %ld greater than total number of supplied arguments"
-msgstr ""
-"fatal : le numéro d'argument %ld est > au nombre total d'arguments fournis"
+msgstr "fatal : le numéro d'argument %ld est > au nombre total d'arguments 
fournis"
 
 #: builtin.c:934
 msgid "fatal: `$' not permitted after period in format"
@@ -743,8 +701,7 @@ msgstr "fatal : dans un format, « $ » ne doit pas 
suivre un point"
 
 #: builtin.c:953
 msgid "fatal: no `$' supplied for positional field width or precision"
-msgstr ""
-"fatal : aucun « $ » fourni pour la taille ou la précision du champ 
positionné"
+msgstr "fatal : aucun « $ » fourni pour la taille ou la précision du 
champ positionné"
 
 #: builtin.c:1023
 msgid "`l' is meaningless in awk formats; ignored"
@@ -786,14 +743,14 @@ msgid "[s]printf: value %g is out of range for `%%%c' 
format"
 msgstr "[s]printf : valeur %g hors limite pour le format « %%%c »"
 
 #: builtin.c:1504
-#, fuzzy, c-format
+#, c-format
 msgid "[s]printf: value %s is out of range for `%%%c' format"
-msgstr "[s]printf : valeur %g hors limite pour le format « %%%c »"
+msgstr "[s]printf : valeur %s hors limite pour le format « %%%c »"
 
 #: builtin.c:1529
 #, c-format
 msgid "%%%c format is POSIX standard but not portable to other awks"
-msgstr ""
+msgstr "le format %%%c est conforme à POSIX, mais non reconnu par les autres 
awk"
 
 #: builtin.c:1629
 #, c-format
@@ -826,8 +783,7 @@ msgstr "printf : aucun argument"
 
 #: builtin.c:1754
 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"
+msgstr "printf : tentative d'écriture vers un tube bidirectionnel fermé 
côté écriture"
 
 #: builtin.c:1795
 msgid "sqrt: received non-numeric argument"
@@ -879,17 +835,13 @@ msgstr "substr : l'index de début %g est au-delà de la 
fin de la chaîne"
 
 #: builtin.c:1913
 #, c-format
-msgid ""
-"substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr ""
-"substr : la longueur %g à partir de %g dépasse la fin du 1er argument 
(%lu)"
+msgid "substr: length %g at start index %g exceeds length of first argument 
(%lu)"
+msgstr "substr : la longueur %g à partir de %g dépasse la fin du 1er 
argument (%lu)"
 
 # Exemple : gawk --lint 'BEGIN { PROCINFO["strftime"]=123 ;  print strftime() 
}'
 #: builtin.c:1986
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
-msgstr ""
-"strftime : la valeur de formatage PROCINFO[\"strftime\"] est de type "
-"numérique"
+msgstr "strftime : la valeur de formatage PROCINFO[\"strftime\"] est de type 
numérique"
 
 #: builtin.c:2006
 msgid "strftime: received non-numeric second argument"
@@ -917,8 +869,7 @@ msgstr "mktime : l'argument n'est pas une chaîne"
 
 #: builtin.c:2139
 msgid "mktime: at least one of the values is out of the default range"
-msgstr ""
-"mktime : au moins l'une des valeurs est en dehors de la plage par défaut"
+msgstr "mktime : au moins l'une des valeurs est en dehors de la plage par 
défaut"
 
 #: builtin.c:2175
 msgid "'system' function not allowed in sandbox mode"
@@ -930,8 +881,7 @@ msgstr "system : l'argument n'est pas une chaîne"
 
 #: builtin.c:2249 builtin.c:2322
 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"
+msgstr "print : tentative d'écriture vers un tube bidirectionnel fermé 
côté écriture"
 
 #: builtin.c:2345
 #, c-format
@@ -1029,8 +979,7 @@ msgstr "rshift(%f, %f) : les valeurs non entières seront 
tronquées"
 #: builtin.c:3449
 #, c-format
 msgid "rshift(%f, %f): too large shift value will give strange results"
-msgstr ""
-"rshift(%f, %f) : un décalage trop grand donnera des résultats inattendus"
+msgstr "rshift(%f, %f) : un décalage trop grand donnera des résultats 
inattendus"
 
 #: builtin.c:3474 mpfr.c:982
 msgid "and: called with less than two arguments"
@@ -1110,17 +1059,13 @@ msgid "intdiv: division by zero attempted"
 msgstr "intdiv : tentative de division par zéro"
 
 #: builtin.c:4046
-#, fuzzy
 msgid "typeof: second argument is not an array"
-msgstr "split : le 2e argument n'est pas un tableau"
+msgstr "typeof : le 2e argument n'est pas un tableau"
 
 #: builtin.c:4082
 #, c-format
-msgid ""
-"typeof detected invalid flags combination `%s'; please file a bug report."
-msgstr ""
-"typeof : utilisation de drapeaux incorrects « %s ». Merci de nous 
remonter "
-"l'erreur."
+msgid "typeof detected invalid flags combination `%s'; please file a bug 
report."
+msgstr "typeof : utilisation de drapeaux incorrects « %s ». Merci de nous 
remonter l'erreur."
 
 #: builtin.c:4101
 #, c-format
@@ -1159,8 +1104,7 @@ msgstr "sauve « %s » : commande interdite."
 
 #: command.y:341
 msgid "Can't use command `commands' for breakpoint/watchpoint commands"
-msgstr ""
-"Impossible d'utiliser « commands » pour des points d'arrêt ou de 
surveillance"
+msgstr "Impossible d'utiliser « commands » pour des points d'arrêt ou de 
surveillance"
 
 #: command.y:343
 msgid "no breakpoint/watchpoint has been set yet"
@@ -1173,8 +1117,7 @@ msgstr "numéro de point d'arrêt ou de surveillance 
incorrect"
 #: command.y:350
 #, c-format
 msgid "Type commands for when %s %d is hit, one per line.\n"
-msgstr ""
-"Entrez les commandes exécutées lors de l'appui de %s %d, une par ligne.\n"
+msgstr "Entrez les commandes exécutées lors de l'appui de %s %d, une par 
ligne.\n"
 
 #: command.y:352
 #, c-format
@@ -1235,36 +1178,24 @@ msgid "non-zero integer value"
 msgstr "valeur entière non nulle"
 
 #: command.y:819
-msgid ""
-"backtrace [N] - print trace of all or N innermost (outermost if N < 0) "
-"frames."
-msgstr ""
-"backtrace [N] - affiche la trace de tout ou des N dernières trames (du 
début "
-"si N < 0)."
+msgid "backtrace [N] - print trace of all or N innermost (outermost if N < 0) 
frames."
+msgstr "backtrace [N] - affiche la trace de tout ou des N dernières trames 
(du début si N < 0)."
 
 #: command.y:821
-msgid ""
-"break [[filename:]N|function] - set breakpoint at the specified location."
-msgstr ""
-"break [[fichier:]N|fonction] - définit un point d'arrêt à l'endroit 
indiqué."
+msgid "break [[filename:]N|function] - set breakpoint at the specified 
location."
+msgstr "break [[fichier:]N|fonction] - définit un point d'arrêt à l'endroit 
indiqué."
 
 #: command.y:823
 msgid "clear [[filename:]N|function] - delete breakpoints previously set."
 msgstr "clear [[fichier:]N|fonction] - détruit un point d'arrêt existant."
 
 #: command.y:825
-msgid ""
-"commands [num] - starts a list of commands to be executed at a "
-"breakpoint(watchpoint) hit."
-msgstr ""
-"commands [no] - débute une liste de commande à lancer aux points d'arrêt 
ou "
-"de surveillance."
+msgid "commands [num] - starts a list of commands to be executed at a 
breakpoint(watchpoint) hit."
+msgstr "commands [no] - débute une liste de commande à lancer aux points 
d'arrêt ou de surveillance."
 
 #: command.y:827
 msgid "condition num [expr] - set or clear breakpoint or watchpoint condition."
-msgstr ""
-"condition no [expr] - défini ou détruit une condition d'arrêt ou de "
-"surveillance."
+msgstr "condition no [expr] - défini ou détruit une condition d'arrêt ou de 
surveillance."
 
 #: command.y:829
 msgid "continue [COUNT] - continue program being debugged."
@@ -1276,8 +1207,7 @@ msgstr "delete [points d'arrêt] [plage] - détruit les 
points d'arrêt indiqué
 
 #: command.y:833
 msgid "disable [breakpoints] [range] - disable specified breakpoints."
-msgstr ""
-"disable [points d'arrêt] [plage] - désactive les points d'arrêt indiqués."
+msgstr "disable [points d'arrêt] [plage] - désactive les points d'arrêt 
indiqués."
 
 #: command.y:835
 msgid "display [var] - print value of variable each time the program stops."
@@ -1289,13 +1219,11 @@ msgstr "down [N] - descend de N trames dans la pile."
 
 #: command.y:839
 msgid "dump [filename] - dump instructions to file or stdout."
-msgstr ""
-"dump [fichier] - vide les instructions vers la sortie standard ou un fichier."
+msgstr "dump [fichier] - vide les instructions vers la sortie standard ou un 
fichier."
 
 #: command.y:841
 msgid "enable [once|del] [breakpoints] [range] - enable specified breakpoints."
-msgstr ""
-"enable [once|del] [points d'arrêt] [plage] - active les points d'arrêt."
+msgstr "enable [once|del] [points d'arrêt] [plage] - active les points 
d'arrêt."
 
 #: command.y:843
 msgid "end - end a list of commands or awk statements."
@@ -1319,35 +1247,27 @@ msgstr "frame [N] - sélectionne et affiche la trame N 
de la pile."
 
 #: command.y:853
 msgid "help [command] - print list of commands or explanation of command."
-msgstr ""
-"help [commande] - affiche la liste des commandes ou explique la commande."
+msgstr "help [commande] - affiche la liste des commandes ou explique la 
commande."
 
 #: command.y:855
 msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT."
 msgstr "ignore N NB - ignore les NB prochaines occurrences du point d'arrêt 
N."
 
 #: command.y:857
-msgid ""
-"info topic - source|sources|variables|functions|break|frame|args|locals|"
-"display|watch."
-msgstr ""
-"info sujet - source|sources|variables|functions|break|frame|args|locals|"
-"display|watch."
+msgid "info topic - 
source|sources|variables|functions|break|frame|args|locals|display|watch."
+msgstr "info sujet - 
source|sources|variables|functions|break|frame|args|locals|display|watch."
 
 #: command.y:859
 msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)."
-msgstr ""
-"list [-|+|[fichier:]no_ligne|fonction|plage] - affiche les lignes indiquées."
+msgstr "list [-|+|[fichier:]no_ligne|fonction|plage] - affiche les lignes 
indiquées."
 
 #: command.y:861
 msgid "next [COUNT] - step program, proceeding through subroutine calls."
 msgstr "next [NB] - avance ligne par ligne, sans détailler les sous-routines."
 
 #: command.y:863
-msgid ""
-"nexti [COUNT] - step one instruction, but proceed through subroutine calls."
-msgstr ""
-"nexti [NB] - avance d'une instruction, sans détailler les sous-routines."
+msgid "nexti [COUNT] - step one instruction, but proceed through subroutine 
calls."
+msgstr "nexti [NB] - avance d'une instruction, sans détailler les 
sous-routines."
 
 #: command.y:865
 msgid "option [name[=value]] - set or display debugger option(s)."
@@ -1375,19 +1295,15 @@ msgstr "run - démarre et redémarre l'exécution du 
programme."
 
 #: command.y:878
 msgid "save filename - save commands from the session to file."
-msgstr ""
-"save fichier - enregistre les commandes de la sessions dans un fichier."
+msgstr "save fichier - enregistre les commandes de la sessions dans un 
fichier."
 
 #: command.y:881
 msgid "set var = value - assign value to a scalar variable."
 msgstr "set var = valeur - assigne une valeur à une variable scalaire."
 
 #: command.y:883
-msgid ""
-"silent - suspends usual message when stopped at a breakpoint/watchpoint."
-msgstr ""
-"silent - suspend les messages habituels lors des points d'arrêt et de "
-"surveillance."
+msgid "silent - suspends usual message when stopped at a 
breakpoint/watchpoint."
+msgstr "silent - suspend les messages habituels lors des points d'arrêt et de 
surveillance."
 
 #: command.y:885
 msgid "source file - execute commands from file."
@@ -1411,17 +1327,11 @@ msgstr "trace on|off - affiche les instructions avant 
de les exécuter."
 
 #: command.y:895
 msgid "undisplay [N] - remove variable(s) from automatic display list."
-msgstr ""
-"undisplay [N] - retire la ou les variables de la liste d'affichage "
-"automatique."
+msgstr "undisplay [N] - retire la ou les variables de la liste d'affichage 
automatique."
 
 #: command.y:897
-msgid ""
-"until [[filename:]N|function] - execute until program reaches a different "
-"line or line N within current frame."
-msgstr ""
-"until [[fichier:]N|fonction] - exécution jusqu'à dépasser la ligne courant 
"
-"ou la ligne N, dans la trame actuelle."
+msgid "until [[filename:]N|function] - execute until program reaches a 
different line or line N within current frame."
+msgstr "until [[fichier:]N|fonction] - exécution jusqu'à dépasser la ligne 
courant ou la ligne N, dans la trame actuelle."
 
 #: command.y:899
 msgid "unwatch [N] - remove variable(s) from watch list."
@@ -1436,14 +1346,10 @@ msgid "watch var - set a watchpoint for a variable."
 msgstr "watch var - définit un point de surveillance pour une variable."
 
 #: command.y:905
-msgid ""
-"where [N] - (same as backtrace) print trace of all or N innermost (outermost "
-"if N < 0) frames."
-msgstr ""
-"where [N] - (identique à backtrace) affiche la trace de tout ou des N "
-"dernières trames (du début si N < 0)."
+msgid "where [N] - (same as backtrace) print trace of all or N innermost 
(outermost if N < 0) frames."
+msgstr "where [N] - (identique à backtrace) affiche la trace de tout ou des N 
dernières trames (du début si N < 0)."
 
-#: command.y:1016 debug.c:409 gawkapi.c:259 msg.c:139
+#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139
 #, c-format
 msgid "error: "
 msgstr "erreur : "
@@ -1481,96 +1387,94 @@ msgstr "Caractère incorrect"
 msgid "undefined command: %s\n"
 msgstr "commande inconnue : %s\n"
 
-#: debug.c:252
+#: debug.c:257
 msgid "set or show the number of lines to keep in history file."
 msgstr "affiche ou définit le nombre de lignes du fichier d'historique."
 
-#: debug.c:254
+#: debug.c:259
 msgid "set or show the list command window size."
 msgstr "affiche ou définit la taille de fenêtre pour la commande list."
 
-#: debug.c:256
+#: debug.c:261
 msgid "set or show gawk output file."
 msgstr "affiche ou définit le fichier de sortie de gawk."
 
-#: debug.c:258
+#: debug.c:263
 msgid "set or show debugger prompt."
 msgstr "affiche ou définit l'invite du débogueur."
 
-#: debug.c:260
+#: debug.c:265
 msgid "(un)set or show saving of command history (value=on|off)."
-msgstr ""
-"affiche ou (dés)active l'enregistrement de l'historique (valeur=on|off)."
+msgstr "affiche ou (dés)active l'enregistrement de l'historique 
(valeur=on|off)."
 
-#: debug.c:262
+#: debug.c:267
 msgid "(un)set or show saving of options (value=on|off)."
 msgstr "affiche ou (dés)active l'enregistrement des options (valeur=on|off)."
 
-#: debug.c:264
+#: debug.c:269
 msgid "(un)set or show instruction tracing (value=on|off)."
 msgstr "affiche ou (dés)active le traçage des instructions (valeur=on|off)."
 
-#: debug.c:353
+#: debug.c:358
 msgid "program not running."
 msgstr "le programme n'est pas en cours."
 
-#: debug.c:456 debug.c:614
+#: debug.c:461 debug.c:619
 #, c-format
 msgid "can't read source file `%s' (%s)"
 msgstr "impossible de lire le fichier source « %s » (%s)"
 
-#: debug.c:461
+#: debug.c:466
 #, c-format
 msgid "source file `%s' is empty.\n"
 msgstr "le fichier source « %s » est vide.\n"
 
-#: debug.c:488
+#: debug.c:493
 msgid "no current source file."
 msgstr "pas de fichier source courant."
 
-#: debug.c:513
+#: debug.c:518
 #, c-format
 msgid "cannot find source file named `%s' (%s)"
 msgstr "impossible de trouver le fichier source nommé « %s » (%s)"
 
-#: debug.c:537
+#: debug.c:542
 #, c-format
 msgid "WARNING: source file `%s' modified since program compilation.\n"
-msgstr ""
-"ATTENTION : fichier source « %s » modifié après compilation du 
programme.\n"
+msgstr "ATTENTION : fichier source « %s » modifié après compilation du 
programme.\n"
 
-#: debug.c:559
+#: debug.c:564
 #, c-format
 msgid "line number %d out of range; `%s' has %d lines"
 msgstr "numéro de ligne %d hors limite ; « %s » a %d lignes"
 
-#: debug.c:619
+#: debug.c:624
 #, c-format
 msgid "unexpected eof while reading file `%s', line %d"
 msgstr "fin de fichier inattendue lors de la lecture de « %s », ligne %d"
 
-#: debug.c:628
+#: debug.c:633
 #, c-format
 msgid "source file `%s' modified since start of program execution"
 msgstr "fichier source « %s » modifié depuis le début d'exécution du 
programme"
 
 # c-format
-#: debug.c:740
+#: debug.c:745
 #, c-format
 msgid "Current source file: %s\n"
 msgstr "Fichier source courant : %s\n"
 
-#: debug.c:741
+#: debug.c:746
 #, c-format
 msgid "Number of lines: %d\n"
 msgstr "Nombre de lignes : %d\n"
 
-#: debug.c:748
+#: debug.c:753
 #, c-format
 msgid "Source file (lines): %s (%d)\n"
 msgstr "Fichier source (lignes) : %s (%d)\n"
 
-#: debug.c:762
+#: debug.c:767
 msgid ""
 "Number  Disp  Enabled  Location\n"
 "\n"
@@ -1578,54 +1482,54 @@ msgstr ""
 "Numéro  Post  Activé   Position\n"
 "\n"
 
-#: debug.c:773
+#: debug.c:778
 #, c-format
 msgid "\tno of hits = %ld\n"
 msgstr "\tnb occurrences = %ld\n"
 
-#: debug.c:775
+#: debug.c:780
 #, c-format
 msgid "\tignore next %ld hit(s)\n"
 msgstr "\tignore %ld prochaines occurrences\n"
 
-#: debug.c:777 debug.c:917
+#: debug.c:782 debug.c:922
 #, c-format
 msgid "\tstop condition: %s\n"
 msgstr "\tcondition d'arrêt : %s\n"
 
-#: debug.c:779 debug.c:919
+#: debug.c:784 debug.c:924
 msgid "\tcommands:\n"
 msgstr "\tcommandes :\n"
 
-#: debug.c:801
+#: debug.c:806
 #, c-format
 msgid "Current frame: "
 msgstr "Trame courante : "
 
-#: debug.c:804
+#: debug.c:809
 #, c-format
 msgid "Called by frame: "
 msgstr "Appelée par la trame : "
 
-#: debug.c:808
+#: debug.c:813
 #, c-format
 msgid "Caller of frame: "
 msgstr "Appelant de la trame : "
 
-#: debug.c:826
+#: debug.c:831
 #, c-format
 msgid "None in main().\n"
 msgstr "Aucune dans main().\n"
 
-#: debug.c:856
+#: debug.c:861
 msgid "No arguments.\n"
 msgstr "Aucun argument.\n"
 
-#: debug.c:857
+#: debug.c:862
 msgid "No locals.\n"
 msgstr "Aucune variable locale.\n"
 
-#: debug.c:865
+#: debug.c:870
 msgid ""
 "All defined variables:\n"
 "\n"
@@ -1633,7 +1537,7 @@ msgstr ""
 "Liste des variables définies :\n"
 "\n"
 
-#: debug.c:875
+#: debug.c:880
 msgid ""
 "All defined functions:\n"
 "\n"
@@ -1641,7 +1545,7 @@ msgstr ""
 "Liste des fonctions définies :\n"
 "\n"
 
-#: debug.c:894
+#: debug.c:899
 msgid ""
 "Auto-display variables:\n"
 "\n"
@@ -1649,7 +1553,7 @@ msgstr ""
 "Variables affichées automatiquement :\n"
 "\n"
 
-#: debug.c:897
+#: debug.c:902
 msgid ""
 "Watch variables:\n"
 "\n"
@@ -1657,364 +1561,356 @@ msgstr ""
 "Variables inspectées :\n"
 "\n"
 
-#: debug.c:1037
+#: debug.c:1042
 #, c-format
 msgid "no symbol `%s' in current context\n"
 msgstr "pas de symbole « %s » dans le contexte actuel\n"
 
-#: debug.c:1049 debug.c:1437
+#: debug.c:1054 debug.c:1442
 #, c-format
 msgid "`%s' is not an array\n"
 msgstr "« %s » n'est pas un tableau\n"
 
-#: debug.c:1063
+#: debug.c:1068
 #, c-format
 msgid "$%ld = uninitialized field\n"
 msgstr "$%ld = champ non initialisé\n"
 
-#: debug.c:1084
+#: debug.c:1089
 #, c-format
 msgid "array `%s' is empty\n"
 msgstr "le tableau « %s » est vide\n"
 
-#: debug.c:1127 debug.c:1179
+#: debug.c:1132 debug.c:1184
 #, c-format
 msgid "[\"%.*s\"] not in array `%s'\n"
 msgstr "[\"%.*s\"] n'est pas dans le tableau « %s »\n"
 
-#: debug.c:1183
+#: debug.c:1188
 #, c-format
 msgid "`%s[\"%.*s\"]' is not an array\n"
 msgstr "« %s[\"%.*s\"] » n'est pas un tableau\n"
 
-#: debug.c:1244 debug.c:5102
+#: debug.c:1249 debug.c:5103
 #, c-format
 msgid "`%s' is not a scalar variable"
 msgstr "« %s » n'est pas une variable scalaire"
 
-#: debug.c:1267 debug.c:5132
+#: debug.c:1272 debug.c:5133
 #, c-format
 msgid "attempt to use array `%s[\"%.*s\"]' in a scalar context"
-msgstr ""
-"tentative d'utilisation du tableau « %s[\"%.*s\"] » en contexte scalaire"
+msgstr "tentative d'utilisation du tableau « %s[\"%.*s\"] » en contexte 
scalaire"
 
-#: debug.c:1290 debug.c:5143
+#: debug.c:1295 debug.c:5144
 #, c-format
 msgid "attempt to use scalar `%s[\"%.*s\"]' as array"
 msgstr "tentative d'utiliser le scalaire « %s[\"%.*s\"] » comme tableau"
 
-#: debug.c:1433
+#: debug.c:1438
 #, c-format
 msgid "`%s' is a function"
 msgstr "« %s » est une fonction"
 
-#: debug.c:1475
+#: debug.c:1480
 #, c-format
 msgid "watchpoint %d is unconditional\n"
 msgstr "le point de surveillance %d est inconditionnel\n"
 
-#: debug.c:1509
+#: debug.c:1514
 #, c-format
 msgid "No display item numbered %ld"
 msgstr "Aucune entrée d'affichage numéro %ld"
 
-#: debug.c:1512
+#: debug.c:1517
 #, c-format
 msgid "No watch item numbered %ld"
 msgstr "Aucune entrée de surveillance numéro %ld"
 
-#: debug.c:1538
+#: debug.c:1543
 #, c-format
 msgid "%d: [\"%.*s\"] not in array `%s'\n"
 msgstr "%d: [\"%.*s\"] n'est pas dans le tableau « %s »\n"
 
-#: debug.c:1777
+#: debug.c:1782
 msgid "attempt to use scalar value as array"
 msgstr "tentative d'utiliser un scalaire comme tableau"
 
-#: debug.c:1868
+#: debug.c:1873
 #, c-format
 msgid "Watchpoint %d deleted because parameter is out of scope.\n"
-msgstr ""
-"Point de surveillance %d détruit, car son paramètre est hors contexte.\n"
+msgstr "Point de surveillance %d détruit, car son paramètre est hors 
contexte.\n"
 
-#: debug.c:1879
+#: debug.c:1884
 #, c-format
 msgid "Display %d deleted because parameter is out of scope.\n"
 msgstr "Affichage %d détruit, car son paramètre est hors contexte\n"
 
-#: debug.c:1912
+#: debug.c:1917
 #, c-format
 msgid " in file `%s', line %d\n"
 msgstr "dans le fichier « %s », ligne %d\n"
 
-#: debug.c:1933
+#: debug.c:1938
 #, c-format
 msgid " at `%s':%d"
 msgstr " à « %s »:%d"
 
-#: debug.c:1949 debug.c:2012
+#: debug.c:1954 debug.c:2017
 #, c-format
 msgid "#%ld\tin "
 msgstr "#%ld\tdans "
 
-#: debug.c:1986
+#: debug.c:1991
 #, c-format
 msgid "More stack frames follow ...\n"
 msgstr "D'autres trames de la pile suivent...\n"
 
-#: debug.c:2029
+#: debug.c:2034
 msgid "invalid frame number"
 msgstr "Numéro de trame incorrect"
 
-#: debug.c:2212
+#: debug.c:2217
 #, c-format
 msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
-msgstr ""
-"Note : point d'arrêt %d (activé, ignore %ld occurrences) déjà défini à 
%s:%d"
+msgstr "Note : point d'arrêt %d (activé, ignore %ld occurrences) déjà 
défini à %s:%d"
 
-#: debug.c:2219
+#: debug.c:2224
 #, c-format
 msgid "Note: breakpoint %d (enabled), also set at %s:%d"
 msgstr "Note : point d'arrêt %d (activé) déjà défini à %s:%d"
 
-#: debug.c:2226
+#: debug.c:2231
 #, c-format
 msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
-msgstr ""
-"Note : point d'arrêt %d (désactivé, ignore %ld occurrences) déjà 
défini à %s:"
-"%d"
+msgstr "Note : point d'arrêt %d (désactivé, ignore %ld occurrences) déjà 
défini à %s:%d"
 
-#: debug.c:2233
+#: debug.c:2238
 #, c-format
 msgid "Note: breakpoint %d (disabled), also set at %s:%d"
 msgstr "Note : point d'arrêt %d (désactivé) déjà défini à %s:%d"
 
-#: debug.c:2250
+#: debug.c:2255
 #, c-format
 msgid "Breakpoint %d set at file `%s', line %d\n"
 msgstr "Point d'arrêt %d défini dans le fichier « %s » ligne %d\n"
 
-#: debug.c:2352
+#: debug.c:2357
 #, c-format
 msgid "Can't set breakpoint in file `%s'\n"
 msgstr "Impossible de définir un point d'arrêt dans le fichier « %s »\n"
 
-#: debug.c:2381 debug.c:2504 debug.c:3366
+#: debug.c:2386 debug.c:2509 debug.c:3367
 #, c-format
 msgid "line number %d in file `%s' out of range"
 msgstr "numéro de ligne %d dans le fichier « %s » hors limite"
 
-#: debug.c:2385
+#: debug.c:2390
 #, c-format
 msgid "Can't find rule!!!\n"
 msgstr "Règle introuvable !!!\n"
 
-#: debug.c:2387
+#: debug.c:2392
 #, c-format
 msgid "Can't set breakpoint at `%s':%d\n"
 msgstr "Impossible de définir un point d'arrêt à « %s »:%d\n"
 
-#: debug.c:2399
+#: debug.c:2404
 #, c-format
 msgid "Can't set breakpoint in function `%s'\n"
 msgstr "Impossible de définir un point d'arrêt dans la fonction « %s »\n"
 
-#: debug.c:2415
+#: debug.c:2420
 #, c-format
 msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
-msgstr ""
-"le point d'arrêt %d défini sur le fichier « %s », ligne %d est "
-"inconditionnel\n"
+msgstr "le point d'arrêt %d défini sur le fichier « %s », ligne %d est 
inconditionnel\n"
 
-#: debug.c:2520 debug.c:2542
+#: debug.c:2525 debug.c:2547
 #, c-format
 msgid "Deleted breakpoint %d"
 msgstr "Point d'arrêt %d supprimé"
 
-#: debug.c:2526
+#: debug.c:2531
 #, c-format
 msgid "No breakpoint(s) at entry to function `%s'\n"
 msgstr "Aucun point d'arrêt à l'appel de la fonction « %s »\n"
 
-#: debug.c:2553
+#: debug.c:2558
 #, c-format
 msgid "No breakpoint at file `%s', line #%d\n"
 msgstr "Pas de point d'arrêt sur le fichier « %s », ligne #%d\n"
 
-#: debug.c:2608 debug.c:2649 debug.c:2669 debug.c:2712
+#: debug.c:2613 debug.c:2654 debug.c:2674 debug.c:2717
 msgid "invalid breakpoint number"
 msgstr "Numéro de point d'arrêt incorrect"
 
-#: debug.c:2624
+#: debug.c:2629
 msgid "Delete all breakpoints? (y or n) "
 msgstr "Supprimer tous les points d'arrêt (o ou n) "
 
-#: debug.c:2625 debug.c:2939 debug.c:2992
+#: debug.c:2630 debug.c:2940 debug.c:2993
 msgid "y"
 msgstr "o"
 
-#: debug.c:2674
+#: debug.c:2679
 #, c-format
 msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n"
 msgstr "Ignorera les prochaines %ld occurrences du point d'arrêt %d.\n"
 
-#: debug.c:2678
+#: debug.c:2683
 #, c-format
 msgid "Will stop next time breakpoint %d is reached.\n"
 msgstr "S'arrêtera à la prochaine occurrence du point d'arrêt %d.\n"
 
-#: debug.c:2795
+#: debug.c:2800
 #, c-format
 msgid "Can only debug programs provided with the `-f' option.\n"
-msgstr ""
-"Seuls les programmes fournis via l'option « -f » peuvent être 
débogués.\n"
+msgstr "Seuls les programmes fournis via l'option « -f » peuvent être 
débogués.\n"
 
-#: debug.c:2924
+#: debug.c:2925
 #, c-format
 msgid "Failed to restart debugger"
 msgstr "Échec de redémarrage du débogueur"
 
-#: debug.c:2938
+#: debug.c:2939
 msgid "Program already running. Restart from beginning (y/n)? "
 msgstr "Programme en cours. Reprendre depuis le début (o/n) ? "
 
-#: debug.c:2942
+#: debug.c:2943
 #, c-format
 msgid "Program not restarted\n"
 msgstr "Programme non redémarré\n"
 
-#: debug.c:2952
+#: debug.c:2953
 #, c-format
 msgid "error: cannot restart, operation not allowed\n"
 msgstr "erreur : impossible de redémarrer, opération interdite\n"
 
-#: debug.c:2958
+#: debug.c:2959
 #, c-format
 msgid "error (%s): cannot restart, ignoring rest of the commands\n"
 msgstr "erreur (%s) : impossible de redémarrer, suite des commandes 
ignorées\n"
 
-#: debug.c:2966
+#: debug.c:2967
 #, c-format
 msgid "Starting program: \n"
 msgstr "Démarrage du programme :\n"
 
-#: debug.c:2976
+#: debug.c:2977
 #, c-format
 msgid "Program exited abnormally with exit value: %d\n"
 msgstr "Le programme s'est terminé en erreur avec le code de retour : %d\n"
 
-#: debug.c:2977
+#: debug.c:2978
 #, c-format
 msgid "Program exited normally with exit value: %d\n"
 msgstr "Le programme s'est terminé correctement avec le code de retour : 
%d\n"
 
-#: debug.c:2991
+#: debug.c:2992
 msgid "The program is running. Exit anyway (y/n)? "
 msgstr "Le programme est en cours. Sortir quand même (o/n) ?"
 
-#: debug.c:3026
+#: debug.c:3027
 #, c-format
 msgid "Not stopped at any breakpoint; argument ignored.\n"
 msgstr "Auncun arrêt à un point d'arrêt : argument ignoré.\n"
 
-#: debug.c:3031
+#: debug.c:3032
 #, c-format
 msgid "invalid breakpoint number %d."
 msgstr "point d'arrêt %d incorrect."
 
-#: debug.c:3036
+#: debug.c:3037
 #, c-format
 msgid "Will ignore next %ld crossings of breakpoint %d.\n"
 msgstr "Les %ld prochaines occurrences du point d'arrêt %d seront 
ignorées.\n"
 
-#: debug.c:3223
+#: debug.c:3224
 #, c-format
 msgid "'finish' not meaningful in the outermost frame main()\n"
 msgstr "« finish » n'a pas de sens dans la trame initiale main()\n"
 
-#: debug.c:3228
+#: debug.c:3229
 #, c-format
 msgid "Run till return from "
 msgstr "S'exécute jusqu'au retour de "
 
-#: debug.c:3271
+#: debug.c:3272
 #, c-format
 msgid "'return' not meaningful in the outermost frame main()\n"
 msgstr "« return » n'a pas de sens dans la trame initiale main()\n"
 
-#: debug.c:3385
+#: debug.c:3386
 #, c-format
 msgid "Can't find specified location in function `%s'\n"
 msgstr "Impossible de trouver la position indiquée dans la fonction « %s 
»\n"
 
-#: debug.c:3393
+#: debug.c:3394
 #, c-format
 msgid "invalid source line %d in file `%s'"
 msgstr "ligne source %d incorrecte dans le fichier « %s »"
 
-#: debug.c:3408
+#: debug.c:3409
 #, c-format
 msgid "Can't find specified location %d in file `%s'\n"
 msgstr "Position %d introuvable dans le fichier « %s »\n"
 
-#: debug.c:3440
+#: debug.c:3441
 #, c-format
 msgid "element not in array\n"
 msgstr "élément absent du tableau\n"
 
-#: debug.c:3440
+#: debug.c:3441
 #, c-format
 msgid "untyped variable\n"
 msgstr "variable sans type\n"
 
-#: debug.c:3482
+#: debug.c:3483
 #, c-format
 msgid "Stopping in %s ...\n"
 msgstr "Arrêt dans %s...\n"
 
-#: debug.c:3559
+#: debug.c:3560
 #, c-format
 msgid "'finish' not meaningful with non-local jump '%s'\n"
 msgstr "« finish » n'a pas de sens avec un saut non local « %s »\n"
 
-#: debug.c:3566
+#: debug.c:3567
 #, c-format
 msgid "'until' not meaningful with non-local jump '%s'\n"
 msgstr "« until » n'a pas de sens avec un saut non local « %s »\n"
 
-#: debug.c:4322
+#: debug.c:4323
 msgid "\t------[Enter] to continue or q [Enter] to quit------"
 msgstr "\t---« [Entrée] » continuer ; « q [Entrée] » quitter---"
 
-#: debug.c:4323
+#: debug.c:4324
 msgid "q"
 msgstr "q"
 
-#: debug.c:5139
+#: debug.c:5140
 #, c-format
 msgid "[\"%.*s\"] not in array `%s'"
 msgstr "[\"%.*s\"] est absent du tableau « %s »"
 
-#: debug.c:5345
+#: debug.c:5346
 #, c-format
 msgid "sending output to stdout\n"
 msgstr "envoi de la sortie vers stdout\n"
 
-#: debug.c:5385
+#: debug.c:5386
 msgid "invalid number"
 msgstr "nombre incorrect"
 
-#: debug.c:5519
+#: debug.c:5520
 #, c-format
 msgid "`%s' not allowed in current context; statement ignored"
 msgstr "« %s » interdit dans ce contexte ; instruction ignorée"
 
-#: debug.c:5527
+#: debug.c:5528
 msgid "`return' not allowed in current context; statement ignored"
 msgstr "« return » interdit dans ce contexte ; instruction ignorée"
 
-#: debug.c:5742
+#: debug.c:5743
 #, c-format
 msgid "No symbol `%s' in current context"
 msgstr "Pas de symbole « %s » dans le contexte actuel"
@@ -2131,84 +2027,70 @@ msgid "load_ext: received NULL lib_name"
 msgstr "load_ext : lib_name reçu NULL"
 
 #: ext.c:60
-#, fuzzy, c-format
+#, c-format
 msgid "load_ext: cannot open library `%s' (%s)"
-msgstr "load_ext : impossible d'ouvrir la bibliothèque « %s » (%s)\n"
+msgstr "load_ext : impossible d'ouvrir la bibliothèque « %s » (%s)"
 
 #: ext.c:66
-#, fuzzy, c-format
+#, c-format
 msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-msgstr ""
-"load_ext : bibliothèque « %s » : ne définit pas "
-"« plugin_is_GPL_compatible » (%s)\n"
+msgstr "load_ext : bibliothèque « %s » : ne définit pas « 
plugin_is_GPL_compatible » (%s)"
 
 #: ext.c:72
-#, fuzzy, c-format
+#, c-format
 msgid "load_ext: library `%s': cannot call function `%s' (%s)"
-msgstr ""
-"load_ext : bibliothèque « %s » : impossible d'appeler la fonction "
-"« %s » (%s)\n"
+msgstr "load_ext : bibliothèque « %s » : impossible d'appeler la 
fonction « %s » (%s)"
 
 #: ext.c:76
-#, fuzzy, c-format
+#, c-format
 msgid "load_ext: library `%s' initialization routine `%s' failed"
-msgstr ""
-"load_ext : bibliothèque « %s » : échec de la routine d'initialisation 
"
-"« %s »\n"
+msgstr "load_ext : bibliothèque « %s » : échec de la routine 
d'initialisation « %s »"
 
-#: ext.c:111
+#: ext.c:92
 msgid "make_builtin: missing function name"
 msgstr "make_builtin : nom de fonction manquant"
 
-#: ext.c:119 ext.c:130
+#: ext.c:100 ext.c:111
 #, c-format
 msgid "make_builtin: can't use gawk built-in `%s' as function name"
-msgstr ""
-"make_builtin : impossible d'utiliser la fonction gawk « %s » comme nom 
de "
-"fonction"
+msgstr "make_builtin : impossible d'utiliser la fonction gawk « %s » 
comme nom de fonction"
 
-#: ext.c:128
-#, fuzzy, c-format
+#: ext.c:109
+#, c-format
 msgid "make_builtin: can't use gawk built-in `%s' as namespace name"
-msgstr ""
-"make_builtin : impossible d'utiliser la fonction gawk « %s » comme nom 
de "
-"fonction"
+msgstr "make_builtin : impossible d'utiliser la fonction gawk « %s » 
comme espace de noms"
 
-#: ext.c:145
+#: ext.c:126
 #, c-format
 msgid "make_builtin: can't redefine function `%s'"
 msgstr "make_builtin : impossible de redéfinir la fonction « %s »"
 
-#: ext.c:149
+#: ext.c:130
 #, c-format
 msgid "make_builtin: function `%s' already defined"
 msgstr "make_builtin : fonction « %s » déjà définie"
 
-#: ext.c:153
+#: ext.c:134
 #, c-format
 msgid "make_builtin: function name `%s' previously defined"
 msgstr "make_builtin : nom de la fonction « %s » déjà défini"
 
-#: ext.c:157
+#: ext.c:138
 #, c-format
 msgid "make_builtin: negative argument count for function `%s'"
 msgstr "make_builtin : la fonction « %s » a un nombre négatif 
d'arguments"
 
-#: ext.c:233
+#: ext.c:214
 #, c-format
 msgid "function `%s': argument #%d: attempt to use scalar as an array"
-msgstr ""
-"fonction « %s » : argument #%d : tentative d'utilisation d'un scalaire 
comme "
-"tableau"
+msgstr "fonction « %s » : argument #%d : tentative d'utilisation d'un 
scalaire comme tableau"
 
-#: ext.c:237
+#: ext.c:218
 #, c-format
 msgid "function `%s': argument #%d: attempt to use array as a scalar"
-msgstr ""
-"fonction « %s » : argument #%d : tentative d'utiliser un tableau comme "
-"scalaire"
+msgstr "fonction « %s » : argument #%d : tentative d'utiliser un tableau 
comme scalaire"
 
-#: ext.c:251
+#: ext.c:232
 msgid "dynamic loading of library not supported"
 msgstr "chargement dynamique des bibliothèques impossible"
 
@@ -2317,93 +2199,85 @@ msgid "fork: PROCINFO is not an array!"
 msgstr "fork : PROCINFO n'est pas un tableau !"
 
 #: extension/inplace.c:131
-#, fuzzy
 msgid "inplace::begin: in-place editing already active"
-msgstr "inplace_begin : modification sur place déjà active"
+msgstr "inplace::begin : modification sur place déjà active"
 
 #: extension/inplace.c:134
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: expects 2 arguments but called with %d"
-msgstr "inplace_begin : 2 arguments attendus, appelé avec %d"
+msgstr "inplace::begin : 2 arguments attendus, appelé avec %d"
 
 #: extension/inplace.c:137
-#, fuzzy
 msgid "inplace::begin: cannot retrieve 1st argument as a string filename"
-msgstr ""
-"inplace_begin : impossible de récupérer le 1er argument comme nom de 
fichier"
+msgstr "inplace::begin : impossible de récupérer le 1er argument comme nom 
de fichier"
 
 #: extension/inplace.c:145
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: disabling in-place editing for invalid FILENAME `%s'"
-msgstr ""
-"inplace_begin : modification sur place annulée pour le fichier incorrect "
-"« %s »"
+msgstr "inplace::begin : modification sur place annulée pour le fichier 
incorrect « %s »"
 
 #: extension/inplace.c:152
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: Cannot stat `%s' (%s)"
-msgstr "inplace_begin : stat impossible sur « %s » (%s)"
+msgstr "inplace::begin : stat impossible sur « %s » (%s)"
 
 #: extension/inplace.c:159
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: `%s' is not a regular file"
-msgstr "inplace_begin : « %s » n'est pas un fichier ordinaire"
+msgstr "inplace::begin : « %s » n'est pas un fichier ordinaire"
 
 #: extension/inplace.c:170
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: mkstemp(`%s') failed (%s)"
-msgstr "inplace_begin : échec de mkstemp('%s') (%s)"
+msgstr "inplace::begin : échec de mkstemp('%s') (%s)"
 
 #: extension/inplace.c:182
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: chmod failed (%s)"
-msgstr "inplace_begin : échec de la chmod (%s)"
+msgstr "inplace::begin : échec de la chmod (%s)"
 
 #: extension/inplace.c:189
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: dup(stdout) failed (%s)"
-msgstr "inplace_begin : échec de dup(stdout) (%s)"
+msgstr "inplace::begin : échec de dup(stdout) (%s)"
 
 #: extension/inplace.c:192
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: dup2(%d, stdout) failed (%s)"
-msgstr "inplace_begin : échec de dup2(%d, stdout) (%s)"
+msgstr "inplace::begin : échec de dup2(%d, stdout) (%s)"
 
 #: extension/inplace.c:195
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: close(%d) failed (%s)"
-msgstr "inplace_begin : échec de close(%d) (%s)"
+msgstr "inplace::begin : échec de close(%d) (%s)"
 
 #: extension/inplace.c:211
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: expects 2 arguments but called with %d"
-msgstr "inplace_end : 2 arguments attendus, appelé avec %d"
+msgstr "inplace::end : 2 arguments attendus, appelé avec %d"
 
 #: extension/inplace.c:214
-#, fuzzy
 msgid "inplace::end: cannot retrieve 1st argument as a string filename"
-msgstr ""
-"inplace_end : impossible de récupérer le 1er argument comme nom de fichier"
+msgstr "inplace::end : impossible de récupérer le 1er argument comme nom de 
fichier"
 
 #: extension/inplace.c:221
-#, fuzzy
 msgid "inplace::end: in-place editing not active"
-msgstr "inplace_end : modification sur place non active"
+msgstr "inplace::end : modification sur place non active"
 
 #: extension/inplace.c:227
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: dup2(%d, stdout) failed (%s)"
-msgstr "ipnlace_end : échec de dup2(%d, stdout) (%s)"
+msgstr "inplace::end : échec de dup2(%d, stdout) (%s)"
 
 #: extension/inplace.c:230
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: close(%d) failed (%s)"
-msgstr "inplace_end : échec de close(%d) (%s)"
+msgstr "inplace::end : échec de close(%d) (%s)"
 
 #: extension/inplace.c:234
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: fsetpos(stdout) failed (%s)"
-msgstr "inplace_end : échec de fsetpos(stdout) (%s)"
+msgstr "inplace::end : échec de fsetpos(stdout) (%s)"
 
 #: extension/inplace.c:247
 #, c-format
@@ -2411,9 +2285,9 @@ msgid "inplace_end: link(`%s', `%s') failed (%s)"
 msgstr "inplace_end : échec de link('%s', '%s') (%s)"
 
 #: extension/inplace.c:257
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: rename(`%s', `%s') failed (%s)"
-msgstr "inplace_end : échec de rename('%s', '%s') (%s)"
+msgstr "inplace::end : échec de rename('%s', '%s') (%s)"
 
 #: extension/ordchr.c:72
 msgid "ord: called with inappropriate argument(s)"
@@ -2484,8 +2358,7 @@ msgstr "read_array : échec de set_array_element\n"
 #: extension/rwarray.c:489
 #, c-format
 msgid "treating recovered value with unknown type code %d as a string"
-msgstr ""
-"valeur récupérée avec un code de type inconnu %d traitée comme une 
chaîne"
+msgstr "valeur récupérée avec un code de type inconnu %d traitée comme une 
chaîne"
 
 #: extension/time.c:141
 msgid "gettimeofday: not supported on this platform"
@@ -2513,11 +2386,11 @@ msgstr "une valeur négative a été assignée à NF"
 
 #: field.c:403
 msgid "decrementing NF is not portable to many awk versions"
-msgstr ""
+msgstr "décrémenter NF n'est pas portable vers de nombreux awk"
 
 #: field.c:847
 msgid "accessing fields from an END rule may not be portable"
-msgstr ""
+msgstr "accéder aux champs depuis un END pourrait ne pas être portable"
 
 #: field.c:975 field.c:982
 msgid "split: fourth argument is a gawk extension"
@@ -2537,18 +2410,15 @@ msgstr "split : impossible d'utiliser le même tableau 
comme 2e et 4e argument"
 
 #: field.c:998
 msgid "split: cannot use a subarray of second arg for fourth arg"
-msgstr ""
-"split : impossible d'utiliser un sous-tableau du 2e argument en 4e argument"
+msgstr "split : impossible d'utiliser un sous-tableau du 2e argument en 4e 
argument"
 
 #: field.c:1001
 msgid "split: cannot use a subarray of fourth arg for second arg"
-msgstr ""
-"split : impossible d'utiliser un sous-tableau du 4e argument en 2e argument"
+msgstr "split : impossible d'utiliser un sous-tableau du 4e argument en 2e 
argument"
 
 #: field.c:1035
-#, fuzzy
 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 
gawk"
+msgstr "split : utiliser une chaîne vide en 3e argument est une extension 
non standard"
 
 #: field.c:1072
 msgid "patsplit: fourth argument is not an array"
@@ -2564,20 +2434,15 @@ msgstr "patsplit : le 3e argument n'est pas un tableau"
 
 #: field.c:1090
 msgid "patsplit: cannot use the same array for second and fourth args"
-msgstr ""
-"patsplit : impossible d'utiliser le même tableau comme 2e et 4e argument"
+msgstr "patsplit : impossible d'utiliser le même tableau comme 2e et 4e 
argument"
 
 #: field.c:1095
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
-msgstr ""
-"patsplit : impossible d'utiliser un sous-tableau du 2e argument en 4e "
-"argument"
+msgstr "patsplit : impossible d'utiliser un sous-tableau du 2e argument en 4e 
argument"
 
 #: field.c:1098
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
-msgstr ""
-"patsplit : impossible d'utiliser un sous-tableau du 4e argument en 2e "
-"argument"
+msgstr "patsplit : impossible d'utiliser un sous-tableau du 4e argument en 2e 
argument"
 
 #: field.c:1148
 msgid "`FIELDWIDTHS' is a gawk extension"
@@ -2598,8 +2463,7 @@ msgstr "utiliser une chaîne vide pour « FS » est une 
extension gawk"
 
 #: field.c:1315
 msgid "old awk does not support regexps as value of `FS'"
-msgstr ""
-"l'ancien awk n'accepte pas les expr. rationnelles comme valeur de « FS »"
+msgstr "l'ancien awk n'accepte pas les expr. rationnelles comme valeur de « 
FS »"
 
 #: field.c:1442
 msgid "`FPAT' is a gawk extension"
@@ -2623,18 +2487,13 @@ msgid "awk_value_to_node: invalid number type `%d'"
 msgstr "awk_value_to_node : type numérique incorrect « %d »"
 
 #: gawkapi.c:385
-#, fuzzy
 msgid "add_ext_func: received NULL name_space parameter"
-msgstr "load_ext : lib_name reçu NULL"
+msgstr "add_ext_func : réception d'un espace de noms NULL"
 
 #: gawkapi.c:523
 #, c-format
-msgid ""
-"node_to_awk_value: detected invalid numeric flags combination `%s'; please "
-"file a bug report."
-msgstr ""
-"node_to_awk_value : utilisation de drapeaux numériques incorrects « %s 
». "
-"Merci de nous remonter l'erreur."
+msgid "node_to_awk_value: detected invalid numeric flags combination `%s'; 
please file a bug report."
+msgstr "node_to_awk_value : utilisation de drapeaux numériques incorrects 
« %s ». Merci de nous remonter l'erreur."
 
 #: gawkapi.c:551
 msgid "node_to_awk_value: received null node"
@@ -2646,12 +2505,8 @@ msgstr "node_to_awk_value : val nul reçu"
 
 #: gawkapi.c:610 gawkapi.c:644 gawkapi.c:671 gawkapi.c:704
 #, c-format
-msgid ""
-"node_to_awk_value detected invalid flags combination `%s'; please file a bug "
-"report."
-msgstr ""
-"node_to_awk_value : utilisation de drapeaux incorrects « %s ». Merci de 
nous "
-"remonter l'erreur."
+msgid "node_to_awk_value detected invalid flags combination `%s'; please file 
a bug report."
+msgstr "node_to_awk_value : utilisation de drapeaux incorrects « %s ». 
Merci de nous remonter l'erreur."
 
 #: gawkapi.c:1082
 msgid "remove_element: received null array"
@@ -2662,14 +2517,14 @@ msgid "remove_element: received null subscript"
 msgstr "remove_element : indice nul reçu"
 
 #: gawkapi.c:1217
-#, fuzzy, c-format
+#, c-format
 msgid "api_flatten_array_typed: could not convert index %d to %s"
-msgstr "api_flatten_array_typed : impossible de convertir l'indice %d en %s\n"
+msgstr "api_flatten_array_typed : impossible de convertir l'indice %d en %s"
 
 #: gawkapi.c:1222
-#, fuzzy, c-format
+#, c-format
 msgid "api_flatten_array_typed: could not convert value %d to %s"
-msgstr "api_flatten_array_typed : impossible de convertir la valeur %d en 
%s\n"
+msgstr "api_flatten_array_typed : impossible de convertir la valeur %d en %s"
 
 #: gawkapi.c:1318 gawkapi.c:1334
 msgid "api_get_mpfr: MPFR not supported"
@@ -2715,11 +2570,8 @@ msgstr "l'expression dans la redirection « %s » 
donne une chaîne nulle"
 
 #: io.c:796
 #, c-format
-msgid ""
-"filename `%.*s' for `%s' redirection may be result of logical expression"
-msgstr ""
-"le fichier « %.*s » de la redirection « %s » pourrait être le 
résultat d'une "
-"expression booléenne"
+msgid "filename `%.*s' for `%s' redirection may be result of logical 
expression"
+msgstr "le fichier « %.*s » de la redirection « %s » pourrait être le 
résultat d'une expression booléenne"
 
 #: io.c:844
 #, c-format
@@ -2743,17 +2595,13 @@ msgstr "impossible d'ouvrir le tube « %s » en 
entrée (%s)"
 
 #: io.c:950
 #, c-format
-msgid ""
-"get_file socket creation not supported on this platform for `%s' with fd %d"
-msgstr ""
-"création d'un connecteur via get_file non disponible sur cette plateforme "
-"pour « %s » avec le fd %d"
+msgid "get_file socket creation not supported on this platform for `%s' with 
fd %d"
+msgstr "création d'un connecteur via get_file non disponible sur cette 
plateforme pour « %s » avec le fd %d"
 
 #: io.c:961
 #, c-format
 msgid "can't open two way pipe `%s' for input/output (%s)"
-msgstr ""
-"impossible d'ouvrir un tube bidirectionnel « %s » en entrées-sorties 
(%s)"
+msgstr "impossible d'ouvrir un tube bidirectionnel « %s » en 
entrées-sorties (%s)"
 
 #: io.c:1048
 #, c-format
@@ -2766,11 +2614,8 @@ msgid "can't redirect to `%s' (%s)"
 msgstr "impossible de rediriger vers « %s » (%s)"
 
 #: io.c:1153
-msgid ""
-"reached system limit for open files: starting to multiplex file descriptors"
-msgstr ""
-"limite système du nombre de fichiers ouverts atteinte : début du "
-"multiplexage des descripteurs de fichiers"
+msgid "reached system limit for open files: starting to multiplex file 
descriptors"
+msgstr "limite système du nombre de fichiers ouverts atteinte : début du 
multiplexage des descripteurs de fichiers"
 
 #: io.c:1169
 #, c-format
@@ -2788,8 +2633,7 @@ msgstr "close : le second argument doit être « to » 
ou « from »"
 #: io.c:1221
 #, c-format
 msgid "close: `%.*s' is not an open file, pipe or co-process"
-msgstr ""
-"close : « %.*s » n'est ni un fichier ouvert, ni un tube ou un 
co-processus"
+msgstr "close : « %.*s » n'est ni un fichier ouvert, ni un tube ou un 
co-processus"
 
 #: io.c:1226
 msgid "close of redirection that was never opened"
@@ -2798,9 +2642,7 @@ msgstr "fermeture d'une redirection qui n'a jamais été 
ouverte"
 #: io.c:1325
 #, c-format
 msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr ""
-"close : la redirection « %s » n'a pas été ouverte avec « |& », 
second "
-"argument ignoré"
+msgstr "close : la redirection « %s » n'a pas été ouverte avec « |& 
», second argument ignoré"
 
 #: io.c:1342
 #, c-format
@@ -2909,9 +2751,7 @@ msgstr "échec de la fermeture de stdout du processus 
fils (%s)"
 #: io.c:2022 io.c:2074
 #, c-format
 msgid "moving slave pty to stdout in child failed (dup: %s)"
-msgstr ""
-"échec du déplacement du pty esclave vers le stdout du processus fils (dup 
: "
-"%s)"
+msgstr "échec du déplacement du pty esclave vers le stdout du processus fils 
(dup : %s)"
 
 #: io.c:2024 io.c:2076 io.c:2423
 #, c-format
@@ -2921,9 +2761,7 @@ msgstr "échec de fermeture du stdin du processus fils 
(%s)"
 #: io.c:2027 io.c:2079
 #, c-format
 msgid "moving slave pty to stdin in child failed (dup: %s)"
-msgstr ""
-"échec du déplacement du pty esclave vers le stdin du processus fils (dup : 
"
-"%s)"
+msgstr "échec du déplacement du pty esclave vers le stdin du processus fils 
(dup : %s)"
 
 #: io.c:2029 io.c:2081 io.c:2103
 #, c-format
@@ -2945,14 +2783,12 @@ msgid "moving pipe to stdin in child failed (dup: %s)"
 msgstr "échec de déplacement du tube vers stdin du processus fils (dup : 
%s)"
 
 #: io.c:2386 io.c:2655
-#, fuzzy
 msgid "restoring stdout in parent process failed"
-msgstr "échec de la restauration du stdout dans le processus parent\n"
+msgstr "échec de la restauration du stdout dans le processus parent"
 
 #: io.c:2394
-#, fuzzy
 msgid "restoring stdin in parent process failed"
-msgstr "échec de la restauration du stdin dans le processus parent\n"
+msgstr "échec de la restauration du stdin dans le processus parent"
 
 #: io.c:2429 io.c:2667 io.c:2682
 #, c-format
@@ -2975,8 +2811,7 @@ msgstr "impossible de créer le processus fils pour « 
%s » (fork : %s)"
 
 #: io.c:2814
 msgid "getline: attempt to read from closed read end of two-way pipe"
-msgstr ""
-"getline : tentative de lecture vers un tube bidirectionnel fermé côté 
lecture"
+msgstr "getline : tentative de lecture vers un tube bidirectionnel fermé 
côté lecture"
 
 #: io.c:3138
 msgid "register_input_parser: received NULL pointer"
@@ -2985,9 +2820,7 @@ msgstr "register_input_parser : pointeur NULL reçu"
 #: io.c:3166
 #, c-format
 msgid "input parser `%s' conflicts with previously installed input parser `%s'"
-msgstr ""
-"l'analyseur d'entrée « %s » est en conflit avec l'analyseur « %s » 
déjà "
-"installé"
+msgstr "l'analyseur d'entrée « %s » est en conflit avec l'analyseur « 
%s » déjà installé"
 
 #: io.c:3173
 #, c-format
@@ -3000,10 +2833,8 @@ msgstr "register_output_wrapper : pointeur NULL reçu"
 
 #: io.c:3221
 #, c-format
-msgid ""
-"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
-msgstr ""
-"le filtre de sortie « %s » est en conflit avec le filtre « %s » déjà
 installé"
+msgid "output wrapper `%s' conflicts with previously installed output wrapper 
`%s'"
+msgstr "le filtre de sortie « %s » est en conflit avec le filtre « %s 
» déjà installé"
 
 #: io.c:3228
 #, c-format
@@ -3016,12 +2847,8 @@ msgstr "register_output_processor : pointeur NULL reçu"
 
 #: io.c:3278
 #, c-format
-msgid ""
-"two-way processor `%s' conflicts with previously installed two-way processor "
-"`%s'"
-msgstr ""
-"le gestionnaire bidirectionnel « %s » est en conflit avec le gestionnaire 
"
-"« %s » déjà installé"
+msgid "two-way processor `%s' conflicts with previously installed two-way 
processor `%s'"
+msgstr "le gestionnaire bidirectionnel « %s » est en conflit avec le 
gestionnaire « %s » déjà installé"
 
 #: io.c:3287
 #, c-format
@@ -3039,8 +2866,7 @@ msgstr "impossible d'allouer plus de mémoire d'entrée"
 
 #: io.c:4079
 msgid "multicharacter value of `RS' is a gawk extension"
-msgstr ""
-"l'utilisation d'un « RS » de plusieurs caractères est une extension gawk"
+msgstr "l'utilisation d'un « RS » de plusieurs caractères est une 
extension gawk"
 
 #: io.c:4233
 msgid "IPv6 communication is not supported"
@@ -3048,9 +2874,7 @@ msgstr "les communications IPv6 ne sont pas disponibles"
 
 #: main.c:331
 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
-msgstr ""
-"variable d'environnement « POSIXLY__CORRECT » définie : activation de 
« --"
-"posix »"
+msgstr "variable d'environnement « POSIXLY__CORRECT » définie : 
activation de « --posix »"
 
 #: main.c:337
 msgid "`--posix' overrides `--traditional'"
@@ -3058,14 +2882,12 @@ msgstr "« --posix » prend le pas sur « 
--traditional »"
 
 #: main.c:348
 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
-msgstr ""
-"« --posix » et « --traditional » prennent le pas sur « 
--non-decimal-data »"
+msgstr "« --posix » et « --traditional » prennent le pas sur « 
--non-decimal-data »"
 
 #: main.c:352
 #, c-format
 msgid "running %s setuid root may be a security problem"
-msgstr ""
-"l'exécution de %s en mode setuid root peut être un problème de sécurité"
+msgstr "l'exécution de %s en mode setuid root peut être un problème de 
sécurité"
 
 #: main.c:356
 msgid "`--posix' overrides `--characters-as-bytes'"
@@ -3093,14 +2915,12 @@ msgstr "aucun programme !"
 #: main.c:576
 #, c-format
 msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
-msgstr ""
-"Utilisation : %s [options GNU ou POSIX] -f fichier_prog [--] fichier ...\n"
+msgstr "Utilisation : %s [options GNU ou POSIX] -f fichier_prog [--] fichier 
...\n"
 
 #: main.c:578
 #, c-format
 msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
-msgstr ""
-"Utilisation : %s [options GNU ou POSIX] [--] %cprogramme%c fichier ...\n"
+msgstr "Utilisation : %s [options GNU ou POSIX] [--] %cprogramme%c fichier 
...\n"
 
 #: main.c:583
 msgid "POSIX options:\t\tGNU long options: (standard)\n"
@@ -3226,13 +3046,12 @@ msgid "\t-W nostalgia\t\t--nostalgia\n"
 msgstr "\t-W nostalgia\t\t--nostalgia\n"
 
 #: main.c:620
-#, fuzzy
 msgid "\t-Y\t\t\t--parsedebug\n"
-msgstr "\t-Y\t\t--parsedebug\n"
+msgstr "\t-Y\t\t\t--parsedebug\n"
 
 #: main.c:623
 msgid "\t-Z locale-name\t\t--locale=locale-name\n"
-msgstr ""
+msgstr "\t-Z nom-locale\t\t--locale=nom-locale\n"
 
 #. TRANSLATORS: --help output 5 (end)
 #. TRANSLATORS: the placeholder indicates the bug-reporting address
@@ -3240,7 +3059,6 @@ msgstr ""
 #. address for translation bugs.
 #. no-wrap
 #: main.c:632
-#, fuzzy
 msgid ""
 "\n"
 "To report bugs, see node `Bugs' in `gawk.info'\n"
@@ -3253,11 +3071,14 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Pour signaler une anomalie, consultez la section « Bugs » de\n"
+"Pour signaler une anomalie, consultez le nœud « Bugs » de\n"
 "« gawk.info », qui est dans la section « Reporting Problems and Bugs 
»\n"
 "de la version imprimée. Vous trouverez les mêmes informations sur\n"
 "https://www.gnu.org/software/gawk/manual/html_node/Bugs.html.\n";
-"MERCI de ne PAS essayer de signaler une anomalie via comp.lang.awk.\n"
+"MERCI de ne PAS essayer de signaler une anomalie via comp.lang.awk,\n"
+"\n"
+"ou en utilisant un forum internet tel que Stack Overflow.\n"
+"\n"
 "Pour signaler une erreur de traduction, envoyez un message à la liste\n"
 "address@hidden"
 "\n"
@@ -3477,12 +3298,8 @@ msgstr "aucun chiffre hexadécimal dans la séquence 
d'échappement « \\x »
 
 #: node.c:633
 #, c-format
-msgid ""
-"hex escape \\x%.*s of %d characters probably not interpreted the way you "
-"expect"
-msgstr ""
-"la séquence d'échappement hexa. \\x%.*s de %d caractères ne sera "
-"probablement pas interprétée comme vous l'imaginez"
+msgid "hex escape \\x%.*s of %d characters probably not interpreted the way 
you expect"
+msgstr "la séquence d'échappement hexa. \\x%.*s de %d caractères ne sera 
probablement pas interprétée comme vous l'imaginez"
 
 #: node.c:648
 #, c-format
@@ -3490,28 +3307,22 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
 msgstr "séquence d'échappement « \\%c » traitée comme un simple « %c 
»"
 
 #: node.c:784
-msgid ""
-"Invalid multibyte data detected. There may be a mismatch between your data "
-"and your locale."
-msgstr ""
-"Données multioctets incorrectes détectées. Possible incohérence entre "
-"données et paramètres régionaux (locale)."
+msgid "Invalid multibyte data detected. There may be a mismatch between your 
data and your locale."
+msgstr "Données multioctets incorrectes détectées. Possible incohérence 
entre données et paramètres régionaux (locale)."
 
 #: posix/gawkmisc.c:177
 #, c-format
 msgid "%s %s `%s': could not get fd flags: (fcntl F_GETFD: %s)"
-msgstr ""
-"%s %s « %s » : impossible d'obtenir les drapeaux du fd : (fcntl 
F_GETFD: %s)"
+msgstr "%s %s « %s » : impossible d'obtenir les drapeaux du fd : (fcntl 
F_GETFD: %s)"
 
 #: posix/gawkmisc.c:189
 #, c-format
 msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
-msgstr ""
-"%s %s « %s »: impossible de positionner close-on-exec: (fcntl F_SETFD: 
%s)"
+msgstr "%s %s « %s »: impossible de positionner close-on-exec: (fcntl 
F_SETFD: %s)"
 
 #: profile.c:73
 msgid "Program indentation level too deep. Consider refactoring your code"
-msgstr ""
+msgstr "Trop de niveaux d'indentation. Envisagez de restructurer votre code"
 
 #: profile.c:110
 #, c-format
@@ -3550,22 +3361,23 @@ msgid "internal error: builtin with null fname"
 msgstr "erreur interne : fonction interne avec un fname nul"
 
 #: profile.c:1298
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "%s# Loaded extensions (-l and/or @load)\n"
 "\n"
 msgstr ""
-"\t# Extensions chargées (-l ou @load)\n"
+"%s# Extensions chargées (via -l ou @load)\n"
 "\n"
 
 #: profile.c:1329
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "# Included files (-i and/or @include)\n"
 "\n"
 msgstr ""
-"\t# Extensions chargées (-l ou @load)\n"
+"\n"
+"# Fichiers inclus (via -i ou @include)\n"
 "\n"
 
 #: profile.c:1393
@@ -3588,31 +3400,27 @@ msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str : type de redirection %d inconnu"
 
 #: re.c:58 re.c:161
-msgid ""
-"behavior of matching a regexp containing NUL characters is not defined by "
-"POSIX"
-msgstr ""
+msgid "behavior of matching a regexp containing NUL characters is not defined 
by POSIX"
+msgstr "le comportement d'une exp. rationnelle incluant des caractères NUL 
est non défini pour POSIX"
 
 #: re.c:125
 msgid "invalid NUL byte in dynamic regexp"
-msgstr ""
+msgstr "octet NUL invalide dans une exp. rationnelle dynamique"
 
 #: re.c:172
-#, fuzzy, c-format
+#, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
-msgstr "séquence d'échappement « \\%c » traitée comme un simple « %c 
»"
+msgstr "séquence d'échappement d'exp. rationnelle « \\%c » traitée 
comme un simple « %c »"
 
 #: re.c:191
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
-msgstr ""
+msgstr "séquence d'échappement d'exp. rationnelle « \\%c » n'est pas un 
opérateur connu"
 
 #: re.c:650
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
-msgstr ""
-"le composant d'expression rationnelle « %.*s » devrait probablement être 
"
-"« [%.*s] »"
+msgstr "le composant d'expression rationnelle « %.*s » devrait 
probablement être « [%.*s] »"
 
 #: support/dfa.c:1015
 msgid "unbalanced ["
@@ -3781,8 +3589,7 @@ msgstr "Aucune expression rationnelle précédente"
 #: symbol.c:688
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
-msgstr ""
-"fonction « %s » : impossible d'utiliser la fonction « %s » comme 
paramètre"
+msgstr "fonction « %s » : impossible d'utiliser la fonction « %s » 
comme paramètre"
 
 #: symbol.c:818
 msgid "can not pop main context"
@@ -3804,8 +3611,7 @@ msgstr "impossible de rétablir (pop) le contexte 
principal (main)"
 #~ msgstr "« isarray » est obsolète. Utilisez « typeof »"
 
 #~ msgid "attempt to use array `%s[\".*%s\"]' in a scalar context"
-#~ msgstr ""
-#~ "tentative d'utilisation du tableau « %s[\".*%s\"] » en contexte 
scalaire"
+#~ msgstr "tentative d'utilisation du tableau « %s[\".*%s\"] » en contexte 
scalaire"
 
 #~ msgid "attempt to use scalar `%s[\".*%s\"]' as array"
 #~ msgstr "tentative d'utiliser le scalaire « %s[\".*%s\"] » comme tableau"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 88658fb..37b1878 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,18 +1,17 @@
 # Brazilian Portuguese translation for gawk package
 # Traduções em português brasileiro para o pacote gawk
-# Copyright (C) 2017 Free Software Foundation, Inc.
+# Copyright (C) 2019 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gawk package.
 # Juan Carlos Castro y Castro <address@hidden>, 2003.
-# Rafael Fontenelle <address@hidden>, 2017-2018.
+# Rafael Fontenelle <address@hidden>, 2017-2019.
 msgid ""
 msgstr ""
-"Project-Id-Version: gawk 4.2.0e\n"
+"Project-Id-Version: gawk 4.2.62\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2019-01-26 21:24+0200\n"
-"PO-Revision-Date: 2018-01-30 09:57-0200\n"
+"POT-Creation-Date: 2019-02-11 21:00+0200\n"
+"PO-Revision-Date: 2019-02-12 15:00-0200\n"
 "Last-Translator: Rafael Fontenelle <address@hidden>\n"
-"Language-Team: Brazilian Portuguese <address@hidden"
-"net>\n"
+"Language-Team: Brazilian Portuguese <address@hidden>\n"
 "Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -79,23 +78,19 @@ msgstr "asorti: primeiro argumento não é um vetor"
 
 #: array.c:840
 msgid "asort: cannot use a subarray of first arg for second arg"
-msgstr ""
-"asort: não é possível usar um subvetor do primeiro arg para o segundo arg"
+msgstr "asort: não é possível usar um subvetor do primeiro arg para o 
segundo arg"
 
 #: array.c:841
 msgid "asorti: cannot use a subarray of first arg for second arg"
-msgstr ""
-"asorti: não é possível usar um subvetor do primeiro arg para o segundo arg"
+msgstr "asorti: não é possível usar um subvetor do primeiro arg para o 
segundo arg"
 
 #: array.c:846
 msgid "asort: cannot use a subarray of second arg for first arg"
-msgstr ""
-"asort: não é possível usar um subvetor do segundo arg para o primeiro arg"
+msgstr "asort: não é possível usar um subvetor do segundo arg para o 
primeiro arg"
 
 #: array.c:847
 msgid "asorti: cannot use a subarray of second arg for first arg"
-msgstr ""
-"asorti: não é possível usar um subvetor do segundo arg para o primeiro arg"
+msgstr "asorti: não é possível usar um subvetor do segundo arg para o 
primeiro arg"
 
 #: array.c:1310
 #, c-format
@@ -118,429 +113,410 @@ msgstr "cada regra deve ter um padrão ou uma parte de 
ação"
 
 #: awkgram.y:418 awkgram.y:430
 msgid "old awk does not support multiple `BEGIN' or `END' rules"
-msgstr ""
-"o velho awk não oferece suporte regras múltiplas de \"BEGIN\" ou \"END\""
+msgstr "o velho awk não oferece suporte regras múltiplas de \"BEGIN\" ou 
\"END\""
 
-#: awkgram.y:497
+#: awkgram.y:483
 #, c-format
 msgid "`%s' is a built-in function, it cannot be redefined"
 msgstr "\"%s\" é uma função intrínseca, não pode ser redefinida"
 
-#: awkgram.y:561
+#: awkgram.y:547
 msgid "regexp constant `//' looks like a C++ comment, but is not"
-msgstr ""
-"a constante de expr. reg. \"//\" parece ser um comentário C++, mas não é"
+msgstr "a constante de expr. reg. \"//\" parece ser um comentário C++, mas 
não é"
 
-#: awkgram.y:565
+#: awkgram.y:551
 #, c-format
 msgid "regexp constant `/%s/' looks like a C comment, but is not"
-msgstr ""
-"a constante de expr. reg. \"/%s/\" parece ser um comentário C, mas não é"
+msgstr "a constante de expr. reg. \"/%s/\" parece ser um comentário C, mas 
não é"
 
-#: awkgram.y:692
+#: awkgram.y:678
 #, c-format
 msgid "duplicate case values in switch body: %s"
 msgstr "valores de case duplicados no corpo do switch: %s"
 
-#: awkgram.y:713
+#: awkgram.y:699
 msgid "duplicate `default' detected in switch body"
 msgstr "\"default\" duplicados detectados no corpo do switch"
 
-#: awkgram.y:1048 awkgram.y:4461
+#: awkgram.y:1034 awkgram.y:4447
 msgid "`break' is not allowed outside a loop or switch"
 msgstr "\"break\" não é permitido fora um loop ou switch"
 
-#: awkgram.y:1058 awkgram.y:4453
+#: awkgram.y:1044 awkgram.y:4439
 msgid "`continue' is not allowed outside a loop"
 msgstr "\"continue\" não é permitido fora de um loop"
 
-#: awkgram.y:1069
+#: awkgram.y:1055
 #, c-format
 msgid "`next' used in %s action"
 msgstr "\"next\" usado na ação %s"
 
-#: awkgram.y:1080
+#: awkgram.y:1066
 #, c-format
 msgid "`nextfile' used in %s action"
 msgstr "\"nextfile\" usado na ação %s"
 
-#: awkgram.y:1108
+#: awkgram.y:1094
 msgid "`return' used outside function context"
 msgstr "\"return\" usado fora do contexto de função"
 
-#: awkgram.y:1178
+#: awkgram.y:1164
 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr ""
-"\"print\" sozinho em regra BEGIN ou END provavelmente deveria ser 'print "
-"\"\"'"
+msgstr "\"print\" sozinho em regra BEGIN ou END provavelmente deveria ser 
'print \"\"'"
 
-#: awkgram.y:1244 awkgram.y:1293
+#: awkgram.y:1230 awkgram.y:1279
 msgid "`delete' is not allowed with SYMTAB"
 msgstr "\"delete\" não é permitido com SYMTAB"
 
-#: awkgram.y:1246 awkgram.y:1295
+#: awkgram.y:1232 awkgram.y:1281
 msgid "`delete' is not allowed with FUNCTAB"
 msgstr "\"delete\" não é permitido com FUNCTAB"
 
-#: awkgram.y:1280 awkgram.y:1284
+#: awkgram.y:1266 awkgram.y:1270
 msgid "`delete(array)' is a non-portable tawk extension"
 msgstr "\"delete(array)\" é uma extensão não portável do tawk"
 
-#: awkgram.y:1420
+#: awkgram.y:1406
 msgid "multistage two-way pipelines don't work"
 msgstr "pipelines bidirecionais de múltiplos estágios não funcionam"
 
-#: awkgram.y:1422
+#: awkgram.y:1408
 msgid "concatenation as I/O `>' redirection target is ambiguous"
-msgstr ""
+msgstr "concatenação como alvo de redirecionamento de E/S \">\" é amgíguo"
 
-#: awkgram.y:1626
+#: awkgram.y:1612
 msgid "regular expression on right of assignment"
 msgstr "expressão regular à direita de atribuição"
 
-#: awkgram.y:1641 awkgram.y:1654
+#: awkgram.y:1627 awkgram.y:1640
 msgid "regular expression on left of `~' or `!~' operator"
 msgstr "expressão regular à esquerda de operador \"~\" ou \"!~\""
 
-#: awkgram.y:1671 awkgram.y:1820
+#: awkgram.y:1657 awkgram.y:1806
 msgid "old awk does not support the keyword `in' except after `for'"
-msgstr ""
-"o velho awk não oferece suporte à palavra-chave \"in\", exceto após 
\"for\""
+msgstr "o velho awk não oferece suporte à palavra-chave \"in\", exceto após 
\"for\""
 
-#: awkgram.y:1681
+#: awkgram.y:1667
 msgid "regular expression on right of comparison"
 msgstr "expressão regular à direita de comparação"
 
-#: awkgram.y:1800
+#: awkgram.y:1786
 #, c-format
 msgid "non-redirected `getline' invalid inside `%s' rule"
 msgstr "\"getline\" não redirecionado inválido dentro da regra \"%s\""
 
-#: awkgram.y:1803
+#: awkgram.y:1789
 msgid "non-redirected `getline' undefined inside END action"
 msgstr "\"getline\" não redirecionado indefinido dentro da ação END"
 
-#: awkgram.y:1822
+#: awkgram.y:1808
 msgid "old awk does not support multidimensional arrays"
 msgstr "o velho awk não oferece suporte a vetores multidimensionais"
 
-#: awkgram.y:1925
+#: awkgram.y:1911
 msgid "call of `length' without parentheses is not portable"
 msgstr "chamada de \"length\" sem parênteses não é portável"
 
-#: awkgram.y:1999
+#: awkgram.y:1985
 msgid "indirect function calls are a gawk extension"
 msgstr "chamadas indiretas de função são uma extensão do gawk"
 
-#: awkgram.y:2012
+#: awkgram.y:1998
 #, c-format
 msgid "can not use special variable `%s' for indirect function call"
-msgstr ""
-"não é possível usar a variável especial \"%s\" para chamada indireta de "
-"função"
+msgstr "não é possível usar a variável especial \"%s\" para chamada 
indireta de função"
 
-#: awkgram.y:2045
+#: awkgram.y:2031
 #, c-format
 msgid "attempt to use non-function `%s' in function call"
 msgstr "tentativa de usar não função \"%s\" em chamada de função"
 
-#: awkgram.y:2110
+#: awkgram.y:2096
 msgid "invalid subscript expression"
 msgstr "expressão de índice inválida"
 
-#: awkgram.y:2483 awkgram.y:2503 gawkapi.c:273 gawkapi.c:290 msg.c:130
+#: awkgram.y:2469 awkgram.y:2489 gawkapi.c:273 gawkapi.c:290 msg.c:130
 msgid "warning: "
 msgstr "aviso: "
 
-#: awkgram.y:2501 gawkapi.c:245 gawkapi.c:288 msg.c:162
+#: awkgram.y:2487 gawkapi.c:245 gawkapi.c:288 msg.c:162
 msgid "fatal: "
 msgstr "fatal: "
 
-#: awkgram.y:2554
+#: awkgram.y:2540
 msgid "unexpected newline or end of string"
 msgstr "nova linha ou fim de string inesperado"
 
-#: awkgram.y:2575
-msgid ""
-"source files / command-line arguments must contain complete functions or "
-"rules"
-msgstr ""
+#: awkgram.y:2561
+msgid "source files / command-line arguments must contain complete functions 
or rules"
+msgstr "arquivos-fonte/argumentos de linha de comando devem conter funções 
ou regras completas"
 
-#: awkgram.y:2855 awkgram.y:2933 awkgram.y:3171 debug.c:531 debug.c:547
-#: debug.c:2824 debug.c:5193
+#: awkgram.y:2841 awkgram.y:2919 awkgram.y:3157 debug.c:536 debug.c:552
+#: debug.c:2829 debug.c:5194
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
 msgstr "não foi possível abrir arquivo-fonte \"%s\" para leitura (%s)"
 
-#: awkgram.y:2856 awkgram.y:2993
+#: awkgram.y:2842 awkgram.y:2979
 #, c-format
 msgid "can't open shared library `%s' for reading (%s)"
-msgstr ""
-"não foi possível abrir a biblioteca compartilhada \"%s\" para leitura (%s)"
+msgstr "não foi possível abrir a biblioteca compartilhada \"%s\" para 
leitura (%s)"
 
-#: awkgram.y:2858 awkgram.y:2934 awkgram.y:2994 builtin.c:149 debug.c:5344
+#: awkgram.y:2844 awkgram.y:2920 awkgram.y:2980 builtin.c:149 debug.c:5345
 msgid "reason unknown"
 msgstr "motivo desconhecido"
 
-#: awkgram.y:2867 awkgram.y:2891
+#: awkgram.y:2853 awkgram.y:2877
 #, c-format
 msgid "can't include `%s' and use it as a program file"
 msgstr "não é possível incluir \"%s\" e usá-lo como um arquivo de programa"
 
-#: awkgram.y:2880
+#: awkgram.y:2866
 #, c-format
 msgid "already included source file `%s'"
 msgstr "arquivo-fonte \"%s\" já incluso"
 
-#: awkgram.y:2881
+#: awkgram.y:2867
 #, c-format
 msgid "already loaded shared library `%s'"
 msgstr "biblioteca compartilhada \"%s\" já carregada"
 
-#: awkgram.y:2918
+#: awkgram.y:2904
 msgid "@include is a gawk extension"
 msgstr "@include é uma extensão do gawk"
 
-#: awkgram.y:2924
+#: awkgram.y:2910
 msgid "empty filename after @include"
 msgstr "nome de arquivo vazio após @include"
 
-#: awkgram.y:2973
+#: awkgram.y:2959
 msgid "@load is a gawk extension"
 msgstr "@load é uma extensão do gawk"
 
-#: awkgram.y:2980
+#: awkgram.y:2966
 msgid "empty filename after @load"
 msgstr "nome de arquivo vazio após @load"
 
-#: awkgram.y:3123
+#: awkgram.y:3109
 msgid "empty program text on command line"
 msgstr "texto de programa vazio na linha de comando"
 
-#: awkgram.y:3238
+#: awkgram.y:3224
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
 msgstr "não foi possível ler arquivo-fonte \"%s\" (%s)"
 
-#: awkgram.y:3249
+#: awkgram.y:3235
 #, c-format
 msgid "source file `%s' is empty"
 msgstr "arquivo-fonte \"%s\" está vazio"
 
-#: awkgram.y:3308
+#: awkgram.y:3294
 #, c-format
 msgid "PEBKAC error: invalid character '\\%03o' in source code"
 msgstr "erro PEBKAC: caractere inválido \"\\%03o\" no código-fonte"
 
-#: awkgram.y:3535
+#: awkgram.y:3521
 msgid "source file does not end in newline"
 msgstr "arquivo-fonte não termina em nova linha"
 
-#: awkgram.y:3656
+#: awkgram.y:3642
 msgid "unterminated regexp ends with `\\' at end of file"
 msgstr "expressão regular inacabada termina com \"\\\" no fim do arquivo"
 
-#: awkgram.y:3683
+#: awkgram.y:3669
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "%s: %d: modificador tawk regex \"/../%c\" não funciona no gawk"
 
-#: awkgram.y:3687
+#: awkgram.y:3673
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
 msgstr "modificador tawk regex \"/../%c\" não funciona no gawk"
 
-#: awkgram.y:3700
+#: awkgram.y:3686
 msgid "unterminated regexp"
 msgstr "expressão regular inacabada"
 
-#: awkgram.y:3704
+#: awkgram.y:3690
 msgid "unterminated regexp at end of file"
 msgstr "expressão regular inacabada no fim do arquivo"
 
-#: awkgram.y:3793
+#: awkgram.y:3779
 msgid "use of `\\ #...' line continuation is not portable"
 msgstr "uso da continuação de linha \"\\ #...\" não é portável"
 
-#: awkgram.y:3815
+#: awkgram.y:3801
 msgid "backslash not last character on line"
 msgstr "barra invertida não é o último caractere da linha"
 
-#: awkgram.y:3862 awkgram.y:3864
+#: awkgram.y:3848 awkgram.y:3850
 msgid "multidimensional arrays are a gawk extension"
 msgstr "vetores multidimensionais são é uma extensão do gawk"
 
-#: awkgram.y:3889
+#: awkgram.y:3875
 msgid "POSIX does not allow operator `**='"
 msgstr "POSIX não permite o operador \"**=\""
 
-#: awkgram.y:3891
+#: awkgram.y:3877
 msgid "old awk does not support operator `**='"
 msgstr "o velho awk não oferece suporte ao operador \"**=\""
 
-#: awkgram.y:3900
+#: awkgram.y:3886
 msgid "POSIX does not allow operator `**'"
 msgstr "POSIX não permite o operador \"**\""
 
-#: awkgram.y:3902
+#: awkgram.y:3888
 msgid "old awk does not support operator `**'"
 msgstr "o velho awk não oferece suporte ao operador \"**\""
 
-#: awkgram.y:3937
+#: awkgram.y:3923
 msgid "operator `^=' is not supported in old awk"
 msgstr "sem suporte ao operador `^=' no velho awk"
 
-#: awkgram.y:3945
+#: awkgram.y:3931
 msgid "operator `^' is not supported in old awk"
 msgstr "sem suporte ao operador \"^\" no velho awk"
 
-#: awkgram.y:4042 awkgram.y:4064 command.y:1187
+#: awkgram.y:4028 awkgram.y:4050 command.y:1187
 msgid "unterminated string"
 msgstr "string inacabada"
 
-#: awkgram.y:4052 main.c:1197
-#, fuzzy
+#: awkgram.y:4038 main.c:1197
 msgid "POSIX does not allow physical newlines in string values"
-msgstr "POSIX não permite escapes do tipo \"\\x\""
+msgstr "POSIX não permite novas linhas físicas em valores de string"
 
-#: awkgram.y:4054 node.c:453
-#, fuzzy
+#: awkgram.y:4040 node.c:453
 msgid "backslash string continuation is not portable"
-msgstr "uso da continuação de linha \"\\ #...\" não é portável"
+msgstr "continuação de string com barra invertida não é portável"
 
-#: awkgram.y:4292
+#: awkgram.y:4278
 #, c-format
 msgid "invalid char '%c' in expression"
 msgstr "caractere inválido \"%c\" em expressão"
 
-#: awkgram.y:4387
+#: awkgram.y:4373
 #, c-format
 msgid "`%s' is a gawk extension"
 msgstr "\"%s\" é uma extensão do gawk"
 
-#: awkgram.y:4392
+#: awkgram.y:4378
 #, c-format
 msgid "POSIX does not allow `%s'"
 msgstr "POSIX não permite \"%s\""
 
-#: awkgram.y:4400
+#: awkgram.y:4386
 #, c-format
 msgid "`%s' is not supported in old awk"
 msgstr "não há suporte a \"%s\" no velho awk"
 
-#: awkgram.y:4494
-#, fuzzy
+#: awkgram.y:4484
 msgid "`goto' considered harmful!"
-msgstr "\"goto\" é considerado danoso!\n"
+msgstr "\"goto\" é considerado danoso!"
 
-#: awkgram.y:4563
+#: awkgram.y:4553
 #, c-format
 msgid "%d is invalid as number of arguments for %s"
 msgstr "%d é inválido como número de argumentos para %s"
 
-#: awkgram.y:4598
+#: awkgram.y:4588
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
-msgstr ""
-"%s: string literal como último argumento de substituição não tem efeito"
+msgstr "%s: string literal como último argumento de substituição não tem 
efeito"
 
-#: awkgram.y:4603
+#: awkgram.y:4593
 #, c-format
 msgid "%s third parameter is not a changeable object"
 msgstr "terceiro parâmetro %s não é um objeto modificável"
 
-#: awkgram.y:4707 awkgram.y:4710
+#: awkgram.y:4697 awkgram.y:4700
 msgid "match: third argument is a gawk extension"
 msgstr "match: terceiro argumento é uma extensão do gawk"
 
-#: awkgram.y:4764 awkgram.y:4767
+#: awkgram.y:4754 awkgram.y:4757
 msgid "close: second argument is a gawk extension"
 msgstr "close: segundo argumento é uma extensão do gawk"
 
-#: awkgram.y:4779
+#: awkgram.y:4769
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
 msgstr "uso de dcgettext(_\"...\") é incorreto: remova o sublinhado 
precedente"
 
-#: awkgram.y:4794
+#: awkgram.y:4784
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
-msgstr ""
-"uso de dcngettext(_\"...\") é incorreto: remova o sublinhado precedente"
+msgstr "uso de dcngettext(_\"...\") é incorreto: remova o sublinhado 
precedente"
 
-#: awkgram.y:4813
+#: awkgram.y:4803
 msgid "index: regexp constant as second argument is not allowed"
 msgstr "index: constante de exp. reg. como segundo argumento não é permitido"
 
-#: awkgram.y:4866
+#: awkgram.y:4856
 #, c-format
 msgid "function `%s': parameter `%s' shadows global variable"
 msgstr "função \"%s\": parâmetro \"%s\" encobre variável global"
 
-#: awkgram.y:4915 debug.c:4178 debug.c:4221 debug.c:5342
+#: awkgram.y:4905 debug.c:4179 debug.c:4222 debug.c:5343
 #, c-format
 msgid "could not open `%s' for writing (%s)"
 msgstr "não foi possível abrir \"%s\" para escrita (%s)"
 
-#: awkgram.y:4916
+#: awkgram.y:4906
 msgid "sending variable list to standard error"
 msgstr "enviando lista de variáveis para saída de erro padrão"
 
-#: awkgram.y:4924
+#: awkgram.y:4914
 #, c-format
 msgid "%s: close failed (%s)"
 msgstr "%s: \"close\" falhou (%s)"
 
-#: awkgram.y:4949
+#: awkgram.y:4939
 msgid "shadow_funcs() called twice!"
 msgstr "shadow_funcs() chamada duas vezes!"
 
-#: awkgram.y:4957
+#: awkgram.y:4947
 msgid "there were shadowed variables."
 msgstr "houve variáveis encobertas."
 
-#: awkgram.y:5034
+#: awkgram.y:5024
 #, c-format
 msgid "function name `%s' previously defined"
 msgstr "nome de função \"%s\" definido anteriormente"
 
-#: awkgram.y:5085
+#: awkgram.y:5075
 #, c-format
 msgid "function `%s': can't use function name as parameter name"
-msgstr ""
-"função \"%s\": não é possível usar o nome da função como nome de 
parâmetro"
+msgstr "função \"%s\": não é possível usar o nome da função como nome 
de parâmetro"
 
-#: awkgram.y:5088
+#: awkgram.y:5078
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
-msgstr ""
-"função \"%s\": não é possível usar a variável especial \"%s\" como um "
-"parâmetro de função"
+msgstr "função \"%s\": não é possível usar a variável especial \"%s\" 
como um parâmetro de função"
 
-#: awkgram.y:5092
-#, fuzzy, c-format
+#: awkgram.y:5082
+#, c-format
 msgid "function `%s': parameter `%s' cannot contain a namespace"
-msgstr "função \"%s\": parâmetro \"%s\" encobre variável global"
+msgstr "função \"%s\": parâmetro \"%s\" não pode conter um espaço de nome"
 
-#: awkgram.y:5099
+#: awkgram.y:5089
 #, c-format
 msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
 msgstr "função \"%s\": parâmetro nº %d, \"%s\", duplica parâmetro nº %d"
 
-#: awkgram.y:5188
+#: awkgram.y:5178
 #, c-format
 msgid "function `%s' called but never defined"
 msgstr "função \"%s\" chamada, mas nunca definida"
 
-#: awkgram.y:5192
+#: awkgram.y:5182
 #, c-format
 msgid "function `%s' defined but never called directly"
 msgstr "função \"%s\" definida, mas nunca chamada diretamente"
 
-#: awkgram.y:5224
+#: awkgram.y:5214
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
 msgstr "constante com expr. reg. para parâmetro nº %d retorna valor booleano"
 
-#: awkgram.y:5239
+#: awkgram.y:5229
 #, c-format
 msgid ""
 "function `%s' called with space between name and `(',\n"
@@ -549,69 +525,62 @@ msgstr ""
 "função \"%s\" chamada com espaço entre o nome e o \"(\",\n"
 "ou usada como uma variável ou um vetor"
 
-#: awkgram.y:5454
+#: awkgram.y:5444
 msgid "division by zero attempted"
 msgstr "tentativa de divisão por zero"
 
-#: awkgram.y:5463
+#: awkgram.y:5453
 #, c-format
 msgid "division by zero attempted in `%%'"
 msgstr "tentativa de divisão por zero em \"%%\""
 
-#: awkgram.y:5802
-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:5792
+msgid "cannot assign a value to the result of a field post-increment 
expression"
+msgstr "não é possível atribuir um valor ao resultado de uma expressão de 
campo pós-incremento"
 
-#: awkgram.y:5805
+#: awkgram.y:5795
 #, c-format
 msgid "invalid target of assignment (opcode %s)"
 msgstr "alvo de atribuição inválido (código de operação %s)o"
 
-#: awkgram.y:6697
+#: awkgram.y:6687
 #, c-format
 msgid "identifier %s: qualified names not allowed in traditional / POSIX mode"
-msgstr ""
+msgstr "identificador %s: nomes qualificados não são permitidos no modo 
POSIX / tradicional"
 
-#: awkgram.y:6702
+#: awkgram.y:6692
 #, c-format
 msgid "identifier %s: namespace separator is two colons, not one"
-msgstr ""
+msgstr "identificador %s: separador de espaço de nome é dois caracteres de 
dois pontos, e não um"
 
-#: awkgram.y:6708
+#: awkgram.y:6698
 #, c-format
 msgid "qualified identifier `%s' is badly formed"
-msgstr ""
+msgstr "identificador qualificado \"%s\" está malformado"
 
-#: awkgram.y:6715
+#: awkgram.y:6705
 #, c-format
-msgid ""
-"identifier `%s': namespace separator can only appear once in a qualified name"
-msgstr ""
+msgid "identifier `%s': namespace separator can only appear once in a 
qualified name"
+msgstr "identificador \"%s\": separador de espaço de nome só pode aparecer 
uma vez em um nome qualificado"
 
-#: awkgram.y:6764 awkgram.y:6815
+#: awkgram.y:6754 awkgram.y:6805
 #, c-format
 msgid "using reserved identifier `%s' as a namespace is not allowed"
-msgstr ""
+msgstr "o uso de identificador reservado \"%s\" como um espaço de nome não 
é permitido"
 
-#: awkgram.y:6771 awkgram.y:6781
+#: awkgram.y:6761 awkgram.y:6771
 #, c-format
-msgid ""
-"using reserved identifier `%s' as second component of a qualified name is "
-"not allowed"
-msgstr ""
+msgid "using reserved identifier `%s' as second component of a qualified name 
is not allowed"
+msgstr "o uso de identificador reservado \"%s\" como segundo componente de um 
nome qualificado não é permitido"
 
-#: awkgram.y:6799
-#, fuzzy
+#: awkgram.y:6789
 msgid "@namespace is a gawk extension"
-msgstr "@include é uma extensão do gawk"
+msgstr "@namespace é uma extensão do gawk"
 
-#: awkgram.y:6806
+#: awkgram.y:6796
 #, c-format
 msgid "namespace name `%s' must meet identifier naming rules"
-msgstr ""
+msgstr "o nome de espaço de nome \"%s\" deve atender as regras de 
nomenclatura de identificador"
 
 #: builtin.c:143
 #, c-format
@@ -638,15 +607,12 @@ msgstr "exp: argumento %g está fora da faixa"
 #: builtin.c:245
 #, c-format
 msgid "fflush: cannot flush: pipe `%.*s' opened for reading, not writing"
-msgstr ""
-"fflush: erro ao descarregar: pipe \"%.*s\" aberto para leitura, não 
gravação"
+msgstr "fflush: erro ao descarregar: pipe \"%.*s\" aberto para leitura, não 
gravação"
 
 #: builtin.c:248
 #, c-format
 msgid "fflush: cannot flush: file `%.*s' opened for reading, not writing"
-msgstr ""
-"fflush: erro ao descarregar: arquivo \"%.*s\" aberto para leitura, não "
-"gravação"
+msgstr "fflush: erro ao descarregar: arquivo \"%.*s\" aberto para leitura, 
não gravação"
 
 #: builtin.c:259
 #, c-format
@@ -656,8 +622,7 @@ msgstr "fflush: erro ao descarregar o arquivo \"%.*s\": %s"
 #: builtin.c:264
 #, c-format
 msgid "fflush: cannot flush: two-way pipe `%.*s' has closed write end"
-msgstr ""
-"fflush: erro ao descarregar: pipe bidirecional \"%.*s\" fechou a escrita"
+msgstr "fflush: erro ao descarregar: pipe bidirecional \"%.*s\" fechou a 
escrita"
 
 #: builtin.c:270
 #, c-format
@@ -727,8 +692,7 @@ msgstr "fatal: nº de argumentos com \"$\" deve ser > 0"
 #: builtin.c:930
 #, c-format
 msgid "fatal: arg count %ld greater than total number of supplied arguments"
-msgstr ""
-"fatal: nº de argumentos %ld maior que nº total de argumentos fornecidos"
+msgstr "fatal: nº de argumentos %ld maior que nº total de argumentos 
fornecidos"
 
 #: builtin.c:934
 msgid "fatal: `$' not permitted after period in format"
@@ -736,8 +700,7 @@ msgstr "fatal: \"$\" não é permitido depois de ponto no 
formato"
 
 #: builtin.c:953
 msgid "fatal: no `$' supplied for positional field width or precision"
-msgstr ""
-"fatal: nenhum \"$\" fornecido para tamanho ou precisão de campo posicional"
+msgstr "fatal: nenhum \"$\" fornecido para tamanho ou precisão de campo 
posicional"
 
 #: builtin.c:1023
 msgid "`l' is meaningless in awk formats; ignored"
@@ -779,21 +742,19 @@ msgid "[s]printf: value %g is out of range for `%%%c' 
format"
 msgstr "[s]printf: valor %g está fora da faixa para formato \"%%%c\""
 
 #: builtin.c:1504
-#, fuzzy, c-format
+#, c-format
 msgid "[s]printf: value %s is out of range for `%%%c' format"
-msgstr "[s]printf: valor %g está fora da faixa para formato \"%%%c\""
+msgstr "[s]printf: valor %s está fora da faixa para formato \"%%%c\""
 
 #: builtin.c:1529
 #, c-format
 msgid "%%%c format is POSIX standard but not portable to other awks"
-msgstr ""
+msgstr "formato %%%c é de padrão POSIX, mas não portável para outros awks"
 
 #: builtin.c:1629
 #, c-format
 msgid "ignoring unknown format specifier character `%c': no argument converted"
-msgstr ""
-"ignorando caractere especificador de formato \"%c\" desconhecido: nenhum "
-"argumento convertido"
+msgstr "ignorando caractere especificador de formato \"%c\" desconhecido: 
nenhum argumento convertido"
 
 #: builtin.c:1634
 msgid "fatal: not enough arguments to satisfy format string"
@@ -821,9 +782,7 @@ msgstr "printf: nenhum argumento"
 
 #: builtin.c:1754
 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"
+msgstr "printf: tentativa de escrever para lado de escrita fechado de pipe 
bidirecional"
 
 #: builtin.c:1795
 msgid "sqrt: received non-numeric argument"
@@ -875,16 +834,12 @@ msgstr "substr: posição inicial %g está além do fim 
da string"
 
 #: builtin.c:1913
 #, c-format
-msgid ""
-"substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr ""
-"substr: comprimento %g a partir da posição inicial %g excede tamanho do 1º 
"
-"argumento (%lu)"
+msgid "substr: length %g at start index %g exceeds length of first argument 
(%lu)"
+msgstr "substr: comprimento %g a partir da posição inicial %g excede tamanho 
do 1º argumento (%lu)"
 
 #: builtin.c:1986
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
-msgstr ""
-"strftime: valor de formato em PROCINFO[\"strftime\"] possui tipo numérico"
+msgstr "strftime: valor de formato em PROCINFO[\"strftime\"] possui tipo 
numérico"
 
 #: builtin.c:2006
 msgid "strftime: received non-numeric second argument"
@@ -924,9 +879,7 @@ msgstr "system: recebeu argumento não string"
 
 #: builtin.c:2249 builtin.c:2322
 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"
+msgstr "print: tentativa de escrever para lado de escrita fechado de pipe 
bidirecional"
 
 #: builtin.c:2345
 #, c-format
@@ -1104,17 +1057,13 @@ msgid "intdiv: division by zero attempted"
 msgstr "intdiv: tentativa de divisão por zero"
 
 #: builtin.c:4046
-#, fuzzy
 msgid "typeof: second argument is not an array"
-msgstr "split: segundo argumento não é um vetor"
+msgstr "typeof: segundo argumento não é um vetor"
 
 #: builtin.c:4082
 #, c-format
-msgid ""
-"typeof detected invalid flags combination `%s'; please file a bug report."
-msgstr ""
-"typeof detectou combinação inválida de flags \"%s\"; por favor, faça um "
-"relato de erro."
+msgid "typeof detected invalid flags combination `%s'; please file a bug 
report."
+msgstr "typeof detectou combinação inválida de flags \"%s\"; por favor, 
faça um relato de erro."
 
 #: builtin.c:4101
 #, c-format
@@ -1153,9 +1102,7 @@ msgstr "save \"%s\": comando não permitido."
 
 #: command.y:341
 msgid "Can't use command `commands' for breakpoint/watchpoint commands"
-msgstr ""
-"Não foi possível usar o comando \"commands\" para comandos de breakpoint/"
-"watchpoint"
+msgstr "Não foi possível usar o comando \"commands\" para comandos de 
breakpoint/watchpoint"
 
 #: command.y:343
 msgid "no breakpoint/watchpoint has been set yet"
@@ -1229,36 +1176,24 @@ msgid "non-zero integer value"
 msgstr "valor inteiro não zero"
 
 #: command.y:819
-msgid ""
-"backtrace [N] - print trace of all or N innermost (outermost if N < 0) "
-"frames."
-msgstr ""
-"backtrace [N] - exibe rastro de todos quadros ou os N mais internos (mais "
-"externos, se N < 0)."
+msgid "backtrace [N] - print trace of all or N innermost (outermost if N < 0) 
frames."
+msgstr "backtrace [N] - exibe rastro de todos quadros ou os N mais internos 
(mais externos, se N < 0)."
 
 #: command.y:821
-msgid ""
-"break [[filename:]N|function] - set breakpoint at the specified location."
-msgstr ""
-"break [[arquivo:]N|função] - define o breakpoint na localização 
especificada."
+msgid "break [[filename:]N|function] - set breakpoint at the specified 
location."
+msgstr "break [[arquivo:]N|função] - define o breakpoint na localização 
especificada."
 
 #: command.y:823
 msgid "clear [[filename:]N|function] - delete breakpoints previously set."
-msgstr ""
-"clear [[arquivo:]N|função] - exclui breakpoints definidos anteriormente."
+msgstr "clear [[arquivo:]N|função] - exclui breakpoints definidos 
anteriormente."
 
 #: command.y:825
-msgid ""
-"commands [num] - starts a list of commands to be executed at a "
-"breakpoint(watchpoint) hit."
-msgstr ""
-"commands [núm] - inicia uma lista de comandos para serem executados em um "
-"breakpoint(watchpoint) atingido."
+msgid "commands [num] - starts a list of commands to be executed at a 
breakpoint(watchpoint) hit."
+msgstr "commands [núm] - inicia uma lista de comandos para serem executados 
em um breakpoint(watchpoint) atingido."
 
 #: command.y:827
 msgid "condition num [expr] - set or clear breakpoint or watchpoint condition."
-msgstr ""
-"condition núm [expr] - deinfe ou limpa condição de breakpoint ou 
watchpoint."
+msgstr "condition núm [expr] - deinfe ou limpa condição de breakpoint ou 
watchpoint."
 
 #: command.y:829
 msgid "continue [COUNT] - continue program being debugged."
@@ -1266,19 +1201,15 @@ msgstr "continue [QTDE] - continua o programa sendo 
depurado."
 
 #: command.y:831
 msgid "delete [breakpoints] [range] - delete specified breakpoints."
-msgstr ""
-"delete [breakpoints] [intervalo] - exclui os breakpoints especificados."
+msgstr "delete [breakpoints] [intervalo] - exclui os breakpoints 
especificados."
 
 #: command.y:833
 msgid "disable [breakpoints] [range] - disable specified breakpoints."
-msgstr ""
-"disable [breakpoints] [intervalo] - desabilita os breakpoints especificados."
+msgstr "disable [breakpoints] [intervalo] - desabilita os breakpoints 
especificados."
 
 #: command.y:835
 msgid "display [var] - print value of variable each time the program stops."
-msgstr ""
-"display [var] - exibe o valor da variável toda vez em que o programa é "
-"interrompido."
+msgstr "display [var] - exibe o valor da variável toda vez em que o programa 
é interrompido."
 
 #: command.y:837
 msgid "down [N] - move N frames down the stack."
@@ -1286,14 +1217,11 @@ msgstr "down [N] - move N quadros para baixo na pilha."
 
 #: command.y:839
 msgid "dump [filename] - dump instructions to file or stdout."
-msgstr ""
-"dump [arquivo] - despeja instruções para arquivo ou saída padrão 
(stdout)."
+msgstr "dump [arquivo] - despeja instruções para arquivo ou saída padrão 
(stdout)."
 
 #: command.y:841
 msgid "enable [once|del] [breakpoints] [range] - enable specified breakpoints."
-msgstr ""
-"enable [once|del] [breakpoints] [intervalo] - habilita breakpoints "
-"especificados."
+msgstr "enable [once|del] [breakpoints] [intervalo] - habilita breakpoints 
especificados."
 
 #: command.y:843
 msgid "end - end a list of commands or awk statements."
@@ -1317,38 +1245,27 @@ msgstr "frame [N] - seleciona ou exibe o quadro número 
N."
 
 #: command.y:853
 msgid "help [command] - print list of commands or explanation of command."
-msgstr ""
-"help [comando] - exibe a lista de comandos ou explicação de um comando."
+msgstr "help [comando] - exibe a lista de comandos ou explicação de um 
comando."
 
 #: command.y:855
 msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT."
-msgstr ""
-"ignore N QTDE - define quantidade a ser ignorada do breakpoint número N para 
"
-"QTDE."
+msgstr "ignore N QTDE - define quantidade a ser ignorada do breakpoint número 
N para QTDE."
 
 #: command.y:857
-msgid ""
-"info topic - source|sources|variables|functions|break|frame|args|locals|"
-"display|watch."
-msgstr ""
-"info topic - source|sources|variables|functions|break|frame|args|locals|"
-"display|watch."
+msgid "info topic - 
source|sources|variables|functions|break|frame|args|locals|display|watch."
+msgstr "info topic - 
source|sources|variables|functions|break|frame|args|locals|display|watch."
 
 #: command.y:859
 msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)."
-msgstr ""
-"list [-|+|[arquivo:]nº linha|função|intervalo] - lista de linha(s) "
-"especificada."
+msgstr "list [-|+|[arquivo:]nº linha|função|intervalo] - lista de linha(s) 
especificada."
 
 #: command.y:861
 msgid "next [COUNT] - step program, proceeding through subroutine calls."
 msgstr "next [QTDE] - avança programa, seguindo pelas chamadas de 
sub-rotinas."
 
 #: command.y:863
-msgid ""
-"nexti [COUNT] - step one instruction, but proceed through subroutine calls."
-msgstr ""
-"nexti [QTDE] - avança uma instrução, mas segue pelas chamadas de 
sub-rotinas."
+msgid "nexti [COUNT] - step one instruction, but proceed through subroutine 
calls."
+msgstr "nexti [QTDE] - avança uma instrução, mas segue pelas chamadas de 
sub-rotinas."
 
 #: command.y:865
 msgid "option [name[=value]] - set or display debugger option(s)."
@@ -1368,8 +1285,7 @@ msgstr "quit - sai do depurador."
 
 #: command.y:873
 msgid "return [value] - make selected stack frame return to its caller."
-msgstr ""
-"return [valor] - faz o quadro da pilha selecionado retornar seu chamador."
+msgstr "return [valor] - faz o quadro da pilha selecionado retornar seu 
chamador."
 
 #: command.y:875
 msgid "run - start or restart executing program."
@@ -1384,11 +1300,8 @@ msgid "set var = value - assign value to a scalar 
variable."
 msgstr "set var = valor - atribui valor para uma variável escalar."
 
 #: command.y:883
-msgid ""
-"silent - suspends usual message when stopped at a breakpoint/watchpoint."
-msgstr ""
-"silent - suspende mensagem usual quando interrompido em um breakpoint/"
-"watchpoint."
+msgid "silent - suspends usual message when stopped at a 
breakpoint/watchpoint."
+msgstr "silent - suspende mensagem usual quando interrompido em um 
breakpoint/watchpoint."
 
 #: command.y:885
 msgid "source file - execute commands from file."
@@ -1396,8 +1309,7 @@ msgstr "source arquivo - executa comandos a partir do 
arquivo."
 
 #: command.y:887
 msgid "step [COUNT] - step program until it reaches a different source line."
-msgstr ""
-"step [QTDE] - avança programa até ele atingir uma linha fonte diferente."
+msgstr "step [QTDE] - avança programa até ele atingir uma linha fonte 
diferente."
 
 #: command.y:889
 msgid "stepi [COUNT] - step one instruction exactly."
@@ -1413,16 +1325,11 @@ msgstr "trace on|off - exibe instrução antes da 
execução."
 
 #: command.y:895
 msgid "undisplay [N] - remove variable(s) from automatic display list."
-msgstr ""
-"undisplay [N] - remove variáveis a partir da lista automática de 
exibição."
+msgstr "undisplay [N] - remove variáveis a partir da lista automática de 
exibição."
 
 #: command.y:897
-msgid ""
-"until [[filename:]N|function] - execute until program reaches a different "
-"line or line N within current frame."
-msgstr ""
-"until [[arquivo:]N|função] - executa até o programa atingir uma linha "
-"diferente ou linha N dentro do quadro atual."
+msgid "until [[filename:]N|function] - execute until program reaches a 
different line or line N within current frame."
+msgstr "until [[arquivo:]N|função] - executa até o programa atingir uma 
linha diferente ou linha N dentro do quadro atual."
 
 #: command.y:899
 msgid "unwatch [N] - remove variable(s) from watch list."
@@ -1437,14 +1344,10 @@ msgid "watch var - set a watchpoint for a variable."
 msgstr "watch var - define um watchpoint para uma variável."
 
 #: command.y:905
-msgid ""
-"where [N] - (same as backtrace) print trace of all or N innermost (outermost "
-"if N < 0) frames."
-msgstr ""
-"where [N] - (igual a \"backtrace\") exibe rastro de todos quadros ou os N "
-"mais internos (mais externos, se N < 0)."
+msgid "where [N] - (same as backtrace) print trace of all or N innermost 
(outermost if N < 0) frames."
+msgstr "where [N] - (igual a \"backtrace\") exibe rastro de todos quadros ou 
os N mais internos (mais externos, se N < 0)."
 
-#: command.y:1016 debug.c:409 gawkapi.c:259 msg.c:139
+#: command.y:1016 debug.c:414 gawkapi.c:259 msg.c:139
 #, c-format
 msgid "error: "
 msgstr "erro: "
@@ -1482,100 +1385,93 @@ msgstr "caractere inválido"
 msgid "undefined command: %s\n"
 msgstr "comando indefinido: %s\n"
 
-#: debug.c:252
+#: debug.c:257
 msgid "set or show the number of lines to keep in history file."
-msgstr ""
-"define ou mostra o número de linhas para manter no arquivo de histórico."
+msgstr "define ou mostra o número de linhas para manter no arquivo de 
histórico."
 
-#: debug.c:254
+#: debug.c:259
 msgid "set or show the list command window size."
 msgstr "define ou mostra o tamanho da janela do comando \"list\"."
 
-#: debug.c:256
+#: debug.c:261
 msgid "set or show gawk output file."
 msgstr "define ou mostra o arquivo de saída do gawk."
 
-#: debug.c:258
+#: debug.c:263
 msgid "set or show debugger prompt."
 msgstr "define ou mostra o prompt de depuração."
 
-#: debug.c:260
+#: debug.c:265
 msgid "(un)set or show saving of command history (value=on|off)."
-msgstr ""
-"define/remove definição ou mostra o salvamento do comando \"history"
-"\" (valor=on|off)."
+msgstr "define/remove definição ou mostra o salvamento do comando 
\"history\" (valor=on|off)."
 
-#: debug.c:262
+#: debug.c:267
 msgid "(un)set or show saving of options (value=on|off)."
-msgstr ""
-"define/remove definição ou mostra o salvamento de opções (valor=on|off)."
+msgstr "define/remove definição ou mostra o salvamento de opções 
(valor=on|off)."
 
-#: debug.c:264
+#: debug.c:269
 msgid "(un)set or show instruction tracing (value=on|off)."
-msgstr ""
-"define/remove definição ou mostra o rastreamento de instrução 
(valor=on|off)."
+msgstr "define/remove definição ou mostra o rastreamento de instrução 
(valor=on|off)."
 
-#: debug.c:353
+#: debug.c:358
 msgid "program not running."
 msgstr "o programa não está em execução."
 
-#: debug.c:456 debug.c:614
+#: debug.c:461 debug.c:619
 #, c-format
 msgid "can't read source file `%s' (%s)"
 msgstr "não foi possível ler arquivo-fonte \"%s\" (%s)"
 
-#: debug.c:461
+#: debug.c:466
 #, c-format
 msgid "source file `%s' is empty.\n"
 msgstr "arquivo-fonte \"%s\" está vazio.\n"
 
-#: debug.c:488
+#: debug.c:493
 msgid "no current source file."
 msgstr "nenhum arquivo-fonte atual."
 
-#: debug.c:513
+#: debug.c:518
 #, c-format
 msgid "cannot find source file named `%s' (%s)"
 msgstr "não foi possível localizar o arquivo-fonte \"%s\" (%s)"
 
-#: debug.c:537
+#: debug.c:542
 #, c-format
 msgid "WARNING: source file `%s' modified since program compilation.\n"
-msgstr ""
-"AVISO: o arquivo-fonte \"%s\" foi modificado após a compilação do 
programa.\n"
+msgstr "AVISO: o arquivo-fonte \"%s\" foi modificado após a compilação do 
programa.\n"
 
-#: debug.c:559
+#: debug.c:564
 #, c-format
 msgid "line number %d out of range; `%s' has %d lines"
 msgstr "número de linha %d fora da faixa; \"%s\" possui %d linhas"
 
-#: debug.c:619
+#: debug.c:624
 #, c-format
 msgid "unexpected eof while reading file `%s', line %d"
 msgstr "fim de arquivo inesperado enquanto lia o arquivo \"%s\", linha %d"
 
-#: debug.c:628
+#: debug.c:633
 #, c-format
 msgid "source file `%s' modified since start of program execution"
-msgstr ""
-"o arquivo fonte \"%s\" foi modificado após o início da execução do 
programa"
+msgstr "o arquivo fonte \"%s\" foi modificado após o início da execução do 
programa"
 
-#: debug.c:740
+#: debug.c:745
 #, c-format
 msgid "Current source file: %s\n"
 msgstr "Arquivo-fonte atual: %s\n"
 
-#: debug.c:741
+#: debug.c:746
 #, c-format
 msgid "Number of lines: %d\n"
 msgstr "Número de linhas: %d\n"
 
-#: debug.c:748
+#: debug.c:753
 #, c-format
 msgid "Source file (lines): %s (%d)\n"
 msgstr "Arquivo-fonte (linhas): %s (%d)\n"
 
-#: debug.c:762
+#: debug.c:767
 msgid ""
 "Number  Disp  Enabled  Location\n"
 "\n"
@@ -1583,54 +1479,54 @@ msgstr ""
 "Número  Exib  Habilit  Localização\n"
 "\n"
 
-#: debug.c:773
+#: debug.c:778
 #, c-format
 msgid "\tno of hits = %ld\n"
 msgstr "\tnº de acertos = %ld\n"
 
-#: debug.c:775
+#: debug.c:780
 #, c-format
 msgid "\tignore next %ld hit(s)\n"
 msgstr "\tignorar próximos %ld acertos(s)\n"
 
-#: debug.c:777 debug.c:917
+#: debug.c:782 debug.c:922
 #, c-format
 msgid "\tstop condition: %s\n"
 msgstr "\tcondição de parada: %s\n"
 
-#: debug.c:779 debug.c:919
+#: debug.c:784 debug.c:924
 msgid "\tcommands:\n"
 msgstr "\tcomandos:\n"
 
-#: debug.c:801
+#: debug.c:806
 #, c-format
 msgid "Current frame: "
 msgstr "Quadro atual: "
 
-#: debug.c:804
+#: debug.c:809
 #, c-format
 msgid "Called by frame: "
 msgstr "Chamado pelo quadro: "
 
-#: debug.c:808
+#: debug.c:813
 #, c-format
 msgid "Caller of frame: "
 msgstr "Chamador do quadro: "
 
-#: debug.c:826
+#: debug.c:831
 #, c-format
 msgid "None in main().\n"
 msgstr "Nenhum em main().\n"
 
-#: debug.c:856
+#: debug.c:861
 msgid "No arguments.\n"
 msgstr "Nenhum argumento.\n"
 
-#: debug.c:857
+#: debug.c:862
 msgid "No locals.\n"
 msgstr "Nenhum local.\n"
 
-#: debug.c:865
+#: debug.c:870
 msgid ""
 "All defined variables:\n"
 "\n"
@@ -1638,7 +1534,7 @@ msgstr ""
 "Todas as variáveis definidas:\n"
 "\n"
 
-#: debug.c:875
+#: debug.c:880
 msgid ""
 "All defined functions:\n"
 "\n"
@@ -1646,7 +1542,7 @@ msgstr ""
 "Todas as funções definidas:\n"
 "\n"
 
-#: debug.c:894
+#: debug.c:899
 msgid ""
 "Auto-display variables:\n"
 "\n"
@@ -1654,7 +1550,7 @@ msgstr ""
 "Variáveis exibidas automaticamente:\n"
 "\n"
 
-#: debug.c:897
+#: debug.c:902
 msgid ""
 "Watch variables:\n"
 "\n"
@@ -1662,369 +1558,362 @@ msgstr ""
 "Variáveis monitoradas:\n"
 "\n"
 
-#: debug.c:1037
+#: debug.c:1042
 #, c-format
 msgid "no symbol `%s' in current context\n"
 msgstr "nenhum símbolo \"%s\" no contexto atual\n"
 
-#: debug.c:1049 debug.c:1437
+#: debug.c:1054 debug.c:1442
 #, c-format
 msgid "`%s' is not an array\n"
 msgstr "\"%s\" não é um vetor\n"
 
-#: debug.c:1063
+#: debug.c:1068
 #, c-format
 msgid "$%ld = uninitialized field\n"
 msgstr "$%ld = campo não inicializado\n"
 
-#: debug.c:1084
+#: debug.c:1089
 #, c-format
 msgid "array `%s' is empty\n"
 msgstr "o vetor \"%s\" está vazio\n"
 
-#: debug.c:1127 debug.c:1179
+#: debug.c:1132 debug.c:1184
 #, c-format
 msgid "[\"%.*s\"] not in array `%s'\n"
 msgstr "[\"%.*s\"] não está no vetor \"%s\"\n"
 
-#: debug.c:1183
+#: debug.c:1188
 #, c-format
 msgid "`%s[\"%.*s\"]' is not an array\n"
 msgstr "'%s[\"%.*s\"]' não está no vetor\n"
 
-#: debug.c:1244 debug.c:5102
+#: debug.c:1249 debug.c:5103
 #, c-format
 msgid "`%s' is not a scalar variable"
 msgstr "\"%s\" não é uma variável escalar"
 
-#: debug.c:1267 debug.c:5132
+#: debug.c:1272 debug.c:5133
 #, c-format
 msgid "attempt to use array `%s[\"%.*s\"]' in a scalar context"
 msgstr "tentativa de usar vetor '%s[\"%.*s\"]' em um contexto escalar"
 
-#: debug.c:1290 debug.c:5143
+#: debug.c:1295 debug.c:5144
 #, c-format
 msgid "attempt to use scalar `%s[\"%.*s\"]' as array"
 msgstr "tentativa de usar vetor '%s[\"%.*s\"]' como um vetor"
 
-#: debug.c:1433
+#: debug.c:1438
 #, c-format
 msgid "`%s' is a function"
 msgstr "\"%s\" é uma função"
 
-#: debug.c:1475
+#: debug.c:1480
 #, c-format
 msgid "watchpoint %d is unconditional\n"
 msgstr "o watchpoint %d é incondicional\n"
 
-#: debug.c:1509
+#: debug.c:1514
 #, c-format
 msgid "No display item numbered %ld"
 msgstr "Nenhum item de exibição com número %ld"
 
-#: debug.c:1512
+#: debug.c:1517
 #, c-format
 msgid "No watch item numbered %ld"
 msgstr "Nenhum item monitorado com número %ld"
 
-#: debug.c:1538
+#: debug.c:1543
 #, c-format
 msgid "%d: [\"%.*s\"] not in array `%s'\n"
 msgstr "%d: [\"%.*s\"] não está no vetor \"%s\"\n"
 
-#: debug.c:1777
+#: debug.c:1782
 msgid "attempt to use scalar value as array"
 msgstr "tentativa de usar valor escalar como vetor"
 
-#: debug.c:1868
+#: debug.c:1873
 #, c-format
 msgid "Watchpoint %d deleted because parameter is out of scope.\n"
 msgstr "Watchpoint %d excluído porque parâmetro está fora do escopo.\n"
 
-#: debug.c:1879
+#: debug.c:1884
 #, c-format
 msgid "Display %d deleted because parameter is out of scope.\n"
 msgstr "Exibição %d excluída porque parâmetro está fora do escopo.\n"
 
-#: debug.c:1912
+#: debug.c:1917
 #, c-format
 msgid " in file `%s', line %d\n"
 msgstr " no arquivo \"%s\" na linha %d\n"
 
-#: debug.c:1933
+#: debug.c:1938
 #, c-format
 msgid " at `%s':%d"
 msgstr " em \"%s\":%d"
 
-#: debug.c:1949 debug.c:2012
+#: debug.c:1954 debug.c:2017
 #, c-format
 msgid "#%ld\tin "
 msgstr "#%ld\tem "
 
-#: debug.c:1986
+#: debug.c:1991
 #, c-format
 msgid "More stack frames follow ...\n"
 msgstr "Mais quadros de pilhas a seguir ...\n"
 
-#: debug.c:2029
+#: debug.c:2034
 msgid "invalid frame number"
 msgstr "número de quadro inválido"
 
-#: debug.c:2212
+#: debug.c:2217
 #, c-format
 msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
-msgstr ""
-"Nota: breakpoint %d (habilitado, ignora próximos %ld acertos), também "
-"definido em %s:%d"
+msgstr "Nota: breakpoint %d (habilitado, ignora próximos %ld acertos), 
também definido em %s:%d"
 
-#: debug.c:2219
+#: debug.c:2224
 #, c-format
 msgid "Note: breakpoint %d (enabled), also set at %s:%d"
 msgstr "Nota: breakpoint %d (habilitado), também definido em %s:%d"
 
-#: debug.c:2226
+#: debug.c:2231
 #, c-format
 msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
-msgstr ""
-"Nota: breakpoint %d (desabilitado, ignora próximos %ld acertos), também "
-"definido em %s:%d"
+msgstr "Nota: breakpoint %d (desabilitado, ignora próximos %ld acertos), 
também definido em %s:%d"
 
-#: debug.c:2233
+#: debug.c:2238
 #, c-format
 msgid "Note: breakpoint %d (disabled), also set at %s:%d"
 msgstr "Nota: breakpoint %d (desabilitado), também definido em %s:%d"
 
-#: debug.c:2250
+#: debug.c:2255
 #, c-format
 msgid "Breakpoint %d set at file `%s', line %d\n"
 msgstr "Breakpoint %d definido no arquivo \"%s\", linha %d\n"
 
-#: debug.c:2352
+#: debug.c:2357
 #, c-format
 msgid "Can't set breakpoint in file `%s'\n"
 msgstr "Não foi possível definir breakpoint no arquivo \"%s\"\n"
 
-#: debug.c:2381 debug.c:2504 debug.c:3366
+#: debug.c:2386 debug.c:2509 debug.c:3367
 #, c-format
 msgid "line number %d in file `%s' out of range"
 msgstr "número de linha %d no arquivo \"%s\" fora do intervalo"
 
-#: debug.c:2385
+#: debug.c:2390
 #, c-format
 msgid "Can't find rule!!!\n"
 msgstr "Não foi possível localizar regra!!!\n"
 
-#: debug.c:2387
+#: debug.c:2392
 #, c-format
 msgid "Can't set breakpoint at `%s':%d\n"
 msgstr "Não foi possível definir breakpoint em \"%s\":%d\n"
 
-#: debug.c:2399
+#: debug.c:2404
 #, c-format
 msgid "Can't set breakpoint in function `%s'\n"
 msgstr "Não foi possível definir breakpoint na função \"%s\"\n"
 
-#: debug.c:2415
+#: debug.c:2420
 #, c-format
 msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
 msgstr "breakpoint %d definido no arquivo \"%s\", linha %d é incondicional\n"
 
-#: debug.c:2520 debug.c:2542
+#: debug.c:2525 debug.c:2547
 #, c-format
 msgid "Deleted breakpoint %d"
 msgstr "Excluído breakpoint %d"
 
-#: debug.c:2526
+#: debug.c:2531
 #, c-format
 msgid "No breakpoint(s) at entry to function `%s'\n"
 msgstr "Nenhum breakpoint(s) na entrada para a função \"%s\"\n"
 
-#: debug.c:2553
+#: debug.c:2558
 #, c-format
 msgid "No breakpoint at file `%s', line #%d\n"
 msgstr "Nenhum breakpoint no arquivo \"%s\", linha nº %d\n"
 
-#: debug.c:2608 debug.c:2649 debug.c:2669 debug.c:2712
+#: debug.c:2613 debug.c:2654 debug.c:2674 debug.c:2717
 msgid "invalid breakpoint number"
 msgstr "número de breakpoint inválido"
 
 # o código-fonte aceita tradução da opção 'y'; vide msgid de "y" -- Rafael
-#: debug.c:2624
+#: debug.c:2629
 msgid "Delete all breakpoints? (y or n) "
 msgstr "Excluir todos breakpoints? (s ou n) "
 
 # referente à resposta yes/sim em um prompt interativo -- Rafael
-#: debug.c:2625 debug.c:2939 debug.c:2992
+#: debug.c:2630 debug.c:2940 debug.c:2993
 msgid "y"
 msgstr "s"
 
-#: debug.c:2674
+#: debug.c:2679
 #, c-format
 msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n"
 msgstr "Vai ignorar próximos %ld encontro(s) de breakpoint %d.\n"
 
-#: debug.c:2678
+#: debug.c:2683
 #, c-format
 msgid "Will stop next time breakpoint %d is reached.\n"
 msgstr "Vai parar na próxima vez que o breakpoint %d for atingido.\n"
 
-#: debug.c:2795
+#: debug.c:2800
 #, c-format
 msgid "Can only debug programs provided with the `-f' option.\n"
 msgstr "Só é possível depurar programas fornecidos com a opção \"-f\".\n"
 
-#: debug.c:2924
+#: debug.c:2925
 #, c-format
 msgid "Failed to restart debugger"
 msgstr "Falha ao reiniciar o depurador"
 
 # o código-fonte aceita tradução da opção 'y'; vide msgid "y" -- Rafael
-#: debug.c:2938
+#: debug.c:2939
 msgid "Program already running. Restart from beginning (y/n)? "
 msgstr "Programa já está em execução. Reiniciar desde o começo (s/n)? "
 
-#: debug.c:2942
+#: debug.c:2943
 #, c-format
 msgid "Program not restarted\n"
 msgstr "Programa não reiniciado\n"
 
-#: debug.c:2952
+#: debug.c:2953
 #, c-format
 msgid "error: cannot restart, operation not allowed\n"
 msgstr "erro: não foi possível reiniciar, operação não permitida\n"
 
-#: debug.c:2958
+#: debug.c:2959
 #, c-format
 msgid "error (%s): cannot restart, ignoring rest of the commands\n"
-msgstr ""
-"erro (%s): não foi possível reiniciar, ignorando o resto dos comandos\n"
+msgstr "erro (%s): não foi possível reiniciar, ignorando o resto dos 
comandos\n"
 
-#: debug.c:2966
+#: debug.c:2967
 #, c-format
 msgid "Starting program: \n"
 msgstr "Iniciando programa: \n"
 
-#: debug.c:2976
+#: debug.c:2977
 #, c-format
 msgid "Program exited abnormally with exit value: %d\n"
 msgstr "Programa foi terminado abnormalmente com valor de saída: %d\n"
 
-#: debug.c:2977
+#: debug.c:2978
 #, c-format
 msgid "Program exited normally with exit value: %d\n"
 msgstr "Programa foi terminado normalmente com valor de saída: %d\n"
 
 # o código-fonte aceita tradução da opção 'y'; vide msgid "y" -- Rafael
-#: debug.c:2991
+#: debug.c:2992
 msgid "The program is running. Exit anyway (y/n)? "
 msgstr "O programa está em execução. Sair mesmo assim (s/n)? "
 
-#: debug.c:3026
+#: debug.c:3027
 #, c-format
 msgid "Not stopped at any breakpoint; argument ignored.\n"
 msgstr "Não parado em qualquer breakpoint; argumento ignorado.\n"
 
-#: debug.c:3031
+#: debug.c:3032
 #, c-format
 msgid "invalid breakpoint number %d."
 msgstr "número de breakpoint inválido %d."
 
-#: debug.c:3036
+#: debug.c:3037
 #, c-format
 msgid "Will ignore next %ld crossings of breakpoint %d.\n"
 msgstr "Vai ignorar próximos %ld encontros de breakpoint %d.\n"
 
-#: debug.c:3223
+#: debug.c:3224
 #, c-format
 msgid "'finish' not meaningful in the outermost frame main()\n"
 msgstr "\"finish\" não tem sentido no arquivo mais externo do main()\n"
 
-#: debug.c:3228
+#: debug.c:3229
 #, c-format
 msgid "Run till return from "
 msgstr "Executa até retornar de "
 
-#: debug.c:3271
+#: debug.c:3272
 #, c-format
 msgid "'return' not meaningful in the outermost frame main()\n"
 msgstr "\"return\" não tem sentido no arquivo mais externo do main()\n"
 
-#: debug.c:3385
+#: debug.c:3386
 #, c-format
 msgid "Can't find specified location in function `%s'\n"
-msgstr ""
-"Não foi possível encontrar a localização especificada na função 
\"%s\"\n"
+msgstr "Não foi possível encontrar a localização especificada na função 
\"%s\"\n"
 
-#: debug.c:3393
+#: debug.c:3394
 #, c-format
 msgid "invalid source line %d in file `%s'"
 msgstr "linha fonte inválida %d no arquivo \"%s\""
 
-#: debug.c:3408
+#: debug.c:3409
 #, c-format
 msgid "Can't find specified location %d in file `%s'\n"
-msgstr ""
-"Não foi possível encontrar a localização %d especificada no arquivo 
\"%s\"\n"
+msgstr "Não foi possível encontrar a localização %d especificada no 
arquivo \"%s\"\n"
 
-#: debug.c:3440
+#: debug.c:3441
 #, c-format
 msgid "element not in array\n"
 msgstr "elemento não está no vetor\n"
 
-#: debug.c:3440
+#: debug.c:3441
 #, c-format
 msgid "untyped variable\n"
 msgstr "variável sem tipo\n"
 
-#: debug.c:3482
+#: debug.c:3483
 #, c-format
 msgid "Stopping in %s ...\n"
 msgstr "Parando em %s ...\n"
 
-#: debug.c:3559
+#: debug.c:3560
 #, c-format
 msgid "'finish' not meaningful with non-local jump '%s'\n"
 msgstr "\"finish\" não tem sentido com pulo não local \"%s\"\n"
 
-#: debug.c:3566
+#: debug.c:3567
 #, c-format
 msgid "'until' not meaningful with non-local jump '%s'\n"
 msgstr "\"until\" não tem sentido com pulo não local \"%s\"\n"
 
 # o código-fonte aceita tradução da opção 'q'; vide msgid "q" -- Rafael
-#: debug.c:4322
+#: debug.c:4323
 msgid "\t------[Enter] to continue or q [Enter] to quit------"
 msgstr "\t----[Enter] para continuar ou s [Enter] para sair---"
 
 # referente à resposta quit/sair em um prompt interativo -- Rafael
-#: debug.c:4323
+#: debug.c:4324
 msgid "q"
 msgstr "s"
 
-#: debug.c:5139
+#: debug.c:5140
 #, c-format
 msgid "[\"%.*s\"] not in array `%s'"
 msgstr "[\"%.*s\"] não está no vetor \"%s\""
 
-#: debug.c:5345
+#: debug.c:5346
 #, c-format
 msgid "sending output to stdout\n"
 msgstr "enviando a saída para stdout\n"
 
-#: debug.c:5385
+#: debug.c:5386
 msgid "invalid number"
 msgstr "número inválido"
 
-#: debug.c:5519
+#: debug.c:5520
 #, c-format
 msgid "`%s' not allowed in current context; statement ignored"
 msgstr "\"%s\" não permitido no contexto atual; instrução ignorada"
 
-#: debug.c:5527
+#: debug.c:5528
 msgid "`return' not allowed in current context; statement ignored"
 msgstr "\"return\" não permitido no contexto atual; instrução ignorada"
 
-#: debug.c:5742
+#: debug.c:5743
 #, c-format
 msgid "No symbol `%s' in current context"
 msgstr "Nenhum símbolo \"%s\" no contexto atual"
@@ -2141,77 +2030,70 @@ msgid "load_ext: received NULL lib_name"
 msgstr "load_ext: recebido lib_name NULL"
 
 #: ext.c:60
-#, fuzzy, c-format
+#, c-format
 msgid "load_ext: cannot open library `%s' (%s)"
-msgstr "load_ext: não foi possível abrir a biblioteca \"%s\" (%s)\n"
+msgstr "load_ext: não foi possível abrir a biblioteca \"%s\" (%s)"
 
 #: ext.c:66
-#, fuzzy, c-format
+#, c-format
 msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-msgstr ""
-"load_ext: biblioteca \"%s\": não define \"plugin_is_GPL_compatible\" (%s)\n"
+msgstr "load_ext: biblioteca \"%s\": não define \"plugin_is_GPL_compatible\" 
(%s)"
 
 #: ext.c:72
-#, fuzzy, c-format
+#, c-format
 msgid "load_ext: library `%s': cannot call function `%s' (%s)"
-msgstr ""
-"load_ext: biblioteca \"%s\": não foi possível chamar a função \"%s\" 
(%s)\n"
+msgstr "load_ext: biblioteca \"%s\": não foi possível chamar a função 
\"%s\" (%s)"
 
 #: ext.c:76
-#, fuzzy, c-format
+#, c-format
 msgid "load_ext: library `%s' initialization routine `%s' failed"
-msgstr "load_ext: biblioteca \"%s\" falhou na rotina de inicialização 
\"%s\"\n"
+msgstr "load_ext: biblioteca \"%s\" falhou na rotina de inicialização \"%s\""
 
-#: ext.c:111
+#: ext.c:92
 msgid "make_builtin: missing function name"
 msgstr "make_builtin: faltando nome de função"
 
-#: ext.c:119 ext.c:130
+#: ext.c:100 ext.c:111
 #, c-format
 msgid "make_builtin: can't use gawk built-in `%s' as function name"
-msgstr ""
-"make_builtin: não é possível usar \"%s\" intrínseco do gawk como nome de "
-"função"
+msgstr "make_builtin: não é possível usar \"%s\" intrínseco do gawk como 
nome de função"
 
-#: ext.c:128
-#, fuzzy, c-format
+#: ext.c:109
+#, c-format
 msgid "make_builtin: can't use gawk built-in `%s' as namespace name"
-msgstr ""
-"make_builtin: não é possível usar \"%s\" intrínseco do gawk como nome de "
-"função"
+msgstr "make_builtin: não é possível usar \"%s\" intrínseco do gawk como 
nome de espaço de nome"
 
-#: ext.c:145
+#: ext.c:126
 #, c-format
 msgid "make_builtin: can't redefine function `%s'"
 msgstr "make_builtin: não foi possível redefinir \"%s\""
 
-#: ext.c:149
+#: ext.c:130
 #, c-format
 msgid "make_builtin: function `%s' already defined"
 msgstr "make_builtin: função \"%s\" já definida"
 
-#: ext.c:153
+#: ext.c:134
 #, c-format
 msgid "make_builtin: function name `%s' previously defined"
 msgstr "make_builtin: nome da função \"%s\" definido anteriormente"
 
-#: ext.c:157
+#: ext.c:138
 #, c-format
 msgid "make_builtin: negative argument count for function `%s'"
 msgstr "make_builtin: quantidade negativa de argumentos para função \"%s\""
 
-#: ext.c:233
+#: ext.c:214
 #, c-format
 msgid "function `%s': argument #%d: attempt to use scalar as an array"
-msgstr ""
-"função \"%s\": argumento nº %d: tentativa de usar escalar como um vetor"
+msgstr "função \"%s\": argumento nº %d: tentativa de usar escalar como um 
vetor"
 
-#: ext.c:237
+#: ext.c:218
 #, c-format
 msgid "function `%s': argument #%d: attempt to use array as a scalar"
 msgstr "função \"%s\": argumento nº %d: tentativa de usar vetor como 
escalar"
 
-#: ext.c:251
+#: ext.c:232
 msgid "dynamic loading of library not supported"
 msgstr "sem suporte a carregamento dinâmico da biblioteca"
 
@@ -2321,95 +2203,86 @@ msgid "fork: PROCINFO is not an array!"
 msgstr "fork: PROCINFO não é um vetor!"
 
 #: extension/inplace.c:131
-#, fuzzy
 msgid "inplace::begin: in-place editing already active"
-msgstr "inplace_begin: edição in-loco já está ativa"
+msgstr "inplace::begin: edição in-loco já está ativa"
 
 #: extension/inplace.c:134
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: expects 2 arguments but called with %d"
-msgstr "inplace_begin: esperava 2 argumentos, mas foi chamado com %d"
+msgstr "inplace::begin: esperava 2 argumentos, mas foi chamado com %d"
 
 #: extension/inplace.c:137
-#, fuzzy
 msgid "inplace::begin: cannot retrieve 1st argument as a string filename"
-msgstr ""
-"inplace_begin: não foi possível obter 1º argumento como uma string de nome 
"
-"de arquivo"
+msgstr "inplace::begin: não foi possível obter 1º argumento como uma string 
de nome de arquivo"
 
 #: extension/inplace.c:145
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: disabling in-place editing for invalid FILENAME `%s'"
-msgstr ""
-"inplace_begin: desabilitando edição in-loco para FILENAME inválido \"%s\""
+msgstr "inplace::begin: desabilitando edição in-loco para FILENAME inválido 
\"%s\""
 
 # Iniciei a mensagem de erro com letra minúscula para combinar com as demais 
-- Rafael
 #: extension/inplace.c:152
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: Cannot stat `%s' (%s)"
-msgstr "inplace_begin: não foi possível obter estado de \"%s\" (%s)"
+msgstr "inplace::begin: não foi possível obter estado de \"%s\" (%s)"
 
 #: extension/inplace.c:159
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: `%s' is not a regular file"
-msgstr "inplace_begin: \"%s\" não é um arquivo comum"
+msgstr "inplace::begin: \"%s\" não é um arquivo comum"
 
 #: extension/inplace.c:170
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: mkstemp(`%s') failed (%s)"
-msgstr "inplace_begin: mkstemp(\"%s\") falhou (%s)"
+msgstr "inplace::begin: mkstemp(\"%s\") falhou (%s)"
 
 #: extension/inplace.c:182
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: chmod failed (%s)"
-msgstr "inplace_begin: chmod falhou (%s)"
+msgstr "inplace::begin: chmod falhou (%s)"
 
 #: extension/inplace.c:189
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: dup(stdout) failed (%s)"
-msgstr "inplace_begin: dup(stdout) falhou (%s)"
+msgstr "inplace::begin: dup(stdout) falhou (%s)"
 
 #: extension/inplace.c:192
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: dup2(%d, stdout) failed (%s)"
-msgstr "inplace_begin: dup2(%d, stdout) falhou (%s)"
+msgstr "inplace::begin: dup2(%d, stdout) falhou (%s)"
 
 #: extension/inplace.c:195
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::begin: close(%d) failed (%s)"
-msgstr "inplace_begin: close(%d) falhou (%s)"
+msgstr "inplace::begin: close(%d) falhou (%s)"
 
 #: extension/inplace.c:211
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: expects 2 arguments but called with %d"
-msgstr "inplace_end: esperava 2 argumentos, mas foi chamado com %d"
+msgstr "inplace::end: esperava 2 argumentos, mas foi chamado com %d"
 
 #: extension/inplace.c:214
-#, fuzzy
 msgid "inplace::end: cannot retrieve 1st argument as a string filename"
-msgstr ""
-"inplace_end: não foi possível obter 1º argumento como uma string de nome 
de "
-"arquivo"
+msgstr "inplace::end: não foi possível obter 1º argumento como uma string 
de nome de arquivo"
 
 #: extension/inplace.c:221
-#, fuzzy
 msgid "inplace::end: in-place editing not active"
-msgstr "inplace_end: edição in-loco não está ativa"
+msgstr "inplace::end: edição in-loco não está ativa"
 
 #: extension/inplace.c:227
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: dup2(%d, stdout) failed (%s)"
-msgstr "inplace_end: dup2(%d, stdout) falhou (%s)"
+msgstr "inplace::end: dup2(%d, stdout) falhou (%s)"
 
 #: extension/inplace.c:230
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: close(%d) failed (%s)"
-msgstr "inplace_end: close(%d) falhou (%s)"
+msgstr "inplace::end: close(%d) falhou (%s)"
 
 #: extension/inplace.c:234
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: fsetpos(stdout) failed (%s)"
-msgstr "inplace_end: fsetpos(stdout) falhou (%s)"
+msgstr "inplace::end: fsetpos(stdout) falhou (%s)"
 
 #: extension/inplace.c:247
 #, c-format
@@ -2417,9 +2290,9 @@ msgid "inplace_end: link(`%s', `%s') failed (%s)"
 msgstr "inplace_end: link(`%s', `%s') falhou (%s)"
 
 #: extension/inplace.c:257
-#, fuzzy, c-format
+#, c-format
 msgid "inplace::end: rename(`%s', `%s') failed (%s)"
-msgstr "inplace_end: rename(`%s', `%s') falhou (%s)"
+msgstr "inplace::end: rename(`%s', `%s') falhou (%s)"
 
 #: extension/ordchr.c:72
 msgid "ord: called with inappropriate argument(s)"
@@ -2490,8 +2363,7 @@ msgstr "read_array: set_array_element falhou\n"
 #: extension/rwarray.c:489
 #, c-format
 msgid "treating recovered value with unknown type code %d as a string"
-msgstr ""
-"tratando valor recuperado com código de tipo desconhecido %d como uma string"
+msgstr "tratando valor recuperado com código de tipo desconhecido %d como uma 
string"
 
 #: extension/time.c:141
 msgid "gettimeofday: not supported on this platform"
@@ -2519,11 +2391,11 @@ msgstr "NF definido para valor negativo"
 
 #: field.c:403
 msgid "decrementing NF is not portable to many awk versions"
-msgstr ""
+msgstr "o decremento de NF não é portável para muitas versões awk"
 
 #: field.c:847
 msgid "accessing fields from an END rule may not be portable"
-msgstr ""
+msgstr "o acesso a campos de uma regra END não pode ser portável"
 
 #: field.c:975 field.c:982
 msgid "split: fourth argument is a gawk extension"
@@ -2543,18 +2415,15 @@ msgstr "split: não é possível usar o mesmo vetor 
para segundo e quarto args"
 
 #: field.c:998
 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"
+msgstr "split: não é possível usar um subvetor do segundo arg para o quarto 
arg"
 
 #: field.c:1001
 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"
+msgstr "split: não é possível usar um subvetor do quarto arg para o segundo 
arg"
 
 #: field.c:1035
-#, fuzzy
 msgid "split: null string for third arg is a non-standard extension"
-msgstr "split: string nula para segundo argumento é uma extensão do gawk"
+msgstr "split: string nula para segundo argumento é uma extensão não 
padrão"
 
 #: field.c:1072
 msgid "patsplit: fourth argument is not an array"
@@ -2570,18 +2439,15 @@ msgstr "patsplit: terceiro argumento não é um vetor"
 
 #: field.c:1090
 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"
+msgstr "patsplit: não é possível usar o mesmo vetor para segundo e quarto 
argumentos"
 
 #: field.c:1095
 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"
+msgstr "patsplit: não é possível usar um subvetor do segundo arg para o 
quarto arg"
 
 #: field.c:1098
 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"
+msgstr "patsplit: não é possível usar um subvetor do quarto arg para o 
segundo arg"
 
 #: field.c:1148
 msgid "`FIELDWIDTHS' is a gawk extension"
@@ -2626,18 +2492,13 @@ msgid "awk_value_to_node: invalid number type `%d'"
 msgstr "awk_value_to_node: tipo de número inválido \"%d\""
 
 #: gawkapi.c:385
-#, fuzzy
 msgid "add_ext_func: received NULL name_space parameter"
-msgstr "load_ext: recebido lib_name NULL"
+msgstr "add_ext_func: recebido parâmetro name_space NULO"
 
 #: gawkapi.c:523
 #, c-format
-msgid ""
-"node_to_awk_value: detected invalid numeric flags combination `%s'; please "
-"file a bug report."
-msgstr ""
-"node_to_awk_value: detectada combinação inválida de flags numéricas 
\"%s\"; "
-"por favor, faça um relato de erro."
+msgid "node_to_awk_value: detected invalid numeric flags combination `%s'; 
please file a bug report."
+msgstr "node_to_awk_value: detectada combinação inválida de flags 
numéricas \"%s\"; por favor, faça um relato de erro."
 
 #: gawkapi.c:551
 msgid "node_to_awk_value: received null node"
@@ -2649,12 +2510,8 @@ msgstr "node_to_awk_value: recebeu valor nulo"
 
 #: gawkapi.c:610 gawkapi.c:644 gawkapi.c:671 gawkapi.c:704
 #, c-format
-msgid ""
-"node_to_awk_value detected invalid flags combination `%s'; please file a bug "
-"report."
-msgstr ""
-"node_to_awk_value detectou combinação inválida de flags \"%s\"; por favor, 
"
-"faça um relato de erro."
+msgid "node_to_awk_value detected invalid flags combination `%s'; please file 
a bug report."
+msgstr "node_to_awk_value detectou combinação inválida de flags \"%s\"; por 
favor, faça um relato de erro."
 
 #: gawkapi.c:1082
 msgid "remove_element: received null array"
@@ -2665,16 +2522,14 @@ msgid "remove_element: received null subscript"
 msgstr "remove_element: recebeu índice nulo"
 
 #: gawkapi.c:1217
-#, fuzzy, c-format
+#, c-format
 msgid "api_flatten_array_typed: could not convert index %d to %s"
-msgstr ""
-"api_flatten_array_typed: não foi possível converter o índice %d para %s\n"
+msgstr "api_flatten_array_typed: não foi possível converter o índice %d 
para %s"
 
 #: gawkapi.c:1222
-#, fuzzy, c-format
+#, c-format
 msgid "api_flatten_array_typed: could not convert value %d to %s"
-msgstr ""
-"api_flatten_array_typed: não foi possível converter o valor %d para %s\n"
+msgstr "api_flatten_array_typed: não foi possível converter o valor %d para 
%s"
 
 #: gawkapi.c:1318 gawkapi.c:1334
 msgid "api_get_mpfr: MPFR not supported"
@@ -2687,8 +2542,7 @@ msgstr "não foi possível localizar o fim da regra 
BEGINFILE"
 #: gawkapi.c:1419
 #, c-format
 msgid "cannot open unrecognized file type `%s' for `%s'"
-msgstr ""
-"não foi possível abrir tipo de arquivo não reconhecido \"%s\" para \"%s\""
+msgstr "não foi possível abrir tipo de arquivo não reconhecido \"%s\" para 
\"%s\""
 
 #: io.c:426
 #, c-format
@@ -2721,11 +2575,8 @@ msgstr "expressão para o redirecionamento \"%s\" tem 
valor nulo na string"
 
 #: io.c:796
 #, c-format
-msgid ""
-"filename `%.*s' for `%s' redirection may be result of logical expression"
-msgstr ""
-"nome de arquivo \"%.*s\" para redirecionamento \"%s\" pode ser resultado de "
-"expressão lógica"
+msgid "filename `%.*s' for `%s' redirection may be result of logical 
expression"
+msgstr "nome de arquivo \"%.*s\" para redirecionamento \"%s\" pode ser 
resultado de expressão lógica"
 
 #: io.c:844
 #, c-format
@@ -2749,17 +2600,13 @@ msgstr "não foi possível abrir pipe \"%s\" para 
entrada (%s)"
 
 #: io.c:950
 #, c-format
-msgid ""
-"get_file socket creation not supported on this platform for `%s' with fd %d"
-msgstr ""
-"sem suporte à criação de soquete de get_file nesta de plataforma para 
\"%s\" "
-"com fd %d"
+msgid "get_file socket creation not supported on this platform for `%s' with 
fd %d"
+msgstr "sem suporte à criação de soquete de get_file nesta de plataforma 
para \"%s\" com fd %d"
 
 #: io.c:961
 #, c-format
 msgid "can't open two way pipe `%s' for input/output (%s)"
-msgstr ""
-"não foi possível abrir pipe bidirecional \"%s\" para entrada/saída (%s)"
+msgstr "não foi possível abrir pipe bidirecional \"%s\" para entrada/saída 
(%s)"
 
 #: io.c:1048
 #, c-format
@@ -2772,11 +2619,8 @@ msgid "can't redirect to `%s' (%s)"
 msgstr "não foi possível redirecionar para \"%s\" (%s)"
 
 #: io.c:1153
-msgid ""
-"reached system limit for open files: starting to multiplex file descriptors"
-msgstr ""
-"alcançado limite do sistema para arquivos abertos; começando a multiplexar "
-"descritores de arquivos"
+msgid "reached system limit for open files: starting to multiplex file 
descriptors"
+msgstr "alcançado limite do sistema para arquivos abertos; começando a 
multiplexar descritores de arquivos"
 
 #: io.c:1169
 #, c-format
@@ -2803,9 +2647,7 @@ msgstr "fechamento de redirecionamento que nunca foi 
aberto"
 #: io.c:1325
 #, c-format
 msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr ""
-"close: redirecionamento \"%s\" não foi aberto com \"|&\", segundo argumento "
-"ignorado"
+msgstr "close: redirecionamento \"%s\" não foi aberto com \"|&\", segundo 
argumento ignorado"
 
 #: io.c:1342
 #, c-format
@@ -2946,14 +2788,12 @@ msgid "moving pipe to stdin in child failed (dup: %s)"
 msgstr "falha ao mover pipe para stdin em filho (dup: %s)"
 
 #: io.c:2386 io.c:2655
-#, fuzzy
 msgid "restoring stdout in parent process failed"
-msgstr "falha ao restaurar stdout em processo pai\n"
+msgstr "falha ao restaurar stdout em processo pai"
 
 #: io.c:2394
-#, fuzzy
 msgid "restoring stdin in parent process failed"
-msgstr "falha ao restaurar stdin em processo pai\n"
+msgstr "falha ao restaurar stdin em processo pai"
 
 #: io.c:2429 io.c:2667 io.c:2682
 #, c-format
@@ -2976,8 +2816,7 @@ msgstr "não foi possível criar processo filho para 
\"%s\" (fork: %s)"
 
 #: io.c:2814
 msgid "getline: attempt to read from closed read end of two-way pipe"
-msgstr ""
-"getline: tentativa de ler de lado de leitura fechado de pipe bidirecional"
+msgstr "getline: tentativa de ler de lado de leitura fechado de pipe 
bidirecional"
 
 #: io.c:3138
 msgid "register_input_parser: received NULL pointer"
@@ -2986,9 +2825,7 @@ msgstr "register_input_parser: recebido ponteiro NULL"
 #: io.c:3166
 #, c-format
 msgid "input parser `%s' conflicts with previously installed input parser `%s'"
-msgstr ""
-"o analisador de entrada \"%s\" conflita com outro analisador de entrada "
-"previamente instalado \"%s\""
+msgstr "o analisador de entrada \"%s\" conflita com outro analisador de 
entrada previamente instalado \"%s\""
 
 #: io.c:3173
 #, c-format
@@ -3001,11 +2838,8 @@ msgstr "register_output_wrapper: recebido ponteiro NULL"
 
 #: io.c:3221
 #, c-format
-msgid ""
-"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
-msgstr ""
-"wrapper de saída \"%s\" conflita com outro wrapper previamente instalado 
\"%s"
-"\""
+msgid "output wrapper `%s' conflicts with previously installed output wrapper 
`%s'"
+msgstr "wrapper de saída \"%s\" conflita com outro wrapper previamente 
instalado \"%s\""
 
 #: io.c:3228
 #, c-format
@@ -3018,12 +2852,8 @@ msgstr "register_output_processor: recebido ponteiro 
NULL"
 
 #: io.c:3278
 #, c-format
-msgid ""
-"two-way processor `%s' conflicts with previously installed two-way processor "
-"`%s'"
-msgstr ""
-"processador bidirecional \"%s\" conflita com processador bidirecional "
-"previamente instalado \"%s\""
+msgid "two-way processor `%s' conflicts with previously installed two-way 
processor `%s'"
+msgstr "processador bidirecional \"%s\" conflita com processador bidirecional 
previamente instalado \"%s\""
 
 #: io.c:3287
 #, c-format
@@ -3221,13 +3051,12 @@ msgid "\t-W nostalgia\t\t--nostalgia\n"
 msgstr "\t-W nostalgia\t\t--nostalgia\n"
 
 #: main.c:620
-#, fuzzy
 msgid "\t-Y\t\t\t--parsedebug\n"
-msgstr "\t-Y\t\t--parsedebug\n"
+msgstr "\t-Y\t\t\t--parsedebug\n"
 
 #: main.c:623
 msgid "\t-Z locale-name\t\t--locale=locale-name\n"
-msgstr ""
+msgstr "\t-Z nome-locale\t\t--locale=nome-locale\n"
 
 #. TRANSLATORS: --help output 5 (end)
 #. TRANSLATORS: the placeholder indicates the bug-reporting address
@@ -3235,7 +3064,6 @@ msgstr ""
 #. address for translation bugs.
 #. no-wrap
 #: main.c:632
-#, fuzzy
 msgid ""
 "\n"
 "To report bugs, see node `Bugs' in `gawk.info'\n"
@@ -3252,7 +3080,9 @@ msgstr ""
 "que é a seção \"Reporting Problems and Bugs\" na\n"
 "versão impressa. A mesma informação pode ser localizada em\n"
 "https://www.gnu.org/software/gawk/manual/html_node/Bugs.html.\n";
-"POR FAVOR NÃO tente relatar erros publicando na comp.lang.awk.\n"
+"POR FAVOR NÃO tente relatar erros publicando na comp.lang.awk,\n"
+"\n"
+"ou usando um fórum web, tal como o Stack Overflow.\n"
 "\n"
 
 #: main.c:640
@@ -3261,8 +3091,8 @@ msgid ""
 "By default it reads standard input and writes standard output.\n"
 "\n"
 msgstr ""
-"gawk é uma linguagem de processamento e busca de padrões.\n"
-"Por padrão, o gawk lê a entrada padrão e escreve na saída padrão.\n"
+"gawk é uma linguagem de busca e processamento de padrões.\n"
+"Por padrão, ele lê a entrada padrão e escreve na saída padrão.\n"
 "\n"
 
 #: main.c:644
@@ -3468,12 +3298,8 @@ msgstr "nenhum dígito hexa na sequência de escape 
\"\\x\""
 
 #: node.c:633
 #, c-format
-msgid ""
-"hex escape \\x%.*s of %d characters probably not interpreted the way you "
-"expect"
-msgstr ""
-"escape hexa \\x%.*s de %d caracteres provavelmente não interpretado na forma 
"
-"que você esperava"
+msgid "hex escape \\x%.*s of %d characters probably not interpreted the way 
you expect"
+msgstr "escape hexa \\x%.*s de %d caracteres provavelmente não interpretado 
na forma que você esperava"
 
 #: node.c:648
 #, c-format
@@ -3481,29 +3307,22 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
 msgstr "sequência de escape \"\\%c\" tratada como \"%c\" normal"
 
 #: node.c:784
-msgid ""
-"Invalid multibyte data detected. There may be a mismatch between your data "
-"and your locale."
-msgstr ""
-"Dados com múltiplos bytes inválidos detectados. Pode haver uma "
-"incompatibilidade entre seus dados e seu \"locale\"."
+msgid "Invalid multibyte data detected. There may be a mismatch between your 
data and your locale."
+msgstr "Dados com múltiplos bytes inválidos detectados. Pode haver uma 
incompatibilidade entre seus dados e seu \"locale\"."
 
 #: posix/gawkmisc.c:177
 #, c-format
 msgid "%s %s `%s': could not get fd flags: (fcntl F_GETFD: %s)"
-msgstr ""
-"%s %s \"%s\": não foi possível obter flags do descritor: (fcntl F_GETFD: 
%s)"
+msgstr "%s %s \"%s\": não foi possível obter flags do descritor: (fcntl 
F_GETFD: %s)"
 
 #: posix/gawkmisc.c:189
 #, c-format
 msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
-msgstr ""
-"%s %s \"%s\": não foi possível definir fechar-ao-executar: (fcntl F_SETFD: "
-"%s)"
+msgstr "%s %s \"%s\": não foi possível definir fechar-ao-executar: (fcntl 
F_SETFD: %s)"
 
 #: profile.c:73
 msgid "Program indentation level too deep. Consider refactoring your code"
-msgstr ""
+msgstr "Nível de recuo do programa está profundo demais. Considere refatorar 
seu código"
 
 #: profile.c:110
 #, c-format
@@ -3542,22 +3361,23 @@ msgid "internal error: builtin with null fname"
 msgstr "erro interno: intrínseco com fname nulo"
 
 #: profile.c:1298
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "%s# Loaded extensions (-l and/or @load)\n"
 "\n"
 msgstr ""
-"\t# Extensões carregadas (-l e/ou @load)\n"
+"%s# Extensões carregadas (-l e/ou @load)\n"
 "\n"
 
 #: profile.c:1329
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "\n"
 "# Included files (-i and/or @include)\n"
 "\n"
 msgstr ""
-"\t# Extensões carregadas (-l e/ou @load)\n"
+"\n"
+"# Arquivos incluídos (-i e/ou @include)\n"
 "\n"
 
 #: profile.c:1393
@@ -3580,24 +3400,22 @@ msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: tipo de redirecionamento desconhecido %d"
 
 #: re.c:58 re.c:161
-msgid ""
-"behavior of matching a regexp containing NUL characters is not defined by "
-"POSIX"
-msgstr ""
+msgid "behavior of matching a regexp containing NUL characters is not defined 
by POSIX"
+msgstr "comportamento de correspondência à regexp contendo caracteres NUL 
não está definido pelo POSIX"
 
 #: re.c:125
 msgid "invalid NUL byte in dynamic regexp"
-msgstr ""
+msgstr "byte NUL inválido em regexp dinâmica"
 
 #: re.c:172
-#, fuzzy, c-format
+#, c-format
 msgid "regexp escape sequence `\\%c' treated as plain `%c'"
-msgstr "sequência de escape \"\\%c\" tratada como \"%c\" normal"
+msgstr "sequência de escape \"\\%c\" da regexp tratada como \"%c\" normal"
 
 #: re.c:191
 #, c-format
 msgid "regexp escape sequence `\\%c' is not a known regexp operator"
-msgstr ""
+msgstr "sequência de escape \"\\%c\" da regexp não é um operador de regexp 
conhecido"
 
 #: re.c:650
 #, c-format
@@ -3771,8 +3589,7 @@ msgstr "Nenhuma expressão regular anterior"
 #: symbol.c:688
 #, c-format
 msgid "function `%s': can't use function `%s' as a parameter name"
-msgstr ""
-"função \"%s\": não é possível usar a função \"%s\" como um nome de 
parâmetro"
+msgstr "função \"%s\": não é possível usar a função \"%s\" como um nome 
de parâmetro"
 
 #: symbol.c:818
 msgid "can not pop main context"
@@ -3811,14 +3628,11 @@ msgstr "não foi possível trazer contexto principal"
 #~ msgid "extension: cannot open library `%s' (%s)"
 #~ msgstr "extension: não foi possível abrir a biblioteca \"%s\" (%s)"
 
-#~ msgid ""
-#~ "extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-#~ msgstr ""
-#~ "extension: biblioteca \"%s\": não define \"plugin_is_GPL_compatible\" 
(%s)"
+#~ msgid "extension: library `%s': does not define `plugin_is_GPL_compatible' 
(%s)"
+#~ msgstr "extension: biblioteca \"%s\": não define 
\"plugin_is_GPL_compatible\" (%s)"
 
 #~ msgid "extension: library `%s': cannot call function `%s' (%s)"
-#~ msgstr ""
-#~ "extension: biblioteca \"%s\": não foi possível chamar a função \"%s\" 
(%s)"
+#~ msgstr "extension: biblioteca \"%s\": não foi possível chamar a função 
\"%s\" (%s)"
 
 #~ msgid "extension: missing function name"
 #~ msgstr "extension: faltando nome de função"
@@ -3836,9 +3650,7 @@ msgstr "não foi possível trazer contexto principal"
 #~ msgstr "extension: nome da função \"%s\" definido anteriormente"
 
 #~ msgid "extension: can't use gawk built-in `%s' as function name"
-#~ msgstr ""
-#~ "extension: não é possível usar \"%s\" intrínseco do gawk como nome de "
-#~ "função"
+#~ msgstr "extension: não é possível usar \"%s\" intrínseco do gawk como 
nome de função"
 
 #~ msgid "chdir: called with incorrect number of arguments, expecting 1"
 #~ msgstr "chdir: chamada com número incorreto de argumentos, esperava 1"
@@ -3948,10 +3760,8 @@ msgstr "não foi possível trazer contexto principal"
 #~ msgid "xor(%lf, %lf): fractional values will be truncated"
 #~ msgstr "xor(%lf, %lf): valores fracionários serão truncados"
 
-#~ msgid ""
-#~ "for loop: array `%s' changed size from %ld to %ld during loop execution"
-#~ msgstr ""
-#~ "loop for: vetor `%s' mudou de tamanho de %ld para %ld durante a execução"
+#~ msgid "for loop: array `%s' changed size from %ld to %ld during loop 
execution"
+#~ msgstr "loop for: vetor `%s' mudou de tamanho de %ld para %ld durante a 
execução"
 
 #~ msgid "`break' outside a loop is not portable"
 #~ msgstr "`break' fora de um loop não é portável"
@@ -3971,12 +3781,8 @@ msgstr "não foi possível trazer contexto principal"
 #~ msgid "statement has no effect"
 #~ msgstr "declaração não tem efeito"
 
-#~ msgid ""
-#~ "concatenation: side effects in one expression have changed the length of "
-#~ "another!"
-#~ msgstr ""
-#~ "concatenação: efeitos colaterais em um contexto mudaram o comprimento de 
"
-#~ "outro!"
+#~ msgid "concatenation: side effects in one expression have changed the 
length of another!"
+#~ msgstr "concatenação: efeitos colaterais em um contexto mudaram o 
comprimento de outro!"
 
 #~ msgid "assignment used in conditional context"
 #~ msgstr "atribuição usada em contexto condicional"
@@ -4018,8 +3824,7 @@ msgstr "não foi possível trazer contexto principal"
 #~ msgstr "infelizmente, o servidor de /inet/raw não está concluído"
 
 #~ msgid "no (known) protocol supplied in special filename `%s'"
-#~ msgstr ""
-#~ "nenhum protocolo (conhecido) fornecido em nome de arquivo especial `%s'"
+#~ msgstr "nenhum protocolo (conhecido) fornecido em nome de arquivo especial 
`%s'"
 
 #~ msgid "special file name `%s' is incomplete"
 #~ msgstr "nome de arquivo especial `%s' está incompleto"
@@ -4087,9 +3892,7 @@ msgstr "não foi possível trazer contexto principal"
 #~ msgstr "tipo inesperado %s em prec_level"
 
 #~ msgid "regex match failed, not enough memory to match string \"%.*s%s\""
-#~ msgstr ""
-#~ "busca por exp. reg. falhou, memória insuficiente para testar string 
\"%.*s"
-#~ "%s\""
+#~ msgstr "busca por exp. reg. falhou, memória insuficiente para testar 
string \"%.*s%s\""
 
 #~ msgid "delete: illegal use of variable `%s' as array"
 #~ msgstr "delete: uso ilegal da variável `%s' como vetor"

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

commit 8ec98d6231f61daedc317ec8198cf0864f090f43
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Feb 15 11:18:11 2019 +0200

    Small doc fix for %f description.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 78c54e7..1feb4ff 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2019-02-15         Arnold D. Robbins     <address@hidden>
+
+       * gawktexi.in: Fix wording for %f.
+       Thanks to Dan Liddell <address@hidden> for the catch.
+
 2019-02-11         Arnold D. Robbins     <address@hidden>
 
        * gawktexi.in: Don't use `\global\usebracesinindexestrue' as it's
diff --git a/doc/gawk.info b/doc/gawk.info
index 891685a..1b4cb79 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -6716,8 +6716,8 @@ width.  Here is a list of the format-control letters:
 
           printf "%4.3f", 1950
 
-     prints '1950.000', with a total of four significant figures, three
-     of which follow the decimal point.  (The '4.3' represents two
+     prints '1950.000', with a minimum of four significant figures,
+     three of which follow the decimal point.  (The '4.3' represents two
      modifiers, discussed in the next node.)
 
      On systems supporting IEEE 754 floating-point format, values
@@ -36937,470 +36937,470 @@ Node: OFMT291244
 Node: Printf292600
 Node: Basic Printf293385
 Node: Control Letters294959
-Node: Format Modifiers300121
-Node: Printf Examples306136
-Node: Redirection308622
-Node: Special FD315463
-Ref: Special FD-Footnote-1318631
-Node: Special Files318705
-Node: Other Inherited Files319322
-Node: Special Network320323
-Node: Special Caveats321183
-Node: Close Files And Pipes322132
-Ref: table-close-pipe-return-values329039
-Ref: Close Files And Pipes-Footnote-1329852
-Ref: Close Files And Pipes-Footnote-2330000
-Node: Nonfatal330152
-Node: Output Summary332490
-Node: Output Exercises333712
-Node: Expressions334391
-Node: Values335579
-Node: Constants336257
-Node: Scalar Constants336948
-Ref: Scalar Constants-Footnote-1339472
-Node: Nondecimal-numbers339722
-Node: Regexp Constants342723
-Node: Using Constant Regexps343249
-Node: Standard Regexp Constants343871
-Node: Strong Regexp Constants347059
-Node: Variables350017
-Node: Using Variables350674
-Node: Assignment Options352584
-Node: Conversion355051
-Node: Strings And Numbers355575
-Ref: Strings And Numbers-Footnote-1358638
-Node: Locale influences conversions358747
-Ref: table-locale-affects361505
-Node: All Operators362123
-Node: Arithmetic Ops362752
-Node: Concatenation365258
-Ref: Concatenation-Footnote-1368105
-Node: Assignment Ops368212
-Ref: table-assign-ops373203
-Node: Increment Ops374516
-Node: Truth Values and Conditions377976
-Node: Truth Values379050
-Node: Typing and Comparison380098
-Node: Variable Typing380918
-Ref: Variable Typing-Footnote-1387381
-Ref: Variable Typing-Footnote-2387453
-Node: Comparison Operators387530
-Ref: table-relational-ops387949
-Node: POSIX String Comparison391444
-Ref: POSIX String Comparison-Footnote-1393139
-Ref: POSIX String Comparison-Footnote-2393278
-Node: Boolean Ops393362
-Ref: Boolean Ops-Footnote-1397844
-Node: Conditional Exp397936
-Node: Function Calls399672
-Node: Precedence403549
-Node: Locales407208
-Node: Expressions Summary408840
-Node: Patterns and Actions411413
-Node: Pattern Overview412533
-Node: Regexp Patterns414210
-Node: Expression Patterns414752
-Node: Ranges418533
-Node: BEGIN/END421641
-Node: Using BEGIN/END422402
-Ref: Using BEGIN/END-Footnote-1425138
-Node: I/O And BEGIN/END425244
-Node: BEGINFILE/ENDFILE427558
-Node: Empty430471
-Node: Using Shell Variables430788
-Node: Action Overview433062
-Node: Statements435387
-Node: If Statement437235
-Node: While Statement438730
-Node: Do Statement440758
-Node: For Statement441906
-Node: Switch Statement445077
-Node: Break Statement447463
-Node: Continue Statement449555
-Node: Next Statement451382
-Node: Nextfile Statement453765
-Node: Exit Statement456417
-Node: Built-in Variables458820
-Node: User-modified459953
-Node: Auto-set467720
-Ref: Auto-set-Footnote-1484527
-Ref: Auto-set-Footnote-2484733
-Node: ARGC and ARGV484789
-Node: Pattern Action Summary489002
-Node: Arrays491432
-Node: Array Basics492761
-Node: Array Intro493605
-Ref: figure-array-elements495580
-Ref: Array Intro-Footnote-1498284
-Node: Reference to Elements498412
-Node: Assigning Elements500876
-Node: Array Example501367
-Node: Scanning an Array503126
-Node: Controlling Scanning506148
-Ref: Controlling Scanning-Footnote-1511547
-Node: Numeric Array Subscripts511863
-Node: Uninitialized Subscripts514047
-Node: Delete515666
-Ref: Delete-Footnote-1518418
-Node: Multidimensional518475
-Node: Multiscanning521570
-Node: Arrays of Arrays523161
-Node: Arrays Summary527929
-Node: Functions530022
-Node: Built-in531060
-Node: Calling Built-in532141
-Node: Numeric Functions534137
-Ref: Numeric Functions-Footnote-1538165
-Ref: Numeric Functions-Footnote-2538810
-Ref: Numeric Functions-Footnote-3538858
-Node: String Functions539130
-Ref: String Functions-Footnote-1562988
-Ref: String Functions-Footnote-2563116
-Ref: String Functions-Footnote-3563364
-Node: Gory Details563451
-Ref: table-sub-escapes565242
-Ref: table-sub-proposed566761
-Ref: table-posix-sub568124
-Ref: table-gensub-escapes569665
-Ref: Gory Details-Footnote-1570488
-Node: I/O Functions570642
-Ref: table-system-return-values577110
-Ref: I/O Functions-Footnote-1579190
-Ref: I/O Functions-Footnote-2579338
-Node: Time Functions579458
-Ref: Time Functions-Footnote-1590129
-Ref: Time Functions-Footnote-2590197
-Ref: Time Functions-Footnote-3590355
-Ref: Time Functions-Footnote-4590466
-Ref: Time Functions-Footnote-5590578
-Ref: Time Functions-Footnote-6590805
-Node: Bitwise Functions591071
-Ref: table-bitwise-ops591665
-Ref: Bitwise Functions-Footnote-1597728
-Ref: Bitwise Functions-Footnote-2597901
-Node: Type Functions598092
-Node: I18N Functions600843
-Node: User-defined602494
-Node: Definition Syntax603306
-Ref: Definition Syntax-Footnote-1608993
-Node: Function Example609064
-Ref: Function Example-Footnote-1611986
-Node: Function Calling612008
-Node: Calling A Function612596
-Node: Variable Scope613554
-Node: Pass By Value/Reference616548
-Node: Function Caveats619192
-Ref: Function Caveats-Footnote-1621239
-Node: Return Statement621359
-Node: Dynamic Typing624338
-Node: Indirect Calls625268
-Ref: Indirect Calls-Footnote-1635520
-Node: Functions Summary635648
-Node: Library Functions638353
-Ref: Library Functions-Footnote-1641960
-Ref: Library Functions-Footnote-2642103
-Node: Library Names642274
-Ref: Library Names-Footnote-1645941
-Ref: Library Names-Footnote-2646164
-Node: General Functions646250
-Node: Strtonum Function647353
-Node: Assert Function650375
-Node: Round Function653701
-Node: Cliff Random Function655241
-Node: Ordinal Functions656257
-Ref: Ordinal Functions-Footnote-1659320
-Ref: Ordinal Functions-Footnote-2659572
-Node: Join Function659782
-Ref: Join Function-Footnote-1661552
-Node: Getlocaltime Function661752
-Node: Readfile Function665494
-Node: Shell Quoting667471
-Node: Data File Management668872
-Node: Filetrans Function669504
-Node: Rewind Function673600
-Node: File Checking675509
-Ref: File Checking-Footnote-1676843
-Node: Empty Files677044
-Node: Ignoring Assigns679023
-Node: Getopt Function680573
-Ref: Getopt Function-Footnote-1692042
-Node: Passwd Functions692242
-Ref: Passwd Functions-Footnote-1701081
-Node: Group Functions701169
-Ref: Group Functions-Footnote-1709067
-Node: Walking Arrays709274
-Node: Library Functions Summary712282
-Node: Library Exercises713688
-Node: Sample Programs714153
-Node: Running Examples714923
-Node: Clones715651
-Node: Cut Program716875
-Node: Egrep Program726804
-Ref: Egrep Program-Footnote-1734316
-Node: Id Program734426
-Node: Split Program738106
-Ref: Split Program-Footnote-1741564
-Node: Tee Program741693
-Node: Uniq Program744483
-Node: Wc Program752104
-Ref: Wc Program-Footnote-1756359
-Node: Miscellaneous Programs756453
-Node: Dupword Program757666
-Node: Alarm Program759696
-Node: Translate Program764551
-Ref: Translate Program-Footnote-1769116
-Node: Labels Program769386
-Ref: Labels Program-Footnote-1772737
-Node: Word Sorting772821
-Node: History Sorting776893
-Node: Extract Program778728
-Node: Simple Sed786782
-Node: Igawk Program789856
-Ref: Igawk Program-Footnote-1804187
-Ref: Igawk Program-Footnote-2804389
-Ref: Igawk Program-Footnote-3804511
-Node: Anagram Program804626
-Node: Signature Program807688
-Node: Programs Summary808935
-Node: Programs Exercises810149
-Ref: Programs Exercises-Footnote-1814278
-Node: Advanced Features814369
-Node: Nondecimal Data816359
-Node: Array Sorting817950
-Node: Controlling Array Traversal818650
-Ref: Controlling Array Traversal-Footnote-1827018
-Node: Array Sorting Functions827136
-Ref: Array Sorting Functions-Footnote-1832227
-Node: Two-way I/O832423
-Ref: Two-way I/O-Footnote-1840144
-Ref: Two-way I/O-Footnote-2840331
-Node: TCP/IP Networking840413
-Node: Profiling843531
-Node: Advanced Features Summary852549
-Node: Internationalization854393
-Node: I18N and L10N855873
-Node: Explaining gettext856560
-Ref: Explaining gettext-Footnote-1862452
-Ref: Explaining gettext-Footnote-2862637
-Node: Programmer i18n862802
-Ref: Programmer i18n-Footnote-1867751
-Node: Translator i18n867800
-Node: String Extraction868594
-Ref: String Extraction-Footnote-1869726
-Node: Printf Ordering869812
-Ref: Printf Ordering-Footnote-1872598
-Node: I18N Portability872662
-Ref: I18N Portability-Footnote-1875118
-Node: I18N Example875181
-Ref: I18N Example-Footnote-1878456
-Ref: I18N Example-Footnote-2878529
-Node: Gawk I18N878638
-Node: I18N Summary879283
-Node: Debugger880624
-Node: Debugging881624
-Node: Debugging Concepts882065
-Node: Debugging Terms883874
-Node: Awk Debugging886449
-Ref: Awk Debugging-Footnote-1887394
-Node: Sample Debugging Session887526
-Node: Debugger Invocation888060
-Node: Finding The Bug889446
-Node: List of Debugger Commands895920
-Node: Breakpoint Control897253
-Node: Debugger Execution Control900947
-Node: Viewing And Changing Data904309
-Node: Execution Stack907683
-Node: Debugger Info909320
-Node: Miscellaneous Debugger Commands913391
-Node: Readline Support918453
-Node: Limitations919349
-Node: Debugging Summary921458
-Node: Namespaces922737
-Node: Global Namespace923816
-Node: Qualified Names925214
-Node: Default Namespace926213
-Node: Changing The Namespace926954
-Node: Naming Rules928568
-Node: Internal Name Management930416
-Node: Namespace Example931458
-Node: Namespace And Features934020
-Node: Namespace Summary935455
-Node: Arbitrary Precision Arithmetic936932
-Node: Computer Arithmetic938419
-Ref: table-numeric-ranges942185
-Ref: table-floating-point-ranges942678
-Ref: Computer Arithmetic-Footnote-1943336
-Node: Math Definitions943393
-Ref: table-ieee-formats946709
-Ref: Math Definitions-Footnote-1947312
-Node: MPFR features947417
-Node: FP Math Caution949135
-Ref: FP Math Caution-Footnote-1950207
-Node: Inexactness of computations950576
-Node: Inexact representation951536
-Node: Comparing FP Values952896
-Node: Errors accumulate954137
-Node: Getting Accuracy955570
-Node: Try To Round958280
-Node: Setting precision959179
-Ref: table-predefined-precision-strings959876
-Node: Setting the rounding mode961706
-Ref: table-gawk-rounding-modes962080
-Ref: Setting the rounding mode-Footnote-1966011
-Node: Arbitrary Precision Integers966190
-Ref: Arbitrary Precision Integers-Footnote-1969365
-Node: Checking for MPFR969514
-Node: POSIX Floating Point Problems970988
-Ref: POSIX Floating Point Problems-Footnote-1975273
-Node: Floating point summary975311
-Node: Dynamic Extensions977501
-Node: Extension Intro979054
-Node: Plugin License980320
-Node: Extension Mechanism Outline981117
-Ref: figure-load-extension981556
-Ref: figure-register-new-function983121
-Ref: figure-call-new-function984213
-Node: Extension API Description986275
-Node: Extension API Functions Introduction987917
-Ref: table-api-std-headers989753
-Node: General Data Types993618
-Ref: General Data Types-Footnote-11001979
-Node: Memory Allocation Functions1002278
-Ref: Memory Allocation Functions-Footnote-11006488
-Node: Constructor Functions1006587
-Node: Registration Functions1010173
-Node: Extension Functions1010858
-Node: Exit Callback Functions1016180
-Node: Extension Version String1017430
-Node: Input Parsers1018093
-Node: Output Wrappers1030814
-Node: Two-way processors1035326
-Node: Printing Messages1037591
-Ref: Printing Messages-Footnote-11038762
-Node: Updating ERRNO1038915
-Node: Requesting Values1039654
-Ref: table-value-types-returned1040391
-Node: Accessing Parameters1041327
-Node: Symbol Table Access1042562
-Node: Symbol table by name1043074
-Ref: Symbol table by name-Footnote-11046098
-Node: Symbol table by cookie1046226
-Ref: Symbol table by cookie-Footnote-11050411
-Node: Cached values1050475
-Ref: Cached values-Footnote-11054011
-Node: Array Manipulation1054164
-Ref: Array Manipulation-Footnote-11055255
-Node: Array Data Types1055292
-Ref: Array Data Types-Footnote-11057950
-Node: Array Functions1058042
-Node: Flattening Arrays1062540
-Node: Creating Arrays1069516
-Node: Redirection API1074283
-Node: Extension API Variables1077116
-Node: Extension Versioning1077827
-Ref: gawk-api-version1078256
-Node: Extension GMP/MPFR Versioning1079987
-Node: Extension API Informational Variables1081615
-Node: Extension API Boilerplate1082688
-Node: Changes from API V11086662
-Node: Finding Extensions1088234
-Node: Extension Example1088793
-Node: Internal File Description1089591
-Node: Internal File Ops1093671
-Ref: Internal File Ops-Footnote-11105021
-Node: Using Internal File Ops1105161
-Ref: Using Internal File Ops-Footnote-11107544
-Node: Extension Samples1107818
-Node: Extension Sample File Functions1109347
-Node: Extension Sample Fnmatch1116996
-Node: Extension Sample Fork1118483
-Node: Extension Sample Inplace1119701
-Node: Extension Sample Ord1123005
-Node: Extension Sample Readdir1123841
-Ref: table-readdir-file-types1124730
-Node: Extension Sample Revout1125535
-Node: Extension Sample Rev2way1126124
-Node: Extension Sample Read write array1126864
-Node: Extension Sample Readfile1128806
-Node: Extension Sample Time1129901
-Node: Extension Sample API Tests1131249
-Node: gawkextlib1131741
-Node: Extension summary1134659
-Node: Extension Exercises1138361
-Node: Language History1139603
-Node: V7/SVR3.11141259
-Node: SVR41143411
-Node: POSIX1144845
-Node: BTL1146225
-Node: POSIX/GNU1146954
-Node: Feature History1152732
-Node: Common Extensions1168778
-Node: Ranges and Locales1170061
-Ref: Ranges and Locales-Footnote-11174677
-Ref: Ranges and Locales-Footnote-21174704
-Ref: Ranges and Locales-Footnote-31174939
-Node: Contributors1175160
-Node: History summary1181105
-Node: Installation1182485
-Node: Gawk Distribution1183429
-Node: Getting1183913
-Node: Extracting1184876
-Node: Distribution contents1186514
-Node: Unix Installation1192994
-Node: Quick Installation1193676
-Node: Shell Startup Files1196090
-Node: Additional Configuration Options1197179
-Node: Configuration Philosophy1199344
-Node: Non-Unix Installation1201713
-Node: PC Installation1202173
-Node: PC Binary Installation1203011
-Node: PC Compiling1203446
-Node: PC Using1204563
-Node: Cygwin1208116
-Node: MSYS1209215
-Node: VMS Installation1209716
-Node: VMS Compilation1210507
-Ref: VMS Compilation-Footnote-11211736
-Node: VMS Dynamic Extensions1211794
-Node: VMS Installation Details1213479
-Node: VMS Running1215732
-Node: VMS GNV1220011
-Node: VMS Old Gawk1220746
-Node: Bugs1221217
-Node: Bug address1221880
-Node: Usenet1224862
-Node: Maintainers1225866
-Node: Other Versions1227127
-Node: Installation summary1234041
-Node: Notes1235243
-Node: Compatibility Mode1236037
-Node: Additions1236819
-Node: Accessing The Source1237744
-Node: Adding Code1239181
-Node: New Ports1245400
-Node: Derived Files1249888
-Ref: Derived Files-Footnote-11255534
-Ref: Derived Files-Footnote-21255569
-Ref: Derived Files-Footnote-31256167
-Node: Future Extensions1256281
-Node: Implementation Limitations1256939
-Node: Extension Design1258122
-Node: Old Extension Problems1259266
-Ref: Old Extension Problems-Footnote-11260784
-Node: Extension New Mechanism Goals1260841
-Ref: Extension New Mechanism Goals-Footnote-11264205
-Node: Extension Other Design Decisions1264394
-Node: Extension Future Growth1266507
-Node: Notes summary1267343
-Node: Basic Concepts1268518
-Node: Basic High Level1269199
-Ref: figure-general-flow1269481
-Ref: figure-process-flow1270166
-Ref: Basic High Level-Footnote-11273467
-Node: Basic Data Typing1273652
-Node: Glossary1276980
-Node: Copying1308818
-Node: GNU Free Documentation License1346361
-Node: Index1371481
+Node: Format Modifiers300123
+Node: Printf Examples306138
+Node: Redirection308624
+Node: Special FD315465
+Ref: Special FD-Footnote-1318633
+Node: Special Files318707
+Node: Other Inherited Files319324
+Node: Special Network320325
+Node: Special Caveats321185
+Node: Close Files And Pipes322134
+Ref: table-close-pipe-return-values329041
+Ref: Close Files And Pipes-Footnote-1329854
+Ref: Close Files And Pipes-Footnote-2330002
+Node: Nonfatal330154
+Node: Output Summary332492
+Node: Output Exercises333714
+Node: Expressions334393
+Node: Values335581
+Node: Constants336259
+Node: Scalar Constants336950
+Ref: Scalar Constants-Footnote-1339474
+Node: Nondecimal-numbers339724
+Node: Regexp Constants342725
+Node: Using Constant Regexps343251
+Node: Standard Regexp Constants343873
+Node: Strong Regexp Constants347061
+Node: Variables350019
+Node: Using Variables350676
+Node: Assignment Options352586
+Node: Conversion355053
+Node: Strings And Numbers355577
+Ref: Strings And Numbers-Footnote-1358640
+Node: Locale influences conversions358749
+Ref: table-locale-affects361507
+Node: All Operators362125
+Node: Arithmetic Ops362754
+Node: Concatenation365260
+Ref: Concatenation-Footnote-1368107
+Node: Assignment Ops368214
+Ref: table-assign-ops373205
+Node: Increment Ops374518
+Node: Truth Values and Conditions377978
+Node: Truth Values379052
+Node: Typing and Comparison380100
+Node: Variable Typing380920
+Ref: Variable Typing-Footnote-1387383
+Ref: Variable Typing-Footnote-2387455
+Node: Comparison Operators387532
+Ref: table-relational-ops387951
+Node: POSIX String Comparison391446
+Ref: POSIX String Comparison-Footnote-1393141
+Ref: POSIX String Comparison-Footnote-2393280
+Node: Boolean Ops393364
+Ref: Boolean Ops-Footnote-1397846
+Node: Conditional Exp397938
+Node: Function Calls399674
+Node: Precedence403551
+Node: Locales407210
+Node: Expressions Summary408842
+Node: Patterns and Actions411415
+Node: Pattern Overview412535
+Node: Regexp Patterns414212
+Node: Expression Patterns414754
+Node: Ranges418535
+Node: BEGIN/END421643
+Node: Using BEGIN/END422404
+Ref: Using BEGIN/END-Footnote-1425140
+Node: I/O And BEGIN/END425246
+Node: BEGINFILE/ENDFILE427560
+Node: Empty430473
+Node: Using Shell Variables430790
+Node: Action Overview433064
+Node: Statements435389
+Node: If Statement437237
+Node: While Statement438732
+Node: Do Statement440760
+Node: For Statement441908
+Node: Switch Statement445079
+Node: Break Statement447465
+Node: Continue Statement449557
+Node: Next Statement451384
+Node: Nextfile Statement453767
+Node: Exit Statement456419
+Node: Built-in Variables458822
+Node: User-modified459955
+Node: Auto-set467722
+Ref: Auto-set-Footnote-1484529
+Ref: Auto-set-Footnote-2484735
+Node: ARGC and ARGV484791
+Node: Pattern Action Summary489004
+Node: Arrays491434
+Node: Array Basics492763
+Node: Array Intro493607
+Ref: figure-array-elements495582
+Ref: Array Intro-Footnote-1498286
+Node: Reference to Elements498414
+Node: Assigning Elements500878
+Node: Array Example501369
+Node: Scanning an Array503128
+Node: Controlling Scanning506150
+Ref: Controlling Scanning-Footnote-1511549
+Node: Numeric Array Subscripts511865
+Node: Uninitialized Subscripts514049
+Node: Delete515668
+Ref: Delete-Footnote-1518420
+Node: Multidimensional518477
+Node: Multiscanning521572
+Node: Arrays of Arrays523163
+Node: Arrays Summary527931
+Node: Functions530024
+Node: Built-in531062
+Node: Calling Built-in532143
+Node: Numeric Functions534139
+Ref: Numeric Functions-Footnote-1538167
+Ref: Numeric Functions-Footnote-2538812
+Ref: Numeric Functions-Footnote-3538860
+Node: String Functions539132
+Ref: String Functions-Footnote-1562990
+Ref: String Functions-Footnote-2563118
+Ref: String Functions-Footnote-3563366
+Node: Gory Details563453
+Ref: table-sub-escapes565244
+Ref: table-sub-proposed566763
+Ref: table-posix-sub568126
+Ref: table-gensub-escapes569667
+Ref: Gory Details-Footnote-1570490
+Node: I/O Functions570644
+Ref: table-system-return-values577112
+Ref: I/O Functions-Footnote-1579192
+Ref: I/O Functions-Footnote-2579340
+Node: Time Functions579460
+Ref: Time Functions-Footnote-1590131
+Ref: Time Functions-Footnote-2590199
+Ref: Time Functions-Footnote-3590357
+Ref: Time Functions-Footnote-4590468
+Ref: Time Functions-Footnote-5590580
+Ref: Time Functions-Footnote-6590807
+Node: Bitwise Functions591073
+Ref: table-bitwise-ops591667
+Ref: Bitwise Functions-Footnote-1597730
+Ref: Bitwise Functions-Footnote-2597903
+Node: Type Functions598094
+Node: I18N Functions600845
+Node: User-defined602496
+Node: Definition Syntax603308
+Ref: Definition Syntax-Footnote-1608995
+Node: Function Example609066
+Ref: Function Example-Footnote-1611988
+Node: Function Calling612010
+Node: Calling A Function612598
+Node: Variable Scope613556
+Node: Pass By Value/Reference616550
+Node: Function Caveats619194
+Ref: Function Caveats-Footnote-1621241
+Node: Return Statement621361
+Node: Dynamic Typing624340
+Node: Indirect Calls625270
+Ref: Indirect Calls-Footnote-1635522
+Node: Functions Summary635650
+Node: Library Functions638355
+Ref: Library Functions-Footnote-1641962
+Ref: Library Functions-Footnote-2642105
+Node: Library Names642276
+Ref: Library Names-Footnote-1645943
+Ref: Library Names-Footnote-2646166
+Node: General Functions646252
+Node: Strtonum Function647355
+Node: Assert Function650377
+Node: Round Function653703
+Node: Cliff Random Function655243
+Node: Ordinal Functions656259
+Ref: Ordinal Functions-Footnote-1659322
+Ref: Ordinal Functions-Footnote-2659574
+Node: Join Function659784
+Ref: Join Function-Footnote-1661554
+Node: Getlocaltime Function661754
+Node: Readfile Function665496
+Node: Shell Quoting667473
+Node: Data File Management668874
+Node: Filetrans Function669506
+Node: Rewind Function673602
+Node: File Checking675511
+Ref: File Checking-Footnote-1676845
+Node: Empty Files677046
+Node: Ignoring Assigns679025
+Node: Getopt Function680575
+Ref: Getopt Function-Footnote-1692044
+Node: Passwd Functions692244
+Ref: Passwd Functions-Footnote-1701083
+Node: Group Functions701171
+Ref: Group Functions-Footnote-1709069
+Node: Walking Arrays709276
+Node: Library Functions Summary712284
+Node: Library Exercises713690
+Node: Sample Programs714155
+Node: Running Examples714925
+Node: Clones715653
+Node: Cut Program716877
+Node: Egrep Program726806
+Ref: Egrep Program-Footnote-1734318
+Node: Id Program734428
+Node: Split Program738108
+Ref: Split Program-Footnote-1741566
+Node: Tee Program741695
+Node: Uniq Program744485
+Node: Wc Program752106
+Ref: Wc Program-Footnote-1756361
+Node: Miscellaneous Programs756455
+Node: Dupword Program757668
+Node: Alarm Program759698
+Node: Translate Program764553
+Ref: Translate Program-Footnote-1769118
+Node: Labels Program769388
+Ref: Labels Program-Footnote-1772739
+Node: Word Sorting772823
+Node: History Sorting776895
+Node: Extract Program778730
+Node: Simple Sed786784
+Node: Igawk Program789858
+Ref: Igawk Program-Footnote-1804189
+Ref: Igawk Program-Footnote-2804391
+Ref: Igawk Program-Footnote-3804513
+Node: Anagram Program804628
+Node: Signature Program807690
+Node: Programs Summary808937
+Node: Programs Exercises810151
+Ref: Programs Exercises-Footnote-1814280
+Node: Advanced Features814371
+Node: Nondecimal Data816361
+Node: Array Sorting817952
+Node: Controlling Array Traversal818652
+Ref: Controlling Array Traversal-Footnote-1827020
+Node: Array Sorting Functions827138
+Ref: Array Sorting Functions-Footnote-1832229
+Node: Two-way I/O832425
+Ref: Two-way I/O-Footnote-1840146
+Ref: Two-way I/O-Footnote-2840333
+Node: TCP/IP Networking840415
+Node: Profiling843533
+Node: Advanced Features Summary852551
+Node: Internationalization854395
+Node: I18N and L10N855875
+Node: Explaining gettext856562
+Ref: Explaining gettext-Footnote-1862454
+Ref: Explaining gettext-Footnote-2862639
+Node: Programmer i18n862804
+Ref: Programmer i18n-Footnote-1867753
+Node: Translator i18n867802
+Node: String Extraction868596
+Ref: String Extraction-Footnote-1869728
+Node: Printf Ordering869814
+Ref: Printf Ordering-Footnote-1872600
+Node: I18N Portability872664
+Ref: I18N Portability-Footnote-1875120
+Node: I18N Example875183
+Ref: I18N Example-Footnote-1878458
+Ref: I18N Example-Footnote-2878531
+Node: Gawk I18N878640
+Node: I18N Summary879285
+Node: Debugger880626
+Node: Debugging881626
+Node: Debugging Concepts882067
+Node: Debugging Terms883876
+Node: Awk Debugging886451
+Ref: Awk Debugging-Footnote-1887396
+Node: Sample Debugging Session887528
+Node: Debugger Invocation888062
+Node: Finding The Bug889448
+Node: List of Debugger Commands895922
+Node: Breakpoint Control897255
+Node: Debugger Execution Control900949
+Node: Viewing And Changing Data904311
+Node: Execution Stack907685
+Node: Debugger Info909322
+Node: Miscellaneous Debugger Commands913393
+Node: Readline Support918455
+Node: Limitations919351
+Node: Debugging Summary921460
+Node: Namespaces922739
+Node: Global Namespace923818
+Node: Qualified Names925216
+Node: Default Namespace926215
+Node: Changing The Namespace926956
+Node: Naming Rules928570
+Node: Internal Name Management930418
+Node: Namespace Example931460
+Node: Namespace And Features934022
+Node: Namespace Summary935457
+Node: Arbitrary Precision Arithmetic936934
+Node: Computer Arithmetic938421
+Ref: table-numeric-ranges942187
+Ref: table-floating-point-ranges942680
+Ref: Computer Arithmetic-Footnote-1943338
+Node: Math Definitions943395
+Ref: table-ieee-formats946711
+Ref: Math Definitions-Footnote-1947314
+Node: MPFR features947419
+Node: FP Math Caution949137
+Ref: FP Math Caution-Footnote-1950209
+Node: Inexactness of computations950578
+Node: Inexact representation951538
+Node: Comparing FP Values952898
+Node: Errors accumulate954139
+Node: Getting Accuracy955572
+Node: Try To Round958282
+Node: Setting precision959181
+Ref: table-predefined-precision-strings959878
+Node: Setting the rounding mode961708
+Ref: table-gawk-rounding-modes962082
+Ref: Setting the rounding mode-Footnote-1966013
+Node: Arbitrary Precision Integers966192
+Ref: Arbitrary Precision Integers-Footnote-1969367
+Node: Checking for MPFR969516
+Node: POSIX Floating Point Problems970990
+Ref: POSIX Floating Point Problems-Footnote-1975275
+Node: Floating point summary975313
+Node: Dynamic Extensions977503
+Node: Extension Intro979056
+Node: Plugin License980322
+Node: Extension Mechanism Outline981119
+Ref: figure-load-extension981558
+Ref: figure-register-new-function983123
+Ref: figure-call-new-function984215
+Node: Extension API Description986277
+Node: Extension API Functions Introduction987919
+Ref: table-api-std-headers989755
+Node: General Data Types993620
+Ref: General Data Types-Footnote-11001981
+Node: Memory Allocation Functions1002280
+Ref: Memory Allocation Functions-Footnote-11006490
+Node: Constructor Functions1006589
+Node: Registration Functions1010175
+Node: Extension Functions1010860
+Node: Exit Callback Functions1016182
+Node: Extension Version String1017432
+Node: Input Parsers1018095
+Node: Output Wrappers1030816
+Node: Two-way processors1035328
+Node: Printing Messages1037593
+Ref: Printing Messages-Footnote-11038764
+Node: Updating ERRNO1038917
+Node: Requesting Values1039656
+Ref: table-value-types-returned1040393
+Node: Accessing Parameters1041329
+Node: Symbol Table Access1042564
+Node: Symbol table by name1043076
+Ref: Symbol table by name-Footnote-11046100
+Node: Symbol table by cookie1046228
+Ref: Symbol table by cookie-Footnote-11050413
+Node: Cached values1050477
+Ref: Cached values-Footnote-11054013
+Node: Array Manipulation1054166
+Ref: Array Manipulation-Footnote-11055257
+Node: Array Data Types1055294
+Ref: Array Data Types-Footnote-11057952
+Node: Array Functions1058044
+Node: Flattening Arrays1062542
+Node: Creating Arrays1069518
+Node: Redirection API1074285
+Node: Extension API Variables1077118
+Node: Extension Versioning1077829
+Ref: gawk-api-version1078258
+Node: Extension GMP/MPFR Versioning1079989
+Node: Extension API Informational Variables1081617
+Node: Extension API Boilerplate1082690
+Node: Changes from API V11086664
+Node: Finding Extensions1088236
+Node: Extension Example1088795
+Node: Internal File Description1089593
+Node: Internal File Ops1093673
+Ref: Internal File Ops-Footnote-11105023
+Node: Using Internal File Ops1105163
+Ref: Using Internal File Ops-Footnote-11107546
+Node: Extension Samples1107820
+Node: Extension Sample File Functions1109349
+Node: Extension Sample Fnmatch1116998
+Node: Extension Sample Fork1118485
+Node: Extension Sample Inplace1119703
+Node: Extension Sample Ord1123007
+Node: Extension Sample Readdir1123843
+Ref: table-readdir-file-types1124732
+Node: Extension Sample Revout1125537
+Node: Extension Sample Rev2way1126126
+Node: Extension Sample Read write array1126866
+Node: Extension Sample Readfile1128808
+Node: Extension Sample Time1129903
+Node: Extension Sample API Tests1131251
+Node: gawkextlib1131743
+Node: Extension summary1134661
+Node: Extension Exercises1138363
+Node: Language History1139605
+Node: V7/SVR3.11141261
+Node: SVR41143413
+Node: POSIX1144847
+Node: BTL1146227
+Node: POSIX/GNU1146956
+Node: Feature History1152734
+Node: Common Extensions1168780
+Node: Ranges and Locales1170063
+Ref: Ranges and Locales-Footnote-11174679
+Ref: Ranges and Locales-Footnote-21174706
+Ref: Ranges and Locales-Footnote-31174941
+Node: Contributors1175162
+Node: History summary1181107
+Node: Installation1182487
+Node: Gawk Distribution1183431
+Node: Getting1183915
+Node: Extracting1184878
+Node: Distribution contents1186516
+Node: Unix Installation1192996
+Node: Quick Installation1193678
+Node: Shell Startup Files1196092
+Node: Additional Configuration Options1197181
+Node: Configuration Philosophy1199346
+Node: Non-Unix Installation1201715
+Node: PC Installation1202175
+Node: PC Binary Installation1203013
+Node: PC Compiling1203448
+Node: PC Using1204565
+Node: Cygwin1208118
+Node: MSYS1209217
+Node: VMS Installation1209718
+Node: VMS Compilation1210509
+Ref: VMS Compilation-Footnote-11211738
+Node: VMS Dynamic Extensions1211796
+Node: VMS Installation Details1213481
+Node: VMS Running1215734
+Node: VMS GNV1220013
+Node: VMS Old Gawk1220748
+Node: Bugs1221219
+Node: Bug address1221882
+Node: Usenet1224864
+Node: Maintainers1225868
+Node: Other Versions1227129
+Node: Installation summary1234043
+Node: Notes1235245
+Node: Compatibility Mode1236039
+Node: Additions1236821
+Node: Accessing The Source1237746
+Node: Adding Code1239183
+Node: New Ports1245402
+Node: Derived Files1249890
+Ref: Derived Files-Footnote-11255536
+Ref: Derived Files-Footnote-21255571
+Ref: Derived Files-Footnote-31256169
+Node: Future Extensions1256283
+Node: Implementation Limitations1256941
+Node: Extension Design1258124
+Node: Old Extension Problems1259268
+Ref: Old Extension Problems-Footnote-11260786
+Node: Extension New Mechanism Goals1260843
+Ref: Extension New Mechanism Goals-Footnote-11264207
+Node: Extension Other Design Decisions1264396
+Node: Extension Future Growth1266509
+Node: Notes summary1267345
+Node: Basic Concepts1268520
+Node: Basic High Level1269201
+Ref: figure-general-flow1269483
+Ref: figure-process-flow1270168
+Ref: Basic High Level-Footnote-11273469
+Node: Basic Data Typing1273654
+Node: Glossary1276982
+Node: Copying1308820
+Node: GNU Free Documentation License1346363
+Node: Index1371483
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 7eb90db..27a6fc4 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -9705,7 +9705,7 @@ printf "%4.3f", 1950
 @end example
 
 @noindent
-prints @samp{1950.000}, with a total of four significant figures, three of
+prints @samp{1950.000}, with a minimum of four significant figures, three of
 which follow the decimal point.
 (The @samp{4.3} represents two modifiers,
 discussed in the next @value{SUBSECTION}.)
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 49bb7ca..51b5618 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -9303,7 +9303,7 @@ printf "%4.3f", 1950
 @end example
 
 @noindent
-prints @samp{1950.000}, with a total of four significant figures, three of
+prints @samp{1950.000}, with a minimum of four significant figures, three of
 which follow the decimal point.
 (The @samp{4.3} represents two modifiers,
 discussed in the next @value{SUBSECTION}.)

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

Summary of changes:
 ChangeLog                        |    6 +
 TODO                             |   11 +-
 awkgram.c                        |  582 +++++++++++----------
 awkgram.y                        |    6 +-
 doc/ChangeLog                    |    8 +
 doc/gawk.info                    |  981 +++++++++++++++++-----------------
 doc/gawk.texi                    |    8 +-
 doc/gawktexi.in                  |    8 +-
 extension/ChangeLog              |    6 +
 extension/inplace.c              |    2 +-
 po/ChangeLog                     |    4 +
 po/fr.po                         | 1058 +++++++++++++++----------------------
 po/pt_BR.po                      | 1071 ++++++++++++++++----------------------
 test/ChangeLog                   |    6 +
 test/Makefile.am                 |   11 +-
 test/Makefile.in                 |   11 +-
 test/profile11.ok                |    2 +-
 test/profile12.awk               |    3 +
 test/{mpfrnr.in => profile12.in} |    1 +
 test/{mpfrnr.in => profile12.ok} |    0
 20 files changed, 1740 insertions(+), 2045 deletions(-)
 create mode 100644 test/profile12.awk
 copy test/{mpfrnr.in => profile12.in} (75%)
 copy test/{mpfrnr.in => profile12.ok} (100%)


hooks/post-receive
-- 
gawk



reply via email to

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