diff options
-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 681f3d86..38b66d50 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 73844d92..b1a3cbdb 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. @@ -4074,6 +4079,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. @@ -6014,7 +6020,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 @@ -7076,7 +7083,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 =========== @@ -7102,7 +7109,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 ============== @@ -13271,7 +13278,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 @@ -14261,7 +14268,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 ---------- @@ -16016,7 +16024,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 ============ @@ -16053,7 +16061,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 ============== @@ -16103,6 +16111,7 @@ Library Functions::. * Clones:: Clones of common utilities. * Miscellaneous Programs:: Some interesting `awk' programs. * Programs Summary:: Summary of programs. + * Programs Exercises:: Exercises. @@ -22328,6 +22337,7 @@ sample extensions are automatically built and installed when `gawk' is. `gawk'. * gawkextlib:: The `gawkextlib' project. * Extension summary:: Extension summary. + * Extension Exercises:: Exercises. @@ -34017,552 +34027,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-1128905 -Node: Other Arguments128930 -Node: Naming Standard Input131592 -Node: Environment Variables132685 -Node: AWKPATH Variable133243 -Ref: AWKPATH Variable-Footnote-1136109 -Ref: AWKPATH Variable-Footnote-2136154 -Node: AWKLIBPATH Variable136414 -Node: Other Environment Variables137173 -Node: Exit Status140625 -Node: Include Files141300 -Node: Loading Shared Libraries144878 -Node: Obsolete146262 -Node: Undocumented146959 -Node: Invoking Summary147226 -Node: Regexp148826 -Node: Regexp Usage150285 -Node: Escape Sequences152318 -Node: Regexp Operators158218 -Ref: Regexp Operators-Footnote-1165649 -Ref: Regexp Operators-Footnote-2165796 -Node: Bracket Expressions165894 -Ref: table-char-classes167916 -Node: GNU Regexp Operators170856 -Node: Case-sensitivity174565 -Ref: Case-sensitivity-Footnote-1177457 -Ref: Case-sensitivity-Footnote-2177692 -Node: Leftmost Longest177800 -Node: Computed Regexps179001 -Node: Regexp Summary182373 -Node: Reading Files183842 -Node: Records185934 -Node: awk split records186656 -Node: gawk split records191514 -Ref: gawk split records-Footnote-1196035 -Node: Fields196072 -Ref: Fields-Footnote-1199036 -Node: Nonconstant Fields199122 -Ref: Nonconstant Fields-Footnote-1201352 -Node: Changing Fields201554 -Node: Field Separators207508 -Node: Default Field Splitting210210 -Node: Regexp Field Splitting211327 -Node: Single Character Fields214654 -Node: Command Line Field Separator215713 -Node: Full Line Fields219139 -Ref: Full Line Fields-Footnote-1219647 -Node: Field Splitting Summary219693 -Ref: Field Splitting Summary-Footnote-1222825 -Node: Constant Size222926 -Node: Splitting By Content227532 -Ref: Splitting By Content-Footnote-1231605 -Node: Multiple Line231645 -Ref: Multiple Line-Footnote-1237501 -Node: Getline237680 -Node: Plain Getline239891 -Node: Getline/Variable241986 -Node: Getline/File243133 -Node: Getline/Variable/File244517 -Ref: Getline/Variable/File-Footnote-1246116 -Node: Getline/Pipe246203 -Node: Getline/Variable/Pipe248889 -Node: Getline/Coprocess249996 -Node: Getline/Variable/Coprocess251248 -Node: Getline Notes251985 -Node: Getline Summary254789 -Ref: table-getline-variants255197 -Node: Read Timeout256109 -Ref: Read Timeout-Footnote-1259936 -Node: Command-line directories259994 -Node: Input Summary260898 -Node: Input Exercises264035 -Node: Printing264768 -Node: Print266490 -Node: Print Examples267983 -Node: Output Separators270762 -Node: OFMT272778 -Node: Printf274136 -Node: Basic Printf275042 -Node: Control Letters276581 -Node: Format Modifiers280572 -Node: Printf Examples286599 -Node: Redirection289063 -Node: Special Files296035 -Node: Special FD296568 -Ref: Special FD-Footnote-1300165 -Node: Special Network300239 -Node: Special Caveats301089 -Node: Close Files And Pipes301885 -Ref: Close Files And Pipes-Footnote-1309046 -Ref: Close Files And Pipes-Footnote-2309194 -Node: Output Summary309344 -Node: Output exercises310341 -Node: Expressions311021 -Node: Values312206 -Node: Constants312882 -Node: Scalar Constants313562 -Ref: Scalar Constants-Footnote-1314421 -Node: Nondecimal-numbers314671 -Node: Regexp Constants317671 -Node: Using Constant Regexps318146 -Node: Variables321218 -Node: Using Variables321873 -Node: Assignment Options323597 -Node: Conversion325472 -Node: Strings And Numbers325996 -Ref: Strings And Numbers-Footnote-1329058 -Node: Locale influences conversions329167 -Ref: table-locale-affects331884 -Node: All Operators332472 -Node: Arithmetic Ops333102 -Node: Concatenation335607 -Ref: Concatenation-Footnote-1338426 -Node: Assignment Ops338532 -Ref: table-assign-ops343515 -Node: Increment Ops344818 -Node: Truth Values and Conditions348256 -Node: Truth Values349339 -Node: Typing and Comparison350388 -Node: Variable Typing351181 -Node: Comparison Operators354833 -Ref: table-relational-ops355243 -Node: POSIX String Comparison358793 -Ref: POSIX String Comparison-Footnote-1359877 -Node: Boolean Ops360015 -Ref: Boolean Ops-Footnote-1364090 -Node: Conditional Exp364181 -Node: Function Calls365908 -Node: Precedence369788 -Node: Locales373457 -Node: Expressions Summary375088 -Node: Patterns and Actions377629 -Node: Pattern Overview378745 -Node: Regexp Patterns380422 -Node: Expression Patterns380965 -Node: Ranges384745 -Node: BEGIN/END387851 -Node: Using BEGIN/END388613 -Ref: Using BEGIN/END-Footnote-1391349 -Node: I/O And BEGIN/END391455 -Node: BEGINFILE/ENDFILE393726 -Node: Empty396657 -Node: Using Shell Variables396974 -Node: Action Overview399257 -Node: Statements401584 -Node: If Statement403432 -Node: While Statement404930 -Node: Do Statement406974 -Node: For Statement408130 -Node: Switch Statement411282 -Node: Break Statement413670 -Node: Continue Statement415711 -Node: Next Statement417536 -Node: Nextfile Statement419926 -Node: Exit Statement422562 -Node: Built-in Variables424966 -Node: User-modified426093 -Ref: User-modified-Footnote-1433782 -Node: Auto-set433844 -Ref: Auto-set-Footnote-1446763 -Ref: Auto-set-Footnote-2446968 -Node: ARGC and ARGV447024 -Node: Pattern Action Summary450928 -Node: Arrays453151 -Node: Array Basics454700 -Node: Array Intro455526 -Ref: figure-array-elements457499 -Ref: Array Intro-Footnote-1460023 -Node: Reference to Elements460151 -Node: Assigning Elements462601 -Node: Array Example463092 -Node: Scanning an Array464824 -Node: Controlling Scanning467825 -Ref: Controlling Scanning-Footnote-1472998 -Node: Delete473314 -Ref: Delete-Footnote-1476065 -Node: Numeric Array Subscripts476122 -Node: Uninitialized Subscripts478305 -Node: Multidimensional479930 -Node: Multiscanning483043 -Node: Arrays of Arrays484632 -Node: Arrays Summary489295 -Node: Functions491400 -Node: Built-in492273 -Node: Calling Built-in493351 -Node: Numeric Functions495339 -Ref: Numeric Functions-Footnote-1500175 -Ref: Numeric Functions-Footnote-2500532 -Ref: Numeric Functions-Footnote-3500580 -Node: String Functions500849 -Ref: String Functions-Footnote-1523846 -Ref: String Functions-Footnote-2523975 -Ref: String Functions-Footnote-3524223 -Node: Gory Details524310 -Ref: table-sub-escapes526083 -Ref: table-sub-proposed527603 -Ref: table-posix-sub528967 -Ref: table-gensub-escapes530507 -Ref: Gory Details-Footnote-1531683 -Node: I/O Functions531834 -Ref: I/O Functions-Footnote-1538944 -Node: Time Functions539091 -Ref: Time Functions-Footnote-1549555 -Ref: Time Functions-Footnote-2549623 -Ref: Time Functions-Footnote-3549781 -Ref: Time Functions-Footnote-4549892 -Ref: Time Functions-Footnote-5550004 -Ref: Time Functions-Footnote-6550231 -Node: Bitwise Functions550497 -Ref: table-bitwise-ops551059 -Ref: Bitwise Functions-Footnote-1555304 -Node: Type Functions555488 -Node: I18N Functions556630 -Node: User-defined558275 -Node: Definition Syntax559079 -Ref: Definition Syntax-Footnote-1564390 -Node: Function Example564459 -Ref: Function Example-Footnote-1567099 -Node: Function Caveats567121 -Node: Calling A Function567639 -Node: Variable Scope568594 -Node: Pass By Value/Reference571582 -Node: Return Statement575092 -Node: Dynamic Typing578076 -Node: Indirect Calls579005 -Node: Functions Summary588718 -Node: Library Functions591257 -Ref: Library Functions-Footnote-1594875 -Ref: Library Functions-Footnote-2595018 -Node: Library Names595189 -Ref: Library Names-Footnote-1598662 -Ref: Library Names-Footnote-2598882 -Node: General Functions598968 -Node: Strtonum Function599996 -Node: Assert Function602776 -Node: Round Function606102 -Node: Cliff Random Function607643 -Node: Ordinal Functions608659 -Ref: Ordinal Functions-Footnote-1611724 -Ref: Ordinal Functions-Footnote-2611976 -Node: Join Function612187 -Ref: Join Function-Footnote-1613958 -Node: Getlocaltime Function614158 -Node: Readfile Function617894 -Node: Data File Management619733 -Node: Filetrans Function620365 -Node: Rewind Function624434 -Node: File Checking625992 -Ref: File Checking-Footnote-1627124 -Node: Empty Files627325 -Node: Ignoring Assigns629304 -Node: Getopt Function630858 -Ref: Getopt Function-Footnote-1642161 -Node: Passwd Functions642364 -Ref: Passwd Functions-Footnote-1651343 -Node: Group Functions651431 -Ref: Group Functions-Footnote-1659362 -Node: Walking Arrays659575 -Node: Library Functions Summary661178 -Node: Library exercises662566 -Node: Sample Programs663846 -Node: Running Examples664616 -Node: Clones665344 -Node: Cut Program666568 -Node: Egrep Program676426 -Ref: Egrep Program-Footnote-1684013 -Node: Id Program684123 -Node: Split Program687777 -Ref: Split Program-Footnote-1691315 -Node: Tee Program691443 -Node: Uniq Program694230 -Node: Wc Program701651 -Ref: Wc Program-Footnote-1705916 -Node: Miscellaneous Programs706008 -Node: Dupword Program707221 -Node: Alarm Program709252 -Node: Translate Program714056 -Ref: Translate Program-Footnote-1718447 -Ref: Translate Program-Footnote-2718717 -Node: Labels Program718851 -Ref: Labels Program-Footnote-1722212 -Node: Word Sorting722296 -Node: History Sorting726339 -Node: Extract Program728175 -Node: Simple Sed735711 -Node: Igawk Program738773 -Ref: Igawk Program-Footnote-1753077 -Ref: Igawk Program-Footnote-2753278 -Node: Anagram Program753416 -Node: Signature Program756484 -Node: Programs Summary757731 -Node: Programs Exercises758946 -Node: Advanced Features762597 -Node: Nondecimal Data764545 -Node: Array Sorting766122 -Node: Controlling Array Traversal766819 -Node: Array Sorting Functions775099 -Ref: Array Sorting Functions-Footnote-1779006 -Node: Two-way I/O779200 -Ref: Two-way I/O-Footnote-1784144 -Ref: Two-way I/O-Footnote-2784323 -Node: TCP/IP Networking784405 -Node: Profiling787250 -Node: Advanced Features Summary794801 -Node: Internationalization796665 -Node: I18N and L10N798145 -Node: Explaining gettext798831 -Ref: Explaining gettext-Footnote-1803857 -Ref: Explaining gettext-Footnote-2804041 -Node: Programmer i18n804206 -Ref: Programmer i18n-Footnote-1809000 -Node: Translator i18n809049 -Node: String Extraction809843 -Ref: String Extraction-Footnote-1810976 -Node: Printf Ordering811062 -Ref: Printf Ordering-Footnote-1813844 -Node: I18N Portability813908 -Ref: I18N Portability-Footnote-1816357 -Node: I18N Example816420 -Ref: I18N Example-Footnote-1819126 -Node: Gawk I18N819198 -Node: I18N Summary819836 -Node: Debugger821175 -Node: Debugging822197 -Node: Debugging Concepts822638 -Node: Debugging Terms824494 -Node: Awk Debugging827091 -Node: Sample Debugging Session827983 -Node: Debugger Invocation828503 -Node: Finding The Bug829836 -Node: List of Debugger Commands836318 -Node: Breakpoint Control837650 -Node: Debugger Execution Control841314 -Node: Viewing And Changing Data844674 -Node: Execution Stack848032 -Node: Debugger Info849545 -Node: Miscellaneous Debugger Commands853539 -Node: Readline Support858723 -Node: Limitations859615 -Node: Debugging Summary861889 -Node: Arbitrary Precision Arithmetic863057 -Node: Computer Arithmetic864544 -Ref: Computer Arithmetic-Footnote-1868931 -Node: Math Definitions868988 -Ref: table-ieee-formats872277 -Ref: Math Definitions-Footnote-1872817 -Node: MPFR features872920 -Node: FP Math Caution874537 -Ref: FP Math Caution-Footnote-1875587 -Node: Inexactness of computations875956 -Node: Inexact representation876904 -Node: Comparing FP Values878259 -Node: Errors accumulate879223 -Node: Getting Accuracy880656 -Node: Try To Round883315 -Node: Setting precision884214 -Ref: table-predefined-precision-strings884896 -Node: Setting the rounding mode886689 -Ref: table-gawk-rounding-modes887053 -Ref: Setting the rounding mode-Footnote-1890507 -Node: Arbitrary Precision Integers890686 -Ref: Arbitrary Precision Integers-Footnote-1894459 -Node: POSIX Floating Point Problems894608 -Ref: POSIX Floating Point Problems-Footnote-1898484 -Node: Floating point summary898522 -Node: Dynamic Extensions900726 -Node: Extension Intro902278 -Node: Plugin License903543 -Node: Extension Mechanism Outline904228 -Ref: figure-load-extension904652 -Ref: figure-load-new-function906137 -Ref: figure-call-new-function907139 -Node: Extension API Description909123 -Node: Extension API Functions Introduction910573 -Node: General Data Types915440 -Ref: General Data Types-Footnote-1921133 -Node: Requesting Values921432 -Ref: table-value-types-returned922169 -Node: Memory Allocation Functions923127 -Ref: Memory Allocation Functions-Footnote-1925874 -Node: Constructor Functions925970 -Node: Registration Functions927728 -Node: Extension Functions928413 -Node: Exit Callback Functions930715 -Node: Extension Version String931963 -Node: Input Parsers932613 -Node: Output Wrappers942427 -Node: Two-way processors946943 -Node: Printing Messages949147 -Ref: Printing Messages-Footnote-1950224 -Node: Updating `ERRNO'950376 -Node: Accessing Parameters951115 -Node: Symbol Table Access952345 -Node: Symbol table by name952859 -Node: Symbol table by cookie954835 -Ref: Symbol table by cookie-Footnote-1958968 -Node: Cached values959031 -Ref: Cached values-Footnote-1962535 -Node: Array Manipulation962626 -Ref: Array Manipulation-Footnote-1963724 -Node: Array Data Types963763 -Ref: Array Data Types-Footnote-1966466 -Node: Array Functions966558 -Node: Flattening Arrays970432 -Node: Creating Arrays977284 -Node: Extension API Variables982015 -Node: Extension Versioning982651 -Node: Extension API Informational Variables984552 -Node: Extension API Boilerplate985638 -Node: Finding Extensions989442 -Node: Extension Example990002 -Node: Internal File Description990732 -Node: Internal File Ops994823 -Ref: Internal File Ops-Footnote-11006255 -Node: Using Internal File Ops1006395 -Ref: Using Internal File Ops-Footnote-11008742 -Node: Extension Samples1009010 -Node: Extension Sample File Functions1010534 -Node: Extension Sample Fnmatch1018102 -Node: Extension Sample Fork1019584 -Node: Extension Sample Inplace1020797 -Node: Extension Sample Ord1022472 -Node: Extension Sample Readdir1023308 -Ref: table-readdir-file-types1024164 -Node: Extension Sample Revout1024963 -Node: Extension Sample Rev2way1025554 -Node: Extension Sample Read write array1026295 -Node: Extension Sample Readfile1028174 -Node: Extension Sample API Tests1029274 -Node: Extension Sample Time1029799 -Node: gawkextlib1031114 -Node: Extension summary1033927 -Node: Extension Exercises1037620 -Node: Language History1038342 -Node: V7/SVR3.11039985 -Node: SVR41042305 -Node: POSIX1043747 -Node: BTL1045133 -Node: POSIX/GNU1045867 -Node: Feature History1051583 -Node: Common Extensions1064674 -Node: Ranges and Locales1065986 -Ref: Ranges and Locales-Footnote-11070603 -Ref: Ranges and Locales-Footnote-21070630 -Ref: Ranges and Locales-Footnote-31070864 -Node: Contributors1071085 -Node: History summary1076510 -Node: Installation1077879 -Node: Gawk Distribution1078830 -Node: Getting1079314 -Node: Extracting1080138 -Node: Distribution contents1081780 -Node: Unix Installation1087550 -Node: Quick Installation1088167 -Node: Additional Configuration Options1090609 -Node: Configuration Philosophy1092347 -Node: Non-Unix Installation1094698 -Node: PC Installation1095156 -Node: PC Binary Installation1096467 -Node: PC Compiling1098315 -Ref: PC Compiling-Footnote-11101314 -Node: PC Testing1101419 -Node: PC Using1102595 -Node: Cygwin1106747 -Node: MSYS1107556 -Node: VMS Installation1108070 -Node: VMS Compilation1108866 -Ref: VMS Compilation-Footnote-11110088 -Node: VMS Dynamic Extensions1110146 -Node: VMS Installation Details1111519 -Node: VMS Running1113771 -Node: VMS GNV1116605 -Node: VMS Old Gawk1117328 -Node: Bugs1117798 -Node: Other Versions1121802 -Node: Installation summary1128029 -Node: Notes1129085 -Node: Compatibility Mode1129950 -Node: Additions1130732 -Node: Accessing The Source1131657 -Node: Adding Code1133093 -Node: New Ports1139271 -Node: Derived Files1143752 -Ref: Derived Files-Footnote-11148833 -Ref: Derived Files-Footnote-21148867 -Ref: Derived Files-Footnote-31149463 -Node: Future Extensions1149577 -Node: Implementation Limitations1150183 -Node: Extension Design1151431 -Node: Old Extension Problems1152585 -Ref: Old Extension Problems-Footnote-11154102 -Node: Extension New Mechanism Goals1154159 -Ref: Extension New Mechanism Goals-Footnote-11157519 -Node: Extension Other Design Decisions1157708 -Node: Extension Future Growth1159814 -Node: Old Extension Mechanism1160650 -Node: Notes summary1162412 -Node: Basic Concepts1163598 -Node: Basic High Level1164279 -Ref: figure-general-flow1164551 -Ref: figure-process-flow1165150 -Ref: Basic High Level-Footnote-11168379 -Node: Basic Data Typing1168564 -Node: Glossary1171892 -Node: Copying1197044 -Node: GNU Free Documentation License1234600 -Node: Index1259736 +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-1128910 +Node: Other Arguments128935 +Node: Naming Standard Input131597 +Node: Environment Variables132690 +Node: AWKPATH Variable133248 +Ref: AWKPATH Variable-Footnote-1136114 +Ref: AWKPATH Variable-Footnote-2136159 +Node: AWKLIBPATH Variable136419 +Node: Other Environment Variables137178 +Node: Exit Status140630 +Node: Include Files141305 +Node: Loading Shared Libraries144883 +Node: Obsolete146267 +Node: Undocumented146964 +Node: Invoking Summary147231 +Node: Regexp148831 +Node: Regexp Usage150290 +Node: Escape Sequences152323 +Node: Regexp Operators158223 +Ref: Regexp Operators-Footnote-1165654 +Ref: Regexp Operators-Footnote-2165801 +Node: Bracket Expressions165899 +Ref: table-char-classes167921 +Node: GNU Regexp Operators170861 +Node: Case-sensitivity174570 +Ref: Case-sensitivity-Footnote-1177462 +Ref: Case-sensitivity-Footnote-2177697 +Node: Leftmost Longest177805 +Node: Computed Regexps179006 +Node: Regexp Summary182378 +Node: Reading Files183847 +Node: Records185940 +Node: awk split records186662 +Node: gawk split records191520 +Ref: gawk split records-Footnote-1196041 +Node: Fields196078 +Ref: Fields-Footnote-1199042 +Node: Nonconstant Fields199128 +Ref: Nonconstant Fields-Footnote-1201358 +Node: Changing Fields201560 +Node: Field Separators207514 +Node: Default Field Splitting210216 +Node: Regexp Field Splitting211333 +Node: Single Character Fields214660 +Node: Command Line Field Separator215719 +Node: Full Line Fields219145 +Ref: Full Line Fields-Footnote-1219653 +Node: Field Splitting Summary219699 +Ref: Field Splitting Summary-Footnote-1222831 +Node: Constant Size222932 +Node: Splitting By Content227538 +Ref: Splitting By Content-Footnote-1231611 +Node: Multiple Line231651 +Ref: Multiple Line-Footnote-1237507 +Node: Getline237686 +Node: Plain Getline239897 +Node: Getline/Variable241992 +Node: Getline/File243139 +Node: Getline/Variable/File244523 +Ref: Getline/Variable/File-Footnote-1246122 +Node: Getline/Pipe246209 +Node: Getline/Variable/Pipe248895 +Node: Getline/Coprocess250002 +Node: Getline/Variable/Coprocess251254 +Node: Getline Notes251991 +Node: Getline Summary254795 +Ref: table-getline-variants255203 +Node: Read Timeout256115 +Ref: Read Timeout-Footnote-1259942 +Node: Command-line directories260000 +Node: Input Summary260904 +Node: Input Exercises264041 +Node: Printing264774 +Node: Print266497 +Node: Print Examples267990 +Node: Output Separators270769 +Node: OFMT272785 +Node: Printf274143 +Node: Basic Printf275049 +Node: Control Letters276588 +Node: Format Modifiers280579 +Node: Printf Examples286606 +Node: Redirection289070 +Node: Special Files296042 +Node: Special FD296575 +Ref: Special FD-Footnote-1300172 +Node: Special Network300246 +Node: Special Caveats301096 +Node: Close Files And Pipes301892 +Ref: Close Files And Pipes-Footnote-1309053 +Ref: Close Files And Pipes-Footnote-2309201 +Node: Output Summary309351 +Node: Output Exercises310348 +Node: Expressions311028 +Node: Values312213 +Node: Constants312889 +Node: Scalar Constants313569 +Ref: Scalar Constants-Footnote-1314428 +Node: Nondecimal-numbers314678 +Node: Regexp Constants317678 +Node: Using Constant Regexps318153 +Node: Variables321225 +Node: Using Variables321880 +Node: Assignment Options323604 +Node: Conversion325479 +Node: Strings And Numbers326003 +Ref: Strings And Numbers-Footnote-1329065 +Node: Locale influences conversions329174 +Ref: table-locale-affects331891 +Node: All Operators332479 +Node: Arithmetic Ops333109 +Node: Concatenation335614 +Ref: Concatenation-Footnote-1338433 +Node: Assignment Ops338539 +Ref: table-assign-ops343522 +Node: Increment Ops344825 +Node: Truth Values and Conditions348263 +Node: Truth Values349346 +Node: Typing and Comparison350395 +Node: Variable Typing351188 +Node: Comparison Operators354840 +Ref: table-relational-ops355250 +Node: POSIX String Comparison358800 +Ref: POSIX String Comparison-Footnote-1359884 +Node: Boolean Ops360022 +Ref: Boolean Ops-Footnote-1364097 +Node: Conditional Exp364188 +Node: Function Calls365915 +Node: Precedence369795 +Node: Locales373464 +Node: Expressions Summary375095 +Node: Patterns and Actions377636 +Node: Pattern Overview378752 +Node: Regexp Patterns380429 +Node: Expression Patterns380972 +Node: Ranges384752 +Node: BEGIN/END387858 +Node: Using BEGIN/END388620 +Ref: Using BEGIN/END-Footnote-1391356 +Node: I/O And BEGIN/END391462 +Node: BEGINFILE/ENDFILE393733 +Node: Empty396664 +Node: Using Shell Variables396981 +Node: Action Overview399264 +Node: Statements401591 +Node: If Statement403439 +Node: While Statement404937 +Node: Do Statement406981 +Node: For Statement408137 +Node: Switch Statement411289 +Node: Break Statement413677 +Node: Continue Statement415718 +Node: Next Statement417543 +Node: Nextfile Statement419933 +Node: Exit Statement422569 +Node: Built-in Variables424973 +Node: User-modified426100 +Ref: User-modified-Footnote-1433789 +Node: Auto-set433851 +Ref: Auto-set-Footnote-1446770 +Ref: Auto-set-Footnote-2446975 +Node: ARGC and ARGV447031 +Node: Pattern Action Summary450935 +Node: Arrays453158 +Node: Array Basics454707 +Node: Array Intro455533 +Ref: figure-array-elements457506 +Ref: Array Intro-Footnote-1460030 +Node: Reference to Elements460158 +Node: Assigning Elements462608 +Node: Array Example463099 +Node: Scanning an Array464831 +Node: Controlling Scanning467832 +Ref: Controlling Scanning-Footnote-1473005 +Node: Delete473321 +Ref: Delete-Footnote-1476072 +Node: Numeric Array Subscripts476129 +Node: Uninitialized Subscripts478312 +Node: Multidimensional479937 +Node: Multiscanning483050 +Node: Arrays of Arrays484639 +Node: Arrays Summary489302 +Node: Functions491407 +Node: Built-in492280 +Node: Calling Built-in493358 +Node: Numeric Functions495346 +Ref: Numeric Functions-Footnote-1500182 +Ref: Numeric Functions-Footnote-2500539 +Ref: Numeric Functions-Footnote-3500587 +Node: String Functions500856 +Ref: String Functions-Footnote-1523853 +Ref: String Functions-Footnote-2523982 +Ref: String Functions-Footnote-3524230 +Node: Gory Details524317 +Ref: table-sub-escapes526090 +Ref: table-sub-proposed527610 +Ref: table-posix-sub528974 +Ref: table-gensub-escapes530514 +Ref: Gory Details-Footnote-1531690 +Node: I/O Functions531841 +Ref: I/O Functions-Footnote-1538951 +Node: Time Functions539098 +Ref: Time Functions-Footnote-1549562 +Ref: Time Functions-Footnote-2549630 +Ref: Time Functions-Footnote-3549788 +Ref: Time Functions-Footnote-4549899 +Ref: Time Functions-Footnote-5550011 +Ref: Time Functions-Footnote-6550238 +Node: Bitwise Functions550504 +Ref: table-bitwise-ops551066 +Ref: Bitwise Functions-Footnote-1555311 +Node: Type Functions555495 +Node: I18N Functions556637 +Node: User-defined558282 +Node: Definition Syntax559086 +Ref: Definition Syntax-Footnote-1564399 +Node: Function Example564468 +Ref: Function Example-Footnote-1567108 +Node: Function Caveats567130 +Node: Calling A Function567648 +Node: Variable Scope568603 +Node: Pass By Value/Reference571591 +Node: Return Statement575101 +Node: Dynamic Typing578085 +Node: Indirect Calls579014 +Node: Functions Summary588727 +Node: Library Functions591266 +Ref: Library Functions-Footnote-1594885 +Ref: Library Functions-Footnote-2595028 +Node: Library Names595199 +Ref: Library Names-Footnote-1598672 +Ref: Library Names-Footnote-2598892 +Node: General Functions598978 +Node: Strtonum Function600006 +Node: Assert Function602786 +Node: Round Function606112 +Node: Cliff Random Function607653 +Node: Ordinal Functions608669 +Ref: Ordinal Functions-Footnote-1611734 +Ref: Ordinal Functions-Footnote-2611986 +Node: Join Function612197 +Ref: Join Function-Footnote-1613968 +Node: Getlocaltime Function614168 +Node: Readfile Function617904 +Node: Data File Management619743 +Node: Filetrans Function620375 +Node: Rewind Function624444 +Node: File Checking626002 +Ref: File Checking-Footnote-1627134 +Node: Empty Files627335 +Node: Ignoring Assigns629314 +Node: Getopt Function630868 +Ref: Getopt Function-Footnote-1642171 +Node: Passwd Functions642374 +Ref: Passwd Functions-Footnote-1651353 +Node: Group Functions651441 +Ref: Group Functions-Footnote-1659372 +Node: Walking Arrays659585 +Node: Library Functions Summary661188 +Node: Library Exercises662576 +Node: Sample Programs663856 +Node: Running Examples664627 +Node: Clones665355 +Node: Cut Program666579 +Node: Egrep Program676437 +Ref: Egrep Program-Footnote-1684024 +Node: Id Program684134 +Node: Split Program687788 +Ref: Split Program-Footnote-1691326 +Node: Tee Program691454 +Node: Uniq Program694241 +Node: Wc Program701662 +Ref: Wc Program-Footnote-1705927 +Node: Miscellaneous Programs706019 +Node: Dupword Program707232 +Node: Alarm Program709263 +Node: Translate Program714067 +Ref: Translate Program-Footnote-1718458 +Ref: Translate Program-Footnote-2718728 +Node: Labels Program718862 +Ref: Labels Program-Footnote-1722223 +Node: Word Sorting722307 +Node: History Sorting726350 +Node: Extract Program728186 +Node: Simple Sed735722 +Node: Igawk Program738784 +Ref: Igawk Program-Footnote-1753088 +Ref: Igawk Program-Footnote-2753289 +Node: Anagram Program753427 +Node: Signature Program756495 +Node: Programs Summary757742 +Node: Programs Exercises758957 +Node: Advanced Features762608 +Node: Nondecimal Data764556 +Node: Array Sorting766133 +Node: Controlling Array Traversal766830 +Node: Array Sorting Functions775110 +Ref: Array Sorting Functions-Footnote-1779017 +Node: Two-way I/O779211 +Ref: Two-way I/O-Footnote-1784155 +Ref: Two-way I/O-Footnote-2784334 +Node: TCP/IP Networking784416 +Node: Profiling787261 +Node: Advanced Features Summary794812 +Node: Internationalization796676 +Node: I18N and L10N798156 +Node: Explaining gettext798842 +Ref: Explaining gettext-Footnote-1803868 +Ref: Explaining gettext-Footnote-2804052 +Node: Programmer i18n804217 +Ref: Programmer i18n-Footnote-1809011 +Node: Translator i18n809060 +Node: String Extraction809854 +Ref: String Extraction-Footnote-1810987 +Node: Printf Ordering811073 +Ref: Printf Ordering-Footnote-1813855 +Node: I18N Portability813919 +Ref: I18N Portability-Footnote-1816368 +Node: I18N Example816431 +Ref: I18N Example-Footnote-1819137 +Node: Gawk I18N819209 +Node: I18N Summary819847 +Node: Debugger821186 +Node: Debugging822208 +Node: Debugging Concepts822649 +Node: Debugging Terms824505 +Node: Awk Debugging827102 +Node: Sample Debugging Session827994 +Node: Debugger Invocation828514 +Node: Finding The Bug829847 +Node: List of Debugger Commands836329 +Node: Breakpoint Control837661 +Node: Debugger Execution Control841325 +Node: Viewing And Changing Data844685 +Node: Execution Stack848043 +Node: Debugger Info849556 +Node: Miscellaneous Debugger Commands853550 +Node: Readline Support858734 +Node: Limitations859626 +Node: Debugging Summary861900 +Node: Arbitrary Precision Arithmetic863068 +Node: Computer Arithmetic864555 +Ref: Computer Arithmetic-Footnote-1868942 +Node: Math Definitions868999 +Ref: table-ieee-formats872288 +Ref: Math Definitions-Footnote-1872828 +Node: MPFR features872931 +Node: FP Math Caution874548 +Ref: FP Math Caution-Footnote-1875598 +Node: Inexactness of computations875967 +Node: Inexact representation876915 +Node: Comparing FP Values878270 +Node: Errors accumulate879234 +Node: Getting Accuracy880667 +Node: Try To Round883326 +Node: Setting precision884225 +Ref: table-predefined-precision-strings884907 +Node: Setting the rounding mode886700 +Ref: table-gawk-rounding-modes887064 +Ref: Setting the rounding mode-Footnote-1890518 +Node: Arbitrary Precision Integers890697 +Ref: Arbitrary Precision Integers-Footnote-1894470 +Node: POSIX Floating Point Problems894619 +Ref: POSIX Floating Point Problems-Footnote-1898495 +Node: Floating point summary898533 +Node: Dynamic Extensions900737 +Node: Extension Intro902290 +Node: Plugin License903555 +Node: Extension Mechanism Outline904240 +Ref: figure-load-extension904664 +Ref: figure-load-new-function906149 +Ref: figure-call-new-function907151 +Node: Extension API Description909135 +Node: Extension API Functions Introduction910585 +Node: General Data Types915452 +Ref: General Data Types-Footnote-1921145 +Node: Requesting Values921444 +Ref: table-value-types-returned922181 +Node: Memory Allocation Functions923139 +Ref: Memory Allocation Functions-Footnote-1925886 +Node: Constructor Functions925982 +Node: Registration Functions927740 +Node: Extension Functions928425 +Node: Exit Callback Functions930727 +Node: Extension Version String931975 +Node: Input Parsers932625 +Node: Output Wrappers942439 +Node: Two-way processors946955 +Node: Printing Messages949159 +Ref: Printing Messages-Footnote-1950236 +Node: Updating `ERRNO'950388 +Node: Accessing Parameters951127 +Node: Symbol Table Access952357 +Node: Symbol table by name952871 +Node: Symbol table by cookie954847 +Ref: Symbol table by cookie-Footnote-1958980 +Node: Cached values959043 +Ref: Cached values-Footnote-1962547 +Node: Array Manipulation962638 +Ref: Array Manipulation-Footnote-1963736 +Node: Array Data Types963775 +Ref: Array Data Types-Footnote-1966478 +Node: Array Functions966570 +Node: Flattening Arrays970444 +Node: Creating Arrays977296 +Node: Extension API Variables982027 +Node: Extension Versioning982663 +Node: Extension API Informational Variables984564 +Node: Extension API Boilerplate985650 +Node: Finding Extensions989454 +Node: Extension Example990014 +Node: Internal File Description990744 +Node: Internal File Ops994835 +Ref: Internal File Ops-Footnote-11006267 +Node: Using Internal File Ops1006407 +Ref: Using Internal File Ops-Footnote-11008754 +Node: Extension Samples1009022 +Node: Extension Sample File Functions1010546 +Node: Extension Sample Fnmatch1018114 +Node: Extension Sample Fork1019596 +Node: Extension Sample Inplace1020809 +Node: Extension Sample Ord1022484 +Node: Extension Sample Readdir1023320 +Ref: table-readdir-file-types1024176 +Node: Extension Sample Revout1024975 +Node: Extension Sample Rev2way1025566 +Node: Extension Sample Read write array1026307 +Node: Extension Sample Readfile1028186 +Node: Extension Sample API Tests1029286 +Node: Extension Sample Time1029811 +Node: gawkextlib1031126 +Node: Extension summary1033939 +Node: Extension Exercises1037632 +Node: Language History1038354 +Node: V7/SVR3.11039997 +Node: SVR41042317 +Node: POSIX1043759 +Node: BTL1045145 +Node: POSIX/GNU1045879 +Node: Feature History1051595 +Node: Common Extensions1064686 +Node: Ranges and Locales1065998 +Ref: Ranges and Locales-Footnote-11070615 +Ref: Ranges and Locales-Footnote-21070642 +Ref: Ranges and Locales-Footnote-31070876 +Node: Contributors1071097 +Node: History summary1076522 +Node: Installation1077891 +Node: Gawk Distribution1078842 +Node: Getting1079326 +Node: Extracting1080150 +Node: Distribution contents1081792 +Node: Unix Installation1087562 +Node: Quick Installation1088179 +Node: Additional Configuration Options1090621 +Node: Configuration Philosophy1092359 +Node: Non-Unix Installation1094710 +Node: PC Installation1095168 +Node: PC Binary Installation1096479 +Node: PC Compiling1098327 +Ref: PC Compiling-Footnote-11101326 +Node: PC Testing1101431 +Node: PC Using1102607 +Node: Cygwin1106759 +Node: MSYS1107568 +Node: VMS Installation1108082 +Node: VMS Compilation1108878 +Ref: VMS Compilation-Footnote-11110100 +Node: VMS Dynamic Extensions1110158 +Node: VMS Installation Details1111531 +Node: VMS Running1113783 +Node: VMS GNV1116617 +Node: VMS Old Gawk1117340 +Node: Bugs1117810 +Node: Other Versions1121814 +Node: Installation summary1128041 +Node: Notes1129097 +Node: Compatibility Mode1129962 +Node: Additions1130744 +Node: Accessing The Source1131669 +Node: Adding Code1133105 +Node: New Ports1139283 +Node: Derived Files1143764 +Ref: Derived Files-Footnote-11148845 +Ref: Derived Files-Footnote-21148879 +Ref: Derived Files-Footnote-31149475 +Node: Future Extensions1149589 +Node: Implementation Limitations1150195 +Node: Extension Design1151443 +Node: Old Extension Problems1152597 +Ref: Old Extension Problems-Footnote-11154114 +Node: Extension New Mechanism Goals1154171 +Ref: Extension New Mechanism Goals-Footnote-11157531 +Node: Extension Other Design Decisions1157720 +Node: Extension Future Growth1159826 +Node: Old Extension Mechanism1160662 +Node: Notes summary1162424 +Node: Basic Concepts1163610 +Node: Basic High Level1164291 +Ref: figure-general-flow1164563 +Ref: figure-process-flow1165162 +Ref: Basic High Level-Footnote-11168391 +Node: Basic Data Typing1168576 +Node: Glossary1171904 +Node: Copying1197056 +Node: GNU Free Documentation License1234612 +Node: Index1259748 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 6182c4c0..1106679a 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 @@ -6118,7 +6128,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 @@ -8664,6 +8676,7 @@ Directories on the command line are fatal for standard @command{awk}; @end itemize +@ifclear FOR_PRINT @node Input Exercises @section Exercises @@ -8683,6 +8696,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 @@ -8724,7 +8738,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 @@ -10235,7 +10251,8 @@ communications. @end itemize -@node Output exercises +@ifclear FOR_PRINT +@node Output Exercises @section Exercises @enumerate @@ -10264,6 +10281,7 @@ BEGIN @{ print "Serious error detected!" > /dev/stderr @} @end example @end enumerate +@end ifclear @c ENDOFRANGE prnt @@ -19087,7 +19105,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 @@ -20303,7 +20321,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 @@ -22720,7 +22740,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 @@ -22786,6 +22807,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 @@ -22830,7 +22852,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 @@ -26266,6 +26290,7 @@ mailing labels, and finding anagrams. @end itemize +@ifclear FOR_PRINT @node Programs Exercises @section Exercises @@ -26395,6 +26420,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} @@ -30836,7 +30862,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 @@ -34773,6 +34801,7 @@ should be the place to do so. @end itemize +@ifclear FOR_PRINT @node Extension Exercises @section Exercises @@ -34795,6 +34824,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 9534a557..bc547917 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 @@ -5902,7 +5912,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 @@ -8266,6 +8278,7 @@ Directories on the command line are fatal for standard @command{awk}; @end itemize +@ifclear FOR_PRINT @node Input Exercises @section Exercises @@ -8285,6 +8298,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 @@ -8326,7 +8340,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 @@ -9737,7 +9753,8 @@ communications. @end itemize -@node Output exercises +@ifclear FOR_PRINT +@node Output Exercises @section Exercises @enumerate @@ -9766,6 +9783,7 @@ BEGIN @{ print "Serious error detected!" > /dev/stderr @} @end example @end enumerate +@end ifclear @c ENDOFRANGE prnt @@ -18214,7 +18232,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 @@ -19430,7 +19448,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 @@ -21818,7 +21838,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 @@ -21884,6 +21905,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 @@ -21928,7 +21950,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 @@ -25364,6 +25388,7 @@ mailing labels, and finding anagrams. @end itemize +@ifclear FOR_PRINT @node Programs Exercises @section Exercises @@ -25493,6 +25518,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} @@ -29934,7 +29960,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 @@ -33871,6 +33899,7 @@ should be the place to do so. @end itemize +@ifclear FOR_PRINT @node Extension Exercises @section Exercises @@ -33893,6 +33922,7 @@ Write a wrapper script that provides an interface similar to @ref{Extension Sample Inplace}. @end enumerate +@end ifclear @ifnotinfo @part @value{PART4}Appendices |