diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/gawk.info | 1122 | ||||
-rw-r--r-- | doc/gawk.texi | 44 | ||||
-rw-r--r-- | doc/gawktexi.in | 44 |
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 |