aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--awklib/eg/prog/id.awk6
-rw-r--r--doc/ChangeLog7
-rw-r--r--doc/gawk.info812
-rw-r--r--doc/gawk.texi14
-rw-r--r--doc/gawktexi.in14
-rw-r--r--doc/wordlist13
-rw-r--r--doc/wordlist31
-rw-r--r--helpers/ChangeLog4
-rwxr-xr-xhelpers/find-utf.sh53
9 files changed, 501 insertions, 423 deletions
diff --git a/awklib/eg/prog/id.awk b/awklib/eg/prog/id.awk
index ac6bd990..2ced41bd 100644
--- a/awklib/eg/prog/id.awk
+++ b/awklib/eg/prog/id.awk
@@ -24,9 +24,9 @@ function usage()
{
printf("Usage:\n" \
"\tid [user]\n" \
- "\tid −G [−n] [user]\n" \
- "\tid −g [−nr] [user]\n" \
- "\tid −u [−nr] [user]\n") > "/dev/stderr"
+ "\tid -G [-n] [user]\n" \
+ "\tid -g [-nr] [user]\n" \
+ "\tid -u [-nr] [user]\n") > "/dev/stderr"
exit 1
}
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 95f27d75..ef588757 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -3,9 +3,16 @@
* gawktexi.in: Clarify that initialization and increment parts of
a for loop can't use the C comma operator. Thanks to J Naman
<jnaman2@gmail.com> for pointing out the doc was too subtle.
+
Unrelated: further expand the bug reporting text and discussion
about comp.lang.awk.
+ Unrelated: Fix some spelling errors. Also, convert some
+ Unicode characters back into plain ASCII.
+
+ * wordlist: Updated.
+ * wordlist3: Updated.
+
2021-10-03 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Continue clarifying typeof() usage. And other fixes.
diff --git a/doc/gawk.info b/doc/gawk.info
index c1c4080c..29209ebf 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -10586,7 +10586,7 @@ field per output line.
C and C++ programmers might expect to be able to use the comma
operator to set more than one variable in the INITIALIZATION part of the
-'for' loop, or to increment multiple variables in the INCREMEMNT part of
+'for' loop, or to increment multiple variables in the INCREMENT part of
the loop, like so:
for (i = 0, j = length(a); i < j; i++, j--) ... C/C++, not awk!
@@ -18393,9 +18393,9 @@ options, and then a 'usage()' function:
{
printf("Usage:\n" \
"\tid [user]\n" \
- "\tid −G [−n] [user]\n" \
- "\tid −g [−nr] [user]\n" \
- "\tid −u [−nr] [user]\n") > "/dev/stderr"
+ "\tid -G [-n] [user]\n" \
+ "\tid -g [-nr] [user]\n" \
+ "\tid -u [-nr] [user]\n") > "/dev/stderr"
exit 1
}
@@ -30780,7 +30780,7 @@ Various '.c', '.y', and '.h' files
printed document and with 'makeinfo' to produce an Info or HTML
file.
-'doc/gawkorkflow.info'
+'doc/gawkworkflow.info'
The generated Info file for 'Participating in 'gawk' Development'.
'doc/igawk.1'
@@ -30952,7 +30952,7 @@ B.2.1.1 Building With MPFR
Use of the MPFR library with 'gawk' is an optional feature: if you have
the MPFR and GMP libraries already installed when you configure and
-build 'gawk', 'gawk' automatically will be able to use them.
+build 'gawk', 'gawk' automatically will be able to use them.
You can install these libraries from source code by fetching them
from the GNU distribution site at 'ftp.gnu.org'.
@@ -38855,406 +38855,406 @@ Node: If Statement448734
Node: While Statement450229
Node: Do Statement452257
Node: For Statement453405
-Node: Switch Statement456661
-Node: Break Statement459102
-Node: Continue Statement461194
-Node: Next Statement463021
-Node: Nextfile Statement465404
-Node: Exit Statement468093
-Node: Built-in Variables470496
-Node: User-modified471629
-Node: Auto-set479396
-Ref: Auto-set-Footnote-1496203
-Ref: Auto-set-Footnote-2496409
-Node: ARGC and ARGV496465
-Node: Pattern Action Summary500678
-Node: Arrays503108
-Node: Array Basics504437
-Node: Array Intro505281
-Ref: figure-array-elements507256
-Ref: Array Intro-Footnote-1509960
-Node: Reference to Elements510088
-Node: Assigning Elements512552
-Node: Array Example513043
-Node: Scanning an Array514802
-Node: Controlling Scanning517824
-Ref: Controlling Scanning-Footnote-1524280
-Node: Numeric Array Subscripts524596
-Node: Uninitialized Subscripts526780
-Node: Delete528399
-Ref: Delete-Footnote-1531151
-Node: Multidimensional531208
-Node: Multiscanning534303
-Node: Arrays of Arrays535894
-Node: Arrays Summary540662
-Node: Functions542755
-Node: Built-in543793
-Node: Calling Built-in544946
-Node: Boolean Functions546942
-Node: Numeric Functions547496
-Ref: Numeric Functions-Footnote-1551523
-Ref: Numeric Functions-Footnote-2552171
-Ref: Numeric Functions-Footnote-3552219
-Node: String Functions552491
-Ref: String Functions-Footnote-1577006
-Ref: String Functions-Footnote-2577134
-Ref: String Functions-Footnote-3577382
-Node: Gory Details577469
-Ref: table-sub-escapes579260
-Ref: table-sub-proposed580779
-Ref: table-posix-sub582142
-Ref: table-gensub-escapes583683
-Ref: Gory Details-Footnote-1584506
-Node: I/O Functions584660
-Ref: table-system-return-values591114
-Ref: I/O Functions-Footnote-1593194
-Ref: I/O Functions-Footnote-2593342
-Node: Time Functions593462
-Ref: Time Functions-Footnote-1604133
-Ref: Time Functions-Footnote-2604201
-Ref: Time Functions-Footnote-3604359
-Ref: Time Functions-Footnote-4604470
-Ref: Time Functions-Footnote-5604582
-Ref: Time Functions-Footnote-6604809
-Node: Bitwise Functions605075
-Ref: table-bitwise-ops605669
-Ref: Bitwise Functions-Footnote-1611732
-Ref: Bitwise Functions-Footnote-2611905
-Node: Type Functions612096
-Node: I18N Functions615516
-Node: User-defined617167
-Node: Definition Syntax617979
-Ref: Definition Syntax-Footnote-1623673
-Node: Function Example623744
-Ref: Function Example-Footnote-1626666
-Node: Function Calling626688
-Node: Calling A Function627276
-Node: Variable Scope628234
-Node: Pass By Value/Reference631228
-Node: Function Caveats633872
-Ref: Function Caveats-Footnote-1635919
-Node: Return Statement636039
-Node: Dynamic Typing639018
-Node: Indirect Calls639948
-Ref: Indirect Calls-Footnote-1650203
-Node: Functions Summary650331
-Node: Library Functions653036
-Ref: Library Functions-Footnote-1656643
-Ref: Library Functions-Footnote-2656786
-Node: Library Names656957
-Ref: Library Names-Footnote-1660624
-Ref: Library Names-Footnote-2660847
-Node: General Functions660933
-Node: Strtonum Function662115
-Node: Assert Function665137
-Node: Round Function668463
-Node: Cliff Random Function670003
-Node: Ordinal Functions671019
-Ref: Ordinal Functions-Footnote-1674082
-Ref: Ordinal Functions-Footnote-2674334
-Node: Join Function674544
-Ref: Join Function-Footnote-1676314
-Node: Getlocaltime Function676514
-Node: Readfile Function680256
-Node: Shell Quoting682233
-Node: Isnumeric Function683661
-Node: Data File Management685049
-Node: Filetrans Function685681
-Node: Rewind Function689777
-Node: File Checking691686
-Ref: File Checking-Footnote-1693020
-Node: Empty Files693221
-Node: Ignoring Assigns695200
-Node: Getopt Function696750
-Ref: Getopt Function-Footnote-1711973
-Node: Passwd Functions712173
-Ref: Passwd Functions-Footnote-1721012
-Node: Group Functions721100
-Ref: Group Functions-Footnote-1728998
-Node: Walking Arrays729205
-Node: Library Functions Summary732213
-Node: Library Exercises733619
-Node: Sample Programs734084
-Node: Running Examples734854
-Node: Clones735582
-Node: Cut Program736806
-Node: Egrep Program746946
-Node: Id Program755947
-Node: Split Program765894
-Ref: Split Program-Footnote-1775787
-Node: Tee Program775960
-Node: Uniq Program778750
-Node: Wc Program786338
-Node: Bytes vs. Characters786725
-Node: Using extensions788273
-Node: wc program789027
-Node: Miscellaneous Programs793892
-Node: Dupword Program795105
-Node: Alarm Program797135
-Node: Translate Program801990
-Ref: Translate Program-Footnote-1806555
-Node: Labels Program806825
-Ref: Labels Program-Footnote-1810176
-Node: Word Sorting810260
-Node: History Sorting814332
-Node: Extract Program816557
-Node: Simple Sed824611
-Node: Igawk Program827685
-Ref: Igawk Program-Footnote-1842016
-Ref: Igawk Program-Footnote-2842218
-Ref: Igawk Program-Footnote-3842340
-Node: Anagram Program842455
-Node: Signature Program845517
-Node: Programs Summary846764
-Node: Programs Exercises847978
-Ref: Programs Exercises-Footnote-1852108
-Node: Advanced Features852194
-Node: Nondecimal Data854325
-Node: Boolean Typed Values855923
-Node: Array Sorting857804
-Node: Controlling Array Traversal858509
-Ref: Controlling Array Traversal-Footnote-1866877
-Node: Array Sorting Functions866995
-Ref: Array Sorting Functions-Footnote-1872369
-Node: Two-way I/O872565
-Ref: Two-way I/O-Footnote-1880291
-Ref: Two-way I/O-Footnote-2880478
-Node: TCP/IP Networking880560
-Node: Profiling883678
-Node: Extension Philosophy892987
-Node: Advanced Features Summary894466
-Node: Internationalization896481
-Node: I18N and L10N898155
-Node: Explaining gettext898842
-Ref: Explaining gettext-Footnote-1904734
-Ref: Explaining gettext-Footnote-2904919
-Node: Programmer i18n905084
-Ref: Programmer i18n-Footnote-1910033
-Node: Translator i18n910082
-Node: String Extraction910876
-Ref: String Extraction-Footnote-1912008
-Node: Printf Ordering912094
-Ref: Printf Ordering-Footnote-1914880
-Node: I18N Portability914944
-Ref: I18N Portability-Footnote-1917400
-Node: I18N Example917463
-Ref: I18N Example-Footnote-1920738
-Ref: I18N Example-Footnote-2920811
-Node: Gawk I18N920920
-Node: I18N Summary921569
-Node: Debugger922910
-Node: Debugging923910
-Node: Debugging Concepts924351
-Node: Debugging Terms926160
-Node: Awk Debugging928735
-Ref: Awk Debugging-Footnote-1929680
-Node: Sample Debugging Session929812
-Node: Debugger Invocation930346
-Node: Finding The Bug931732
-Node: List of Debugger Commands938206
-Node: Breakpoint Control939539
-Node: Debugger Execution Control943233
-Node: Viewing And Changing Data946595
-Node: Execution Stack950136
-Node: Debugger Info951773
-Node: Miscellaneous Debugger Commands955844
-Node: Readline Support960906
-Node: Limitations961802
-Node: Debugging Summary964356
-Node: Namespaces965635
-Node: Global Namespace966746
-Node: Qualified Names968144
-Node: Default Namespace969143
-Node: Changing The Namespace969884
-Node: Naming Rules971498
-Node: Internal Name Management973346
-Node: Namespace Example974388
-Node: Namespace And Features976950
-Node: Namespace Summary978385
-Node: Arbitrary Precision Arithmetic979862
-Node: Computer Arithmetic981349
-Ref: table-numeric-ranges985115
-Ref: table-floating-point-ranges985608
-Ref: Computer Arithmetic-Footnote-1986266
-Node: Math Definitions986323
-Ref: table-ieee-formats989299
-Node: MPFR features989866
-Node: FP Math Caution991584
-Ref: FP Math Caution-Footnote-1992656
-Node: Inexactness of computations993025
-Node: Inexact representation994056
-Node: Comparing FP Values995416
-Node: Errors accumulate996657
-Node: Strange values998113
-Ref: Strange values-Footnote-11000701
-Node: Getting Accuracy1000806
-Node: Try To Round1003516
-Node: Setting precision1004415
-Ref: table-predefined-precision-strings1005112
-Node: Setting the rounding mode1006942
-Ref: table-gawk-rounding-modes1007316
-Ref: Setting the rounding mode-Footnote-11011247
-Node: Arbitrary Precision Integers1011426
-Ref: Arbitrary Precision Integers-Footnote-11014601
-Node: Checking for MPFR1014750
-Node: POSIX Floating Point Problems1016224
-Ref: POSIX Floating Point Problems-Footnote-11020509
-Node: Floating point summary1020547
-Node: Dynamic Extensions1022737
-Node: Extension Intro1024290
-Node: Plugin License1025556
-Node: Extension Mechanism Outline1026353
-Ref: figure-load-extension1026792
-Ref: figure-register-new-function1028357
-Ref: figure-call-new-function1029449
-Node: Extension API Description1031511
-Node: Extension API Functions Introduction1033224
-Ref: table-api-std-headers1035060
-Node: General Data Types1039309
-Ref: General Data Types-Footnote-11048015
-Node: Memory Allocation Functions1048314
-Ref: Memory Allocation Functions-Footnote-11052815
-Node: Constructor Functions1052914
-Node: API Ownership of MPFR and GMP Values1056567
-Node: Registration Functions1057880
-Node: Extension Functions1058580
-Node: Exit Callback Functions1063902
-Node: Extension Version String1065152
-Node: Input Parsers1065815
-Node: Output Wrappers1078536
-Node: Two-way processors1083048
-Node: Printing Messages1085313
-Ref: Printing Messages-Footnote-11086484
-Node: Updating ERRNO1086637
-Node: Requesting Values1087376
-Ref: table-value-types-returned1088113
-Node: Accessing Parameters1089221
-Node: Symbol Table Access1090458
-Node: Symbol table by name1090970
-Ref: Symbol table by name-Footnote-11093995
-Node: Symbol table by cookie1094123
-Ref: Symbol table by cookie-Footnote-11098308
-Node: Cached values1098372
-Ref: Cached values-Footnote-11101908
-Node: Array Manipulation1102061
-Ref: Array Manipulation-Footnote-11103152
-Node: Array Data Types1103189
-Ref: Array Data Types-Footnote-11105847
-Node: Array Functions1105939
-Node: Flattening Arrays1110437
-Node: Creating Arrays1117413
-Node: Redirection API1122180
-Node: Extension API Variables1125013
-Node: Extension Versioning1125724
-Ref: gawk-api-version1126153
-Node: Extension GMP/MPFR Versioning1127884
-Node: Extension API Informational Variables1129512
-Node: Extension API Boilerplate1130585
-Node: Changes from API V11134559
-Node: Finding Extensions1136131
-Node: Extension Example1136690
-Node: Internal File Description1137488
-Node: Internal File Ops1141568
-Ref: Internal File Ops-Footnote-11152918
-Node: Using Internal File Ops1153058
-Ref: Using Internal File Ops-Footnote-11155441
-Node: Extension Samples1155715
-Node: Extension Sample File Functions1157244
-Node: Extension Sample Fnmatch1164893
-Node: Extension Sample Fork1166380
-Node: Extension Sample Inplace1167598
-Node: Extension Sample Ord1171224
-Node: Extension Sample Readdir1172060
-Ref: table-readdir-file-types1172949
-Node: Extension Sample Revout1174016
-Node: Extension Sample Rev2way1174605
-Node: Extension Sample Read write array1175345
-Node: Extension Sample Readfile1177287
-Node: Extension Sample Time1178382
-Node: Extension Sample API Tests1180134
-Node: gawkextlib1180626
-Node: Extension summary1183544
-Node: Extension Exercises1187246
-Node: Language History1188488
-Node: V7/SVR3.11190144
-Node: SVR41192296
-Node: POSIX1193730
-Node: BTL1195111
-Node: POSIX/GNU1195840
-Node: Feature History1201618
-Node: Common Extensions1218793
-Node: Ranges and Locales1220076
-Ref: Ranges and Locales-Footnote-11224692
-Ref: Ranges and Locales-Footnote-21224719
-Ref: Ranges and Locales-Footnote-31224954
-Node: Contributors1225177
-Node: History summary1231174
-Node: Installation1232554
-Node: Gawk Distribution1233498
-Node: Getting1233982
-Node: Extracting1234945
-Node: Distribution contents1236583
-Node: Unix Installation1243725
-Node: Quick Installation1244529
-Node: Compiling with MPFR1247005
-Node: Shell Startup Files1247697
-Node: Additional Configuration Options1248786
-Node: Configuration Philosophy1251101
-Node: Compiling from Git1253497
-Node: Building the Documentation1254052
-Node: Non-Unix Installation1255436
-Node: PC Installation1255896
-Node: PC Binary Installation1256734
-Node: PC Compiling1257169
-Node: PC Using1258286
-Node: Cygwin1261839
-Node: MSYS1263063
-Node: VMS Installation1263665
-Node: VMS Compilation1264384
-Ref: VMS Compilation-Footnote-11265613
-Node: VMS Dynamic Extensions1265671
-Node: VMS Installation Details1267356
-Node: VMS Running1269618
-Node: VMS GNV1273897
-Node: Bugs1274611
-Node: Bug definition1275523
-Node: Bug address1278459
-Node: Usenet1281847
-Node: Performance bugs1283036
-Node: Asking for help1285957
-Node: Maintainers1287924
-Node: Other Versions1289118
-Node: Installation summary1296970
-Node: Notes1298334
-Node: Compatibility Mode1299128
-Node: Additions1299910
-Node: Accessing The Source1300835
-Node: Adding Code1302272
-Node: New Ports1308491
-Node: Derived Files1312866
-Ref: Derived Files-Footnote-11318526
-Ref: Derived Files-Footnote-21318561
-Ref: Derived Files-Footnote-31319159
-Node: Future Extensions1319273
-Node: Implementation Limitations1319931
-Node: Extension Design1321141
-Node: Old Extension Problems1322285
-Ref: Old Extension Problems-Footnote-11323803
-Node: Extension New Mechanism Goals1323860
-Ref: Extension New Mechanism Goals-Footnote-11327224
-Node: Extension Other Design Decisions1327413
-Node: Extension Future Growth1329526
-Node: Notes summary1330132
-Node: Basic Concepts1331290
-Node: Basic High Level1331971
-Ref: figure-general-flow1332253
-Ref: figure-process-flow1332938
-Ref: Basic High Level-Footnote-11336239
-Node: Basic Data Typing1336424
-Node: Glossary1339752
-Node: Copying1371639
-Node: GNU Free Documentation License1409182
-Node: Index1434302
+Node: Switch Statement456660
+Node: Break Statement459101
+Node: Continue Statement461193
+Node: Next Statement463020
+Node: Nextfile Statement465403
+Node: Exit Statement468092
+Node: Built-in Variables470495
+Node: User-modified471628
+Node: Auto-set479395
+Ref: Auto-set-Footnote-1496202
+Ref: Auto-set-Footnote-2496408
+Node: ARGC and ARGV496464
+Node: Pattern Action Summary500677
+Node: Arrays503107
+Node: Array Basics504436
+Node: Array Intro505280
+Ref: figure-array-elements507255
+Ref: Array Intro-Footnote-1509959
+Node: Reference to Elements510087
+Node: Assigning Elements512551
+Node: Array Example513042
+Node: Scanning an Array514801
+Node: Controlling Scanning517823
+Ref: Controlling Scanning-Footnote-1524279
+Node: Numeric Array Subscripts524595
+Node: Uninitialized Subscripts526779
+Node: Delete528398
+Ref: Delete-Footnote-1531150
+Node: Multidimensional531207
+Node: Multiscanning534302
+Node: Arrays of Arrays535893
+Node: Arrays Summary540661
+Node: Functions542754
+Node: Built-in543792
+Node: Calling Built-in544945
+Node: Boolean Functions546941
+Node: Numeric Functions547495
+Ref: Numeric Functions-Footnote-1551522
+Ref: Numeric Functions-Footnote-2552170
+Ref: Numeric Functions-Footnote-3552218
+Node: String Functions552490
+Ref: String Functions-Footnote-1577005
+Ref: String Functions-Footnote-2577133
+Ref: String Functions-Footnote-3577381
+Node: Gory Details577468
+Ref: table-sub-escapes579259
+Ref: table-sub-proposed580778
+Ref: table-posix-sub582141
+Ref: table-gensub-escapes583682
+Ref: Gory Details-Footnote-1584505
+Node: I/O Functions584659
+Ref: table-system-return-values591113
+Ref: I/O Functions-Footnote-1593193
+Ref: I/O Functions-Footnote-2593341
+Node: Time Functions593461
+Ref: Time Functions-Footnote-1604132
+Ref: Time Functions-Footnote-2604200
+Ref: Time Functions-Footnote-3604358
+Ref: Time Functions-Footnote-4604469
+Ref: Time Functions-Footnote-5604581
+Ref: Time Functions-Footnote-6604808
+Node: Bitwise Functions605074
+Ref: table-bitwise-ops605668
+Ref: Bitwise Functions-Footnote-1611731
+Ref: Bitwise Functions-Footnote-2611904
+Node: Type Functions612095
+Node: I18N Functions615515
+Node: User-defined617166
+Node: Definition Syntax617978
+Ref: Definition Syntax-Footnote-1623672
+Node: Function Example623743
+Ref: Function Example-Footnote-1626665
+Node: Function Calling626687
+Node: Calling A Function627275
+Node: Variable Scope628233
+Node: Pass By Value/Reference631227
+Node: Function Caveats633871
+Ref: Function Caveats-Footnote-1635918
+Node: Return Statement636038
+Node: Dynamic Typing639017
+Node: Indirect Calls639947
+Ref: Indirect Calls-Footnote-1650202
+Node: Functions Summary650330
+Node: Library Functions653035
+Ref: Library Functions-Footnote-1656642
+Ref: Library Functions-Footnote-2656785
+Node: Library Names656956
+Ref: Library Names-Footnote-1660623
+Ref: Library Names-Footnote-2660846
+Node: General Functions660932
+Node: Strtonum Function662114
+Node: Assert Function665136
+Node: Round Function668462
+Node: Cliff Random Function670002
+Node: Ordinal Functions671018
+Ref: Ordinal Functions-Footnote-1674081
+Ref: Ordinal Functions-Footnote-2674333
+Node: Join Function674543
+Ref: Join Function-Footnote-1676313
+Node: Getlocaltime Function676513
+Node: Readfile Function680255
+Node: Shell Quoting682232
+Node: Isnumeric Function683660
+Node: Data File Management685048
+Node: Filetrans Function685680
+Node: Rewind Function689776
+Node: File Checking691685
+Ref: File Checking-Footnote-1693019
+Node: Empty Files693220
+Node: Ignoring Assigns695199
+Node: Getopt Function696749
+Ref: Getopt Function-Footnote-1711972
+Node: Passwd Functions712172
+Ref: Passwd Functions-Footnote-1721011
+Node: Group Functions721099
+Ref: Group Functions-Footnote-1728997
+Node: Walking Arrays729204
+Node: Library Functions Summary732212
+Node: Library Exercises733618
+Node: Sample Programs734083
+Node: Running Examples734853
+Node: Clones735581
+Node: Cut Program736805
+Node: Egrep Program746945
+Node: Id Program755946
+Node: Split Program765881
+Ref: Split Program-Footnote-1775774
+Node: Tee Program775947
+Node: Uniq Program778737
+Node: Wc Program786325
+Node: Bytes vs. Characters786712
+Node: Using extensions788260
+Node: wc program789014
+Node: Miscellaneous Programs793879
+Node: Dupword Program795092
+Node: Alarm Program797122
+Node: Translate Program801977
+Ref: Translate Program-Footnote-1806542
+Node: Labels Program806812
+Ref: Labels Program-Footnote-1810163
+Node: Word Sorting810247
+Node: History Sorting814319
+Node: Extract Program816544
+Node: Simple Sed824598
+Node: Igawk Program827672
+Ref: Igawk Program-Footnote-1842003
+Ref: Igawk Program-Footnote-2842205
+Ref: Igawk Program-Footnote-3842327
+Node: Anagram Program842442
+Node: Signature Program845504
+Node: Programs Summary846751
+Node: Programs Exercises847965
+Ref: Programs Exercises-Footnote-1852095
+Node: Advanced Features852181
+Node: Nondecimal Data854312
+Node: Boolean Typed Values855910
+Node: Array Sorting857791
+Node: Controlling Array Traversal858496
+Ref: Controlling Array Traversal-Footnote-1866864
+Node: Array Sorting Functions866982
+Ref: Array Sorting Functions-Footnote-1872356
+Node: Two-way I/O872552
+Ref: Two-way I/O-Footnote-1880278
+Ref: Two-way I/O-Footnote-2880465
+Node: TCP/IP Networking880547
+Node: Profiling883665
+Node: Extension Philosophy892974
+Node: Advanced Features Summary894453
+Node: Internationalization896468
+Node: I18N and L10N898142
+Node: Explaining gettext898829
+Ref: Explaining gettext-Footnote-1904721
+Ref: Explaining gettext-Footnote-2904906
+Node: Programmer i18n905071
+Ref: Programmer i18n-Footnote-1910020
+Node: Translator i18n910069
+Node: String Extraction910863
+Ref: String Extraction-Footnote-1911995
+Node: Printf Ordering912081
+Ref: Printf Ordering-Footnote-1914867
+Node: I18N Portability914931
+Ref: I18N Portability-Footnote-1917387
+Node: I18N Example917450
+Ref: I18N Example-Footnote-1920725
+Ref: I18N Example-Footnote-2920798
+Node: Gawk I18N920907
+Node: I18N Summary921556
+Node: Debugger922897
+Node: Debugging923897
+Node: Debugging Concepts924338
+Node: Debugging Terms926147
+Node: Awk Debugging928722
+Ref: Awk Debugging-Footnote-1929667
+Node: Sample Debugging Session929799
+Node: Debugger Invocation930333
+Node: Finding The Bug931719
+Node: List of Debugger Commands938193
+Node: Breakpoint Control939526
+Node: Debugger Execution Control943220
+Node: Viewing And Changing Data946582
+Node: Execution Stack950123
+Node: Debugger Info951760
+Node: Miscellaneous Debugger Commands955831
+Node: Readline Support960893
+Node: Limitations961789
+Node: Debugging Summary964343
+Node: Namespaces965622
+Node: Global Namespace966733
+Node: Qualified Names968131
+Node: Default Namespace969130
+Node: Changing The Namespace969871
+Node: Naming Rules971485
+Node: Internal Name Management973333
+Node: Namespace Example974375
+Node: Namespace And Features976937
+Node: Namespace Summary978372
+Node: Arbitrary Precision Arithmetic979849
+Node: Computer Arithmetic981336
+Ref: table-numeric-ranges985102
+Ref: table-floating-point-ranges985595
+Ref: Computer Arithmetic-Footnote-1986253
+Node: Math Definitions986310
+Ref: table-ieee-formats989286
+Node: MPFR features989853
+Node: FP Math Caution991571
+Ref: FP Math Caution-Footnote-1992643
+Node: Inexactness of computations993012
+Node: Inexact representation994043
+Node: Comparing FP Values995403
+Node: Errors accumulate996644
+Node: Strange values998100
+Ref: Strange values-Footnote-11000688
+Node: Getting Accuracy1000793
+Node: Try To Round1003503
+Node: Setting precision1004402
+Ref: table-predefined-precision-strings1005099
+Node: Setting the rounding mode1006929
+Ref: table-gawk-rounding-modes1007303
+Ref: Setting the rounding mode-Footnote-11011234
+Node: Arbitrary Precision Integers1011413
+Ref: Arbitrary Precision Integers-Footnote-11014588
+Node: Checking for MPFR1014737
+Node: POSIX Floating Point Problems1016211
+Ref: POSIX Floating Point Problems-Footnote-11020496
+Node: Floating point summary1020534
+Node: Dynamic Extensions1022724
+Node: Extension Intro1024277
+Node: Plugin License1025543
+Node: Extension Mechanism Outline1026340
+Ref: figure-load-extension1026779
+Ref: figure-register-new-function1028344
+Ref: figure-call-new-function1029436
+Node: Extension API Description1031498
+Node: Extension API Functions Introduction1033211
+Ref: table-api-std-headers1035047
+Node: General Data Types1039296
+Ref: General Data Types-Footnote-11048002
+Node: Memory Allocation Functions1048301
+Ref: Memory Allocation Functions-Footnote-11052802
+Node: Constructor Functions1052901
+Node: API Ownership of MPFR and GMP Values1056554
+Node: Registration Functions1057867
+Node: Extension Functions1058567
+Node: Exit Callback Functions1063889
+Node: Extension Version String1065139
+Node: Input Parsers1065802
+Node: Output Wrappers1078523
+Node: Two-way processors1083035
+Node: Printing Messages1085300
+Ref: Printing Messages-Footnote-11086471
+Node: Updating ERRNO1086624
+Node: Requesting Values1087363
+Ref: table-value-types-returned1088100
+Node: Accessing Parameters1089208
+Node: Symbol Table Access1090445
+Node: Symbol table by name1090957
+Ref: Symbol table by name-Footnote-11093982
+Node: Symbol table by cookie1094110
+Ref: Symbol table by cookie-Footnote-11098295
+Node: Cached values1098359
+Ref: Cached values-Footnote-11101895
+Node: Array Manipulation1102048
+Ref: Array Manipulation-Footnote-11103139
+Node: Array Data Types1103176
+Ref: Array Data Types-Footnote-11105834
+Node: Array Functions1105926
+Node: Flattening Arrays1110424
+Node: Creating Arrays1117400
+Node: Redirection API1122167
+Node: Extension API Variables1125000
+Node: Extension Versioning1125711
+Ref: gawk-api-version1126140
+Node: Extension GMP/MPFR Versioning1127871
+Node: Extension API Informational Variables1129499
+Node: Extension API Boilerplate1130572
+Node: Changes from API V11134546
+Node: Finding Extensions1136118
+Node: Extension Example1136677
+Node: Internal File Description1137475
+Node: Internal File Ops1141555
+Ref: Internal File Ops-Footnote-11152905
+Node: Using Internal File Ops1153045
+Ref: Using Internal File Ops-Footnote-11155428
+Node: Extension Samples1155702
+Node: Extension Sample File Functions1157231
+Node: Extension Sample Fnmatch1164880
+Node: Extension Sample Fork1166367
+Node: Extension Sample Inplace1167585
+Node: Extension Sample Ord1171211
+Node: Extension Sample Readdir1172047
+Ref: table-readdir-file-types1172936
+Node: Extension Sample Revout1174003
+Node: Extension Sample Rev2way1174592
+Node: Extension Sample Read write array1175332
+Node: Extension Sample Readfile1177274
+Node: Extension Sample Time1178369
+Node: Extension Sample API Tests1180121
+Node: gawkextlib1180613
+Node: Extension summary1183531
+Node: Extension Exercises1187233
+Node: Language History1188475
+Node: V7/SVR3.11190131
+Node: SVR41192283
+Node: POSIX1193717
+Node: BTL1195098
+Node: POSIX/GNU1195827
+Node: Feature History1201605
+Node: Common Extensions1218780
+Node: Ranges and Locales1220063
+Ref: Ranges and Locales-Footnote-11224679
+Ref: Ranges and Locales-Footnote-21224706
+Ref: Ranges and Locales-Footnote-31224941
+Node: Contributors1225164
+Node: History summary1231161
+Node: Installation1232541
+Node: Gawk Distribution1233485
+Node: Getting1233969
+Node: Extracting1234932
+Node: Distribution contents1236570
+Node: Unix Installation1243713
+Node: Quick Installation1244517
+Node: Compiling with MPFR1246993
+Node: Shell Startup Files1247683
+Node: Additional Configuration Options1248772
+Node: Configuration Philosophy1251087
+Node: Compiling from Git1253483
+Node: Building the Documentation1254038
+Node: Non-Unix Installation1255422
+Node: PC Installation1255882
+Node: PC Binary Installation1256720
+Node: PC Compiling1257155
+Node: PC Using1258272
+Node: Cygwin1261825
+Node: MSYS1263049
+Node: VMS Installation1263651
+Node: VMS Compilation1264370
+Ref: VMS Compilation-Footnote-11265599
+Node: VMS Dynamic Extensions1265657
+Node: VMS Installation Details1267342
+Node: VMS Running1269604
+Node: VMS GNV1273883
+Node: Bugs1274597
+Node: Bug definition1275509
+Node: Bug address1278445
+Node: Usenet1281833
+Node: Performance bugs1283022
+Node: Asking for help1285943
+Node: Maintainers1287910
+Node: Other Versions1289104
+Node: Installation summary1296956
+Node: Notes1298320
+Node: Compatibility Mode1299114
+Node: Additions1299896
+Node: Accessing The Source1300821
+Node: Adding Code1302258
+Node: New Ports1308477
+Node: Derived Files1312852
+Ref: Derived Files-Footnote-11318512
+Ref: Derived Files-Footnote-21318547
+Ref: Derived Files-Footnote-31319145
+Node: Future Extensions1319259
+Node: Implementation Limitations1319917
+Node: Extension Design1321127
+Node: Old Extension Problems1322271
+Ref: Old Extension Problems-Footnote-11323789
+Node: Extension New Mechanism Goals1323846
+Ref: Extension New Mechanism Goals-Footnote-11327210
+Node: Extension Other Design Decisions1327399
+Node: Extension Future Growth1329512
+Node: Notes summary1330118
+Node: Basic Concepts1331276
+Node: Basic High Level1331957
+Ref: figure-general-flow1332239
+Ref: figure-process-flow1332924
+Ref: Basic High Level-Footnote-11336225
+Node: Basic Data Typing1336410
+Node: Glossary1339738
+Node: Copying1371625
+Node: GNU Free Documentation License1409168
+Node: Index1434288

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 142708eb..70832fc1 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -15321,7 +15321,7 @@ input field per output line.
C and C++ programmers might expect to be able to use the comma
operator to set more than one variable in the @var{initialization}
part of the @code{for} loop, or to increment multiple variables in the
-@var{incrememnt} part of the loop, like so:
+@var{increment} part of the loop, like so:
@example
for (i = 0, j = length(a); i < j; i++, j--) @dots{} @ii{C/C++, not awk!}
@@ -26097,9 +26097,9 @@ function usage()
@{
printf("Usage:\n" \
"\tid [user]\n" \
- "\tid −G [−n] [user]\n" \
- "\tid −g [−nr] [user]\n" \
- "\tid −u [−nr] [user]\n") > "/dev/stderr"
+ "\tid -G [-n] [user]\n" \
+ "\tid -g [-nr] [user]\n" \
+ "\tid -u [-nr] [user]\n") > "/dev/stderr"
exit 1
@}
@@ -42236,7 +42236,7 @@ It should be processed with @TeX{}
to produce a printed document and
with @command{makeinfo} to produce an Info or HTML file.
-@item doc/gawkorkflow.info
+@item doc/gawkworkflow.info
The generated Info file for
@cite{@value{GAWKWORKFLOWTITLE}}.
@@ -42432,8 +42432,8 @@ to have been set up previously as a user who is allowed to run the
@cindex MPFR library, building with
Use of the MPFR library with @command{gawk}
is an optional feature: if you have the MPFR and GMP libraries already installed
-when you configure and build @command{gawk},
-@command{gawk} automatically will be able to use them.
+when you configure and build @command{gawk},
+@command{gawk} automatically will be able to use them.
You can install these libraries from source code by fetching them
from the GNU distribution site at @code{ftp.gnu.org}.
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index c79dd87f..3b568e8a 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -14508,7 +14508,7 @@ input field per output line.
C and C++ programmers might expect to be able to use the comma
operator to set more than one variable in the @var{initialization}
part of the @code{for} loop, or to increment multiple variables in the
-@var{incrememnt} part of the loop, like so:
+@var{increment} part of the loop, like so:
@example
for (i = 0, j = length(a); i < j; i++, j--) @dots{} @ii{C/C++, not awk!}
@@ -24979,9 +24979,9 @@ function usage()
@{
printf("Usage:\n" \
"\tid [user]\n" \
- "\tid −G [−n] [user]\n" \
- "\tid −g [−nr] [user]\n" \
- "\tid −u [−nr] [user]\n") > "/dev/stderr"
+ "\tid -G [-n] [user]\n" \
+ "\tid -g [-nr] [user]\n" \
+ "\tid -u [-nr] [user]\n") > "/dev/stderr"
exit 1
@}
@@ -41079,7 +41079,7 @@ It should be processed with @TeX{}
to produce a printed document and
with @command{makeinfo} to produce an Info or HTML file.
-@item doc/gawkorkflow.info
+@item doc/gawkworkflow.info
The generated Info file for
@cite{@value{GAWKWORKFLOWTITLE}}.
@@ -41275,8 +41275,8 @@ to have been set up previously as a user who is allowed to run the
@cindex MPFR library, building with
Use of the MPFR library with @command{gawk}
is an optional feature: if you have the MPFR and GMP libraries already installed
-when you configure and build @command{gawk},
-@command{gawk} automatically will be able to use them.
+when you configure and build @command{gawk},
+@command{gawk} automatically will be able to use them.
You can install these libraries from source code by fetching them
from the GNU distribution site at @code{ftp.gnu.org}.
diff --git a/doc/wordlist b/doc/wordlist
index 2aa56fcb..1ad1c429 100644
--- a/doc/wordlist
+++ b/doc/wordlist
@@ -175,6 +175,7 @@ Formfeed
FreeBSD
Friedl
GAWKINETTITLE
+GAWKWORKFLOWTITLE
GCC
GCC's
GDB
@@ -239,6 +240,7 @@ Inplace
InstallingGNVPackages
Internetworking
Isamu
+Isnumeric
Itanium
JCPU
JF
@@ -397,6 +399,7 @@ Pre
Preopened
Prestandard
Printf
+Proulx
QSE
QSINGLE
QTawk
@@ -990,6 +993,7 @@ gawkmisc
gawkpath
gawkrc
gawktexi
+gawkworkflow
gcc
gdb
gdef
@@ -1022,6 +1026,7 @@ gierd
github
gmail
gmo
+gmon
gmp
gmplib
gmx
@@ -1030,6 +1035,7 @@ gnv
goawk
golang
goldberg
+gprof
gr
grcat
grent
@@ -1131,6 +1137,7 @@ io
iobuf
isarray
isatty
+isnumeric
iso
ist
itd
@@ -1193,6 +1200,7 @@ linkend
linksize
linkval
lintwarn
+listinfo
listsize
literallayout
localhost
@@ -1215,6 +1223,7 @@ lvalues
lwall
lwcm
madronabluff
+mailx
makeinfo
malloc
malloced
@@ -1427,6 +1436,7 @@ pengyu
perl
perscr
perscrutabor
+pg
pgawk
pgr
pgrpid
@@ -1463,6 +1473,7 @@ proc
processarray
prog
progfile
+ps
pseudorandom
psl
psx
@@ -1502,7 +1513,9 @@ reada
readdir
readfile
readline
+realdata
realloc
+realprogram
recomputation
redir
reenable
diff --git a/doc/wordlist3 b/doc/wordlist3
index 49aa0712..f920c4a2 100644
--- a/doc/wordlist3
+++ b/doc/wordlist3
@@ -38,6 +38,7 @@ HH
IGNORECASE
IPv
ISBN
+Jul
LC
Localizable
MKS
diff --git a/helpers/ChangeLog b/helpers/ChangeLog
index d8e12b46..6b59f26c 100644
--- a/helpers/ChangeLog
+++ b/helpers/ChangeLog
@@ -1,3 +1,7 @@
+2021-10-09 Arnold D. Robbins <arnold@skeeve.com>
+
+ * find-utf.sh: New script.
+
2021-07-15 Arnold D. Robbins <arnold@skeeve.com>
* testdfa.c (main): Bug fix and new -b option.
diff --git a/helpers/find-utf.sh b/helpers/find-utf.sh
new file mode 100755
index 00000000..b608a6fa
--- /dev/null
+++ b/helpers/find-utf.sh
@@ -0,0 +1,53 @@
+#! /bin/sh
+export LC_ALL=C
+gawk '
+# ord.awk --- do ord and chr
+
+# Global identifiers:
+# _ord_: numerical values indexed by characters
+# _ord_init: function to initialize _ord_
+#
+# Arnold Robbins, arnold@skeeve.com, Public Domain
+# 16 January, 1992
+# 20 July, 1992, revised
+
+BEGIN { _ord_init() }
+
+function _ord_init( low, high, i, t)
+{
+ low = sprintf("%c", 7) # BEL is ascii 7
+ if (low == "\a") { # regular ascii
+ low = 0
+ high = 255
+ } else if (sprintf("%c", 128 + 7) == "\a") {
+ # ascii, mark parity
+ low = 128
+ high = 255
+ } else { # ebcdic(!)
+ low = 0
+ high = 255
+ }
+
+ for (i = low; i <= high; i++) {
+ t = sprintf("%c", i)
+ _ord_[t] = i
+ }
+}
+function ord(str, c)
+{
+ # only first character is of interest
+ c = substr(str, 1, 1)
+ return _ord_[c]
+}
+
+function chr(c)
+{
+ # force c to be numeric by adding 0
+ return sprintf("%c", c + 0)
+}
+{
+ n = split($0, c, "")
+ for (i = 1; i <= n; i++)
+ if (ord(c[i]) > 127)
+ printf("%d: char: \\%o\n", NR, ord(c[i]))
+}' "$@"