[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] gawk branch, gawk-5.3-stable, updated. gawk-4.1.0-5486-g888281ff
From: |
Arnold Robbins |
Subject: |
[SCM] gawk branch, gawk-5.3-stable, updated. gawk-4.1.0-5486-g888281ff |
Date: |
Tue, 2 Jul 2024 04:59:41 -0400 (EDT) |
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, gawk-5.3-stable has been updated
via 888281ffc348ed3f7740f30b8c93a7a1d39e24ca (commit)
from 9d1253ebc82f49e373555175a5c51c24875659f2 (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=888281ffc348ed3f7740f30b8c93a7a1d39e24ca
commit 888281ffc348ed3f7740f30b8c93a7a1d39e24ca
Author: Arnold D. Robbins <arnold@skeeve.com>
Date: Tue Jul 2 02:58:56 2024 -0600
Small doc addition and make \u be literal in traditional regexps.
diff --git a/ChangeLog b/ChangeLog
index b165890f..5aceaec5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2024-07-02 Arnold D. Robbins <arnold@skeeve.com>
+
+ * re.c (make_regexp): \u escapes also now treated literally
+ for do_traditional.
+
2024-06-21 Arnold D. Robbins <arnold@skeeve.com>
* io.c (csvscan): Add a missing buffer overrun check. Restores
diff --git a/doc/ChangeLog b/doc/ChangeLog
index a43723fc..1f3d1303 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,10 @@
+2024-06-14 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawk.texi (GNU Regexp Operators): Add text explaining that
+ gawk doesn't support backreferences. Thanks to
+ Alexander Lasky <ALEXANDER.LASKY@sydneywater.com.au> for
+ suggesting this content.
+
2024-06-14 Arnold D. Robbins <arnold@skeeve.com>
* gawk.texi: Update copyright year, patch version. Remove an
diff --git a/doc/gawk.info b/doc/gawk.info
index a1f151f1..9f21b4fd 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -3817,7 +3817,7 @@ Strip the backslash out
introduce and to miss, âgawkâ warns you about it.) Consider âFS =
"[ \t]+\|[ \t]+"â to use vertical bars surrounded by whitespace as
the field separator. There should be two backslashes in the
- string: âFS = "[ \t]+\\|[ \t]+"â.)
+ string: âFS = "[ \t]+\\|[ \t]+"â.
Leave the backslash alone
Some other âawkâ implementations do this. In such implementations,
@@ -3838,9 +3838,10 @@ Leave the backslash alone
Escape Sequences for Metacharacters
- Suppose you use an octal or hexadecimal escape to represent a regexp
-metacharacter. (See *note Regexp Operators::.) Does âawkâ treat the
-character as a literal character or as a regexp operator?
+ Suppose you use an octal or hexadecimal (â\xâ or â\uâ) escape to
+represent a regexp metacharacter. (See *note Regexp Operators::.) Does
+âawkâ treat the character as a literal character or as a regexp
+operator?
Historically, such characters were taken literally. (d.c.) However,
the POSIX standard indicates that they should be treated as real
@@ -4413,6 +4414,27 @@ would have been to require two backslashes in the GNU
operators, but
this was deemed too confusing. The current method of using â\yâ for the
GNU â\bâ appears to be the lesser of two evils.
+ Backreferences Are Not Supported
+ In POSIX Basic Regular Expressions (BREs), you can specify what are
+called âbackreferencesâ in regular expressions. For instance, in
+âgrepâ, a regexp like â\(..\)\1â lets you match two instances of the
+same subexpression in a row, such as âababâ or â2323â.
+
+ This construct is not supported in POSIX Extended Regular Expressions
+(EREs) such as are used in âawkâ and âgawkâ. Besides being less
+efficient for matching, the numeric escape (â\1â in the example) would
+conflict with the ability to have octal escape sequences in regular
+expressions (*note Escape Sequences::).
+
+ This is true even though the underlying regexp matching engine(s)
+used by âgawkâ or other âawkâ implementations might support such a
+feature.
+
+ We are told that BusyBox âawkâ (*note Other Versions::) is an
+exception, and that it allows backrefences, but only in dynamic regexps;
+for example â"aa" ~ "(.)\1"â, whereas it treats the â\1â in â"aa" ~
+/(.)\1/â as an octal escape sequence.
+
The various command-line options (*note Options::) control how âgawkâ
interprets characters in regexps:
@@ -36893,7 +36915,7 @@ Index
* Brian Kernighan's awk: When. (line 21)
* Brian Kernighan's awk <1>: Escape Sequences. (line 128)
* Brian Kernighan's awk <2>: GNU Regexp Operators.
- (line 84)
+ (line 105)
* Brian Kernighan's awk <3>: gawk split records. (line 70)
* Brian Kernighan's awk <4>: Regexp Field Splitting.
(line 66)
@@ -37191,7 +37213,7 @@ Index
* dark corner, empty programs: Command Line. (line 20)
* dark corner, escape sequences: Other Arguments. (line 46)
* dark corner, escape sequences, for metacharacters: Escape Sequences.
- (line 159)
+ (line 160)
* dark corner, exit statement: Exit Statement. (line 30)
* dark corner, field separators: Full Line Fields. (line 22)
* dark corner, FILENAME variable: Getline Notes. (line 19)
@@ -38021,7 +38043,7 @@ Index
* gawk, character classes and: Bracket Expressions. (line 112)
* gawk, coding style in: Adding Code. (line 42)
* gawk, command-line options, regular expressions and: GNU Regexp Operators.
- (line 72)
+ (line 93)
* gawk, configuring: Configuration Philosophy.
(line 6)
* gawk, configuring, options: Additional Configuration Options.
@@ -39150,7 +39172,7 @@ Index
* regular expressions, dynamic, with embedded newlines: Computed Regexps.
(line 59)
* regular expressions, gawk, command-line options: GNU Regexp Operators.
- (line 72)
+ (line 93)
* regular expressions, interval expressions and: Options. (line 329)
* regular expressions, leftmost longest match: Leftmost Longest.
(line 6)
@@ -39339,6 +39361,8 @@ Index
* sidebar, A Constant's Base Does Not Affect Its Value: Nondecimal-numbers.
(line 63)
* sidebar, A Note About Fuzzers: Bug definition. (line 70)
+* sidebar, Backreferences Are Not Supported: GNU Regexp Operators.
+ (line 72)
* sidebar, Backslash Before Regular Characters: Escape Sequences.
(line 122)
* sidebar, Beware The Smoke and Mirrors!: Bitwise Functions. (line 127)
@@ -39892,567 +39916,567 @@ Node: Invoking Summary169802
Node: Regexp172827
Node: Regexp Usage174321
Node: Escape Sequences176422
-Ref: Escape Sequences-Footnote-1183935
-Node: Regexp Operators184013
-Node: Regexp Operator Details184506
-Ref: Regexp Operator Details-Footnote-1192517
-Node: Interval Expressions192676
-Ref: Interval Expressions-Footnote-1194943
-Node: Bracket Expressions195041
-Ref: table-char-classes197597
-Node: Leftmost Longest201095
-Node: Computed Regexps202451
-Node: GNU Regexp Operators205966
-Node: Case-sensitivity209982
-Ref: Case-sensitivity-Footnote-1212932
-Ref: Case-sensitivity-Footnote-2213175
-Node: Regexp Summary213287
-Node: Reading Files214809
-Node: Records217126
-Node: awk split records218401
-Node: gawk split records223283
-Ref: gawk split records-Footnote-1228571
-Node: Fields228608
-Ref: Fields-Footnote-1231524
-Node: Nonconstant Fields231644
-Ref: Nonconstant Fields-Footnote-1233952
-Node: Changing Fields234168
-Node: Field Separators240466
-Node: Default Field Splitting243335
-Node: Regexp Field Splitting244477
-Node: Single Character Fields248306
-Node: Comma Separated Fields249395
-Ref: table-csv-examples250799
-Node: Command Line Field Separator253098
-Node: Full Line Fields256474
-Ref: Full Line Fields-Footnote-1258052
-Ref: Full Line Fields-Footnote-2258098
-Node: Field Splitting Summary258203
-Node: Constant Size260520
-Node: Fixed width data261264
-Node: Skipping intervening264779
-Node: Allowing trailing data265581
-Node: Fields with fixed data266642
-Node: Splitting By Content268264
-Ref: Splitting By Content-Footnote-1272714
-Node: More CSV272877
-Node: FS versus FPAT274535
-Node: Testing field creation275735
-Node: Multiple Line277509
-Node: Getline283978
-Node: Plain Getline286561
-Node: Getline/Variable289207
-Node: Getline/File290402
-Node: Getline/Variable/File291850
-Ref: Getline/Variable/File-Footnote-1293495
-Node: Getline/Pipe293591
-Node: Getline/Variable/Pipe296399
-Node: Getline/Coprocess297582
-Node: Getline/Variable/Coprocess298905
-Node: Getline Notes299671
-Node: Getline Summary302624
-Ref: table-getline-variants303068
-Node: Read Timeout303972
-Ref: Read Timeout-Footnote-1307934
-Node: Retrying Input307992
-Node: Command-line directories309259
-Node: Input Summary310197
-Node: Input Exercises313577
-Node: Printing314015
-Node: Print315958
-Node: Print Examples317459
-Node: Output Separators320304
-Node: OFMT322411
-Node: Printf324124
-Node: Basic Printf324929
-Node: Control Letters326564
-Node: Format Modifiers332010
-Node: Printf Examples338282
-Node: Redirection340823
-Node: Special FD348595
-Ref: Special FD-Footnote-1351893
-Node: Special Files351971
-Node: Other Inherited Files352600
-Node: Special Network353665
-Node: Special Caveats354553
-Node: Close Files And Pipes355536
-Ref: Close Files And Pipes-Footnote-1361660
-Node: Close Return Value361808
-Ref: table-close-pipe-return-values363079
-Ref: Close Return Value-Footnote-1363910
-Node: Noflush364066
-Node: Nonfatal365574
-Node: Output Summary367989
-Node: Output Exercises369275
-Node: Expressions369966
-Node: Values371166
-Node: Constants371844
-Node: Scalar Constants372539
-Ref: Scalar Constants-Footnote-1375115
-Ref: Scalar Constants-Footnote-2375365
-Node: Nondecimal-numbers375445
-Node: Regexp Constants378558
-Node: Using Constant Regexps379104
-Node: Standard Regexp Constants379750
-Node: Strong Regexp Constants383046
-Node: Variables386889
-Node: Using Variables387554
-Node: Assignment Options389528
-Node: Conversion392079
-Node: Strings And Numbers392611
-Ref: Strings And Numbers-Footnote-1395821
-Node: Locale influences conversions395930
-Ref: table-locale-affects398768
-Node: All Operators399410
-Node: Arithmetic Ops400051
-Node: Concatenation402874
-Ref: Concatenation-Footnote-1405810
-Node: Assignment Ops405929
-Ref: table-assign-ops411056
-Node: Increment Ops412437
-Node: Truth Values and Conditions416028
-Node: Truth Values417122
-Node: Typing and Comparison418202
-Node: Variable Typing419034
-Ref: Variable Typing-Footnote-1425678
-Ref: Variable Typing-Footnote-2425758
-Node: Comparison Operators425839
-Ref: table-relational-ops426266
-Node: POSIX String Comparison429942
-Ref: POSIX String Comparison-Footnote-1431699
-Ref: POSIX String Comparison-Footnote-2431842
-Node: Boolean Ops431926
-Ref: Boolean Ops-Footnote-1436600
-Node: Conditional Exp436696
-Node: Function Calls438476
-Node: Precedence442423
-Node: Locales446286
-Node: Expressions Summary447962
-Node: Patterns and Actions450617
-Node: Pattern Overview451753
-Node: Regexp Patterns453478
-Node: Expression Patterns454024
-Node: Ranges457929
-Node: BEGIN/END461103
-Node: Using BEGIN/END461912
-Ref: Using BEGIN/END-Footnote-1464820
-Node: I/O And BEGIN/END464930
-Node: BEGINFILE/ENDFILE467411
-Node: Empty470842
-Node: Using Shell Variables471159
-Node: Action Overview473495
-Node: Statements475930
-Node: If Statement477826
-Node: While Statement479389
-Node: Do Statement481477
-Node: For Statement482661
-Node: Switch Statement486016
-Node: Break Statement488565
-Node: Continue Statement490757
-Node: Next Statement492688
-Node: Nextfile Statement495167
-Node: Exit Statement498020
-Node: Built-in Variables500547
-Node: User-modified501724
-Node: Auto-set509931
-Ref: Auto-set-Footnote-1528015
-Ref: Auto-set-Footnote-2528233
-Node: ARGC and ARGV528289
-Node: Pattern Action Summary532718
-Node: Arrays535324
-Node: Array Basics536697
-Node: Array Intro537545
-Ref: figure-array-elements539556
-Ref: Array Intro-Footnote-1542409
-Node: Reference to Elements542541
-Node: Assigning Elements545061
-Node: Array Example545556
-Node: Scanning an Array547518
-Node: Controlling Scanning550613
-Ref: Controlling Scanning-Footnote-1557248
-Node: Numeric Array Subscripts557572
-Node: Uninitialized Subscripts559840
-Node: Delete561513
-Ref: Delete-Footnote-1564325
-Node: Multidimensional564382
-Node: Multiscanning567585
-Node: Arrays of Arrays569252
-Node: Arrays Summary573556
-Node: Functions575743
-Node: Built-in576875
-Node: Calling Built-in578064
-Node: Boolean Functions580104
-Node: Numeric Functions580666
-Ref: Numeric Functions-Footnote-1584851
-Ref: Numeric Functions-Footnote-2585534
-Ref: Numeric Functions-Footnote-3585586
-Node: String Functions585862
-Ref: String Functions-Footnote-1612313
-Ref: String Functions-Footnote-2612445
-Ref: String Functions-Footnote-3612701
-Node: Gory Details612788
-Ref: table-sub-escapes614797
-Ref: table-sub-proposed616428
-Ref: table-posix-sub617923
-Ref: table-gensub-escapes619596
-Ref: Gory Details-Footnote-1620515
-Node: I/O Functions620669
-Ref: table-system-return-values627345
-Ref: I/O Functions-Footnote-1629507
-Ref: I/O Functions-Footnote-2629655
-Node: Time Functions629775
-Ref: Time Functions-Footnote-1641487
-Ref: Time Functions-Footnote-2641555
-Ref: Time Functions-Footnote-3641717
-Ref: Time Functions-Footnote-4641828
-Ref: Time Functions-Footnote-5641944
-Ref: Time Functions-Footnote-6642171
-Node: Bitwise Functions642449
-Ref: table-bitwise-ops643047
-Ref: Bitwise Functions-Footnote-1649289
-Ref: Bitwise Functions-Footnote-2649466
-Node: Type Functions649661
-Node: I18N Functions651832
-Node: User-defined653567
-Node: Definition Syntax654313
-Ref: Definition Syntax-Footnote-1660131
-Node: Function Example660206
-Ref: Function Example-Footnote-1663185
-Node: Function Calling663207
-Node: Calling A Function663799
-Node: Variable Scope664769
-Node: Pass By Value/Reference667823
-Node: Function Caveats670551
-Ref: Function Caveats-Footnote-1672642
-Node: Return Statement672762
-Node: Dynamic Typing675794
-Node: Dynamic Typing Awk676372
-Node: Dynamic Typing Gawk678510
-Node: Indirect Calls681880
-Node: Functions Summary693017
-Node: Library Functions695983
-Ref: Library Functions-Footnote-1699531
-Ref: Library Functions-Footnote-2699676
-Node: Library Names699851
-Ref: Library Names-Footnote-1703622
-Ref: Library Names-Footnote-2703849
-Node: General Functions703943
-Node: Strtonum Function705213
-Node: Assert Function708295
-Node: Round Function711745
-Node: Cliff Random Function713317
-Node: Ordinal Functions714341
-Ref: Ordinal Functions-Footnote-1717444
-Ref: Ordinal Functions-Footnote-2717696
-Node: Join Function717910
-Ref: Join Function-Footnote-1719708
-Node: Getlocaltime Function719912
-Node: Readfile Function723686
-Node: Shell Quoting725715
-Node: Isnumeric Function727171
-Node: To CSV Function728607
-Node: Data File Management730699
-Node: Filetrans Function731331
-Node: Rewind Function735607
-Node: File Checking737578
-Ref: File Checking-Footnote-1738944
-Node: Empty Files739149
-Node: Ignoring Assigns741212
-Node: Getopt Function742786
-Ref: Getopt Function-Footnote-1758604
-Node: Passwd Functions758816
-Ref: Passwd Functions-Footnote-1767951
-Node: Group Functions768039
-Ref: Group Functions-Footnote-1776163
-Node: Walking Arrays776374
-Node: Library Functions Summary779420
-Node: Library Exercises780840
-Node: Sample Programs781325
-Node: Running Examples782107
-Node: Clones782859
-Node: Cut Program784127
-Node: Egrep Program794551
-Node: Id Program803856
-Node: Split Program813948
-Ref: Split Program-Footnote-1824161
-Node: Tee Program824346
-Node: Uniq Program827252
-Node: Wc Program835112
-Node: Bytes vs. Characters835507
-Node: Using extensions837107
-Node: wc program837885
-Node: Miscellaneous Programs842878
-Node: Dupword Program844103
-Node: Alarm Program846152
-Node: Translate Program851055
-Ref: Translate Program-Footnote-1855764
-Node: Labels Program856042
-Ref: Labels Program-Footnote-1859477
-Node: Word Sorting859561
-Node: History Sorting863735
-Node: Extract Program866008
-Node: Simple Sed874261
-Node: Igawk Program877471
-Ref: Igawk Program-Footnote-1892681
-Ref: Igawk Program-Footnote-2892887
-Ref: Igawk Program-Footnote-3893017
-Node: Anagram Program893144
-Node: Signature Program896230
-Node: Programs Summary897480
-Node: Programs Exercises898734
-Ref: Programs Exercises-Footnote-1903036
-Node: Advanced Features903122
-Node: Nondecimal Data905603
-Node: Boolean Typed Values907233
-Node: Array Sorting909190
-Node: Controlling Array Traversal909919
-Ref: Controlling Array Traversal-Footnote-1918422
-Node: Array Sorting Functions918544
-Ref: Array Sorting Functions-Footnote-1924641
-Node: Two-way I/O924849
-Ref: Two-way I/O-Footnote-1932820
-Ref: Two-way I/O-Footnote-2933011
-Node: TCP/IP Networking933093
-Node: Profiling936261
-Node: Persistent Memory945931
-Ref: Persistent Memory-Footnote-1955503
-Node: Extension Philosophy955634
-Node: Advanced Features Summary957161
-Node: Internationalization959427
-Node: I18N and L10N961129
-Node: Explaining gettext961824
-Ref: Explaining gettext-Footnote-1967960
-Ref: Explaining gettext-Footnote-2968153
-Node: Programmer i18n968318
-Ref: Programmer i18n-Footnote-1973430
-Node: Translator i18n973479
-Node: String Extraction974309
-Ref: String Extraction-Footnote-1975485
-Node: Printf Ordering975583
-Ref: Printf Ordering-Footnote-1978441
-Node: I18N Portability978509
-Ref: I18N Portability-Footnote-1981069
-Node: I18N Example981136
-Ref: I18N Example-Footnote-1984530
-Ref: I18N Example-Footnote-2984603
-Node: Gawk I18N984720
-Node: I18N Summary985374
-Node: Debugger986771
-Node: Debugging987791
-Node: Debugging Concepts988240
-Node: Debugging Terms990057
-Node: Awk Debugging992660
-Ref: Awk Debugging-Footnote-1993633
-Node: Sample Debugging Session993769
-Node: Debugger Invocation994319
-Node: Finding The Bug995944
-Node: List of Debugger Commands1002576
-Node: Breakpoint Control1003953
-Node: Debugger Execution Control1007775
-Node: Viewing And Changing Data1011249
-Node: Execution Stack1014983
-Node: Debugger Info1016664
-Node: Miscellaneous Debugger Commands1020959
-Node: Readline Support1026200
-Node: Limitations1027144
-Node: Debugging Summary1029768
-Node: Namespaces1031067
-Node: Global Namespace1032194
-Node: Qualified Names1033628
-Node: Default Namespace1034663
-Node: Changing The Namespace1035436
-Node: Naming Rules1037118
-Node: Internal Name Management1039033
-Node: Namespace Example1040103
-Node: Namespace And Features1042680
-Node: Namespace Summary1044135
-Node: Arbitrary Precision Arithmetic1045646
-Node: Computer Arithmetic1047165
-Ref: table-numeric-ranges1050973
-Ref: table-floating-point-ranges1051470
-Ref: Computer Arithmetic-Footnote-11052128
-Node: Math Definitions1052185
-Ref: table-ieee-formats1055217
-Node: MPFR features1055790
-Node: MPFR On Parole1056243
-Ref: MPFR On Parole-Footnote-11057084
-Node: MPFR Intro1057243
-Node: FP Math Caution1058927
-Ref: FP Math Caution-Footnote-11059999
-Node: Inexactness of computations1060372
-Node: Inexact representation1061403
-Node: Comparing FP Values1062784
-Node: Errors accumulate1064042
-Node: Strange values1065507
-Ref: Strange values-Footnote-11068161
-Node: Getting Accuracy1068266
-Node: Try To Round1071003
-Node: Setting precision1071910
-Ref: table-predefined-precision-strings1072615
-Node: Setting the rounding mode1074499
-Ref: table-gawk-rounding-modes1074881
-Ref: Setting the rounding mode-Footnote-11078933
-Node: Arbitrary Precision Integers1079116
-Ref: Arbitrary Precision Integers-Footnote-11082326
-Node: Checking for MPFR1082479
-Node: POSIX Floating Point Problems1083969
-Ref: POSIX Floating Point Problems-Footnote-11088789
-Node: Floating point summary1088827
-Node: Dynamic Extensions1091083
-Node: Extension Intro1092680
-Node: Plugin License1093982
-Node: Extension Mechanism Outline1094795
-Ref: figure-load-extension1095246
-Ref: figure-register-new-function1096824
-Ref: figure-call-new-function1097933
-Node: Extension API Description1100048
-Node: Extension API Functions Introduction1101777
-Ref: table-api-std-headers1103671
-Node: General Data Types1108112
-Ref: General Data Types-Footnote-11117258
-Node: Memory Allocation Functions1117561
-Ref: Memory Allocation Functions-Footnote-11122278
-Node: Constructor Functions1122377
-Node: API Ownership of MPFR and GMP Values1126278
-Node: Registration Functions1127831
-Node: Extension Functions1128535
-Node: Exit Callback Functions1134109
-Node: Extension Version String1135423
-Node: Input Parsers1136118
-Node: Output Wrappers1150737
-Node: Two-way processors1155579
-Node: Printing Messages1157932
-Ref: Printing Messages-Footnote-11159143
-Node: Updating ERRNO1159296
-Node: Requesting Values1160095
-Ref: table-value-types-returned1160848
-Node: Accessing Parameters1162907
-Node: Symbol Table Access1164188
-Node: Symbol table by name1164700
-Ref: Symbol table by name-Footnote-11167901
-Node: Symbol table by cookie1168033
-Ref: Symbol table by cookie-Footnote-11172302
-Node: Cached values1172366
-Ref: Cached values-Footnote-11175998
-Node: Array Manipulation1176155
-Ref: Array Manipulation-Footnote-11177254
-Node: Array Data Types1177291
-Ref: Array Data Types-Footnote-11180109
-Node: Array Functions1180205
-Node: Flattening Arrays1185234
-Node: Creating Arrays1192282
-Node: Redirection API1197124
-Node: Extension API Variables1200141
-Node: Extension Versioning1200864
-Ref: gawk-api-version1201293
-Node: Extension GMP/MPFR Versioning1203080
-Node: Extension API Informational Variables1204784
-Node: Extension API Boilerplate1206037
-Node: Changes from API V11210167
-Node: Finding Extensions1211799
-Node: Extension Example1212374
-Node: Internal File Description1213196
-Node: Internal File Ops1217488
-Ref: Internal File Ops-Footnote-11229038
-Node: Using Internal File Ops1229186
-Ref: Using Internal File Ops-Footnote-11231617
-Node: Extension Samples1231895
-Node: Extension Sample File Functions1233464
-Node: Extension Sample Fnmatch1241589
-Node: Extension Sample Fork1243184
-Node: Extension Sample Inplace1244460
-Node: Extension Sample Ord1248562
-Node: Extension Sample Readdir1249438
-Ref: table-readdir-file-types1250227
-Node: Extension Sample Revout1251583
-Node: Extension Sample Rev2way1252180
-Node: Extension Sample Read write array1252932
-Node: Extension Sample Readfile1256206
-Node: Extension Sample Time1257337
-Node: Extension Sample API Tests1259337
-Node: gawkextlib1259845
-Node: Extension summary1262877
-Node: Extension Exercises1266725
-Node: Language History1267995
-Node: V7/SVR3.11269707
-Node: SVR41272057
-Node: POSIX1273589
-Node: BTL1275014
-Node: POSIX/GNU1275781
-Node: Feature History1282436
-Node: Common Extensions1302277
-Node: Ranges and Locales1303752
-Ref: Ranges and Locales-Footnote-11308537
-Ref: Ranges and Locales-Footnote-21308564
-Ref: Ranges and Locales-Footnote-31308799
-Node: Contributors1309022
-Node: History summary1315213
-Node: Installation1316655
-Node: Gawk Distribution1317619
-Node: Getting1318111
-Node: Extracting1319110
-Node: Distribution contents1320816
-Node: Unix Installation1328706
-Node: Quick Installation1329526
-Node: Compiling with MPFR1332066
-Node: Shell Startup Files1332772
-Node: Additional Configuration Options1333929
-Node: Configuration Philosophy1336312
-Node: Compiling from Git1338812
-Node: Building the Documentation1339371
-Node: Non-Unix Installation1340783
-Node: PC Installation1341259
-Node: PC Binary Installation1342128
-Node: PC Compiling1343021
-Node: PC Using1344199
-Node: Cygwin1347915
-Node: MSYS1349167
-Node: OpenVMS Installation1349793
-Node: OpenVMS Compilation1350474
-Ref: OpenVMS Compilation-Footnote-11351957
-Node: OpenVMS Dynamic Extensions1352015
-Node: OpenVMS Installation Details1353651
-Node: OpenVMS Running1356082
-Node: OpenVMS GNV1360219
-Node: Bugs1360974
-Node: Bug definition1361894
-Node: Bug address1365495
-Node: Usenet1369064
-Node: Performance bugs1370277
-Node: Asking for help1373293
-Node: Maintainers1375280
-Node: Other Versions1376307
-Node: Installation summary1385911
-Node: Notes1387293
-Node: Compatibility Mode1388103
-Node: Additions1388925
-Node: Accessing The Source1389870
-Node: Adding Code1391401
-Node: New Ports1398512
-Node: Derived Files1403015
-Ref: Derived Files-Footnote-11408826
-Ref: Derived Files-Footnote-21408861
-Ref: Derived Files-Footnote-31409472
-Node: Future Extensions1409586
-Node: Implementation Limitations1410256
-Node: Extension Design1411498
-Node: Old Extension Problems1412658
-Ref: Old Extension Problems-Footnote-11414230
-Node: Extension New Mechanism Goals1414291
-Ref: Extension New Mechanism Goals-Footnote-11417761
-Node: Extension Other Design Decisions1417962
-Node: Extension Future Growth1420159
-Node: Notes summary1420779
-Node: Basic Concepts1421989
-Node: Basic High Level1422674
-Ref: figure-general-flow1422956
-Ref: figure-process-flow1423658
-Ref: Basic High Level-Footnote-11427028
-Node: Basic Data Typing1427217
-Node: Glossary1430625
-Node: Copying1463504
-Node: GNU Free Documentation License1501062
-Node: Index1526185
+Ref: Escape Sequences-Footnote-1183957
+Node: Regexp Operators184035
+Node: Regexp Operator Details184528
+Ref: Regexp Operator Details-Footnote-1192539
+Node: Interval Expressions192698
+Ref: Interval Expressions-Footnote-1194965
+Node: Bracket Expressions195063
+Ref: table-char-classes197619
+Node: Leftmost Longest201117
+Node: Computed Regexps202473
+Node: GNU Regexp Operators205988
+Node: Case-sensitivity211083
+Ref: Case-sensitivity-Footnote-1214033
+Ref: Case-sensitivity-Footnote-2214276
+Node: Regexp Summary214388
+Node: Reading Files215910
+Node: Records218227
+Node: awk split records219502
+Node: gawk split records224384
+Ref: gawk split records-Footnote-1229672
+Node: Fields229709
+Ref: Fields-Footnote-1232625
+Node: Nonconstant Fields232745
+Ref: Nonconstant Fields-Footnote-1235053
+Node: Changing Fields235269
+Node: Field Separators241567
+Node: Default Field Splitting244436
+Node: Regexp Field Splitting245578
+Node: Single Character Fields249407
+Node: Comma Separated Fields250496
+Ref: table-csv-examples251900
+Node: Command Line Field Separator254199
+Node: Full Line Fields257575
+Ref: Full Line Fields-Footnote-1259153
+Ref: Full Line Fields-Footnote-2259199
+Node: Field Splitting Summary259304
+Node: Constant Size261621
+Node: Fixed width data262365
+Node: Skipping intervening265880
+Node: Allowing trailing data266682
+Node: Fields with fixed data267743
+Node: Splitting By Content269365
+Ref: Splitting By Content-Footnote-1273815
+Node: More CSV273978
+Node: FS versus FPAT275636
+Node: Testing field creation276836
+Node: Multiple Line278610
+Node: Getline285079
+Node: Plain Getline287662
+Node: Getline/Variable290308
+Node: Getline/File291503
+Node: Getline/Variable/File292951
+Ref: Getline/Variable/File-Footnote-1294596
+Node: Getline/Pipe294692
+Node: Getline/Variable/Pipe297500
+Node: Getline/Coprocess298683
+Node: Getline/Variable/Coprocess300006
+Node: Getline Notes300772
+Node: Getline Summary303725
+Ref: table-getline-variants304169
+Node: Read Timeout305073
+Ref: Read Timeout-Footnote-1309035
+Node: Retrying Input309093
+Node: Command-line directories310360
+Node: Input Summary311298
+Node: Input Exercises314678
+Node: Printing315116
+Node: Print317059
+Node: Print Examples318560
+Node: Output Separators321405
+Node: OFMT323512
+Node: Printf325225
+Node: Basic Printf326030
+Node: Control Letters327665
+Node: Format Modifiers333111
+Node: Printf Examples339383
+Node: Redirection341924
+Node: Special FD349696
+Ref: Special FD-Footnote-1352994
+Node: Special Files353072
+Node: Other Inherited Files353701
+Node: Special Network354766
+Node: Special Caveats355654
+Node: Close Files And Pipes356637
+Ref: Close Files And Pipes-Footnote-1362761
+Node: Close Return Value362909
+Ref: table-close-pipe-return-values364180
+Ref: Close Return Value-Footnote-1365011
+Node: Noflush365167
+Node: Nonfatal366675
+Node: Output Summary369090
+Node: Output Exercises370376
+Node: Expressions371067
+Node: Values372267
+Node: Constants372945
+Node: Scalar Constants373640
+Ref: Scalar Constants-Footnote-1376216
+Ref: Scalar Constants-Footnote-2376466
+Node: Nondecimal-numbers376546
+Node: Regexp Constants379659
+Node: Using Constant Regexps380205
+Node: Standard Regexp Constants380851
+Node: Strong Regexp Constants384147
+Node: Variables387990
+Node: Using Variables388655
+Node: Assignment Options390629
+Node: Conversion393180
+Node: Strings And Numbers393712
+Ref: Strings And Numbers-Footnote-1396922
+Node: Locale influences conversions397031
+Ref: table-locale-affects399869
+Node: All Operators400511
+Node: Arithmetic Ops401152
+Node: Concatenation403975
+Ref: Concatenation-Footnote-1406911
+Node: Assignment Ops407030
+Ref: table-assign-ops412157
+Node: Increment Ops413538
+Node: Truth Values and Conditions417129
+Node: Truth Values418223
+Node: Typing and Comparison419303
+Node: Variable Typing420135
+Ref: Variable Typing-Footnote-1426779
+Ref: Variable Typing-Footnote-2426859
+Node: Comparison Operators426940
+Ref: table-relational-ops427367
+Node: POSIX String Comparison431043
+Ref: POSIX String Comparison-Footnote-1432800
+Ref: POSIX String Comparison-Footnote-2432943
+Node: Boolean Ops433027
+Ref: Boolean Ops-Footnote-1437701
+Node: Conditional Exp437797
+Node: Function Calls439577
+Node: Precedence443524
+Node: Locales447387
+Node: Expressions Summary449063
+Node: Patterns and Actions451718
+Node: Pattern Overview452854
+Node: Regexp Patterns454579
+Node: Expression Patterns455125
+Node: Ranges459030
+Node: BEGIN/END462204
+Node: Using BEGIN/END463013
+Ref: Using BEGIN/END-Footnote-1465921
+Node: I/O And BEGIN/END466031
+Node: BEGINFILE/ENDFILE468512
+Node: Empty471943
+Node: Using Shell Variables472260
+Node: Action Overview474596
+Node: Statements477031
+Node: If Statement478927
+Node: While Statement480490
+Node: Do Statement482578
+Node: For Statement483762
+Node: Switch Statement487117
+Node: Break Statement489666
+Node: Continue Statement491858
+Node: Next Statement493789
+Node: Nextfile Statement496268
+Node: Exit Statement499121
+Node: Built-in Variables501648
+Node: User-modified502825
+Node: Auto-set511032
+Ref: Auto-set-Footnote-1529116
+Ref: Auto-set-Footnote-2529334
+Node: ARGC and ARGV529390
+Node: Pattern Action Summary533819
+Node: Arrays536425
+Node: Array Basics537798
+Node: Array Intro538646
+Ref: figure-array-elements540657
+Ref: Array Intro-Footnote-1543510
+Node: Reference to Elements543642
+Node: Assigning Elements546162
+Node: Array Example546657
+Node: Scanning an Array548619
+Node: Controlling Scanning551714
+Ref: Controlling Scanning-Footnote-1558349
+Node: Numeric Array Subscripts558673
+Node: Uninitialized Subscripts560941
+Node: Delete562614
+Ref: Delete-Footnote-1565426
+Node: Multidimensional565483
+Node: Multiscanning568686
+Node: Arrays of Arrays570353
+Node: Arrays Summary574657
+Node: Functions576844
+Node: Built-in577976
+Node: Calling Built-in579165
+Node: Boolean Functions581205
+Node: Numeric Functions581767
+Ref: Numeric Functions-Footnote-1585952
+Ref: Numeric Functions-Footnote-2586635
+Ref: Numeric Functions-Footnote-3586687
+Node: String Functions586963
+Ref: String Functions-Footnote-1613414
+Ref: String Functions-Footnote-2613546
+Ref: String Functions-Footnote-3613802
+Node: Gory Details613889
+Ref: table-sub-escapes615898
+Ref: table-sub-proposed617529
+Ref: table-posix-sub619024
+Ref: table-gensub-escapes620697
+Ref: Gory Details-Footnote-1621616
+Node: I/O Functions621770
+Ref: table-system-return-values628446
+Ref: I/O Functions-Footnote-1630608
+Ref: I/O Functions-Footnote-2630756
+Node: Time Functions630876
+Ref: Time Functions-Footnote-1642588
+Ref: Time Functions-Footnote-2642656
+Ref: Time Functions-Footnote-3642818
+Ref: Time Functions-Footnote-4642929
+Ref: Time Functions-Footnote-5643045
+Ref: Time Functions-Footnote-6643272
+Node: Bitwise Functions643550
+Ref: table-bitwise-ops644148
+Ref: Bitwise Functions-Footnote-1650390
+Ref: Bitwise Functions-Footnote-2650567
+Node: Type Functions650762
+Node: I18N Functions652933
+Node: User-defined654668
+Node: Definition Syntax655414
+Ref: Definition Syntax-Footnote-1661232
+Node: Function Example661307
+Ref: Function Example-Footnote-1664286
+Node: Function Calling664308
+Node: Calling A Function664900
+Node: Variable Scope665870
+Node: Pass By Value/Reference668924
+Node: Function Caveats671652
+Ref: Function Caveats-Footnote-1673743
+Node: Return Statement673863
+Node: Dynamic Typing676895
+Node: Dynamic Typing Awk677473
+Node: Dynamic Typing Gawk679611
+Node: Indirect Calls682981
+Node: Functions Summary694118
+Node: Library Functions697084
+Ref: Library Functions-Footnote-1700632
+Ref: Library Functions-Footnote-2700777
+Node: Library Names700952
+Ref: Library Names-Footnote-1704723
+Ref: Library Names-Footnote-2704950
+Node: General Functions705044
+Node: Strtonum Function706314
+Node: Assert Function709396
+Node: Round Function712846
+Node: Cliff Random Function714418
+Node: Ordinal Functions715442
+Ref: Ordinal Functions-Footnote-1718545
+Ref: Ordinal Functions-Footnote-2718797
+Node: Join Function719011
+Ref: Join Function-Footnote-1720809
+Node: Getlocaltime Function721013
+Node: Readfile Function724787
+Node: Shell Quoting726816
+Node: Isnumeric Function728272
+Node: To CSV Function729708
+Node: Data File Management731800
+Node: Filetrans Function732432
+Node: Rewind Function736708
+Node: File Checking738679
+Ref: File Checking-Footnote-1740045
+Node: Empty Files740250
+Node: Ignoring Assigns742313
+Node: Getopt Function743887
+Ref: Getopt Function-Footnote-1759705
+Node: Passwd Functions759917
+Ref: Passwd Functions-Footnote-1769052
+Node: Group Functions769140
+Ref: Group Functions-Footnote-1777264
+Node: Walking Arrays777475
+Node: Library Functions Summary780521
+Node: Library Exercises781941
+Node: Sample Programs782426
+Node: Running Examples783208
+Node: Clones783960
+Node: Cut Program785228
+Node: Egrep Program795652
+Node: Id Program804957
+Node: Split Program815049
+Ref: Split Program-Footnote-1825262
+Node: Tee Program825447
+Node: Uniq Program828353
+Node: Wc Program836213
+Node: Bytes vs. Characters836608
+Node: Using extensions838208
+Node: wc program838986
+Node: Miscellaneous Programs843979
+Node: Dupword Program845204
+Node: Alarm Program847253
+Node: Translate Program852156
+Ref: Translate Program-Footnote-1856865
+Node: Labels Program857143
+Ref: Labels Program-Footnote-1860578
+Node: Word Sorting860662
+Node: History Sorting864836
+Node: Extract Program867109
+Node: Simple Sed875362
+Node: Igawk Program878572
+Ref: Igawk Program-Footnote-1893782
+Ref: Igawk Program-Footnote-2893988
+Ref: Igawk Program-Footnote-3894118
+Node: Anagram Program894245
+Node: Signature Program897331
+Node: Programs Summary898581
+Node: Programs Exercises899835
+Ref: Programs Exercises-Footnote-1904137
+Node: Advanced Features904223
+Node: Nondecimal Data906704
+Node: Boolean Typed Values908334
+Node: Array Sorting910291
+Node: Controlling Array Traversal911020
+Ref: Controlling Array Traversal-Footnote-1919523
+Node: Array Sorting Functions919645
+Ref: Array Sorting Functions-Footnote-1925742
+Node: Two-way I/O925950
+Ref: Two-way I/O-Footnote-1933921
+Ref: Two-way I/O-Footnote-2934112
+Node: TCP/IP Networking934194
+Node: Profiling937362
+Node: Persistent Memory947032
+Ref: Persistent Memory-Footnote-1956604
+Node: Extension Philosophy956735
+Node: Advanced Features Summary958262
+Node: Internationalization960528
+Node: I18N and L10N962230
+Node: Explaining gettext962925
+Ref: Explaining gettext-Footnote-1969061
+Ref: Explaining gettext-Footnote-2969254
+Node: Programmer i18n969419
+Ref: Programmer i18n-Footnote-1974531
+Node: Translator i18n974580
+Node: String Extraction975410
+Ref: String Extraction-Footnote-1976586
+Node: Printf Ordering976684
+Ref: Printf Ordering-Footnote-1979542
+Node: I18N Portability979610
+Ref: I18N Portability-Footnote-1982170
+Node: I18N Example982237
+Ref: I18N Example-Footnote-1985631
+Ref: I18N Example-Footnote-2985704
+Node: Gawk I18N985821
+Node: I18N Summary986475
+Node: Debugger987872
+Node: Debugging988892
+Node: Debugging Concepts989341
+Node: Debugging Terms991158
+Node: Awk Debugging993761
+Ref: Awk Debugging-Footnote-1994734
+Node: Sample Debugging Session994870
+Node: Debugger Invocation995420
+Node: Finding The Bug997045
+Node: List of Debugger Commands1003677
+Node: Breakpoint Control1005054
+Node: Debugger Execution Control1008876
+Node: Viewing And Changing Data1012350
+Node: Execution Stack1016084
+Node: Debugger Info1017765
+Node: Miscellaneous Debugger Commands1022060
+Node: Readline Support1027301
+Node: Limitations1028245
+Node: Debugging Summary1030869
+Node: Namespaces1032168
+Node: Global Namespace1033295
+Node: Qualified Names1034729
+Node: Default Namespace1035764
+Node: Changing The Namespace1036537
+Node: Naming Rules1038219
+Node: Internal Name Management1040134
+Node: Namespace Example1041204
+Node: Namespace And Features1043781
+Node: Namespace Summary1045236
+Node: Arbitrary Precision Arithmetic1046747
+Node: Computer Arithmetic1048266
+Ref: table-numeric-ranges1052074
+Ref: table-floating-point-ranges1052571
+Ref: Computer Arithmetic-Footnote-11053229
+Node: Math Definitions1053286
+Ref: table-ieee-formats1056318
+Node: MPFR features1056891
+Node: MPFR On Parole1057344
+Ref: MPFR On Parole-Footnote-11058185
+Node: MPFR Intro1058344
+Node: FP Math Caution1060028
+Ref: FP Math Caution-Footnote-11061100
+Node: Inexactness of computations1061473
+Node: Inexact representation1062504
+Node: Comparing FP Values1063885
+Node: Errors accumulate1065143
+Node: Strange values1066608
+Ref: Strange values-Footnote-11069262
+Node: Getting Accuracy1069367
+Node: Try To Round1072104
+Node: Setting precision1073011
+Ref: table-predefined-precision-strings1073716
+Node: Setting the rounding mode1075600
+Ref: table-gawk-rounding-modes1075982
+Ref: Setting the rounding mode-Footnote-11080034
+Node: Arbitrary Precision Integers1080217
+Ref: Arbitrary Precision Integers-Footnote-11083427
+Node: Checking for MPFR1083580
+Node: POSIX Floating Point Problems1085070
+Ref: POSIX Floating Point Problems-Footnote-11089890
+Node: Floating point summary1089928
+Node: Dynamic Extensions1092184
+Node: Extension Intro1093781
+Node: Plugin License1095083
+Node: Extension Mechanism Outline1095896
+Ref: figure-load-extension1096347
+Ref: figure-register-new-function1097925
+Ref: figure-call-new-function1099034
+Node: Extension API Description1101149
+Node: Extension API Functions Introduction1102878
+Ref: table-api-std-headers1104772
+Node: General Data Types1109213
+Ref: General Data Types-Footnote-11118359
+Node: Memory Allocation Functions1118662
+Ref: Memory Allocation Functions-Footnote-11123379
+Node: Constructor Functions1123478
+Node: API Ownership of MPFR and GMP Values1127379
+Node: Registration Functions1128932
+Node: Extension Functions1129636
+Node: Exit Callback Functions1135210
+Node: Extension Version String1136524
+Node: Input Parsers1137219
+Node: Output Wrappers1151838
+Node: Two-way processors1156680
+Node: Printing Messages1159033
+Ref: Printing Messages-Footnote-11160244
+Node: Updating ERRNO1160397
+Node: Requesting Values1161196
+Ref: table-value-types-returned1161949
+Node: Accessing Parameters1164008
+Node: Symbol Table Access1165289
+Node: Symbol table by name1165801
+Ref: Symbol table by name-Footnote-11169002
+Node: Symbol table by cookie1169134
+Ref: Symbol table by cookie-Footnote-11173403
+Node: Cached values1173467
+Ref: Cached values-Footnote-11177099
+Node: Array Manipulation1177256
+Ref: Array Manipulation-Footnote-11178355
+Node: Array Data Types1178392
+Ref: Array Data Types-Footnote-11181210
+Node: Array Functions1181306
+Node: Flattening Arrays1186335
+Node: Creating Arrays1193383
+Node: Redirection API1198225
+Node: Extension API Variables1201242
+Node: Extension Versioning1201965
+Ref: gawk-api-version1202394
+Node: Extension GMP/MPFR Versioning1204181
+Node: Extension API Informational Variables1205885
+Node: Extension API Boilerplate1207138
+Node: Changes from API V11211268
+Node: Finding Extensions1212900
+Node: Extension Example1213475
+Node: Internal File Description1214297
+Node: Internal File Ops1218589
+Ref: Internal File Ops-Footnote-11230139
+Node: Using Internal File Ops1230287
+Ref: Using Internal File Ops-Footnote-11232718
+Node: Extension Samples1232996
+Node: Extension Sample File Functions1234565
+Node: Extension Sample Fnmatch1242690
+Node: Extension Sample Fork1244285
+Node: Extension Sample Inplace1245561
+Node: Extension Sample Ord1249663
+Node: Extension Sample Readdir1250539
+Ref: table-readdir-file-types1251328
+Node: Extension Sample Revout1252684
+Node: Extension Sample Rev2way1253281
+Node: Extension Sample Read write array1254033
+Node: Extension Sample Readfile1257307
+Node: Extension Sample Time1258438
+Node: Extension Sample API Tests1260438
+Node: gawkextlib1260946
+Node: Extension summary1263978
+Node: Extension Exercises1267826
+Node: Language History1269096
+Node: V7/SVR3.11270808
+Node: SVR41273158
+Node: POSIX1274690
+Node: BTL1276115
+Node: POSIX/GNU1276882
+Node: Feature History1283537
+Node: Common Extensions1303378
+Node: Ranges and Locales1304853
+Ref: Ranges and Locales-Footnote-11309638
+Ref: Ranges and Locales-Footnote-21309665
+Ref: Ranges and Locales-Footnote-31309900
+Node: Contributors1310123
+Node: History summary1316314
+Node: Installation1317756
+Node: Gawk Distribution1318720
+Node: Getting1319212
+Node: Extracting1320211
+Node: Distribution contents1321917
+Node: Unix Installation1329807
+Node: Quick Installation1330627
+Node: Compiling with MPFR1333167
+Node: Shell Startup Files1333873
+Node: Additional Configuration Options1335030
+Node: Configuration Philosophy1337413
+Node: Compiling from Git1339913
+Node: Building the Documentation1340472
+Node: Non-Unix Installation1341884
+Node: PC Installation1342360
+Node: PC Binary Installation1343229
+Node: PC Compiling1344122
+Node: PC Using1345300
+Node: Cygwin1349016
+Node: MSYS1350268
+Node: OpenVMS Installation1350894
+Node: OpenVMS Compilation1351575
+Ref: OpenVMS Compilation-Footnote-11353058
+Node: OpenVMS Dynamic Extensions1353116
+Node: OpenVMS Installation Details1354752
+Node: OpenVMS Running1357183
+Node: OpenVMS GNV1361320
+Node: Bugs1362075
+Node: Bug definition1362995
+Node: Bug address1366596
+Node: Usenet1370165
+Node: Performance bugs1371378
+Node: Asking for help1374394
+Node: Maintainers1376381
+Node: Other Versions1377408
+Node: Installation summary1387012
+Node: Notes1388394
+Node: Compatibility Mode1389204
+Node: Additions1390026
+Node: Accessing The Source1390971
+Node: Adding Code1392502
+Node: New Ports1399613
+Node: Derived Files1404116
+Ref: Derived Files-Footnote-11409927
+Ref: Derived Files-Footnote-21409962
+Ref: Derived Files-Footnote-31410573
+Node: Future Extensions1410687
+Node: Implementation Limitations1411357
+Node: Extension Design1412599
+Node: Old Extension Problems1413759
+Ref: Old Extension Problems-Footnote-11415331
+Node: Extension New Mechanism Goals1415392
+Ref: Extension New Mechanism Goals-Footnote-11418862
+Node: Extension Other Design Decisions1419063
+Node: Extension Future Growth1421260
+Node: Notes summary1421880
+Node: Basic Concepts1423090
+Node: Basic High Level1423775
+Ref: figure-general-flow1424057
+Ref: figure-process-flow1424759
+Ref: Basic High Level-Footnote-11428129
+Node: Basic Data Typing1428318
+Node: Glossary1431726
+Node: Copying1464605
+Node: GNU Free Documentation License1502163
+Node: Index1527286
End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 49b2b929..a6565998 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -5688,7 +5688,7 @@ For example, @code{"a\qc"} is the same as @code{"aqc"}.
@command{gawk} warns you about it.)
Consider @samp{FS = @w{"[ \t]+\|[ \t]+"}} to use vertical bars
surrounded by whitespace as the field separator. There should be
-two backslashes in the string: @samp{FS = @w{"[ \t]+\\|[ \t]+"}}.)
+two backslashes in the string: @samp{FS = @w{"[ \t]+\\|[ \t]+"}}.
@c I did this! This is why I added the warning.
@cindex @command{gawk} @subentry escape sequences
@@ -5725,7 +5725,7 @@ literally.
@cartouche Escape Sequences for Metacharacters
@cindex metacharacters @subentry escape sequences for
-Suppose you use an octal or hexadecimal
+Suppose you use an octal or hexadecimal (@code{\x} or @code{\u})
escape to represent a regexp metacharacter.
(See @ref{Regexp Operators}.)
Does @command{awk} treat the character as a literal character or as a regexp
@@ -6535,6 +6535,32 @@ GNU operators, but this was deemed too confusing. The
current
method of using @samp{\y} for the GNU @samp{\b} appears to be the
lesser of two evils.
+@c July, 2024
+@c Thanks to Alexander Lasky <ALEXANDER.LASKY@sydneywater.com.au> for
+@c suggesting this content.
+@cindex sidebar @subentry Backreferences Are Not Supported
+@cartouche Backreferences Are Not Supported
+In POSIX Basic Regular Expressions (BREs), you can specify what are
+called @dfn{backreferences} in regular expressions. For instance,
+in @command{grep}, a regexp like @samp{\(..\)\1} lets you match
+two instances of the same subexpression in a row, such as @samp{abab} or
@samp{2323}.
+
+This construct is not supported in POSIX Extended Regular Expressions
+(EREs) such as are used in @command{awk} and @command{gawk}. Besides being less
+efficient for matching, the numeric escape (@samp{\1} in the example) would
conflict
+with the ability to have octal escape sequences in regular expressions
+(@pxref{Escape Sequences}).
+
+This is true even though the underlying regexp matching engine(s) used
+by @command{gawk} or other @command{awk} implementations might support
+such a feature.
+
+We are told that BusyBox @command{awk} (@pxref{Other Versions}) is an
+exception, and that it allows backrefences, but only in dynamic regexps;
+for example @samp{"aa" ~ "(.)\1"}, whereas it treats the @samp{\1} in
+@samp{"aa" ~ /(.)\1/} as an octal escape sequence.
+@end cartouche
+
@cindex regular expressions @subentry @command{gawk}, command-line options
@cindex @command{gawk} @subentry command-line options, regular expressions and
The various command-line options
diff --git a/re.c b/re.c
index 9f8397af..44324b5e 100644
--- a/re.c
+++ b/re.c
@@ -163,7 +163,7 @@ make_regexp(const char *s, size_t len, bool ignorecase,
bool dfa, bool canfatal)
if (nbytes == 1
&& do_traditional
&& ! do_posix
- && (isdigit(c) || c == 'x')
+ && (isdigit(c) || c == 'x' || c == 'u')
&& strchr(metas, *result) != NULL)
*dest++ = '\\';
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +
doc/ChangeLog | 7 +
doc/gawk.info | 1162 +++++++++++++++++++++++++++++----------------------------
doc/gawk.texi | 30 +-
re.c | 2 +-
5 files changed, 634 insertions(+), 572 deletions(-)
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] gawk branch, gawk-5.3-stable, updated. gawk-4.1.0-5486-g888281ff,
Arnold Robbins <=