diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | Makefile.in | 1 | ||||
-rwxr-xr-x | configure | 3 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | doc/gawk.info | 1170 | ||||
-rw-r--r-- | doc/gawk.texi | 52 | ||||
-rw-r--r-- | doc/gawktexi.in | 52 | ||||
-rw-r--r-- | extras/ChangeLog | 3 | ||||
-rw-r--r-- | extras/Makefile.am | 29 | ||||
-rw-r--r-- | extras/Makefile.in | 515 | ||||
-rw-r--r-- | extras/gawk.csh | 11 | ||||
-rw-r--r-- | extras/gawk.sh | 31 |
13 files changed, 1317 insertions, 558 deletions
@@ -1,3 +1,9 @@ +2014-10-29 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * configure.ac (AC_CONFIG_FILES): Add extras/Makefile. + * Makefile.am (SUBDIRS): Add extras. + * extras: Add new subdirectory. + 2014-10-29 Arnold D. Robbins <arnold@skeeve.com> * dfa.c: Sync with GNU grep. Again, again. diff --git a/Makefile.am b/Makefile.am index 3d1c8837..afe617ed 100644 --- a/Makefile.am +++ b/Makefile.am @@ -69,6 +69,7 @@ SUBDIRS = \ awklib \ po \ extension \ + extras \ test # what to make and install diff --git a/Makefile.in b/Makefile.in index 5c2a7f11..16d19b02 100644 --- a/Makefile.in +++ b/Makefile.in @@ -475,6 +475,7 @@ SUBDIRS = \ awklib \ po \ extension \ + extras \ test include_HEADERS = gawkapi.h @@ -10965,7 +10965,7 @@ dylib) GAWKLIBEXT=so ;; # MacOS uses .dylib for shared libraries, but libtool us esac -ac_config_files="$ac_config_files Makefile awklib/Makefile doc/Makefile po/Makefile.in test/Makefile" +ac_config_files="$ac_config_files Makefile awklib/Makefile doc/Makefile extras/Makefile po/Makefile.in test/Makefile" if test "x$enable_extensions" = "xyes"; then @@ -11721,6 +11721,7 @@ do "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "awklib/Makefile") CONFIG_FILES="$CONFIG_FILES awklib/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "extras/Makefile") CONFIG_FILES="$CONFIG_FILES extras/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; diff --git a/configure.ac b/configure.ac index 6122ee07..a8711c5a 100644 --- a/configure.ac +++ b/configure.ac @@ -402,6 +402,7 @@ AC_SUBST(GAWKLIBEXT) AC_CONFIG_FILES(Makefile awklib/Makefile doc/Makefile + extras/Makefile po/Makefile.in test/Makefile) if test "x$enable_extensions" = "xyes"; then diff --git a/doc/gawk.info b/doc/gawk.info index 2be2c24f..ae3c6f8c 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -615,6 +615,7 @@ entitled "GNU Free Documentation License". * Unix Installation:: Installing `gawk' under various versions of Unix. * Quick Installation:: Compiling `gawk' under Unix. +* Shell Startup Files:: Shell convenience functions. * Additional Configuration Options:: Other compile-time options. * Configuration Philosophy:: How it's all supposed to work. * Non-Unix Installation:: Installation on Other Operating @@ -2918,6 +2919,9 @@ Since `.' is included at the beginning, `gawk' searches first in the current directory and then in `/usr/local/share/awk'. In practice, this means that you will rarely need to change the value of `AWKPATH'. + *Note Shell Startup Files::, for information on functions that help +to manipulate the `AWKPATH' variable. + `gawk' places the value of the search path that it used into `ENVIRON["AWKPATH"]'. This provides access to the actual search path value from within an `awk' program. @@ -2957,6 +2961,9 @@ empty value, `gawk' uses a default path; this is typically `/usr/local/lib/gawk', although it can vary depending upon how `gawk' was built. + *Note Shell Startup Files::, for information on functions that help +to manipulate the `AWKLIBPATH' variable. + `gawk' places the value of the search path that it used into `ENVIRON["AWKLIBPATH"]'. This provides access to the actual search path value from within an `awk' program. @@ -27468,6 +27475,13 @@ Various `.c', `.y', and `.h' files sample extensions included with `gawk'. *Note Dynamic Extensions::, for more information. +`extras/*' + Additional non-essential files. Currently, this directory + contains some shell startup files to be installed in + `/etc/profile.d' to aid in manipulating the `AWKPATH' and + `AWKLIBPATH' environment variables. *Note Shell Startup Files::, + for more information. + `posix/*' Files needed for building `gawk' on POSIX-compliant systems. @@ -27498,11 +27512,12 @@ configure `gawk' for your system yourself. * Menu: * Quick Installation:: Compiling `gawk' under Unix. +* Shell Startup Files:: Shell convenience functions. * Additional Configuration Options:: Other compile-time options. * Configuration Philosophy:: How it's all supposed to work. -File: gawk.info, Node: Quick Installation, Next: Additional Configuration Options, Up: Unix Installation +File: gawk.info, Node: Quick Installation, Next: Shell Startup Files, Up: Unix Installation B.2.1 Compiling `gawk' for Unix-like Systems -------------------------------------------- @@ -27559,9 +27574,43 @@ will be asked for your password, and you will have to have been set up previously as a user who is allowed to run the `sudo' command. -File: gawk.info, Node: Additional Configuration Options, Next: Configuration Philosophy, Prev: Quick Installation, Up: Unix Installation +File: gawk.info, Node: Shell Startup Files, Next: Additional Configuration Options, Prev: Quick Installation, Up: Unix Installation + +B.2.2 Shell Startup Files +------------------------- + +The distribution contains shell startup files `gawk.sh' and `gawk.csh' +containing functions to aid in manipulating the `AWKPATH' and +`AWKLIBPATH' environment variables. On a Fedora system, these files +should be installed in `/etc/profile.d'; on other platforms, the +appropriate location may be different. + +`gawkpath_default' + Reset the `AWKPATH' environment variable to its default value. + +`gawkpath_prepend' + Add the argument to the front of the `AWKPATH' environment + variable. + +`gawkpath_append' + Add the argument to the end of the `AWKPATH' environment variable. + +`gawklibpath_default' + Reset the `AWKLIBPATH' environment variable to its default value. + +`gawklibpath_prepend' + Add the argument to the front of the `AWKLIBPATH' environment + variable. + +`gawklibpath_append' + Add the argument to the end of the `AWKLIBPATH' environment + variable. + + + +File: gawk.info, Node: Additional Configuration Options, Next: Configuration Philosophy, Prev: Shell Startup Files, Up: Unix Installation -B.2.2 Additional Configuration Options +B.2.3 Additional Configuration Options -------------------------------------- There are several additional options you may use on the `configure' @@ -27603,7 +27652,7 @@ that `configure' supplies. File: gawk.info, Node: Configuration Philosophy, Prev: Additional Configuration Options, Up: Unix Installation -B.2.3 The Configuration Process +B.2.4 The Configuration Process ------------------------------- This minor node is of interest only if you know something about using @@ -32910,6 +32959,12 @@ Index (line 63) * gawkextlib: gawkextlib. (line 6) * gawkextlib project: gawkextlib. (line 6) +* gawklibpath_append shell function: Shell Startup Files. (line 29) +* gawklibpath_default shell function: Shell Startup Files. (line 22) +* gawklibpath_prepend shell function: Shell Startup Files. (line 25) +* gawkpath_append shell function: Shell Startup Files. (line 19) +* gawkpath_default shell function: Shell Startup Files. (line 12) +* gawkpath_prepend shell function: Shell Startup Files. (line 15) * General Public License (GPL): Glossary. (line 305) * General Public License, See GPL: Manual History. (line 11) * generate time values: Time Functions. (line 25) @@ -34377,558 +34432,559 @@ Index Tag Table: Node: Top1204 -Node: Foreword342156 -Node: Foreword446548 -Node: Preface47982 -Ref: Preface-Footnote-150853 -Ref: Preface-Footnote-250960 -Ref: Preface-Footnote-351193 -Node: History51335 -Node: Names53683 -Ref: Names-Footnote-154777 -Node: This Manual54923 -Ref: This Manual-Footnote-160752 -Node: Conventions60852 -Node: Manual History63192 -Ref: Manual History-Footnote-166183 -Ref: Manual History-Footnote-266224 -Node: How To Contribute66298 -Node: Acknowledgments67537 -Node: Getting Started72345 -Node: Running gawk74779 -Node: One-shot75969 -Node: Read Terminal77194 -Node: Long79221 -Node: Executable Scripts80737 -Ref: Executable Scripts-Footnote-183526 -Node: Comments83628 -Node: Quoting86101 -Node: DOS Quoting91607 -Node: Sample Data Files92282 -Node: Very Simple94875 -Node: Two Rules99766 -Node: More Complex101652 -Node: Statements/Lines104514 -Ref: Statements/Lines-Footnote-1108970 -Node: Other Features109235 -Node: When110166 -Ref: When-Footnote-1111922 -Node: Intro Summary111987 -Node: Invoking Gawk112870 -Node: Command Line114385 -Node: Options115176 -Ref: Options-Footnote-1130959 -Node: Other Arguments130984 -Node: Naming Standard Input133945 -Node: Environment Variables135038 -Node: AWKPATH Variable135596 -Ref: AWKPATH Variable-Footnote-1138896 -Ref: AWKPATH Variable-Footnote-2138941 -Node: AWKLIBPATH Variable139201 -Node: Other Environment Variables140344 -Node: Exit Status143835 -Node: Include Files144510 -Node: Loading Shared Libraries148098 -Node: Obsolete149525 -Node: Undocumented150222 -Node: Invoking Summary150489 -Node: Regexp152155 -Node: Regexp Usage153614 -Node: Escape Sequences155647 -Node: Regexp Operators161895 -Ref: Regexp Operators-Footnote-1169329 -Ref: Regexp Operators-Footnote-2169476 -Node: Bracket Expressions169574 -Ref: table-char-classes171591 -Node: Leftmost Longest174531 -Node: Computed Regexps175833 -Node: GNU Regexp Operators179230 -Node: Case-sensitivity182932 -Ref: Case-sensitivity-Footnote-1185822 -Ref: Case-sensitivity-Footnote-2186057 -Node: Regexp Summary186165 -Node: Reading Files187634 -Node: Records189728 -Node: awk split records190460 -Node: gawk split records195374 -Ref: gawk split records-Footnote-1199913 -Node: Fields199950 -Ref: Fields-Footnote-1202748 -Node: Nonconstant Fields202834 -Ref: Nonconstant Fields-Footnote-1205070 -Node: Changing Fields205272 -Node: Field Separators211204 -Node: Default Field Splitting213908 -Node: Regexp Field Splitting215025 -Node: Single Character Fields218375 -Node: Command Line Field Separator219434 -Node: Full Line Fields222646 -Ref: Full Line Fields-Footnote-1223154 -Node: Field Splitting Summary223200 -Ref: Field Splitting Summary-Footnote-1226331 -Node: Constant Size226432 -Node: Splitting By Content231038 -Ref: Splitting By Content-Footnote-1235111 -Node: Multiple Line235151 -Ref: Multiple Line-Footnote-1241040 -Node: Getline241219 -Node: Plain Getline243430 -Node: Getline/Variable246070 -Node: Getline/File247217 -Node: Getline/Variable/File248601 -Ref: Getline/Variable/File-Footnote-1250202 -Node: Getline/Pipe250289 -Node: Getline/Variable/Pipe252972 -Node: Getline/Coprocess254103 -Node: Getline/Variable/Coprocess255355 -Node: Getline Notes256094 -Node: Getline Summary258886 -Ref: table-getline-variants259298 -Node: Read Timeout260127 -Ref: Read Timeout-Footnote-1263941 -Node: Command-line directories263999 -Node: Input Summary264903 -Node: Input Exercises268155 -Node: Printing268883 -Node: Print270660 -Node: Print Examples272117 -Node: Output Separators274896 -Node: OFMT276914 -Node: Printf278268 -Node: Basic Printf279053 -Node: Control Letters280624 -Node: Format Modifiers284608 -Node: Printf Examples290615 -Node: Redirection293097 -Node: Special FD299936 -Ref: Special FD-Footnote-1303093 -Node: Special Files303167 -Node: Other Inherited Files303783 -Node: Special Network304783 -Node: Special Caveats305644 -Node: Close Files And Pipes306595 -Ref: Close Files And Pipes-Footnote-1313774 -Ref: Close Files And Pipes-Footnote-2313922 -Node: Output Summary314072 -Node: Output Exercises315068 -Node: Expressions315748 -Node: Values316933 -Node: Constants317609 -Node: Scalar Constants318289 -Ref: Scalar Constants-Footnote-1319148 -Node: Nondecimal-numbers319398 -Node: Regexp Constants322398 -Node: Using Constant Regexps322923 -Node: Variables326061 -Node: Using Variables326716 -Node: Assignment Options328626 -Node: Conversion330501 -Node: Strings And Numbers331025 -Ref: Strings And Numbers-Footnote-1334089 -Node: Locale influences conversions334198 -Ref: table-locale-affects336943 -Node: All Operators337531 -Node: Arithmetic Ops338161 -Node: Concatenation340666 -Ref: Concatenation-Footnote-1343485 -Node: Assignment Ops343591 -Ref: table-assign-ops348574 -Node: Increment Ops349852 -Node: Truth Values and Conditions353290 -Node: Truth Values354373 -Node: Typing and Comparison355422 -Node: Variable Typing356215 -Node: Comparison Operators359867 -Ref: table-relational-ops360277 -Node: POSIX String Comparison363792 -Ref: POSIX String Comparison-Footnote-1364864 -Node: Boolean Ops365002 -Ref: Boolean Ops-Footnote-1369481 -Node: Conditional Exp369572 -Node: Function Calls371299 -Node: Precedence375179 -Node: Locales378847 -Node: Expressions Summary380478 -Node: Patterns and Actions383052 -Node: Pattern Overview384172 -Node: Regexp Patterns385851 -Node: Expression Patterns386394 -Node: Ranges390174 -Node: BEGIN/END393280 -Node: Using BEGIN/END394042 -Ref: Using BEGIN/END-Footnote-1396779 -Node: I/O And BEGIN/END396885 -Node: BEGINFILE/ENDFILE399199 -Node: Empty402100 -Node: Using Shell Variables402417 -Node: Action Overview404693 -Node: Statements407020 -Node: If Statement408868 -Node: While Statement410366 -Node: Do Statement412394 -Node: For Statement413536 -Node: Switch Statement416691 -Node: Break Statement419079 -Node: Continue Statement421120 -Node: Next Statement422945 -Node: Nextfile Statement425325 -Node: Exit Statement427955 -Node: Built-in Variables430358 -Node: User-modified431491 -Ref: User-modified-Footnote-1439171 -Node: Auto-set439233 -Ref: Auto-set-Footnote-1452600 -Ref: Auto-set-Footnote-2452805 -Node: ARGC and ARGV452861 -Node: Pattern Action Summary457065 -Node: Arrays459492 -Node: Array Basics460821 -Node: Array Intro461665 -Ref: figure-array-elements463629 -Ref: Array Intro-Footnote-1466153 -Node: Reference to Elements466281 -Node: Assigning Elements468731 -Node: Array Example469222 -Node: Scanning an Array470980 -Node: Controlling Scanning473996 -Ref: Controlling Scanning-Footnote-1479185 -Node: Numeric Array Subscripts479501 -Node: Uninitialized Subscripts481686 -Node: Delete483303 -Ref: Delete-Footnote-1486047 -Node: Multidimensional486104 -Node: Multiscanning489199 -Node: Arrays of Arrays490788 -Node: Arrays Summary495549 -Node: Functions497654 -Node: Built-in498527 -Node: Calling Built-in499605 -Node: Numeric Functions501593 -Ref: Numeric Functions-Footnote-1506417 -Ref: Numeric Functions-Footnote-2506774 -Ref: Numeric Functions-Footnote-3506822 -Node: String Functions507091 -Ref: String Functions-Footnote-1530563 -Ref: String Functions-Footnote-2530692 -Ref: String Functions-Footnote-3530940 -Node: Gory Details531027 -Ref: table-sub-escapes532808 -Ref: table-sub-proposed534328 -Ref: table-posix-sub535692 -Ref: table-gensub-escapes537232 -Ref: Gory Details-Footnote-1538064 -Node: I/O Functions538215 -Ref: I/O Functions-Footnote-1545316 -Node: Time Functions545463 -Ref: Time Functions-Footnote-1555932 -Ref: Time Functions-Footnote-2556000 -Ref: Time Functions-Footnote-3556158 -Ref: Time Functions-Footnote-4556269 -Ref: Time Functions-Footnote-5556381 -Ref: Time Functions-Footnote-6556608 -Node: Bitwise Functions556874 -Ref: table-bitwise-ops557436 -Ref: Bitwise Functions-Footnote-1561744 -Node: Type Functions561913 -Node: I18N Functions563062 -Node: User-defined564707 -Node: Definition Syntax565511 -Ref: Definition Syntax-Footnote-1570917 -Node: Function Example570986 -Ref: Function Example-Footnote-1573903 -Node: Function Caveats573925 -Node: Calling A Function574443 -Node: Variable Scope575398 -Node: Pass By Value/Reference578386 -Node: Return Statement581896 -Node: Dynamic Typing584880 -Node: Indirect Calls585809 -Ref: Indirect Calls-Footnote-1597113 -Node: Functions Summary597241 -Node: Library Functions599940 -Ref: Library Functions-Footnote-1603558 -Ref: Library Functions-Footnote-2603701 -Node: Library Names603872 -Ref: Library Names-Footnote-1607332 -Ref: Library Names-Footnote-2607552 -Node: General Functions607638 -Node: Strtonum Function608741 -Node: Assert Function611761 -Node: Round Function615085 -Node: Cliff Random Function616626 -Node: Ordinal Functions617642 -Ref: Ordinal Functions-Footnote-1620707 -Ref: Ordinal Functions-Footnote-2620959 -Node: Join Function621170 -Ref: Join Function-Footnote-1622941 -Node: Getlocaltime Function623141 -Node: Readfile Function626882 -Node: Shell Quoting628852 -Node: Data File Management630253 -Node: Filetrans Function630885 -Node: Rewind Function634944 -Node: File Checking636329 -Ref: File Checking-Footnote-1637657 -Node: Empty Files637858 -Node: Ignoring Assigns639837 -Node: Getopt Function641388 -Ref: Getopt Function-Footnote-1652848 -Node: Passwd Functions653051 -Ref: Passwd Functions-Footnote-1661902 -Node: Group Functions661990 -Ref: Group Functions-Footnote-1669893 -Node: Walking Arrays670106 -Node: Library Functions Summary671709 -Node: Library Exercises673110 -Node: Sample Programs674390 -Node: Running Examples675160 -Node: Clones675888 -Node: Cut Program677112 -Node: Egrep Program686842 -Ref: Egrep Program-Footnote-1694346 -Node: Id Program694456 -Node: Split Program698100 -Ref: Split Program-Footnote-1701546 -Node: Tee Program701674 -Node: Uniq Program704461 -Node: Wc Program711882 -Ref: Wc Program-Footnote-1716130 -Node: Miscellaneous Programs716222 -Node: Dupword Program717435 -Node: Alarm Program719466 -Node: Translate Program724270 -Ref: Translate Program-Footnote-1728834 -Node: Labels Program729104 -Ref: Labels Program-Footnote-1732453 -Node: Word Sorting732537 -Node: History Sorting736607 -Node: Extract Program738443 -Node: Simple Sed745975 -Node: Igawk Program749037 -Ref: Igawk Program-Footnote-1763363 -Ref: Igawk Program-Footnote-2763564 -Ref: Igawk Program-Footnote-3763686 -Node: Anagram Program763801 -Node: Signature Program766863 -Node: Programs Summary768110 -Node: Programs Exercises769303 -Ref: Programs Exercises-Footnote-1773434 -Node: Advanced Features773525 -Node: Nondecimal Data775473 -Node: Array Sorting777063 -Node: Controlling Array Traversal777760 -Ref: Controlling Array Traversal-Footnote-1786091 -Node: Array Sorting Functions786209 -Ref: Array Sorting Functions-Footnote-1790101 -Node: Two-way I/O790295 -Ref: Two-way I/O-Footnote-1795239 -Ref: Two-way I/O-Footnote-2795425 -Node: TCP/IP Networking795507 -Node: Profiling798379 -Node: Advanced Features Summary806653 -Node: Internationalization808586 -Node: I18N and L10N810066 -Node: Explaining gettext810752 -Ref: Explaining gettext-Footnote-1815781 -Ref: Explaining gettext-Footnote-2815965 -Node: Programmer i18n816130 -Ref: Programmer i18n-Footnote-1820996 -Node: Translator i18n821045 -Node: String Extraction821839 -Ref: String Extraction-Footnote-1822970 -Node: Printf Ordering823056 -Ref: Printf Ordering-Footnote-1825842 -Node: I18N Portability825906 -Ref: I18N Portability-Footnote-1828355 -Node: I18N Example828418 -Ref: I18N Example-Footnote-1831218 -Node: Gawk I18N831290 -Node: I18N Summary831928 -Node: Debugger833267 -Node: Debugging834289 -Node: Debugging Concepts834730 -Node: Debugging Terms836587 -Node: Awk Debugging839162 -Node: Sample Debugging Session840054 -Node: Debugger Invocation840574 -Node: Finding The Bug841958 -Node: List of Debugger Commands848433 -Node: Breakpoint Control849765 -Node: Debugger Execution Control853457 -Node: Viewing And Changing Data856821 -Node: Execution Stack860186 -Node: Debugger Info861824 -Node: Miscellaneous Debugger Commands865841 -Node: Readline Support871033 -Node: Limitations871925 -Node: Debugging Summary874022 -Node: Arbitrary Precision Arithmetic875190 -Node: Computer Arithmetic876606 -Ref: table-numeric-ranges880207 -Ref: Computer Arithmetic-Footnote-1881066 -Node: Math Definitions881123 -Ref: table-ieee-formats884410 -Ref: Math Definitions-Footnote-1885014 -Node: MPFR features885119 -Node: FP Math Caution886790 -Ref: FP Math Caution-Footnote-1887840 -Node: Inexactness of computations888209 -Node: Inexact representation889157 -Node: Comparing FP Values890512 -Node: Errors accumulate891585 -Node: Getting Accuracy893018 -Node: Try To Round895677 -Node: Setting precision896576 -Ref: table-predefined-precision-strings897260 -Node: Setting the rounding mode899054 -Ref: table-gawk-rounding-modes899418 -Ref: Setting the rounding mode-Footnote-1902872 -Node: Arbitrary Precision Integers903051 -Ref: Arbitrary Precision Integers-Footnote-1907955 -Node: POSIX Floating Point Problems908104 -Ref: POSIX Floating Point Problems-Footnote-1911980 -Node: Floating point summary912018 -Node: Dynamic Extensions914210 -Node: Extension Intro915762 -Node: Plugin License917028 -Node: Extension Mechanism Outline917825 -Ref: figure-load-extension918253 -Ref: figure-register-new-function919733 -Ref: figure-call-new-function920737 -Node: Extension API Description922723 -Node: Extension API Functions Introduction924173 -Node: General Data Types929009 -Ref: General Data Types-Footnote-1934696 -Node: Memory Allocation Functions934995 -Ref: Memory Allocation Functions-Footnote-1937825 -Node: Constructor Functions937921 -Node: Registration Functions939655 -Node: Extension Functions940340 -Node: Exit Callback Functions942636 -Node: Extension Version String943884 -Node: Input Parsers944534 -Node: Output Wrappers954349 -Node: Two-way processors958865 -Node: Printing Messages961069 -Ref: Printing Messages-Footnote-1962146 -Node: Updating `ERRNO'962298 -Node: Requesting Values963038 -Ref: table-value-types-returned963766 -Node: Accessing Parameters964724 -Node: Symbol Table Access965955 -Node: Symbol table by name966469 -Node: Symbol table by cookie968449 -Ref: Symbol table by cookie-Footnote-1972588 -Node: Cached values972651 -Ref: Cached values-Footnote-1976155 -Node: Array Manipulation976246 -Ref: Array Manipulation-Footnote-1977344 -Node: Array Data Types977383 -Ref: Array Data Types-Footnote-1980040 -Node: Array Functions980132 -Node: Flattening Arrays983986 -Node: Creating Arrays990873 -Node: Extension API Variables995640 -Node: Extension Versioning996276 -Node: Extension API Informational Variables998177 -Node: Extension API Boilerplate999265 -Node: Finding Extensions1003081 -Node: Extension Example1003641 -Node: Internal File Description1004413 -Node: Internal File Ops1008480 -Ref: Internal File Ops-Footnote-11020138 -Node: Using Internal File Ops1020278 -Ref: Using Internal File Ops-Footnote-11022661 -Node: Extension Samples1022934 -Node: Extension Sample File Functions1024458 -Node: Extension Sample Fnmatch1032060 -Node: Extension Sample Fork1033542 -Node: Extension Sample Inplace1034755 -Node: Extension Sample Ord1036430 -Node: Extension Sample Readdir1037266 -Ref: table-readdir-file-types1038142 -Node: Extension Sample Revout1038953 -Node: Extension Sample Rev2way1039544 -Node: Extension Sample Read write array1040285 -Node: Extension Sample Readfile1042224 -Node: Extension Sample Time1043319 -Node: Extension Sample API Tests1044668 -Node: gawkextlib1045159 -Node: Extension summary1047809 -Node: Extension Exercises1051491 -Node: Language History1052213 -Node: V7/SVR3.11053870 -Node: SVR41056051 -Node: POSIX1057496 -Node: BTL1058885 -Node: POSIX/GNU1059619 -Node: Feature History1065248 -Node: Common Extensions1078346 -Node: Ranges and Locales1079670 -Ref: Ranges and Locales-Footnote-11084309 -Ref: Ranges and Locales-Footnote-21084336 -Ref: Ranges and Locales-Footnote-31084570 -Node: Contributors1084791 -Node: History summary1090331 -Node: Installation1091700 -Node: Gawk Distribution1092656 -Node: Getting1093140 -Node: Extracting1093964 -Node: Distribution contents1095606 -Node: Unix Installation1101376 -Node: Quick Installation1101993 -Node: Additional Configuration Options1104424 -Node: Configuration Philosophy1106164 -Node: Non-Unix Installation1108515 -Node: PC Installation1108973 -Node: PC Binary Installation1110299 -Node: PC Compiling1112147 -Ref: PC Compiling-Footnote-11115168 -Node: PC Testing1115273 -Node: PC Using1116449 -Node: Cygwin1120564 -Node: MSYS1121387 -Node: VMS Installation1121885 -Node: VMS Compilation1122677 -Ref: VMS Compilation-Footnote-11123899 -Node: VMS Dynamic Extensions1123957 -Node: VMS Installation Details1125641 -Node: VMS Running1127893 -Node: VMS GNV1130734 -Node: VMS Old Gawk1131468 -Node: Bugs1131938 -Node: Other Versions1135842 -Node: Installation summary1142055 -Node: Notes1143111 -Node: Compatibility Mode1143976 -Node: Additions1144758 -Node: Accessing The Source1145683 -Node: Adding Code1147119 -Node: New Ports1153291 -Node: Derived Files1157773 -Ref: Derived Files-Footnote-11163248 -Ref: Derived Files-Footnote-21163282 -Ref: Derived Files-Footnote-31163878 -Node: Future Extensions1163992 -Node: Implementation Limitations1164598 -Node: Extension Design1165846 -Node: Old Extension Problems1167000 -Ref: Old Extension Problems-Footnote-11168517 -Node: Extension New Mechanism Goals1168574 -Ref: Extension New Mechanism Goals-Footnote-11171934 -Node: Extension Other Design Decisions1172123 -Node: Extension Future Growth1174231 -Node: Old Extension Mechanism1175067 -Node: Notes summary1176829 -Node: Basic Concepts1178015 -Node: Basic High Level1178696 -Ref: figure-general-flow1178968 -Ref: figure-process-flow1179567 -Ref: Basic High Level-Footnote-11182796 -Node: Basic Data Typing1182981 -Node: Glossary1186309 -Node: Copying1211467 -Node: GNU Free Documentation License1249023 -Node: Index1274159 +Node: Foreword342225 +Node: Foreword446617 +Node: Preface48051 +Ref: Preface-Footnote-150922 +Ref: Preface-Footnote-251029 +Ref: Preface-Footnote-351262 +Node: History51404 +Node: Names53752 +Ref: Names-Footnote-154846 +Node: This Manual54992 +Ref: This Manual-Footnote-160821 +Node: Conventions60921 +Node: Manual History63261 +Ref: Manual History-Footnote-166252 +Ref: Manual History-Footnote-266293 +Node: How To Contribute66367 +Node: Acknowledgments67606 +Node: Getting Started72414 +Node: Running gawk74848 +Node: One-shot76038 +Node: Read Terminal77263 +Node: Long79290 +Node: Executable Scripts80806 +Ref: Executable Scripts-Footnote-183595 +Node: Comments83697 +Node: Quoting86170 +Node: DOS Quoting91676 +Node: Sample Data Files92351 +Node: Very Simple94944 +Node: Two Rules99835 +Node: More Complex101721 +Node: Statements/Lines104583 +Ref: Statements/Lines-Footnote-1109039 +Node: Other Features109304 +Node: When110235 +Ref: When-Footnote-1111991 +Node: Intro Summary112056 +Node: Invoking Gawk112939 +Node: Command Line114454 +Node: Options115245 +Ref: Options-Footnote-1131028 +Node: Other Arguments131053 +Node: Naming Standard Input134014 +Node: Environment Variables135107 +Node: AWKPATH Variable135665 +Ref: AWKPATH Variable-Footnote-1139075 +Ref: AWKPATH Variable-Footnote-2139120 +Node: AWKLIBPATH Variable139380 +Node: Other Environment Variables140636 +Node: Exit Status144127 +Node: Include Files144802 +Node: Loading Shared Libraries148390 +Node: Obsolete149817 +Node: Undocumented150514 +Node: Invoking Summary150781 +Node: Regexp152447 +Node: Regexp Usage153906 +Node: Escape Sequences155939 +Node: Regexp Operators162187 +Ref: Regexp Operators-Footnote-1169621 +Ref: Regexp Operators-Footnote-2169768 +Node: Bracket Expressions169866 +Ref: table-char-classes171883 +Node: Leftmost Longest174823 +Node: Computed Regexps176125 +Node: GNU Regexp Operators179522 +Node: Case-sensitivity183224 +Ref: Case-sensitivity-Footnote-1186114 +Ref: Case-sensitivity-Footnote-2186349 +Node: Regexp Summary186457 +Node: Reading Files187926 +Node: Records190020 +Node: awk split records190752 +Node: gawk split records195666 +Ref: gawk split records-Footnote-1200205 +Node: Fields200242 +Ref: Fields-Footnote-1203040 +Node: Nonconstant Fields203126 +Ref: Nonconstant Fields-Footnote-1205362 +Node: Changing Fields205564 +Node: Field Separators211496 +Node: Default Field Splitting214200 +Node: Regexp Field Splitting215317 +Node: Single Character Fields218667 +Node: Command Line Field Separator219726 +Node: Full Line Fields222938 +Ref: Full Line Fields-Footnote-1223446 +Node: Field Splitting Summary223492 +Ref: Field Splitting Summary-Footnote-1226623 +Node: Constant Size226724 +Node: Splitting By Content231330 +Ref: Splitting By Content-Footnote-1235403 +Node: Multiple Line235443 +Ref: Multiple Line-Footnote-1241332 +Node: Getline241511 +Node: Plain Getline243722 +Node: Getline/Variable246362 +Node: Getline/File247509 +Node: Getline/Variable/File248893 +Ref: Getline/Variable/File-Footnote-1250494 +Node: Getline/Pipe250581 +Node: Getline/Variable/Pipe253264 +Node: Getline/Coprocess254395 +Node: Getline/Variable/Coprocess255647 +Node: Getline Notes256386 +Node: Getline Summary259178 +Ref: table-getline-variants259590 +Node: Read Timeout260419 +Ref: Read Timeout-Footnote-1264233 +Node: Command-line directories264291 +Node: Input Summary265195 +Node: Input Exercises268447 +Node: Printing269175 +Node: Print270952 +Node: Print Examples272409 +Node: Output Separators275188 +Node: OFMT277206 +Node: Printf278560 +Node: Basic Printf279345 +Node: Control Letters280916 +Node: Format Modifiers284900 +Node: Printf Examples290907 +Node: Redirection293389 +Node: Special FD300228 +Ref: Special FD-Footnote-1303385 +Node: Special Files303459 +Node: Other Inherited Files304075 +Node: Special Network305075 +Node: Special Caveats305936 +Node: Close Files And Pipes306887 +Ref: Close Files And Pipes-Footnote-1314066 +Ref: Close Files And Pipes-Footnote-2314214 +Node: Output Summary314364 +Node: Output Exercises315360 +Node: Expressions316040 +Node: Values317225 +Node: Constants317901 +Node: Scalar Constants318581 +Ref: Scalar Constants-Footnote-1319440 +Node: Nondecimal-numbers319690 +Node: Regexp Constants322690 +Node: Using Constant Regexps323215 +Node: Variables326353 +Node: Using Variables327008 +Node: Assignment Options328918 +Node: Conversion330793 +Node: Strings And Numbers331317 +Ref: Strings And Numbers-Footnote-1334381 +Node: Locale influences conversions334490 +Ref: table-locale-affects337235 +Node: All Operators337823 +Node: Arithmetic Ops338453 +Node: Concatenation340958 +Ref: Concatenation-Footnote-1343777 +Node: Assignment Ops343883 +Ref: table-assign-ops348866 +Node: Increment Ops350144 +Node: Truth Values and Conditions353582 +Node: Truth Values354665 +Node: Typing and Comparison355714 +Node: Variable Typing356507 +Node: Comparison Operators360159 +Ref: table-relational-ops360569 +Node: POSIX String Comparison364084 +Ref: POSIX String Comparison-Footnote-1365156 +Node: Boolean Ops365294 +Ref: Boolean Ops-Footnote-1369773 +Node: Conditional Exp369864 +Node: Function Calls371591 +Node: Precedence375471 +Node: Locales379139 +Node: Expressions Summary380770 +Node: Patterns and Actions383344 +Node: Pattern Overview384464 +Node: Regexp Patterns386143 +Node: Expression Patterns386686 +Node: Ranges390466 +Node: BEGIN/END393572 +Node: Using BEGIN/END394334 +Ref: Using BEGIN/END-Footnote-1397071 +Node: I/O And BEGIN/END397177 +Node: BEGINFILE/ENDFILE399491 +Node: Empty402392 +Node: Using Shell Variables402709 +Node: Action Overview404985 +Node: Statements407312 +Node: If Statement409160 +Node: While Statement410658 +Node: Do Statement412686 +Node: For Statement413828 +Node: Switch Statement416983 +Node: Break Statement419371 +Node: Continue Statement421412 +Node: Next Statement423237 +Node: Nextfile Statement425617 +Node: Exit Statement428247 +Node: Built-in Variables430650 +Node: User-modified431783 +Ref: User-modified-Footnote-1439463 +Node: Auto-set439525 +Ref: Auto-set-Footnote-1452892 +Ref: Auto-set-Footnote-2453097 +Node: ARGC and ARGV453153 +Node: Pattern Action Summary457357 +Node: Arrays459784 +Node: Array Basics461113 +Node: Array Intro461957 +Ref: figure-array-elements463921 +Ref: Array Intro-Footnote-1466445 +Node: Reference to Elements466573 +Node: Assigning Elements469023 +Node: Array Example469514 +Node: Scanning an Array471272 +Node: Controlling Scanning474288 +Ref: Controlling Scanning-Footnote-1479477 +Node: Numeric Array Subscripts479793 +Node: Uninitialized Subscripts481978 +Node: Delete483595 +Ref: Delete-Footnote-1486339 +Node: Multidimensional486396 +Node: Multiscanning489491 +Node: Arrays of Arrays491080 +Node: Arrays Summary495841 +Node: Functions497946 +Node: Built-in498819 +Node: Calling Built-in499897 +Node: Numeric Functions501885 +Ref: Numeric Functions-Footnote-1506709 +Ref: Numeric Functions-Footnote-2507066 +Ref: Numeric Functions-Footnote-3507114 +Node: String Functions507383 +Ref: String Functions-Footnote-1530855 +Ref: String Functions-Footnote-2530984 +Ref: String Functions-Footnote-3531232 +Node: Gory Details531319 +Ref: table-sub-escapes533100 +Ref: table-sub-proposed534620 +Ref: table-posix-sub535984 +Ref: table-gensub-escapes537524 +Ref: Gory Details-Footnote-1538356 +Node: I/O Functions538507 +Ref: I/O Functions-Footnote-1545608 +Node: Time Functions545755 +Ref: Time Functions-Footnote-1556224 +Ref: Time Functions-Footnote-2556292 +Ref: Time Functions-Footnote-3556450 +Ref: Time Functions-Footnote-4556561 +Ref: Time Functions-Footnote-5556673 +Ref: Time Functions-Footnote-6556900 +Node: Bitwise Functions557166 +Ref: table-bitwise-ops557728 +Ref: Bitwise Functions-Footnote-1562036 +Node: Type Functions562205 +Node: I18N Functions563354 +Node: User-defined564999 +Node: Definition Syntax565803 +Ref: Definition Syntax-Footnote-1571209 +Node: Function Example571278 +Ref: Function Example-Footnote-1574195 +Node: Function Caveats574217 +Node: Calling A Function574735 +Node: Variable Scope575690 +Node: Pass By Value/Reference578678 +Node: Return Statement582188 +Node: Dynamic Typing585172 +Node: Indirect Calls586101 +Ref: Indirect Calls-Footnote-1597405 +Node: Functions Summary597533 +Node: Library Functions600232 +Ref: Library Functions-Footnote-1603850 +Ref: Library Functions-Footnote-2603993 +Node: Library Names604164 +Ref: Library Names-Footnote-1607624 +Ref: Library Names-Footnote-2607844 +Node: General Functions607930 +Node: Strtonum Function609033 +Node: Assert Function612053 +Node: Round Function615377 +Node: Cliff Random Function616918 +Node: Ordinal Functions617934 +Ref: Ordinal Functions-Footnote-1620999 +Ref: Ordinal Functions-Footnote-2621251 +Node: Join Function621462 +Ref: Join Function-Footnote-1623233 +Node: Getlocaltime Function623433 +Node: Readfile Function627174 +Node: Shell Quoting629144 +Node: Data File Management630545 +Node: Filetrans Function631177 +Node: Rewind Function635236 +Node: File Checking636621 +Ref: File Checking-Footnote-1637949 +Node: Empty Files638150 +Node: Ignoring Assigns640129 +Node: Getopt Function641680 +Ref: Getopt Function-Footnote-1653140 +Node: Passwd Functions653343 +Ref: Passwd Functions-Footnote-1662194 +Node: Group Functions662282 +Ref: Group Functions-Footnote-1670185 +Node: Walking Arrays670398 +Node: Library Functions Summary672001 +Node: Library Exercises673402 +Node: Sample Programs674682 +Node: Running Examples675452 +Node: Clones676180 +Node: Cut Program677404 +Node: Egrep Program687134 +Ref: Egrep Program-Footnote-1694638 +Node: Id Program694748 +Node: Split Program698392 +Ref: Split Program-Footnote-1701838 +Node: Tee Program701966 +Node: Uniq Program704753 +Node: Wc Program712174 +Ref: Wc Program-Footnote-1716422 +Node: Miscellaneous Programs716514 +Node: Dupword Program717727 +Node: Alarm Program719758 +Node: Translate Program724562 +Ref: Translate Program-Footnote-1729126 +Node: Labels Program729396 +Ref: Labels Program-Footnote-1732745 +Node: Word Sorting732829 +Node: History Sorting736899 +Node: Extract Program738735 +Node: Simple Sed746267 +Node: Igawk Program749329 +Ref: Igawk Program-Footnote-1763655 +Ref: Igawk Program-Footnote-2763856 +Ref: Igawk Program-Footnote-3763978 +Node: Anagram Program764093 +Node: Signature Program767155 +Node: Programs Summary768402 +Node: Programs Exercises769595 +Ref: Programs Exercises-Footnote-1773726 +Node: Advanced Features773817 +Node: Nondecimal Data775765 +Node: Array Sorting777355 +Node: Controlling Array Traversal778052 +Ref: Controlling Array Traversal-Footnote-1786383 +Node: Array Sorting Functions786501 +Ref: Array Sorting Functions-Footnote-1790393 +Node: Two-way I/O790587 +Ref: Two-way I/O-Footnote-1795531 +Ref: Two-way I/O-Footnote-2795717 +Node: TCP/IP Networking795799 +Node: Profiling798671 +Node: Advanced Features Summary806945 +Node: Internationalization808878 +Node: I18N and L10N810358 +Node: Explaining gettext811044 +Ref: Explaining gettext-Footnote-1816073 +Ref: Explaining gettext-Footnote-2816257 +Node: Programmer i18n816422 +Ref: Programmer i18n-Footnote-1821288 +Node: Translator i18n821337 +Node: String Extraction822131 +Ref: String Extraction-Footnote-1823262 +Node: Printf Ordering823348 +Ref: Printf Ordering-Footnote-1826134 +Node: I18N Portability826198 +Ref: I18N Portability-Footnote-1828647 +Node: I18N Example828710 +Ref: I18N Example-Footnote-1831510 +Node: Gawk I18N831582 +Node: I18N Summary832220 +Node: Debugger833559 +Node: Debugging834581 +Node: Debugging Concepts835022 +Node: Debugging Terms836879 +Node: Awk Debugging839454 +Node: Sample Debugging Session840346 +Node: Debugger Invocation840866 +Node: Finding The Bug842250 +Node: List of Debugger Commands848725 +Node: Breakpoint Control850057 +Node: Debugger Execution Control853749 +Node: Viewing And Changing Data857113 +Node: Execution Stack860478 +Node: Debugger Info862116 +Node: Miscellaneous Debugger Commands866133 +Node: Readline Support871325 +Node: Limitations872217 +Node: Debugging Summary874314 +Node: Arbitrary Precision Arithmetic875482 +Node: Computer Arithmetic876898 +Ref: table-numeric-ranges880499 +Ref: Computer Arithmetic-Footnote-1881358 +Node: Math Definitions881415 +Ref: table-ieee-formats884702 +Ref: Math Definitions-Footnote-1885306 +Node: MPFR features885411 +Node: FP Math Caution887082 +Ref: FP Math Caution-Footnote-1888132 +Node: Inexactness of computations888501 +Node: Inexact representation889449 +Node: Comparing FP Values890804 +Node: Errors accumulate891877 +Node: Getting Accuracy893310 +Node: Try To Round895969 +Node: Setting precision896868 +Ref: table-predefined-precision-strings897552 +Node: Setting the rounding mode899346 +Ref: table-gawk-rounding-modes899710 +Ref: Setting the rounding mode-Footnote-1903164 +Node: Arbitrary Precision Integers903343 +Ref: Arbitrary Precision Integers-Footnote-1908247 +Node: POSIX Floating Point Problems908396 +Ref: POSIX Floating Point Problems-Footnote-1912272 +Node: Floating point summary912310 +Node: Dynamic Extensions914502 +Node: Extension Intro916054 +Node: Plugin License917320 +Node: Extension Mechanism Outline918117 +Ref: figure-load-extension918545 +Ref: figure-register-new-function920025 +Ref: figure-call-new-function921029 +Node: Extension API Description923015 +Node: Extension API Functions Introduction924465 +Node: General Data Types929301 +Ref: General Data Types-Footnote-1934988 +Node: Memory Allocation Functions935287 +Ref: Memory Allocation Functions-Footnote-1938117 +Node: Constructor Functions938213 +Node: Registration Functions939947 +Node: Extension Functions940632 +Node: Exit Callback Functions942928 +Node: Extension Version String944176 +Node: Input Parsers944826 +Node: Output Wrappers954641 +Node: Two-way processors959157 +Node: Printing Messages961361 +Ref: Printing Messages-Footnote-1962438 +Node: Updating `ERRNO'962590 +Node: Requesting Values963330 +Ref: table-value-types-returned964058 +Node: Accessing Parameters965016 +Node: Symbol Table Access966247 +Node: Symbol table by name966761 +Node: Symbol table by cookie968741 +Ref: Symbol table by cookie-Footnote-1972880 +Node: Cached values972943 +Ref: Cached values-Footnote-1976447 +Node: Array Manipulation976538 +Ref: Array Manipulation-Footnote-1977636 +Node: Array Data Types977675 +Ref: Array Data Types-Footnote-1980332 +Node: Array Functions980424 +Node: Flattening Arrays984278 +Node: Creating Arrays991165 +Node: Extension API Variables995932 +Node: Extension Versioning996568 +Node: Extension API Informational Variables998469 +Node: Extension API Boilerplate999557 +Node: Finding Extensions1003373 +Node: Extension Example1003933 +Node: Internal File Description1004705 +Node: Internal File Ops1008772 +Ref: Internal File Ops-Footnote-11020430 +Node: Using Internal File Ops1020570 +Ref: Using Internal File Ops-Footnote-11022953 +Node: Extension Samples1023226 +Node: Extension Sample File Functions1024750 +Node: Extension Sample Fnmatch1032352 +Node: Extension Sample Fork1033834 +Node: Extension Sample Inplace1035047 +Node: Extension Sample Ord1036722 +Node: Extension Sample Readdir1037558 +Ref: table-readdir-file-types1038434 +Node: Extension Sample Revout1039245 +Node: Extension Sample Rev2way1039836 +Node: Extension Sample Read write array1040577 +Node: Extension Sample Readfile1042516 +Node: Extension Sample Time1043611 +Node: Extension Sample API Tests1044960 +Node: gawkextlib1045451 +Node: Extension summary1048101 +Node: Extension Exercises1051783 +Node: Language History1052505 +Node: V7/SVR3.11054162 +Node: SVR41056343 +Node: POSIX1057788 +Node: BTL1059177 +Node: POSIX/GNU1059911 +Node: Feature History1065540 +Node: Common Extensions1078638 +Node: Ranges and Locales1079962 +Ref: Ranges and Locales-Footnote-11084601 +Ref: Ranges and Locales-Footnote-21084628 +Ref: Ranges and Locales-Footnote-31084862 +Node: Contributors1085083 +Node: History summary1090623 +Node: Installation1091992 +Node: Gawk Distribution1092948 +Node: Getting1093432 +Node: Extracting1094256 +Node: Distribution contents1095898 +Node: Unix Installation1101963 +Node: Quick Installation1102646 +Node: Shell Startup Files1105064 +Node: Additional Configuration Options1106143 +Node: Configuration Philosophy1107884 +Node: Non-Unix Installation1110235 +Node: PC Installation1110693 +Node: PC Binary Installation1112019 +Node: PC Compiling1113867 +Ref: PC Compiling-Footnote-11116888 +Node: PC Testing1116993 +Node: PC Using1118169 +Node: Cygwin1122284 +Node: MSYS1123107 +Node: VMS Installation1123605 +Node: VMS Compilation1124397 +Ref: VMS Compilation-Footnote-11125619 +Node: VMS Dynamic Extensions1125677 +Node: VMS Installation Details1127361 +Node: VMS Running1129613 +Node: VMS GNV1132454 +Node: VMS Old Gawk1133188 +Node: Bugs1133658 +Node: Other Versions1137562 +Node: Installation summary1143775 +Node: Notes1144831 +Node: Compatibility Mode1145696 +Node: Additions1146478 +Node: Accessing The Source1147403 +Node: Adding Code1148839 +Node: New Ports1155011 +Node: Derived Files1159493 +Ref: Derived Files-Footnote-11164968 +Ref: Derived Files-Footnote-21165002 +Ref: Derived Files-Footnote-31165598 +Node: Future Extensions1165712 +Node: Implementation Limitations1166318 +Node: Extension Design1167566 +Node: Old Extension Problems1168720 +Ref: Old Extension Problems-Footnote-11170237 +Node: Extension New Mechanism Goals1170294 +Ref: Extension New Mechanism Goals-Footnote-11173654 +Node: Extension Other Design Decisions1173843 +Node: Extension Future Growth1175951 +Node: Old Extension Mechanism1176787 +Node: Notes summary1178549 +Node: Basic Concepts1179735 +Node: Basic High Level1180416 +Ref: figure-general-flow1180688 +Ref: figure-process-flow1181287 +Ref: Basic High Level-Footnote-11184516 +Node: Basic Data Typing1184701 +Node: Glossary1188029 +Node: Copying1213187 +Node: GNU Free Documentation License1250743 +Node: Index1275879 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index a67689fd..3e3976f7 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -989,6 +989,7 @@ particular records in a file and perform operations upon them. * Unix Installation:: Installing @command{gawk} under various versions of Unix. * Quick Installation:: Compiling @command{gawk} under Unix. +* Shell Startup Files:: Shell convenience functions. * Additional Configuration Options:: Other compile-time options. * Configuration Philosophy:: How it's all supposed to work. * Non-Unix Installation:: Installation on Other Operating @@ -4400,6 +4401,9 @@ searches first in the current directory and then in @file{/usr/local/share/awk}. In practice, this means that you will rarely need to change the value of @env{AWKPATH}. +@xref{Shell Startup Files}, for information on functions that help to +manipulate the @env{AWKPATH} variable. + @command{gawk} places the value of the search path that it used into @code{ENVIRON["AWKPATH"]}. This provides access to the actual search path value from within an @command{awk} program. @@ -4431,6 +4435,9 @@ an empty value, @command{gawk} uses a default path; this is typically @samp{/usr/local/lib/gawk}, although it can vary depending upon how @command{gawk} was built. +@xref{Shell Startup Files}, for information on functions that help to +manipulate the @env{AWKLIBPATH} variable. + @command{gawk} places the value of the search path that it used into @code{ENVIRON["AWKLIBPATH"]}. This provides access to the actual search path value from within an @command{awk} program. @@ -37344,6 +37351,12 @@ The source code, manual pages, and infrastructure files for the sample extensions included with @command{gawk}. @xref{Dynamic Extensions}, for more information. +@item extras/* +Additional non-essential files. Currently, this directory contains some shell +startup files to be installed in @file{/etc/profile.d} to aid in manipulating +the @env{AWKPATH} and @env{AWKLIBPATH} environment variables. +@xref{Shell Startup Files}, for more information. + @item posix/* Files needed for building @command{gawk} on POSIX-compliant systems. @@ -37376,6 +37389,7 @@ to configure @command{gawk} for your system yourself. @menu * Quick Installation:: Compiling @command{gawk} under Unix. +* Shell Startup Files:: Shell convenience functions. * Additional Configuration Options:: Other compile-time options. * Configuration Philosophy:: How it's all supposed to work. @end menu @@ -37456,6 +37470,44 @@ is likely that you will be asked for your password, and you will have to have been set up previously as a user who is allowed to run the @command{sudo} command. +@node Shell Startup Files +@appendixsubsec Shell Startup Files + +The distribution contains shell startup files @file{gawk.sh} and +@file{gawk.csh} containing functions to aid in manipulating +the @env{AWKPATH} and @env{AWKLIBPATH} environment variables. +On a Fedora system, these files should be installed in @file{/etc/profile.d}; +on other platforms, the appropriate location may be different. + +@table @command + +@cindex @command{gawkpath_default} shell function +@item gawkpath_default +Reset the @env{AWKPATH} environment variable to its default value. + +@cindex @command{gawkpath_prepend} shell function +@item gawkpath_prepend +Add the argument to the front of the @env{AWKPATH} environment variable. + +@cindex @command{gawkpath_append} shell function +@item gawkpath_append +Add the argument to the end of the @env{AWKPATH} environment variable. + +@cindex @command{gawklibpath_default} shell function +@item gawklibpath_default +Reset the @env{AWKLIBPATH} environment variable to its default value. + +@cindex @command{gawklibpath_prepend} shell function +@item gawklibpath_prepend +Add the argument to the front of the @env{AWKLIBPATH} environment variable. + +@cindex @command{gawklibpath_append} shell function +@item gawklibpath_append +Add the argument to the end of the @env{AWKLIBPATH} environment variable. + +@end table + + @node Additional Configuration Options @appendixsubsec Additional Configuration Options @cindex @command{gawk}, configuring, options diff --git a/doc/gawktexi.in b/doc/gawktexi.in index f0d8e0b2..a9811763 100644 --- a/doc/gawktexi.in +++ b/doc/gawktexi.in @@ -984,6 +984,7 @@ particular records in a file and perform operations upon them. * Unix Installation:: Installing @command{gawk} under various versions of Unix. * Quick Installation:: Compiling @command{gawk} under Unix. +* Shell Startup Files:: Shell convenience functions. * Additional Configuration Options:: Other compile-time options. * Configuration Philosophy:: How it's all supposed to work. * Non-Unix Installation:: Installation on Other Operating @@ -4311,6 +4312,9 @@ searches first in the current directory and then in @file{/usr/local/share/awk}. In practice, this means that you will rarely need to change the value of @env{AWKPATH}. +@xref{Shell Startup Files}, for information on functions that help to +manipulate the @env{AWKPATH} variable. + @command{gawk} places the value of the search path that it used into @code{ENVIRON["AWKPATH"]}. This provides access to the actual search path value from within an @command{awk} program. @@ -4342,6 +4346,9 @@ an empty value, @command{gawk} uses a default path; this is typically @samp{/usr/local/lib/gawk}, although it can vary depending upon how @command{gawk} was built. +@xref{Shell Startup Files}, for information on functions that help to +manipulate the @env{AWKLIBPATH} variable. + @command{gawk} places the value of the search path that it used into @code{ENVIRON["AWKLIBPATH"]}. This provides access to the actual search path value from within an @command{awk} program. @@ -36438,6 +36445,12 @@ The source code, manual pages, and infrastructure files for the sample extensions included with @command{gawk}. @xref{Dynamic Extensions}, for more information. +@item extras/* +Additional non-essential files. Currently, this directory contains some shell +startup files to be installed in @file{/etc/profile.d} to aid in manipulating +the @env{AWKPATH} and @env{AWKLIBPATH} environment variables. +@xref{Shell Startup Files}, for more information. + @item posix/* Files needed for building @command{gawk} on POSIX-compliant systems. @@ -36470,6 +36483,7 @@ to configure @command{gawk} for your system yourself. @menu * Quick Installation:: Compiling @command{gawk} under Unix. +* Shell Startup Files:: Shell convenience functions. * Additional Configuration Options:: Other compile-time options. * Configuration Philosophy:: How it's all supposed to work. @end menu @@ -36550,6 +36564,44 @@ is likely that you will be asked for your password, and you will have to have been set up previously as a user who is allowed to run the @command{sudo} command. +@node Shell Startup Files +@appendixsubsec Shell Startup Files + +The distribution contains shell startup files @file{gawk.sh} and +@file{gawk.csh} containing functions to aid in manipulating +the @env{AWKPATH} and @env{AWKLIBPATH} environment variables. +On a Fedora system, these files should be installed in @file{/etc/profile.d}; +on other platforms, the appropriate location may be different. + +@table @command + +@cindex @command{gawkpath_default} shell function +@item gawkpath_default +Reset the @env{AWKPATH} environment variable to its default value. + +@cindex @command{gawkpath_prepend} shell function +@item gawkpath_prepend +Add the argument to the front of the @env{AWKPATH} environment variable. + +@cindex @command{gawkpath_append} shell function +@item gawkpath_append +Add the argument to the end of the @env{AWKPATH} environment variable. + +@cindex @command{gawklibpath_default} shell function +@item gawklibpath_default +Reset the @env{AWKLIBPATH} environment variable to its default value. + +@cindex @command{gawklibpath_prepend} shell function +@item gawklibpath_prepend +Add the argument to the front of the @env{AWKLIBPATH} environment variable. + +@cindex @command{gawklibpath_append} shell function +@item gawklibpath_append +Add the argument to the end of the @env{AWKLIBPATH} environment variable. + +@end table + + @node Additional Configuration Options @appendixsubsec Additional Configuration Options @cindex @command{gawk}, configuring, options diff --git a/extras/ChangeLog b/extras/ChangeLog new file mode 100644 index 00000000..5f7d33ad --- /dev/null +++ b/extras/ChangeLog @@ -0,0 +1,3 @@ +2014-10-29 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * Makefile.am, gawk.sh, gawk.csh: New files. diff --git a/extras/Makefile.am b/extras/Makefile.am new file mode 100644 index 00000000..6a33ae04 --- /dev/null +++ b/extras/Makefile.am @@ -0,0 +1,29 @@ +# +# extras/Makefile.am --- automake input file for gawk +# +# Copyright (C) 2014 the Free Software Foundation, Inc. +# +# This file is part of GAWK, the GNU implementation of the +# AWK Programming Language. +# +# GAWK is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# GAWK is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +# + +## Process this file with automake to produce Makefile.in. + +profiledir = $(sysconfdir)/profile.d +profile_DATA = gawk.sh gawk.csh + +EXTRA_DIST = $(profile_DATA) diff --git a/extras/Makefile.in b/extras/Makefile.in new file mode 100644 index 00000000..d447dc73 --- /dev/null +++ b/extras/Makefile.in @@ -0,0 +1,515 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# extras/Makefile.am --- automake input file for gawk +# +# Copyright (C) 2014 the Free Software Foundation, Inc. +# +# This file is part of GAWK, the GNU implementation of the +# AWK Programming Language. +# +# GAWK is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# GAWK is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +# + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = extras +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/mkinstalldirs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/arch.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lcmessage.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libsigsegv.m4 \ + $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/mpfr.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/noreturn.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/socket.m4 \ + $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(profiledir)" +DATA = $(profile_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GAWKLIBEXT = @GAWKLIBEXT@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +HAVE_LIBSIGSEGV = @HAVE_LIBSIGSEGV@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBMPFR = @LIBMPFR@ +LIBOBJS = @LIBOBJS@ +LIBREADLINE = @LIBREADLINE@ +LIBS = @LIBS@ +LIBSIGSEGV = @LIBSIGSEGV@ +LIBSIGSEGV_PREFIX = @LIBSIGSEGV_PREFIX@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LTLIBSIGSEGV = @LTLIBSIGSEGV@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POSUB = @POSUB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOCKET_LIBS = @SOCKET_LIBS@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +acl_shlibext = @acl_shlibext@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgextensiondir = @pkgextensiondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +profiledir = $(sysconfdir)/profile.d +profile_DATA = gawk.sh gawk.csh +EXTRA_DIST = $(profile_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu extras/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-profileDATA: $(profile_DATA) + @$(NORMAL_INSTALL) + @list='$(profile_DATA)'; test -n "$(profiledir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(profiledir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(profiledir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(profiledir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(profiledir)" || exit $$?; \ + done + +uninstall-profileDATA: + @$(NORMAL_UNINSTALL) + @list='$(profile_DATA)'; test -n "$(profiledir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(profiledir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(profiledir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-profileDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-profileDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ + ctags-am distclean distclean-generic distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-profileDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags-am uninstall uninstall-am \ + uninstall-profileDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/extras/gawk.csh b/extras/gawk.csh new file mode 100644 index 00000000..583d5bcd --- /dev/null +++ b/extras/gawk.csh @@ -0,0 +1,11 @@ +alias gawkpath_default 'unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`' + +alias gawkpath_prepend 'if (! $?AWKPATH) setenv AWKPATH ""; if ($AWKPATH == "") then; unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKPATH "\!*"":$AWKPATH"' + +alias gawkpath_append 'if (! $?AWKPATH) setenv AWKPATH ""; if ($AWKPATH == "") then; unsetenv AWKPATH; setenv AWKPATH `gawk -v x=AWKPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKPATH "$AWKPATH"":\!*"' + +alias gawklibpath_default 'unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`' + +alias gawklibpath_prepend 'if (! $?AWKLIBPATH) setenv AWKLIBPATH ""; if ($AWKLIBPATH == "") then; unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKLIBPATH "\!*"":$AWKLIBPATH"' + +alias gawklibpath_append 'if (! $?AWKLIBPATH) setenv AWKLIBPATH ""; if ($AWKLIBPATH == "") then; unsetenv AWKLIBPATH; setenv AWKLIBPATH `gawk -v x=AWKLIBPATH "BEGIN {print ENVIRON[x]}"`; endif; setenv AWKLIBPATH "$AWKLIBPATH"":\!*"' diff --git a/extras/gawk.sh b/extras/gawk.sh new file mode 100644 index 00000000..c35471fa --- /dev/null +++ b/extras/gawk.sh @@ -0,0 +1,31 @@ +gawkpath_default () { + unset AWKPATH + export AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'` +} + +gawkpath_prepend () { + [ -z "$AWKPATH" ] && AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'` + export AWKPATH="$*:$AWKPATH" +} + +gawkpath_append () { + [ -z "$AWKPATH" ] && AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'` + export AWKPATH="$AWKPATH:$*" +} + +gawklibpath_default () { + unset AWKLIBPATH + export AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'` +} + +gawklibpath_prepend () { + [ -z "$AWKLIBPATH" ] && \ + AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'` + export AWKLIBPATH="$*:$AWKLIBPATH" +} + +gawklibpath_append () { + [ -z "$AWKLIBPATH" ] && \ + AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'` + export AWKLIBPATH="$AWKLIBPATH:$*" +} |