aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/gawk.info1122
-rw-r--r--doc/gawk.texi44
-rw-r--r--doc/gawktexi.in44
4 files changed, 644 insertions, 570 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index c4bed249..1e3ac3ca 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2014-08-25 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Exercises are excluded from print edition.
+
2014-08-24 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Continuing on reviewer comments.
diff --git a/doc/gawk.info b/doc/gawk.info
index caf36e31..850c8e73 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -219,6 +219,7 @@ entitled "GNU Free Documentation License".
* Command-line directories:: What happens if you put a directory on
the command line.
* Input Summary:: Input summary.
+
* Input Exercises:: Exercises.
* Print:: The `print' statement.
* Print Examples:: Simple examples of `print'
@@ -244,7 +245,8 @@ entitled "GNU Free Documentation License".
* Close Files And Pipes:: Closing Input and Output Files and
Pipes.
* Output Summary:: Output summary.
-* Output exercises:: Exercises.
+
+* Output Exercises:: Exercises.
* Values:: Constants, Variables, and Regular
Expressions.
* Constants:: String, numeric and regexp constants.
@@ -431,7 +433,8 @@ entitled "GNU Free Documentation License".
information.
* Walking Arrays:: A function to walk arrays of arrays.
* Library Functions Summary:: Summary of library functions.
-* Library exercises:: Exercises.
+
+* Library Exercises:: Exercises.
* Running Examples:: How to run these examples.
* Clones:: Clones of common utilities.
* Cut Program:: The `cut' utility.
@@ -462,6 +465,7 @@ entitled "GNU Free Documentation License".
* Signature Program:: People do amazing things with too much
time on their hands.
* Programs Summary:: Summary of programs.
+
* Programs Exercises:: Exercises.
* Nondecimal Data:: Allowing nondecimal input data.
* Array Sorting:: Facilities for controlling array
@@ -584,6 +588,7 @@ entitled "GNU Free Documentation License".
and `sleep()'.
* gawkextlib:: The `gawkextlib' project.
* Extension summary:: Extension summary.
+
* Extension Exercises:: Exercises.
* V7/SVR3.1:: The major changes between V7 and
System V Release 3.1.
@@ -4079,6 +4084,7 @@ have to be named on the `awk' command line (*note Getline::).
* Command-line directories:: What happens if you put a directory on the
command line.
* Input Summary:: Input summary.
+
* Input Exercises:: Exercises.

@@ -6019,7 +6025,8 @@ function.
descriptors.
* Close Files And Pipes:: Closing Input and Output Files and Pipes.
* Output Summary:: Output summary.
-* Output exercises:: Exercises.
+
+* Output Exercises:: Exercises.

File: gawk.info, Node: Print, Next: Print Examples, Up: Printing
@@ -7081,7 +7088,7 @@ call. See the system manual pages for information on how to decode this
value.

-File: gawk.info, Node: Output Summary, Next: Output exercises, Prev: Close Files And Pipes, Up: Printing
+File: gawk.info, Node: Output Summary, Next: Output Exercises, Prev: Close Files And Pipes, Up: Printing
5.9 Summary
===========
@@ -7107,7 +7114,7 @@ File: gawk.info, Node: Output Summary, Next: Output exercises, Prev: Close Fi

-File: gawk.info, Node: Output exercises, Prev: Output Summary, Up: Printing
+File: gawk.info, Node: Output Exercises, Prev: Output Summary, Up: Printing
5.10 Exercises
==============
@@ -13253,7 +13260,7 @@ File: gawk.info, Node: Definition Syntax, Next: Function Example, Up: User-de
--------------------------------
It's entirely fair to say that the `awk' syntax for local variable
- definitions is appallingly awful -- Brian Kernighan
+ definitions is appallingly awful. -- Brian Kernighan
Definitions of functions can appear anywhere between the rules of an
`awk' program. Thus, the general form of an `awk' program is extended
@@ -14243,7 +14250,8 @@ for different implementations of `awk' is pretty straightforward.
* Group Functions:: Functions for getting group information.
* Walking Arrays:: A function to walk arrays of arrays.
* Library Functions Summary:: Summary of library functions.
-* Library exercises:: Exercises.
+
+* Library Exercises:: Exercises.
---------- Footnotes ----------
@@ -15998,7 +16006,7 @@ value. Here is a main program to demonstrate:
-| a[3] = 3

-File: gawk.info, Node: Library Functions Summary, Next: Library exercises, Prev: Walking Arrays, Up: Library Functions
+File: gawk.info, Node: Library Functions Summary, Next: Library Exercises, Prev: Walking Arrays, Up: Library Functions
10.8 Summary
============
@@ -16035,7 +16043,7 @@ File: gawk.info, Node: Library Functions Summary, Next: Library exercises, Pr

-File: gawk.info, Node: Library exercises, Prev: Library Functions Summary, Up: Library Functions
+File: gawk.info, Node: Library Exercises, Prev: Library Functions Summary, Up: Library Functions
10.9 Exercises
==============
@@ -16085,6 +16093,7 @@ Library Functions::.
* Clones:: Clones of common utilities.
* Miscellaneous Programs:: Some interesting `awk' programs.
* Programs Summary:: Summary of programs.
+
* Programs Exercises:: Exercises.

@@ -22287,6 +22296,7 @@ sample extensions are automatically built and installed when `gawk' is.
`gawk'.
* gawkextlib:: The `gawkextlib' project.
* Extension summary:: Extension summary.
+
* Extension Exercises:: Exercises.

@@ -33974,552 +33984,552 @@ Index

Tag Table:
Node: Top1204
-Node: Foreword41858
-Node: Preface46203
-Ref: Preface-Footnote-149226
-Ref: Preface-Footnote-249333
-Node: History49565
-Node: Names51939
-Ref: Names-Footnote-153033
-Node: This Manual53179
-Ref: This Manual-Footnote-158958
-Node: Conventions59058
-Node: Manual History61403
-Ref: Manual History-Footnote-164479
-Ref: Manual History-Footnote-264520
-Node: How To Contribute64594
-Node: Acknowledgments65833
-Node: Getting Started70581
-Node: Running gawk73015
-Node: One-shot74205
-Node: Read Terminal75430
-Ref: Read Terminal-Footnote-177393
-Node: Long77564
-Node: Executable Scripts78958
-Ref: Executable Scripts-Footnote-181759
-Node: Comments81861
-Node: Quoting84334
-Node: DOS Quoting89647
-Node: Sample Data Files90322
-Node: Very Simple92929
-Node: Two Rules97688
-Node: More Complex99582
-Ref: More Complex-Footnote-1102514
-Node: Statements/Lines102599
-Ref: Statements/Lines-Footnote-1107055
-Node: Other Features107320
-Node: When108248
-Ref: When-Footnote-1110004
-Node: Intro Summary110069
-Node: Invoking Gawk110952
-Node: Command Line112467
-Node: Options113258
-Ref: Options-Footnote-1129034
-Node: Other Arguments129059
-Node: Naming Standard Input131721
-Node: Environment Variables132814
-Node: AWKPATH Variable133372
-Ref: AWKPATH Variable-Footnote-1136238
-Ref: AWKPATH Variable-Footnote-2136283
-Node: AWKLIBPATH Variable136543
-Node: Other Environment Variables137302
-Node: Exit Status140959
-Node: Include Files141634
-Node: Loading Shared Libraries145212
-Node: Obsolete146596
-Node: Undocumented147293
-Node: Invoking Summary147560
-Node: Regexp149160
-Node: Regexp Usage150619
-Node: Escape Sequences152652
-Node: Regexp Operators158469
-Ref: Regexp Operators-Footnote-1165900
-Ref: Regexp Operators-Footnote-2166047
-Node: Bracket Expressions166145
-Ref: table-char-classes168167
-Node: GNU Regexp Operators171107
-Node: Case-sensitivity174816
-Ref: Case-sensitivity-Footnote-1177708
-Ref: Case-sensitivity-Footnote-2177943
-Node: Leftmost Longest178051
-Node: Computed Regexps179252
-Node: Regexp Summary182624
-Node: Reading Files184093
-Node: Records186185
-Node: awk split records186907
-Node: gawk split records191765
-Ref: gawk split records-Footnote-1196286
-Node: Fields196323
-Ref: Fields-Footnote-1199287
-Node: Nonconstant Fields199373
-Ref: Nonconstant Fields-Footnote-1201603
-Node: Changing Fields201805
-Node: Field Separators207759
-Node: Default Field Splitting210461
-Node: Regexp Field Splitting211578
-Node: Single Character Fields214905
-Node: Command Line Field Separator215964
-Node: Full Line Fields219390
-Ref: Full Line Fields-Footnote-1219898
-Node: Field Splitting Summary219944
-Ref: Field Splitting Summary-Footnote-1223076
-Node: Constant Size223177
-Node: Splitting By Content227783
-Ref: Splitting By Content-Footnote-1231856
-Node: Multiple Line231896
-Ref: Multiple Line-Footnote-1237752
-Node: Getline237931
-Node: Plain Getline240142
-Node: Getline/Variable242237
-Node: Getline/File243384
-Node: Getline/Variable/File244768
-Ref: Getline/Variable/File-Footnote-1246367
-Node: Getline/Pipe246454
-Node: Getline/Variable/Pipe249140
-Node: Getline/Coprocess250247
-Node: Getline/Variable/Coprocess251499
-Node: Getline Notes252236
-Node: Getline Summary255040
-Ref: table-getline-variants255448
-Node: Read Timeout256360
-Ref: Read Timeout-Footnote-1260187
-Node: Command-line directories260245
-Node: Input Summary261149
-Node: Input Exercises264286
-Node: Printing265019
-Node: Print266741
-Node: Print Examples268234
-Node: Output Separators271013
-Node: OFMT273029
-Node: Printf274387
-Node: Basic Printf275293
-Node: Control Letters276832
-Node: Format Modifiers280823
-Node: Printf Examples286850
-Node: Redirection289314
-Node: Special Files296286
-Node: Special FD296819
-Ref: Special FD-Footnote-1300416
-Node: Special Network300490
-Node: Special Caveats301340
-Node: Close Files And Pipes302136
-Ref: Close Files And Pipes-Footnote-1309297
-Ref: Close Files And Pipes-Footnote-2309445
-Node: Output Summary309595
-Node: Output exercises310592
-Node: Expressions311272
-Node: Values312457
-Node: Constants313133
-Node: Scalar Constants313813
-Ref: Scalar Constants-Footnote-1314672
-Node: Nondecimal-numbers314922
-Node: Regexp Constants317922
-Node: Using Constant Regexps318397
-Node: Variables321469
-Node: Using Variables322124
-Node: Assignment Options323848
-Node: Conversion325723
-Node: Strings And Numbers326247
-Ref: Strings And Numbers-Footnote-1329309
-Node: Locale influences conversions329418
-Ref: table-locale-affects332135
-Node: All Operators332723
-Node: Arithmetic Ops333353
-Node: Concatenation335858
-Ref: Concatenation-Footnote-1338677
-Node: Assignment Ops338783
-Ref: table-assign-ops343766
-Node: Increment Ops345069
-Node: Truth Values and Conditions348507
-Node: Truth Values349590
-Node: Typing and Comparison350639
-Node: Variable Typing351432
-Node: Comparison Operators355084
-Ref: table-relational-ops355494
-Node: POSIX String Comparison359044
-Ref: POSIX String Comparison-Footnote-1360128
-Node: Boolean Ops360266
-Ref: Boolean Ops-Footnote-1364341
-Node: Conditional Exp364432
-Node: Function Calls366159
-Node: Precedence370039
-Node: Locales373708
-Node: Expressions Summary375339
-Node: Patterns and Actions377880
-Node: Pattern Overview378996
-Node: Regexp Patterns380673
-Node: Expression Patterns381216
-Node: Ranges384996
-Node: BEGIN/END388102
-Node: Using BEGIN/END388864
-Ref: Using BEGIN/END-Footnote-1391600
-Node: I/O And BEGIN/END391706
-Node: BEGINFILE/ENDFILE393977
-Node: Empty396908
-Node: Using Shell Variables397225
-Node: Action Overview399508
-Node: Statements401835
-Node: If Statement403683
-Node: While Statement405181
-Node: Do Statement407225
-Node: For Statement408381
-Node: Switch Statement411533
-Node: Break Statement413921
-Node: Continue Statement415962
-Node: Next Statement417787
-Node: Nextfile Statement420177
-Node: Exit Statement422813
-Node: Built-in Variables425217
-Node: User-modified426344
-Ref: User-modified-Footnote-1434033
-Node: Auto-set434095
-Ref: Auto-set-Footnote-1446677
-Ref: Auto-set-Footnote-2446882
-Node: ARGC and ARGV446938
-Node: Pattern Action Summary450842
-Node: Arrays453065
-Node: Array Basics454614
-Node: Array Intro455440
-Ref: figure-array-elements457413
-Ref: Array Intro-Footnote-1459937
-Node: Reference to Elements460065
-Node: Assigning Elements462515
-Node: Array Example463006
-Node: Scanning an Array464738
-Node: Controlling Scanning467739
-Ref: Controlling Scanning-Footnote-1472912
-Node: Delete473228
-Ref: Delete-Footnote-1475979
-Node: Numeric Array Subscripts476036
-Node: Uninitialized Subscripts478219
-Node: Multidimensional479844
-Node: Multiscanning482957
-Node: Arrays of Arrays484546
-Node: Arrays Summary489209
-Node: Functions491314
-Node: Built-in492187
-Node: Calling Built-in493265
-Node: Numeric Functions495253
-Ref: Numeric Functions-Footnote-1499287
-Ref: Numeric Functions-Footnote-2499644
-Ref: Numeric Functions-Footnote-3499692
-Node: String Functions499961
-Ref: String Functions-Footnote-1522958
-Ref: String Functions-Footnote-2523087
-Ref: String Functions-Footnote-3523335
-Node: Gory Details523422
-Ref: table-sub-escapes525195
-Ref: table-sub-proposed526715
-Ref: table-posix-sub528079
-Ref: table-gensub-escapes529619
-Ref: Gory Details-Footnote-1530795
-Node: I/O Functions530946
-Ref: I/O Functions-Footnote-1538056
-Node: Time Functions538203
-Ref: Time Functions-Footnote-1548667
-Ref: Time Functions-Footnote-2548735
-Ref: Time Functions-Footnote-3548893
-Ref: Time Functions-Footnote-4549004
-Ref: Time Functions-Footnote-5549116
-Ref: Time Functions-Footnote-6549343
-Node: Bitwise Functions549609
-Ref: table-bitwise-ops550171
-Ref: Bitwise Functions-Footnote-1554416
-Node: Type Functions554600
-Node: I18N Functions555742
-Node: User-defined557387
-Node: Definition Syntax558191
-Ref: Definition Syntax-Footnote-1563502
-Node: Function Example563571
-Ref: Function Example-Footnote-1566211
-Node: Function Caveats566233
-Node: Calling A Function566751
-Node: Variable Scope567706
-Node: Pass By Value/Reference570694
-Node: Return Statement574204
-Node: Dynamic Typing577188
-Node: Indirect Calls578117
-Node: Functions Summary587830
-Node: Library Functions590369
-Ref: Library Functions-Footnote-1593987
-Ref: Library Functions-Footnote-2594130
-Node: Library Names594301
-Ref: Library Names-Footnote-1597774
-Ref: Library Names-Footnote-2597994
-Node: General Functions598080
-Node: Strtonum Function599108
-Node: Assert Function601888
-Node: Round Function605214
-Node: Cliff Random Function606755
-Node: Ordinal Functions607771
-Ref: Ordinal Functions-Footnote-1610836
-Ref: Ordinal Functions-Footnote-2611088
-Node: Join Function611299
-Ref: Join Function-Footnote-1613070
-Node: Getlocaltime Function613270
-Node: Readfile Function617006
-Node: Data File Management618845
-Node: Filetrans Function619477
-Node: Rewind Function623546
-Node: File Checking625104
-Ref: File Checking-Footnote-1626236
-Node: Empty Files626437
-Node: Ignoring Assigns628416
-Node: Getopt Function629970
-Ref: Getopt Function-Footnote-1641273
-Node: Passwd Functions641476
-Ref: Passwd Functions-Footnote-1650455
-Node: Group Functions650543
-Ref: Group Functions-Footnote-1658474
-Node: Walking Arrays658687
-Node: Library Functions Summary660290
-Node: Library exercises661678
-Node: Sample Programs662958
-Node: Running Examples663728
-Node: Clones664456
-Node: Cut Program665680
-Node: Egrep Program675538
-Ref: Egrep Program-Footnote-1683125
-Node: Id Program683235
-Node: Split Program686889
-Ref: Split Program-Footnote-1690427
-Node: Tee Program690555
-Node: Uniq Program693342
-Node: Wc Program700763
-Ref: Wc Program-Footnote-1705028
-Node: Miscellaneous Programs705120
-Node: Dupword Program706333
-Node: Alarm Program708364
-Node: Translate Program713168
-Ref: Translate Program-Footnote-1717559
-Ref: Translate Program-Footnote-2717829
-Node: Labels Program717963
-Ref: Labels Program-Footnote-1721324
-Node: Word Sorting721408
-Node: History Sorting725451
-Node: Extract Program727287
-Node: Simple Sed734823
-Node: Igawk Program737885
-Ref: Igawk Program-Footnote-1752189
-Ref: Igawk Program-Footnote-2752390
-Node: Anagram Program752528
-Node: Signature Program755596
-Node: Programs Summary756843
-Node: Programs Exercises758058
-Node: Advanced Features761709
-Node: Nondecimal Data763657
-Node: Array Sorting765234
-Node: Controlling Array Traversal765931
-Node: Array Sorting Functions774211
-Ref: Array Sorting Functions-Footnote-1778118
-Node: Two-way I/O778312
-Ref: Two-way I/O-Footnote-1783256
-Ref: Two-way I/O-Footnote-2783435
-Node: TCP/IP Networking783517
-Node: Profiling786362
-Node: Advanced Features Summary793904
-Node: Internationalization795768
-Node: I18N and L10N797248
-Node: Explaining gettext797934
-Ref: Explaining gettext-Footnote-1802960
-Ref: Explaining gettext-Footnote-2803144
-Node: Programmer i18n803309
-Ref: Programmer i18n-Footnote-1808103
-Node: Translator i18n808152
-Node: String Extraction808946
-Ref: String Extraction-Footnote-1810079
-Node: Printf Ordering810165
-Ref: Printf Ordering-Footnote-1812947
-Node: I18N Portability813011
-Ref: I18N Portability-Footnote-1815460
-Node: I18N Example815523
-Ref: I18N Example-Footnote-1818229
-Node: Gawk I18N818301
-Node: I18N Summary818939
-Node: Debugger820278
-Node: Debugging821300
-Node: Debugging Concepts821741
-Node: Debugging Terms823597
-Node: Awk Debugging826194
-Node: Sample Debugging Session827086
-Node: Debugger Invocation827606
-Node: Finding The Bug828939
-Node: List of Debugger Commands835421
-Node: Breakpoint Control836753
-Node: Debugger Execution Control840417
-Node: Viewing And Changing Data843777
-Node: Execution Stack847135
-Node: Debugger Info848648
-Node: Miscellaneous Debugger Commands852642
-Node: Readline Support857826
-Node: Limitations858718
-Node: Debugging Summary860992
-Node: Arbitrary Precision Arithmetic862160
-Node: Computer Arithmetic863647
-Ref: Computer Arithmetic-Footnote-1868034
-Node: Math Definitions868091
-Ref: table-ieee-formats871380
-Ref: Math Definitions-Footnote-1871920
-Node: MPFR features872023
-Node: FP Math Caution873640
-Ref: FP Math Caution-Footnote-1874690
-Node: Inexactness of computations875059
-Node: Inexact representation876007
-Node: Comparing FP Values877362
-Node: Errors accumulate878326
-Node: Getting Accuracy879759
-Node: Try To Round882418
-Node: Setting precision883317
-Ref: table-predefined-precision-strings883999
-Node: Setting the rounding mode885792
-Ref: table-gawk-rounding-modes886156
-Ref: Setting the rounding mode-Footnote-1889610
-Node: Arbitrary Precision Integers889789
-Ref: Arbitrary Precision Integers-Footnote-1892770
-Node: POSIX Floating Point Problems892919
-Ref: POSIX Floating Point Problems-Footnote-1896795
-Node: Floating point summary896833
-Node: Dynamic Extensions899037
-Node: Extension Intro900589
-Node: Plugin License901854
-Node: Extension Mechanism Outline902539
-Ref: figure-load-extension902963
-Ref: figure-load-new-function904448
-Ref: figure-call-new-function905450
-Node: Extension API Description907434
-Node: Extension API Functions Introduction908884
-Node: General Data Types913751
-Ref: General Data Types-Footnote-1919444
-Node: Requesting Values919743
-Ref: table-value-types-returned920480
-Node: Memory Allocation Functions921438
-Ref: Memory Allocation Functions-Footnote-1924185
-Node: Constructor Functions924281
-Node: Registration Functions926039
-Node: Extension Functions926724
-Node: Exit Callback Functions929026
-Node: Extension Version String930274
-Node: Input Parsers930924
-Node: Output Wrappers940738
-Node: Two-way processors945254
-Node: Printing Messages947458
-Ref: Printing Messages-Footnote-1948535
-Node: Updating `ERRNO'948687
-Node: Accessing Parameters949426
-Node: Symbol Table Access950656
-Node: Symbol table by name951170
-Node: Symbol table by cookie953146
-Ref: Symbol table by cookie-Footnote-1957279
-Node: Cached values957342
-Ref: Cached values-Footnote-1960846
-Node: Array Manipulation960937
-Ref: Array Manipulation-Footnote-1962035
-Node: Array Data Types962074
-Ref: Array Data Types-Footnote-1964777
-Node: Array Functions964869
-Node: Flattening Arrays968743
-Node: Creating Arrays975595
-Node: Extension API Variables980326
-Node: Extension Versioning980962
-Node: Extension API Informational Variables982863
-Node: Extension API Boilerplate983949
-Node: Finding Extensions987753
-Node: Extension Example988313
-Node: Internal File Description989043
-Node: Internal File Ops993134
-Ref: Internal File Ops-Footnote-11004566
-Node: Using Internal File Ops1004706
-Ref: Using Internal File Ops-Footnote-11007053
-Node: Extension Samples1007321
-Node: Extension Sample File Functions1008845
-Node: Extension Sample Fnmatch1016413
-Node: Extension Sample Fork1017895
-Node: Extension Sample Inplace1019108
-Node: Extension Sample Ord1020783
-Node: Extension Sample Readdir1021619
-Ref: table-readdir-file-types1022475
-Node: Extension Sample Revout1023274
-Node: Extension Sample Rev2way1023865
-Node: Extension Sample Read write array1024606
-Node: Extension Sample Readfile1026485
-Node: Extension Sample API Tests1027585
-Node: Extension Sample Time1028110
-Node: gawkextlib1029425
-Node: Extension summary1032238
-Node: Extension Exercises1035931
-Node: Language History1036653
-Node: V7/SVR3.11038296
-Node: SVR41040616
-Node: POSIX1042058
-Node: BTL1043444
-Node: POSIX/GNU1044178
-Node: Feature History1049894
-Node: Common Extensions1062985
-Node: Ranges and Locales1064297
-Ref: Ranges and Locales-Footnote-11068914
-Ref: Ranges and Locales-Footnote-21068941
-Ref: Ranges and Locales-Footnote-31069175
-Node: Contributors1069396
-Node: History summary1074821
-Node: Installation1076190
-Node: Gawk Distribution1077141
-Node: Getting1077625
-Node: Extracting1078449
-Node: Distribution contents1080091
-Node: Unix Installation1085808
-Node: Quick Installation1086425
-Node: Additional Configuration Options1088867
-Node: Configuration Philosophy1090605
-Node: Non-Unix Installation1092956
-Node: PC Installation1093414
-Node: PC Binary Installation1094725
-Node: PC Compiling1096573
-Ref: PC Compiling-Footnote-11099572
-Node: PC Testing1099677
-Node: PC Using1100853
-Node: Cygwin1105005
-Node: MSYS1105814
-Node: VMS Installation1106328
-Node: VMS Compilation1107124
-Ref: VMS Compilation-Footnote-11108346
-Node: VMS Dynamic Extensions1108404
-Node: VMS Installation Details1109777
-Node: VMS Running1112029
-Node: VMS GNV1114863
-Node: VMS Old Gawk1115586
-Node: Bugs1116056
-Node: Other Versions1120060
-Node: Installation summary1126287
-Node: Notes1127343
-Node: Compatibility Mode1128208
-Node: Additions1128990
-Node: Accessing The Source1129915
-Node: Adding Code1131351
-Node: New Ports1137529
-Node: Derived Files1142010
-Ref: Derived Files-Footnote-11147091
-Ref: Derived Files-Footnote-21147125
-Ref: Derived Files-Footnote-31147721
-Node: Future Extensions1147835
-Node: Implementation Limitations1148441
-Node: Extension Design1149689
-Node: Old Extension Problems1150843
-Ref: Old Extension Problems-Footnote-11152360
-Node: Extension New Mechanism Goals1152417
-Ref: Extension New Mechanism Goals-Footnote-11155777
-Node: Extension Other Design Decisions1155966
-Node: Extension Future Growth1158072
-Node: Old Extension Mechanism1158908
-Node: Notes summary1160670
-Node: Basic Concepts1161856
-Node: Basic High Level1162537
-Ref: figure-general-flow1162809
-Ref: figure-process-flow1163408
-Ref: Basic High Level-Footnote-11166637
-Node: Basic Data Typing1166822
-Node: Glossary1170150
-Node: Copying1195302
-Node: GNU Free Documentation License1232858
-Node: Index1257994
+Node: Foreword41863
+Node: Preface46208
+Ref: Preface-Footnote-149231
+Ref: Preface-Footnote-249338
+Node: History49570
+Node: Names51944
+Ref: Names-Footnote-153038
+Node: This Manual53184
+Ref: This Manual-Footnote-158963
+Node: Conventions59063
+Node: Manual History61408
+Ref: Manual History-Footnote-164484
+Ref: Manual History-Footnote-264525
+Node: How To Contribute64599
+Node: Acknowledgments65838
+Node: Getting Started70586
+Node: Running gawk73020
+Node: One-shot74210
+Node: Read Terminal75435
+Ref: Read Terminal-Footnote-177398
+Node: Long77569
+Node: Executable Scripts78963
+Ref: Executable Scripts-Footnote-181764
+Node: Comments81866
+Node: Quoting84339
+Node: DOS Quoting89652
+Node: Sample Data Files90327
+Node: Very Simple92934
+Node: Two Rules97693
+Node: More Complex99587
+Ref: More Complex-Footnote-1102519
+Node: Statements/Lines102604
+Ref: Statements/Lines-Footnote-1107060
+Node: Other Features107325
+Node: When108253
+Ref: When-Footnote-1110009
+Node: Intro Summary110074
+Node: Invoking Gawk110957
+Node: Command Line112472
+Node: Options113263
+Ref: Options-Footnote-1129039
+Node: Other Arguments129064
+Node: Naming Standard Input131726
+Node: Environment Variables132819
+Node: AWKPATH Variable133377
+Ref: AWKPATH Variable-Footnote-1136243
+Ref: AWKPATH Variable-Footnote-2136288
+Node: AWKLIBPATH Variable136548
+Node: Other Environment Variables137307
+Node: Exit Status140964
+Node: Include Files141639
+Node: Loading Shared Libraries145217
+Node: Obsolete146601
+Node: Undocumented147298
+Node: Invoking Summary147565
+Node: Regexp149165
+Node: Regexp Usage150624
+Node: Escape Sequences152657
+Node: Regexp Operators158474
+Ref: Regexp Operators-Footnote-1165905
+Ref: Regexp Operators-Footnote-2166052
+Node: Bracket Expressions166150
+Ref: table-char-classes168172
+Node: GNU Regexp Operators171112
+Node: Case-sensitivity174821
+Ref: Case-sensitivity-Footnote-1177713
+Ref: Case-sensitivity-Footnote-2177948
+Node: Leftmost Longest178056
+Node: Computed Regexps179257
+Node: Regexp Summary182629
+Node: Reading Files184098
+Node: Records186191
+Node: awk split records186913
+Node: gawk split records191771
+Ref: gawk split records-Footnote-1196292
+Node: Fields196329
+Ref: Fields-Footnote-1199293
+Node: Nonconstant Fields199379
+Ref: Nonconstant Fields-Footnote-1201609
+Node: Changing Fields201811
+Node: Field Separators207765
+Node: Default Field Splitting210467
+Node: Regexp Field Splitting211584
+Node: Single Character Fields214911
+Node: Command Line Field Separator215970
+Node: Full Line Fields219396
+Ref: Full Line Fields-Footnote-1219904
+Node: Field Splitting Summary219950
+Ref: Field Splitting Summary-Footnote-1223082
+Node: Constant Size223183
+Node: Splitting By Content227789
+Ref: Splitting By Content-Footnote-1231862
+Node: Multiple Line231902
+Ref: Multiple Line-Footnote-1237758
+Node: Getline237937
+Node: Plain Getline240148
+Node: Getline/Variable242243
+Node: Getline/File243390
+Node: Getline/Variable/File244774
+Ref: Getline/Variable/File-Footnote-1246373
+Node: Getline/Pipe246460
+Node: Getline/Variable/Pipe249146
+Node: Getline/Coprocess250253
+Node: Getline/Variable/Coprocess251505
+Node: Getline Notes252242
+Node: Getline Summary255046
+Ref: table-getline-variants255454
+Node: Read Timeout256366
+Ref: Read Timeout-Footnote-1260193
+Node: Command-line directories260251
+Node: Input Summary261155
+Node: Input Exercises264292
+Node: Printing265025
+Node: Print266748
+Node: Print Examples268241
+Node: Output Separators271020
+Node: OFMT273036
+Node: Printf274394
+Node: Basic Printf275300
+Node: Control Letters276839
+Node: Format Modifiers280830
+Node: Printf Examples286857
+Node: Redirection289321
+Node: Special Files296293
+Node: Special FD296826
+Ref: Special FD-Footnote-1300423
+Node: Special Network300497
+Node: Special Caveats301347
+Node: Close Files And Pipes302143
+Ref: Close Files And Pipes-Footnote-1309304
+Ref: Close Files And Pipes-Footnote-2309452
+Node: Output Summary309602
+Node: Output Exercises310599
+Node: Expressions311279
+Node: Values312464
+Node: Constants313140
+Node: Scalar Constants313820
+Ref: Scalar Constants-Footnote-1314679
+Node: Nondecimal-numbers314929
+Node: Regexp Constants317929
+Node: Using Constant Regexps318404
+Node: Variables321476
+Node: Using Variables322131
+Node: Assignment Options323855
+Node: Conversion325730
+Node: Strings And Numbers326254
+Ref: Strings And Numbers-Footnote-1329316
+Node: Locale influences conversions329425
+Ref: table-locale-affects332142
+Node: All Operators332730
+Node: Arithmetic Ops333360
+Node: Concatenation335865
+Ref: Concatenation-Footnote-1338684
+Node: Assignment Ops338790
+Ref: table-assign-ops343773
+Node: Increment Ops345076
+Node: Truth Values and Conditions348514
+Node: Truth Values349597
+Node: Typing and Comparison350646
+Node: Variable Typing351439
+Node: Comparison Operators355091
+Ref: table-relational-ops355501
+Node: POSIX String Comparison359051
+Ref: POSIX String Comparison-Footnote-1360135
+Node: Boolean Ops360273
+Ref: Boolean Ops-Footnote-1364348
+Node: Conditional Exp364439
+Node: Function Calls366166
+Node: Precedence370046
+Node: Locales373715
+Node: Expressions Summary375346
+Node: Patterns and Actions377887
+Node: Pattern Overview379003
+Node: Regexp Patterns380680
+Node: Expression Patterns381223
+Node: Ranges385003
+Node: BEGIN/END388109
+Node: Using BEGIN/END388871
+Ref: Using BEGIN/END-Footnote-1391607
+Node: I/O And BEGIN/END391713
+Node: BEGINFILE/ENDFILE393984
+Node: Empty396915
+Node: Using Shell Variables397232
+Node: Action Overview399515
+Node: Statements401842
+Node: If Statement403690
+Node: While Statement405188
+Node: Do Statement407232
+Node: For Statement408388
+Node: Switch Statement411540
+Node: Break Statement413928
+Node: Continue Statement415969
+Node: Next Statement417794
+Node: Nextfile Statement420184
+Node: Exit Statement422820
+Node: Built-in Variables425224
+Node: User-modified426351
+Ref: User-modified-Footnote-1434040
+Node: Auto-set434102
+Ref: Auto-set-Footnote-1446684
+Ref: Auto-set-Footnote-2446889
+Node: ARGC and ARGV446945
+Node: Pattern Action Summary450849
+Node: Arrays453072
+Node: Array Basics454621
+Node: Array Intro455447
+Ref: figure-array-elements457420
+Ref: Array Intro-Footnote-1459944
+Node: Reference to Elements460072
+Node: Assigning Elements462522
+Node: Array Example463013
+Node: Scanning an Array464745
+Node: Controlling Scanning467746
+Ref: Controlling Scanning-Footnote-1472919
+Node: Delete473235
+Ref: Delete-Footnote-1475986
+Node: Numeric Array Subscripts476043
+Node: Uninitialized Subscripts478226
+Node: Multidimensional479851
+Node: Multiscanning482964
+Node: Arrays of Arrays484553
+Node: Arrays Summary489216
+Node: Functions491321
+Node: Built-in492194
+Node: Calling Built-in493272
+Node: Numeric Functions495260
+Ref: Numeric Functions-Footnote-1499294
+Ref: Numeric Functions-Footnote-2499651
+Ref: Numeric Functions-Footnote-3499699
+Node: String Functions499968
+Ref: String Functions-Footnote-1522965
+Ref: String Functions-Footnote-2523094
+Ref: String Functions-Footnote-3523342
+Node: Gory Details523429
+Ref: table-sub-escapes525202
+Ref: table-sub-proposed526722
+Ref: table-posix-sub528086
+Ref: table-gensub-escapes529626
+Ref: Gory Details-Footnote-1530802
+Node: I/O Functions530953
+Ref: I/O Functions-Footnote-1538063
+Node: Time Functions538210
+Ref: Time Functions-Footnote-1548674
+Ref: Time Functions-Footnote-2548742
+Ref: Time Functions-Footnote-3548900
+Ref: Time Functions-Footnote-4549011
+Ref: Time Functions-Footnote-5549123
+Ref: Time Functions-Footnote-6549350
+Node: Bitwise Functions549616
+Ref: table-bitwise-ops550178
+Ref: Bitwise Functions-Footnote-1554423
+Node: Type Functions554607
+Node: I18N Functions555749
+Node: User-defined557394
+Node: Definition Syntax558198
+Ref: Definition Syntax-Footnote-1563511
+Node: Function Example563580
+Ref: Function Example-Footnote-1566220
+Node: Function Caveats566242
+Node: Calling A Function566760
+Node: Variable Scope567715
+Node: Pass By Value/Reference570703
+Node: Return Statement574213
+Node: Dynamic Typing577197
+Node: Indirect Calls578126
+Node: Functions Summary587839
+Node: Library Functions590378
+Ref: Library Functions-Footnote-1593997
+Ref: Library Functions-Footnote-2594140
+Node: Library Names594311
+Ref: Library Names-Footnote-1597784
+Ref: Library Names-Footnote-2598004
+Node: General Functions598090
+Node: Strtonum Function599118
+Node: Assert Function601898
+Node: Round Function605224
+Node: Cliff Random Function606765
+Node: Ordinal Functions607781
+Ref: Ordinal Functions-Footnote-1610846
+Ref: Ordinal Functions-Footnote-2611098
+Node: Join Function611309
+Ref: Join Function-Footnote-1613080
+Node: Getlocaltime Function613280
+Node: Readfile Function617016
+Node: Data File Management618855
+Node: Filetrans Function619487
+Node: Rewind Function623556
+Node: File Checking625114
+Ref: File Checking-Footnote-1626246
+Node: Empty Files626447
+Node: Ignoring Assigns628426
+Node: Getopt Function629980
+Ref: Getopt Function-Footnote-1641283
+Node: Passwd Functions641486
+Ref: Passwd Functions-Footnote-1650465
+Node: Group Functions650553
+Ref: Group Functions-Footnote-1658484
+Node: Walking Arrays658697
+Node: Library Functions Summary660300
+Node: Library Exercises661688
+Node: Sample Programs662968
+Node: Running Examples663739
+Node: Clones664467
+Node: Cut Program665691
+Node: Egrep Program675549
+Ref: Egrep Program-Footnote-1683136
+Node: Id Program683246
+Node: Split Program686900
+Ref: Split Program-Footnote-1690438
+Node: Tee Program690566
+Node: Uniq Program693353
+Node: Wc Program700774
+Ref: Wc Program-Footnote-1705039
+Node: Miscellaneous Programs705131
+Node: Dupword Program706344
+Node: Alarm Program708375
+Node: Translate Program713179
+Ref: Translate Program-Footnote-1717570
+Ref: Translate Program-Footnote-2717840
+Node: Labels Program717974
+Ref: Labels Program-Footnote-1721335
+Node: Word Sorting721419
+Node: History Sorting725462
+Node: Extract Program727298
+Node: Simple Sed734834
+Node: Igawk Program737896
+Ref: Igawk Program-Footnote-1752200
+Ref: Igawk Program-Footnote-2752401
+Node: Anagram Program752539
+Node: Signature Program755607
+Node: Programs Summary756854
+Node: Programs Exercises758069
+Node: Advanced Features761720
+Node: Nondecimal Data763668
+Node: Array Sorting765245
+Node: Controlling Array Traversal765942
+Node: Array Sorting Functions774222
+Ref: Array Sorting Functions-Footnote-1778129
+Node: Two-way I/O778323
+Ref: Two-way I/O-Footnote-1783267
+Ref: Two-way I/O-Footnote-2783446
+Node: TCP/IP Networking783528
+Node: Profiling786373
+Node: Advanced Features Summary793915
+Node: Internationalization795779
+Node: I18N and L10N797259
+Node: Explaining gettext797945
+Ref: Explaining gettext-Footnote-1802971
+Ref: Explaining gettext-Footnote-2803155
+Node: Programmer i18n803320
+Ref: Programmer i18n-Footnote-1808114
+Node: Translator i18n808163
+Node: String Extraction808957
+Ref: String Extraction-Footnote-1810090
+Node: Printf Ordering810176
+Ref: Printf Ordering-Footnote-1812958
+Node: I18N Portability813022
+Ref: I18N Portability-Footnote-1815471
+Node: I18N Example815534
+Ref: I18N Example-Footnote-1818240
+Node: Gawk I18N818312
+Node: I18N Summary818950
+Node: Debugger820289
+Node: Debugging821311
+Node: Debugging Concepts821752
+Node: Debugging Terms823608
+Node: Awk Debugging826205
+Node: Sample Debugging Session827097
+Node: Debugger Invocation827617
+Node: Finding The Bug828950
+Node: List of Debugger Commands835432
+Node: Breakpoint Control836764
+Node: Debugger Execution Control840428
+Node: Viewing And Changing Data843788
+Node: Execution Stack847146
+Node: Debugger Info848659
+Node: Miscellaneous Debugger Commands852653
+Node: Readline Support857837
+Node: Limitations858729
+Node: Debugging Summary861003
+Node: Arbitrary Precision Arithmetic862171
+Node: Computer Arithmetic863658
+Ref: Computer Arithmetic-Footnote-1868045
+Node: Math Definitions868102
+Ref: table-ieee-formats871391
+Ref: Math Definitions-Footnote-1871931
+Node: MPFR features872034
+Node: FP Math Caution873651
+Ref: FP Math Caution-Footnote-1874701
+Node: Inexactness of computations875070
+Node: Inexact representation876018
+Node: Comparing FP Values877373
+Node: Errors accumulate878337
+Node: Getting Accuracy879770
+Node: Try To Round882429
+Node: Setting precision883328
+Ref: table-predefined-precision-strings884010
+Node: Setting the rounding mode885803
+Ref: table-gawk-rounding-modes886167
+Ref: Setting the rounding mode-Footnote-1889621
+Node: Arbitrary Precision Integers889800
+Ref: Arbitrary Precision Integers-Footnote-1892781
+Node: POSIX Floating Point Problems892930
+Ref: POSIX Floating Point Problems-Footnote-1896806
+Node: Floating point summary896844
+Node: Dynamic Extensions899048
+Node: Extension Intro900601
+Node: Plugin License901866
+Node: Extension Mechanism Outline902551
+Ref: figure-load-extension902975
+Ref: figure-load-new-function904460
+Ref: figure-call-new-function905462
+Node: Extension API Description907446
+Node: Extension API Functions Introduction908896
+Node: General Data Types913763
+Ref: General Data Types-Footnote-1919456
+Node: Requesting Values919755
+Ref: table-value-types-returned920492
+Node: Memory Allocation Functions921450
+Ref: Memory Allocation Functions-Footnote-1924197
+Node: Constructor Functions924293
+Node: Registration Functions926051
+Node: Extension Functions926736
+Node: Exit Callback Functions929038
+Node: Extension Version String930286
+Node: Input Parsers930936
+Node: Output Wrappers940750
+Node: Two-way processors945266
+Node: Printing Messages947470
+Ref: Printing Messages-Footnote-1948547
+Node: Updating `ERRNO'948699
+Node: Accessing Parameters949438
+Node: Symbol Table Access950668
+Node: Symbol table by name951182
+Node: Symbol table by cookie953158
+Ref: Symbol table by cookie-Footnote-1957291
+Node: Cached values957354
+Ref: Cached values-Footnote-1960858
+Node: Array Manipulation960949
+Ref: Array Manipulation-Footnote-1962047
+Node: Array Data Types962086
+Ref: Array Data Types-Footnote-1964789
+Node: Array Functions964881
+Node: Flattening Arrays968755
+Node: Creating Arrays975607
+Node: Extension API Variables980338
+Node: Extension Versioning980974
+Node: Extension API Informational Variables982875
+Node: Extension API Boilerplate983961
+Node: Finding Extensions987765
+Node: Extension Example988325
+Node: Internal File Description989055
+Node: Internal File Ops993146
+Ref: Internal File Ops-Footnote-11004578
+Node: Using Internal File Ops1004718
+Ref: Using Internal File Ops-Footnote-11007065
+Node: Extension Samples1007333
+Node: Extension Sample File Functions1008857
+Node: Extension Sample Fnmatch1016425
+Node: Extension Sample Fork1017907
+Node: Extension Sample Inplace1019120
+Node: Extension Sample Ord1020795
+Node: Extension Sample Readdir1021631
+Ref: table-readdir-file-types1022487
+Node: Extension Sample Revout1023286
+Node: Extension Sample Rev2way1023877
+Node: Extension Sample Read write array1024618
+Node: Extension Sample Readfile1026497
+Node: Extension Sample API Tests1027597
+Node: Extension Sample Time1028122
+Node: gawkextlib1029437
+Node: Extension summary1032250
+Node: Extension Exercises1035943
+Node: Language History1036665
+Node: V7/SVR3.11038308
+Node: SVR41040628
+Node: POSIX1042070
+Node: BTL1043456
+Node: POSIX/GNU1044190
+Node: Feature History1049906
+Node: Common Extensions1062997
+Node: Ranges and Locales1064309
+Ref: Ranges and Locales-Footnote-11068926
+Ref: Ranges and Locales-Footnote-21068953
+Ref: Ranges and Locales-Footnote-31069187
+Node: Contributors1069408
+Node: History summary1074833
+Node: Installation1076202
+Node: Gawk Distribution1077153
+Node: Getting1077637
+Node: Extracting1078461
+Node: Distribution contents1080103
+Node: Unix Installation1085820
+Node: Quick Installation1086437
+Node: Additional Configuration Options1088879
+Node: Configuration Philosophy1090617
+Node: Non-Unix Installation1092968
+Node: PC Installation1093426
+Node: PC Binary Installation1094737
+Node: PC Compiling1096585
+Ref: PC Compiling-Footnote-11099584
+Node: PC Testing1099689
+Node: PC Using1100865
+Node: Cygwin1105017
+Node: MSYS1105826
+Node: VMS Installation1106340
+Node: VMS Compilation1107136
+Ref: VMS Compilation-Footnote-11108358
+Node: VMS Dynamic Extensions1108416
+Node: VMS Installation Details1109789
+Node: VMS Running1112041
+Node: VMS GNV1114875
+Node: VMS Old Gawk1115598
+Node: Bugs1116068
+Node: Other Versions1120072
+Node: Installation summary1126299
+Node: Notes1127355
+Node: Compatibility Mode1128220
+Node: Additions1129002
+Node: Accessing The Source1129927
+Node: Adding Code1131363
+Node: New Ports1137541
+Node: Derived Files1142022
+Ref: Derived Files-Footnote-11147103
+Ref: Derived Files-Footnote-21147137
+Ref: Derived Files-Footnote-31147733
+Node: Future Extensions1147847
+Node: Implementation Limitations1148453
+Node: Extension Design1149701
+Node: Old Extension Problems1150855
+Ref: Old Extension Problems-Footnote-11152372
+Node: Extension New Mechanism Goals1152429
+Ref: Extension New Mechanism Goals-Footnote-11155789
+Node: Extension Other Design Decisions1155978
+Node: Extension Future Growth1158084
+Node: Old Extension Mechanism1158920
+Node: Notes summary1160682
+Node: Basic Concepts1161868
+Node: Basic High Level1162549
+Ref: figure-general-flow1162821
+Ref: figure-process-flow1163420
+Ref: Basic High Level-Footnote-11166649
+Node: Basic Data Typing1166834
+Node: Glossary1170162
+Node: Copying1195314
+Node: GNU Free Documentation License1232870
+Node: Index1258006

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index d9ce25e9..8068eda5 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -575,7 +575,9 @@ particular records in a file and perform operations upon them.
* Command-line directories:: What happens if you put a directory on
the command line.
* Input Summary:: Input summary.
+@ifclear FOR_PRINT
* Input Exercises:: Exercises.
+@end ifclear
* Print:: The @code{print} statement.
* Print Examples:: Simple examples of @code{print}
statements.
@@ -600,7 +602,9 @@ particular records in a file and perform operations upon them.
* Close Files And Pipes:: Closing Input and Output Files and
Pipes.
* Output Summary:: Output summary.
-* Output exercises:: Exercises.
+@ifclear FOR_PRINT
+* Output Exercises:: Exercises.
+@end ifclear
* Values:: Constants, Variables, and Regular
Expressions.
* Constants:: String, numeric and regexp constants.
@@ -787,7 +791,9 @@ particular records in a file and perform operations upon them.
information.
* Walking Arrays:: A function to walk arrays of arrays.
* Library Functions Summary:: Summary of library functions.
-* Library exercises:: Exercises.
+@ifclear FOR_PRINT
+* Library Exercises:: Exercises.
+@end ifclear
* Running Examples:: How to run these examples.
* Clones:: Clones of common utilities.
* Cut Program:: The @command{cut} utility.
@@ -818,7 +824,9 @@ particular records in a file and perform operations upon them.
* Signature Program:: People do amazing things with too much
time on their hands.
* Programs Summary:: Summary of programs.
+@ifclear FOR_PRINT
* Programs Exercises:: Exercises.
+@end ifclear
* Nondecimal Data:: Allowing nondecimal input data.
* Array Sorting:: Facilities for controlling array
traversal and sorting arrays.
@@ -940,7 +948,9 @@ particular records in a file and perform operations upon them.
and @code{sleep()}.
* gawkextlib:: The @code{gawkextlib} project.
* Extension summary:: Extension summary.
+@ifclear FOR_PRINT
* Extension Exercises:: Exercises.
+@end ifclear
* V7/SVR3.1:: The major changes between V7 and
System V Release 3.1.
* SVR4:: Minor changes between System V
@@ -6124,7 +6134,9 @@ used with it do not have to be named on the @command{awk} command line
* Command-line directories:: What happens if you put a directory on the
command line.
* Input Summary:: Input summary.
+@ifclear FOR_PRINT
* Input Exercises:: Exercises.
+@end ifclear
@end menu
@node Records
@@ -8670,6 +8682,7 @@ Directories on the command line are fatal for standard @command{awk};
@end itemize
+@ifclear FOR_PRINT
@node Input Exercises
@section Exercises
@@ -8689,6 +8702,7 @@ starts later on the same line.
Write a program that does handle multiple comments on the line.
@end enumerate
+@end ifclear
@node Printing
@chapter Printing Output
@@ -8730,7 +8744,9 @@ and discusses the @code{close()} built-in function.
descriptors.
* Close Files And Pipes:: Closing Input and Output Files and Pipes.
* Output Summary:: Output summary.
-* Output exercises:: Exercises.
+@ifclear FOR_PRINT
+* Output Exercises:: Exercises.
+@end ifclear
@end menu
@node Print
@@ -10241,7 +10257,8 @@ communications.
@end itemize
-@node Output exercises
+@ifclear FOR_PRINT
+@node Output Exercises
@section Exercises
@enumerate
@@ -10270,6 +10287,7 @@ BEGIN @{ print "Serious error detected!" > /dev/stderr @}
@end example
@end enumerate
+@end ifclear
@c ENDOFRANGE prnt
@@ -19068,7 +19086,7 @@ them, i.e., to tell @command{awk} what they should do.
@quotation
It's entirely fair to say that the @command{awk} syntax for local
-variable definitions is appallingly awful
+variable definitions is appallingly awful.
@author Brian Kernighan
@end quotation
@@ -20284,7 +20302,9 @@ comparisons use only lowercase letters.
* Group Functions:: Functions for getting group information.
* Walking Arrays:: A function to walk arrays of arrays.
* Library Functions Summary:: Summary of library functions.
-* Library exercises:: Exercises.
+@ifclear FOR_PRINT
+* Library Exercises:: Exercises.
+@end ifclear
@end menu
@node Library Names
@@ -22701,7 +22721,8 @@ A simple function to traverse an array of arrays to any depth.
@end itemize
-@node Library exercises
+@ifclear FOR_PRINT
+@node Library Exercises
@section Exercises
@enumerate
@@ -22767,6 +22788,7 @@ Test your new version by printing the array; you should end up with
output identical to that of the original version.
@end enumerate
+@end ifclear
@c ENDOFRANGE flib
@c ENDOFRANGE fudlib
@@ -22811,7 +22833,9 @@ Many of these programs use library functions presented in
* Clones:: Clones of common utilities.
* Miscellaneous Programs:: Some interesting @command{awk} programs.
* Programs Summary:: Summary of programs.
+@ifclear FOR_PRINT
* Programs Exercises:: Exercises.
+@end ifclear
@end menu
@node Running Examples
@@ -26247,6 +26271,7 @@ mailing labels, and finding anagrams.
@end itemize
+@ifclear FOR_PRINT
@node Programs Exercises
@section Exercises
@@ -26376,6 +26401,7 @@ Modify @file{anagram.awk} (@pxref{Anagram Program}), to avoid
the use of the external @command{sort} utility.
@end enumerate
+@end ifclear
@ifnotinfo
@part @value{PART3}Moving Beyond Standard @command{awk} With @command{gawk}
@@ -30778,7 +30804,9 @@ When @option{--sandbox} is specified, extensions are disabled
@code{gawk}.
* gawkextlib:: The @code{gawkextlib} project.
* Extension summary:: Extension summary.
+@ifclear FOR_PRINT
* Extension Exercises:: Exercises.
+@end ifclear
@end menu
@node Extension Intro
@@ -34715,6 +34743,7 @@ should be the place to do so.
@end itemize
+@ifclear FOR_PRINT
@node Extension Exercises
@section Exercises
@@ -34737,6 +34766,7 @@ Write a wrapper script that provides an interface similar to
@ref{Extension Sample Inplace}.
@end enumerate
+@end ifclear
@ifnotinfo
@part @value{PART4}Appendices
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 0d3881e8..77cd4caf 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -570,7 +570,9 @@ particular records in a file and perform operations upon them.
* Command-line directories:: What happens if you put a directory on
the command line.
* Input Summary:: Input summary.
+@ifclear FOR_PRINT
* Input Exercises:: Exercises.
+@end ifclear
* Print:: The @code{print} statement.
* Print Examples:: Simple examples of @code{print}
statements.
@@ -595,7 +597,9 @@ particular records in a file and perform operations upon them.
* Close Files And Pipes:: Closing Input and Output Files and
Pipes.
* Output Summary:: Output summary.
-* Output exercises:: Exercises.
+@ifclear FOR_PRINT
+* Output Exercises:: Exercises.
+@end ifclear
* Values:: Constants, Variables, and Regular
Expressions.
* Constants:: String, numeric and regexp constants.
@@ -782,7 +786,9 @@ particular records in a file and perform operations upon them.
information.
* Walking Arrays:: A function to walk arrays of arrays.
* Library Functions Summary:: Summary of library functions.
-* Library exercises:: Exercises.
+@ifclear FOR_PRINT
+* Library Exercises:: Exercises.
+@end ifclear
* Running Examples:: How to run these examples.
* Clones:: Clones of common utilities.
* Cut Program:: The @command{cut} utility.
@@ -813,7 +819,9 @@ particular records in a file and perform operations upon them.
* Signature Program:: People do amazing things with too much
time on their hands.
* Programs Summary:: Summary of programs.
+@ifclear FOR_PRINT
* Programs Exercises:: Exercises.
+@end ifclear
* Nondecimal Data:: Allowing nondecimal input data.
* Array Sorting:: Facilities for controlling array
traversal and sorting arrays.
@@ -935,7 +943,9 @@ particular records in a file and perform operations upon them.
and @code{sleep()}.
* gawkextlib:: The @code{gawkextlib} project.
* Extension summary:: Extension summary.
+@ifclear FOR_PRINT
* Extension Exercises:: Exercises.
+@end ifclear
* V7/SVR3.1:: The major changes between V7 and
System V Release 3.1.
* SVR4:: Minor changes between System V
@@ -5908,7 +5918,9 @@ used with it do not have to be named on the @command{awk} command line
* Command-line directories:: What happens if you put a directory on the
command line.
* Input Summary:: Input summary.
+@ifclear FOR_PRINT
* Input Exercises:: Exercises.
+@end ifclear
@end menu
@node Records
@@ -8272,6 +8284,7 @@ Directories on the command line are fatal for standard @command{awk};
@end itemize
+@ifclear FOR_PRINT
@node Input Exercises
@section Exercises
@@ -8291,6 +8304,7 @@ starts later on the same line.
Write a program that does handle multiple comments on the line.
@end enumerate
+@end ifclear
@node Printing
@chapter Printing Output
@@ -8332,7 +8346,9 @@ and discusses the @code{close()} built-in function.
descriptors.
* Close Files And Pipes:: Closing Input and Output Files and Pipes.
* Output Summary:: Output summary.
-* Output exercises:: Exercises.
+@ifclear FOR_PRINT
+* Output Exercises:: Exercises.
+@end ifclear
@end menu
@node Print
@@ -9743,7 +9759,8 @@ communications.
@end itemize
-@node Output exercises
+@ifclear FOR_PRINT
+@node Output Exercises
@section Exercises
@enumerate
@@ -9772,6 +9789,7 @@ BEGIN @{ print "Serious error detected!" > /dev/stderr @}
@end example
@end enumerate
+@end ifclear
@c ENDOFRANGE prnt
@@ -18195,7 +18213,7 @@ them, i.e., to tell @command{awk} what they should do.
@quotation
It's entirely fair to say that the @command{awk} syntax for local
-variable definitions is appallingly awful
+variable definitions is appallingly awful.
@author Brian Kernighan
@end quotation
@@ -19411,7 +19429,9 @@ comparisons use only lowercase letters.
* Group Functions:: Functions for getting group information.
* Walking Arrays:: A function to walk arrays of arrays.
* Library Functions Summary:: Summary of library functions.
-* Library exercises:: Exercises.
+@ifclear FOR_PRINT
+* Library Exercises:: Exercises.
+@end ifclear
@end menu
@node Library Names
@@ -21799,7 +21819,8 @@ A simple function to traverse an array of arrays to any depth.
@end itemize
-@node Library exercises
+@ifclear FOR_PRINT
+@node Library Exercises
@section Exercises
@enumerate
@@ -21865,6 +21886,7 @@ Test your new version by printing the array; you should end up with
output identical to that of the original version.
@end enumerate
+@end ifclear
@c ENDOFRANGE flib
@c ENDOFRANGE fudlib
@@ -21909,7 +21931,9 @@ Many of these programs use library functions presented in
* Clones:: Clones of common utilities.
* Miscellaneous Programs:: Some interesting @command{awk} programs.
* Programs Summary:: Summary of programs.
+@ifclear FOR_PRINT
* Programs Exercises:: Exercises.
+@end ifclear
@end menu
@node Running Examples
@@ -25345,6 +25369,7 @@ mailing labels, and finding anagrams.
@end itemize
+@ifclear FOR_PRINT
@node Programs Exercises
@section Exercises
@@ -25474,6 +25499,7 @@ Modify @file{anagram.awk} (@pxref{Anagram Program}), to avoid
the use of the external @command{sort} utility.
@end enumerate
+@end ifclear
@ifnotinfo
@part @value{PART3}Moving Beyond Standard @command{awk} With @command{gawk}
@@ -29876,7 +29902,9 @@ When @option{--sandbox} is specified, extensions are disabled
@code{gawk}.
* gawkextlib:: The @code{gawkextlib} project.
* Extension summary:: Extension summary.
+@ifclear FOR_PRINT
* Extension Exercises:: Exercises.
+@end ifclear
@end menu
@node Extension Intro
@@ -33813,6 +33841,7 @@ should be the place to do so.
@end itemize
+@ifclear FOR_PRINT
@node Extension Exercises
@section Exercises
@@ -33835,6 +33864,7 @@ Write a wrapper script that provides an interface similar to
@ref{Extension Sample Inplace}.
@end enumerate
+@end ifclear
@ifnotinfo
@part @value{PART4}Appendices