diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ChangeLog | 8 | ||||
-rw-r--r-- | doc/gawk.info | 1111 | ||||
-rw-r--r-- | doc/gawk.texi | 5 | ||||
-rw-r--r-- | doc/gawktexi.in | 5 | ||||
-rw-r--r-- | doc/texinfo.tex | 123 |
5 files changed, 650 insertions, 602 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index cf320744..e6b14381 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,11 @@ +2014-12-24 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in: Add one more paragraph to new foreword. + * gawktexi.in: Fix exponentiation in TeX mode. Thanks to + Marco Curreli by way of Antonio Giovanni. + + * texinfo.tex: Updated. + 2014-12-12 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Minor fix. diff --git a/doc/gawk.info b/doc/gawk.info index 8e5e6b29..37494e64 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -798,6 +798,9 @@ module loads the C/C++ module as a dynamic plug-in. *note Dynamic Extensions::, has all the details, and as expected, many examples to help you learn the ins and outs. + I enjoy programming in AWK and had fun (re)reading this book. I +think you will too. + Michael Brennan Author of `mawk' October 2014 @@ -31999,7 +32002,7 @@ Index * Brennan, Michael <2>: Simple Sed. (line 25) * Brennan, Michael <3>: Delete. (line 56) * Brennan, Michael <4>: Acknowledgments. (line 78) -* Brennan, Michael <5>: Foreword4. (line 30) +* Brennan, Michael <5>: Foreword4. (line 33) * Brennan, Michael: Foreword3. (line 84) * Brian Kernighan's awk <1>: I/O Functions. (line 43) * Brian Kernighan's awk <2>: Gory Details. (line 19) @@ -34452,558 +34455,558 @@ Tag Table: Node: Top1204 Node: Foreword342225 Node: Foreword446667 -Node: Preface48100 -Ref: Preface-Footnote-150971 -Ref: Preface-Footnote-251078 -Ref: Preface-Footnote-351311 -Node: History51453 -Node: Names53799 -Ref: Names-Footnote-154893 -Node: This Manual55039 -Ref: This Manual-Footnote-161526 -Node: Conventions61626 -Node: Manual History63964 -Ref: Manual History-Footnote-166946 -Ref: Manual History-Footnote-266987 -Node: How To Contribute67061 -Node: Acknowledgments68190 -Node: Getting Started72995 -Node: Running gawk75428 -Node: One-shot76618 -Node: Read Terminal77866 -Node: Long79893 -Node: Executable Scripts81409 -Ref: Executable Scripts-Footnote-184198 -Node: Comments84301 -Node: Quoting86783 -Node: DOS Quoting92307 -Node: Sample Data Files92982 -Node: Very Simple95577 -Node: Two Rules100475 -Node: More Complex102361 -Node: Statements/Lines105223 -Ref: Statements/Lines-Footnote-1109678 -Node: Other Features109943 -Node: When110874 -Ref: When-Footnote-1112628 -Node: Intro Summary112693 -Node: Invoking Gawk113576 -Node: Command Line115090 -Node: Options115888 -Ref: Options-Footnote-1131692 -Ref: Options-Footnote-2131921 -Node: Other Arguments131946 -Node: Naming Standard Input134894 -Node: Environment Variables135987 -Node: AWKPATH Variable136545 -Ref: AWKPATH Variable-Footnote-1139958 -Ref: AWKPATH Variable-Footnote-2140003 -Node: AWKLIBPATH Variable140263 -Node: Other Environment Variables141519 -Node: Exit Status145007 -Node: Include Files145683 -Node: Loading Shared Libraries149280 -Node: Obsolete150707 -Node: Undocumented151404 -Node: Invoking Summary151671 -Node: Regexp153335 -Node: Regexp Usage154789 -Node: Escape Sequences156826 -Node: Regexp Operators163067 -Ref: Regexp Operators-Footnote-1170493 -Ref: Regexp Operators-Footnote-2170640 -Node: Bracket Expressions170738 -Ref: table-char-classes172753 -Node: Leftmost Longest175677 -Node: Computed Regexps176979 -Node: GNU Regexp Operators180376 -Node: Case-sensitivity184049 -Ref: Case-sensitivity-Footnote-1186934 -Ref: Case-sensitivity-Footnote-2187169 -Node: Regexp Summary187277 -Node: Reading Files188744 -Node: Records190838 -Node: awk split records191571 -Node: gawk split records196486 -Ref: gawk split records-Footnote-1201030 -Node: Fields201067 -Ref: Fields-Footnote-1203843 -Node: Nonconstant Fields203929 -Ref: Nonconstant Fields-Footnote-1206172 -Node: Changing Fields206376 -Node: Field Separators212305 -Node: Default Field Splitting215010 -Node: Regexp Field Splitting216127 -Node: Single Character Fields219477 -Node: Command Line Field Separator220536 -Node: Full Line Fields223748 -Ref: Full Line Fields-Footnote-1225265 -Ref: Full Line Fields-Footnote-2225311 -Node: Field Splitting Summary225412 -Node: Constant Size227486 -Node: Splitting By Content232075 -Ref: Splitting By Content-Footnote-1236069 -Node: Multiple Line236232 -Ref: Multiple Line-Footnote-1242118 -Node: Getline242297 -Node: Plain Getline244509 -Node: Getline/Variable247149 -Node: Getline/File248297 -Node: Getline/Variable/File249681 -Ref: Getline/Variable/File-Footnote-1251284 -Node: Getline/Pipe251371 -Node: Getline/Variable/Pipe254054 -Node: Getline/Coprocess255185 -Node: Getline/Variable/Coprocess256437 -Node: Getline Notes257176 -Node: Getline Summary259968 -Ref: table-getline-variants260380 -Node: Read Timeout261209 -Ref: Read Timeout-Footnote-1265034 -Node: Command-line directories265092 -Node: Input Summary265997 -Node: Input Exercises269298 -Node: Printing270026 -Node: Print271803 -Node: Print Examples273260 -Node: Output Separators276039 -Node: OFMT278057 -Node: Printf279411 -Node: Basic Printf280196 -Node: Control Letters281766 -Node: Format Modifiers285749 -Node: Printf Examples291758 -Node: Redirection294244 -Node: Special FD301085 -Ref: Special FD-Footnote-1304245 -Node: Special Files304319 -Node: Other Inherited Files304936 -Node: Special Network305936 -Node: Special Caveats306798 -Node: Close Files And Pipes307749 -Ref: Close Files And Pipes-Footnote-1314931 -Ref: Close Files And Pipes-Footnote-2315079 -Node: Output Summary315229 -Node: Output Exercises316227 -Node: Expressions316907 -Node: Values318092 -Node: Constants318770 -Node: Scalar Constants319461 -Ref: Scalar Constants-Footnote-1320320 -Node: Nondecimal-numbers320570 -Node: Regexp Constants323588 -Node: Using Constant Regexps324113 -Node: Variables327256 -Node: Using Variables327911 -Node: Assignment Options329822 -Node: Conversion331697 -Node: Strings And Numbers332221 -Ref: Strings And Numbers-Footnote-1335286 -Node: Locale influences conversions335395 -Ref: table-locale-affects338142 -Node: All Operators338730 -Node: Arithmetic Ops339360 -Node: Concatenation341865 -Ref: Concatenation-Footnote-1344684 -Node: Assignment Ops344790 -Ref: table-assign-ops349769 -Node: Increment Ops351041 -Node: Truth Values and Conditions354479 -Node: Truth Values355564 -Node: Typing and Comparison356613 -Node: Variable Typing357423 -Node: Comparison Operators361076 -Ref: table-relational-ops361486 -Node: POSIX String Comparison364981 -Ref: POSIX String Comparison-Footnote-1366053 -Node: Boolean Ops366191 -Ref: Boolean Ops-Footnote-1370670 -Node: Conditional Exp370761 -Node: Function Calls372488 -Node: Precedence376368 -Node: Locales380029 -Node: Expressions Summary381661 -Node: Patterns and Actions384221 -Node: Pattern Overview385341 -Node: Regexp Patterns387020 -Node: Expression Patterns387563 -Node: Ranges391273 -Node: BEGIN/END394379 -Node: Using BEGIN/END395140 -Ref: Using BEGIN/END-Footnote-1397874 -Node: I/O And BEGIN/END397980 -Node: BEGINFILE/ENDFILE400294 -Node: Empty403195 -Node: Using Shell Variables403512 -Node: Action Overview405785 -Node: Statements408111 -Node: If Statement409959 -Node: While Statement411454 -Node: Do Statement413483 -Node: For Statement414627 -Node: Switch Statement417784 -Node: Break Statement420166 -Node: Continue Statement422207 -Node: Next Statement424034 -Node: Nextfile Statement426415 -Node: Exit Statement429045 -Node: Built-in Variables431448 -Node: User-modified432581 -Ref: User-modified-Footnote-1440262 -Node: Auto-set440324 -Ref: Auto-set-Footnote-1454016 -Ref: Auto-set-Footnote-2454221 -Node: ARGC and ARGV454277 -Node: Pattern Action Summary458495 -Node: Arrays460922 -Node: Array Basics462251 -Node: Array Intro463095 -Ref: figure-array-elements465059 -Ref: Array Intro-Footnote-1467585 -Node: Reference to Elements467713 -Node: Assigning Elements470165 -Node: Array Example470656 -Node: Scanning an Array472414 -Node: Controlling Scanning475430 -Ref: Controlling Scanning-Footnote-1480626 -Node: Numeric Array Subscripts480942 -Node: Uninitialized Subscripts483127 -Node: Delete484744 -Ref: Delete-Footnote-1487487 -Node: Multidimensional487544 -Node: Multiscanning490641 -Node: Arrays of Arrays492230 -Node: Arrays Summary496989 -Node: Functions499081 -Node: Built-in499980 -Node: Calling Built-in501058 -Node: Numeric Functions503049 -Ref: Numeric Functions-Footnote-1507868 -Ref: Numeric Functions-Footnote-2508225 -Ref: Numeric Functions-Footnote-3508273 -Node: String Functions508545 -Ref: String Functions-Footnote-1532020 -Ref: String Functions-Footnote-2532149 -Ref: String Functions-Footnote-3532397 -Node: Gory Details532484 -Ref: table-sub-escapes534265 -Ref: table-sub-proposed535785 -Ref: table-posix-sub537149 -Ref: table-gensub-escapes538685 -Ref: Gory Details-Footnote-1539517 -Node: I/O Functions539668 -Ref: I/O Functions-Footnote-1546886 -Node: Time Functions547033 -Ref: Time Functions-Footnote-1557521 -Ref: Time Functions-Footnote-2557589 -Ref: Time Functions-Footnote-3557747 -Ref: Time Functions-Footnote-4557858 -Ref: Time Functions-Footnote-5557970 -Ref: Time Functions-Footnote-6558197 -Node: Bitwise Functions558463 -Ref: table-bitwise-ops559025 -Ref: Bitwise Functions-Footnote-1563334 -Node: Type Functions563503 -Node: I18N Functions564654 -Node: User-defined566299 -Node: Definition Syntax567104 -Ref: Definition Syntax-Footnote-1572511 -Node: Function Example572582 -Ref: Function Example-Footnote-1575501 -Node: Function Caveats575523 -Node: Calling A Function576041 -Node: Variable Scope576999 -Node: Pass By Value/Reference579987 -Node: Return Statement583482 -Node: Dynamic Typing586463 -Node: Indirect Calls587392 -Ref: Indirect Calls-Footnote-1598694 -Node: Functions Summary598822 -Node: Library Functions601524 -Ref: Library Functions-Footnote-1605133 -Ref: Library Functions-Footnote-2605276 -Node: Library Names605447 -Ref: Library Names-Footnote-1608901 -Ref: Library Names-Footnote-2609124 -Node: General Functions609210 -Node: Strtonum Function610313 -Node: Assert Function613335 -Node: Round Function616659 -Node: Cliff Random Function618200 -Node: Ordinal Functions619216 -Ref: Ordinal Functions-Footnote-1622279 -Ref: Ordinal Functions-Footnote-2622531 -Node: Join Function622742 -Ref: Join Function-Footnote-1624511 -Node: Getlocaltime Function624711 -Node: Readfile Function628455 -Node: Shell Quoting630425 -Node: Data File Management631826 -Node: Filetrans Function632458 -Node: Rewind Function636514 -Node: File Checking637901 -Ref: File Checking-Footnote-1639233 -Node: Empty Files639434 -Node: Ignoring Assigns641413 -Node: Getopt Function642964 -Ref: Getopt Function-Footnote-1654426 -Node: Passwd Functions654626 -Ref: Passwd Functions-Footnote-1663463 -Node: Group Functions663551 -Ref: Group Functions-Footnote-1671445 -Node: Walking Arrays671658 -Node: Library Functions Summary673261 -Node: Library Exercises674662 -Node: Sample Programs675942 -Node: Running Examples676712 -Node: Clones677440 -Node: Cut Program678664 -Node: Egrep Program688383 -Ref: Egrep Program-Footnote-1695881 -Node: Id Program695991 -Node: Split Program699636 -Ref: Split Program-Footnote-1703084 -Node: Tee Program703212 -Node: Uniq Program706001 -Node: Wc Program713420 -Ref: Wc Program-Footnote-1717670 -Node: Miscellaneous Programs717764 -Node: Dupword Program718977 -Node: Alarm Program721008 -Node: Translate Program725812 -Ref: Translate Program-Footnote-1730377 -Node: Labels Program730647 -Ref: Labels Program-Footnote-1733998 -Node: Word Sorting734082 -Node: History Sorting738153 -Node: Extract Program739989 -Node: Simple Sed747514 -Node: Igawk Program750582 -Ref: Igawk Program-Footnote-1764906 -Ref: Igawk Program-Footnote-2765107 -Ref: Igawk Program-Footnote-3765229 -Node: Anagram Program765344 -Node: Signature Program768401 -Node: Programs Summary769648 -Node: Programs Exercises770841 -Ref: Programs Exercises-Footnote-1774972 -Node: Advanced Features775063 -Node: Nondecimal Data777011 -Node: Array Sorting778601 -Node: Controlling Array Traversal779298 -Ref: Controlling Array Traversal-Footnote-1787631 -Node: Array Sorting Functions787749 -Ref: Array Sorting Functions-Footnote-1791638 -Node: Two-way I/O791834 -Ref: Two-way I/O-Footnote-1796779 -Ref: Two-way I/O-Footnote-2796965 -Node: TCP/IP Networking797047 -Node: Profiling799920 -Node: Advanced Features Summary808197 -Node: Internationalization810130 -Node: I18N and L10N811610 -Node: Explaining gettext812296 -Ref: Explaining gettext-Footnote-1817321 -Ref: Explaining gettext-Footnote-2817505 -Node: Programmer i18n817670 -Ref: Programmer i18n-Footnote-1822536 -Node: Translator i18n822585 -Node: String Extraction823379 -Ref: String Extraction-Footnote-1824510 -Node: Printf Ordering824596 -Ref: Printf Ordering-Footnote-1827382 -Node: I18N Portability827446 -Ref: I18N Portability-Footnote-1829901 -Node: I18N Example829964 -Ref: I18N Example-Footnote-1832767 -Node: Gawk I18N832839 -Node: I18N Summary833477 -Node: Debugger834816 -Node: Debugging835838 -Node: Debugging Concepts836279 -Node: Debugging Terms838132 -Node: Awk Debugging840704 -Node: Sample Debugging Session841598 -Node: Debugger Invocation842118 -Node: Finding The Bug843502 -Node: List of Debugger Commands849977 -Node: Breakpoint Control851310 -Node: Debugger Execution Control855006 -Node: Viewing And Changing Data858370 -Node: Execution Stack861748 -Node: Debugger Info863385 -Node: Miscellaneous Debugger Commands867402 -Node: Readline Support872431 -Node: Limitations873323 -Node: Debugging Summary875437 -Node: Arbitrary Precision Arithmetic876605 -Node: Computer Arithmetic878021 -Ref: table-numeric-ranges881619 -Ref: Computer Arithmetic-Footnote-1882478 -Node: Math Definitions882535 -Ref: table-ieee-formats885823 -Ref: Math Definitions-Footnote-1886427 -Node: MPFR features886532 -Node: FP Math Caution888203 -Ref: FP Math Caution-Footnote-1889253 -Node: Inexactness of computations889622 -Node: Inexact representation890581 -Node: Comparing FP Values891938 -Node: Errors accumulate893020 -Node: Getting Accuracy894453 -Node: Try To Round897115 -Node: Setting precision898014 -Ref: table-predefined-precision-strings898698 -Node: Setting the rounding mode900487 -Ref: table-gawk-rounding-modes900851 -Ref: Setting the rounding mode-Footnote-1904306 -Node: Arbitrary Precision Integers904485 -Ref: Arbitrary Precision Integers-Footnote-1909384 -Node: POSIX Floating Point Problems909533 -Ref: POSIX Floating Point Problems-Footnote-1913406 -Node: Floating point summary913444 -Node: Dynamic Extensions915638 -Node: Extension Intro917190 -Node: Plugin License918456 -Node: Extension Mechanism Outline919253 -Ref: figure-load-extension919681 -Ref: figure-register-new-function921161 -Ref: figure-call-new-function922165 -Node: Extension API Description924151 -Node: Extension API Functions Introduction925601 -Node: General Data Types930425 -Ref: General Data Types-Footnote-1936164 -Node: Memory Allocation Functions936463 -Ref: Memory Allocation Functions-Footnote-1939302 -Node: Constructor Functions939398 -Node: Registration Functions941132 -Node: Extension Functions941817 -Node: Exit Callback Functions944114 -Node: Extension Version String945362 -Node: Input Parsers946027 -Node: Output Wrappers955906 -Node: Two-way processors960421 -Node: Printing Messages962625 -Ref: Printing Messages-Footnote-1963701 -Node: Updating `ERRNO'963853 -Node: Requesting Values964593 -Ref: table-value-types-returned965321 -Node: Accessing Parameters966278 -Node: Symbol Table Access967509 -Node: Symbol table by name968023 -Node: Symbol table by cookie970004 -Ref: Symbol table by cookie-Footnote-1974148 -Node: Cached values974211 -Ref: Cached values-Footnote-1977710 -Node: Array Manipulation977801 -Ref: Array Manipulation-Footnote-1978899 -Node: Array Data Types978936 -Ref: Array Data Types-Footnote-1981591 -Node: Array Functions981683 -Node: Flattening Arrays985537 -Node: Creating Arrays992429 -Node: Extension API Variables997200 -Node: Extension Versioning997836 -Node: Extension API Informational Variables999737 -Node: Extension API Boilerplate1000802 -Node: Finding Extensions1004611 -Node: Extension Example1005171 -Node: Internal File Description1005943 -Node: Internal File Ops1010010 -Ref: Internal File Ops-Footnote-11021680 -Node: Using Internal File Ops1021820 -Ref: Using Internal File Ops-Footnote-11024203 -Node: Extension Samples1024476 -Node: Extension Sample File Functions1026002 -Node: Extension Sample Fnmatch1033640 -Node: Extension Sample Fork1035131 -Node: Extension Sample Inplace1036346 -Node: Extension Sample Ord1038021 -Node: Extension Sample Readdir1038857 -Ref: table-readdir-file-types1039733 -Node: Extension Sample Revout1040544 -Node: Extension Sample Rev2way1041134 -Node: Extension Sample Read write array1041874 -Node: Extension Sample Readfile1043814 -Node: Extension Sample Time1044909 -Node: Extension Sample API Tests1046258 -Node: gawkextlib1046749 -Node: Extension summary1049407 -Node: Extension Exercises1053096 -Node: Language History1053818 -Node: V7/SVR3.11055474 -Node: SVR41057655 -Node: POSIX1059100 -Node: BTL1060489 -Node: POSIX/GNU1061223 -Node: Feature History1066847 -Node: Common Extensions1079945 -Node: Ranges and Locales1081269 -Ref: Ranges and Locales-Footnote-11085887 -Ref: Ranges and Locales-Footnote-21085914 -Ref: Ranges and Locales-Footnote-31086148 -Node: Contributors1086369 -Node: History summary1091910 -Node: Installation1093280 -Node: Gawk Distribution1094226 -Node: Getting1094710 -Node: Extracting1095533 -Node: Distribution contents1097168 -Node: Unix Installation1103233 -Node: Quick Installation1103916 -Node: Shell Startup Files1106327 -Node: Additional Configuration Options1107406 -Node: Configuration Philosophy1109145 -Node: Non-Unix Installation1111514 -Node: PC Installation1111972 -Node: PC Binary Installation1113291 -Node: PC Compiling1115139 -Ref: PC Compiling-Footnote-11118160 -Node: PC Testing1118269 -Node: PC Using1119445 -Node: Cygwin1123560 -Node: MSYS1124383 -Node: VMS Installation1124883 -Node: VMS Compilation1125675 -Ref: VMS Compilation-Footnote-11126897 -Node: VMS Dynamic Extensions1126955 -Node: VMS Installation Details1128639 -Node: VMS Running1130891 -Node: VMS GNV1133727 -Node: VMS Old Gawk1134461 -Node: Bugs1134931 -Node: Other Versions1138814 -Node: Installation summary1145242 -Node: Notes1146298 -Node: Compatibility Mode1147163 -Node: Additions1147945 -Node: Accessing The Source1148870 -Node: Adding Code1150306 -Node: New Ports1156471 -Node: Derived Files1160953 -Ref: Derived Files-Footnote-11166428 -Ref: Derived Files-Footnote-21166462 -Ref: Derived Files-Footnote-31167058 -Node: Future Extensions1167172 -Node: Implementation Limitations1167778 -Node: Extension Design1169026 -Node: Old Extension Problems1170180 -Ref: Old Extension Problems-Footnote-11171697 -Node: Extension New Mechanism Goals1171754 -Ref: Extension New Mechanism Goals-Footnote-11175114 -Node: Extension Other Design Decisions1175303 -Node: Extension Future Growth1177411 -Node: Old Extension Mechanism1178247 -Node: Notes summary1180009 -Node: Basic Concepts1181195 -Node: Basic High Level1181876 -Ref: figure-general-flow1182148 -Ref: figure-process-flow1182747 -Ref: Basic High Level-Footnote-11185976 -Node: Basic Data Typing1186161 -Node: Glossary1189489 -Node: Copying1214647 -Node: GNU Free Documentation License1252203 -Node: Index1277339 +Node: Preface48189 +Ref: Preface-Footnote-151060 +Ref: Preface-Footnote-251167 +Ref: Preface-Footnote-351400 +Node: History51542 +Node: Names53888 +Ref: Names-Footnote-154982 +Node: This Manual55128 +Ref: This Manual-Footnote-161615 +Node: Conventions61715 +Node: Manual History64053 +Ref: Manual History-Footnote-167035 +Ref: Manual History-Footnote-267076 +Node: How To Contribute67150 +Node: Acknowledgments68279 +Node: Getting Started73084 +Node: Running gawk75517 +Node: One-shot76707 +Node: Read Terminal77955 +Node: Long79982 +Node: Executable Scripts81498 +Ref: Executable Scripts-Footnote-184287 +Node: Comments84390 +Node: Quoting86872 +Node: DOS Quoting92396 +Node: Sample Data Files93071 +Node: Very Simple95666 +Node: Two Rules100564 +Node: More Complex102450 +Node: Statements/Lines105312 +Ref: Statements/Lines-Footnote-1109767 +Node: Other Features110032 +Node: When110963 +Ref: When-Footnote-1112717 +Node: Intro Summary112782 +Node: Invoking Gawk113665 +Node: Command Line115179 +Node: Options115977 +Ref: Options-Footnote-1131781 +Ref: Options-Footnote-2132010 +Node: Other Arguments132035 +Node: Naming Standard Input134983 +Node: Environment Variables136076 +Node: AWKPATH Variable136634 +Ref: AWKPATH Variable-Footnote-1140047 +Ref: AWKPATH Variable-Footnote-2140092 +Node: AWKLIBPATH Variable140352 +Node: Other Environment Variables141608 +Node: Exit Status145096 +Node: Include Files145772 +Node: Loading Shared Libraries149369 +Node: Obsolete150796 +Node: Undocumented151493 +Node: Invoking Summary151760 +Node: Regexp153424 +Node: Regexp Usage154878 +Node: Escape Sequences156915 +Node: Regexp Operators163156 +Ref: Regexp Operators-Footnote-1170582 +Ref: Regexp Operators-Footnote-2170729 +Node: Bracket Expressions170827 +Ref: table-char-classes172842 +Node: Leftmost Longest175766 +Node: Computed Regexps177068 +Node: GNU Regexp Operators180465 +Node: Case-sensitivity184138 +Ref: Case-sensitivity-Footnote-1187023 +Ref: Case-sensitivity-Footnote-2187258 +Node: Regexp Summary187366 +Node: Reading Files188833 +Node: Records190927 +Node: awk split records191660 +Node: gawk split records196575 +Ref: gawk split records-Footnote-1201119 +Node: Fields201156 +Ref: Fields-Footnote-1203932 +Node: Nonconstant Fields204018 +Ref: Nonconstant Fields-Footnote-1206261 +Node: Changing Fields206465 +Node: Field Separators212394 +Node: Default Field Splitting215099 +Node: Regexp Field Splitting216216 +Node: Single Character Fields219566 +Node: Command Line Field Separator220625 +Node: Full Line Fields223837 +Ref: Full Line Fields-Footnote-1225354 +Ref: Full Line Fields-Footnote-2225400 +Node: Field Splitting Summary225501 +Node: Constant Size227575 +Node: Splitting By Content232164 +Ref: Splitting By Content-Footnote-1236158 +Node: Multiple Line236321 +Ref: Multiple Line-Footnote-1242207 +Node: Getline242386 +Node: Plain Getline244598 +Node: Getline/Variable247238 +Node: Getline/File248386 +Node: Getline/Variable/File249770 +Ref: Getline/Variable/File-Footnote-1251373 +Node: Getline/Pipe251460 +Node: Getline/Variable/Pipe254143 +Node: Getline/Coprocess255274 +Node: Getline/Variable/Coprocess256526 +Node: Getline Notes257265 +Node: Getline Summary260057 +Ref: table-getline-variants260469 +Node: Read Timeout261298 +Ref: Read Timeout-Footnote-1265123 +Node: Command-line directories265181 +Node: Input Summary266086 +Node: Input Exercises269387 +Node: Printing270115 +Node: Print271892 +Node: Print Examples273349 +Node: Output Separators276128 +Node: OFMT278146 +Node: Printf279500 +Node: Basic Printf280285 +Node: Control Letters281855 +Node: Format Modifiers285838 +Node: Printf Examples291847 +Node: Redirection294333 +Node: Special FD301174 +Ref: Special FD-Footnote-1304334 +Node: Special Files304408 +Node: Other Inherited Files305025 +Node: Special Network306025 +Node: Special Caveats306887 +Node: Close Files And Pipes307838 +Ref: Close Files And Pipes-Footnote-1315020 +Ref: Close Files And Pipes-Footnote-2315168 +Node: Output Summary315318 +Node: Output Exercises316316 +Node: Expressions316996 +Node: Values318181 +Node: Constants318859 +Node: Scalar Constants319550 +Ref: Scalar Constants-Footnote-1320409 +Node: Nondecimal-numbers320659 +Node: Regexp Constants323677 +Node: Using Constant Regexps324202 +Node: Variables327345 +Node: Using Variables328000 +Node: Assignment Options329911 +Node: Conversion331786 +Node: Strings And Numbers332310 +Ref: Strings And Numbers-Footnote-1335375 +Node: Locale influences conversions335484 +Ref: table-locale-affects338231 +Node: All Operators338819 +Node: Arithmetic Ops339449 +Node: Concatenation341954 +Ref: Concatenation-Footnote-1344773 +Node: Assignment Ops344879 +Ref: table-assign-ops349858 +Node: Increment Ops351130 +Node: Truth Values and Conditions354568 +Node: Truth Values355653 +Node: Typing and Comparison356702 +Node: Variable Typing357512 +Node: Comparison Operators361165 +Ref: table-relational-ops361575 +Node: POSIX String Comparison365070 +Ref: POSIX String Comparison-Footnote-1366142 +Node: Boolean Ops366280 +Ref: Boolean Ops-Footnote-1370759 +Node: Conditional Exp370850 +Node: Function Calls372577 +Node: Precedence376457 +Node: Locales380118 +Node: Expressions Summary381750 +Node: Patterns and Actions384310 +Node: Pattern Overview385430 +Node: Regexp Patterns387109 +Node: Expression Patterns387652 +Node: Ranges391362 +Node: BEGIN/END394468 +Node: Using BEGIN/END395229 +Ref: Using BEGIN/END-Footnote-1397963 +Node: I/O And BEGIN/END398069 +Node: BEGINFILE/ENDFILE400383 +Node: Empty403284 +Node: Using Shell Variables403601 +Node: Action Overview405874 +Node: Statements408200 +Node: If Statement410048 +Node: While Statement411543 +Node: Do Statement413572 +Node: For Statement414716 +Node: Switch Statement417873 +Node: Break Statement420255 +Node: Continue Statement422296 +Node: Next Statement424123 +Node: Nextfile Statement426504 +Node: Exit Statement429134 +Node: Built-in Variables431537 +Node: User-modified432670 +Ref: User-modified-Footnote-1440351 +Node: Auto-set440413 +Ref: Auto-set-Footnote-1454105 +Ref: Auto-set-Footnote-2454310 +Node: ARGC and ARGV454366 +Node: Pattern Action Summary458584 +Node: Arrays461011 +Node: Array Basics462340 +Node: Array Intro463184 +Ref: figure-array-elements465148 +Ref: Array Intro-Footnote-1467674 +Node: Reference to Elements467802 +Node: Assigning Elements470254 +Node: Array Example470745 +Node: Scanning an Array472503 +Node: Controlling Scanning475519 +Ref: Controlling Scanning-Footnote-1480715 +Node: Numeric Array Subscripts481031 +Node: Uninitialized Subscripts483216 +Node: Delete484833 +Ref: Delete-Footnote-1487576 +Node: Multidimensional487633 +Node: Multiscanning490730 +Node: Arrays of Arrays492319 +Node: Arrays Summary497078 +Node: Functions499170 +Node: Built-in500069 +Node: Calling Built-in501147 +Node: Numeric Functions503138 +Ref: Numeric Functions-Footnote-1507957 +Ref: Numeric Functions-Footnote-2508314 +Ref: Numeric Functions-Footnote-3508362 +Node: String Functions508634 +Ref: String Functions-Footnote-1532109 +Ref: String Functions-Footnote-2532238 +Ref: String Functions-Footnote-3532486 +Node: Gory Details532573 +Ref: table-sub-escapes534354 +Ref: table-sub-proposed535874 +Ref: table-posix-sub537238 +Ref: table-gensub-escapes538774 +Ref: Gory Details-Footnote-1539606 +Node: I/O Functions539757 +Ref: I/O Functions-Footnote-1546975 +Node: Time Functions547122 +Ref: Time Functions-Footnote-1557610 +Ref: Time Functions-Footnote-2557678 +Ref: Time Functions-Footnote-3557836 +Ref: Time Functions-Footnote-4557947 +Ref: Time Functions-Footnote-5558059 +Ref: Time Functions-Footnote-6558286 +Node: Bitwise Functions558552 +Ref: table-bitwise-ops559114 +Ref: Bitwise Functions-Footnote-1563423 +Node: Type Functions563592 +Node: I18N Functions564743 +Node: User-defined566388 +Node: Definition Syntax567193 +Ref: Definition Syntax-Footnote-1572600 +Node: Function Example572671 +Ref: Function Example-Footnote-1575590 +Node: Function Caveats575612 +Node: Calling A Function576130 +Node: Variable Scope577088 +Node: Pass By Value/Reference580076 +Node: Return Statement583571 +Node: Dynamic Typing586552 +Node: Indirect Calls587481 +Ref: Indirect Calls-Footnote-1598783 +Node: Functions Summary598911 +Node: Library Functions601613 +Ref: Library Functions-Footnote-1605222 +Ref: Library Functions-Footnote-2605365 +Node: Library Names605536 +Ref: Library Names-Footnote-1608990 +Ref: Library Names-Footnote-2609213 +Node: General Functions609299 +Node: Strtonum Function610402 +Node: Assert Function613424 +Node: Round Function616748 +Node: Cliff Random Function618289 +Node: Ordinal Functions619305 +Ref: Ordinal Functions-Footnote-1622368 +Ref: Ordinal Functions-Footnote-2622620 +Node: Join Function622831 +Ref: Join Function-Footnote-1624600 +Node: Getlocaltime Function624800 +Node: Readfile Function628544 +Node: Shell Quoting630514 +Node: Data File Management631915 +Node: Filetrans Function632547 +Node: Rewind Function636603 +Node: File Checking637990 +Ref: File Checking-Footnote-1639322 +Node: Empty Files639523 +Node: Ignoring Assigns641502 +Node: Getopt Function643053 +Ref: Getopt Function-Footnote-1654515 +Node: Passwd Functions654715 +Ref: Passwd Functions-Footnote-1663552 +Node: Group Functions663640 +Ref: Group Functions-Footnote-1671534 +Node: Walking Arrays671747 +Node: Library Functions Summary673350 +Node: Library Exercises674751 +Node: Sample Programs676031 +Node: Running Examples676801 +Node: Clones677529 +Node: Cut Program678753 +Node: Egrep Program688472 +Ref: Egrep Program-Footnote-1695970 +Node: Id Program696080 +Node: Split Program699725 +Ref: Split Program-Footnote-1703173 +Node: Tee Program703301 +Node: Uniq Program706090 +Node: Wc Program713509 +Ref: Wc Program-Footnote-1717759 +Node: Miscellaneous Programs717853 +Node: Dupword Program719066 +Node: Alarm Program721097 +Node: Translate Program725901 +Ref: Translate Program-Footnote-1730466 +Node: Labels Program730736 +Ref: Labels Program-Footnote-1734087 +Node: Word Sorting734171 +Node: History Sorting738242 +Node: Extract Program740078 +Node: Simple Sed747603 +Node: Igawk Program750671 +Ref: Igawk Program-Footnote-1764995 +Ref: Igawk Program-Footnote-2765196 +Ref: Igawk Program-Footnote-3765318 +Node: Anagram Program765433 +Node: Signature Program768490 +Node: Programs Summary769737 +Node: Programs Exercises770930 +Ref: Programs Exercises-Footnote-1775061 +Node: Advanced Features775152 +Node: Nondecimal Data777100 +Node: Array Sorting778690 +Node: Controlling Array Traversal779387 +Ref: Controlling Array Traversal-Footnote-1787720 +Node: Array Sorting Functions787838 +Ref: Array Sorting Functions-Footnote-1791727 +Node: Two-way I/O791923 +Ref: Two-way I/O-Footnote-1796868 +Ref: Two-way I/O-Footnote-2797054 +Node: TCP/IP Networking797136 +Node: Profiling800009 +Node: Advanced Features Summary808286 +Node: Internationalization810219 +Node: I18N and L10N811699 +Node: Explaining gettext812385 +Ref: Explaining gettext-Footnote-1817410 +Ref: Explaining gettext-Footnote-2817594 +Node: Programmer i18n817759 +Ref: Programmer i18n-Footnote-1822625 +Node: Translator i18n822674 +Node: String Extraction823468 +Ref: String Extraction-Footnote-1824599 +Node: Printf Ordering824685 +Ref: Printf Ordering-Footnote-1827471 +Node: I18N Portability827535 +Ref: I18N Portability-Footnote-1829990 +Node: I18N Example830053 +Ref: I18N Example-Footnote-1832856 +Node: Gawk I18N832928 +Node: I18N Summary833566 +Node: Debugger834905 +Node: Debugging835927 +Node: Debugging Concepts836368 +Node: Debugging Terms838221 +Node: Awk Debugging840793 +Node: Sample Debugging Session841687 +Node: Debugger Invocation842207 +Node: Finding The Bug843591 +Node: List of Debugger Commands850066 +Node: Breakpoint Control851399 +Node: Debugger Execution Control855095 +Node: Viewing And Changing Data858459 +Node: Execution Stack861837 +Node: Debugger Info863474 +Node: Miscellaneous Debugger Commands867491 +Node: Readline Support872520 +Node: Limitations873412 +Node: Debugging Summary875526 +Node: Arbitrary Precision Arithmetic876694 +Node: Computer Arithmetic878110 +Ref: table-numeric-ranges881708 +Ref: Computer Arithmetic-Footnote-1882567 +Node: Math Definitions882624 +Ref: table-ieee-formats885912 +Ref: Math Definitions-Footnote-1886516 +Node: MPFR features886621 +Node: FP Math Caution888292 +Ref: FP Math Caution-Footnote-1889342 +Node: Inexactness of computations889711 +Node: Inexact representation890670 +Node: Comparing FP Values892027 +Node: Errors accumulate893109 +Node: Getting Accuracy894542 +Node: Try To Round897204 +Node: Setting precision898103 +Ref: table-predefined-precision-strings898787 +Node: Setting the rounding mode900576 +Ref: table-gawk-rounding-modes900940 +Ref: Setting the rounding mode-Footnote-1904395 +Node: Arbitrary Precision Integers904574 +Ref: Arbitrary Precision Integers-Footnote-1909473 +Node: POSIX Floating Point Problems909622 +Ref: POSIX Floating Point Problems-Footnote-1913495 +Node: Floating point summary913533 +Node: Dynamic Extensions915727 +Node: Extension Intro917279 +Node: Plugin License918545 +Node: Extension Mechanism Outline919342 +Ref: figure-load-extension919770 +Ref: figure-register-new-function921250 +Ref: figure-call-new-function922254 +Node: Extension API Description924240 +Node: Extension API Functions Introduction925690 +Node: General Data Types930514 +Ref: General Data Types-Footnote-1936253 +Node: Memory Allocation Functions936552 +Ref: Memory Allocation Functions-Footnote-1939391 +Node: Constructor Functions939487 +Node: Registration Functions941221 +Node: Extension Functions941906 +Node: Exit Callback Functions944203 +Node: Extension Version String945451 +Node: Input Parsers946116 +Node: Output Wrappers955995 +Node: Two-way processors960510 +Node: Printing Messages962714 +Ref: Printing Messages-Footnote-1963790 +Node: Updating `ERRNO'963942 +Node: Requesting Values964682 +Ref: table-value-types-returned965410 +Node: Accessing Parameters966367 +Node: Symbol Table Access967598 +Node: Symbol table by name968112 +Node: Symbol table by cookie970093 +Ref: Symbol table by cookie-Footnote-1974237 +Node: Cached values974300 +Ref: Cached values-Footnote-1977799 +Node: Array Manipulation977890 +Ref: Array Manipulation-Footnote-1978988 +Node: Array Data Types979025 +Ref: Array Data Types-Footnote-1981680 +Node: Array Functions981772 +Node: Flattening Arrays985626 +Node: Creating Arrays992518 +Node: Extension API Variables997289 +Node: Extension Versioning997925 +Node: Extension API Informational Variables999826 +Node: Extension API Boilerplate1000891 +Node: Finding Extensions1004700 +Node: Extension Example1005260 +Node: Internal File Description1006032 +Node: Internal File Ops1010099 +Ref: Internal File Ops-Footnote-11021769 +Node: Using Internal File Ops1021909 +Ref: Using Internal File Ops-Footnote-11024292 +Node: Extension Samples1024565 +Node: Extension Sample File Functions1026091 +Node: Extension Sample Fnmatch1033729 +Node: Extension Sample Fork1035220 +Node: Extension Sample Inplace1036435 +Node: Extension Sample Ord1038110 +Node: Extension Sample Readdir1038946 +Ref: table-readdir-file-types1039822 +Node: Extension Sample Revout1040633 +Node: Extension Sample Rev2way1041223 +Node: Extension Sample Read write array1041963 +Node: Extension Sample Readfile1043903 +Node: Extension Sample Time1044998 +Node: Extension Sample API Tests1046347 +Node: gawkextlib1046838 +Node: Extension summary1049496 +Node: Extension Exercises1053185 +Node: Language History1053907 +Node: V7/SVR3.11055563 +Node: SVR41057744 +Node: POSIX1059189 +Node: BTL1060578 +Node: POSIX/GNU1061312 +Node: Feature History1066936 +Node: Common Extensions1080034 +Node: Ranges and Locales1081358 +Ref: Ranges and Locales-Footnote-11085976 +Ref: Ranges and Locales-Footnote-21086003 +Ref: Ranges and Locales-Footnote-31086237 +Node: Contributors1086458 +Node: History summary1091999 +Node: Installation1093369 +Node: Gawk Distribution1094315 +Node: Getting1094799 +Node: Extracting1095622 +Node: Distribution contents1097257 +Node: Unix Installation1103322 +Node: Quick Installation1104005 +Node: Shell Startup Files1106416 +Node: Additional Configuration Options1107495 +Node: Configuration Philosophy1109234 +Node: Non-Unix Installation1111603 +Node: PC Installation1112061 +Node: PC Binary Installation1113380 +Node: PC Compiling1115228 +Ref: PC Compiling-Footnote-11118249 +Node: PC Testing1118358 +Node: PC Using1119534 +Node: Cygwin1123649 +Node: MSYS1124472 +Node: VMS Installation1124972 +Node: VMS Compilation1125764 +Ref: VMS Compilation-Footnote-11126986 +Node: VMS Dynamic Extensions1127044 +Node: VMS Installation Details1128728 +Node: VMS Running1130980 +Node: VMS GNV1133816 +Node: VMS Old Gawk1134550 +Node: Bugs1135020 +Node: Other Versions1138903 +Node: Installation summary1145331 +Node: Notes1146387 +Node: Compatibility Mode1147252 +Node: Additions1148034 +Node: Accessing The Source1148959 +Node: Adding Code1150395 +Node: New Ports1156560 +Node: Derived Files1161042 +Ref: Derived Files-Footnote-11166517 +Ref: Derived Files-Footnote-21166551 +Ref: Derived Files-Footnote-31167147 +Node: Future Extensions1167261 +Node: Implementation Limitations1167867 +Node: Extension Design1169115 +Node: Old Extension Problems1170269 +Ref: Old Extension Problems-Footnote-11171786 +Node: Extension New Mechanism Goals1171843 +Ref: Extension New Mechanism Goals-Footnote-11175203 +Node: Extension Other Design Decisions1175392 +Node: Extension Future Growth1177500 +Node: Old Extension Mechanism1178336 +Node: Notes summary1180098 +Node: Basic Concepts1181284 +Node: Basic High Level1181965 +Ref: figure-general-flow1182237 +Ref: figure-process-flow1182836 +Ref: Basic High Level-Footnote-11186065 +Node: Basic Data Typing1186250 +Node: Glossary1189578 +Node: Copying1214736 +Node: GNU Free Documentation License1252292 +Node: Index1277428 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 4b6e68c1..1c3c0f78 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -1270,6 +1270,9 @@ the C/C++ module as a dynamic plug-in. has all the details, and as expected, many examples to help you learn the ins and outs. +I enjoy programming in AWK and had fun (re)reading this book. +I think you will too. + @ifnotdocbook @cindex Brennan, Michael @display @@ -11843,7 +11846,7 @@ The post-increment @samp{foo++} is nearly the same as writing @samp{(foo not necessarily equal @code{foo}. But the difference is minute as long as you stick to numbers that are fairly small (less than @iftex -@math{10^12}). +@math{10^{12}}). @end iftex @ifnottex @ifnotdocbook diff --git a/doc/gawktexi.in b/doc/gawktexi.in index f330e8e0..8bdf1a70 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -1265,6 +1265,9 @@ the C/C++ module as a dynamic plug-in. has all the details, and as expected, many examples to help you learn the ins and outs. +I enjoy programming in AWK and had fun (re)reading this book. +I think you will too. + @ifnotdocbook @cindex Brennan, Michael @display @@ -11230,7 +11233,7 @@ The post-increment @samp{foo++} is nearly the same as writing @samp{(foo not necessarily equal @code{foo}. But the difference is minute as long as you stick to numbers that are fairly small (less than @iftex -@math{10^12}). +@math{10^{12}}). @end iftex @ifnottex @ifnotdocbook diff --git a/doc/texinfo.tex b/doc/texinfo.tex index 7506dffb..370d4505 100644 --- a/doc/texinfo.tex +++ b/doc/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2014-03-18.17} +\def\texinfoversion{2014-12-03.16} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, @@ -96,7 +96,9 @@ \let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ +\let\ptexsp=\sp \let\ptexstar=\* +\let\ptexsup=\sup \let\ptext=\t \let\ptextop=\top {\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode @@ -1010,24 +1012,15 @@ where each line of input produces a line of output.} % paragraph. % \gdef\dosuppressfirstparagraphindent{% - \gdef\indent{% - \restorefirstparagraphindent - \indent - }% - \gdef\noindent{% - \restorefirstparagraphindent - \noindent - }% - \global\everypar = {% - \kern -\parindent - \restorefirstparagraphindent - }% + \gdef\indent {\restorefirstparagraphindent \indent}% + \gdef\noindent{\restorefirstparagraphindent \noindent}% + \global\everypar = {\kern -\parindent \restorefirstparagraphindent}% } - +% \gdef\restorefirstparagraphindent{% - \global \let \indent = \ptexindent - \global \let \noindent = \ptexnoindent - \global \everypar = {}% + \global\let\indent = \ptexindent + \global\let\noindent = \ptexnoindent + \global\everypar = {}% } @@ -2090,12 +2083,9 @@ end \endgroup } - % In order for the font changes to affect most math symbols and letters, -% we have to define the \textfont of the standard families. Since -% texinfo doesn't allow for producing subscripts and superscripts except -% in the main text, we don't bother to reset \scriptfont and -% \scriptscriptfont (which would also require loading a lot more fonts). +% we have to define the \textfont of the standard families. We don't +% bother to reset \scriptfont and \scriptscriptfont; awaiting user need. % \def\resetmathfonts{% \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy @@ -2109,8 +2099,8 @@ end % \tenSTYLE to set the current font. % % Each font-changing command also sets the names \lsize (one size lower) -% and \lllsize (three sizes lower). These relative commands are used in -% the LaTeX logo and acronyms. +% and \lllsize (three sizes lower). These relative commands are used +% in, e.g., the LaTeX logo and acronyms. % % This all needs generalizing, badly. % @@ -2146,7 +2136,7 @@ end \let\tenttsl=\secttsl \def\curfontsize{sec}% \def\lsize{subsec}\def\lllsize{reduced}% - \resetmathfonts \setleading{16pt}} + \resetmathfonts \setleading{17pt}} \def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc @@ -2851,6 +2841,8 @@ end \let\v=\check \let\~=\tilde \let\dotaccent=\dot + % have to provide another name for sup operator + \let\mathopsup=\sup $\finishmath } \def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. @@ -2874,6 +2866,18 @@ end } } +% for @sub and @sup, if in math mode, just do a normal sub/superscript. +% If in text, use math to place as sub/superscript, but switch +% into text mode, with smaller fonts. This is a different font than the +% one used for real math sub/superscripts (8pt vs. 7pt), but let's not +% fix it (significant additions to font machinery) until someone notices. +% +\def\sub{\ifmmode \expandafter\sb \else \expandafter\finishsub\fi} +\def\finishsub#1{$\sb{\hbox{\selectfonts\lllsize #1}}$}% +% +\def\sup{\ifmmode \expandafter\ptexsp \else \expandafter\finishsup\fi} +\def\finishsup#1{$\ptexsp{\hbox{\selectfonts\lllsize #1}}$}% + % ctrl is no longer a Texinfo command, but leave this definition for fun. \def\ctrl #1{{\tt \rawbackslash \hat}#1} @@ -5739,13 +5743,16 @@ end % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. +% Not used for @heading series. % % To test against our argument. \def\Ynothingkeyword{Ynothing} -\def\Yomitfromtockeyword{Yomitfromtoc} \def\Yappendixkeyword{Yappendix} +\def\Yomitfromtockeyword{Yomitfromtoc} % \def\chapmacro#1#2#3{% + \checkenv{}% chapters, etc., should not start inside an environment. + % % Insert the first mark before the heading break (see notes for \domark). \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs @@ -5798,6 +5805,7 @@ end % {% \chapfonts \rmisbold + \let\footnote=\errfootnoteheading % give better error message % % Have to define \lastsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called @@ -5891,22 +5899,29 @@ end % Print any size, any type, section title. % -% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is -% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the -% section number. +% #1 is the text of the title, +% #2 is the section level (sec/subsec/subsubsec), +% #3 is the section type (Ynumbered, Ynothing, Yappendix, Yomitfromtoc), +% #4 is the section number. % \def\seckeyword{sec} % \def\sectionheading#1#2#3#4{% {% - \checkenv{}% should not be in an environment. + \def\sectionlevel{#2}% + \def\temptype{#3}% + % + % It is ok for the @heading series commands to appear inside an + % environment (it's been historically allowed, though the logic is + % dubious), but not the others. + \ifx\temptype\Yomitfromtockeyword\else + \checkenv{}% non-@*heading should not be in an environment. + \fi + \let\footnote=\errfootnoteheading % % Switch to the right set of fonts. \csname #2fonts\endcsname \rmisbold % - \def\sectionlevel{#2}% - \def\temptype{#3}% - % % Insert first mark before the heading break (see notes for \domark). \let\prevsectiondefs=\lastsectiondefs \ifx\temptype\Ynothingkeyword @@ -6333,6 +6348,7 @@ end % other math active characters (just in case), to plain's definitions. \mathactive % + % Inverse of the list at the beginning of the file. \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc @@ -6348,7 +6364,9 @@ end \let\+=\tabalign \let\}=\ptexrbrace \let\/=\ptexslash + \let\sp=\ptexsp \let\*=\ptexstar + %\let\sup=\ptexsup % do not redefine, we want @sup to work in math mode \let\t=\ptext \expandafter \let\csname top\endcsname=\ptextop % we've made it outer \let\frenchspacing=\plainfrenchspacing @@ -7414,7 +7432,6 @@ end % % \anythingelse will almost certainly be an error of some kind. - % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. @@ -7523,8 +7540,7 @@ end % the catcode regime underwhich the body was input). % % If you compile with TeX (not eTeX), and you have macros with 10 or more -% arguments, you need that no macro has more than 256 arguments, otherwise an -% error is produced. +% arguments, no macro can have more than 256 arguments (else error). \def\parsemargdef#1;{% \paramno=0\def\paramlist{}% \let\hash\relax @@ -8359,9 +8375,6 @@ end % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% - \let\indent=\ptexindent - \let\noindent=\ptexnoindent - % \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % @@ -8388,7 +8401,7 @@ end % % Nested footnotes are not supported in TeX, that would take a lot % more work. (\startsavinginserts does not suffice.) - \let\footnote=\errfootnote + \let\footnote=\errfootnotenest % % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. @@ -8427,12 +8440,17 @@ end } }%end \catcode `\@=11 -\def\errfootnote{% +\def\errfootnotenest{% \errhelp=\EMsimple \errmessage{Nested footnotes not supported in texinfo.tex, even though they work in makeinfo; sorry} } +\def\errfootnoteheading{% + \errhelp=\EMsimple + \errmessage{Footnotes in chapters, sections, etc., are not supported} +} + % In case a @footnote appears in a vbox, save the footnote text and create % the real \insert just after the vbox finished. Otherwise, the insertion % would be lost. @@ -8856,20 +8874,20 @@ end { \catcode`\_ = \active \globaldefs=1 -\parseargdef\documentlanguage{\begingroup - \let_=\normalunderscore % normal _ character for filenames +\parseargdef\documentlanguage{% \tex % read txi-??.tex file in plain TeX. % Read the file by the name they passed if it exists. + \let_ = \normalunderscore % normal _ character for filename test \openin 1 txi-#1.tex \ifeof 1 - \documentlanguagetrywithoutunderscore{#1_\finish}% + \documentlanguagetrywithoutunderscore #1_\finish \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 \endgroup % end raw TeX -\endgroup} +} % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. @@ -9279,6 +9297,18 @@ directory should work if nowhere else does.} \UTFviiiLoop \endgroup +\def\globallet{\global\let} % save some \expandafter's below + +% @U{xxxx} to produce U+xxxx, if we support it. +\def\U#1{% + \expandafter\ifx\csname uni:#1\endcsname \relax + \errhelp = \EMsimple + \errmessage{Unicode character U+#1 not supported, sorry}% + \else + \csname uni:#1\endcsname + \fi +} + \begingroup \catcode`\"=12 \catcode`\<=12 @@ -9287,7 +9317,6 @@ directory should work if nowhere else does.} \catcode`\;=12 \catcode`\!=12 \catcode`\~=13 - \gdef\DeclareUnicodeCharacter#1#2{% \countUTFz = "#1\relax %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% @@ -9302,6 +9331,8 @@ directory should work if nowhere else does.} \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter \gdef\UTFviiiTmp{#2}% + % define an additional control sequence for this code point. + \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp \endgroup} \gdef\parseXMLCharref{% |