diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2021-10-09 22:18:38 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2021-10-09 22:18:38 +0300 |
commit | 3c374e502995634d4dae8967aa8393a74b748f83 (patch) | |
tree | 960d2df61f57fd1dca67e80193420bdef1bbfc4a | |
parent | b09f86a66cc6cae015a1343c189c84031007de1c (diff) | |
parent | 6db264b1f346896f18fa705023594e5d4d789f04 (diff) | |
download | egawk-3c374e502995634d4dae8967aa8393a74b748f83.tar.gz egawk-3c374e502995634d4dae8967aa8393a74b748f83.tar.bz2 egawk-3c374e502995634d4dae8967aa8393a74b748f83.zip |
Merge branch 'gawk-5.1-stable'
-rw-r--r-- | awklib/eg/prog/id.awk | 6 | ||||
-rw-r--r-- | doc/ChangeLog | 7 | ||||
-rw-r--r-- | doc/gawk.info | 812 | ||||
-rw-r--r-- | doc/gawk.texi | 14 | ||||
-rw-r--r-- | doc/gawktexi.in | 14 | ||||
-rw-r--r-- | doc/wordlist | 13 | ||||
-rw-r--r-- | doc/wordlist3 | 1 | ||||
-rw-r--r-- | helpers/ChangeLog | 4 | ||||
-rwxr-xr-x | helpers/find-utf.sh | 53 |
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])) +}' "$@" |