aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/ChangeLog8
-rw-r--r--doc/gawk.info441
-rw-r--r--doc/gawk.texi46
-rw-r--r--doc/gawktexi.in46
-rw-r--r--doc/it/ChangeLog4
-rw-r--r--doc/it/gawk.1108
6 files changed, 397 insertions, 256 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index f4fb7b69..d1775f23 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,9 +1,17 @@
+2018-12-18 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Added more indexing to the debugger chapter.
+
2018-11-29 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in (Auto-set): Document that you can no longer use
arbitrary indices in SYMTAB.
* gawk.1: Ditto.
+2018-12-18 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Added more indexing to the debugger chapter.
+
2018-11-27 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in (Other Versions): Document GoAWK, an awk interpreter
diff --git a/doc/gawk.info b/doc/gawk.info
index e0738357..b8f5df60 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -21601,12 +21601,12 @@ File: gawk.info, Node: Debugger, Next: Arbitrary Precision Arithmetic, Prev:
It would be nice if computer programs worked perfectly the first time
they were run, but in real life, this rarely happens for programs of any
complexity. Thus, most programming languages have facilities available
-for "debugging" programs, and now 'awk' is no exception.
+for "debugging" programs, and 'awk' is no exception.
The 'gawk' debugger is purposely modeled after the GNU Debugger (GDB)
(https://www.gnu.org/software/gdb/) command-line debugger. If you are
-familiar with GDB, learning how to use 'gawk' for debugging your program
-is easy.
+familiar with GDB, learning how to use 'gawk' for debugging your
+programs is easy.
* Menu:
@@ -21743,7 +21743,12 @@ instructions.
is easy to lose sight of everything that is going on "inside" each line
of 'awk' code. The debugger provides the opportunity to look at the
individual primitive instructions carried out by the higher-level 'awk'
-commands.
+commands.(1)
+
+ ---------- Footnotes ----------
+
+ (1) The "primitive instructions" are defined by 'gawk' itself; the
+debugger does not work at the level of machine instructions.

File: gawk.info, Node: Sample Debugging Session, Next: List of Debugger Commands, Prev: Debugging, Up: Debugger
@@ -21753,7 +21758,7 @@ File: gawk.info, Node: Sample Debugging Session, Next: List of Debugger Comman
In order to illustrate the use of 'gawk' as a debugger, let's look at a
sample debugging session. We will use the 'awk' implementation of the
-POSIX 'uniq' command described earlier (*note Uniq Program::) as our
+POSIX 'uniq' command presented earlier (*note Uniq Program::) as our
example.
* Menu:
@@ -21800,9 +21805,8 @@ File: gawk.info, Node: Finding The Bug, Prev: Debugger Invocation, Up: Sample
----------------------
Let's say that we are having a problem using (a faulty version of)
-'uniq.awk' in the "field-skipping" mode, and it doesn't seem to be
-catching lines which should be identical when skipping the first field,
-such as:
+'uniq.awk' in "field-skipping" mode, and it doesn't seem to be catching
+lines which should be identical when skipping the first field, such as:
awk is a wonderful program!
gawk is a wonderful program!
@@ -33647,7 +33651,7 @@ Index
(line 6)
* break debugger command: Breakpoint Control. (line 11)
* break statement: Break Statement. (line 6)
-* breakpoint: Debugging Terms. (line 33)
+* breakpoint (debugger): Debugging Terms. (line 33)
* breakpoint at location, how to delete: Breakpoint Control. (line 36)
* breakpoint commands: Debugger Execution Control.
(line 10)
@@ -33706,6 +33710,7 @@ Index
(line 44)
* call by value: Pass By Value/Reference.
(line 15)
+* call stack (debugger): Debugging Terms. (line 10)
* call stack, display in debugger: Execution Stack. (line 13)
* caret (^), in bracket expressions: Bracket Expressions. (line 25)
* caret (^), regexp operator: Regexp Operators. (line 22)
@@ -33962,6 +33967,7 @@ Index
* dcngettext() function (gawk), portability and: I18N Portability.
(line 33)
* deadlocks: Two-way I/O. (line 53)
+* debugger capabilities: Debugging Concepts. (line 16)
* debugger commands, b (break): Breakpoint Control. (line 11)
* debugger commands, backtrace: Execution Stack. (line 13)
* debugger commands, break: Breakpoint Control. (line 11)
@@ -34059,15 +34065,41 @@ Index
* debugger commands, watch: Viewing And Changing Data.
(line 66)
* debugger commands, where (backtrace): Execution Stack. (line 13)
+* debugger concepts: Debugging Terms. (line 6)
* debugger default list amount: Debugger Info. (line 69)
* debugger history file: Debugger Info. (line 81)
* debugger history size: Debugger Info. (line 65)
* debugger options: Debugger Info. (line 57)
* debugger prompt: Debugger Info. (line 78)
+* debugger, b command: Finding The Bug. (line 32)
+* debugger, backtrace command: Finding The Bug. (line 52)
+* debugger, break command: Finding The Bug. (line 32)
+* debugger, breakpoint command: Finding The Bug. (line 32)
+* debugger, bt command: Finding The Bug. (line 52)
+* debugger, command completion: Readline Support. (line 6)
+* debugger, history expansion: Readline Support. (line 6)
* debugger, how to start: Debugger Invocation. (line 6)
+* debugger, instruction tracing: Debugger Info. (line 90)
+* debugger, limitations: Limitations. (line 6)
+* debugger, n command: Finding The Bug. (line 105)
+* debugger, next command: Finding The Bug. (line 105)
+* debugger, p command: Finding The Bug. (line 68)
+* debugger, print command: Finding The Bug. (line 68)
+* debugger, printing all array elements: Finding The Bug. (line 154)
+* debugger, printing single array elements: Finding The Bug. (line 140)
+* debugger, prompt: Debugger Invocation. (line 23)
* debugger, read commands from a file: Debugger Info. (line 97)
+* debugger, repeating commands: List of Debugger Commands.
+ (line 21)
+* debugger, run command: Finding The Bug. (line 39)
+* debugger, running the program: Finding The Bug. (line 39)
+* debugger, save commands to a file: Debugger Info. (line 92)
+* debugger, setting a breakpoint: Finding The Bug. (line 32)
+* debugger, show stack frames: Finding The Bug. (line 52)
* debugging awk programs: Debugger. (line 6)
* debugging gawk, bug reports: Bugs. (line 9)
+* debugging, example session: Sample Debugging Session.
+ (line 6)
* decimal point character, locale specific: Options. (line 282)
* decrement operators: Increment Ops. (line 35)
* default keyword: Switch Statement. (line 6)
@@ -34274,6 +34306,8 @@ Index
* evaluation order, concatenation: Concatenation. (line 41)
* evaluation order, functions: Calling Built-in. (line 30)
* examining fields: Fields. (line 6)
+* example debugging session: Sample Debugging Session.
+ (line 6)
* exclamation point (!), ! operator: Boolean Ops. (line 69)
* exclamation point (!), ! operator <1>: Precedence. (line 51)
* exclamation point (!), ! operator <2>: Egrep Program. (line 174)
@@ -35838,7 +35872,7 @@ Index
* square brackets ([]), regexp operator: Regexp Operators. (line 56)
* square root: Numeric Functions. (line 78)
* srand: Numeric Functions. (line 82)
-* stack frame: Debugging Terms. (line 10)
+* stack frame (debugger): Debugging Terms. (line 10)
* Stallman, Richard: Manual History. (line 6)
* Stallman, Richard <1>: Acknowledgments. (line 18)
* Stallman, Richard <2>: Contributors. (line 24)
@@ -36121,7 +36155,7 @@ Index
* warnings, issuing: Options. (line 198)
* watch debugger command: Viewing And Changing Data.
(line 66)
-* watchpoint: Debugging Terms. (line 42)
+* watchpoint (debugger): Debugging Terms. (line 42)
* wc utility: Wc Program. (line 6)
* wc.awk program: Wc Program. (line 46)
* Weinberger, Peter: History. (line 17)
@@ -36547,197 +36581,198 @@ Ref: I18N Example-Footnote-1874131
Node: Gawk I18N874204
Node: I18N Summary874849
Node: Debugger876190
-Node: Debugging877213
-Node: Debugging Concepts877654
-Node: Debugging Terms879463
-Node: Awk Debugging882038
-Node: Sample Debugging Session882944
-Node: Debugger Invocation883478
-Node: Finding The Bug884864
-Node: List of Debugger Commands891342
-Node: Breakpoint Control892675
-Node: Debugger Execution Control896369
-Node: Viewing And Changing Data899731
-Node: Execution Stack903105
-Node: Debugger Info904742
-Node: Miscellaneous Debugger Commands908813
-Node: Readline Support913875
-Node: Limitations914771
-Node: Debugging Summary916880
-Node: Arbitrary Precision Arithmetic918159
-Node: Computer Arithmetic919644
-Ref: table-numeric-ranges923410
-Ref: table-floating-point-ranges923903
-Ref: Computer Arithmetic-Footnote-1924561
-Node: Math Definitions924618
-Ref: table-ieee-formats927934
-Ref: Math Definitions-Footnote-1928537
-Node: MPFR features928642
-Node: FP Math Caution930360
-Ref: FP Math Caution-Footnote-1931432
-Node: Inexactness of computations931801
-Node: Inexact representation932761
-Node: Comparing FP Values934121
-Node: Errors accumulate935362
-Node: Getting Accuracy936795
-Node: Try To Round939505
-Node: Setting precision940404
-Ref: table-predefined-precision-strings941101
-Node: Setting the rounding mode942931
-Ref: table-gawk-rounding-modes943305
-Ref: Setting the rounding mode-Footnote-1947236
-Node: Arbitrary Precision Integers947415
-Ref: Arbitrary Precision Integers-Footnote-1950590
-Node: Checking for MPFR950739
-Node: POSIX Floating Point Problems952213
-Ref: POSIX Floating Point Problems-Footnote-1956498
-Node: Floating point summary956536
-Node: Dynamic Extensions958726
-Node: Extension Intro960279
-Node: Plugin License961545
-Node: Extension Mechanism Outline962342
-Ref: figure-load-extension962781
-Ref: figure-register-new-function964346
-Ref: figure-call-new-function965438
-Node: Extension API Description967500
-Node: Extension API Functions Introduction969142
-Node: General Data Types974682
-Ref: General Data Types-Footnote-1983043
-Node: Memory Allocation Functions983342
-Ref: Memory Allocation Functions-Footnote-1987552
-Node: Constructor Functions987651
-Node: Registration Functions991237
-Node: Extension Functions991922
-Node: Exit Callback Functions997137
-Node: Extension Version String998387
-Node: Input Parsers999050
-Node: Output Wrappers1011771
-Node: Two-way processors1016283
-Node: Printing Messages1018548
-Ref: Printing Messages-Footnote-11019719
-Node: Updating ERRNO1019872
-Node: Requesting Values1020611
-Ref: table-value-types-returned1021348
-Node: Accessing Parameters1022284
-Node: Symbol Table Access1023519
-Node: Symbol table by name1024031
-Node: Symbol table by cookie1025820
-Ref: Symbol table by cookie-Footnote-11030005
-Node: Cached values1030069
-Ref: Cached values-Footnote-11033605
-Node: Array Manipulation1033758
-Ref: Array Manipulation-Footnote-11034849
-Node: Array Data Types1034886
-Ref: Array Data Types-Footnote-11037544
-Node: Array Functions1037636
-Node: Flattening Arrays1042134
-Node: Creating Arrays1049110
-Node: Redirection API1053877
-Node: Extension API Variables1056710
-Node: Extension Versioning1057421
-Ref: gawk-api-version1057850
-Node: Extension GMP/MPFR Versioning1059581
-Node: Extension API Informational Variables1061209
-Node: Extension API Boilerplate1062282
-Node: Changes from API V11066256
-Node: Finding Extensions1067828
-Node: Extension Example1068387
-Node: Internal File Description1069185
-Node: Internal File Ops1073265
-Ref: Internal File Ops-Footnote-11084615
-Node: Using Internal File Ops1084755
-Ref: Using Internal File Ops-Footnote-11087138
-Node: Extension Samples1087412
-Node: Extension Sample File Functions1088941
-Node: Extension Sample Fnmatch1096590
-Node: Extension Sample Fork1098077
-Node: Extension Sample Inplace1099295
-Node: Extension Sample Ord1102512
-Node: Extension Sample Readdir1103348
-Ref: table-readdir-file-types1104237
-Node: Extension Sample Revout1105042
-Node: Extension Sample Rev2way1105631
-Node: Extension Sample Read write array1106371
-Node: Extension Sample Readfile1108313
-Node: Extension Sample Time1109408
-Node: Extension Sample API Tests1110756
-Node: gawkextlib1111248
-Node: Extension summary1114166
-Node: Extension Exercises1117868
-Node: Language History1119366
-Node: V7/SVR3.11121022
-Node: SVR41123174
-Node: POSIX1124608
-Node: BTL1125988
-Node: POSIX/GNU1126717
-Node: Feature History1132495
-Node: Common Extensions1148541
-Node: Ranges and Locales1149824
-Ref: Ranges and Locales-Footnote-11154440
-Ref: Ranges and Locales-Footnote-21154467
-Ref: Ranges and Locales-Footnote-31154702
-Node: Contributors1154923
-Node: History summary1160868
-Node: Installation1162248
-Node: Gawk Distribution1163192
-Node: Getting1163676
-Node: Extracting1164639
-Node: Distribution contents1166277
-Node: Unix Installation1172757
-Node: Quick Installation1173439
-Node: Shell Startup Files1175853
-Node: Additional Configuration Options1176942
-Node: Configuration Philosophy1179107
-Node: Non-Unix Installation1181476
-Node: PC Installation1181936
-Node: PC Binary Installation1182774
-Node: PC Compiling1183209
-Node: PC Using1184326
-Node: Cygwin1187879
-Node: MSYS1188978
-Node: VMS Installation1189479
-Node: VMS Compilation1190270
-Ref: VMS Compilation-Footnote-11191499
-Node: VMS Dynamic Extensions1191557
-Node: VMS Installation Details1193242
-Node: VMS Running1195495
-Node: VMS GNV1199774
-Node: VMS Old Gawk1200509
-Node: Bugs1200980
-Node: Bug address1201643
-Node: Usenet1204625
-Node: Maintainers1205629
-Node: Other Versions1206890
-Node: Installation summary1213804
-Node: Notes1215006
-Node: Compatibility Mode1215800
-Node: Additions1216582
-Node: Accessing The Source1217507
-Node: Adding Code1218944
-Node: New Ports1225163
-Node: Derived Files1229651
-Ref: Derived Files-Footnote-11235297
-Ref: Derived Files-Footnote-21235332
-Ref: Derived Files-Footnote-31235930
-Node: Future Extensions1236044
-Node: Implementation Limitations1236702
-Node: Extension Design1237885
-Node: Old Extension Problems1239029
-Ref: Old Extension Problems-Footnote-11240547
-Node: Extension New Mechanism Goals1240604
-Ref: Extension New Mechanism Goals-Footnote-11243968
-Node: Extension Other Design Decisions1244157
-Node: Extension Future Growth1246270
-Node: Notes summary1247106
-Node: Basic Concepts1248281
-Node: Basic High Level1248962
-Ref: figure-general-flow1249244
-Ref: figure-process-flow1249929
-Ref: Basic High Level-Footnote-11253230
-Node: Basic Data Typing1253415
-Node: Glossary1256743
-Node: Copying1288581
-Node: GNU Free Documentation License1326124
-Node: Index1351244
+Node: Debugging877210
+Node: Debugging Concepts877651
+Node: Debugging Terms879460
+Node: Awk Debugging882035
+Ref: Awk Debugging-Footnote-1882980
+Node: Sample Debugging Session883112
+Node: Debugger Invocation883646
+Node: Finding The Bug885032
+Node: List of Debugger Commands891506
+Node: Breakpoint Control892839
+Node: Debugger Execution Control896533
+Node: Viewing And Changing Data899895
+Node: Execution Stack903269
+Node: Debugger Info904906
+Node: Miscellaneous Debugger Commands908977
+Node: Readline Support914039
+Node: Limitations914935
+Node: Debugging Summary917044
+Node: Arbitrary Precision Arithmetic918323
+Node: Computer Arithmetic919808
+Ref: table-numeric-ranges923574
+Ref: table-floating-point-ranges924067
+Ref: Computer Arithmetic-Footnote-1924725
+Node: Math Definitions924782
+Ref: table-ieee-formats928098
+Ref: Math Definitions-Footnote-1928701
+Node: MPFR features928806
+Node: FP Math Caution930524
+Ref: FP Math Caution-Footnote-1931596
+Node: Inexactness of computations931965
+Node: Inexact representation932925
+Node: Comparing FP Values934285
+Node: Errors accumulate935526
+Node: Getting Accuracy936959
+Node: Try To Round939669
+Node: Setting precision940568
+Ref: table-predefined-precision-strings941265
+Node: Setting the rounding mode943095
+Ref: table-gawk-rounding-modes943469
+Ref: Setting the rounding mode-Footnote-1947400
+Node: Arbitrary Precision Integers947579
+Ref: Arbitrary Precision Integers-Footnote-1950754
+Node: Checking for MPFR950903
+Node: POSIX Floating Point Problems952377
+Ref: POSIX Floating Point Problems-Footnote-1956662
+Node: Floating point summary956700
+Node: Dynamic Extensions958890
+Node: Extension Intro960443
+Node: Plugin License961709
+Node: Extension Mechanism Outline962506
+Ref: figure-load-extension962945
+Ref: figure-register-new-function964510
+Ref: figure-call-new-function965602
+Node: Extension API Description967664
+Node: Extension API Functions Introduction969306
+Node: General Data Types974846
+Ref: General Data Types-Footnote-1983207
+Node: Memory Allocation Functions983506
+Ref: Memory Allocation Functions-Footnote-1987716
+Node: Constructor Functions987815
+Node: Registration Functions991401
+Node: Extension Functions992086
+Node: Exit Callback Functions997301
+Node: Extension Version String998551
+Node: Input Parsers999214
+Node: Output Wrappers1011935
+Node: Two-way processors1016447
+Node: Printing Messages1018712
+Ref: Printing Messages-Footnote-11019883
+Node: Updating ERRNO1020036
+Node: Requesting Values1020775
+Ref: table-value-types-returned1021512
+Node: Accessing Parameters1022448
+Node: Symbol Table Access1023683
+Node: Symbol table by name1024195
+Node: Symbol table by cookie1025984
+Ref: Symbol table by cookie-Footnote-11030169
+Node: Cached values1030233
+Ref: Cached values-Footnote-11033769
+Node: Array Manipulation1033922
+Ref: Array Manipulation-Footnote-11035013
+Node: Array Data Types1035050
+Ref: Array Data Types-Footnote-11037708
+Node: Array Functions1037800
+Node: Flattening Arrays1042298
+Node: Creating Arrays1049274
+Node: Redirection API1054041
+Node: Extension API Variables1056874
+Node: Extension Versioning1057585
+Ref: gawk-api-version1058014
+Node: Extension GMP/MPFR Versioning1059745
+Node: Extension API Informational Variables1061373
+Node: Extension API Boilerplate1062446
+Node: Changes from API V11066420
+Node: Finding Extensions1067992
+Node: Extension Example1068551
+Node: Internal File Description1069349
+Node: Internal File Ops1073429
+Ref: Internal File Ops-Footnote-11084779
+Node: Using Internal File Ops1084919
+Ref: Using Internal File Ops-Footnote-11087302
+Node: Extension Samples1087576
+Node: Extension Sample File Functions1089105
+Node: Extension Sample Fnmatch1096754
+Node: Extension Sample Fork1098241
+Node: Extension Sample Inplace1099459
+Node: Extension Sample Ord1102676
+Node: Extension Sample Readdir1103512
+Ref: table-readdir-file-types1104401
+Node: Extension Sample Revout1105206
+Node: Extension Sample Rev2way1105795
+Node: Extension Sample Read write array1106535
+Node: Extension Sample Readfile1108477
+Node: Extension Sample Time1109572
+Node: Extension Sample API Tests1110920
+Node: gawkextlib1111412
+Node: Extension summary1114330
+Node: Extension Exercises1118032
+Node: Language History1119530
+Node: V7/SVR3.11121186
+Node: SVR41123338
+Node: POSIX1124772
+Node: BTL1126152
+Node: POSIX/GNU1126881
+Node: Feature History1132659
+Node: Common Extensions1148705
+Node: Ranges and Locales1149988
+Ref: Ranges and Locales-Footnote-11154604
+Ref: Ranges and Locales-Footnote-21154631
+Ref: Ranges and Locales-Footnote-31154866
+Node: Contributors1155087
+Node: History summary1161032
+Node: Installation1162412
+Node: Gawk Distribution1163356
+Node: Getting1163840
+Node: Extracting1164803
+Node: Distribution contents1166441
+Node: Unix Installation1172921
+Node: Quick Installation1173603
+Node: Shell Startup Files1176017
+Node: Additional Configuration Options1177106
+Node: Configuration Philosophy1179271
+Node: Non-Unix Installation1181640
+Node: PC Installation1182100
+Node: PC Binary Installation1182938
+Node: PC Compiling1183373
+Node: PC Using1184490
+Node: Cygwin1188043
+Node: MSYS1189142
+Node: VMS Installation1189643
+Node: VMS Compilation1190434
+Ref: VMS Compilation-Footnote-11191663
+Node: VMS Dynamic Extensions1191721
+Node: VMS Installation Details1193406
+Node: VMS Running1195659
+Node: VMS GNV1199938
+Node: VMS Old Gawk1200673
+Node: Bugs1201144
+Node: Bug address1201807
+Node: Usenet1204789
+Node: Maintainers1205793
+Node: Other Versions1207054
+Node: Installation summary1213968
+Node: Notes1215170
+Node: Compatibility Mode1215964
+Node: Additions1216746
+Node: Accessing The Source1217671
+Node: Adding Code1219108
+Node: New Ports1225327
+Node: Derived Files1229815
+Ref: Derived Files-Footnote-11235461
+Ref: Derived Files-Footnote-21235496
+Ref: Derived Files-Footnote-31236094
+Node: Future Extensions1236208
+Node: Implementation Limitations1236866
+Node: Extension Design1238049
+Node: Old Extension Problems1239193
+Ref: Old Extension Problems-Footnote-11240711
+Node: Extension New Mechanism Goals1240768
+Ref: Extension New Mechanism Goals-Footnote-11244132
+Node: Extension Other Design Decisions1244321
+Node: Extension Future Growth1246434
+Node: Notes summary1247270
+Node: Basic Concepts1248445
+Node: Basic High Level1249126
+Ref: figure-general-flow1249408
+Ref: figure-process-flow1250093
+Ref: Basic High Level-Footnote-11253394
+Node: Basic Data Typing1253579
+Node: Glossary1256907
+Node: Copying1288745
+Node: GNU Free Documentation License1326288
+Node: Index1351408

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 70ab0de3..502e83b1 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -30197,17 +30197,16 @@ a number of translations for its messages.
@cindex debugging @command{awk} programs
@c The original text for this chapter was contributed by Efraim Yawitz.
-@c FIXME: Add more indexing.
It would be nice if computer programs worked perfectly the first time they
were run, but in real life, this rarely happens for programs of
any complexity. Thus, most programming languages have facilities available
-for ``debugging'' programs, and now @command{awk} is no exception.
+for ``debugging'' programs, and @command{awk} is no exception.
The @command{gawk} debugger is purposely modeled after
@uref{https://www.gnu.org/software/gdb/, the GNU Debugger (GDB)}
command-line debugger. If you are familiar with GDB, learning
-how to use @command{gawk} for debugging your program is easy.
+how to use @command{gawk} for debugging your programs is easy.
@menu
* Debugging:: Introduction to @command{gawk} debugger.
@@ -30243,6 +30242,7 @@ In that case, what can you expect from such a tool? The answer to that
depends on the language being debugged, but in general, you can expect at
least the following:
+@cindex debugger capabilities
@itemize @value{BULLET}
@item
The ability to watch a program execute its instructions one by one,
@@ -30275,13 +30275,15 @@ functional program that you or someone else wrote).
@node Debugging Terms
@subsection Debugging Concepts
+@cindex debugger concepts
Before diving in to the details, we need to introduce several
important concepts that apply to just about all debuggers.
The following list defines terms used throughout the rest of
this @value{CHAPTER}:
@table @dfn
-@cindex stack frame
+@cindex call stack (debugger)
+@cindex stack frame (debugger)
@item Stack frame
Programs generally call functions during the course of their execution.
One function can call another, or a function can call itself (recursion).
@@ -30303,7 +30305,7 @@ invoked. Commands that print the call stack print information about
each stack frame (as detailed later on).
@item Breakpoint
-@cindex breakpoint
+@cindex breakpoint (debugger)
During debugging, you often wish to let the program run until it
reaches a certain point, and then continue execution from there one
statement (or instruction) at a time. The way to do this is to set
@@ -30313,7 +30315,7 @@ take over control of the program's execution. You can add and remove
as many breakpoints as you like.
@item Watchpoint
-@cindex watchpoint
+@cindex watchpoint (debugger)
A watchpoint is similar to a breakpoint. The difference is that
breakpoints are oriented around the code: stop when a certain point in the
code is reached. A watchpoint, however, specifies that program execution
@@ -30341,15 +30343,19 @@ In addition, because @command{awk} is by design a very concise language,
it is easy to lose sight of everything that is going on ``inside''
each line of @command{awk} code. The debugger provides the opportunity
to look at the individual primitive instructions carried out
-by the higher-level @command{awk} commands.
+by the higher-level @command{awk} commands.@footnote{The ``primitive
+instructions'' are defined by @command{gawk} itself; the debugger
+does not work at the level of machine instructions.}
@node Sample Debugging Session
@section Sample @command{gawk} Debugging Session
@cindex sample debugging session
+@cindex example debugging session
+@cindex debugging, example session
In order to illustrate the use of @command{gawk} as a debugger, let's look at a sample
debugging session. We will use the @command{awk} implementation of the
-POSIX @command{uniq} command described earlier (@pxref{Uniq Program})
+POSIX @command{uniq} command presented earlier (@pxref{Uniq Program})
as our example.
@menu
@@ -30383,6 +30389,7 @@ in the command line to the debugger rather than as part of the @code{run}
command at the debugger prompt.)
The @option{-1} is an option to @file{uniq.awk}.
+@cindex debugger, prompt
Instead of immediately running the program on @file{inputfile}, as
@command{gawk} would ordinarily do, the debugger merely loads all
the program source files, compiles them internally, and then gives
@@ -30400,7 +30407,7 @@ code has been executed.
@subsection Finding the Bug
Let's say that we are having a problem using (a faulty version of)
-@file{uniq.awk} in the ``field-skipping'' mode, and it doesn't seem to be
+@file{uniq.awk} in ``field-skipping'' mode, and it doesn't seem to be
catching lines which should be identical when skipping the first field,
such as:
@@ -30432,6 +30439,10 @@ a breakpoint in @file{uniq.awk} is at the beginning of the function
@code{are_equal()}, which compares the current line with the previous one. To set
the breakpoint, use the @code{b} (breakpoint) command:
+@cindex debugger, setting a breakpoint
+@cindex debugger, @code{breakpoint} command
+@cindex debugger, @code{break} command
+@cindex debugger, @code{b} command
@example
gawk> @kbd{b are_equal}
@print{} Breakpoint 1 set at file `awklib/eg/prog/uniq.awk', line 63
@@ -30441,6 +30452,8 @@ The debugger tells us the file and line number where the breakpoint is.
Now type @samp{r} or @samp{run} and the program runs until it hits
the breakpoint for the first time:
+@cindex debugger, running the program
+@cindex debugger, @code{run} command
@example
gawk> @kbd{r}
@print{} Starting program:
@@ -30456,6 +30469,9 @@ let's see how we got to where we are. At the prompt, we type @samp{bt}
(short for ``backtrace''), and the debugger responds with a
listing of the current stack frames:
+@cindex debugger, show stack frames
+@cindex debugger, @code{bt} command
+@cindex debugger, @code{backtrace} command
@example
gawk> @kbd{bt}
@print{} #0 are_equal(n, m, clast, cline, alast, aline)
@@ -30475,6 +30491,8 @@ of some variables. Let's say we type @samp{p n}
@code{n}, a parameter to @code{are_equal()}. Actually, the debugger
gives us:
+@cindex debugger, @code{print} command
+@cindex debugger, @code{p} command
@example
gawk> @kbd{p n}
@print{} n = untyped variable
@@ -30525,6 +30543,8 @@ be inside this function. To investigate further, we must begin
``stepping through'' the lines of @code{are_equal()}. We start by typing
@samp{n} (for ``next''):
+@cindex debugger, @code{n} command
+@cindex debugger, @code{next} command
@example
@group
gawk> @kbd{n}
@@ -30570,6 +30590,7 @@ This information is useful enough (we now know that
none of the words were accidentally left out), but what if we want to see
inside the array?
+@cindex debugger, printing single array elements
The first choice would be to use subscripts:
@example
@@ -30589,6 +30610,7 @@ This would be kind of slow for a 100-member array, though, so
@command{gawk} provides a shortcut (reminiscent of another language
not to be mentioned):
+@cindex debugger, printing all array elements
@example
gawk> @kbd{p @@alast}
@print{} alast["1"] = "awk"
@@ -30668,6 +30690,7 @@ Getting information
Miscellaneous
@end itemize
+@cindex debugger, repeating commands
Each of these are discussed in the following subsections.
In the following descriptions, commands that may be abbreviated
show the abbreviation on a second description line.
@@ -31254,9 +31277,11 @@ Options are read back into the next session upon startup.
@item @code{trace} [@code{on} | @code{off}]
@cindex instruction tracing, in debugger
+@cindex debugger, instruction tracing
Turn instruction tracing on or off. The default is @code{off}.
@end table
+@cindex debugger, save commands to a file
@item @code{save} @var{filename}
Save the commands from the current session to the given @value{FN},
so that they can be replayed using the @command{source} command.
@@ -31429,7 +31454,9 @@ fairly self-explanatory, and using @code{stepi} and @code{nexti} while
@node Readline Support
@section Readline Support
@cindex command completion, in debugger
+@cindex debugger, command completion
@cindex history expansion, in debugger
+@cindex debugger, history expansion
If @command{gawk} is compiled with
@uref{http://cnswww.cns.cwru.edu/php/chet/readline/readline.html,
@@ -31468,6 +31495,7 @@ and
@node Limitations
@section Limitations
+@cindex debugger, limitations
We hope you find the @command{gawk} debugger useful and enjoyable to work with,
but as with any program, especially in its early releases, it still has
some limitations. A few that it's worth being aware of are:
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 091b786d..96abe297 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -29210,17 +29210,16 @@ a number of translations for its messages.
@cindex debugging @command{awk} programs
@c The original text for this chapter was contributed by Efraim Yawitz.
-@c FIXME: Add more indexing.
It would be nice if computer programs worked perfectly the first time they
were run, but in real life, this rarely happens for programs of
any complexity. Thus, most programming languages have facilities available
-for ``debugging'' programs, and now @command{awk} is no exception.
+for ``debugging'' programs, and @command{awk} is no exception.
The @command{gawk} debugger is purposely modeled after
@uref{https://www.gnu.org/software/gdb/, the GNU Debugger (GDB)}
command-line debugger. If you are familiar with GDB, learning
-how to use @command{gawk} for debugging your program is easy.
+how to use @command{gawk} for debugging your programs is easy.
@menu
* Debugging:: Introduction to @command{gawk} debugger.
@@ -29256,6 +29255,7 @@ In that case, what can you expect from such a tool? The answer to that
depends on the language being debugged, but in general, you can expect at
least the following:
+@cindex debugger capabilities
@itemize @value{BULLET}
@item
The ability to watch a program execute its instructions one by one,
@@ -29288,13 +29288,15 @@ functional program that you or someone else wrote).
@node Debugging Terms
@subsection Debugging Concepts
+@cindex debugger concepts
Before diving in to the details, we need to introduce several
important concepts that apply to just about all debuggers.
The following list defines terms used throughout the rest of
this @value{CHAPTER}:
@table @dfn
-@cindex stack frame
+@cindex call stack (debugger)
+@cindex stack frame (debugger)
@item Stack frame
Programs generally call functions during the course of their execution.
One function can call another, or a function can call itself (recursion).
@@ -29316,7 +29318,7 @@ invoked. Commands that print the call stack print information about
each stack frame (as detailed later on).
@item Breakpoint
-@cindex breakpoint
+@cindex breakpoint (debugger)
During debugging, you often wish to let the program run until it
reaches a certain point, and then continue execution from there one
statement (or instruction) at a time. The way to do this is to set
@@ -29326,7 +29328,7 @@ take over control of the program's execution. You can add and remove
as many breakpoints as you like.
@item Watchpoint
-@cindex watchpoint
+@cindex watchpoint (debugger)
A watchpoint is similar to a breakpoint. The difference is that
breakpoints are oriented around the code: stop when a certain point in the
code is reached. A watchpoint, however, specifies that program execution
@@ -29354,15 +29356,19 @@ In addition, because @command{awk} is by design a very concise language,
it is easy to lose sight of everything that is going on ``inside''
each line of @command{awk} code. The debugger provides the opportunity
to look at the individual primitive instructions carried out
-by the higher-level @command{awk} commands.
+by the higher-level @command{awk} commands.@footnote{The ``primitive
+instructions'' are defined by @command{gawk} itself; the debugger
+does not work at the level of machine instructions.}
@node Sample Debugging Session
@section Sample @command{gawk} Debugging Session
@cindex sample debugging session
+@cindex example debugging session
+@cindex debugging, example session
In order to illustrate the use of @command{gawk} as a debugger, let's look at a sample
debugging session. We will use the @command{awk} implementation of the
-POSIX @command{uniq} command described earlier (@pxref{Uniq Program})
+POSIX @command{uniq} command presented earlier (@pxref{Uniq Program})
as our example.
@menu
@@ -29396,6 +29402,7 @@ in the command line to the debugger rather than as part of the @code{run}
command at the debugger prompt.)
The @option{-1} is an option to @file{uniq.awk}.
+@cindex debugger, prompt
Instead of immediately running the program on @file{inputfile}, as
@command{gawk} would ordinarily do, the debugger merely loads all
the program source files, compiles them internally, and then gives
@@ -29413,7 +29420,7 @@ code has been executed.
@subsection Finding the Bug
Let's say that we are having a problem using (a faulty version of)
-@file{uniq.awk} in the ``field-skipping'' mode, and it doesn't seem to be
+@file{uniq.awk} in ``field-skipping'' mode, and it doesn't seem to be
catching lines which should be identical when skipping the first field,
such as:
@@ -29445,6 +29452,10 @@ a breakpoint in @file{uniq.awk} is at the beginning of the function
@code{are_equal()}, which compares the current line with the previous one. To set
the breakpoint, use the @code{b} (breakpoint) command:
+@cindex debugger, setting a breakpoint
+@cindex debugger, @code{breakpoint} command
+@cindex debugger, @code{break} command
+@cindex debugger, @code{b} command
@example
gawk> @kbd{b are_equal}
@print{} Breakpoint 1 set at file `awklib/eg/prog/uniq.awk', line 63
@@ -29454,6 +29465,8 @@ The debugger tells us the file and line number where the breakpoint is.
Now type @samp{r} or @samp{run} and the program runs until it hits
the breakpoint for the first time:
+@cindex debugger, running the program
+@cindex debugger, @code{run} command
@example
gawk> @kbd{r}
@print{} Starting program:
@@ -29469,6 +29482,9 @@ let's see how we got to where we are. At the prompt, we type @samp{bt}
(short for ``backtrace''), and the debugger responds with a
listing of the current stack frames:
+@cindex debugger, show stack frames
+@cindex debugger, @code{bt} command
+@cindex debugger, @code{backtrace} command
@example
gawk> @kbd{bt}
@print{} #0 are_equal(n, m, clast, cline, alast, aline)
@@ -29488,6 +29504,8 @@ of some variables. Let's say we type @samp{p n}
@code{n}, a parameter to @code{are_equal()}. Actually, the debugger
gives us:
+@cindex debugger, @code{print} command
+@cindex debugger, @code{p} command
@example
gawk> @kbd{p n}
@print{} n = untyped variable
@@ -29538,6 +29556,8 @@ be inside this function. To investigate further, we must begin
``stepping through'' the lines of @code{are_equal()}. We start by typing
@samp{n} (for ``next''):
+@cindex debugger, @code{n} command
+@cindex debugger, @code{next} command
@example
@group
gawk> @kbd{n}
@@ -29583,6 +29603,7 @@ This information is useful enough (we now know that
none of the words were accidentally left out), but what if we want to see
inside the array?
+@cindex debugger, printing single array elements
The first choice would be to use subscripts:
@example
@@ -29602,6 +29623,7 @@ This would be kind of slow for a 100-member array, though, so
@command{gawk} provides a shortcut (reminiscent of another language
not to be mentioned):
+@cindex debugger, printing all array elements
@example
gawk> @kbd{p @@alast}
@print{} alast["1"] = "awk"
@@ -29681,6 +29703,7 @@ Getting information
Miscellaneous
@end itemize
+@cindex debugger, repeating commands
Each of these are discussed in the following subsections.
In the following descriptions, commands that may be abbreviated
show the abbreviation on a second description line.
@@ -30267,9 +30290,11 @@ Options are read back into the next session upon startup.
@item @code{trace} [@code{on} | @code{off}]
@cindex instruction tracing, in debugger
+@cindex debugger, instruction tracing
Turn instruction tracing on or off. The default is @code{off}.
@end table
+@cindex debugger, save commands to a file
@item @code{save} @var{filename}
Save the commands from the current session to the given @value{FN},
so that they can be replayed using the @command{source} command.
@@ -30442,7 +30467,9 @@ fairly self-explanatory, and using @code{stepi} and @code{nexti} while
@node Readline Support
@section Readline Support
@cindex command completion, in debugger
+@cindex debugger, command completion
@cindex history expansion, in debugger
+@cindex debugger, history expansion
If @command{gawk} is compiled with
@uref{http://cnswww.cns.cwru.edu/php/chet/readline/readline.html,
@@ -30481,6 +30508,7 @@ and
@node Limitations
@section Limitations
+@cindex debugger, limitations
We hope you find the @command{gawk} debugger useful and enjoyable to work with,
but as with any program, especially in its early releases, it still has
some limitations. A few that it's worth being aware of are:
diff --git a/doc/it/ChangeLog b/doc/it/ChangeLog
index e0a68361..7d492de7 100644
--- a/doc/it/ChangeLog
+++ b/doc/it/ChangeLog
@@ -1,3 +1,7 @@
+2018-12-18 Antonio Giovanni Colombo <azc100@gmail.com>
+
+ * gawk.1: Updated.
+
2018-09-07 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in, gawk.1, texinfo.tex: Remove execute permission.
diff --git a/doc/it/gawk.1 b/doc/it/gawk.1
index b1ab35ae..bcc0c596 100644
--- a/doc/it/gawk.1
+++ b/doc/it/gawk.1
@@ -9,6 +9,7 @@
.\"Aggiornam. a gawk-4.1.3 di Marco Curreli - revis. A.G. Colombo - Giugno 2016
.\"Aggiornam. a gawk-4.2.0 di A.G. Colombo - revis. M. Curreli - Dicembre 2017
.\"Aggiornam. a gawk-4.2.1 di A.G. Colombo - revis. M. Curreli - Febbraio 2018
+.\"Aggiornam. a gawk-4.2.2 di A.G. Colombo - revis. M. Curreli - Dicembre 2018
.ds PX \s-1POSIX\s+1
.ds UX \s-1UNIX\s+1
@@ -25,7 +26,7 @@
. if \w'\(rq' .ds rq "\(rq
. \}
.\}
-.TH GAWK 1 "Feb 15 2018" "Free Software Foundation" "Utility Commands"
+.TH GAWK 1 "Nov 29 2018" "Free Software Foundation" "Utility Commands"
.SH NOME
gawk \- linguaggio per il riconoscimento e il trattamento di espressioni
regolari
@@ -69,12 +70,12 @@ e valori da rendere disponibili
nelle variabili \*(AK predefinite
.B ARGC
e
-.B ARGV .
+.BR ARGV .
.PP
Quando
.I gawk
è invocato con l'opzione
-.B \-\^\-profile ,
+.BR \-\^\-profile ,
inizia a raccogliere statistiche sul comportamento del programma
durante l'esecuzione.
.I Gawk
@@ -228,7 +229,7 @@ nella directory corrente.
.sp .5
Avere una lista di tutte le variabili globali è un buon modo per cercare
errori tipografici nei programmi.
-Questa opzione potrebbe essere usata anche se si ha un grosso programma con
+Quest'opzione potrebbe essere usata anche se si ha un grosso programma con
tantissime funzioni, e ci si vuole assicurare che le funzioni non usino
inavvertitamente variabili globali che sono supposte essere locali
(è facile commettere questo errore quando si usano nomi di variabili
@@ -242,10 +243,11 @@ e così via).
.TP
.PD
\fB\-\^\-debug\fR[\fB=\fIfile\fR]
-Abilita il debugging di programmi \*(AK. Se non diversamente specificato, l'analizzatore di errori [debugger] legge i comandi
+Abilita il debugging di programmi \*(AK.
+Per default, l'analizzatore di errori [debugger] legge i comandi
in maniera interattiva dalla tastiera (standard input).
L'argomento opzionale
-.IR file
+.I file
specifica un file contenente un elenco di comandi
per il debugger da eseguire in maniera non interattiva.
.TP
@@ -294,7 +296,7 @@ nel programma. Il programma in sé non viene eseguito.
Si veda la distribuzione \*(GN
.I gettext
per maggiori informazioni sui file
-.B \&.pot .
+.BR \&.pot .
.TP
.PD 0
.B \-h
@@ -317,7 +319,7 @@ Cerca la libreria usando la variabile d'ambiente
.BR AWKPATH .
Se la ricerca iniziale non va a buon fine, viene
fatto un altro tentativo dopo aver aggiunto il suffisso
-.B \&.awk .
+.BR \&.awk .
Il file verrà caricato solo una volta
(cioè vengono ignorati i duplicati), e il codice non costituisce
il sorgente del programma principale.
@@ -332,7 +334,7 @@ Carica un'estensione
dalla libreria condivisa
.IR lib .
Cerca la libreria usando la variabile d'ambiente
-.B AWKLIBPATH .
+.BR AWKLIBPATH .
Se la ricerca iniziale non va a buon fine, viene
fatto un altro tentativo dopo aver aggiunto il suffisso della libreria
condivisa predefinita per la piattaforma.
@@ -394,7 +396,7 @@ faccia questo quando l'opzione
il punto come separatore decimale, anche per le localizzazioni in cui
il carattere di separazione non è il punto. Quest'opzione ignora il
comportamento predefinito, senza il rigore draconiano dell'opzione
-.B \-\^\-posix .
+.BR \-\^\-posix .
.ig
.\" Quest'opzione è lasciata intenzionalmente non documentata.
.TP
@@ -432,9 +434,8 @@ Sottintende
Abilita le ottimizzazioni predefinite di
.IR gawk
nella rappresentazione interna del programma.
-Attualmente, questo comprende il calcolo di costanti, se possibile, al momento
-della compilazione, e l'eliminazione della chiamata di coda per funzioni
-ricorsive. Questa opzione è attiva in modo predefinito.
+Attualmente, questo comprende il semplice calcolo delle costanti.
+Quest'opzione è attiva in modo predefinito.
.TP
.PD 0
\fB\-p\fR[\fIprof-file\fR]
@@ -457,7 +458,7 @@ Sottindende
.PD
.B \-\^\-posix
Quest'opzione attiva la modalità di
-.I compatibilità ,
+.IR compatibilità ,
con le seguenti restrizioni aggiuntive:
.RS
.TP "\w'\(bu'u+1n"
@@ -476,7 +477,7 @@ e
Non viene riconosciuto il sinonimo
.B func
per la parola chiave
-.B function .
+.BR function .
.TP
\(bu
Non si possono usare gli operatori
@@ -515,14 +516,14 @@ rimane per essere usata con l'opzione
.PD
.B \-\^\-no\-optimize
Disabilita le ottimizzazioni predefinite di
-.IR gawk
+.I gawk
nella rappresentazione interna del programma.
.TP
.PD 0
-.BI \-S
+.B \-S
.TP
.PD
-.BI \-\^\-sandbox
+.B \-\^\-sandbox
Esegue
.I gawk
in modalità "sandbox", disabilitando la funzione
@@ -579,7 +580,7 @@ per l'elaborazione. Questo è particolarmente utile per eseguire i programmi
.BR #! .
.PP
Per compatibilità con \*(PX, si può usare l'opzione
-.B \-W ,
+.BR \-W ,
seguita dal nome di un'opzione lunga.
.SH ESECUZIONE DEL PROGRAMMA AWK
.PP
@@ -652,7 +653,7 @@ La variabile d'ambiente
.B AWKLIBPATH
specifica il percorso lungo il quale cercare i file sorgenti
indicati con l'opzione
-.B \-l ,
+.BR \-l ,
Se questa variabile non esiste, il percorso predefinito è
\fB"/usr/local/lib/gawk"\fR
(la directory in questione può variare a seconda di come
@@ -1144,7 +1145,7 @@ Il valore della chiamata di sistema
Il valore di
.IR errno (3)
quando
-.BR ERRNO
+.B ERRNO
è impostato al messaggio di errore associato.
.TP
\fBPROCINFO["euid"]\fP
@@ -1205,6 +1206,28 @@ ancora non lo sa).
L'identificatore è una funzione definita dall'utente.
.RE
.TP
+\fBPROCINFO["platform"]\fP
+Una stringa che indica la piattaforma sulla quale
+.I gawk
+è stato compilato. Può essere una delle alternative seguenti:
+.RS
+.TP
+\fB"vms"\fR
+OpenVMS o Vax/VMS.
+.TP
+\fB"macosx"\fR
+Mac OS X.
+.TP
+\fB"cygwin"\fR, \fB"djgpp"\fR, \fB"mingw"\fR
+Microsoft Windows, avendo compilato in Cygwin, DJGPP, o MinGW, rispettivamente.
+.TP
+\fB"os2"\fR
+OS/2.
+.TP
+\fB"posix"\fR
+GNU/Linux e i sistemi Unix precedenti.
+.RE
+.TP
\fBPROCINFO["pgrpid"]\fP
Il process group ID del processo corrente.
.TP
@@ -1266,7 +1289,7 @@ Se presente, gli errori di I/O per tutte le ridirezioni
diventano non fatali.
.TP
\fBPROCINFO["\fInome\fB", "NONFATAL"]\fR
-Rendono gli errori relativi a
+Rende gli errori relativi a
.I nome
non fatali.
.TP
@@ -1290,7 +1313,7 @@ e questo elemento di vettore esiste,
.B getline
restituisce \-2 invece di restituire il valore previsto di \-1
e di configurare
-.IR l'input
+.I l'input
in modo da non fornire ulteriori dati.
Un errore di I/O non fatale si verifica quando
.IR errno (3)
@@ -1403,7 +1426,9 @@ può essere usata per controllare se un elemento in
Non è possibile usare l'istruzione
.B delete
per il vettore
-.B SYMTAB .
+.B SYMTAB
+e neppure impostare elementi il cui indice non sia
+un nome di variabile.
.TP
.B TEXTDOMAIN
Il dominio di testo del programma \*(AK ; usato per trovare le traduzioni
@@ -1417,7 +1442,7 @@ Se l'espressione è formata da una lista di espressioni
l'indice del vettore è una stringa ottenuta concatenando
i valori (stringa) di ogni espressione, separati dal valore della
variabile
-.B SUBSEP .
+.BR SUBSEP .
Questa modalità è usata per simulare vettori multidimensionali.
Per esempio:
.PP
@@ -1492,7 +1517,7 @@ si aspetta di trovare un vettore (come nel secondo argomento di
.BR split() ).
Si può fare questo creando un elemento nel sottovettore e cancellandolo
poi con l'istruzione
-.B delete .
+.BR delete .
.SS Notazione e conversione delle variabili
.PP
Le variabili e i campi
@@ -1567,7 +1592,7 @@ a
agli elementi di
.B ARGV
di
-.B ENVIRON ,
+.BR ENVIRON ,
ed agli elementi di un vettore creato da
.B split()
o da
@@ -1738,13 +1763,13 @@ Le azioni di tutti i criteri di ricerca
.B BEGIN
sono unite insieme, come se tutte le istruzioni fossero
scritte in un'unica regola
-.B BEGIN ,
+.BR BEGIN ,
e sono eseguite prima che sia letto qualsiasi input.
Allo stesso modo, tutte le regole
.B END
sono fuse insieme, ed eseguite dopo che tutti i dati in input sono
terminati o dopo che si è incontrata l'istruzione
-.B exit .
+.BR exit .
.B BEGIN
e
.B END
@@ -2271,7 +2296,8 @@ dalla successiva riga di input; imposta
Imposta
.I variabile
dalla successiva riga di
-.IR file ,
+.IR file ;
+imposta
.BR RT .
.TP
\fIcomando\fB | getline \fR[\fIvariabile\fR]
@@ -2432,6 +2458,14 @@ e della funzione
accettano i seguenti
formati di richiesta conversione:
.TP "\w'\fB%g\fR, \fB%G\fR'u+2n"
+.BR "%a" "," " %A"
+Un numero a virgola mobile nel formato
+[\fB\-\fP]\fB0x\fIh\fB.\fIhhhh\fBp+\-\fIdd\fR
+(formato esadecimale a virgola mobile di C99).
+Per
+.BR %A ,
+si usano lettere maiuscole invece che lettere minuscole.
+.TP
.B %c
Un singolo carattere.
Se l'argomento usato per
@@ -2502,7 +2536,7 @@ invece di
.TP
.B %%
Un singolo carattere
-.B % ;
+.BR % ;
non c'è alcuna conversione di argomenti.
.PP
Alcuni ulteriori parametri facoltativi possono comparire fra il
@@ -3025,7 +3059,7 @@ davanti a
Il valore di
.B seps[0]
è il separatore iniziale (che potrebbe anche essere la stringa nulla).
-\&\fRIf
+Se
.I r
è omesso,
.B FPAT
@@ -3064,7 +3098,7 @@ tra
.BI a[ i ]
e
.BI a[ i +1]\fR.
-\&\fRSe
+Se
.I r
è uno spazio singolo, gli eventuali spazi bianchi all'inizio di
.I s
@@ -3077,6 +3111,10 @@ dove
è il valore restituito da
.BI split( s ", " a ", " r ", " seps )\fR.
La suddivisione si comporta come la suddivisione in campi, descritta sopra.
+Nel caso particolare in cui
+.I r
+è una stringa composta da un unico carattere, quella stringa fa da separatore,
+anche se il carattere è un metacarattere di un'espressione regolare.
.TP
.BI sprintf( fmt , " lista-espressioni" )
Stampa
@@ -3599,7 +3637,7 @@ assegnazione compariva prima di un nome di file, l'assegnazione sarebbe
avvenuta
.I prima
di eseguire la regola
-.B BEGIN .
+.BR BEGIN .
Esistono applicazioni che dipendono da questa \*(lqfunzionalità.\*(rq
Quando
.I awk
@@ -4050,7 +4088,7 @@ ILDP - Italian Linux Documentation Project
Se trovate un bug in
.IR gawk ,
siete pregati di inviare un messaggio di posta elettronica a
-.BR bug-gawk@gnu.org .
+.BR \%bug-gawk@gnu.org .
Siete pregati di includere il vostro sistema operativo e la versione di
.I gawk
(da