diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2014-06-22 22:08:14 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2014-06-22 22:08:14 +0300 |
commit | 78ded8ee8f11a321c96417e7d02dac2f5723a221 (patch) | |
tree | 5a083d41c5c496228a26e5081d281941f4414f60 | |
parent | 9180926c14842c03fd3baa5b3f27ac1c5bb11924 (diff) | |
parent | 57454ce9249bdfea6451c231858e6a8b5d26c775 (diff) | |
download | egawk-78ded8ee8f11a321c96417e7d02dac2f5723a221.tar.gz egawk-78ded8ee8f11a321c96417e7d02dac2f5723a221.tar.bz2 egawk-78ded8ee8f11a321c96417e7d02dac2f5723a221.zip |
Merge branch 'gawk-4.1-stable'
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/gawk.info | 1047 | ||||
-rw-r--r-- | doc/gawk.texi | 8 | ||||
-rw-r--r-- | doc/gawktexi.in | 8 | ||||
-rw-r--r-- | regcomp.c | 14 |
6 files changed, 556 insertions, 535 deletions
@@ -1,3 +1,13 @@ +2014-06-22 Paul Eggert <eggert@penguin.cs.ucla.edu> + + Bring in from GNULIB: + + regex: fix memory leak in compiler + Fix by Andreas Schwab in: + https://sourceware.org/ml/libc-alpha/2014-06/msg00462.html + * lib/regcomp.c (parse_expression): Deallocate partially + constructed tree before returning error. + 2014-06-19 Arnold D. Robbins <arnold@skeeve.com> * builtin.c (do_sub): Add more info to leading comment. diff --git a/doc/ChangeLog b/doc/ChangeLog index 83c7ae70..5e7d4808 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2014-06-22 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in: Typo fixes and minor corrections. + 2014-06-19 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Add thanks to Patrice Dumas and to Karl Berry. diff --git a/doc/gawk.info b/doc/gawk.info index 5d4aaa3c..44568736 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -2170,7 +2170,7 @@ comment, it ignores _everything_ on the rest of the line. For example: > BEGIN rule > }' error--> gawk: cmd. line:2: BEGIN rule - error--> gawk: cmd. line:2: ^ parse error + error--> gawk: cmd. line:2: ^ syntax error In this case, it looks like the backslash would continue the comment onto the next line. However, the backslash-newline combination is never @@ -25226,7 +25226,7 @@ constant (`FNM_NOMATCH'), and an array of flag values named `FNM'. The flags are follows: -Array element Corresponding lag defined by `fnmatch()' +Array element Corresponding flag defined by `fnmatch()' -------------------------------------------------------------------------- `FNM["CASEFOLD"]' `FNM_CASEFOLD' `FNM["FILE_NAME"]' `FNM_FILE_NAME' @@ -25597,7 +25597,7 @@ Time::) was originally from this project but has been moved in to the main `gawk' distribution. You can check out the code for the `gawkextlib' project using the -GIT (http://git-scm.com) distributed source code control system. The +Git (http://git-scm.com) distributed source code control system. The command is as follows: git clone git://git.code.sf.net/p/gawkextlib/code gawkextlib-code @@ -26744,8 +26744,7 @@ Info file, in approximate chronological order: - The modifications to convert `gawk' into a byte-code interpreter, including the debugger. - - The addition of true arrays of arrays. *note Arrays of - Arrays::. + - The addition of true arrays of arrays. - The additional modifications for support of arbitrary precision arithmetic. @@ -26760,7 +26759,7 @@ Info file, in approximate chronological order: - The improved array sorting features were driven by John together with Pat Rankin. - Panos Papadopoulos contributed the original text for *note Include + * Panos Papadopoulos contributed the original text for *note Include Files::. * Efraim Yawitz contributed the original text for *note Debugger::. @@ -31616,7 +31615,7 @@ Index * Collado, Manuel: Acknowledgments. (line 60) * collating elements: Bracket Expressions. (line 69) * collating symbols: Bracket Expressions. (line 76) -* Colombo, Antonio <1>: Contributors. (line 138) +* Colombo, Antonio <1>: Contributors. (line 137) * Colombo, Antonio: Acknowledgments. (line 60) * columns, aligning: Print Examples. (line 70) * columns, cutting: Cut Program. (line 6) @@ -33051,7 +33050,7 @@ Index * output, standard: Special FD. (line 6) * p debugger command (alias for print): Viewing And Changing Data. (line 36) -* Papadopoulos, Panos: Contributors. (line 129) +* Papadopoulos, Panos: Contributors. (line 128) * parent process ID of gawk process: Auto-set. (line 189) * parentheses (), in a profile: Profiling. (line 146) * parentheses (), regexp operator: Regexp Operators. (line 80) @@ -33396,7 +33395,7 @@ Index * RLENGTH variable, match() function and: String Functions. (line 224) * Robbins, Arnold <1>: Future Extensions. (line 6) * Robbins, Arnold <2>: Bugs. (line 32) -* Robbins, Arnold <3>: Contributors. (line 142) +* Robbins, Arnold <3>: Contributors. (line 141) * Robbins, Arnold <4>: General Data Types. (line 6) * Robbins, Arnold <5>: Alarm Program. (line 6) * Robbins, Arnold <6>: Passwd Functions. (line 90) @@ -33439,7 +33438,7 @@ Index * scalar values: Basic Data Typing. (line 13) * scanning arrays: Scanning an Array. (line 6) * scanning multidimensional arrays: Multiscanning. (line 11) -* Schorr, Andrew <1>: Contributors. (line 134) +* Schorr, Andrew <1>: Contributors. (line 133) * Schorr, Andrew <2>: Auto-set. (line 292) * Schorr, Andrew: Acknowledgments. (line 60) * Schreiber, Bert: Acknowledgments. (line 38) @@ -33924,7 +33923,7 @@ Index * xgettext utility: String Extraction. (line 13) * xor: Bitwise Functions. (line 55) * XOR bitwise operation: Bitwise Functions. (line 6) -* Yawitz, Efraim: Contributors. (line 132) +* Yawitz, Efraim: Contributors. (line 131) * Zaretskii, Eli <1>: Bugs. (line 71) * Zaretskii, Eli <2>: Contributors. (line 55) * Zaretskii, Eli: Acknowledgments. (line 60) @@ -33992,518 +33991,518 @@ Node: Two Rules97321 Node: More Complex99215 Ref: More Complex-Footnote-1102147 Node: Statements/Lines102232 -Ref: Statements/Lines-Footnote-1106687 -Node: Other Features106952 -Node: When107880 -Node: Intro Summary110050 -Node: Invoking Gawk110816 -Node: Command Line112331 -Node: Options113122 -Ref: Options-Footnote-1128951 -Node: Other Arguments128976 -Node: Naming Standard Input131638 -Node: Environment Variables132732 -Node: AWKPATH Variable133290 -Ref: AWKPATH Variable-Footnote-1136162 -Ref: AWKPATH Variable-Footnote-2136207 -Node: AWKLIBPATH Variable136467 -Node: Other Environment Variables137226 -Node: Exit Status140881 -Node: Include Files141556 -Node: Loading Shared Libraries145134 -Node: Obsolete146518 -Node: Undocumented147215 -Node: Invoking Summary147482 -Node: Regexp149062 -Node: Regexp Usage150512 -Node: Escape Sequences152545 -Node: Regexp Operators158212 -Ref: Regexp Operators-Footnote-1165692 -Ref: Regexp Operators-Footnote-2165839 -Node: Bracket Expressions165937 -Ref: table-char-classes167827 -Node: GNU Regexp Operators170350 -Node: Case-sensitivity174073 -Ref: Case-sensitivity-Footnote-1176965 -Ref: Case-sensitivity-Footnote-2177200 -Node: Leftmost Longest177308 -Node: Computed Regexps178509 -Node: Regexp Summary181881 -Node: Reading Files183352 -Node: Records185444 -Node: awk split records186187 -Node: gawk split records191045 -Ref: gawk split records-Footnote-1195566 -Node: Fields195603 -Ref: Fields-Footnote-1198567 -Node: Nonconstant Fields198653 -Ref: Nonconstant Fields-Footnote-1200883 -Node: Changing Fields201085 -Node: Field Separators207039 -Node: Default Field Splitting209741 -Node: Regexp Field Splitting210858 -Node: Single Character Fields214199 -Node: Command Line Field Separator215258 -Node: Full Line Fields218600 -Ref: Full Line Fields-Footnote-1219108 -Node: Field Splitting Summary219154 -Ref: Field Splitting Summary-Footnote-1222253 -Node: Constant Size222354 -Node: Splitting By Content226961 -Ref: Splitting By Content-Footnote-1230711 -Node: Multiple Line230751 -Ref: Multiple Line-Footnote-1236607 -Node: Getline236786 -Node: Plain Getline239002 -Node: Getline/Variable241097 -Node: Getline/File242244 -Node: Getline/Variable/File243628 -Ref: Getline/Variable/File-Footnote-1245227 -Node: Getline/Pipe245314 -Node: Getline/Variable/Pipe248013 -Node: Getline/Coprocess249120 -Node: Getline/Variable/Coprocess250372 -Node: Getline Notes251109 -Node: Getline Summary253913 -Ref: table-getline-variants254321 -Node: Read Timeout255233 -Ref: Read Timeout-Footnote-1259060 -Node: Command line directories259118 -Node: Input Summary260022 -Node: Input Exercises263159 -Node: Printing263892 -Node: Print265614 -Node: Print Examples266955 -Node: Output Separators269734 -Node: OFMT271750 -Node: Printf273108 -Node: Basic Printf274014 -Node: Control Letters275553 -Node: Format Modifiers279405 -Node: Printf Examples285432 -Node: Redirection287896 -Node: Special Files294868 -Node: Special FD295399 -Ref: Special FD-Footnote-1299023 -Node: Special Network299097 -Node: Special Caveats299947 -Node: Close Files And Pipes300743 -Ref: Close Files And Pipes-Footnote-1307904 -Ref: Close Files And Pipes-Footnote-2308052 -Node: Output Summary308202 -Node: Output exercises309199 -Node: Expressions309879 -Node: Values311064 -Node: Constants311740 -Node: Scalar Constants312420 -Ref: Scalar Constants-Footnote-1313279 -Node: Nondecimal-numbers313529 -Node: Regexp Constants316529 -Node: Using Constant Regexps317004 -Node: Variables320074 -Node: Using Variables320729 -Node: Assignment Options322453 -Node: Conversion324328 -Node: Strings And Numbers324852 -Ref: Strings And Numbers-Footnote-1327914 -Node: Locale influences conversions328023 -Ref: table-locale-affects330740 -Node: All Operators331328 -Node: Arithmetic Ops331958 -Node: Concatenation334463 -Ref: Concatenation-Footnote-1337259 -Node: Assignment Ops337379 -Ref: table-assign-ops342362 -Node: Increment Ops343679 -Node: Truth Values and Conditions347117 -Node: Truth Values348200 -Node: Typing and Comparison349249 -Node: Variable Typing350042 -Ref: Variable Typing-Footnote-1353942 -Node: Comparison Operators354064 -Ref: table-relational-ops354474 -Node: POSIX String Comparison358024 -Ref: POSIX String Comparison-Footnote-1359108 -Node: Boolean Ops359246 -Ref: Boolean Ops-Footnote-1363316 -Node: Conditional Exp363407 -Node: Function Calls365134 -Node: Precedence369014 -Node: Locales372683 -Node: Expressions Summary374314 -Node: Patterns and Actions376855 -Node: Pattern Overview377971 -Node: Regexp Patterns379648 -Node: Expression Patterns380191 -Node: Ranges383972 -Node: BEGIN/END387078 -Node: Using BEGIN/END387840 -Ref: Using BEGIN/END-Footnote-1390576 -Node: I/O And BEGIN/END390682 -Node: BEGINFILE/ENDFILE392967 -Node: Empty395898 -Node: Using Shell Variables396215 -Node: Action Overview398498 -Node: Statements400825 -Node: If Statement402673 -Node: While Statement404171 -Node: Do Statement406215 -Node: For Statement407371 -Node: Switch Statement410523 -Node: Break Statement412626 -Node: Continue Statement414681 -Node: Next Statement416474 -Node: Nextfile Statement418864 -Node: Exit Statement421519 -Node: Built-in Variables423923 -Node: User-modified425050 -Ref: User-modified-Footnote-1432739 -Node: Auto-set432801 -Ref: Auto-set-Footnote-1445720 -Ref: Auto-set-Footnote-2445925 -Node: ARGC and ARGV445981 -Node: Pattern Action Summary449835 -Node: Arrays452058 -Node: Array Basics453607 -Node: Array Intro454433 -Ref: figure-array-elements456406 -Node: Reference to Elements458813 -Node: Assigning Elements461086 -Node: Array Example461577 -Node: Scanning an Array463309 -Node: Controlling Scanning466324 -Ref: Controlling Scanning-Footnote-1471497 -Node: Delete471813 -Ref: Delete-Footnote-1474578 -Node: Numeric Array Subscripts474635 -Node: Uninitialized Subscripts476818 -Node: Multidimensional478443 -Node: Multiscanning481536 -Node: Arrays of Arrays483125 -Node: Arrays Summary487788 -Node: Functions489893 -Node: Built-in490766 -Node: Calling Built-in491844 -Node: Numeric Functions493832 -Ref: Numeric Functions-Footnote-1497666 -Ref: Numeric Functions-Footnote-2498023 -Ref: Numeric Functions-Footnote-3498071 -Node: String Functions498340 -Ref: String Functions-Footnote-1521351 -Ref: String Functions-Footnote-2521480 -Ref: String Functions-Footnote-3521728 -Node: Gory Details521815 -Ref: table-sub-escapes523484 -Ref: table-sub-posix-92524838 -Ref: table-sub-proposed526189 -Ref: table-posix-sub527543 -Ref: table-gensub-escapes529088 -Ref: Gory Details-Footnote-1530264 -Ref: Gory Details-Footnote-2530315 -Node: I/O Functions530466 -Ref: I/O Functions-Footnote-1537589 -Node: Time Functions537736 -Ref: Time Functions-Footnote-1548200 -Ref: Time Functions-Footnote-2548268 -Ref: Time Functions-Footnote-3548426 -Ref: Time Functions-Footnote-4548537 -Ref: Time Functions-Footnote-5548649 -Ref: Time Functions-Footnote-6548876 -Node: Bitwise Functions549142 -Ref: table-bitwise-ops549704 -Ref: Bitwise Functions-Footnote-1553949 -Node: Type Functions554133 -Node: I18N Functions555275 -Node: User-defined556920 -Node: Definition Syntax557724 -Ref: Definition Syntax-Footnote-1562903 -Node: Function Example562972 -Ref: Function Example-Footnote-1565616 -Node: Function Caveats565638 -Node: Calling A Function566156 -Node: Variable Scope567111 -Node: Pass By Value/Reference570099 -Node: Return Statement573607 -Node: Dynamic Typing576591 -Node: Indirect Calls577520 -Node: Functions Summary587233 -Node: Library Functions589772 -Ref: Library Functions-Footnote-1593390 -Ref: Library Functions-Footnote-2593533 -Node: Library Names593704 -Ref: Library Names-Footnote-1597177 -Ref: Library Names-Footnote-2597397 -Node: General Functions597483 -Node: Strtonum Function598511 -Node: Assert Function601291 -Node: Round Function604617 -Node: Cliff Random Function606158 -Node: Ordinal Functions607174 -Ref: Ordinal Functions-Footnote-1610251 -Ref: Ordinal Functions-Footnote-2610503 -Node: Join Function610714 -Ref: Join Function-Footnote-1612485 -Node: Getlocaltime Function612685 -Node: Readfile Function616421 -Node: Data File Management618260 -Node: Filetrans Function618892 -Node: Rewind Function622961 -Node: File Checking624348 -Ref: File Checking-Footnote-1625480 -Node: Empty Files625681 -Node: Ignoring Assigns627660 -Node: Getopt Function629214 -Ref: Getopt Function-Footnote-1640517 -Node: Passwd Functions640720 -Ref: Passwd Functions-Footnote-1649699 -Node: Group Functions649787 -Ref: Group Functions-Footnote-1657728 -Node: Walking Arrays657941 -Node: Library Functions Summary659544 -Node: Library exercises660932 -Node: Sample Programs662212 -Node: Running Examples662982 -Node: Clones663710 -Node: Cut Program664934 -Node: Egrep Program674802 -Ref: Egrep Program-Footnote-1682773 -Node: Id Program682883 -Node: Split Program686547 -Ref: Split Program-Footnote-1690085 -Node: Tee Program690213 -Node: Uniq Program693020 -Node: Wc Program700450 -Ref: Wc Program-Footnote-1704715 -Node: Miscellaneous Programs704807 -Node: Dupword Program706020 -Node: Alarm Program708051 -Node: Translate Program712865 -Ref: Translate Program-Footnote-1717256 -Ref: Translate Program-Footnote-2717526 -Node: Labels Program717660 -Ref: Labels Program-Footnote-1721031 -Node: Word Sorting721115 -Node: History Sorting725158 -Node: Extract Program726994 -Node: Simple Sed734530 -Node: Igawk Program737592 -Ref: Igawk Program-Footnote-1751903 -Ref: Igawk Program-Footnote-2752104 -Node: Anagram Program752242 -Node: Signature Program755310 -Node: Programs Summary756557 -Node: Programs Exercises757772 -Node: Advanced Features761423 -Node: Nondecimal Data763371 -Node: Array Sorting764948 -Node: Controlling Array Traversal765645 -Node: Array Sorting Functions773925 -Ref: Array Sorting Functions-Footnote-1777832 -Node: Two-way I/O778026 -Ref: Two-way I/O-Footnote-1783542 -Node: TCP/IP Networking783624 -Node: Profiling786468 -Node: Advanced Features Summary794010 -Node: Internationalization795874 -Node: I18N and L10N797354 -Node: Explaining gettext798040 -Ref: Explaining gettext-Footnote-1803180 -Ref: Explaining gettext-Footnote-2803364 -Node: Programmer i18n803529 -Node: Translator i18n807754 -Node: String Extraction808548 -Ref: String Extraction-Footnote-1809509 -Node: Printf Ordering809595 -Ref: Printf Ordering-Footnote-1812377 -Node: I18N Portability812441 -Ref: I18N Portability-Footnote-1814890 -Node: I18N Example814953 -Ref: I18N Example-Footnote-1817675 -Node: Gawk I18N817747 -Node: I18N Summary818385 -Node: Debugger819724 -Node: Debugging820746 -Node: Debugging Concepts821187 -Node: Debugging Terms823043 -Node: Awk Debugging825640 -Node: Sample Debugging Session826532 -Node: Debugger Invocation827052 -Node: Finding The Bug828385 -Node: List of Debugger Commands834867 -Node: Breakpoint Control836199 -Node: Debugger Execution Control839863 -Node: Viewing And Changing Data843223 -Node: Execution Stack846581 -Node: Debugger Info848094 -Node: Miscellaneous Debugger Commands852088 -Node: Readline Support857272 -Node: Limitations858164 -Node: Debugging Summary860438 -Node: Arbitrary Precision Arithmetic861602 -Node: Computer Arithmetic862931 -Ref: Computer Arithmetic-Footnote-1867318 -Node: Math Definitions867375 -Ref: table-ieee-formats870259 -Node: MPFR features870763 -Node: FP Math Caution872405 -Ref: FP Math Caution-Footnote-1873446 -Node: Inexactness of computations873815 -Node: Inexact representation874763 -Node: Comparing FP Values876118 -Node: Errors accumulate877082 -Node: Getting Accuracy878515 -Node: Try To Round881174 -Node: Setting precision882073 -Ref: table-predefined-precision-strings882755 -Node: Setting the rounding mode884548 -Ref: table-gawk-rounding-modes884912 -Ref: Setting the rounding mode-Footnote-1888366 -Node: Arbitrary Precision Integers888545 -Ref: Arbitrary Precision Integers-Footnote-1891548 -Node: POSIX Floating Point Problems891697 -Ref: POSIX Floating Point Problems-Footnote-1895573 -Node: Floating point summary895611 -Node: Dynamic Extensions897828 -Node: Extension Intro899380 -Node: Plugin License900645 -Node: Extension Mechanism Outline901330 -Ref: figure-load-extension901754 -Ref: figure-load-new-function903239 -Ref: figure-call-new-function904241 -Node: Extension API Description906225 -Node: Extension API Functions Introduction907675 -Node: General Data Types912540 -Ref: General Data Types-Footnote-1918233 -Node: Requesting Values918532 -Ref: table-value-types-returned919269 -Node: Memory Allocation Functions920227 -Ref: Memory Allocation Functions-Footnote-1922974 -Node: Constructor Functions923070 -Node: Registration Functions924828 -Node: Extension Functions925513 -Node: Exit Callback Functions927815 -Node: Extension Version String929064 -Node: Input Parsers929714 -Node: Output Wrappers939517 -Node: Two-way processors944033 -Node: Printing Messages946237 -Ref: Printing Messages-Footnote-1947314 -Node: Updating `ERRNO'947466 -Node: Accessing Parameters948205 -Node: Symbol Table Access949435 -Node: Symbol table by name949949 -Node: Symbol table by cookie951925 -Ref: Symbol table by cookie-Footnote-1956058 -Node: Cached values956121 -Ref: Cached values-Footnote-1959625 -Node: Array Manipulation959716 -Ref: Array Manipulation-Footnote-1960814 -Node: Array Data Types960853 -Ref: Array Data Types-Footnote-1963556 -Node: Array Functions963648 -Node: Flattening Arrays967522 -Node: Creating Arrays974374 -Node: Extension API Variables979105 -Node: Extension Versioning979741 -Node: Extension API Informational Variables981642 -Node: Extension API Boilerplate982728 -Node: Finding Extensions986532 -Node: Extension Example987092 -Node: Internal File Description987822 -Node: Internal File Ops991913 -Ref: Internal File Ops-Footnote-11003345 -Node: Using Internal File Ops1003485 -Ref: Using Internal File Ops-Footnote-11005832 -Node: Extension Samples1006100 -Node: Extension Sample File Functions1007624 -Node: Extension Sample Fnmatch1015192 -Node: Extension Sample Fork1016673 -Node: Extension Sample Inplace1017886 -Node: Extension Sample Ord1019561 -Node: Extension Sample Readdir1020397 -Ref: table-readdir-file-types1021253 -Node: Extension Sample Revout1022052 -Node: Extension Sample Rev2way1022643 -Node: Extension Sample Read write array1023384 -Node: Extension Sample Readfile1025263 -Node: Extension Sample API Tests1026363 -Node: Extension Sample Time1026888 -Node: gawkextlib1028203 -Node: Extension summary1031016 -Node: Extension Exercises1034709 -Node: Language History1035431 -Node: V7/SVR3.11037074 -Node: SVR41039394 -Node: POSIX1040836 -Node: BTL1042222 -Node: POSIX/GNU1042956 -Node: Feature History1048555 -Node: Common Extensions1061685 -Node: Ranges and Locales1062997 -Ref: Ranges and Locales-Footnote-11067614 -Ref: Ranges and Locales-Footnote-21067641 -Ref: Ranges and Locales-Footnote-31067875 -Node: Contributors1068096 -Node: History summary1073558 -Node: Installation1074927 -Node: Gawk Distribution1075878 -Node: Getting1076362 -Node: Extracting1077186 -Node: Distribution contents1078828 -Node: Unix Installation1084545 -Node: Quick Installation1085162 -Node: Additional Configuration Options1087604 -Node: Configuration Philosophy1089342 -Node: Non-Unix Installation1091693 -Node: PC Installation1092151 -Node: PC Binary Installation1093462 -Node: PC Compiling1095310 -Ref: PC Compiling-Footnote-11098309 -Node: PC Testing1098414 -Node: PC Using1099590 -Node: Cygwin1103748 -Node: MSYS1104557 -Node: VMS Installation1105071 -Node: VMS Compilation1105867 -Ref: VMS Compilation-Footnote-11107089 -Node: VMS Dynamic Extensions1107147 -Node: VMS Installation Details1108520 -Node: VMS Running1110772 -Node: VMS GNV1113606 -Node: VMS Old Gawk1114329 -Node: Bugs1114799 -Node: Other Versions1118803 -Node: Installation summary1125058 -Node: Notes1126114 -Node: Compatibility Mode1126979 -Node: Additions1127761 -Node: Accessing The Source1128686 -Node: Adding Code1130122 -Node: New Ports1136300 -Node: Derived Files1140781 -Ref: Derived Files-Footnote-11145862 -Ref: Derived Files-Footnote-21145896 -Ref: Derived Files-Footnote-31146492 -Node: Future Extensions1146606 -Node: Implementation Limitations1147212 -Node: Extension Design1148460 -Node: Old Extension Problems1149614 -Ref: Old Extension Problems-Footnote-11151131 -Node: Extension New Mechanism Goals1151188 -Ref: Extension New Mechanism Goals-Footnote-11154548 -Node: Extension Other Design Decisions1154737 -Node: Extension Future Growth1156843 -Node: Old Extension Mechanism1157679 -Node: Notes summary1159441 -Node: Basic Concepts1160627 -Node: Basic High Level1161308 -Ref: figure-general-flow1161580 -Ref: figure-process-flow1162179 -Ref: Basic High Level-Footnote-11165408 -Node: Basic Data Typing1165593 -Node: Glossary1168921 -Node: Copying1194073 -Node: GNU Free Documentation License1231629 -Node: Index1256765 +Ref: Statements/Lines-Footnote-1106688 +Node: Other Features106953 +Node: When107881 +Node: Intro Summary110051 +Node: Invoking Gawk110817 +Node: Command Line112332 +Node: Options113123 +Ref: Options-Footnote-1128952 +Node: Other Arguments128977 +Node: Naming Standard Input131639 +Node: Environment Variables132733 +Node: AWKPATH Variable133291 +Ref: AWKPATH Variable-Footnote-1136163 +Ref: AWKPATH Variable-Footnote-2136208 +Node: AWKLIBPATH Variable136468 +Node: Other Environment Variables137227 +Node: Exit Status140882 +Node: Include Files141557 +Node: Loading Shared Libraries145135 +Node: Obsolete146519 +Node: Undocumented147216 +Node: Invoking Summary147483 +Node: Regexp149063 +Node: Regexp Usage150513 +Node: Escape Sequences152546 +Node: Regexp Operators158213 +Ref: Regexp Operators-Footnote-1165693 +Ref: Regexp Operators-Footnote-2165840 +Node: Bracket Expressions165938 +Ref: table-char-classes167828 +Node: GNU Regexp Operators170351 +Node: Case-sensitivity174074 +Ref: Case-sensitivity-Footnote-1176966 +Ref: Case-sensitivity-Footnote-2177201 +Node: Leftmost Longest177309 +Node: Computed Regexps178510 +Node: Regexp Summary181882 +Node: Reading Files183353 +Node: Records185445 +Node: awk split records186188 +Node: gawk split records191046 +Ref: gawk split records-Footnote-1195567 +Node: Fields195604 +Ref: Fields-Footnote-1198568 +Node: Nonconstant Fields198654 +Ref: Nonconstant Fields-Footnote-1200884 +Node: Changing Fields201086 +Node: Field Separators207040 +Node: Default Field Splitting209742 +Node: Regexp Field Splitting210859 +Node: Single Character Fields214200 +Node: Command Line Field Separator215259 +Node: Full Line Fields218601 +Ref: Full Line Fields-Footnote-1219109 +Node: Field Splitting Summary219155 +Ref: Field Splitting Summary-Footnote-1222254 +Node: Constant Size222355 +Node: Splitting By Content226962 +Ref: Splitting By Content-Footnote-1230712 +Node: Multiple Line230752 +Ref: Multiple Line-Footnote-1236608 +Node: Getline236787 +Node: Plain Getline239003 +Node: Getline/Variable241098 +Node: Getline/File242245 +Node: Getline/Variable/File243629 +Ref: Getline/Variable/File-Footnote-1245228 +Node: Getline/Pipe245315 +Node: Getline/Variable/Pipe248014 +Node: Getline/Coprocess249121 +Node: Getline/Variable/Coprocess250373 +Node: Getline Notes251110 +Node: Getline Summary253914 +Ref: table-getline-variants254322 +Node: Read Timeout255234 +Ref: Read Timeout-Footnote-1259061 +Node: Command line directories259119 +Node: Input Summary260023 +Node: Input Exercises263160 +Node: Printing263893 +Node: Print265615 +Node: Print Examples266956 +Node: Output Separators269735 +Node: OFMT271751 +Node: Printf273109 +Node: Basic Printf274015 +Node: Control Letters275554 +Node: Format Modifiers279406 +Node: Printf Examples285433 +Node: Redirection287897 +Node: Special Files294869 +Node: Special FD295400 +Ref: Special FD-Footnote-1299024 +Node: Special Network299098 +Node: Special Caveats299948 +Node: Close Files And Pipes300744 +Ref: Close Files And Pipes-Footnote-1307905 +Ref: Close Files And Pipes-Footnote-2308053 +Node: Output Summary308203 +Node: Output exercises309200 +Node: Expressions309880 +Node: Values311065 +Node: Constants311741 +Node: Scalar Constants312421 +Ref: Scalar Constants-Footnote-1313280 +Node: Nondecimal-numbers313530 +Node: Regexp Constants316530 +Node: Using Constant Regexps317005 +Node: Variables320075 +Node: Using Variables320730 +Node: Assignment Options322454 +Node: Conversion324329 +Node: Strings And Numbers324853 +Ref: Strings And Numbers-Footnote-1327915 +Node: Locale influences conversions328024 +Ref: table-locale-affects330741 +Node: All Operators331329 +Node: Arithmetic Ops331959 +Node: Concatenation334464 +Ref: Concatenation-Footnote-1337260 +Node: Assignment Ops337380 +Ref: table-assign-ops342363 +Node: Increment Ops343680 +Node: Truth Values and Conditions347118 +Node: Truth Values348201 +Node: Typing and Comparison349250 +Node: Variable Typing350043 +Ref: Variable Typing-Footnote-1353943 +Node: Comparison Operators354065 +Ref: table-relational-ops354475 +Node: POSIX String Comparison358025 +Ref: POSIX String Comparison-Footnote-1359109 +Node: Boolean Ops359247 +Ref: Boolean Ops-Footnote-1363317 +Node: Conditional Exp363408 +Node: Function Calls365135 +Node: Precedence369015 +Node: Locales372684 +Node: Expressions Summary374315 +Node: Patterns and Actions376856 +Node: Pattern Overview377972 +Node: Regexp Patterns379649 +Node: Expression Patterns380192 +Node: Ranges383973 +Node: BEGIN/END387079 +Node: Using BEGIN/END387841 +Ref: Using BEGIN/END-Footnote-1390577 +Node: I/O And BEGIN/END390683 +Node: BEGINFILE/ENDFILE392968 +Node: Empty395899 +Node: Using Shell Variables396216 +Node: Action Overview398499 +Node: Statements400826 +Node: If Statement402674 +Node: While Statement404172 +Node: Do Statement406216 +Node: For Statement407372 +Node: Switch Statement410524 +Node: Break Statement412627 +Node: Continue Statement414682 +Node: Next Statement416475 +Node: Nextfile Statement418865 +Node: Exit Statement421520 +Node: Built-in Variables423924 +Node: User-modified425051 +Ref: User-modified-Footnote-1432740 +Node: Auto-set432802 +Ref: Auto-set-Footnote-1445721 +Ref: Auto-set-Footnote-2445926 +Node: ARGC and ARGV445982 +Node: Pattern Action Summary449836 +Node: Arrays452059 +Node: Array Basics453608 +Node: Array Intro454434 +Ref: figure-array-elements456407 +Node: Reference to Elements458814 +Node: Assigning Elements461087 +Node: Array Example461578 +Node: Scanning an Array463310 +Node: Controlling Scanning466325 +Ref: Controlling Scanning-Footnote-1471498 +Node: Delete471814 +Ref: Delete-Footnote-1474579 +Node: Numeric Array Subscripts474636 +Node: Uninitialized Subscripts476819 +Node: Multidimensional478444 +Node: Multiscanning481537 +Node: Arrays of Arrays483126 +Node: Arrays Summary487789 +Node: Functions489894 +Node: Built-in490767 +Node: Calling Built-in491845 +Node: Numeric Functions493833 +Ref: Numeric Functions-Footnote-1497667 +Ref: Numeric Functions-Footnote-2498024 +Ref: Numeric Functions-Footnote-3498072 +Node: String Functions498341 +Ref: String Functions-Footnote-1521352 +Ref: String Functions-Footnote-2521481 +Ref: String Functions-Footnote-3521729 +Node: Gory Details521816 +Ref: table-sub-escapes523485 +Ref: table-sub-posix-92524839 +Ref: table-sub-proposed526190 +Ref: table-posix-sub527544 +Ref: table-gensub-escapes529089 +Ref: Gory Details-Footnote-1530265 +Ref: Gory Details-Footnote-2530316 +Node: I/O Functions530467 +Ref: I/O Functions-Footnote-1537590 +Node: Time Functions537737 +Ref: Time Functions-Footnote-1548201 +Ref: Time Functions-Footnote-2548269 +Ref: Time Functions-Footnote-3548427 +Ref: Time Functions-Footnote-4548538 +Ref: Time Functions-Footnote-5548650 +Ref: Time Functions-Footnote-6548877 +Node: Bitwise Functions549143 +Ref: table-bitwise-ops549705 +Ref: Bitwise Functions-Footnote-1553950 +Node: Type Functions554134 +Node: I18N Functions555276 +Node: User-defined556921 +Node: Definition Syntax557725 +Ref: Definition Syntax-Footnote-1562904 +Node: Function Example562973 +Ref: Function Example-Footnote-1565617 +Node: Function Caveats565639 +Node: Calling A Function566157 +Node: Variable Scope567112 +Node: Pass By Value/Reference570100 +Node: Return Statement573608 +Node: Dynamic Typing576592 +Node: Indirect Calls577521 +Node: Functions Summary587234 +Node: Library Functions589773 +Ref: Library Functions-Footnote-1593391 +Ref: Library Functions-Footnote-2593534 +Node: Library Names593705 +Ref: Library Names-Footnote-1597178 +Ref: Library Names-Footnote-2597398 +Node: General Functions597484 +Node: Strtonum Function598512 +Node: Assert Function601292 +Node: Round Function604618 +Node: Cliff Random Function606159 +Node: Ordinal Functions607175 +Ref: Ordinal Functions-Footnote-1610252 +Ref: Ordinal Functions-Footnote-2610504 +Node: Join Function610715 +Ref: Join Function-Footnote-1612486 +Node: Getlocaltime Function612686 +Node: Readfile Function616422 +Node: Data File Management618261 +Node: Filetrans Function618893 +Node: Rewind Function622962 +Node: File Checking624349 +Ref: File Checking-Footnote-1625481 +Node: Empty Files625682 +Node: Ignoring Assigns627661 +Node: Getopt Function629215 +Ref: Getopt Function-Footnote-1640518 +Node: Passwd Functions640721 +Ref: Passwd Functions-Footnote-1649700 +Node: Group Functions649788 +Ref: Group Functions-Footnote-1657729 +Node: Walking Arrays657942 +Node: Library Functions Summary659545 +Node: Library exercises660933 +Node: Sample Programs662213 +Node: Running Examples662983 +Node: Clones663711 +Node: Cut Program664935 +Node: Egrep Program674803 +Ref: Egrep Program-Footnote-1682774 +Node: Id Program682884 +Node: Split Program686548 +Ref: Split Program-Footnote-1690086 +Node: Tee Program690214 +Node: Uniq Program693021 +Node: Wc Program700451 +Ref: Wc Program-Footnote-1704716 +Node: Miscellaneous Programs704808 +Node: Dupword Program706021 +Node: Alarm Program708052 +Node: Translate Program712866 +Ref: Translate Program-Footnote-1717257 +Ref: Translate Program-Footnote-2717527 +Node: Labels Program717661 +Ref: Labels Program-Footnote-1721032 +Node: Word Sorting721116 +Node: History Sorting725159 +Node: Extract Program726995 +Node: Simple Sed734531 +Node: Igawk Program737593 +Ref: Igawk Program-Footnote-1751904 +Ref: Igawk Program-Footnote-2752105 +Node: Anagram Program752243 +Node: Signature Program755311 +Node: Programs Summary756558 +Node: Programs Exercises757773 +Node: Advanced Features761424 +Node: Nondecimal Data763372 +Node: Array Sorting764949 +Node: Controlling Array Traversal765646 +Node: Array Sorting Functions773926 +Ref: Array Sorting Functions-Footnote-1777833 +Node: Two-way I/O778027 +Ref: Two-way I/O-Footnote-1783543 +Node: TCP/IP Networking783625 +Node: Profiling786469 +Node: Advanced Features Summary794011 +Node: Internationalization795875 +Node: I18N and L10N797355 +Node: Explaining gettext798041 +Ref: Explaining gettext-Footnote-1803181 +Ref: Explaining gettext-Footnote-2803365 +Node: Programmer i18n803530 +Node: Translator i18n807755 +Node: String Extraction808549 +Ref: String Extraction-Footnote-1809510 +Node: Printf Ordering809596 +Ref: Printf Ordering-Footnote-1812378 +Node: I18N Portability812442 +Ref: I18N Portability-Footnote-1814891 +Node: I18N Example814954 +Ref: I18N Example-Footnote-1817676 +Node: Gawk I18N817748 +Node: I18N Summary818386 +Node: Debugger819725 +Node: Debugging820747 +Node: Debugging Concepts821188 +Node: Debugging Terms823044 +Node: Awk Debugging825641 +Node: Sample Debugging Session826533 +Node: Debugger Invocation827053 +Node: Finding The Bug828386 +Node: List of Debugger Commands834868 +Node: Breakpoint Control836200 +Node: Debugger Execution Control839864 +Node: Viewing And Changing Data843224 +Node: Execution Stack846582 +Node: Debugger Info848095 +Node: Miscellaneous Debugger Commands852089 +Node: Readline Support857273 +Node: Limitations858165 +Node: Debugging Summary860439 +Node: Arbitrary Precision Arithmetic861603 +Node: Computer Arithmetic862932 +Ref: Computer Arithmetic-Footnote-1867319 +Node: Math Definitions867376 +Ref: table-ieee-formats870260 +Node: MPFR features870764 +Node: FP Math Caution872406 +Ref: FP Math Caution-Footnote-1873447 +Node: Inexactness of computations873816 +Node: Inexact representation874764 +Node: Comparing FP Values876119 +Node: Errors accumulate877083 +Node: Getting Accuracy878516 +Node: Try To Round881175 +Node: Setting precision882074 +Ref: table-predefined-precision-strings882756 +Node: Setting the rounding mode884549 +Ref: table-gawk-rounding-modes884913 +Ref: Setting the rounding mode-Footnote-1888367 +Node: Arbitrary Precision Integers888546 +Ref: Arbitrary Precision Integers-Footnote-1891549 +Node: POSIX Floating Point Problems891698 +Ref: POSIX Floating Point Problems-Footnote-1895574 +Node: Floating point summary895612 +Node: Dynamic Extensions897829 +Node: Extension Intro899381 +Node: Plugin License900646 +Node: Extension Mechanism Outline901331 +Ref: figure-load-extension901755 +Ref: figure-load-new-function903240 +Ref: figure-call-new-function904242 +Node: Extension API Description906226 +Node: Extension API Functions Introduction907676 +Node: General Data Types912541 +Ref: General Data Types-Footnote-1918234 +Node: Requesting Values918533 +Ref: table-value-types-returned919270 +Node: Memory Allocation Functions920228 +Ref: Memory Allocation Functions-Footnote-1922975 +Node: Constructor Functions923071 +Node: Registration Functions924829 +Node: Extension Functions925514 +Node: Exit Callback Functions927816 +Node: Extension Version String929065 +Node: Input Parsers929715 +Node: Output Wrappers939518 +Node: Two-way processors944034 +Node: Printing Messages946238 +Ref: Printing Messages-Footnote-1947315 +Node: Updating `ERRNO'947467 +Node: Accessing Parameters948206 +Node: Symbol Table Access949436 +Node: Symbol table by name949950 +Node: Symbol table by cookie951926 +Ref: Symbol table by cookie-Footnote-1956059 +Node: Cached values956122 +Ref: Cached values-Footnote-1959626 +Node: Array Manipulation959717 +Ref: Array Manipulation-Footnote-1960815 +Node: Array Data Types960854 +Ref: Array Data Types-Footnote-1963557 +Node: Array Functions963649 +Node: Flattening Arrays967523 +Node: Creating Arrays974375 +Node: Extension API Variables979106 +Node: Extension Versioning979742 +Node: Extension API Informational Variables981643 +Node: Extension API Boilerplate982729 +Node: Finding Extensions986533 +Node: Extension Example987093 +Node: Internal File Description987823 +Node: Internal File Ops991914 +Ref: Internal File Ops-Footnote-11003346 +Node: Using Internal File Ops1003486 +Ref: Using Internal File Ops-Footnote-11005833 +Node: Extension Samples1006101 +Node: Extension Sample File Functions1007625 +Node: Extension Sample Fnmatch1015193 +Node: Extension Sample Fork1016675 +Node: Extension Sample Inplace1017888 +Node: Extension Sample Ord1019563 +Node: Extension Sample Readdir1020399 +Ref: table-readdir-file-types1021255 +Node: Extension Sample Revout1022054 +Node: Extension Sample Rev2way1022645 +Node: Extension Sample Read write array1023386 +Node: Extension Sample Readfile1025265 +Node: Extension Sample API Tests1026365 +Node: Extension Sample Time1026890 +Node: gawkextlib1028205 +Node: Extension summary1031018 +Node: Extension Exercises1034711 +Node: Language History1035433 +Node: V7/SVR3.11037076 +Node: SVR41039396 +Node: POSIX1040838 +Node: BTL1042224 +Node: POSIX/GNU1042958 +Node: Feature History1048557 +Node: Common Extensions1061687 +Node: Ranges and Locales1062999 +Ref: Ranges and Locales-Footnote-11067616 +Ref: Ranges and Locales-Footnote-21067643 +Ref: Ranges and Locales-Footnote-31067877 +Node: Contributors1068098 +Node: History summary1073523 +Node: Installation1074892 +Node: Gawk Distribution1075843 +Node: Getting1076327 +Node: Extracting1077151 +Node: Distribution contents1078793 +Node: Unix Installation1084510 +Node: Quick Installation1085127 +Node: Additional Configuration Options1087569 +Node: Configuration Philosophy1089307 +Node: Non-Unix Installation1091658 +Node: PC Installation1092116 +Node: PC Binary Installation1093427 +Node: PC Compiling1095275 +Ref: PC Compiling-Footnote-11098274 +Node: PC Testing1098379 +Node: PC Using1099555 +Node: Cygwin1103713 +Node: MSYS1104522 +Node: VMS Installation1105036 +Node: VMS Compilation1105832 +Ref: VMS Compilation-Footnote-11107054 +Node: VMS Dynamic Extensions1107112 +Node: VMS Installation Details1108485 +Node: VMS Running1110737 +Node: VMS GNV1113571 +Node: VMS Old Gawk1114294 +Node: Bugs1114764 +Node: Other Versions1118768 +Node: Installation summary1125023 +Node: Notes1126079 +Node: Compatibility Mode1126944 +Node: Additions1127726 +Node: Accessing The Source1128651 +Node: Adding Code1130087 +Node: New Ports1136265 +Node: Derived Files1140746 +Ref: Derived Files-Footnote-11145827 +Ref: Derived Files-Footnote-21145861 +Ref: Derived Files-Footnote-31146457 +Node: Future Extensions1146571 +Node: Implementation Limitations1147177 +Node: Extension Design1148425 +Node: Old Extension Problems1149579 +Ref: Old Extension Problems-Footnote-11151096 +Node: Extension New Mechanism Goals1151153 +Ref: Extension New Mechanism Goals-Footnote-11154513 +Node: Extension Other Design Decisions1154702 +Node: Extension Future Growth1156808 +Node: Old Extension Mechanism1157644 +Node: Notes summary1159406 +Node: Basic Concepts1160592 +Node: Basic High Level1161273 +Ref: figure-general-flow1161545 +Ref: figure-process-flow1162144 +Ref: Basic High Level-Footnote-11165373 +Node: Basic Data Typing1165558 +Node: Glossary1168886 +Node: Copying1194038 +Node: GNU Free Documentation License1231594 +Node: Index1256730 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 85c6dab3..f8fc1269 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -3302,7 +3302,7 @@ $ gawk 'BEGIN @{ print "dont panic" # a friendly \ > BEGIN rule > @}' @error{} gawk: cmd. line:2: BEGIN rule -@error{} gawk: cmd. line:2: ^ parse error +@error{} gawk: cmd. line:2: ^ syntax error @end example @noindent @@ -34070,7 +34070,7 @@ flags in the @code{FNM} array. The flags are follows: @multitable @columnfractions .25 .75 -@headitem Array element @tab Corresponding lag defined by @code{fnmatch()} +@headitem Array element @tab Corresponding flag defined by @code{fnmatch()} @item @code{FNM["CASEFOLD"]} @tab @code{FNM_CASEFOLD} @item @code{FNM["FILE_NAME"]} @tab @code{FNM_FILE_NAME} @item @code{FNM["LEADING_DIR"]} @tab @code{FNM_LEADING_DIR} @@ -34485,7 +34485,7 @@ main @command{gawk} distribution. @cindex @command{git} utility You can check out the code for the @code{gawkextlib} project -using the @uref{http://git-scm.com, GIT} distributed source +using the @uref{http://git-scm.com, Git} distributed source code control system. The command is as follows: @example @@ -36285,7 +36285,6 @@ into a byte-code interpreter, including the debugger. @item The addition of true arrays of arrays. -@ref{Arrays of Arrays}. @item The additional modifications for support of arbitrary precision arithmetic. @@ -36307,6 +36306,7 @@ with Pat Rankin. @end itemize @cindex Papadopoulos, Panos +@item Panos Papadopoulos contributed the original text for @ref{Include Files}. @item diff --git a/doc/gawktexi.in b/doc/gawktexi.in index 13e46315..00d544b4 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -3230,7 +3230,7 @@ $ gawk 'BEGIN @{ print "dont panic" # a friendly \ > BEGIN rule > @}' @error{} gawk: cmd. line:2: BEGIN rule -@error{} gawk: cmd. line:2: ^ parse error +@error{} gawk: cmd. line:2: ^ syntax error @end example @noindent @@ -33185,7 +33185,7 @@ flags in the @code{FNM} array. The flags are follows: @multitable @columnfractions .25 .75 -@headitem Array element @tab Corresponding lag defined by @code{fnmatch()} +@headitem Array element @tab Corresponding flag defined by @code{fnmatch()} @item @code{FNM["CASEFOLD"]} @tab @code{FNM_CASEFOLD} @item @code{FNM["FILE_NAME"]} @tab @code{FNM_FILE_NAME} @item @code{FNM["LEADING_DIR"]} @tab @code{FNM_LEADING_DIR} @@ -33600,7 +33600,7 @@ main @command{gawk} distribution. @cindex @command{git} utility You can check out the code for the @code{gawkextlib} project -using the @uref{http://git-scm.com, GIT} distributed source +using the @uref{http://git-scm.com, Git} distributed source code control system. The command is as follows: @example @@ -35400,7 +35400,6 @@ into a byte-code interpreter, including the debugger. @item The addition of true arrays of arrays. -@ref{Arrays of Arrays}. @item The additional modifications for support of arbitrary precision arithmetic. @@ -35422,6 +35421,7 @@ with Pat Rankin. @end itemize @cindex Papadopoulos, Panos +@item Panos Papadopoulos contributed the original text for @ref{Include Files}. @item @@ -2476,14 +2476,22 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM) { - tree = parse_dup_op (tree, regexp, dfa, token, syntax, err); - if (BE (*err != REG_NOERROR && tree == NULL, 0)) - return NULL; + bin_tree_t *dup_tree = parse_dup_op (tree, regexp, dfa, token, + syntax, err); + if (BE (*err != REG_NOERROR && dup_tree == NULL, 0)) + { + if (tree != NULL) + postorder (tree, free_tree, NULL); + return NULL; + } + tree = dup_tree; /* In BRE consecutive duplications are not allowed. */ if ((syntax & RE_CONTEXT_INVALID_DUP) && (token->type == OP_DUP_ASTERISK || token->type == OP_OPEN_DUP_NUM)) { + if (tree != NULL) + postorder (tree, free_tree, NULL); *err = REG_BADRPT; return NULL; } |