diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | doc/gawk.info | 724 | ||||
-rw-r--r-- | doc/gawk.texi | 4 | ||||
-rw-r--r-- | main.c | 13 |
4 files changed, 381 insertions, 365 deletions
@@ -1,3 +1,8 @@ +2012-02-28 Arnold D. Robbins <arnold@skeeve.com> + + * main.c (init_groupset): Make `getgroups' failing a non-fatal + error. After all, what's the big deal? Should help on Plan 9. + 2012-02-27 Arnold D. Robbins <arnold@skeeve.com> * dfa.c (parse_bracket_exp): Revert changes 2012-02-15 to stay diff --git a/doc/gawk.info b/doc/gawk.info index bfaca25b..a33027cd 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -3173,6 +3173,10 @@ sequences and that are not listed in the table stand for themselves: constants are valid and work the way you want them to, using any version of `awk'.(2) + Finally, when `{' and `}' appear in regexp constants in a way that + cannot be interpreted as an interval expression (such as + `/q{a}/'), then they stand for themselves. + In regular expressions, the `*', `+', and `?' operators, as well as the braces `{' and `}', have the highest precedence, followed by concatenation, and finally by `|'. As in arithmetic, parentheses can @@ -26079,7 +26083,7 @@ Index (line 26) * gawk, regular expressions, operators: GNU Regexp Operators. (line 6) -* gawk, regular expressions, precedence: Regexp Operators. (line 157) +* gawk, regular expressions, precedence: Regexp Operators. (line 161) * gawk, RT variable in <1>: Auto-set. (line 196) * gawk, RT variable in <2>: Getline/Variable/File. (line 10) @@ -26761,7 +26765,7 @@ Index * POSIX awk, OFMT variable and: OFMT. (line 27) * POSIX awk, period (.), using: Regexp Operators. (line 50) * POSIX awk, printf format strings and: Format Modifiers. (line 159) -* POSIX awk, regular expressions and: Regexp Operators. (line 157) +* POSIX awk, regular expressions and: Regexp Operators. (line 161) * POSIX awk, timestamps and: Time Functions. (line 6) * POSIX awk, | I/O operator and: Getline/Pipe. (line 52) * POSIX mode: Options. (line 199) @@ -26771,7 +26775,7 @@ Index * POSIXLY_CORRECT environment variable: Options. (line 289) * precedence <1>: Precedence. (line 6) * precedence: Increment Ops. (line 61) -* precedence, regexp operators: Regexp Operators. (line 152) +* precedence, regexp operators: Regexp Operators. (line 156) * print debugger command: Viewing And Changing Data. (line 36) * print statement: Printing. (line 16) @@ -26937,7 +26941,7 @@ Index * regular expressions, operators, gawk: GNU Regexp Operators. (line 6) * regular expressions, operators, precedence of: Regexp Operators. - (line 152) + (line 156) * regular expressions, searching for: Egrep Program. (line 6) * relational operators, See comparison operators: Typing and Comparison. (line 9) @@ -27490,361 +27494,361 @@ Node: Regexp127250 Node: Regexp Usage128639 Node: Escape Sequences130665 Node: Regexp Operators136428 -Ref: Regexp Operators-Footnote-1143625 -Ref: Regexp Operators-Footnote-2143772 -Node: Bracket Expressions143870 -Ref: table-char-classes145760 -Node: GNU Regexp Operators148283 -Node: Case-sensitivity152006 -Ref: Case-sensitivity-Footnote-1154974 -Ref: Case-sensitivity-Footnote-2155209 -Node: Leftmost Longest155317 -Node: Computed Regexps156518 -Node: Reading Files159928 -Node: Records161869 -Ref: Records-Footnote-1170543 -Node: Fields170580 -Ref: Fields-Footnote-1173613 -Node: Nonconstant Fields173699 -Node: Changing Fields175901 -Node: Field Separators181882 -Node: Default Field Splitting184511 -Node: Regexp Field Splitting185628 -Node: Single Character Fields188970 -Node: Command Line Field Separator190029 -Node: Field Splitting Summary193470 -Ref: Field Splitting Summary-Footnote-1196662 -Node: Constant Size196763 -Node: Splitting By Content201347 -Ref: Splitting By Content-Footnote-1205073 -Node: Multiple Line205113 -Ref: Multiple Line-Footnote-1210960 -Node: Getline211139 -Node: Plain Getline213367 -Node: Getline/Variable215456 -Node: Getline/File216597 -Node: Getline/Variable/File217919 -Ref: Getline/Variable/File-Footnote-1219518 -Node: Getline/Pipe219605 -Node: Getline/Variable/Pipe222165 -Node: Getline/Coprocess223272 -Node: Getline/Variable/Coprocess224515 -Node: Getline Notes225229 -Node: Getline Summary227171 -Ref: table-getline-variants227514 -Node: Command line directories228370 -Node: Printing228995 -Node: Print230626 -Node: Print Examples231963 -Node: Output Separators234747 -Node: OFMT236507 -Node: Printf237865 -Node: Basic Printf238771 -Node: Control Letters240310 -Node: Format Modifiers244122 -Node: Printf Examples250131 -Node: Redirection252846 -Node: Special Files259830 -Node: Special FD260363 -Ref: Special FD-Footnote-1263988 -Node: Special Network264062 -Node: Special Caveats264912 -Node: Close Files And Pipes265708 -Ref: Close Files And Pipes-Footnote-1272731 -Ref: Close Files And Pipes-Footnote-2272879 -Node: Expressions273029 -Node: Values274161 -Node: Constants274837 -Node: Scalar Constants275517 -Ref: Scalar Constants-Footnote-1276376 -Node: Nondecimal-numbers276558 -Node: Regexp Constants279617 -Node: Using Constant Regexps280092 -Node: Variables283147 -Node: Using Variables283802 -Node: Assignment Options285526 -Node: Conversion287398 -Ref: table-locale-affects292774 -Ref: Conversion-Footnote-1293398 -Node: All Operators293507 -Node: Arithmetic Ops294137 -Node: Concatenation296642 -Ref: Concatenation-Footnote-1299435 -Node: Assignment Ops299555 -Ref: table-assign-ops304543 -Node: Increment Ops305951 -Node: Truth Values and Conditions309421 -Node: Truth Values310504 -Node: Typing and Comparison311553 -Node: Variable Typing312342 -Ref: Variable Typing-Footnote-1316239 -Node: Comparison Operators316361 -Ref: table-relational-ops316771 -Node: POSIX String Comparison320320 -Ref: POSIX String Comparison-Footnote-1321276 -Node: Boolean Ops321414 -Ref: Boolean Ops-Footnote-1325492 -Node: Conditional Exp325583 -Node: Function Calls327315 -Node: Precedence330909 -Node: Locales334578 -Node: Patterns and Actions335667 -Node: Pattern Overview336721 -Node: Regexp Patterns338390 -Node: Expression Patterns338933 -Node: Ranges342618 -Node: BEGIN/END345584 -Node: Using BEGIN/END346346 -Ref: Using BEGIN/END-Footnote-1349077 -Node: I/O And BEGIN/END349183 -Node: BEGINFILE/ENDFILE351465 -Node: Empty354358 -Node: Using Shell Variables354674 -Node: Action Overview356959 -Node: Statements359316 -Node: If Statement361170 -Node: While Statement362669 -Node: Do Statement364713 -Node: For Statement365869 -Node: Switch Statement369021 -Node: Break Statement371118 -Node: Continue Statement373108 -Node: Next Statement374901 -Node: Nextfile Statement377291 -Node: Exit Statement379836 -Node: Built-in Variables382252 -Node: User-modified383347 -Ref: User-modified-Footnote-1391373 -Node: Auto-set391435 -Ref: Auto-set-Footnote-1400726 -Node: ARGC and ARGV400931 -Node: Arrays404782 -Node: Array Basics406287 -Node: Array Intro407113 -Node: Reference to Elements411431 -Node: Assigning Elements413701 -Node: Array Example414192 -Node: Scanning an Array415924 -Node: Controlling Scanning418238 -Ref: Controlling Scanning-Footnote-1423171 -Node: Delete423487 -Ref: Delete-Footnote-1425922 -Node: Numeric Array Subscripts425979 -Node: Uninitialized Subscripts428162 -Node: Multi-dimensional429790 -Node: Multi-scanning432884 -Node: Arrays of Arrays434475 -Node: Functions439120 -Node: Built-in439942 -Node: Calling Built-in441020 -Node: Numeric Functions443008 -Ref: Numeric Functions-Footnote-1446840 -Ref: Numeric Functions-Footnote-2447197 -Ref: Numeric Functions-Footnote-3447245 -Node: String Functions447514 -Ref: String Functions-Footnote-1471011 -Ref: String Functions-Footnote-2471140 -Ref: String Functions-Footnote-3471388 -Node: Gory Details471475 -Ref: table-sub-escapes473154 -Ref: table-sub-posix-92474508 -Ref: table-sub-proposed475851 -Ref: table-posix-sub477201 -Ref: table-gensub-escapes478747 -Ref: Gory Details-Footnote-1479954 -Ref: Gory Details-Footnote-2480005 -Node: I/O Functions480156 -Ref: I/O Functions-Footnote-1486811 -Node: Time Functions486958 -Ref: Time Functions-Footnote-1497850 -Ref: Time Functions-Footnote-2497918 -Ref: Time Functions-Footnote-3498076 -Ref: Time Functions-Footnote-4498187 -Ref: Time Functions-Footnote-5498299 -Ref: Time Functions-Footnote-6498526 -Node: Bitwise Functions498792 -Ref: table-bitwise-ops499350 -Ref: Bitwise Functions-Footnote-1503510 -Node: Type Functions503694 -Node: I18N Functions504164 -Node: User-defined505791 -Node: Definition Syntax506595 -Ref: Definition Syntax-Footnote-1511505 -Node: Function Example511574 -Node: Function Caveats514168 -Node: Calling A Function514589 -Node: Variable Scope515704 -Node: Pass By Value/Reference517679 -Node: Return Statement521119 -Node: Dynamic Typing524100 -Node: Indirect Calls524835 -Node: Internationalization534520 -Node: I18N and L10N535946 -Node: Explaining gettext536632 -Ref: Explaining gettext-Footnote-1541698 -Ref: Explaining gettext-Footnote-2541882 -Node: Programmer i18n542047 -Node: Translator i18n546247 -Node: String Extraction547040 -Ref: String Extraction-Footnote-1548001 -Node: Printf Ordering548087 -Ref: Printf Ordering-Footnote-1550871 -Node: I18N Portability550935 -Ref: I18N Portability-Footnote-1553384 -Node: I18N Example553447 -Ref: I18N Example-Footnote-1556082 -Node: Gawk I18N556154 -Node: Advanced Features556771 -Node: Nondecimal Data558284 -Node: Array Sorting559867 -Node: Controlling Array Traversal560564 -Node: Array Sorting Functions568801 -Ref: Array Sorting Functions-Footnote-1572475 -Ref: Array Sorting Functions-Footnote-2572568 -Node: Two-way I/O572762 -Ref: Two-way I/O-Footnote-1578194 -Node: TCP/IP Networking578264 -Node: Profiling581108 -Node: Library Functions588582 -Ref: Library Functions-Footnote-1591589 -Node: Library Names591760 -Ref: Library Names-Footnote-1595231 -Ref: Library Names-Footnote-2595451 -Node: General Functions595537 -Node: Strtonum Function596490 -Node: Assert Function599420 -Node: Round Function602746 -Node: Cliff Random Function604289 -Node: Ordinal Functions605305 -Ref: Ordinal Functions-Footnote-1608375 -Ref: Ordinal Functions-Footnote-2608627 -Node: Join Function608836 -Ref: Join Function-Footnote-1610607 -Node: Gettimeofday Function610807 -Node: Data File Management614522 -Node: Filetrans Function615154 -Node: Rewind Function619293 -Node: File Checking620680 -Node: Empty Files621774 -Node: Ignoring Assigns624004 -Node: Getopt Function625557 -Ref: Getopt Function-Footnote-1636861 -Node: Passwd Functions637064 -Ref: Passwd Functions-Footnote-1646039 -Node: Group Functions646127 -Node: Walking Arrays654211 -Node: Sample Programs655780 -Node: Running Examples656445 -Node: Clones657173 -Node: Cut Program658397 -Node: Egrep Program668242 -Ref: Egrep Program-Footnote-1676015 -Node: Id Program676125 -Node: Split Program679741 -Ref: Split Program-Footnote-1683260 -Node: Tee Program683388 -Node: Uniq Program686191 -Node: Wc Program693620 -Ref: Wc Program-Footnote-1697886 -Ref: Wc Program-Footnote-2698086 -Node: Miscellaneous Programs698178 -Node: Dupword Program699366 -Node: Alarm Program701397 -Node: Translate Program706146 -Ref: Translate Program-Footnote-1710533 -Ref: Translate Program-Footnote-2710761 -Node: Labels Program710895 -Ref: Labels Program-Footnote-1714266 -Node: Word Sorting714350 -Node: History Sorting718234 -Node: Extract Program720073 -Ref: Extract Program-Footnote-1727556 -Node: Simple Sed727684 -Node: Igawk Program730746 -Ref: Igawk Program-Footnote-1745903 -Ref: Igawk Program-Footnote-2746104 -Node: Anagram Program746242 -Node: Signature Program749310 -Node: Debugger750410 -Node: Debugging751321 -Node: Debugging Concepts751734 -Node: Debugging Terms753590 -Node: Awk Debugging756213 -Node: Sample dgawk session757105 -Node: dgawk invocation757597 -Node: Finding The Bug758779 -Node: List of Debugger Commands765265 -Node: Breakpoint Control766576 -Node: Dgawk Execution Control770212 -Node: Viewing And Changing Data773563 -Node: Dgawk Stack776900 -Node: Dgawk Info778360 -Node: Miscellaneous Dgawk Commands782308 -Node: Readline Support787736 -Node: Dgawk Limitations788574 -Node: Language History790763 -Node: V7/SVR3.1792275 -Node: SVR4794596 -Node: POSIX796038 -Node: BTL797046 -Node: POSIX/GNU797780 -Node: Common Extensions802931 -Node: Ranges and Locales804038 -Ref: Ranges and Locales-Footnote-1808642 -Node: Contributors808863 -Node: Installation813125 -Node: Gawk Distribution814019 -Node: Getting814503 -Node: Extracting815329 -Node: Distribution contents817021 -Node: Unix Installation822243 -Node: Quick Installation822860 -Node: Additional Configuration Options824822 -Node: Configuration Philosophy826299 -Node: Non-Unix Installation828641 -Node: PC Installation829099 -Node: PC Binary Installation830398 -Node: PC Compiling832246 -Node: PC Testing835190 -Node: PC Using836366 -Node: Cygwin840551 -Node: MSYS841551 -Node: VMS Installation842065 -Node: VMS Compilation842668 -Ref: VMS Compilation-Footnote-1843675 -Node: VMS Installation Details843733 -Node: VMS Running845368 -Node: VMS Old Gawk846975 -Node: Bugs847449 -Node: Other Versions851301 -Node: Notes856582 -Node: Compatibility Mode857274 -Node: Additions858057 -Node: Accessing The Source858869 -Node: Adding Code860294 -Node: New Ports866261 -Node: Dynamic Extensions870374 -Node: Internals871750 -Node: Plugin License880853 -Node: Sample Library881487 -Node: Internal File Description882173 -Node: Internal File Ops885888 -Ref: Internal File Ops-Footnote-1890669 -Node: Using Internal File Ops890809 -Node: Future Extensions893186 -Node: Basic Concepts895690 -Node: Basic High Level896447 -Ref: Basic High Level-Footnote-1900482 -Node: Basic Data Typing900667 -Node: Floating Point Issues905192 -Node: String Conversion Precision906275 -Ref: String Conversion Precision-Footnote-1907975 -Node: Unexpected Results908084 -Node: POSIX Floating Point Problems909910 -Ref: POSIX Floating Point Problems-Footnote-1913615 -Node: Glossary913653 -Node: Copying938629 -Node: GNU Free Documentation License976186 -Node: Index1001323 +Ref: Regexp Operators-Footnote-1143808 +Ref: Regexp Operators-Footnote-2143955 +Node: Bracket Expressions144053 +Ref: table-char-classes145943 +Node: GNU Regexp Operators148466 +Node: Case-sensitivity152189 +Ref: Case-sensitivity-Footnote-1155157 +Ref: Case-sensitivity-Footnote-2155392 +Node: Leftmost Longest155500 +Node: Computed Regexps156701 +Node: Reading Files160111 +Node: Records162052 +Ref: Records-Footnote-1170726 +Node: Fields170763 +Ref: Fields-Footnote-1173796 +Node: Nonconstant Fields173882 +Node: Changing Fields176084 +Node: Field Separators182065 +Node: Default Field Splitting184694 +Node: Regexp Field Splitting185811 +Node: Single Character Fields189153 +Node: Command Line Field Separator190212 +Node: Field Splitting Summary193653 +Ref: Field Splitting Summary-Footnote-1196845 +Node: Constant Size196946 +Node: Splitting By Content201530 +Ref: Splitting By Content-Footnote-1205256 +Node: Multiple Line205296 +Ref: Multiple Line-Footnote-1211143 +Node: Getline211322 +Node: Plain Getline213550 +Node: Getline/Variable215639 +Node: Getline/File216780 +Node: Getline/Variable/File218102 +Ref: Getline/Variable/File-Footnote-1219701 +Node: Getline/Pipe219788 +Node: Getline/Variable/Pipe222348 +Node: Getline/Coprocess223455 +Node: Getline/Variable/Coprocess224698 +Node: Getline Notes225412 +Node: Getline Summary227354 +Ref: table-getline-variants227697 +Node: Command line directories228553 +Node: Printing229178 +Node: Print230809 +Node: Print Examples232146 +Node: Output Separators234930 +Node: OFMT236690 +Node: Printf238048 +Node: Basic Printf238954 +Node: Control Letters240493 +Node: Format Modifiers244305 +Node: Printf Examples250314 +Node: Redirection253029 +Node: Special Files260013 +Node: Special FD260546 +Ref: Special FD-Footnote-1264171 +Node: Special Network264245 +Node: Special Caveats265095 +Node: Close Files And Pipes265891 +Ref: Close Files And Pipes-Footnote-1272914 +Ref: Close Files And Pipes-Footnote-2273062 +Node: Expressions273212 +Node: Values274344 +Node: Constants275020 +Node: Scalar Constants275700 +Ref: Scalar Constants-Footnote-1276559 +Node: Nondecimal-numbers276741 +Node: Regexp Constants279800 +Node: Using Constant Regexps280275 +Node: Variables283330 +Node: Using Variables283985 +Node: Assignment Options285709 +Node: Conversion287581 +Ref: table-locale-affects292957 +Ref: Conversion-Footnote-1293581 +Node: All Operators293690 +Node: Arithmetic Ops294320 +Node: Concatenation296825 +Ref: Concatenation-Footnote-1299618 +Node: Assignment Ops299738 +Ref: table-assign-ops304726 +Node: Increment Ops306134 +Node: Truth Values and Conditions309604 +Node: Truth Values310687 +Node: Typing and Comparison311736 +Node: Variable Typing312525 +Ref: Variable Typing-Footnote-1316422 +Node: Comparison Operators316544 +Ref: table-relational-ops316954 +Node: POSIX String Comparison320503 +Ref: POSIX String Comparison-Footnote-1321459 +Node: Boolean Ops321597 +Ref: Boolean Ops-Footnote-1325675 +Node: Conditional Exp325766 +Node: Function Calls327498 +Node: Precedence331092 +Node: Locales334761 +Node: Patterns and Actions335850 +Node: Pattern Overview336904 +Node: Regexp Patterns338573 +Node: Expression Patterns339116 +Node: Ranges342801 +Node: BEGIN/END345767 +Node: Using BEGIN/END346529 +Ref: Using BEGIN/END-Footnote-1349260 +Node: I/O And BEGIN/END349366 +Node: BEGINFILE/ENDFILE351648 +Node: Empty354541 +Node: Using Shell Variables354857 +Node: Action Overview357142 +Node: Statements359499 +Node: If Statement361353 +Node: While Statement362852 +Node: Do Statement364896 +Node: For Statement366052 +Node: Switch Statement369204 +Node: Break Statement371301 +Node: Continue Statement373291 +Node: Next Statement375084 +Node: Nextfile Statement377474 +Node: Exit Statement380019 +Node: Built-in Variables382435 +Node: User-modified383530 +Ref: User-modified-Footnote-1391556 +Node: Auto-set391618 +Ref: Auto-set-Footnote-1400909 +Node: ARGC and ARGV401114 +Node: Arrays404965 +Node: Array Basics406470 +Node: Array Intro407296 +Node: Reference to Elements411614 +Node: Assigning Elements413884 +Node: Array Example414375 +Node: Scanning an Array416107 +Node: Controlling Scanning418421 +Ref: Controlling Scanning-Footnote-1423354 +Node: Delete423670 +Ref: Delete-Footnote-1426105 +Node: Numeric Array Subscripts426162 +Node: Uninitialized Subscripts428345 +Node: Multi-dimensional429973 +Node: Multi-scanning433067 +Node: Arrays of Arrays434658 +Node: Functions439303 +Node: Built-in440125 +Node: Calling Built-in441203 +Node: Numeric Functions443191 +Ref: Numeric Functions-Footnote-1447023 +Ref: Numeric Functions-Footnote-2447380 +Ref: Numeric Functions-Footnote-3447428 +Node: String Functions447697 +Ref: String Functions-Footnote-1471194 +Ref: String Functions-Footnote-2471323 +Ref: String Functions-Footnote-3471571 +Node: Gory Details471658 +Ref: table-sub-escapes473337 +Ref: table-sub-posix-92474691 +Ref: table-sub-proposed476034 +Ref: table-posix-sub477384 +Ref: table-gensub-escapes478930 +Ref: Gory Details-Footnote-1480137 +Ref: Gory Details-Footnote-2480188 +Node: I/O Functions480339 +Ref: I/O Functions-Footnote-1486994 +Node: Time Functions487141 +Ref: Time Functions-Footnote-1498033 +Ref: Time Functions-Footnote-2498101 +Ref: Time Functions-Footnote-3498259 +Ref: Time Functions-Footnote-4498370 +Ref: Time Functions-Footnote-5498482 +Ref: Time Functions-Footnote-6498709 +Node: Bitwise Functions498975 +Ref: table-bitwise-ops499533 +Ref: Bitwise Functions-Footnote-1503693 +Node: Type Functions503877 +Node: I18N Functions504347 +Node: User-defined505974 +Node: Definition Syntax506778 +Ref: Definition Syntax-Footnote-1511688 +Node: Function Example511757 +Node: Function Caveats514351 +Node: Calling A Function514772 +Node: Variable Scope515887 +Node: Pass By Value/Reference517862 +Node: Return Statement521302 +Node: Dynamic Typing524283 +Node: Indirect Calls525018 +Node: Internationalization534703 +Node: I18N and L10N536129 +Node: Explaining gettext536815 +Ref: Explaining gettext-Footnote-1541881 +Ref: Explaining gettext-Footnote-2542065 +Node: Programmer i18n542230 +Node: Translator i18n546430 +Node: String Extraction547223 +Ref: String Extraction-Footnote-1548184 +Node: Printf Ordering548270 +Ref: Printf Ordering-Footnote-1551054 +Node: I18N Portability551118 +Ref: I18N Portability-Footnote-1553567 +Node: I18N Example553630 +Ref: I18N Example-Footnote-1556265 +Node: Gawk I18N556337 +Node: Advanced Features556954 +Node: Nondecimal Data558467 +Node: Array Sorting560050 +Node: Controlling Array Traversal560747 +Node: Array Sorting Functions568984 +Ref: Array Sorting Functions-Footnote-1572658 +Ref: Array Sorting Functions-Footnote-2572751 +Node: Two-way I/O572945 +Ref: Two-way I/O-Footnote-1578377 +Node: TCP/IP Networking578447 +Node: Profiling581291 +Node: Library Functions588765 +Ref: Library Functions-Footnote-1591772 +Node: Library Names591943 +Ref: Library Names-Footnote-1595414 +Ref: Library Names-Footnote-2595634 +Node: General Functions595720 +Node: Strtonum Function596673 +Node: Assert Function599603 +Node: Round Function602929 +Node: Cliff Random Function604472 +Node: Ordinal Functions605488 +Ref: Ordinal Functions-Footnote-1608558 +Ref: Ordinal Functions-Footnote-2608810 +Node: Join Function609019 +Ref: Join Function-Footnote-1610790 +Node: Gettimeofday Function610990 +Node: Data File Management614705 +Node: Filetrans Function615337 +Node: Rewind Function619476 +Node: File Checking620863 +Node: Empty Files621957 +Node: Ignoring Assigns624187 +Node: Getopt Function625740 +Ref: Getopt Function-Footnote-1637044 +Node: Passwd Functions637247 +Ref: Passwd Functions-Footnote-1646222 +Node: Group Functions646310 +Node: Walking Arrays654394 +Node: Sample Programs655963 +Node: Running Examples656628 +Node: Clones657356 +Node: Cut Program658580 +Node: Egrep Program668425 +Ref: Egrep Program-Footnote-1676198 +Node: Id Program676308 +Node: Split Program679924 +Ref: Split Program-Footnote-1683443 +Node: Tee Program683571 +Node: Uniq Program686374 +Node: Wc Program693803 +Ref: Wc Program-Footnote-1698069 +Ref: Wc Program-Footnote-2698269 +Node: Miscellaneous Programs698361 +Node: Dupword Program699549 +Node: Alarm Program701580 +Node: Translate Program706329 +Ref: Translate Program-Footnote-1710716 +Ref: Translate Program-Footnote-2710944 +Node: Labels Program711078 +Ref: Labels Program-Footnote-1714449 +Node: Word Sorting714533 +Node: History Sorting718417 +Node: Extract Program720256 +Ref: Extract Program-Footnote-1727739 +Node: Simple Sed727867 +Node: Igawk Program730929 +Ref: Igawk Program-Footnote-1746086 +Ref: Igawk Program-Footnote-2746287 +Node: Anagram Program746425 +Node: Signature Program749493 +Node: Debugger750593 +Node: Debugging751504 +Node: Debugging Concepts751917 +Node: Debugging Terms753773 +Node: Awk Debugging756396 +Node: Sample dgawk session757288 +Node: dgawk invocation757780 +Node: Finding The Bug758962 +Node: List of Debugger Commands765448 +Node: Breakpoint Control766759 +Node: Dgawk Execution Control770395 +Node: Viewing And Changing Data773746 +Node: Dgawk Stack777083 +Node: Dgawk Info778543 +Node: Miscellaneous Dgawk Commands782491 +Node: Readline Support787919 +Node: Dgawk Limitations788757 +Node: Language History790946 +Node: V7/SVR3.1792458 +Node: SVR4794779 +Node: POSIX796221 +Node: BTL797229 +Node: POSIX/GNU797963 +Node: Common Extensions803114 +Node: Ranges and Locales804221 +Ref: Ranges and Locales-Footnote-1808825 +Node: Contributors809046 +Node: Installation813308 +Node: Gawk Distribution814202 +Node: Getting814686 +Node: Extracting815512 +Node: Distribution contents817204 +Node: Unix Installation822426 +Node: Quick Installation823043 +Node: Additional Configuration Options825005 +Node: Configuration Philosophy826482 +Node: Non-Unix Installation828824 +Node: PC Installation829282 +Node: PC Binary Installation830581 +Node: PC Compiling832429 +Node: PC Testing835373 +Node: PC Using836549 +Node: Cygwin840734 +Node: MSYS841734 +Node: VMS Installation842248 +Node: VMS Compilation842851 +Ref: VMS Compilation-Footnote-1843858 +Node: VMS Installation Details843916 +Node: VMS Running845551 +Node: VMS Old Gawk847158 +Node: Bugs847632 +Node: Other Versions851484 +Node: Notes856765 +Node: Compatibility Mode857457 +Node: Additions858240 +Node: Accessing The Source859052 +Node: Adding Code860477 +Node: New Ports866444 +Node: Dynamic Extensions870557 +Node: Internals871933 +Node: Plugin License881036 +Node: Sample Library881670 +Node: Internal File Description882356 +Node: Internal File Ops886071 +Ref: Internal File Ops-Footnote-1890852 +Node: Using Internal File Ops890992 +Node: Future Extensions893369 +Node: Basic Concepts895873 +Node: Basic High Level896630 +Ref: Basic High Level-Footnote-1900665 +Node: Basic Data Typing900850 +Node: Floating Point Issues905375 +Node: String Conversion Precision906458 +Ref: String Conversion Precision-Footnote-1908158 +Node: Unexpected Results908267 +Node: POSIX Floating Point Problems910093 +Ref: POSIX Floating Point Problems-Footnote-1913798 +Node: Glossary913836 +Node: Copying938812 +Node: GNU Free Documentation License976369 +Node: Index1001506 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index ee401f9e..83bd3b5d 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -4486,6 +4486,10 @@ it is good practice to always escape them with a backslash. Then the regexp constants are valid and work the way you want them to, using any version of @command{awk}.@footnote{Use two backslashes if you're using a string constant with a regexp operator or function.} + +Finally, when @samp{@{} and @samp{@}} appear in regexp constants +in a way that cannot be interpreted as an interval expression +(such as @code{/q@{a@}/}), then they stand for themselves. @end table @cindex precedence, regexp operators @@ -1372,17 +1372,20 @@ init_groupset() */ ngroups = getgroups(0, NULL); #endif - if (ngroups == -1) - fatal(_("could not find groups: %s"), strerror(errno)); - else if (ngroups == 0) + /* If an error or no groups, just give up and get on with life. */ + if (ngroups <= 0) return; /* fill in groups */ emalloc(groupset, GETGROUPS_T *, ngroups * sizeof(GETGROUPS_T), "init_groupset"); ngroups = getgroups(ngroups, groupset); - if (ngroups == -1) - fatal(_("could not find groups: %s"), strerror(errno)); + /* same thing here, give up but keep going */ + if (ngroups == -1) { + efree(groupset); + ngroups = 0; + groupset = NULL; + } #endif } |