aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--NEWS3
-rw-r--r--doc/gawk.info1028
-rw-r--r--doc/gawk.texi19
-rw-r--r--doc/gawktexi.in19
-rw-r--r--node.c3
6 files changed, 543 insertions, 533 deletions
diff --git a/ChangeLog b/ChangeLog
index 15220edc..a499ec5a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-08-20 Arnold D. Robbins <arnold@skeeve.com>
+
+ * node.c (parse_escape): Max of 2 digits after \x.
+
2014-08-18 Arnold D. Robbins <arnold@skeeve.com>
* symbol.c: General formatting cleanup.
diff --git a/NEWS b/NEWS
index cd96f8ad..f8d9e55a 100644
--- a/NEWS
+++ b/NEWS
@@ -29,6 +29,9 @@ Changes from 4.1.x to 4.2.0
system for those who may want it; gawk is not going to switch off
use of the autotools anytime soon, if ever.
+7. Gawk now processes a maximum of two hexadecimal digits in \x
+ escape sequences inside strings.
+
Changes from 4.1.1 to 4.1.2
---------------------------
diff --git a/doc/gawk.info b/doc/gawk.info
index a3195bb5..a4f52a54 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -3336,15 +3336,17 @@ apply to both string constants and regexp constants:
`\xHH...'
The hexadecimal value HH, where HH stands for a sequence of
- hexadecimal digits (`0'-`9', and either `A'-`F' or `a'-`f'). Like
- the same construct in ISO C, the escape sequence continues until
- the first nonhexadecimal digit is seen. (c.e.) However, using
- more than two hexadecimal digits produces undefined results. (The
- `\x' escape sequence is not allowed in POSIX `awk'.)
+ hexadecimal digits (`0'-`9', and either `A'-`F' or `a'-`f'). A
+ maximum of two digts are allowed after the `\x'. Any further
+ hexadecimal digits are treated as simple letters or numbers.
+ (c.e.)
- CAUTION: The next major relase of `gawk' will change, such
- that a maximum of two hexadecimal digits following the `\x'
- will be used.
+ CAUTION: In ISO C, the escape sequence continues until the
+ first nonhexadecimal digit is seen. For many years, `gawk'
+ would continue incorporating hexadecimal digits into the
+ value until a non-hexadecimal digit or the end of the string
+ was encountered. However, using more than two hexadecimal
+ digits produces
`\/'
A literal slash (necessary for regexp constants only). This
@@ -31148,10 +31150,10 @@ Index
* [] (square brackets), regexp operator: Regexp Operators. (line 56)
* \ (backslash): Comments. (line 50)
* \ (backslash) in shell commands: Read Terminal. (line 25)
-* \ (backslash), \" escape sequence: Escape Sequences. (line 80)
+* \ (backslash), \" escape sequence: Escape Sequences. (line 82)
* \ (backslash), \' operator (gawk): GNU Regexp Operators.
(line 56)
-* \ (backslash), \/ escape sequence: Escape Sequences. (line 73)
+* \ (backslash), \/ escape sequence: Escape Sequences. (line 75)
* \ (backslash), \< operator (gawk): GNU Regexp Operators.
(line 30)
* \ (backslash), \> operator (gawk): GNU Regexp Operators.
@@ -31192,7 +31194,7 @@ Index
* \ (backslash), in bracket expressions: Bracket Expressions. (line 17)
* \ (backslash), in escape sequences: Escape Sequences. (line 6)
* \ (backslash), in escape sequences, POSIX and: Escape Sequences.
- (line 116)
+ (line 118)
* \ (backslash), in regexp constants: Computed Regexps. (line 29)
* \ (backslash), in shell commands: Quoting. (line 48)
* \ (backslash), regexp operator: Regexp Operators. (line 18)
@@ -31421,10 +31423,10 @@ Index
* b debugger command (alias for break): Breakpoint Control. (line 11)
* backslash (\): Comments. (line 50)
* backslash (\) in shell commands: Read Terminal. (line 25)
-* backslash (\), \" escape sequence: Escape Sequences. (line 80)
+* backslash (\), \" escape sequence: Escape Sequences. (line 82)
* backslash (\), \' operator (gawk): GNU Regexp Operators.
(line 56)
-* backslash (\), \/ escape sequence: Escape Sequences. (line 73)
+* backslash (\), \/ escape sequence: Escape Sequences. (line 75)
* backslash (\), \< operator (gawk): GNU Regexp Operators.
(line 30)
* backslash (\), \> operator (gawk): GNU Regexp Operators.
@@ -31465,7 +31467,7 @@ Index
* backslash (\), in bracket expressions: Bracket Expressions. (line 17)
* backslash (\), in escape sequences: Escape Sequences. (line 6)
* backslash (\), in escape sequences, POSIX and: Escape Sequences.
- (line 116)
+ (line 118)
* backslash (\), in regexp constants: Computed Regexps. (line 29)
* backslash (\), in shell commands: Quoting. (line 48)
* backslash (\), regexp operator: Regexp Operators. (line 18)
@@ -31569,7 +31571,7 @@ Index
(line 67)
* Brian Kernighan's awk <12>: GNU Regexp Operators.
(line 83)
-* Brian Kernighan's awk <13>: Escape Sequences. (line 120)
+* Brian Kernighan's awk <13>: Escape Sequences. (line 122)
* Brian Kernighan's awk <14>: When. (line 21)
* Brian Kernighan's awk: Preface. (line 13)
* Brian Kernighan's awk, extensions: BTL. (line 6)
@@ -31798,7 +31800,7 @@ Index
* dark corner, CONVFMT variable: Strings And Numbers. (line 40)
* dark corner, escape sequences: Other Arguments. (line 31)
* dark corner, escape sequences, for metacharacters: Escape Sequences.
- (line 138)
+ (line 140)
* dark corner, exit statement: Exit Statement. (line 30)
* dark corner, field separators: Field Splitting Summary.
(line 46)
@@ -32468,7 +32470,7 @@ Index
* gawk, ERRNO variable in <4>: Close Files And Pipes.
(line 139)
* gawk, ERRNO variable in: Getline. (line 19)
-* gawk, escape sequences: Escape Sequences. (line 128)
+* gawk, escape sequences: Escape Sequences. (line 130)
* gawk, extensions, disabling: Options. (line 252)
* gawk, features, adding: Adding Code. (line 6)
* gawk, features, advanced: Advanced Features. (line 6)
@@ -32902,7 +32904,7 @@ Index
* mawk utility <2>: Nextfile Statement. (line 47)
* mawk utility <3>: Concatenation. (line 36)
* mawk utility <4>: Getline/Pipe. (line 62)
-* mawk utility: Escape Sequences. (line 128)
+* mawk utility: Escape Sequences. (line 130)
* maximum precision supported by MPFR library: Auto-set. (line 221)
* McIlroy, Doug: Glossary. (line 149)
* McPhee, Patrick: Contributors. (line 100)
@@ -32915,7 +32917,7 @@ Index
(line 54)
* messages from extensions: Printing Messages. (line 6)
* metacharacters in regular expressions: Regexp Operators. (line 6)
-* metacharacters, escape sequences for: Escape Sequences. (line 134)
+* metacharacters, escape sequences for: Escape Sequences. (line 136)
* minimum precision supported by MPFR library: Auto-set. (line 224)
* mktime: Time Functions. (line 25)
* modifiers, in format specifiers: Format Modifiers. (line 6)
@@ -33136,14 +33138,14 @@ Index
* plus sign (+), += operator: Assignment Ops. (line 82)
* plus sign (+), regexp operator: Regexp Operators. (line 103)
* pointers to functions: Indirect Calls. (line 6)
-* portability: Escape Sequences. (line 98)
+* portability: Escape Sequences. (line 100)
* portability, #! (executable scripts): Executable Scripts. (line 33)
* portability, ** operator and: Arithmetic Ops. (line 81)
* portability, **= operator and: Assignment Ops. (line 143)
* portability, ARGV variable: Executable Scripts. (line 42)
* portability, backslash continuation and: Statements/Lines. (line 30)
* portability, backslash in escape sequences: Escape Sequences.
- (line 116)
+ (line 118)
* portability, close() function and: Close Files And Pipes.
(line 81)
* portability, data files as single record: gawk split records.
@@ -33182,7 +33184,7 @@ Index
* POSIX awk, < operator and: Getline/File. (line 26)
* POSIX awk, arithmetic operators and: Arithmetic Ops. (line 30)
* POSIX awk, backslashes in string constants: Escape Sequences.
- (line 116)
+ (line 118)
* POSIX awk, BEGIN/END patterns: I/O And BEGIN/END. (line 16)
* POSIX awk, bracket expressions and: Bracket Expressions. (line 24)
* POSIX awk, bracket expressions and, character classes: Bracket Expressions.
@@ -33563,14 +33565,14 @@ Index
* sidebar, A Constant's Base Does Not Affect Its Value: Nondecimal-numbers.
(line 64)
* sidebar, Backslash Before Regular Characters: Escape Sequences.
- (line 114)
+ (line 116)
* sidebar, Changing FS Does Not Affect the Fields: Field Splitting Summary.
(line 38)
* sidebar, Changing NR and FNR: Auto-set. (line 307)
* sidebar, Controlling Output Buffering with system(): I/O Functions.
(line 138)
* sidebar, Escape Sequences for Metacharacters: Escape Sequences.
- (line 132)
+ (line 134)
* sidebar, FS and IGNORECASE: Field Splitting Summary.
(line 64)
* sidebar, Interactive Versus Noninteractive Buffering: I/O Functions.
@@ -33798,7 +33800,7 @@ Index
(line 37)
* troubleshooting, awk uses FS not IFS: Field Separators. (line 30)
* troubleshooting, backslash before nonspecial character: Escape Sequences.
- (line 116)
+ (line 118)
* troubleshooting, division: Arithmetic Ops. (line 44)
* troubleshooting, fatal errors, field widths, specifying: Constant Size.
(line 23)
@@ -33854,7 +33856,7 @@ Index
* uniq.awk program: Uniq Program. (line 65)
* Unix: Glossary. (line 611)
* Unix awk, backslashes in escape sequences: Escape Sequences.
- (line 128)
+ (line 130)
* Unix awk, close() function and: Close Files And Pipes.
(line 131)
* Unix awk, password files, field separators and: Command Line Field Separator.
@@ -34058,492 +34060,492 @@ Node: Invoking Summary146891
Node: Regexp148491
Node: Regexp Usage149941
Node: Escape Sequences151974
-Node: Regexp Operators157805
-Ref: Regexp Operators-Footnote-1165285
-Ref: Regexp Operators-Footnote-2165432
-Node: Bracket Expressions165530
-Ref: table-char-classes167420
-Node: GNU Regexp Operators170360
-Node: Case-sensitivity174083
-Ref: Case-sensitivity-Footnote-1176975
-Ref: Case-sensitivity-Footnote-2177210
-Node: Leftmost Longest177318
-Node: Computed Regexps178519
-Node: Regexp Summary181891
-Node: Reading Files183360
-Node: Records185452
-Node: awk split records186195
-Node: gawk split records191053
-Ref: gawk split records-Footnote-1195574
-Node: Fields195611
-Ref: Fields-Footnote-1198575
-Node: Nonconstant Fields198661
-Ref: Nonconstant Fields-Footnote-1200891
-Node: Changing Fields201093
-Node: Field Separators207047
-Node: Default Field Splitting209749
-Node: Regexp Field Splitting210866
-Node: Single Character Fields214207
-Node: Command Line Field Separator215266
-Node: Full Line Fields218692
-Ref: Full Line Fields-Footnote-1219200
-Node: Field Splitting Summary219246
-Ref: Field Splitting Summary-Footnote-1222378
-Node: Constant Size222479
-Node: Splitting By Content227085
-Ref: Splitting By Content-Footnote-1231158
-Node: Multiple Line231198
-Ref: Multiple Line-Footnote-1237054
-Node: Getline237233
-Node: Plain Getline239449
-Node: Getline/Variable241544
-Node: Getline/File242691
-Node: Getline/Variable/File244075
-Ref: Getline/Variable/File-Footnote-1245674
-Node: Getline/Pipe245761
-Node: Getline/Variable/Pipe248460
-Node: Getline/Coprocess249567
-Node: Getline/Variable/Coprocess250819
-Node: Getline Notes251556
-Node: Getline Summary254360
-Ref: table-getline-variants254768
-Node: Read Timeout255680
-Ref: Read Timeout-Footnote-1259507
-Node: Command-line directories259565
-Node: Input Summary260469
-Node: Input Exercises263606
-Node: Printing264339
-Node: Print266061
-Node: Print Examples267402
-Node: Output Separators270181
-Node: OFMT272197
-Node: Printf273555
-Node: Basic Printf274461
-Node: Control Letters276000
-Node: Format Modifiers279991
-Node: Printf Examples286018
-Node: Redirection288482
-Node: Special Files295454
-Node: Special FD295987
-Ref: Special FD-Footnote-1299584
-Node: Special Network299658
-Node: Special Caveats300508
-Node: Close Files And Pipes301304
-Ref: Close Files And Pipes-Footnote-1308465
-Ref: Close Files And Pipes-Footnote-2308613
-Node: Output Summary308763
-Node: Output exercises309760
-Node: Expressions310440
-Node: Values311625
-Node: Constants312301
-Node: Scalar Constants312981
-Ref: Scalar Constants-Footnote-1313840
-Node: Nondecimal-numbers314090
-Node: Regexp Constants317090
-Node: Using Constant Regexps317565
-Node: Variables320637
-Node: Using Variables321292
-Node: Assignment Options323016
-Node: Conversion324891
-Node: Strings And Numbers325415
-Ref: Strings And Numbers-Footnote-1328477
-Node: Locale influences conversions328586
-Ref: table-locale-affects331303
-Node: All Operators331891
-Node: Arithmetic Ops332521
-Node: Concatenation335026
-Ref: Concatenation-Footnote-1337845
-Node: Assignment Ops337965
-Ref: table-assign-ops342948
-Node: Increment Ops344265
-Node: Truth Values and Conditions347703
-Node: Truth Values348786
-Node: Typing and Comparison349835
-Node: Variable Typing350628
-Node: Comparison Operators354280
-Ref: table-relational-ops354690
-Node: POSIX String Comparison358240
-Ref: POSIX String Comparison-Footnote-1359324
-Node: Boolean Ops359462
-Ref: Boolean Ops-Footnote-1363532
-Node: Conditional Exp363623
-Node: Function Calls365350
-Node: Precedence369230
-Node: Locales372899
-Node: Expressions Summary374530
-Node: Patterns and Actions377071
-Node: Pattern Overview378187
-Node: Regexp Patterns379864
-Node: Expression Patterns380407
-Node: Ranges384188
-Node: BEGIN/END387294
-Node: Using BEGIN/END388056
-Ref: Using BEGIN/END-Footnote-1390792
-Node: I/O And BEGIN/END390898
-Node: BEGINFILE/ENDFILE393183
-Node: Empty396114
-Node: Using Shell Variables396431
-Node: Action Overview398714
-Node: Statements401041
-Node: If Statement402889
-Node: While Statement404387
-Node: Do Statement406431
-Node: For Statement407587
-Node: Switch Statement410739
-Node: Break Statement413127
-Node: Continue Statement415182
-Node: Next Statement417021
-Node: Nextfile Statement419411
-Node: Exit Statement422066
-Node: Built-in Variables424470
-Node: User-modified425597
-Ref: User-modified-Footnote-1433286
-Node: Auto-set433348
-Ref: Auto-set-Footnote-1446267
-Ref: Auto-set-Footnote-2446472
-Node: ARGC and ARGV446528
-Node: Pattern Action Summary450432
-Node: Arrays452655
-Node: Array Basics454204
-Node: Array Intro455030
-Ref: figure-array-elements457003
-Node: Reference to Elements459410
-Node: Assigning Elements461789
-Node: Array Example462280
-Node: Scanning an Array464012
-Node: Controlling Scanning467027
-Ref: Controlling Scanning-Footnote-1472200
-Node: Delete472516
-Ref: Delete-Footnote-1475281
-Node: Numeric Array Subscripts475338
-Node: Uninitialized Subscripts477521
-Node: Multidimensional479146
-Node: Multiscanning482259
-Node: Arrays of Arrays483848
-Node: Arrays Summary488511
-Node: Functions490616
-Node: Built-in491489
-Node: Calling Built-in492567
-Node: Numeric Functions494555
-Ref: Numeric Functions-Footnote-1499391
-Ref: Numeric Functions-Footnote-2499748
-Ref: Numeric Functions-Footnote-3499796
-Node: String Functions500065
-Ref: String Functions-Footnote-1523076
-Ref: String Functions-Footnote-2523205
-Ref: String Functions-Footnote-3523453
-Node: Gory Details523540
-Ref: table-sub-escapes525327
-Ref: table-sub-proposed526847
-Ref: table-posix-sub528211
-Ref: table-gensub-escapes529751
-Ref: Gory Details-Footnote-1530927
-Node: I/O Functions531078
-Ref: I/O Functions-Footnote-1538201
-Node: Time Functions538348
-Ref: Time Functions-Footnote-1548812
-Ref: Time Functions-Footnote-2548880
-Ref: Time Functions-Footnote-3549038
-Ref: Time Functions-Footnote-4549149
-Ref: Time Functions-Footnote-5549261
-Ref: Time Functions-Footnote-6549488
-Node: Bitwise Functions549754
-Ref: table-bitwise-ops550316
-Ref: Bitwise Functions-Footnote-1554561
-Node: Type Functions554745
-Node: I18N Functions555887
-Node: User-defined557532
-Node: Definition Syntax558336
-Ref: Definition Syntax-Footnote-1563515
-Node: Function Example563584
-Ref: Function Example-Footnote-1566224
-Node: Function Caveats566246
-Node: Calling A Function566764
-Node: Variable Scope567719
-Node: Pass By Value/Reference570707
-Node: Return Statement574217
-Node: Dynamic Typing577201
-Node: Indirect Calls578130
-Node: Functions Summary587843
-Node: Library Functions590382
-Ref: Library Functions-Footnote-1594000
-Ref: Library Functions-Footnote-2594143
-Node: Library Names594314
-Ref: Library Names-Footnote-1597787
-Ref: Library Names-Footnote-2598007
-Node: General Functions598093
-Node: Strtonum Function599121
-Node: Assert Function601901
-Node: Round Function605227
-Node: Cliff Random Function606768
-Node: Ordinal Functions607784
-Ref: Ordinal Functions-Footnote-1610861
-Ref: Ordinal Functions-Footnote-2611113
-Node: Join Function611324
-Ref: Join Function-Footnote-1613095
-Node: Getlocaltime Function613295
-Node: Readfile Function617031
-Node: Data File Management618870
-Node: Filetrans Function619502
-Node: Rewind Function623571
-Node: File Checking625129
-Ref: File Checking-Footnote-1626261
-Node: Empty Files626462
-Node: Ignoring Assigns628441
-Node: Getopt Function629995
-Ref: Getopt Function-Footnote-1641298
-Node: Passwd Functions641501
-Ref: Passwd Functions-Footnote-1650480
-Node: Group Functions650568
-Ref: Group Functions-Footnote-1658509
-Node: Walking Arrays658722
-Node: Library Functions Summary660325
-Node: Library exercises661713
-Node: Sample Programs662993
-Node: Running Examples663763
-Node: Clones664491
-Node: Cut Program665715
-Node: Egrep Program675583
-Ref: Egrep Program-Footnote-1683554
-Node: Id Program683664
-Node: Split Program687328
-Ref: Split Program-Footnote-1690866
-Node: Tee Program690994
-Node: Uniq Program693801
-Node: Wc Program701231
-Ref: Wc Program-Footnote-1705496
-Node: Miscellaneous Programs705588
-Node: Dupword Program706801
-Node: Alarm Program708832
-Node: Translate Program713646
-Ref: Translate Program-Footnote-1718037
-Ref: Translate Program-Footnote-2718307
-Node: Labels Program718441
-Ref: Labels Program-Footnote-1721812
-Node: Word Sorting721896
-Node: History Sorting725939
-Node: Extract Program727775
-Node: Simple Sed735311
-Node: Igawk Program738373
-Ref: Igawk Program-Footnote-1752677
-Ref: Igawk Program-Footnote-2752878
-Node: Anagram Program753016
-Node: Signature Program756084
-Node: Programs Summary757331
-Node: Programs Exercises758546
-Node: Advanced Features762197
-Node: Nondecimal Data764145
-Node: Array Sorting765722
-Node: Controlling Array Traversal766419
-Node: Array Sorting Functions774699
-Ref: Array Sorting Functions-Footnote-1778606
-Node: Two-way I/O778800
-Ref: Two-way I/O-Footnote-1783744
-Ref: Two-way I/O-Footnote-2783923
-Node: TCP/IP Networking784005
-Node: Profiling786850
-Node: Advanced Features Summary794401
-Node: Internationalization796265
-Node: I18N and L10N797745
-Node: Explaining gettext798431
-Ref: Explaining gettext-Footnote-1803571
-Ref: Explaining gettext-Footnote-2803755
-Node: Programmer i18n803920
-Node: Translator i18n808145
-Node: String Extraction808939
-Ref: String Extraction-Footnote-1809900
-Node: Printf Ordering809986
-Ref: Printf Ordering-Footnote-1812768
-Node: I18N Portability812832
-Ref: I18N Portability-Footnote-1815281
-Node: I18N Example815344
-Ref: I18N Example-Footnote-1818066
-Node: Gawk I18N818138
-Node: I18N Summary818776
-Node: Debugger820115
-Node: Debugging821137
-Node: Debugging Concepts821578
-Node: Debugging Terms823434
-Node: Awk Debugging826031
-Node: Sample Debugging Session826923
-Node: Debugger Invocation827443
-Node: Finding The Bug828776
-Node: List of Debugger Commands835258
-Node: Breakpoint Control836590
-Node: Debugger Execution Control840254
-Node: Viewing And Changing Data843614
-Node: Execution Stack846972
-Node: Debugger Info848485
-Node: Miscellaneous Debugger Commands852479
-Node: Readline Support857663
-Node: Limitations858555
-Node: Debugging Summary860829
-Node: Arbitrary Precision Arithmetic861997
-Node: Computer Arithmetic863484
-Ref: Computer Arithmetic-Footnote-1867871
-Node: Math Definitions867928
-Ref: table-ieee-formats871217
-Ref: Math Definitions-Footnote-1871757
-Node: MPFR features871860
-Node: FP Math Caution873477
-Ref: FP Math Caution-Footnote-1874527
-Node: Inexactness of computations874896
-Node: Inexact representation875844
-Node: Comparing FP Values877199
-Node: Errors accumulate878163
-Node: Getting Accuracy879596
-Node: Try To Round882255
-Node: Setting precision883154
-Ref: table-predefined-precision-strings883836
-Node: Setting the rounding mode885629
-Ref: table-gawk-rounding-modes885993
-Ref: Setting the rounding mode-Footnote-1889447
-Node: Arbitrary Precision Integers889626
-Ref: Arbitrary Precision Integers-Footnote-1893399
-Node: POSIX Floating Point Problems893548
-Ref: POSIX Floating Point Problems-Footnote-1897424
-Node: Floating point summary897462
-Node: Dynamic Extensions899666
-Node: Extension Intro901218
-Node: Plugin License902483
-Node: Extension Mechanism Outline903168
-Ref: figure-load-extension903592
-Ref: figure-load-new-function905077
-Ref: figure-call-new-function906079
-Node: Extension API Description908063
-Node: Extension API Functions Introduction909513
-Node: General Data Types914380
-Ref: General Data Types-Footnote-1920073
-Node: Requesting Values920372
-Ref: table-value-types-returned921109
-Node: Memory Allocation Functions922067
-Ref: Memory Allocation Functions-Footnote-1924814
-Node: Constructor Functions924910
-Node: Registration Functions926668
-Node: Extension Functions927353
-Node: Exit Callback Functions929655
-Node: Extension Version String930903
-Node: Input Parsers931553
-Node: Output Wrappers941367
-Node: Two-way processors945883
-Node: Printing Messages948087
-Ref: Printing Messages-Footnote-1949164
-Node: Updating `ERRNO'949316
-Node: Accessing Parameters950055
-Node: Symbol Table Access951285
-Node: Symbol table by name951799
-Node: Symbol table by cookie953775
-Ref: Symbol table by cookie-Footnote-1957908
-Node: Cached values957971
-Ref: Cached values-Footnote-1961475
-Node: Array Manipulation961566
-Ref: Array Manipulation-Footnote-1962664
-Node: Array Data Types962703
-Ref: Array Data Types-Footnote-1965406
-Node: Array Functions965498
-Node: Flattening Arrays969372
-Node: Creating Arrays976224
-Node: Extension API Variables980955
-Node: Extension Versioning981591
-Node: Extension API Informational Variables983492
-Node: Extension API Boilerplate984578
-Node: Finding Extensions988382
-Node: Extension Example988942
-Node: Internal File Description989672
-Node: Internal File Ops993763
-Ref: Internal File Ops-Footnote-11005195
-Node: Using Internal File Ops1005335
-Ref: Using Internal File Ops-Footnote-11007682
-Node: Extension Samples1007950
-Node: Extension Sample File Functions1009474
-Node: Extension Sample Fnmatch1017042
-Node: Extension Sample Fork1018524
-Node: Extension Sample Inplace1019737
-Node: Extension Sample Ord1021412
-Node: Extension Sample Readdir1022248
-Ref: table-readdir-file-types1023104
-Node: Extension Sample Revout1023903
-Node: Extension Sample Rev2way1024494
-Node: Extension Sample Read write array1025235
-Node: Extension Sample Readfile1027114
-Node: Extension Sample API Tests1028214
-Node: Extension Sample Time1028739
-Node: gawkextlib1030054
-Node: Extension summary1032867
-Node: Extension Exercises1036560
-Node: Language History1037282
-Node: V7/SVR3.11038925
-Node: SVR41041245
-Node: POSIX1042687
-Node: BTL1044073
-Node: POSIX/GNU1044807
-Node: Feature History1050548
-Node: Common Extensions1063678
-Node: Ranges and Locales1064990
-Ref: Ranges and Locales-Footnote-11069607
-Ref: Ranges and Locales-Footnote-21069634
-Ref: Ranges and Locales-Footnote-31069868
-Node: Contributors1070089
-Node: History summary1075514
-Node: Installation1076883
-Node: Gawk Distribution1077834
-Node: Getting1078318
-Node: Extracting1079142
-Node: Distribution contents1080784
-Node: Unix Installation1086554
-Node: Quick Installation1087171
-Node: Additional Configuration Options1089613
-Node: Configuration Philosophy1091351
-Node: Non-Unix Installation1093702
-Node: PC Installation1094160
-Node: PC Binary Installation1095471
-Node: PC Compiling1097319
-Ref: PC Compiling-Footnote-11100318
-Node: PC Testing1100423
-Node: PC Using1101599
-Node: Cygwin1105751
-Node: MSYS1106560
-Node: VMS Installation1107074
-Node: VMS Compilation1107870
-Ref: VMS Compilation-Footnote-11109092
-Node: VMS Dynamic Extensions1109150
-Node: VMS Installation Details1110523
-Node: VMS Running1112775
-Node: VMS GNV1115609
-Node: VMS Old Gawk1116332
-Node: Bugs1116802
-Node: Other Versions1120806
-Node: Installation summary1127061
-Node: Notes1128117
-Node: Compatibility Mode1128982
-Node: Additions1129764
-Node: Accessing The Source1130689
-Node: Adding Code1132125
-Node: New Ports1138303
-Node: Derived Files1142784
-Ref: Derived Files-Footnote-11147865
-Ref: Derived Files-Footnote-21147899
-Ref: Derived Files-Footnote-31148495
-Node: Future Extensions1148609
-Node: Implementation Limitations1149215
-Node: Extension Design1150463
-Node: Old Extension Problems1151617
-Ref: Old Extension Problems-Footnote-11153134
-Node: Extension New Mechanism Goals1153191
-Ref: Extension New Mechanism Goals-Footnote-11156551
-Node: Extension Other Design Decisions1156740
-Node: Extension Future Growth1158846
-Node: Old Extension Mechanism1159682
-Node: Notes summary1161444
-Node: Basic Concepts1162630
-Node: Basic High Level1163311
-Ref: figure-general-flow1163583
-Ref: figure-process-flow1164182
-Ref: Basic High Level-Footnote-11167411
-Node: Basic Data Typing1167596
-Node: Glossary1170924
-Node: Copying1196076
-Node: GNU Free Documentation License1233632
-Node: Index1258768
+Node: Regexp Operators157888
+Ref: Regexp Operators-Footnote-1165368
+Ref: Regexp Operators-Footnote-2165515
+Node: Bracket Expressions165613
+Ref: table-char-classes167503
+Node: GNU Regexp Operators170443
+Node: Case-sensitivity174166
+Ref: Case-sensitivity-Footnote-1177058
+Ref: Case-sensitivity-Footnote-2177293
+Node: Leftmost Longest177401
+Node: Computed Regexps178602
+Node: Regexp Summary181974
+Node: Reading Files183443
+Node: Records185535
+Node: awk split records186278
+Node: gawk split records191136
+Ref: gawk split records-Footnote-1195657
+Node: Fields195694
+Ref: Fields-Footnote-1198658
+Node: Nonconstant Fields198744
+Ref: Nonconstant Fields-Footnote-1200974
+Node: Changing Fields201176
+Node: Field Separators207130
+Node: Default Field Splitting209832
+Node: Regexp Field Splitting210949
+Node: Single Character Fields214290
+Node: Command Line Field Separator215349
+Node: Full Line Fields218775
+Ref: Full Line Fields-Footnote-1219283
+Node: Field Splitting Summary219329
+Ref: Field Splitting Summary-Footnote-1222461
+Node: Constant Size222562
+Node: Splitting By Content227168
+Ref: Splitting By Content-Footnote-1231241
+Node: Multiple Line231281
+Ref: Multiple Line-Footnote-1237137
+Node: Getline237316
+Node: Plain Getline239532
+Node: Getline/Variable241627
+Node: Getline/File242774
+Node: Getline/Variable/File244158
+Ref: Getline/Variable/File-Footnote-1245757
+Node: Getline/Pipe245844
+Node: Getline/Variable/Pipe248543
+Node: Getline/Coprocess249650
+Node: Getline/Variable/Coprocess250902
+Node: Getline Notes251639
+Node: Getline Summary254443
+Ref: table-getline-variants254851
+Node: Read Timeout255763
+Ref: Read Timeout-Footnote-1259590
+Node: Command-line directories259648
+Node: Input Summary260552
+Node: Input Exercises263689
+Node: Printing264422
+Node: Print266144
+Node: Print Examples267485
+Node: Output Separators270264
+Node: OFMT272280
+Node: Printf273638
+Node: Basic Printf274544
+Node: Control Letters276083
+Node: Format Modifiers280074
+Node: Printf Examples286101
+Node: Redirection288565
+Node: Special Files295537
+Node: Special FD296070
+Ref: Special FD-Footnote-1299667
+Node: Special Network299741
+Node: Special Caveats300591
+Node: Close Files And Pipes301387
+Ref: Close Files And Pipes-Footnote-1308548
+Ref: Close Files And Pipes-Footnote-2308696
+Node: Output Summary308846
+Node: Output exercises309843
+Node: Expressions310523
+Node: Values311708
+Node: Constants312384
+Node: Scalar Constants313064
+Ref: Scalar Constants-Footnote-1313923
+Node: Nondecimal-numbers314173
+Node: Regexp Constants317173
+Node: Using Constant Regexps317648
+Node: Variables320720
+Node: Using Variables321375
+Node: Assignment Options323099
+Node: Conversion324974
+Node: Strings And Numbers325498
+Ref: Strings And Numbers-Footnote-1328560
+Node: Locale influences conversions328669
+Ref: table-locale-affects331386
+Node: All Operators331974
+Node: Arithmetic Ops332604
+Node: Concatenation335109
+Ref: Concatenation-Footnote-1337928
+Node: Assignment Ops338048
+Ref: table-assign-ops343031
+Node: Increment Ops344348
+Node: Truth Values and Conditions347786
+Node: Truth Values348869
+Node: Typing and Comparison349918
+Node: Variable Typing350711
+Node: Comparison Operators354363
+Ref: table-relational-ops354773
+Node: POSIX String Comparison358323
+Ref: POSIX String Comparison-Footnote-1359407
+Node: Boolean Ops359545
+Ref: Boolean Ops-Footnote-1363615
+Node: Conditional Exp363706
+Node: Function Calls365433
+Node: Precedence369313
+Node: Locales372982
+Node: Expressions Summary374613
+Node: Patterns and Actions377154
+Node: Pattern Overview378270
+Node: Regexp Patterns379947
+Node: Expression Patterns380490
+Node: Ranges384271
+Node: BEGIN/END387377
+Node: Using BEGIN/END388139
+Ref: Using BEGIN/END-Footnote-1390875
+Node: I/O And BEGIN/END390981
+Node: BEGINFILE/ENDFILE393266
+Node: Empty396197
+Node: Using Shell Variables396514
+Node: Action Overview398797
+Node: Statements401124
+Node: If Statement402972
+Node: While Statement404470
+Node: Do Statement406514
+Node: For Statement407670
+Node: Switch Statement410822
+Node: Break Statement413210
+Node: Continue Statement415265
+Node: Next Statement417104
+Node: Nextfile Statement419494
+Node: Exit Statement422149
+Node: Built-in Variables424553
+Node: User-modified425680
+Ref: User-modified-Footnote-1433369
+Node: Auto-set433431
+Ref: Auto-set-Footnote-1446350
+Ref: Auto-set-Footnote-2446555
+Node: ARGC and ARGV446611
+Node: Pattern Action Summary450515
+Node: Arrays452738
+Node: Array Basics454287
+Node: Array Intro455113
+Ref: figure-array-elements457086
+Node: Reference to Elements459493
+Node: Assigning Elements461872
+Node: Array Example462363
+Node: Scanning an Array464095
+Node: Controlling Scanning467110
+Ref: Controlling Scanning-Footnote-1472283
+Node: Delete472599
+Ref: Delete-Footnote-1475364
+Node: Numeric Array Subscripts475421
+Node: Uninitialized Subscripts477604
+Node: Multidimensional479229
+Node: Multiscanning482342
+Node: Arrays of Arrays483931
+Node: Arrays Summary488594
+Node: Functions490699
+Node: Built-in491572
+Node: Calling Built-in492650
+Node: Numeric Functions494638
+Ref: Numeric Functions-Footnote-1499474
+Ref: Numeric Functions-Footnote-2499831
+Ref: Numeric Functions-Footnote-3499879
+Node: String Functions500148
+Ref: String Functions-Footnote-1523159
+Ref: String Functions-Footnote-2523288
+Ref: String Functions-Footnote-3523536
+Node: Gory Details523623
+Ref: table-sub-escapes525410
+Ref: table-sub-proposed526930
+Ref: table-posix-sub528294
+Ref: table-gensub-escapes529834
+Ref: Gory Details-Footnote-1531010
+Node: I/O Functions531161
+Ref: I/O Functions-Footnote-1538284
+Node: Time Functions538431
+Ref: Time Functions-Footnote-1548895
+Ref: Time Functions-Footnote-2548963
+Ref: Time Functions-Footnote-3549121
+Ref: Time Functions-Footnote-4549232
+Ref: Time Functions-Footnote-5549344
+Ref: Time Functions-Footnote-6549571
+Node: Bitwise Functions549837
+Ref: table-bitwise-ops550399
+Ref: Bitwise Functions-Footnote-1554644
+Node: Type Functions554828
+Node: I18N Functions555970
+Node: User-defined557615
+Node: Definition Syntax558419
+Ref: Definition Syntax-Footnote-1563598
+Node: Function Example563667
+Ref: Function Example-Footnote-1566307
+Node: Function Caveats566329
+Node: Calling A Function566847
+Node: Variable Scope567802
+Node: Pass By Value/Reference570790
+Node: Return Statement574300
+Node: Dynamic Typing577284
+Node: Indirect Calls578213
+Node: Functions Summary587926
+Node: Library Functions590465
+Ref: Library Functions-Footnote-1594083
+Ref: Library Functions-Footnote-2594226
+Node: Library Names594397
+Ref: Library Names-Footnote-1597870
+Ref: Library Names-Footnote-2598090
+Node: General Functions598176
+Node: Strtonum Function599204
+Node: Assert Function601984
+Node: Round Function605310
+Node: Cliff Random Function606851
+Node: Ordinal Functions607867
+Ref: Ordinal Functions-Footnote-1610944
+Ref: Ordinal Functions-Footnote-2611196
+Node: Join Function611407
+Ref: Join Function-Footnote-1613178
+Node: Getlocaltime Function613378
+Node: Readfile Function617114
+Node: Data File Management618953
+Node: Filetrans Function619585
+Node: Rewind Function623654
+Node: File Checking625212
+Ref: File Checking-Footnote-1626344
+Node: Empty Files626545
+Node: Ignoring Assigns628524
+Node: Getopt Function630078
+Ref: Getopt Function-Footnote-1641381
+Node: Passwd Functions641584
+Ref: Passwd Functions-Footnote-1650563
+Node: Group Functions650651
+Ref: Group Functions-Footnote-1658592
+Node: Walking Arrays658805
+Node: Library Functions Summary660408
+Node: Library exercises661796
+Node: Sample Programs663076
+Node: Running Examples663846
+Node: Clones664574
+Node: Cut Program665798
+Node: Egrep Program675666
+Ref: Egrep Program-Footnote-1683637
+Node: Id Program683747
+Node: Split Program687411
+Ref: Split Program-Footnote-1690949
+Node: Tee Program691077
+Node: Uniq Program693884
+Node: Wc Program701314
+Ref: Wc Program-Footnote-1705579
+Node: Miscellaneous Programs705671
+Node: Dupword Program706884
+Node: Alarm Program708915
+Node: Translate Program713729
+Ref: Translate Program-Footnote-1718120
+Ref: Translate Program-Footnote-2718390
+Node: Labels Program718524
+Ref: Labels Program-Footnote-1721895
+Node: Word Sorting721979
+Node: History Sorting726022
+Node: Extract Program727858
+Node: Simple Sed735394
+Node: Igawk Program738456
+Ref: Igawk Program-Footnote-1752760
+Ref: Igawk Program-Footnote-2752961
+Node: Anagram Program753099
+Node: Signature Program756167
+Node: Programs Summary757414
+Node: Programs Exercises758629
+Node: Advanced Features762280
+Node: Nondecimal Data764228
+Node: Array Sorting765805
+Node: Controlling Array Traversal766502
+Node: Array Sorting Functions774782
+Ref: Array Sorting Functions-Footnote-1778689
+Node: Two-way I/O778883
+Ref: Two-way I/O-Footnote-1783827
+Ref: Two-way I/O-Footnote-2784006
+Node: TCP/IP Networking784088
+Node: Profiling786933
+Node: Advanced Features Summary794484
+Node: Internationalization796348
+Node: I18N and L10N797828
+Node: Explaining gettext798514
+Ref: Explaining gettext-Footnote-1803654
+Ref: Explaining gettext-Footnote-2803838
+Node: Programmer i18n804003
+Node: Translator i18n808228
+Node: String Extraction809022
+Ref: String Extraction-Footnote-1809983
+Node: Printf Ordering810069
+Ref: Printf Ordering-Footnote-1812851
+Node: I18N Portability812915
+Ref: I18N Portability-Footnote-1815364
+Node: I18N Example815427
+Ref: I18N Example-Footnote-1818149
+Node: Gawk I18N818221
+Node: I18N Summary818859
+Node: Debugger820198
+Node: Debugging821220
+Node: Debugging Concepts821661
+Node: Debugging Terms823517
+Node: Awk Debugging826114
+Node: Sample Debugging Session827006
+Node: Debugger Invocation827526
+Node: Finding The Bug828859
+Node: List of Debugger Commands835341
+Node: Breakpoint Control836673
+Node: Debugger Execution Control840337
+Node: Viewing And Changing Data843697
+Node: Execution Stack847055
+Node: Debugger Info848568
+Node: Miscellaneous Debugger Commands852562
+Node: Readline Support857746
+Node: Limitations858638
+Node: Debugging Summary860912
+Node: Arbitrary Precision Arithmetic862080
+Node: Computer Arithmetic863567
+Ref: Computer Arithmetic-Footnote-1867954
+Node: Math Definitions868011
+Ref: table-ieee-formats871300
+Ref: Math Definitions-Footnote-1871840
+Node: MPFR features871943
+Node: FP Math Caution873560
+Ref: FP Math Caution-Footnote-1874610
+Node: Inexactness of computations874979
+Node: Inexact representation875927
+Node: Comparing FP Values877282
+Node: Errors accumulate878246
+Node: Getting Accuracy879679
+Node: Try To Round882338
+Node: Setting precision883237
+Ref: table-predefined-precision-strings883919
+Node: Setting the rounding mode885712
+Ref: table-gawk-rounding-modes886076
+Ref: Setting the rounding mode-Footnote-1889530
+Node: Arbitrary Precision Integers889709
+Ref: Arbitrary Precision Integers-Footnote-1893482
+Node: POSIX Floating Point Problems893631
+Ref: POSIX Floating Point Problems-Footnote-1897507
+Node: Floating point summary897545
+Node: Dynamic Extensions899749
+Node: Extension Intro901301
+Node: Plugin License902566
+Node: Extension Mechanism Outline903251
+Ref: figure-load-extension903675
+Ref: figure-load-new-function905160
+Ref: figure-call-new-function906162
+Node: Extension API Description908146
+Node: Extension API Functions Introduction909596
+Node: General Data Types914463
+Ref: General Data Types-Footnote-1920156
+Node: Requesting Values920455
+Ref: table-value-types-returned921192
+Node: Memory Allocation Functions922150
+Ref: Memory Allocation Functions-Footnote-1924897
+Node: Constructor Functions924993
+Node: Registration Functions926751
+Node: Extension Functions927436
+Node: Exit Callback Functions929738
+Node: Extension Version String930986
+Node: Input Parsers931636
+Node: Output Wrappers941450
+Node: Two-way processors945966
+Node: Printing Messages948170
+Ref: Printing Messages-Footnote-1949247
+Node: Updating `ERRNO'949399
+Node: Accessing Parameters950138
+Node: Symbol Table Access951368
+Node: Symbol table by name951882
+Node: Symbol table by cookie953858
+Ref: Symbol table by cookie-Footnote-1957991
+Node: Cached values958054
+Ref: Cached values-Footnote-1961558
+Node: Array Manipulation961649
+Ref: Array Manipulation-Footnote-1962747
+Node: Array Data Types962786
+Ref: Array Data Types-Footnote-1965489
+Node: Array Functions965581
+Node: Flattening Arrays969455
+Node: Creating Arrays976307
+Node: Extension API Variables981038
+Node: Extension Versioning981674
+Node: Extension API Informational Variables983575
+Node: Extension API Boilerplate984661
+Node: Finding Extensions988465
+Node: Extension Example989025
+Node: Internal File Description989755
+Node: Internal File Ops993846
+Ref: Internal File Ops-Footnote-11005278
+Node: Using Internal File Ops1005418
+Ref: Using Internal File Ops-Footnote-11007765
+Node: Extension Samples1008033
+Node: Extension Sample File Functions1009557
+Node: Extension Sample Fnmatch1017125
+Node: Extension Sample Fork1018607
+Node: Extension Sample Inplace1019820
+Node: Extension Sample Ord1021495
+Node: Extension Sample Readdir1022331
+Ref: table-readdir-file-types1023187
+Node: Extension Sample Revout1023986
+Node: Extension Sample Rev2way1024577
+Node: Extension Sample Read write array1025318
+Node: Extension Sample Readfile1027197
+Node: Extension Sample API Tests1028297
+Node: Extension Sample Time1028822
+Node: gawkextlib1030137
+Node: Extension summary1032950
+Node: Extension Exercises1036643
+Node: Language History1037365
+Node: V7/SVR3.11039008
+Node: SVR41041328
+Node: POSIX1042770
+Node: BTL1044156
+Node: POSIX/GNU1044890
+Node: Feature History1050631
+Node: Common Extensions1063761
+Node: Ranges and Locales1065073
+Ref: Ranges and Locales-Footnote-11069690
+Ref: Ranges and Locales-Footnote-21069717
+Ref: Ranges and Locales-Footnote-31069951
+Node: Contributors1070172
+Node: History summary1075597
+Node: Installation1076966
+Node: Gawk Distribution1077917
+Node: Getting1078401
+Node: Extracting1079225
+Node: Distribution contents1080867
+Node: Unix Installation1086637
+Node: Quick Installation1087254
+Node: Additional Configuration Options1089696
+Node: Configuration Philosophy1091434
+Node: Non-Unix Installation1093785
+Node: PC Installation1094243
+Node: PC Binary Installation1095554
+Node: PC Compiling1097402
+Ref: PC Compiling-Footnote-11100401
+Node: PC Testing1100506
+Node: PC Using1101682
+Node: Cygwin1105834
+Node: MSYS1106643
+Node: VMS Installation1107157
+Node: VMS Compilation1107953
+Ref: VMS Compilation-Footnote-11109175
+Node: VMS Dynamic Extensions1109233
+Node: VMS Installation Details1110606
+Node: VMS Running1112858
+Node: VMS GNV1115692
+Node: VMS Old Gawk1116415
+Node: Bugs1116885
+Node: Other Versions1120889
+Node: Installation summary1127144
+Node: Notes1128200
+Node: Compatibility Mode1129065
+Node: Additions1129847
+Node: Accessing The Source1130772
+Node: Adding Code1132208
+Node: New Ports1138386
+Node: Derived Files1142867
+Ref: Derived Files-Footnote-11147948
+Ref: Derived Files-Footnote-21147982
+Ref: Derived Files-Footnote-31148578
+Node: Future Extensions1148692
+Node: Implementation Limitations1149298
+Node: Extension Design1150546
+Node: Old Extension Problems1151700
+Ref: Old Extension Problems-Footnote-11153217
+Node: Extension New Mechanism Goals1153274
+Ref: Extension New Mechanism Goals-Footnote-11156634
+Node: Extension Other Design Decisions1156823
+Node: Extension Future Growth1158929
+Node: Old Extension Mechanism1159765
+Node: Notes summary1161527
+Node: Basic Concepts1162713
+Node: Basic High Level1163394
+Ref: figure-general-flow1163666
+Ref: figure-process-flow1164265
+Ref: Basic High Level-Footnote-11167494
+Node: Basic Data Typing1167679
+Node: Glossary1171007
+Node: Copying1196159
+Node: GNU Free Documentation License1233715
+Node: Index1258851

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 534722e1..3b9e300e 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -4920,17 +4920,18 @@ between @samp{0} and @samp{7}. For example, the code for the ASCII ESC
@item \x@var{hh}@dots{}
The hexadecimal value @var{hh}, where @var{hh} stands for a sequence
of hexadecimal digits (@samp{0}--@samp{9}, and either @samp{A}--@samp{F}
-or @samp{a}--@samp{f}). Like the same construct
-in ISO C, the escape sequence continues until the first nonhexadecimal
-digit is seen. @value{COMMONEXT}
-However, using more than two hexadecimal digits produces
-undefined results. (The @samp{\x} escape sequence is not allowed in
-POSIX @command{awk}.)
+or @samp{a}--@samp{f}). A maximum of two digts are allowed after
+the @samp{\x}. Any further hexadecimal digits are treated as simple
+letters or numbers. @value{COMMONEXT}
@quotation CAUTION
-The next major relase of @command{gawk} will change, such
-that a maximum of two hexadecimal digits following the
-@samp{\x} will be used.
+In ISO C, the escape sequence continues until the first nonhexadecimal
+digit is seen.
+@c FIXME: Add exact version here.
+For many years, @command{gawk} would continue incorporating
+hexadecimal digits into the value until a non-hexadecimal digit
+or the end of the string was encountered.
+However, using more than two hexadecimal digits produces
@end quotation
@cindex @code{\} (backslash), @code{\/} escape sequence
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 52e61eea..732096cc 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -4848,17 +4848,18 @@ between @samp{0} and @samp{7}. For example, the code for the ASCII ESC
@item \x@var{hh}@dots{}
The hexadecimal value @var{hh}, where @var{hh} stands for a sequence
of hexadecimal digits (@samp{0}--@samp{9}, and either @samp{A}--@samp{F}
-or @samp{a}--@samp{f}). Like the same construct
-in ISO C, the escape sequence continues until the first nonhexadecimal
-digit is seen. @value{COMMONEXT}
-However, using more than two hexadecimal digits produces
-undefined results. (The @samp{\x} escape sequence is not allowed in
-POSIX @command{awk}.)
+or @samp{a}--@samp{f}). A maximum of two digts are allowed after
+the @samp{\x}. Any further hexadecimal digits are treated as simple
+letters or numbers. @value{COMMONEXT}
@quotation CAUTION
-The next major relase of @command{gawk} will change, such
-that a maximum of two hexadecimal digits following the
-@samp{\x} will be used.
+In ISO C, the escape sequence continues until the first nonhexadecimal
+digit is seen.
+@c FIXME: Add exact version here.
+For many years, @command{gawk} would continue incorporating
+hexadecimal digits into the value until a non-hexadecimal digit
+or the end of the string was encountered.
+However, using more than two hexadecimal digits produces
@end quotation
@cindex @code{\} (backslash), @code{\/} escape sequence
diff --git a/node.c b/node.c
index 1c896342..213b5335 100644
--- a/node.c
+++ b/node.c
@@ -557,9 +557,8 @@ parse_escape(const char **string_ptr)
warning(_("no hex digits in `\\x' escape sequence"));
return ('x');
}
- i = j = 0;
start = *string_ptr;
- for (;; j++) {
+ for (i = j = 0; j < 2; j++) {
/* do outside test to avoid multiple side effects */
c = *(*string_ptr)++;
if (isxdigit(c)) {