[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gawk-diffs] [SCM] gawk branch, master, updated. 7086030948da88c9683a136
From: |
Arnold Robbins |
Subject: |
[gawk-diffs] [SCM] gawk branch, master, updated. 7086030948da88c9683a136c945b5b864c1a1a11 |
Date: |
Sun, 21 Apr 2013 20:12:44 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".
The branch, master has been updated
via 7086030948da88c9683a136c945b5b864c1a1a11 (commit)
via 9d5a4c613f13c22684ecc068a9e595b76bd744ca (commit)
from 6330b9c2cb3228285c12188d02c83ae64d9fabb5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=7086030948da88c9683a136c945b5b864c1a1a11
commit 7086030948da88c9683a136c945b5b864c1a1a11
Author: Arnold D. Robbins <address@hidden>
Date: Sun Apr 21 23:12:17 2013 +0300
Further documentation updates.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 1317488..17f8adf 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-21 Arnold D. Robbins <address@hidden>
+
+ * gawkman.texi: Update all the menus. Fix spelling errors. Remove
+ some unneeded fakenodes.
+
2013-04-20 Arnold D. Robbins <address@hidden>
* awkcard.in: Clean up and bring up to date.
diff --git a/doc/gawk.info b/doc/gawk.info
index afe757c..5e29450 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -446,17 +446,6 @@ texts being (a) (see below), and with the Back-Cover Texts
being (b)
* Anagram Program:: Finding anagrams from a dictionary.
* Signature Program:: People do amazing things with too much
time on their hands.
-* I18N and L10N:: Internationalization and Localization.
-* Explaining gettext:: How GNU `gettext' works.
-* Programmer i18n:: Features for the programmer.
-* Translator i18n:: Features for the translator.
-* String Extraction:: Extracting marked strings.
-* Printf Ordering:: Rearranging `printf' arguments.
-* I18N Portability:: `awk'-level portability
- issues.
-* I18N Example:: A simple i18n example.
-* Gawk I18N:: `gawk' is also
- internationalized.
* Nondecimal Data:: Allowing nondecimal input data.
* Array Sorting:: Facilities for controlling array
traversal and sorting arrays.
@@ -468,6 +457,17 @@ texts being (a) (see below), and with the Back-Cover Texts
being (b)
* TCP/IP Networking:: Using `gawk' for network
programming.
* Profiling:: Profiling your `awk' programs.
+* I18N and L10N:: Internationalization and Localization.
+* Explaining gettext:: How GNU `gettext' works.
+* Programmer i18n:: Features for the programmer.
+* Translator i18n:: Features for the translator.
+* String Extraction:: Extracting marked strings.
+* Printf Ordering:: Rearranging `printf' arguments.
+* I18N Portability:: `awk'-level portability
+ issues.
+* I18N Example:: A simple i18n example.
+* Gawk I18N:: `gawk' is also
+ internationalized.
* Debugging:: Introduction to `gawk'
debugger.
* Debugging Concepts:: Debugging in General.
@@ -528,7 +528,7 @@ texts being (a) (see below), and with the Back-Cover Texts
being (b)
* Output Wrappers:: Registering an output wrapper.
* Two-way processors:: Registering a two-way processor.
* Printing Messages:: Functions for printing messages.
-* Updating `ERRNO':: Functions for updating `ERRNO'.
+* Updating `ERRNO':: Functions for updating `ERRNO'.
* Accessing Parameters:: Functions for accessing parameters.
* Symbol Table Access:: Functions for accessing global
variables.
@@ -632,13 +632,14 @@ texts being (a) (see below), and with the Back-Cover
Texts being (b)
`git' repository.
* Future Extensions:: New features that may be implemented
one day.
-* Implementation Limitations:: Some limitations of the implementation.
+* Implementation Limitations:: Some limitations of the
+ implementation.
* Extension Design:: Design notes about the extension API.
* Old Extension Problems:: Problems with the old mechanism.
* Extension New Mechanism Goals:: Goals for the new mechanism.
* Extension Other Design Decisions:: Some other design decisions.
* Extension Future Growth:: Some room for future growth.
-* Old Extension Mechansim:: Some compatibility for old extensions.
+* Old Extension Mechanism:: Some compatibility for old extensions.
* Basic High Level:: The high level view.
* Basic Data Typing:: A very quick intro to data types.
@@ -1254,7 +1255,7 @@ acknowledgements:
Ulrich Drepper, provided invaluable help and feedback for the
design of the internationalization features.
- Chuck Toporek, Mary Sheehan, and Claire Coutier of O'Reilly &
+ Chuck Toporek, Mary Sheehan, and Claire Cloutier of O'Reilly &
Associates contributed significant editorial help for this Info
file for the 3.1 release of `gawk'.
@@ -21588,7 +21589,7 @@ This (rather large) minor node describes the API in
detail.
* Registration Functions:: Functions to register things with
`gawk'.
* Printing Messages:: Functions for printing messages.
-* Updating `ERRNO':: Functions for updating `ERRNO'.
+* Updating `ERRNO':: Functions for updating `ERRNO'.
* Accessing Parameters:: Functions for accessing parameters.
* Symbol Table Access:: Functions for accessing global
variables.
@@ -26420,7 +26421,7 @@ and maintainers of `gawk'. Everything in it applies
specifically to
* Future Extensions:: New features that may be implemented one day.
* Implementation Limitations:: Some limitations of the implementation.
* Extension Design:: Design notes about the extension API.
-* Old Extension Mechansim:: Some compatibility for old extensions.
+* Old Extension Mechanism:: Some compatibility for old extensions.
File: gawk.info, Node: Compatibility Mode, Next: Additions, Up: Notes
@@ -26910,7 +26911,7 @@ Size of a literal string `MAX_INT '
Size of a printf string `MAX_INT '
-File: gawk.info, Node: Extension Design, Next: Old Extension Mechansim,
Prev: Implementation Limitations, Up: Notes
+File: gawk.info, Node: Extension Design, Next: Old Extension Mechanism,
Prev: Implementation Limitations, Up: Notes
C.5 Extension API Design
========================
@@ -27124,7 +27125,7 @@ The API can later be expanded, in two ways:
respect to any of the above.
-File: gawk.info, Node: Old Extension Mechansim, Prev: Extension Design, Up:
Notes
+File: gawk.info, Node: Old Extension Mechanism, Prev: Extension Design, Up:
Notes
C.6 Compatibility For Old Extensions
====================================
@@ -27153,7 +27154,7 @@ This function in turn finds and loads the shared object
file containing
the extension and calls its `dl_load()' C routine.
Because original-style and new-style extensions use different
-initialiation routines (`dl_load()' versus `dlload()'), they may safely
+initialization routines (`dl_load()' versus `dlload()'), they may safely
be installed in the same directory (to be found by `AWKLIBPATH')
without conflict.
@@ -31977,518 +31978,518 @@ Index
Tag Table:
Node: Top1358
-Node: Foreword40301
-Node: Preface44646
-Ref: Preface-Footnote-147699
-Ref: Preface-Footnote-247795
-Node: History48027
-Node: Names50401
-Ref: Names-Footnote-151878
-Node: This Manual51950
-Ref: This Manual-Footnote-157815
-Node: Conventions57915
-Node: Manual History60067
-Ref: Manual History-Footnote-163468
-Ref: Manual History-Footnote-263509
-Node: How To Contribute63583
-Node: Acknowledgments64727
-Node: Getting Started68937
-Node: Running gawk71316
-Node: One-shot72502
-Node: Read Terminal73727
-Ref: Read Terminal-Footnote-175377
-Ref: Read Terminal-Footnote-275653
-Node: Long75824
-Node: Executable Scripts77200
-Ref: Executable Scripts-Footnote-179033
-Ref: Executable Scripts-Footnote-279135
-Node: Comments79682
-Node: Quoting82149
-Node: DOS Quoting86772
-Node: Sample Data Files87447
-Node: Very Simple90479
-Node: Two Rules95078
-Node: More Complex97225
-Ref: More Complex-Footnote-1100155
-Node: Statements/Lines100240
-Ref: Statements/Lines-Footnote-1104702
-Node: Other Features104967
-Node: When105895
-Node: Invoking Gawk108042
-Node: Command Line109503
-Node: Options110286
-Ref: Options-Footnote-1125678
-Node: Other Arguments125703
-Node: Naming Standard Input128361
-Node: Environment Variables129455
-Node: AWKPATH Variable130013
-Ref: AWKPATH Variable-Footnote-1132771
-Node: AWKLIBPATH Variable133031
-Node: Other Environment Variables133749
-Node: Exit Status136244
-Node: Include Files136919
-Node: Loading Shared Libraries140488
-Node: Obsolete141852
-Node: Undocumented142549
-Node: Regexp142792
-Node: Regexp Usage144181
-Node: Escape Sequences146207
-Node: Regexp Operators151876
-Ref: Regexp Operators-Footnote-1159256
-Ref: Regexp Operators-Footnote-2159403
-Node: Bracket Expressions159501
-Ref: table-char-classes161391
-Node: GNU Regexp Operators163914
-Node: Case-sensitivity167637
-Ref: Case-sensitivity-Footnote-1170605
-Ref: Case-sensitivity-Footnote-2170840
-Node: Leftmost Longest170948
-Node: Computed Regexps172149
-Node: Reading Files175486
-Node: Records177489
-Ref: Records-Footnote-1186378
-Node: Fields186415
-Ref: Fields-Footnote-1189448
-Node: Nonconstant Fields189534
-Node: Changing Fields191736
-Node: Field Separators197695
-Node: Default Field Splitting200324
-Node: Regexp Field Splitting201441
-Node: Single Character Fields204783
-Node: Command Line Field Separator205842
-Node: Field Splitting Summary209283
-Ref: Field Splitting Summary-Footnote-1212394
-Node: Constant Size212495
-Node: Splitting By Content217079
-Ref: Splitting By Content-Footnote-1220805
-Node: Multiple Line220845
-Ref: Multiple Line-Footnote-1226692
-Node: Getline226871
-Node: Plain Getline229087
-Node: Getline/Variable231176
-Node: Getline/File232317
-Node: Getline/Variable/File233639
-Ref: Getline/Variable/File-Footnote-1235238
-Node: Getline/Pipe235325
-Node: Getline/Variable/Pipe238011
-Node: Getline/Coprocess239118
-Node: Getline/Variable/Coprocess240361
-Node: Getline Notes241075
-Node: Getline Summary243862
-Ref: table-getline-variants244270
-Node: Read Timeout245128
-Ref: Read Timeout-Footnote-1248869
-Node: Command line directories248926
-Node: Printing249556
-Node: Print251187
-Node: Print Examples252524
-Node: Output Separators255308
-Node: OFMT257068
-Node: Printf258426
-Node: Basic Printf259332
-Node: Control Letters260871
-Node: Format Modifiers264683
-Node: Printf Examples270692
-Node: Redirection273407
-Node: Special Files280372
-Node: Special FD280905
-Ref: Special FD-Footnote-1284530
-Node: Special Network284604
-Node: Special Caveats285454
-Node: Close Files And Pipes286250
-Ref: Close Files And Pipes-Footnote-1293233
-Ref: Close Files And Pipes-Footnote-2293381
-Node: Expressions293531
-Node: Values294663
-Node: Constants295339
-Node: Scalar Constants296019
-Ref: Scalar Constants-Footnote-1296878
-Node: Nondecimal-numbers297060
-Node: Regexp Constants300060
-Node: Using Constant Regexps300535
-Node: Variables303590
-Node: Using Variables304245
-Node: Assignment Options305969
-Node: Conversion307841
-Ref: table-locale-affects313332
-Ref: Conversion-Footnote-1313956
-Node: All Operators314065
-Node: Arithmetic Ops314695
-Node: Concatenation317200
-Ref: Concatenation-Footnote-1319993
-Node: Assignment Ops320113
-Ref: table-assign-ops325101
-Node: Increment Ops326432
-Node: Truth Values and Conditions329867
-Node: Truth Values330950
-Node: Typing and Comparison331999
-Node: Variable Typing332788
-Ref: Variable Typing-Footnote-1336685
-Node: Comparison Operators336807
-Ref: table-relational-ops337217
-Node: POSIX String Comparison340766
-Ref: POSIX String Comparison-Footnote-1341722
-Node: Boolean Ops341860
-Ref: Boolean Ops-Footnote-1345938
-Node: Conditional Exp346029
-Node: Function Calls347761
-Node: Precedence351355
-Node: Locales355024
-Node: Patterns and Actions356113
-Node: Pattern Overview357167
-Node: Regexp Patterns358836
-Node: Expression Patterns359379
-Node: Ranges363064
-Node: BEGIN/END366030
-Node: Using BEGIN/END366792
-Ref: Using BEGIN/END-Footnote-1369523
-Node: I/O And BEGIN/END369629
-Node: BEGINFILE/ENDFILE371911
-Node: Empty374815
-Node: Using Shell Variables375131
-Node: Action Overview377416
-Node: Statements379773
-Node: If Statement381627
-Node: While Statement383126
-Node: Do Statement385170
-Node: For Statement386326
-Node: Switch Statement389478
-Node: Break Statement391575
-Node: Continue Statement393565
-Node: Next Statement395358
-Node: Nextfile Statement397748
-Node: Exit Statement400391
-Node: Built-in Variables402807
-Node: User-modified403902
-Ref: User-modified-Footnote-1412257
-Node: Auto-set412319
-Ref: Auto-set-Footnote-1424869
-Ref: Auto-set-Footnote-2425074
-Node: ARGC and ARGV425130
-Node: Arrays428981
-Node: Array Basics430486
-Node: Array Intro431312
-Node: Reference to Elements435630
-Node: Assigning Elements437900
-Node: Array Example438391
-Node: Scanning an Array440123
-Node: Controlling Scanning442437
-Ref: Controlling Scanning-Footnote-1447360
-Node: Delete447676
-Ref: Delete-Footnote-1450441
-Node: Numeric Array Subscripts450498
-Node: Uninitialized Subscripts452681
-Node: Multi-dimensional454309
-Node: Multi-scanning457403
-Node: Arrays of Arrays458994
-Node: Functions463635
-Node: Built-in464454
-Node: Calling Built-in465532
-Node: Numeric Functions467520
-Ref: Numeric Functions-Footnote-1471352
-Ref: Numeric Functions-Footnote-2471709
-Ref: Numeric Functions-Footnote-3471757
-Node: String Functions472026
-Ref: String Functions-Footnote-1495523
-Ref: String Functions-Footnote-2495652
-Ref: String Functions-Footnote-3495900
-Node: Gory Details495987
-Ref: table-sub-escapes497666
-Ref: table-sub-posix-92499020
-Ref: table-sub-proposed500371
-Ref: table-posix-sub501725
-Ref: table-gensub-escapes503270
-Ref: Gory Details-Footnote-1504446
-Ref: Gory Details-Footnote-2504497
-Node: I/O Functions504648
-Ref: I/O Functions-Footnote-1511633
-Node: Time Functions511780
-Ref: Time Functions-Footnote-1522713
-Ref: Time Functions-Footnote-2522781
-Ref: Time Functions-Footnote-3522939
-Ref: Time Functions-Footnote-4523050
-Ref: Time Functions-Footnote-5523162
-Ref: Time Functions-Footnote-6523389
-Node: Bitwise Functions523655
-Ref: table-bitwise-ops524213
-Ref: Bitwise Functions-Footnote-1528434
-Node: Type Functions528618
-Node: I18N Functions529088
-Node: User-defined530715
-Node: Definition Syntax531519
-Ref: Definition Syntax-Footnote-1536429
-Node: Function Example536498
-Node: Function Caveats539092
-Node: Calling A Function539513
-Node: Variable Scope540628
-Node: Pass By Value/Reference543591
-Node: Return Statement547099
-Node: Dynamic Typing550080
-Node: Indirect Calls551011
-Node: Library Functions560696
-Ref: Library Functions-Footnote-1564209
-Ref: Library Functions-Footnote-2564352
-Node: Library Names564523
-Ref: Library Names-Footnote-1567994
-Ref: Library Names-Footnote-2568214
-Node: General Functions568300
-Node: Strtonum Function569253
-Node: Assert Function572183
-Node: Round Function575509
-Node: Cliff Random Function577052
-Node: Ordinal Functions578068
-Ref: Ordinal Functions-Footnote-1581138
-Ref: Ordinal Functions-Footnote-2581390
-Node: Join Function581599
-Ref: Join Function-Footnote-1583370
-Node: Getlocaltime Function583570
-Node: Data File Management587285
-Node: Filetrans Function587917
-Node: Rewind Function591986
-Node: File Checking593373
-Node: Empty Files594467
-Node: Ignoring Assigns596697
-Node: Getopt Function598250
-Ref: Getopt Function-Footnote-1609554
-Node: Passwd Functions609757
-Ref: Passwd Functions-Footnote-1618732
-Node: Group Functions618820
-Node: Walking Arrays626904
-Node: Sample Programs629041
-Node: Running Examples629715
-Node: Clones630443
-Node: Cut Program631667
-Node: Egrep Program641512
-Ref: Egrep Program-Footnote-1649285
-Node: Id Program649395
-Node: Split Program653011
-Ref: Split Program-Footnote-1656530
-Node: Tee Program656658
-Node: Uniq Program659461
-Node: Wc Program666890
-Ref: Wc Program-Footnote-1671156
-Ref: Wc Program-Footnote-2671356
-Node: Miscellaneous Programs671448
-Node: Dupword Program672636
-Node: Alarm Program674667
-Node: Translate Program679416
-Ref: Translate Program-Footnote-1683803
-Ref: Translate Program-Footnote-2684031
-Node: Labels Program684165
-Ref: Labels Program-Footnote-1687536
-Node: Word Sorting687620
-Node: History Sorting691504
-Node: Extract Program693343
-Ref: Extract Program-Footnote-1700844
-Node: Simple Sed700972
-Node: Igawk Program704034
-Ref: Igawk Program-Footnote-1719191
-Ref: Igawk Program-Footnote-2719392
-Node: Anagram Program719530
-Node: Signature Program722598
-Node: Advanced Features723698
-Node: Nondecimal Data725580
-Node: Array Sorting727163
-Node: Controlling Array Traversal727860
-Node: Array Sorting Functions736098
-Ref: Array Sorting Functions-Footnote-1739772
-Ref: Array Sorting Functions-Footnote-2739865
-Node: Two-way I/O740059
-Ref: Two-way I/O-Footnote-1745491
-Node: TCP/IP Networking745561
-Node: Profiling748405
-Node: Internationalization755860
-Node: I18N and L10N757285
-Node: Explaining gettext757971
-Ref: Explaining gettext-Footnote-1763037
-Ref: Explaining gettext-Footnote-2763221
-Node: Programmer i18n763386
-Node: Translator i18n767586
-Node: String Extraction768379
-Ref: String Extraction-Footnote-1769340
-Node: Printf Ordering769426
-Ref: Printf Ordering-Footnote-1772210
-Node: I18N Portability772274
-Ref: I18N Portability-Footnote-1774723
-Node: I18N Example774786
-Ref: I18N Example-Footnote-1777421
-Node: Gawk I18N777493
-Node: Debugger778114
-Node: Debugging779085
-Node: Debugging Concepts779518
-Node: Debugging Terms781374
-Node: Awk Debugging783971
-Node: Sample Debugging Session784863
-Node: Debugger Invocation785383
-Node: Finding The Bug786715
-Node: List of Debugger Commands793203
-Node: Breakpoint Control794537
-Node: Debugger Execution Control798201
-Node: Viewing And Changing Data801561
-Node: Execution Stack804917
-Node: Debugger Info806384
-Node: Miscellaneous Debugger Commands810366
-Node: Readline Support815542
-Node: Limitations816373
-Node: Arbitrary Precision Arithmetic818625
-Ref: Arbitrary Precision Arithmetic-Footnote-1820276
-Node: General Arithmetic820424
-Node: Floating Point Issues822144
-Node: String Conversion Precision823025
-Ref: String Conversion Precision-Footnote-1824731
-Node: Unexpected Results824840
-Node: POSIX Floating Point Problems826993
-Ref: POSIX Floating Point Problems-Footnote-1830818
-Node: Integer Programming830856
-Node: Floating-point Programming832609
-Ref: Floating-point Programming-Footnote-1838918
-Node: Floating-point Representation839182
-Node: Floating-point Context840347
-Ref: table-ieee-formats841189
-Node: Rounding Mode842573
-Ref: table-rounding-modes843052
-Ref: Rounding Mode-Footnote-1846056
-Node: Gawk and MPFR846237
-Node: Arbitrary Precision Floats847479
-Ref: Arbitrary Precision Floats-Footnote-1849908
-Node: Setting Precision850219
-Node: Setting Rounding Mode852952
-Ref: table-gawk-rounding-modes853356
-Node: Floating-point Constants854536
-Node: Changing Precision855960
-Ref: Changing Precision-Footnote-1857360
-Node: Exact Arithmetic857534
-Node: Arbitrary Precision Integers860642
-Ref: Arbitrary Precision Integers-Footnote-1863642
-Node: Dynamic Extensions863789
-Node: Extension Intro865166
-Node: Plugin License866374
-Node: Extension Mechanism Outline867059
-Ref: load-extension867476
-Ref: load-new-function868954
-Ref: call-new-function869949
-Node: Extension API Description871957
-Node: Extension API Functions Introduction873296
-Node: General Data Types878074
-Ref: General Data Types-Footnote-1883676
-Node: Requesting Values883975
-Ref: table-value-types-returned884706
-Node: Constructor Functions885660
-Node: Registration Functions888656
-Node: Extension Functions889341
-Node: Exit Callback Functions891515
-Node: Extension Version String892758
-Node: Input Parsers893408
-Node: Output Wrappers903125
-Node: Two-way processors907541
-Node: Printing Messages909671
-Ref: Printing Messages-Footnote-1910748
-Node: Updating `ERRNO'910900
-Node: Accessing Parameters911639
-Node: Symbol Table Access912869
-Node: Symbol table by name913381
-Node: Symbol table by cookie914954
-Ref: Symbol table by cookie-Footnote-1919083
-Node: Cached values919146
-Ref: Cached values-Footnote-1922589
-Node: Array Manipulation922680
-Ref: Array Manipulation-Footnote-1923778
-Node: Array Data Types923817
-Ref: Array Data Types-Footnote-1926520
-Node: Array Functions926612
-Node: Flattening Arrays930378
-Node: Creating Arrays937217
-Node: Extension API Variables942012
-Node: Extension Versioning942648
-Node: Extension API Informational Variables944549
-Node: Extension API Boilerplate945635
-Node: Finding Extensions949466
-Node: Extension Example950013
-Node: Internal File Description950751
-Node: Internal File Ops954439
-Ref: Internal File Ops-Footnote-1965886
-Node: Using Internal File Ops966026
-Ref: Using Internal File Ops-Footnote-1968379
-Node: Extension Samples968645
-Node: Extension Sample File Functions970169
-Node: Extension Sample Fnmatch978642
-Node: Extension Sample Fork980368
-Node: Extension Sample Inplace981586
-Node: Extension Sample Ord983364
-Node: Extension Sample Readdir984143
-Node: Extension Sample Revout985647
-Node: Extension Sample Rev2way986240
-Node: Extension Sample Read write array986930
-Node: Extension Sample Readfile988813
-Node: Extension Sample API Tests989570
-Node: Extension Sample Time990095
-Node: gawkextlib991402
-Node: Language History993783
-Node: V7/SVR3.1995305
-Node: SVR4997626
-Node: POSIX999068
-Node: BTL1000454
-Node: POSIX/GNU1001188
-Node: Common Extensions1006723
-Node: Ranges and Locales1007878
-Ref: Ranges and Locales-Footnote-11012496
-Ref: Ranges and Locales-Footnote-21012523
-Ref: Ranges and Locales-Footnote-31012783
-Node: Contributors1013004
-Node: Installation1017808
-Node: Gawk Distribution1018702
-Node: Getting1019186
-Node: Extracting1020012
-Node: Distribution contents1021704
-Node: Unix Installation1026965
-Node: Quick Installation1027582
-Node: Additional Configuration Options1029544
-Node: Configuration Philosophy1031021
-Node: Non-Unix Installation1033363
-Node: PC Installation1033821
-Node: PC Binary Installation1035120
-Node: PC Compiling1036968
-Node: PC Testing1039912
-Node: PC Using1041088
-Node: Cygwin1045273
-Node: MSYS1046273
-Node: VMS Installation1046787
-Node: VMS Compilation1047390
-Ref: VMS Compilation-Footnote-11048397
-Node: VMS Installation Details1048455
-Node: VMS Running1050090
-Node: VMS Old Gawk1051697
-Node: Bugs1052171
-Node: Other Versions1056023
-Node: Notes1061624
-Node: Compatibility Mode1062424
-Node: Additions1063207
-Node: Accessing The Source1064134
-Node: Adding Code1065574
-Node: New Ports1071619
-Node: Derived Files1075754
-Ref: Derived Files-Footnote-11081075
-Ref: Derived Files-Footnote-21081109
-Ref: Derived Files-Footnote-31081709
-Node: Future Extensions1081807
-Node: Implementation Limitations1082388
-Node: Extension Design1083640
-Node: Old Extension Problems1084789
-Ref: Old Extension Problems-Footnote-11086297
-Node: Extension New Mechanism Goals1086354
-Ref: Extension New Mechanism Goals-Footnote-11089713
-Node: Extension Other Design Decisions1089899
-Node: Extension Future Growth1092005
-Node: Old Extension Mechansim1092826
-Node: Basic Concepts1094565
-Node: Basic High Level1095246
-Ref: figure-general-flow1095517
-Ref: figure-process-flow1096116
-Ref: Basic High Level-Footnote-11099345
-Node: Basic Data Typing1099530
-Node: Glossary1102885
-Node: Copying1128356
-Node: GNU Free Documentation License1165913
-Node: Index1191050
+Node: Foreword40334
+Node: Preface44679
+Ref: Preface-Footnote-147732
+Ref: Preface-Footnote-247828
+Node: History48060
+Node: Names50434
+Ref: Names-Footnote-151911
+Node: This Manual51983
+Ref: This Manual-Footnote-157848
+Node: Conventions57948
+Node: Manual History60100
+Ref: Manual History-Footnote-163501
+Ref: Manual History-Footnote-263542
+Node: How To Contribute63616
+Node: Acknowledgments64760
+Node: Getting Started68971
+Node: Running gawk71350
+Node: One-shot72536
+Node: Read Terminal73761
+Ref: Read Terminal-Footnote-175411
+Ref: Read Terminal-Footnote-275687
+Node: Long75858
+Node: Executable Scripts77234
+Ref: Executable Scripts-Footnote-179067
+Ref: Executable Scripts-Footnote-279169
+Node: Comments79716
+Node: Quoting82183
+Node: DOS Quoting86806
+Node: Sample Data Files87481
+Node: Very Simple90513
+Node: Two Rules95112
+Node: More Complex97259
+Ref: More Complex-Footnote-1100189
+Node: Statements/Lines100274
+Ref: Statements/Lines-Footnote-1104736
+Node: Other Features105001
+Node: When105929
+Node: Invoking Gawk108076
+Node: Command Line109537
+Node: Options110320
+Ref: Options-Footnote-1125712
+Node: Other Arguments125737
+Node: Naming Standard Input128395
+Node: Environment Variables129489
+Node: AWKPATH Variable130047
+Ref: AWKPATH Variable-Footnote-1132805
+Node: AWKLIBPATH Variable133065
+Node: Other Environment Variables133783
+Node: Exit Status136278
+Node: Include Files136953
+Node: Loading Shared Libraries140522
+Node: Obsolete141886
+Node: Undocumented142583
+Node: Regexp142826
+Node: Regexp Usage144215
+Node: Escape Sequences146241
+Node: Regexp Operators151910
+Ref: Regexp Operators-Footnote-1159290
+Ref: Regexp Operators-Footnote-2159437
+Node: Bracket Expressions159535
+Ref: table-char-classes161425
+Node: GNU Regexp Operators163948
+Node: Case-sensitivity167671
+Ref: Case-sensitivity-Footnote-1170639
+Ref: Case-sensitivity-Footnote-2170874
+Node: Leftmost Longest170982
+Node: Computed Regexps172183
+Node: Reading Files175520
+Node: Records177523
+Ref: Records-Footnote-1186412
+Node: Fields186449
+Ref: Fields-Footnote-1189482
+Node: Nonconstant Fields189568
+Node: Changing Fields191770
+Node: Field Separators197729
+Node: Default Field Splitting200358
+Node: Regexp Field Splitting201475
+Node: Single Character Fields204817
+Node: Command Line Field Separator205876
+Node: Field Splitting Summary209317
+Ref: Field Splitting Summary-Footnote-1212428
+Node: Constant Size212529
+Node: Splitting By Content217113
+Ref: Splitting By Content-Footnote-1220839
+Node: Multiple Line220879
+Ref: Multiple Line-Footnote-1226726
+Node: Getline226905
+Node: Plain Getline229121
+Node: Getline/Variable231210
+Node: Getline/File232351
+Node: Getline/Variable/File233673
+Ref: Getline/Variable/File-Footnote-1235272
+Node: Getline/Pipe235359
+Node: Getline/Variable/Pipe238045
+Node: Getline/Coprocess239152
+Node: Getline/Variable/Coprocess240395
+Node: Getline Notes241109
+Node: Getline Summary243896
+Ref: table-getline-variants244304
+Node: Read Timeout245162
+Ref: Read Timeout-Footnote-1248903
+Node: Command line directories248960
+Node: Printing249590
+Node: Print251221
+Node: Print Examples252558
+Node: Output Separators255342
+Node: OFMT257102
+Node: Printf258460
+Node: Basic Printf259366
+Node: Control Letters260905
+Node: Format Modifiers264717
+Node: Printf Examples270726
+Node: Redirection273441
+Node: Special Files280406
+Node: Special FD280939
+Ref: Special FD-Footnote-1284564
+Node: Special Network284638
+Node: Special Caveats285488
+Node: Close Files And Pipes286284
+Ref: Close Files And Pipes-Footnote-1293267
+Ref: Close Files And Pipes-Footnote-2293415
+Node: Expressions293565
+Node: Values294697
+Node: Constants295373
+Node: Scalar Constants296053
+Ref: Scalar Constants-Footnote-1296912
+Node: Nondecimal-numbers297094
+Node: Regexp Constants300094
+Node: Using Constant Regexps300569
+Node: Variables303624
+Node: Using Variables304279
+Node: Assignment Options306003
+Node: Conversion307875
+Ref: table-locale-affects313366
+Ref: Conversion-Footnote-1313990
+Node: All Operators314099
+Node: Arithmetic Ops314729
+Node: Concatenation317234
+Ref: Concatenation-Footnote-1320027
+Node: Assignment Ops320147
+Ref: table-assign-ops325135
+Node: Increment Ops326466
+Node: Truth Values and Conditions329901
+Node: Truth Values330984
+Node: Typing and Comparison332033
+Node: Variable Typing332822
+Ref: Variable Typing-Footnote-1336719
+Node: Comparison Operators336841
+Ref: table-relational-ops337251
+Node: POSIX String Comparison340800
+Ref: POSIX String Comparison-Footnote-1341756
+Node: Boolean Ops341894
+Ref: Boolean Ops-Footnote-1345972
+Node: Conditional Exp346063
+Node: Function Calls347795
+Node: Precedence351389
+Node: Locales355058
+Node: Patterns and Actions356147
+Node: Pattern Overview357201
+Node: Regexp Patterns358870
+Node: Expression Patterns359413
+Node: Ranges363098
+Node: BEGIN/END366064
+Node: Using BEGIN/END366826
+Ref: Using BEGIN/END-Footnote-1369557
+Node: I/O And BEGIN/END369663
+Node: BEGINFILE/ENDFILE371945
+Node: Empty374849
+Node: Using Shell Variables375165
+Node: Action Overview377450
+Node: Statements379807
+Node: If Statement381661
+Node: While Statement383160
+Node: Do Statement385204
+Node: For Statement386360
+Node: Switch Statement389512
+Node: Break Statement391609
+Node: Continue Statement393599
+Node: Next Statement395392
+Node: Nextfile Statement397782
+Node: Exit Statement400425
+Node: Built-in Variables402841
+Node: User-modified403936
+Ref: User-modified-Footnote-1412291
+Node: Auto-set412353
+Ref: Auto-set-Footnote-1424903
+Ref: Auto-set-Footnote-2425108
+Node: ARGC and ARGV425164
+Node: Arrays429015
+Node: Array Basics430520
+Node: Array Intro431346
+Node: Reference to Elements435664
+Node: Assigning Elements437934
+Node: Array Example438425
+Node: Scanning an Array440157
+Node: Controlling Scanning442471
+Ref: Controlling Scanning-Footnote-1447394
+Node: Delete447710
+Ref: Delete-Footnote-1450475
+Node: Numeric Array Subscripts450532
+Node: Uninitialized Subscripts452715
+Node: Multi-dimensional454343
+Node: Multi-scanning457437
+Node: Arrays of Arrays459028
+Node: Functions463669
+Node: Built-in464488
+Node: Calling Built-in465566
+Node: Numeric Functions467554
+Ref: Numeric Functions-Footnote-1471386
+Ref: Numeric Functions-Footnote-2471743
+Ref: Numeric Functions-Footnote-3471791
+Node: String Functions472060
+Ref: String Functions-Footnote-1495557
+Ref: String Functions-Footnote-2495686
+Ref: String Functions-Footnote-3495934
+Node: Gory Details496021
+Ref: table-sub-escapes497700
+Ref: table-sub-posix-92499054
+Ref: table-sub-proposed500405
+Ref: table-posix-sub501759
+Ref: table-gensub-escapes503304
+Ref: Gory Details-Footnote-1504480
+Ref: Gory Details-Footnote-2504531
+Node: I/O Functions504682
+Ref: I/O Functions-Footnote-1511667
+Node: Time Functions511814
+Ref: Time Functions-Footnote-1522747
+Ref: Time Functions-Footnote-2522815
+Ref: Time Functions-Footnote-3522973
+Ref: Time Functions-Footnote-4523084
+Ref: Time Functions-Footnote-5523196
+Ref: Time Functions-Footnote-6523423
+Node: Bitwise Functions523689
+Ref: table-bitwise-ops524247
+Ref: Bitwise Functions-Footnote-1528468
+Node: Type Functions528652
+Node: I18N Functions529122
+Node: User-defined530749
+Node: Definition Syntax531553
+Ref: Definition Syntax-Footnote-1536463
+Node: Function Example536532
+Node: Function Caveats539126
+Node: Calling A Function539547
+Node: Variable Scope540662
+Node: Pass By Value/Reference543625
+Node: Return Statement547133
+Node: Dynamic Typing550114
+Node: Indirect Calls551045
+Node: Library Functions560730
+Ref: Library Functions-Footnote-1564243
+Ref: Library Functions-Footnote-2564386
+Node: Library Names564557
+Ref: Library Names-Footnote-1568028
+Ref: Library Names-Footnote-2568248
+Node: General Functions568334
+Node: Strtonum Function569287
+Node: Assert Function572217
+Node: Round Function575543
+Node: Cliff Random Function577086
+Node: Ordinal Functions578102
+Ref: Ordinal Functions-Footnote-1581172
+Ref: Ordinal Functions-Footnote-2581424
+Node: Join Function581633
+Ref: Join Function-Footnote-1583404
+Node: Getlocaltime Function583604
+Node: Data File Management587319
+Node: Filetrans Function587951
+Node: Rewind Function592020
+Node: File Checking593407
+Node: Empty Files594501
+Node: Ignoring Assigns596731
+Node: Getopt Function598284
+Ref: Getopt Function-Footnote-1609588
+Node: Passwd Functions609791
+Ref: Passwd Functions-Footnote-1618766
+Node: Group Functions618854
+Node: Walking Arrays626938
+Node: Sample Programs629075
+Node: Running Examples629749
+Node: Clones630477
+Node: Cut Program631701
+Node: Egrep Program641546
+Ref: Egrep Program-Footnote-1649319
+Node: Id Program649429
+Node: Split Program653045
+Ref: Split Program-Footnote-1656564
+Node: Tee Program656692
+Node: Uniq Program659495
+Node: Wc Program666924
+Ref: Wc Program-Footnote-1671190
+Ref: Wc Program-Footnote-2671390
+Node: Miscellaneous Programs671482
+Node: Dupword Program672670
+Node: Alarm Program674701
+Node: Translate Program679450
+Ref: Translate Program-Footnote-1683837
+Ref: Translate Program-Footnote-2684065
+Node: Labels Program684199
+Ref: Labels Program-Footnote-1687570
+Node: Word Sorting687654
+Node: History Sorting691538
+Node: Extract Program693377
+Ref: Extract Program-Footnote-1700878
+Node: Simple Sed701006
+Node: Igawk Program704068
+Ref: Igawk Program-Footnote-1719225
+Ref: Igawk Program-Footnote-2719426
+Node: Anagram Program719564
+Node: Signature Program722632
+Node: Advanced Features723732
+Node: Nondecimal Data725614
+Node: Array Sorting727197
+Node: Controlling Array Traversal727894
+Node: Array Sorting Functions736132
+Ref: Array Sorting Functions-Footnote-1739806
+Ref: Array Sorting Functions-Footnote-2739899
+Node: Two-way I/O740093
+Ref: Two-way I/O-Footnote-1745525
+Node: TCP/IP Networking745595
+Node: Profiling748439
+Node: Internationalization755894
+Node: I18N and L10N757319
+Node: Explaining gettext758005
+Ref: Explaining gettext-Footnote-1763071
+Ref: Explaining gettext-Footnote-2763255
+Node: Programmer i18n763420
+Node: Translator i18n767620
+Node: String Extraction768413
+Ref: String Extraction-Footnote-1769374
+Node: Printf Ordering769460
+Ref: Printf Ordering-Footnote-1772244
+Node: I18N Portability772308
+Ref: I18N Portability-Footnote-1774757
+Node: I18N Example774820
+Ref: I18N Example-Footnote-1777455
+Node: Gawk I18N777527
+Node: Debugger778148
+Node: Debugging779119
+Node: Debugging Concepts779552
+Node: Debugging Terms781408
+Node: Awk Debugging784005
+Node: Sample Debugging Session784897
+Node: Debugger Invocation785417
+Node: Finding The Bug786749
+Node: List of Debugger Commands793237
+Node: Breakpoint Control794571
+Node: Debugger Execution Control798235
+Node: Viewing And Changing Data801595
+Node: Execution Stack804951
+Node: Debugger Info806418
+Node: Miscellaneous Debugger Commands810400
+Node: Readline Support815576
+Node: Limitations816407
+Node: Arbitrary Precision Arithmetic818659
+Ref: Arbitrary Precision Arithmetic-Footnote-1820310
+Node: General Arithmetic820458
+Node: Floating Point Issues822178
+Node: String Conversion Precision823059
+Ref: String Conversion Precision-Footnote-1824765
+Node: Unexpected Results824874
+Node: POSIX Floating Point Problems827027
+Ref: POSIX Floating Point Problems-Footnote-1830852
+Node: Integer Programming830890
+Node: Floating-point Programming832643
+Ref: Floating-point Programming-Footnote-1838952
+Node: Floating-point Representation839216
+Node: Floating-point Context840381
+Ref: table-ieee-formats841223
+Node: Rounding Mode842607
+Ref: table-rounding-modes843086
+Ref: Rounding Mode-Footnote-1846090
+Node: Gawk and MPFR846271
+Node: Arbitrary Precision Floats847513
+Ref: Arbitrary Precision Floats-Footnote-1849942
+Node: Setting Precision850253
+Node: Setting Rounding Mode852986
+Ref: table-gawk-rounding-modes853390
+Node: Floating-point Constants854570
+Node: Changing Precision855994
+Ref: Changing Precision-Footnote-1857394
+Node: Exact Arithmetic857568
+Node: Arbitrary Precision Integers860676
+Ref: Arbitrary Precision Integers-Footnote-1863676
+Node: Dynamic Extensions863823
+Node: Extension Intro865200
+Node: Plugin License866408
+Node: Extension Mechanism Outline867093
+Ref: load-extension867510
+Ref: load-new-function868988
+Ref: call-new-function869983
+Node: Extension API Description871991
+Node: Extension API Functions Introduction873323
+Node: General Data Types878101
+Ref: General Data Types-Footnote-1883703
+Node: Requesting Values884002
+Ref: table-value-types-returned884733
+Node: Constructor Functions885687
+Node: Registration Functions888683
+Node: Extension Functions889368
+Node: Exit Callback Functions891542
+Node: Extension Version String892785
+Node: Input Parsers893435
+Node: Output Wrappers903152
+Node: Two-way processors907568
+Node: Printing Messages909698
+Ref: Printing Messages-Footnote-1910775
+Node: Updating `ERRNO'910927
+Node: Accessing Parameters911666
+Node: Symbol Table Access912896
+Node: Symbol table by name913408
+Node: Symbol table by cookie914981
+Ref: Symbol table by cookie-Footnote-1919110
+Node: Cached values919173
+Ref: Cached values-Footnote-1922616
+Node: Array Manipulation922707
+Ref: Array Manipulation-Footnote-1923805
+Node: Array Data Types923844
+Ref: Array Data Types-Footnote-1926547
+Node: Array Functions926639
+Node: Flattening Arrays930405
+Node: Creating Arrays937244
+Node: Extension API Variables942039
+Node: Extension Versioning942675
+Node: Extension API Informational Variables944576
+Node: Extension API Boilerplate945662
+Node: Finding Extensions949493
+Node: Extension Example950040
+Node: Internal File Description950778
+Node: Internal File Ops954466
+Ref: Internal File Ops-Footnote-1965913
+Node: Using Internal File Ops966053
+Ref: Using Internal File Ops-Footnote-1968406
+Node: Extension Samples968672
+Node: Extension Sample File Functions970196
+Node: Extension Sample Fnmatch978669
+Node: Extension Sample Fork980395
+Node: Extension Sample Inplace981613
+Node: Extension Sample Ord983391
+Node: Extension Sample Readdir984170
+Node: Extension Sample Revout985674
+Node: Extension Sample Rev2way986267
+Node: Extension Sample Read write array986957
+Node: Extension Sample Readfile988840
+Node: Extension Sample API Tests989597
+Node: Extension Sample Time990122
+Node: gawkextlib991429
+Node: Language History993810
+Node: V7/SVR3.1995332
+Node: SVR4997653
+Node: POSIX999095
+Node: BTL1000481
+Node: POSIX/GNU1001215
+Node: Common Extensions1006750
+Node: Ranges and Locales1007905
+Ref: Ranges and Locales-Footnote-11012523
+Ref: Ranges and Locales-Footnote-21012550
+Ref: Ranges and Locales-Footnote-31012810
+Node: Contributors1013031
+Node: Installation1017835
+Node: Gawk Distribution1018729
+Node: Getting1019213
+Node: Extracting1020039
+Node: Distribution contents1021731
+Node: Unix Installation1026992
+Node: Quick Installation1027609
+Node: Additional Configuration Options1029571
+Node: Configuration Philosophy1031048
+Node: Non-Unix Installation1033390
+Node: PC Installation1033848
+Node: PC Binary Installation1035147
+Node: PC Compiling1036995
+Node: PC Testing1039939
+Node: PC Using1041115
+Node: Cygwin1045300
+Node: MSYS1046300
+Node: VMS Installation1046814
+Node: VMS Compilation1047417
+Ref: VMS Compilation-Footnote-11048424
+Node: VMS Installation Details1048482
+Node: VMS Running1050117
+Node: VMS Old Gawk1051724
+Node: Bugs1052198
+Node: Other Versions1056050
+Node: Notes1061651
+Node: Compatibility Mode1062451
+Node: Additions1063234
+Node: Accessing The Source1064161
+Node: Adding Code1065601
+Node: New Ports1071646
+Node: Derived Files1075781
+Ref: Derived Files-Footnote-11081102
+Ref: Derived Files-Footnote-21081136
+Ref: Derived Files-Footnote-31081736
+Node: Future Extensions1081834
+Node: Implementation Limitations1082415
+Node: Extension Design1083667
+Node: Old Extension Problems1084816
+Ref: Old Extension Problems-Footnote-11086324
+Node: Extension New Mechanism Goals1086381
+Ref: Extension New Mechanism Goals-Footnote-11089740
+Node: Extension Other Design Decisions1089926
+Node: Extension Future Growth1092032
+Node: Old Extension Mechanism1092853
+Node: Basic Concepts1094593
+Node: Basic High Level1095274
+Ref: figure-general-flow1095545
+Ref: figure-process-flow1096144
+Ref: Basic High Level-Footnote-11099373
+Node: Basic Data Typing1099558
+Node: Glossary1102913
+Node: Copying1128384
+Node: GNU Free Documentation License1165941
+Node: Index1191078
End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index b579592..a9b4ab8 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -659,17 +659,6 @@ particular records in a file and perform operations upon
them.
* Anagram Program:: Finding anagrams from a dictionary.
* Signature Program:: People do amazing things with too much
time on their hands.
-* I18N and L10N:: Internationalization and Localization.
-* Explaining gettext:: How GNU @code{gettext} works.
-* Programmer i18n:: Features for the programmer.
-* Translator i18n:: Features for the translator.
-* String Extraction:: Extracting marked strings.
-* Printf Ordering:: Rearranging @code{printf} arguments.
-* I18N Portability:: @command{awk}-level portability
- issues.
-* I18N Example:: A simple i18n example.
-* Gawk I18N:: @command{gawk} is also
- internationalized.
* Nondecimal Data:: Allowing nondecimal input data.
* Array Sorting:: Facilities for controlling array
traversal and sorting arrays.
@@ -681,6 +670,17 @@ particular records in a file and perform operations upon
them.
* TCP/IP Networking:: Using @command{gawk} for network
programming.
* Profiling:: Profiling your @command{awk} programs.
+* I18N and L10N:: Internationalization and Localization.
+* Explaining gettext:: How GNU @code{gettext} works.
+* Programmer i18n:: Features for the programmer.
+* Translator i18n:: Features for the translator.
+* String Extraction:: Extracting marked strings.
+* Printf Ordering:: Rearranging @code{printf} arguments.
+* I18N Portability:: @command{awk}-level portability
+ issues.
+* I18N Example:: A simple i18n example.
+* Gawk I18N:: @command{gawk} is also
+ internationalized.
* Debugging:: Introduction to @command{gawk}
debugger.
* Debugging Concepts:: Debugging in General.
@@ -741,7 +741,7 @@ particular records in a file and perform operations upon
them.
* Output Wrappers:: Registering an output wrapper.
* Two-way processors:: Registering a two-way processor.
* Printing Messages:: Functions for printing messages.
-* Updating @code{ERRNO}:: Functions for updating
@code{ERRNO}.
+* Updating @code{ERRNO}:: Functions for updating @code{ERRNO}.
* Accessing Parameters:: Functions for accessing parameters.
* Symbol Table Access:: Functions for accessing global
variables.
@@ -845,13 +845,14 @@ particular records in a file and perform operations upon
them.
@command{git} repository.
* Future Extensions:: New features that may be implemented
one day.
-* Implementation Limitations:: Some limitations of the implementation.
+* Implementation Limitations:: Some limitations of the
+ implementation.
* Extension Design:: Design notes about the extension API.
* Old Extension Problems:: Problems with the old mechanism.
* Extension New Mechanism Goals:: Goals for the new mechanism.
* Extension Other Design Decisions:: Some other design decisions.
* Extension Future Growth:: Some room for future growth.
-* Old Extension Mechansim:: Some compatibility for old extensions.
+* Old Extension Mechanism:: Some compatibility for old extensions.
* Basic High Level:: The high level view.
* Basic Data Typing:: A very quick intro to data types.
@end detailmenu
@@ -1756,7 +1757,7 @@ The intrepid members of the GNITS mailing list, and most
notably Ulrich
Drepper, provided invaluable help and feedback for the design of the
internationalization features.
-Chuck Toporek, Mary Sheehan, and Claire Coutier of O'Reilly & Associates
contributed
+Chuck Toporek, Mary Sheehan, and Claire Cloutier of O'Reilly & Associates
contributed
significant editorial help for this @value{DOCUMENT} for the
3.1 release of @command{gawk}.
@end quotation
@@ -5463,7 +5464,6 @@ Using regexp constants is better form; it shows clearly
that you
intend a regexp match.
@end itemize
address@hidden fakenode --- for prepinfo
@cindex sidebar, Using @code{\n} in Bracket Expressions of Dynamic Regexps
@ifdocbook
@docbook
@@ -9697,7 +9697,6 @@ If @command{gawk} is in compatibility mode
(@pxref{Options}),
they are not available.
address@hidden fakenode --- for prepinfo
@cindex sidebar, A Constant's Base Does Not Affect Its Value
@ifdocbook
@docbook
@@ -28347,7 +28346,6 @@ around on your screen.
Numerical programming is an extensive area; if you need to develop
sophisticated numerical algorithms then @command{gawk} may not be
the ideal tool, and this documentation may not be sufficient.
address@hidden FIXME: JOHN: Do you want to cite some actual books?
It might require digesting a book or two to really internalize how to compute
with ideal accuracy and precision,
and the result often depends on the particular application.
@@ -29338,7 +29336,7 @@ This (rather large) @value{SECTION} describes the API
in detail.
* Registration Functions:: Functions to register things with
@command{gawk}.
* Printing Messages:: Functions for printing messages.
-* Updating @code{ERRNO}:: Functions for updating
@code{ERRNO}.
+* Updating @code{ERRNO}:: Functions for updating @code{ERRNO}.
* Accessing Parameters:: Functions for accessing parameters.
* Symbol Table Access:: Functions for accessing global
variables.
@@ -35127,7 +35125,7 @@ maintainers of @command{gawk}. Everything in it
applies specifically to
* Future Extensions:: New features that may be implemented one day.
* Implementation Limitations:: Some limitations of the implementation.
* Extension Design:: Design notes about the extension API.
-* Old Extension Mechansim:: Some compatibility for old extensions.
+* Old Extension Mechanism:: Some compatibility for old extensions.
@end menu
@node Compatibility Mode
@@ -35978,7 +35976,7 @@ conflicts.
Of course, as of this writing, no decisions have been made with respect
to any of the above.
address@hidden Old Extension Mechansim
address@hidden Old Extension Mechanism
@appendixsec Compatibility For Old Extensions
@ref{Dynamic Extensions}, describes the supported API and mechanisms
@@ -36005,7 +36003,7 @@ Just as in previous versions, you load an old-style
extension with the
This function in turn finds and loads the shared object file containing
the extension and calls its @code{dl_load()} C routine.
-Because original-style and new-style extensions use different initialiation
+Because original-style and new-style extensions use different initialization
routines (@code{dl_load()} versus @code{dlload()}), they may safely
be installed in the same directory (to be found by @env{AWKLIBPATH})
without conflict.
diff --git a/doc/gawkman.texi b/doc/gawkman.texi
index 463d4b2..f2a454b 100644
--- a/doc/gawkman.texi
+++ b/doc/gawkman.texi
@@ -654,17 +654,6 @@ particular records in a file and perform operations upon
them.
* Anagram Program:: Finding anagrams from a dictionary.
* Signature Program:: People do amazing things with too much
time on their hands.
-* I18N and L10N:: Internationalization and Localization.
-* Explaining gettext:: How GNU @code{gettext} works.
-* Programmer i18n:: Features for the programmer.
-* Translator i18n:: Features for the translator.
-* String Extraction:: Extracting marked strings.
-* Printf Ordering:: Rearranging @code{printf} arguments.
-* I18N Portability:: @command{awk}-level portability
- issues.
-* I18N Example:: A simple i18n example.
-* Gawk I18N:: @command{gawk} is also
- internationalized.
* Nondecimal Data:: Allowing nondecimal input data.
* Array Sorting:: Facilities for controlling array
traversal and sorting arrays.
@@ -676,6 +665,17 @@ particular records in a file and perform operations upon
them.
* TCP/IP Networking:: Using @command{gawk} for network
programming.
* Profiling:: Profiling your @command{awk} programs.
+* I18N and L10N:: Internationalization and Localization.
+* Explaining gettext:: How GNU @code{gettext} works.
+* Programmer i18n:: Features for the programmer.
+* Translator i18n:: Features for the translator.
+* String Extraction:: Extracting marked strings.
+* Printf Ordering:: Rearranging @code{printf} arguments.
+* I18N Portability:: @command{awk}-level portability
+ issues.
+* I18N Example:: A simple i18n example.
+* Gawk I18N:: @command{gawk} is also
+ internationalized.
* Debugging:: Introduction to @command{gawk}
debugger.
* Debugging Concepts:: Debugging in General.
@@ -736,7 +736,7 @@ particular records in a file and perform operations upon
them.
* Output Wrappers:: Registering an output wrapper.
* Two-way processors:: Registering a two-way processor.
* Printing Messages:: Functions for printing messages.
-* Updating @code{ERRNO}:: Functions for updating
@code{ERRNO}.
+* Updating @code{ERRNO}:: Functions for updating @code{ERRNO}.
* Accessing Parameters:: Functions for accessing parameters.
* Symbol Table Access:: Functions for accessing global
variables.
@@ -840,13 +840,14 @@ particular records in a file and perform operations upon
them.
@command{git} repository.
* Future Extensions:: New features that may be implemented
one day.
-* Implementation Limitations:: Some limitations of the implementation.
+* Implementation Limitations:: Some limitations of the
+ implementation.
* Extension Design:: Design notes about the extension API.
* Old Extension Problems:: Problems with the old mechanism.
* Extension New Mechanism Goals:: Goals for the new mechanism.
* Extension Other Design Decisions:: Some other design decisions.
* Extension Future Growth:: Some room for future growth.
-* Old Extension Mechansim:: Some compatibility for old extensions.
+* Old Extension Mechanism:: Some compatibility for old extensions.
* Basic High Level:: The high level view.
* Basic Data Typing:: A very quick intro to data types.
@end detailmenu
@@ -1723,7 +1724,7 @@ The intrepid members of the GNITS mailing list, and most
notably Ulrich
Drepper, provided invaluable help and feedback for the design of the
internationalization features.
-Chuck Toporek, Mary Sheehan, and Claire Coutier of O'Reilly & Associates
contributed
+Chuck Toporek, Mary Sheehan, and Claire Cloutier of O'Reilly & Associates
contributed
significant editorial help for this @value{DOCUMENT} for the
3.1 release of @command{gawk}.
@end quotation
@@ -5310,7 +5311,6 @@ Using regexp constants is better form; it shows clearly
that you
intend a regexp match.
@end itemize
address@hidden fakenode --- for prepinfo
@sidebar Using @code{\n} in Bracket Expressions of Dynamic Regexps
@cindex regular expressions, dynamic, with embedded newlines
@cindex newlines, in dynamic regexps
@@ -9223,7 +9223,6 @@ If @command{gawk} is in compatibility mode
(@pxref{Options}),
they are not available.
address@hidden fakenode --- for prepinfo
@sidebar A Constant's Base Does Not Affect Its Value
Once a numeric constant has
@@ -27496,7 +27495,6 @@ around on your screen.
Numerical programming is an extensive area; if you need to develop
sophisticated numerical algorithms then @command{gawk} may not be
the ideal tool, and this documentation may not be sufficient.
address@hidden FIXME: JOHN: Do you want to cite some actual books?
It might require digesting a book or two to really internalize how to compute
with ideal accuracy and precision,
and the result often depends on the particular application.
@@ -28487,7 +28485,7 @@ This (rather large) @value{SECTION} describes the API
in detail.
* Registration Functions:: Functions to register things with
@command{gawk}.
* Printing Messages:: Functions for printing messages.
-* Updating @code{ERRNO}:: Functions for updating
@code{ERRNO}.
+* Updating @code{ERRNO}:: Functions for updating @code{ERRNO}.
* Accessing Parameters:: Functions for accessing parameters.
* Symbol Table Access:: Functions for accessing global
variables.
@@ -34276,7 +34274,7 @@ maintainers of @command{gawk}. Everything in it
applies specifically to
* Future Extensions:: New features that may be implemented one day.
* Implementation Limitations:: Some limitations of the implementation.
* Extension Design:: Design notes about the extension API.
-* Old Extension Mechansim:: Some compatibility for old extensions.
+* Old Extension Mechanism:: Some compatibility for old extensions.
@end menu
@node Compatibility Mode
@@ -35127,7 +35125,7 @@ conflicts.
Of course, as of this writing, no decisions have been made with respect
to any of the above.
address@hidden Old Extension Mechansim
address@hidden Old Extension Mechanism
@appendixsec Compatibility For Old Extensions
@ref{Dynamic Extensions}, describes the supported API and mechanisms
@@ -35154,7 +35152,7 @@ Just as in previous versions, you load an old-style
extension with the
This function in turn finds and loads the shared object file containing
the extension and calls its @code{dl_load()} C routine.
-Because original-style and new-style extensions use different initialiation
+Because original-style and new-style extensions use different initialization
routines (@code{dl_load()} versus @code{dlload()}), they may safely
be installed in the same directory (to be found by @env{AWKLIBPATH})
without conflict.
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=9d5a4c613f13c22684ecc068a9e595b76bd744ca
commit 9d5a4c613f13c22684ecc068a9e595b76bd744ca
Author: Arnold D. Robbins <address@hidden>
Date: Sun Apr 21 22:20:00 2013 +0300
Update 'missing' script.
diff --git a/ChangeLog b/ChangeLog
index 0fd34dc..9ef42ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-04-21 Arnold D. Robbins <address@hidden>
+
+ * missing: Update from Automake 1.13.1.
+
2013-04-18 Arnold D. Robbins <address@hidden>
* configure.ac: Fix a typo.
diff --git a/missing b/missing
index 9a55648..cdea514 100755
--- a/missing
+++ b/missing
@@ -1,10 +1,10 @@
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-01-06.18; # UTC
+scriptversion=2012-06-26.16; # UTC
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <address@hidden>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <address@hidden>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -29,61 +29,33 @@ if test $# -eq 0; then
exit 1
fi
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, 'missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
+case $1 in
-msg="missing on your system"
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file 'aclocal.m4'
- autoconf touch file 'configure'
- autoheader touch file 'config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all 'Makefile.in' files
- bison create 'y.tab.[ch]', if possible, from existing .[ch]
- flex create 'lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create 'lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create 'y.tab.[ch]', if possible, from existing .[ch]
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
@@ -98,228 +70,141 @@ Send bug reports to <address@hidden>."
;;
-*)
- echo 1>&2 "$0: Unknown '$1' option"
+ echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
-
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running '$TOOL --version' or '$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'acinclude.m4' or '${configure_ac}'. You might want
- to install the Automake and Perl packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified '${configure_ac}'. You might want to install the
- Autoconf and GNU m4 packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'acconfig.h' or '${configure_ac}'. You might want
- to install the Autoconf and GNU m4 packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p'
${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
- You might want to install the Automake and Perl packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te*)
- echo 1>&2 "\
-WARNING: '$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get '$1' as part of Autoconf from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: '$1' $msg. You should only need it if
- you modified a '.y' file. You may need the Bison package
- in order for those modifications to take effect. You can get
- Bison from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a '.l' file. You may need the Flex package
- in order for those modifications to take effect. You can get
- Flex from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- Help2man package in order for those modifications to take
- effect. You can get Help2man from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a '.texi' or '.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy 'make' (AIX,
- DU, IRIX). You might want to install the Texinfo package or
- the GNU make package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /address@hidden/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
- *)
- echo 1>&2 "\
-WARNING: '$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the 'README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing '$1' program."
- exit 1
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'automa4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
;;
-esac
-
-exit 0
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 4 +
doc/ChangeLog | 5 +
doc/gawk.info | 1067 +++++++++++++++++++++++++++---------------------------
doc/gawk.texi | 42 +--
doc/gawkman.texi | 42 +--
missing | 405 ++++++++-------------
6 files changed, 728 insertions(+), 837 deletions(-)
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gawk-diffs] [SCM] gawk branch, master, updated. 7086030948da88c9683a136c945b5b864c1a1a11,
Arnold Robbins <=