diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | awkgram.c | 2 | ||||
-rw-r--r-- | awkgram.y | 2 | ||||
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/gawk.info | 1047 | ||||
-rw-r--r-- | doc/gawk.texi | 25 | ||||
-rw-r--r-- | doc/gawktexi.in | 2 | ||||
-rw-r--r-- | eval.c | 25 |
8 files changed, 590 insertions, 527 deletions
@@ -1,3 +1,13 @@ +2016-07-19 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * eval.c (set_LINT): Simplify the code considerably. + +2016-07-19 Arnold D. Robbins <arnold@skeeve.com> + + * awkgram.y (shadow_funcs): Change test at end to be + `lintfunc == r_fatal' instead of `lintfunc != warning'. + Thank to Andrew Schorr for the suggestion. + 2016-07-18 Arnold D. Robbins <arnold@skeeve.com> * main.c (locale_dir): New variable, init to LOCALEDIR (set by @@ -7090,7 +7090,7 @@ shadow_funcs() efree(funcs); /* End with fatal if the user requested it. */ - if (shadow && lintfunc != warning) + if (shadow && lintfunc == r_fatal) lintwarn(_("there were shadowed variables.")); } @@ -4670,7 +4670,7 @@ shadow_funcs() efree(funcs); /* End with fatal if the user requested it. */ - if (shadow && lintfunc != warning) + if (shadow && lintfunc == r_fatal) lintwarn(_("there were shadowed variables.")); } diff --git a/doc/ChangeLog b/doc/ChangeLog index 2bccf3c1..51a14780 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2016-07-18 Arnold D. Robbins <arnold@skeeve.com> + + * gawktexi.in: Fix a typo. Thanks to Antonio Colombo for reporting. + 2016-07-17 Arnold D. Robbins <arnold@skeeve.com> * gawktexi.in: Document GAWK_LOCALE_DIR env var and also to not diff --git a/doc/gawk.info b/doc/gawk.info index 0c2c9597..a946b129 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -3052,6 +3052,11 @@ change. The variables are: source of a message, as there are multiple places that produce the same warning or error message. +'GAWK_LOCALE_DIR' + Specifies the location of compiled message object files for 'gawk' + itself. This is passed to the 'bindtextdomain()' function when + 'gawk' starts up. + 'GAWK_NO_DFA' If this variable exists, 'gawk' does not use the DFA regexp matcher for "does it match" kinds of tests. This can cause 'gawk' to be @@ -20550,6 +20555,23 @@ are: 'LC_ALL' All of the above. (Not too useful in the context of 'gettext'.) + NOTE: As described in *note Locales::, environment variables with + the same name as the locale categories ('LC_CTYPE', 'LC_ALL', etc.) + influence 'gawk''s behavior (and that of other utilities). + + Normally, these variables also affect how the 'gettext' library + finds translations. However, the 'LANGUAGE' environment variable + overrides the 'LC_XXX' variables. Many GNU/Linux systems may + define this variable without your knowledge, causing 'gawk' to not + find the correct translations. If this happens to you, look to see + if 'LANGUAGE' is defined, and if so, use the shell's 'unset' + command to remove it. + + For testing translations of 'gawk' itself, you can set the +'GAWK_LOCALE_DIR' environment variable. See the documentation for the C +'bindtextdomain()' function and also see *note Other Environment +Variables::. + ---------- Footnotes ---------- (1) For some operating systems, the 'gawk' port doesn't support GNU @@ -34059,6 +34081,7 @@ Index (line 75) * labels.awk program: Labels Program. (line 51) * Langston, Peter: Advanced Features. (line 6) +* LANGUAGE environment variable: Explaining gettext. (line 120) * languages, data-driven: Basic High Level. (line 74) * LC_ALL locale category: Explaining gettext. (line 117) * LC_COLLATE locale category: Explaining gettext. (line 94) @@ -35327,517 +35350,517 @@ Ref: AWKPATH Variable-Footnote-1140788 Ref: AWKPATH Variable-Footnote-2140833 Node: AWKLIBPATH Variable141094 Node: Other Environment Variables142351 -Node: Exit Status145989 -Node: Include Files146666 -Node: Loading Shared Libraries150261 -Node: Obsolete151689 -Node: Undocumented152381 -Node: Invoking Summary152678 -Node: Regexp154338 -Node: Regexp Usage155857 -Node: Escape Sequences157894 -Node: Regexp Operators164126 -Ref: Regexp Operators-Footnote-1171542 -Ref: Regexp Operators-Footnote-2171689 -Node: Bracket Expressions171787 -Ref: table-char-classes174263 -Node: Leftmost Longest177400 -Node: Computed Regexps178703 -Node: GNU Regexp Operators182130 -Node: Case-sensitivity185809 -Ref: Case-sensitivity-Footnote-1188705 -Ref: Case-sensitivity-Footnote-2188940 -Node: Strong Regexp Constants189048 -Node: Regexp Summary191990 -Node: Reading Files193596 -Node: Records195759 -Node: awk split records196492 -Node: gawk split records201423 -Ref: gawk split records-Footnote-1205963 -Node: Fields206000 -Node: Nonconstant Fields208741 -Ref: Nonconstant Fields-Footnote-1210977 -Node: Changing Fields211181 -Node: Field Separators217109 -Node: Default Field Splitting219807 -Node: Regexp Field Splitting220925 -Node: Single Character Fields224278 -Node: Command Line Field Separator225338 -Node: Full Line Fields228556 -Ref: Full Line Fields-Footnote-1230078 -Ref: Full Line Fields-Footnote-2230124 -Node: Field Splitting Summary230225 -Node: Constant Size232299 -Node: Splitting By Content236877 -Ref: Splitting By Content-Footnote-1240848 -Node: Multiple Line241011 -Ref: Multiple Line-Footnote-1246893 -Node: Getline247072 -Node: Plain Getline249538 -Node: Getline/Variable252177 -Node: Getline/File253326 -Node: Getline/Variable/File254712 -Ref: Getline/Variable/File-Footnote-1256315 -Node: Getline/Pipe256403 -Node: Getline/Variable/Pipe259108 -Node: Getline/Coprocess260241 -Node: Getline/Variable/Coprocess261506 -Node: Getline Notes262246 -Node: Getline Summary265041 -Ref: table-getline-variants265463 -Node: Read Timeout266211 -Ref: Read Timeout-Footnote-1270117 -Node: Retrying Input270175 -Node: Command-line directories271374 -Node: Input Summary272280 -Node: Input Exercises275452 -Node: Printing276180 -Node: Print278014 -Node: Print Examples279471 -Node: Output Separators282251 -Node: OFMT284268 -Node: Printf285624 -Node: Basic Printf286409 -Node: Control Letters287983 -Node: Format Modifiers291971 -Node: Printf Examples297986 -Node: Redirection300472 -Node: Special FD307313 -Ref: Special FD-Footnote-1310481 -Node: Special Files310555 -Node: Other Inherited Files311172 -Node: Special Network312173 -Node: Special Caveats313033 -Node: Close Files And Pipes313982 -Ref: Close Files And Pipes-Footnote-1321169 -Ref: Close Files And Pipes-Footnote-2321317 -Node: Nonfatal321468 -Node: Output Summary323793 -Node: Output Exercises325015 -Node: Expressions325694 -Node: Values326882 -Node: Constants327560 -Node: Scalar Constants328251 -Ref: Scalar Constants-Footnote-1329115 -Node: Nondecimal-numbers329365 -Node: Regexp Constants332378 -Node: Using Constant Regexps332904 -Node: Variables336067 -Node: Using Variables336724 -Node: Assignment Options338634 -Node: Conversion340507 -Node: Strings And Numbers341031 -Ref: Strings And Numbers-Footnote-1344094 -Node: Locale influences conversions344203 -Ref: table-locale-affects346961 -Node: All Operators347579 -Node: Arithmetic Ops348208 -Node: Concatenation350714 -Ref: Concatenation-Footnote-1353561 -Node: Assignment Ops353668 -Ref: table-assign-ops358659 -Node: Increment Ops359972 -Node: Truth Values and Conditions363432 -Node: Truth Values364506 -Node: Typing and Comparison365554 -Node: Variable Typing366374 -Node: Comparison Operators369998 -Ref: table-relational-ops370417 -Node: POSIX String Comparison373912 -Ref: POSIX String Comparison-Footnote-1374986 -Node: Boolean Ops375125 -Ref: Boolean Ops-Footnote-1379607 -Node: Conditional Exp379699 -Node: Function Calls381435 -Node: Precedence385312 -Node: Locales388971 -Node: Expressions Summary390603 -Node: Patterns and Actions393176 -Node: Pattern Overview394296 -Node: Regexp Patterns395973 -Node: Expression Patterns396515 -Node: Ranges400296 -Node: BEGIN/END403404 -Node: Using BEGIN/END404165 -Ref: Using BEGIN/END-Footnote-1406901 -Node: I/O And BEGIN/END407007 -Node: BEGINFILE/ENDFILE409321 -Node: Empty412228 -Node: Using Shell Variables412545 -Node: Action Overview414819 -Node: Statements417144 -Node: If Statement418992 -Node: While Statement420487 -Node: Do Statement422515 -Node: For Statement423663 -Node: Switch Statement426821 -Node: Break Statement429207 -Node: Continue Statement431299 -Node: Next Statement433126 -Node: Nextfile Statement435509 -Node: Exit Statement438161 -Node: Built-in Variables440564 -Node: User-modified441697 -Node: Auto-set449283 -Ref: Auto-set-Footnote-1463936 -Ref: Auto-set-Footnote-2464142 -Node: ARGC and ARGV464198 -Node: Pattern Action Summary468411 -Node: Arrays470841 -Node: Array Basics472170 -Node: Array Intro473014 -Ref: figure-array-elements474989 -Ref: Array Intro-Footnote-1477693 -Node: Reference to Elements477821 -Node: Assigning Elements480285 -Node: Array Example480776 -Node: Scanning an Array482535 -Node: Controlling Scanning485557 -Ref: Controlling Scanning-Footnote-1490956 -Node: Numeric Array Subscripts491272 -Node: Uninitialized Subscripts493456 -Node: Delete495075 -Ref: Delete-Footnote-1497827 -Node: Multidimensional497884 -Node: Multiscanning500979 -Node: Arrays of Arrays502570 -Node: Arrays Summary507337 -Node: Functions509430 -Node: Built-in510468 -Node: Calling Built-in511549 -Node: Numeric Functions513545 -Ref: Numeric Functions-Footnote-1518378 -Ref: Numeric Functions-Footnote-2518735 -Ref: Numeric Functions-Footnote-3518783 -Node: String Functions519055 -Ref: String Functions-Footnote-1542559 -Ref: String Functions-Footnote-2542687 -Ref: String Functions-Footnote-3542935 -Node: Gory Details543022 -Ref: table-sub-escapes544813 -Ref: table-sub-proposed546332 -Ref: table-posix-sub547695 -Ref: table-gensub-escapes549236 -Ref: Gory Details-Footnote-1550059 -Node: I/O Functions550213 -Ref: table-system-return-values556795 -Ref: I/O Functions-Footnote-1558775 -Ref: I/O Functions-Footnote-2558923 -Node: Time Functions559043 -Ref: Time Functions-Footnote-1569548 -Ref: Time Functions-Footnote-2569616 -Ref: Time Functions-Footnote-3569774 -Ref: Time Functions-Footnote-4569885 -Ref: Time Functions-Footnote-5569997 -Ref: Time Functions-Footnote-6570224 -Node: Bitwise Functions570490 -Ref: table-bitwise-ops571084 -Ref: Bitwise Functions-Footnote-1575422 -Node: Type Functions575595 -Node: I18N Functions578256 -Node: User-defined579907 -Node: Definition Syntax580712 -Ref: Definition Syntax-Footnote-1586399 -Node: Function Example586470 -Ref: Function Example-Footnote-1589392 -Node: Function Caveats589414 -Node: Calling A Function589932 -Node: Variable Scope590890 -Node: Pass By Value/Reference593884 -Node: Return Statement597383 -Node: Dynamic Typing600362 -Node: Indirect Calls601292 -Ref: Indirect Calls-Footnote-1611543 -Node: Functions Summary611671 -Node: Library Functions614376 -Ref: Library Functions-Footnote-1617983 -Ref: Library Functions-Footnote-2618126 -Node: Library Names618297 -Ref: Library Names-Footnote-1621757 -Ref: Library Names-Footnote-2621980 -Node: General Functions622066 -Node: Strtonum Function623169 -Node: Assert Function626191 -Node: Round Function629517 -Node: Cliff Random Function631058 -Node: Ordinal Functions632074 -Ref: Ordinal Functions-Footnote-1635137 -Ref: Ordinal Functions-Footnote-2635389 -Node: Join Function635599 -Ref: Join Function-Footnote-1637369 -Node: Getlocaltime Function637569 -Node: Readfile Function641311 -Node: Shell Quoting643283 -Node: Data File Management644684 -Node: Filetrans Function645316 -Node: Rewind Function649412 -Node: File Checking651317 -Ref: File Checking-Footnote-1652651 -Node: Empty Files652852 -Node: Ignoring Assigns654831 -Node: Getopt Function656381 -Ref: Getopt Function-Footnote-1667850 -Node: Passwd Functions668050 -Ref: Passwd Functions-Footnote-1676889 -Node: Group Functions676977 -Ref: Group Functions-Footnote-1684874 -Node: Walking Arrays685081 -Node: Library Functions Summary688089 -Node: Library Exercises689495 -Node: Sample Programs689960 -Node: Running Examples690730 -Node: Clones691458 -Node: Cut Program692682 -Node: Egrep Program702611 -Ref: Egrep Program-Footnote-1710123 -Node: Id Program710233 -Node: Split Program713913 -Ref: Split Program-Footnote-1717372 -Node: Tee Program717501 -Node: Uniq Program720291 -Node: Wc Program727717 -Ref: Wc Program-Footnote-1731972 -Node: Miscellaneous Programs732066 -Node: Dupword Program733279 -Node: Alarm Program735309 -Node: Translate Program740164 -Ref: Translate Program-Footnote-1744729 -Node: Labels Program744999 -Ref: Labels Program-Footnote-1748350 -Node: Word Sorting748434 -Node: History Sorting752506 -Node: Extract Program754341 -Node: Simple Sed761870 -Node: Igawk Program764944 -Ref: Igawk Program-Footnote-1779275 -Ref: Igawk Program-Footnote-2779477 -Ref: Igawk Program-Footnote-3779599 -Node: Anagram Program779714 -Node: Signature Program782776 -Node: Programs Summary784023 -Node: Programs Exercises785237 -Ref: Programs Exercises-Footnote-1789366 -Node: Advanced Features789457 -Node: Nondecimal Data791447 -Node: Array Sorting793038 -Node: Controlling Array Traversal793738 -Ref: Controlling Array Traversal-Footnote-1802105 -Node: Array Sorting Functions802223 -Ref: Array Sorting Functions-Footnote-1807314 -Node: Two-way I/O807510 -Ref: Two-way I/O-Footnote-1814060 -Ref: Two-way I/O-Footnote-2814247 -Node: TCP/IP Networking814329 -Node: Profiling817447 -Ref: Profiling-Footnote-1825940 -Node: Advanced Features Summary826263 -Node: Internationalization828107 -Node: I18N and L10N829587 -Node: Explaining gettext830274 -Ref: Explaining gettext-Footnote-1835297 -Ref: Explaining gettext-Footnote-2835482 -Node: Programmer i18n835647 -Ref: Programmer i18n-Footnote-1840502 -Node: Translator i18n840551 -Node: String Extraction841345 -Ref: String Extraction-Footnote-1842477 -Node: Printf Ordering842563 -Ref: Printf Ordering-Footnote-1845349 -Node: I18N Portability845413 -Ref: I18N Portability-Footnote-1847869 -Node: I18N Example847932 -Ref: I18N Example-Footnote-1850738 -Node: Gawk I18N850811 -Node: I18N Summary851456 -Node: Debugger852797 -Node: Debugging853819 -Node: Debugging Concepts854260 -Node: Debugging Terms856069 -Node: Awk Debugging858644 -Node: Sample Debugging Session859550 -Node: Debugger Invocation860084 -Node: Finding The Bug861470 -Node: List of Debugger Commands867948 -Node: Breakpoint Control869281 -Node: Debugger Execution Control872975 -Node: Viewing And Changing Data876337 -Node: Execution Stack879711 -Node: Debugger Info881348 -Node: Miscellaneous Debugger Commands885419 -Node: Readline Support890507 -Node: Limitations891403 -Ref: Limitations-Footnote-1895634 -Node: Debugging Summary895685 -Node: Arbitrary Precision Arithmetic896964 -Node: Computer Arithmetic898380 -Ref: table-numeric-ranges901971 -Ref: Computer Arithmetic-Footnote-1902693 -Node: Math Definitions902750 -Ref: table-ieee-formats906064 -Ref: Math Definitions-Footnote-1906667 -Node: MPFR features906772 -Node: FP Math Caution908489 -Ref: FP Math Caution-Footnote-1909561 -Node: Inexactness of computations909930 -Node: Inexact representation910890 -Node: Comparing FP Values912250 -Node: Errors accumulate913332 -Node: Getting Accuracy914765 -Node: Try To Round917475 -Node: Setting precision918374 -Ref: table-predefined-precision-strings919071 -Node: Setting the rounding mode920901 -Ref: table-gawk-rounding-modes921275 -Ref: Setting the rounding mode-Footnote-1924683 -Node: Arbitrary Precision Integers924862 -Ref: Arbitrary Precision Integers-Footnote-1929779 -Node: POSIX Floating Point Problems929928 -Ref: POSIX Floating Point Problems-Footnote-1933810 -Node: Floating point summary933848 -Node: Dynamic Extensions936038 -Node: Extension Intro937591 -Node: Plugin License938857 -Node: Extension Mechanism Outline939654 -Ref: figure-load-extension940093 -Ref: figure-register-new-function941658 -Ref: figure-call-new-function942750 -Node: Extension API Description944812 -Node: Extension API Functions Introduction946344 -Node: General Data Types951203 -Ref: General Data Types-Footnote-1957158 -Node: Memory Allocation Functions957457 -Ref: Memory Allocation Functions-Footnote-1960302 -Node: Constructor Functions960401 -Node: Registration Functions962146 -Node: Extension Functions962831 -Node: Exit Callback Functions965454 -Node: Extension Version String966704 -Node: Input Parsers967367 -Node: Output Wrappers977249 -Node: Two-way processors981761 -Node: Printing Messages984026 -Ref: Printing Messages-Footnote-1985197 -Node: Updating ERRNO985350 -Node: Requesting Values986089 -Ref: table-value-types-returned986826 -Node: Accessing Parameters987709 -Node: Symbol Table Access988944 -Node: Symbol table by name989456 -Node: Symbol table by cookie991477 -Ref: Symbol table by cookie-Footnote-1995629 -Node: Cached values995693 -Ref: Cached values-Footnote-1999200 -Node: Array Manipulation999291 -Ref: Array Manipulation-Footnote-11000382 -Node: Array Data Types1000419 -Ref: Array Data Types-Footnote-11003077 -Node: Array Functions1003169 -Node: Flattening Arrays1007027 -Node: Creating Arrays1013935 -Node: Redirection API1018704 -Node: Extension API Variables1021535 -Node: Extension Versioning1022168 -Ref: gawk-api-version1022605 -Node: Extension API Informational Variables1024361 -Node: Extension API Boilerplate1025425 -Node: Finding Extensions1029239 -Node: Extension Example1029798 -Node: Internal File Description1030596 -Node: Internal File Ops1034676 -Ref: Internal File Ops-Footnote-11046438 -Node: Using Internal File Ops1046578 -Ref: Using Internal File Ops-Footnote-11048961 -Node: Extension Samples1049235 -Node: Extension Sample File Functions1050764 -Node: Extension Sample Fnmatch1058413 -Node: Extension Sample Fork1059900 -Node: Extension Sample Inplace1061118 -Node: Extension Sample Ord1064328 -Node: Extension Sample Readdir1065164 -Ref: table-readdir-file-types1066053 -Node: Extension Sample Revout1066858 -Node: Extension Sample Rev2way1067447 -Node: Extension Sample Read write array1068187 -Node: Extension Sample Readfile1070129 -Node: Extension Sample Time1071224 -Node: Extension Sample API Tests1072572 -Node: gawkextlib1073064 -Node: Extension summary1075511 -Node: Extension Exercises1079213 -Node: Language History1080710 -Node: V7/SVR3.11082366 -Node: SVR41084518 -Node: POSIX1085952 -Node: BTL1087331 -Node: POSIX/GNU1088060 -Node: Feature History1093922 -Node: Common Extensions1108292 -Node: Ranges and Locales1109575 -Ref: Ranges and Locales-Footnote-11114191 -Ref: Ranges and Locales-Footnote-21114218 -Ref: Ranges and Locales-Footnote-31114453 -Node: Contributors1114674 -Node: History summary1120243 -Node: Installation1121623 -Node: Gawk Distribution1122567 -Node: Getting1123051 -Node: Extracting1124012 -Node: Distribution contents1125650 -Node: Unix Installation1131744 -Node: Quick Installation1132426 -Node: Shell Startup Files1134840 -Node: Additional Configuration Options1135918 -Node: Configuration Philosophy1137723 -Node: Non-Unix Installation1140092 -Node: PC Installation1140550 -Node: PC Binary Installation1141870 -Node: PC Compiling1143722 -Ref: PC Compiling-Footnote-11146746 -Node: PC Testing1146855 -Node: PC Using1148035 -Node: Cygwin1152149 -Node: MSYS1152919 -Node: VMS Installation1153420 -Node: VMS Compilation1154211 -Ref: VMS Compilation-Footnote-11155440 -Node: VMS Dynamic Extensions1155498 -Node: VMS Installation Details1157183 -Node: VMS Running1159436 -Node: VMS GNV1163715 -Node: VMS Old Gawk1164450 -Node: Bugs1164921 -Node: Other Versions1169118 -Node: Installation summary1175702 -Node: Notes1176760 -Node: Compatibility Mode1177625 -Node: Additions1178407 -Node: Accessing The Source1179332 -Node: Adding Code1180767 -Node: New Ports1186986 -Node: Derived Files1191474 -Ref: Derived Files-Footnote-11196959 -Ref: Derived Files-Footnote-21196994 -Ref: Derived Files-Footnote-31197592 -Node: Future Extensions1197706 -Node: Implementation Limitations1198364 -Node: Extension Design1199547 -Node: Old Extension Problems1200701 -Ref: Old Extension Problems-Footnote-11202219 -Node: Extension New Mechanism Goals1202276 -Ref: Extension New Mechanism Goals-Footnote-11205640 -Node: Extension Other Design Decisions1205829 -Node: Extension Future Growth1207942 -Node: Old Extension Mechanism1208778 -Node: Notes summary1210541 -Node: Basic Concepts1211723 -Node: Basic High Level1212404 -Ref: figure-general-flow1212686 -Ref: figure-process-flow1213371 -Ref: Basic High Level-Footnote-11216672 -Node: Basic Data Typing1216857 -Node: Glossary1220185 -Node: Copying1252131 -Node: GNU Free Documentation License1289670 -Node: Index1314788 +Node: Exit Status146172 +Node: Include Files146849 +Node: Loading Shared Libraries150444 +Node: Obsolete151872 +Node: Undocumented152564 +Node: Invoking Summary152861 +Node: Regexp154521 +Node: Regexp Usage156040 +Node: Escape Sequences158077 +Node: Regexp Operators164309 +Ref: Regexp Operators-Footnote-1171725 +Ref: Regexp Operators-Footnote-2171872 +Node: Bracket Expressions171970 +Ref: table-char-classes174446 +Node: Leftmost Longest177583 +Node: Computed Regexps178886 +Node: GNU Regexp Operators182313 +Node: Case-sensitivity185992 +Ref: Case-sensitivity-Footnote-1188888 +Ref: Case-sensitivity-Footnote-2189123 +Node: Strong Regexp Constants189231 +Node: Regexp Summary192173 +Node: Reading Files193779 +Node: Records195942 +Node: awk split records196675 +Node: gawk split records201606 +Ref: gawk split records-Footnote-1206146 +Node: Fields206183 +Node: Nonconstant Fields208924 +Ref: Nonconstant Fields-Footnote-1211160 +Node: Changing Fields211364 +Node: Field Separators217292 +Node: Default Field Splitting219990 +Node: Regexp Field Splitting221108 +Node: Single Character Fields224461 +Node: Command Line Field Separator225521 +Node: Full Line Fields228739 +Ref: Full Line Fields-Footnote-1230261 +Ref: Full Line Fields-Footnote-2230307 +Node: Field Splitting Summary230408 +Node: Constant Size232482 +Node: Splitting By Content237060 +Ref: Splitting By Content-Footnote-1241031 +Node: Multiple Line241194 +Ref: Multiple Line-Footnote-1247076 +Node: Getline247255 +Node: Plain Getline249721 +Node: Getline/Variable252360 +Node: Getline/File253509 +Node: Getline/Variable/File254895 +Ref: Getline/Variable/File-Footnote-1256498 +Node: Getline/Pipe256586 +Node: Getline/Variable/Pipe259291 +Node: Getline/Coprocess260424 +Node: Getline/Variable/Coprocess261689 +Node: Getline Notes262429 +Node: Getline Summary265224 +Ref: table-getline-variants265646 +Node: Read Timeout266394 +Ref: Read Timeout-Footnote-1270300 +Node: Retrying Input270358 +Node: Command-line directories271557 +Node: Input Summary272463 +Node: Input Exercises275635 +Node: Printing276363 +Node: Print278197 +Node: Print Examples279654 +Node: Output Separators282434 +Node: OFMT284451 +Node: Printf285807 +Node: Basic Printf286592 +Node: Control Letters288166 +Node: Format Modifiers292154 +Node: Printf Examples298169 +Node: Redirection300655 +Node: Special FD307496 +Ref: Special FD-Footnote-1310664 +Node: Special Files310738 +Node: Other Inherited Files311355 +Node: Special Network312356 +Node: Special Caveats313216 +Node: Close Files And Pipes314165 +Ref: Close Files And Pipes-Footnote-1321352 +Ref: Close Files And Pipes-Footnote-2321500 +Node: Nonfatal321651 +Node: Output Summary323976 +Node: Output Exercises325198 +Node: Expressions325877 +Node: Values327065 +Node: Constants327743 +Node: Scalar Constants328434 +Ref: Scalar Constants-Footnote-1329298 +Node: Nondecimal-numbers329548 +Node: Regexp Constants332561 +Node: Using Constant Regexps333087 +Node: Variables336250 +Node: Using Variables336907 +Node: Assignment Options338817 +Node: Conversion340690 +Node: Strings And Numbers341214 +Ref: Strings And Numbers-Footnote-1344277 +Node: Locale influences conversions344386 +Ref: table-locale-affects347144 +Node: All Operators347762 +Node: Arithmetic Ops348391 +Node: Concatenation350897 +Ref: Concatenation-Footnote-1353744 +Node: Assignment Ops353851 +Ref: table-assign-ops358842 +Node: Increment Ops360155 +Node: Truth Values and Conditions363615 +Node: Truth Values364689 +Node: Typing and Comparison365737 +Node: Variable Typing366557 +Node: Comparison Operators370181 +Ref: table-relational-ops370600 +Node: POSIX String Comparison374095 +Ref: POSIX String Comparison-Footnote-1375169 +Node: Boolean Ops375308 +Ref: Boolean Ops-Footnote-1379790 +Node: Conditional Exp379882 +Node: Function Calls381618 +Node: Precedence385495 +Node: Locales389154 +Node: Expressions Summary390786 +Node: Patterns and Actions393359 +Node: Pattern Overview394479 +Node: Regexp Patterns396156 +Node: Expression Patterns396698 +Node: Ranges400479 +Node: BEGIN/END403587 +Node: Using BEGIN/END404348 +Ref: Using BEGIN/END-Footnote-1407084 +Node: I/O And BEGIN/END407190 +Node: BEGINFILE/ENDFILE409504 +Node: Empty412411 +Node: Using Shell Variables412728 +Node: Action Overview415002 +Node: Statements417327 +Node: If Statement419175 +Node: While Statement420670 +Node: Do Statement422698 +Node: For Statement423846 +Node: Switch Statement427004 +Node: Break Statement429390 +Node: Continue Statement431482 +Node: Next Statement433309 +Node: Nextfile Statement435692 +Node: Exit Statement438344 +Node: Built-in Variables440747 +Node: User-modified441880 +Node: Auto-set449466 +Ref: Auto-set-Footnote-1464119 +Ref: Auto-set-Footnote-2464325 +Node: ARGC and ARGV464381 +Node: Pattern Action Summary468594 +Node: Arrays471024 +Node: Array Basics472353 +Node: Array Intro473197 +Ref: figure-array-elements475172 +Ref: Array Intro-Footnote-1477876 +Node: Reference to Elements478004 +Node: Assigning Elements480468 +Node: Array Example480959 +Node: Scanning an Array482718 +Node: Controlling Scanning485740 +Ref: Controlling Scanning-Footnote-1491139 +Node: Numeric Array Subscripts491455 +Node: Uninitialized Subscripts493639 +Node: Delete495258 +Ref: Delete-Footnote-1498010 +Node: Multidimensional498067 +Node: Multiscanning501162 +Node: Arrays of Arrays502753 +Node: Arrays Summary507520 +Node: Functions509613 +Node: Built-in510651 +Node: Calling Built-in511732 +Node: Numeric Functions513728 +Ref: Numeric Functions-Footnote-1518561 +Ref: Numeric Functions-Footnote-2518918 +Ref: Numeric Functions-Footnote-3518966 +Node: String Functions519238 +Ref: String Functions-Footnote-1542742 +Ref: String Functions-Footnote-2542870 +Ref: String Functions-Footnote-3543118 +Node: Gory Details543205 +Ref: table-sub-escapes544996 +Ref: table-sub-proposed546515 +Ref: table-posix-sub547878 +Ref: table-gensub-escapes549419 +Ref: Gory Details-Footnote-1550242 +Node: I/O Functions550396 +Ref: table-system-return-values556978 +Ref: I/O Functions-Footnote-1558958 +Ref: I/O Functions-Footnote-2559106 +Node: Time Functions559226 +Ref: Time Functions-Footnote-1569731 +Ref: Time Functions-Footnote-2569799 +Ref: Time Functions-Footnote-3569957 +Ref: Time Functions-Footnote-4570068 +Ref: Time Functions-Footnote-5570180 +Ref: Time Functions-Footnote-6570407 +Node: Bitwise Functions570673 +Ref: table-bitwise-ops571267 +Ref: Bitwise Functions-Footnote-1575605 +Node: Type Functions575778 +Node: I18N Functions578439 +Node: User-defined580090 +Node: Definition Syntax580895 +Ref: Definition Syntax-Footnote-1586582 +Node: Function Example586653 +Ref: Function Example-Footnote-1589575 +Node: Function Caveats589597 +Node: Calling A Function590115 +Node: Variable Scope591073 +Node: Pass By Value/Reference594067 +Node: Return Statement597566 +Node: Dynamic Typing600545 +Node: Indirect Calls601475 +Ref: Indirect Calls-Footnote-1611726 +Node: Functions Summary611854 +Node: Library Functions614559 +Ref: Library Functions-Footnote-1618166 +Ref: Library Functions-Footnote-2618309 +Node: Library Names618480 +Ref: Library Names-Footnote-1621940 +Ref: Library Names-Footnote-2622163 +Node: General Functions622249 +Node: Strtonum Function623352 +Node: Assert Function626374 +Node: Round Function629700 +Node: Cliff Random Function631241 +Node: Ordinal Functions632257 +Ref: Ordinal Functions-Footnote-1635320 +Ref: Ordinal Functions-Footnote-2635572 +Node: Join Function635782 +Ref: Join Function-Footnote-1637552 +Node: Getlocaltime Function637752 +Node: Readfile Function641494 +Node: Shell Quoting643466 +Node: Data File Management644867 +Node: Filetrans Function645499 +Node: Rewind Function649595 +Node: File Checking651500 +Ref: File Checking-Footnote-1652834 +Node: Empty Files653035 +Node: Ignoring Assigns655014 +Node: Getopt Function656564 +Ref: Getopt Function-Footnote-1668033 +Node: Passwd Functions668233 +Ref: Passwd Functions-Footnote-1677072 +Node: Group Functions677160 +Ref: Group Functions-Footnote-1685057 +Node: Walking Arrays685264 +Node: Library Functions Summary688272 +Node: Library Exercises689678 +Node: Sample Programs690143 +Node: Running Examples690913 +Node: Clones691641 +Node: Cut Program692865 +Node: Egrep Program702794 +Ref: Egrep Program-Footnote-1710306 +Node: Id Program710416 +Node: Split Program714096 +Ref: Split Program-Footnote-1717555 +Node: Tee Program717684 +Node: Uniq Program720474 +Node: Wc Program727900 +Ref: Wc Program-Footnote-1732155 +Node: Miscellaneous Programs732249 +Node: Dupword Program733462 +Node: Alarm Program735492 +Node: Translate Program740347 +Ref: Translate Program-Footnote-1744912 +Node: Labels Program745182 +Ref: Labels Program-Footnote-1748533 +Node: Word Sorting748617 +Node: History Sorting752689 +Node: Extract Program754524 +Node: Simple Sed762053 +Node: Igawk Program765127 +Ref: Igawk Program-Footnote-1779458 +Ref: Igawk Program-Footnote-2779660 +Ref: Igawk Program-Footnote-3779782 +Node: Anagram Program779897 +Node: Signature Program782959 +Node: Programs Summary784206 +Node: Programs Exercises785420 +Ref: Programs Exercises-Footnote-1789549 +Node: Advanced Features789640 +Node: Nondecimal Data791630 +Node: Array Sorting793221 +Node: Controlling Array Traversal793921 +Ref: Controlling Array Traversal-Footnote-1802288 +Node: Array Sorting Functions802406 +Ref: Array Sorting Functions-Footnote-1807497 +Node: Two-way I/O807693 +Ref: Two-way I/O-Footnote-1814243 +Ref: Two-way I/O-Footnote-2814430 +Node: TCP/IP Networking814512 +Node: Profiling817630 +Ref: Profiling-Footnote-1826123 +Node: Advanced Features Summary826446 +Node: Internationalization828290 +Node: I18N and L10N829770 +Node: Explaining gettext830457 +Ref: Explaining gettext-Footnote-1836349 +Ref: Explaining gettext-Footnote-2836534 +Node: Programmer i18n836699 +Ref: Programmer i18n-Footnote-1841554 +Node: Translator i18n841603 +Node: String Extraction842397 +Ref: String Extraction-Footnote-1843529 +Node: Printf Ordering843615 +Ref: Printf Ordering-Footnote-1846401 +Node: I18N Portability846465 +Ref: I18N Portability-Footnote-1848921 +Node: I18N Example848984 +Ref: I18N Example-Footnote-1851790 +Node: Gawk I18N851863 +Node: I18N Summary852508 +Node: Debugger853849 +Node: Debugging854871 +Node: Debugging Concepts855312 +Node: Debugging Terms857121 +Node: Awk Debugging859696 +Node: Sample Debugging Session860602 +Node: Debugger Invocation861136 +Node: Finding The Bug862522 +Node: List of Debugger Commands869000 +Node: Breakpoint Control870333 +Node: Debugger Execution Control874027 +Node: Viewing And Changing Data877389 +Node: Execution Stack880763 +Node: Debugger Info882400 +Node: Miscellaneous Debugger Commands886471 +Node: Readline Support891559 +Node: Limitations892455 +Ref: Limitations-Footnote-1896686 +Node: Debugging Summary896737 +Node: Arbitrary Precision Arithmetic898016 +Node: Computer Arithmetic899432 +Ref: table-numeric-ranges903023 +Ref: Computer Arithmetic-Footnote-1903745 +Node: Math Definitions903802 +Ref: table-ieee-formats907116 +Ref: Math Definitions-Footnote-1907719 +Node: MPFR features907824 +Node: FP Math Caution909541 +Ref: FP Math Caution-Footnote-1910613 +Node: Inexactness of computations910982 +Node: Inexact representation911942 +Node: Comparing FP Values913302 +Node: Errors accumulate914384 +Node: Getting Accuracy915817 +Node: Try To Round918527 +Node: Setting precision919426 +Ref: table-predefined-precision-strings920123 +Node: Setting the rounding mode921953 +Ref: table-gawk-rounding-modes922327 +Ref: Setting the rounding mode-Footnote-1925735 +Node: Arbitrary Precision Integers925914 +Ref: Arbitrary Precision Integers-Footnote-1930831 +Node: POSIX Floating Point Problems930980 +Ref: POSIX Floating Point Problems-Footnote-1934862 +Node: Floating point summary934900 +Node: Dynamic Extensions937090 +Node: Extension Intro938643 +Node: Plugin License939909 +Node: Extension Mechanism Outline940706 +Ref: figure-load-extension941145 +Ref: figure-register-new-function942710 +Ref: figure-call-new-function943802 +Node: Extension API Description945864 +Node: Extension API Functions Introduction947396 +Node: General Data Types952255 +Ref: General Data Types-Footnote-1958210 +Node: Memory Allocation Functions958509 +Ref: Memory Allocation Functions-Footnote-1961354 +Node: Constructor Functions961453 +Node: Registration Functions963198 +Node: Extension Functions963883 +Node: Exit Callback Functions966506 +Node: Extension Version String967756 +Node: Input Parsers968419 +Node: Output Wrappers978301 +Node: Two-way processors982813 +Node: Printing Messages985078 +Ref: Printing Messages-Footnote-1986249 +Node: Updating ERRNO986402 +Node: Requesting Values987141 +Ref: table-value-types-returned987878 +Node: Accessing Parameters988761 +Node: Symbol Table Access989996 +Node: Symbol table by name990508 +Node: Symbol table by cookie992529 +Ref: Symbol table by cookie-Footnote-1996681 +Node: Cached values996745 +Ref: Cached values-Footnote-11000252 +Node: Array Manipulation1000343 +Ref: Array Manipulation-Footnote-11001434 +Node: Array Data Types1001471 +Ref: Array Data Types-Footnote-11004129 +Node: Array Functions1004221 +Node: Flattening Arrays1008079 +Node: Creating Arrays1014987 +Node: Redirection API1019756 +Node: Extension API Variables1022587 +Node: Extension Versioning1023220 +Ref: gawk-api-version1023657 +Node: Extension API Informational Variables1025413 +Node: Extension API Boilerplate1026477 +Node: Finding Extensions1030291 +Node: Extension Example1030850 +Node: Internal File Description1031648 +Node: Internal File Ops1035728 +Ref: Internal File Ops-Footnote-11047490 +Node: Using Internal File Ops1047630 +Ref: Using Internal File Ops-Footnote-11050013 +Node: Extension Samples1050287 +Node: Extension Sample File Functions1051816 +Node: Extension Sample Fnmatch1059465 +Node: Extension Sample Fork1060952 +Node: Extension Sample Inplace1062170 +Node: Extension Sample Ord1065380 +Node: Extension Sample Readdir1066216 +Ref: table-readdir-file-types1067105 +Node: Extension Sample Revout1067910 +Node: Extension Sample Rev2way1068499 +Node: Extension Sample Read write array1069239 +Node: Extension Sample Readfile1071181 +Node: Extension Sample Time1072276 +Node: Extension Sample API Tests1073624 +Node: gawkextlib1074116 +Node: Extension summary1076563 +Node: Extension Exercises1080265 +Node: Language History1081762 +Node: V7/SVR3.11083418 +Node: SVR41085570 +Node: POSIX1087004 +Node: BTL1088383 +Node: POSIX/GNU1089112 +Node: Feature History1094974 +Node: Common Extensions1109344 +Node: Ranges and Locales1110627 +Ref: Ranges and Locales-Footnote-11115243 +Ref: Ranges and Locales-Footnote-21115270 +Ref: Ranges and Locales-Footnote-31115505 +Node: Contributors1115726 +Node: History summary1121295 +Node: Installation1122675 +Node: Gawk Distribution1123619 +Node: Getting1124103 +Node: Extracting1125064 +Node: Distribution contents1126702 +Node: Unix Installation1132796 +Node: Quick Installation1133478 +Node: Shell Startup Files1135892 +Node: Additional Configuration Options1136970 +Node: Configuration Philosophy1138775 +Node: Non-Unix Installation1141144 +Node: PC Installation1141602 +Node: PC Binary Installation1142922 +Node: PC Compiling1144774 +Ref: PC Compiling-Footnote-11147798 +Node: PC Testing1147907 +Node: PC Using1149087 +Node: Cygwin1153201 +Node: MSYS1153971 +Node: VMS Installation1154472 +Node: VMS Compilation1155263 +Ref: VMS Compilation-Footnote-11156492 +Node: VMS Dynamic Extensions1156550 +Node: VMS Installation Details1158235 +Node: VMS Running1160488 +Node: VMS GNV1164767 +Node: VMS Old Gawk1165502 +Node: Bugs1165973 +Node: Other Versions1170170 +Node: Installation summary1176754 +Node: Notes1177812 +Node: Compatibility Mode1178677 +Node: Additions1179459 +Node: Accessing The Source1180384 +Node: Adding Code1181819 +Node: New Ports1188038 +Node: Derived Files1192526 +Ref: Derived Files-Footnote-11198011 +Ref: Derived Files-Footnote-21198046 +Ref: Derived Files-Footnote-31198644 +Node: Future Extensions1198758 +Node: Implementation Limitations1199416 +Node: Extension Design1200599 +Node: Old Extension Problems1201753 +Ref: Old Extension Problems-Footnote-11203271 +Node: Extension New Mechanism Goals1203328 +Ref: Extension New Mechanism Goals-Footnote-11206692 +Node: Extension Other Design Decisions1206881 +Node: Extension Future Growth1208994 +Node: Old Extension Mechanism1209830 +Node: Notes summary1211593 +Node: Basic Concepts1212775 +Node: Basic High Level1213456 +Ref: figure-general-flow1213738 +Ref: figure-process-flow1214423 +Ref: Basic High Level-Footnote-11217724 +Node: Basic Data Typing1217909 +Node: Glossary1221237 +Node: Copying1253183 +Node: GNU Free Documentation License1290722 +Node: Index1315840 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 64d72b7a..78e54cb6 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -4587,6 +4587,11 @@ are generated. Its purpose is to help isolate the source of a message, as there are multiple places that produce the same warning or error message. +@item GAWK_LOCALE_DIR +Specifies the location of compiled message object files +for @command{gawk} itself. This is passed to the @code{bindtextdomain()} +function when @command{gawk} starts up. + @item GAWK_NO_DFA If this variable exists, @command{gawk} does not use the DFA regexp matcher for ``does it match'' kinds of tests. This can cause @command{gawk} @@ -28685,6 +28690,26 @@ before or after the day in a date, local month abbreviations, and so on. All of the above. (Not too useful in the context of @command{gettext}.) @end table +@quotation NOTE +@cindex @env{LANGUAGE} environment variable +As described in @ref{Locales}, environment variables with the same +name as the locale categories (@env{LC_CTYPE}, @env{LC_ALL}, etc.) +influence @command{gawk}'s behavior (and that of other utilities). + +Normally, these variables also affect how the @code{gettext} library +finds translations. However, the @env{LANGUAGE} environment variable +overrides the @env{LC_@var{xxx}} variables. Many GNU/Linux systems +may define this variable without your knowledge, causing @command{gawk} +to not find the correct translations. If this happens to you, +look to see if @env{LANGUAGE} is defined, and if so, use the shell's +@command{unset} command to remove it. +@end quotation + +For testing translations of @command{gawk} itself, you can set +the @env{GAWK_LOCALE_DIR} environment variable. See the documentation +for the C @code{bindtextdomain()} function and also see +@ref{Other Environment Variables}. + @node Programmer i18n @section Internationalizing @command{awk} Programs @cindex @command{awk} programs, internationalizing diff --git a/doc/gawktexi.in b/doc/gawktexi.in index b0ae229b..34d7fc20 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -27792,7 +27792,7 @@ finds translations. However, the @env{LANGUAGE} environment variable overrides the @env{LC_@var{xxx}} variables. Many GNU/Linux systems may define this variable without your knowledge, causing @command{gawk} to not find the correct translations. If this happens to you, -look to see if @env{LANGAUGE} is defined, and if so, use the shell's +look to see if @env{LANGUAGE} is defined, and if so, use the shell's @command{unset} command to remove it. @end quotation @@ -930,7 +930,10 @@ set_LINT() int old_lint = do_lint; NODE *n = fixtype(LINT_node->var_value); - lintfunc = r_warning; /* reset to default */ + /* start with clean defaults */ + lintfunc = r_warning; + do_flags &= ~(DO_LINT_ALL|DO_LINT_INVALID); + if ((n->flags & STRING) != 0) { const char *lintval; size_t lintlen; @@ -938,20 +941,18 @@ set_LINT() lintval = n->stptr; lintlen = n->stlen; if (lintlen > 0) { - do_flags |= DO_LINT_ALL; - if (lintlen == 5 && strncmp(lintval, "fatal", 5) == 0) - lintfunc = r_fatal; - else if (lintlen == 7 && strncmp(lintval, "invalid", 7) == 0) { - do_flags &= ~DO_LINT_ALL; + if (lintlen == 7 && strncmp(lintval, "invalid", 7) == 0) do_flags |= DO_LINT_INVALID; + else { + do_flags |= DO_LINT_ALL; + if (lintlen == 5 && strncmp(lintval, "fatal", 5) == 0) + lintfunc = r_fatal; } - } else { - do_flags &= ~(DO_LINT_ALL|DO_LINT_INVALID); } - } else if (! iszero(n)) - do_flags |= DO_LINT_ALL; - else - do_flags &= ~(DO_LINT_ALL|DO_LINT_INVALID); + } else { + if (! iszero(n)) + do_flags |= DO_LINT_ALL; + } /* explicitly use warning() here, in case lintfunc == r_fatal */ if (old_lint != do_lint && old_lint && ! do_lint) |