gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, master, updated. f634938f90ef8c85cfd9ca7


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, master, updated. f634938f90ef8c85cfd9ca7421f10f4b70c0137e
Date: Fri, 07 Dec 2012 12:34:14 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, master has been updated
       via  f634938f90ef8c85cfd9ca7421f10f4b70c0137e (commit)
       via  d20af67ae8a6a573a0db906f9c9960a092f21b41 (commit)
      from  32323fa42c2c9079abf9a5fe92b2af8c523fd84b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=f634938f90ef8c85cfd9ca7421f10f4b70c0137e

commit f634938f90ef8c85cfd9ca7421f10f4b70c0137e
Merge: 32323fa d20af67
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Dec 7 14:33:48 2012 +0200

    Merge branch 'gawk-4.0-stable'. fflush is now POSIX.

diff --cc ChangeLog
index c87c1cc,5b81ade..edcd770
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,6 -1,15 +1,15 @@@
+ 2012-12-07         Arnold D. Robbins     <address@hidden>
+ 
+       * awkgram.y (tokentab): `fflush()' is now in POSIX, remove the
+       RESX flag. This was the last use, so delete the flag.
+       (yylex): Don't check RESX.
+ 
+       Thanks to Nathan Weeks <address@hidden> for helping make this
+       happen.
+ 
  2012-12-01         Arnold D. Robbins     <address@hidden>
  
 -      * eval.c (r_interpret): For op_assign_concat, if both strings
 +      * interpret.h: For op_assign_concat, if both strings
        have WSTRCUR, then do the realloc() and append for the
        wide string too.  Thanks to Janis Papanagnou
        <address@hidden> for the discussion in
@@@ -86,41 -18,12 +95,46 @@@
  2012-11-10         Arnold D. Robbins     <address@hidden>
  
        * Update to bison 2.6.5. Various files regenerated.
 +      * io.c (find_source): Add a default value for SHLIBEXT.
 +      (read_with_timeout): For VMS also, just use read().
 +
 +2012-11-10         John Haque      <address@hidden>
 +
 +      * int_array.c (int_copy): Initialize next pointer of newchain to null.
 +      * eval.c (eval_condition): Force string context for an integer used
 +      as array index.
 +
 +2012-11-10         Arnold D. Robbins     <address@hidden>
 +
 +      * gawkapi.c (api_add_ext_func, api_awk_atexit, api_clear_array,
 +      api_create_array, api_create_value, api_register_ext_version,
 +      api_release_value, api_update_ERRNO_string, node_to_awk_value,
 +      remove_element, run_ext_exit_handlers): Add null pointer checks.
 +      Everywhere: Add / fixup leading comments.
 +
 +      * interpret.h (Op_store_sub): If assigning to an unitialized variable
 +      through SYMTAB, change it to Node_var. Add explanatory comments.
 +      * symbol.c (get_symbol): Rationalized. Skip non-variables in SYMTAB.
 +
 +2012-11-04         Arnold D. Robbins     <address@hidden>
 +
 +      * gawkapi.h: Minor documentation edit.
 +
 +2012-10-31         Arnold D. Robbins     <address@hidden>
 +
 +      * awkgram.y (want_regexp): Use as a bool, not as an int.
 +      * field.c: Fix a comment.
 +      * gawkapi.h: Add comment to include <errno.h>.
 +      * symbol.c (load_symbols): ``No automatic aggregate initialization.''
 +      Here too. Sigh again.
 +
 +      * gawkapi.h: Minor documentation edits.
  
+ 2012-11-27         Arnold D. Robbins     <address@hidden>
+ 
+       * builtin.c (do_fflush): Make fflush() and fflush("") both
+       flush everything. See the comment in the code.
+ 
  2012-10-28         Arnold D. Robbins     <address@hidden>
  
        * Update to bison 2.6.4. Various files regenerated.
diff --cc awkgram.c
index 324ba1e,33f0d6c..54680e7
--- a/awkgram.c
+++ b/awkgram.c
@@@ -4328,12 -4294,10 +4328,11 @@@ struct token 
  #     define  NOT_OLD         0x0100  /* feature not in old awk */
  #     define  NOT_POSIX       0x0200  /* feature not in POSIX */
  #     define  GAWKX           0x0400  /* gawk extension */
- #     define  RESX            0x0800  /* Bell Labs Research extension */
- #     define  BREAK           0x1000  /* break allowed inside */
- #     define  CONTINUE        0x2000  /* continue allowed inside */
+ #     define  BREAK           0x0800  /* break allowed inside */
+ #     define  CONTINUE        0x1000  /* continue allowed inside */
        
        NODE *(*ptr)(int);      /* function that implements this keyword */
 +      NODE *(*ptr2)(int);     /* alternate arbitrary-precision function */
  };
  
  #if 'a' == 0x81 /* it's EBCDIC */
@@@ -4357,87 -4321,81 +4356,87 @@@ tokcompare(const void *l, const void *r
   * Function pointers come from declarations in awk.h.
   */
  
 +#ifdef HAVE_MPFR
 +#define MPF(F) do_mpfr_##F
 +#else
 +#define MPF(F) 0
 +#endif
 +
  static const struct token tokentab[] = {
 -{"BEGIN",     Op_rule,         LEX_BEGIN,     0,              0},
 -{"BEGINFILE", Op_rule,         LEX_BEGINFILE, GAWKX,          0},
 -{"END",               Op_rule,         LEX_END,       0,              0},
 -{"ENDFILE",           Op_rule,         LEX_ENDFILE,   GAWKX,          0},
 +{"BEGIN",     Op_rule,         LEX_BEGIN,     0,              0,      0},
 +{"BEGINFILE", Op_rule,         LEX_BEGINFILE, GAWKX,          0,      0},
 +{"END",               Op_rule,         LEX_END,       0,              0,      
0},
 +{"ENDFILE",           Op_rule,         LEX_ENDFILE,   GAWKX,          0,      
0},
  #ifdef ARRAYDEBUG
 -{"adump",     Op_builtin,    LEX_BUILTIN,     GAWKX|A(1),     do_adump},
 +{"adump",     Op_builtin,    LEX_BUILTIN,     GAWKX|A(1)|A(2),        
do_adump,       0},
  #endif
 -{"and",               Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_and},
 -{"asort",     Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_asort},
 -{"asorti",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_asorti},
 -{"atan2",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(2),   do_atan2},
 -{"bindtextdomain",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2),        
do_bindtextdomain},
 -{"break",     Op_K_break,      LEX_BREAK,     0,              0},
 -{"case",      Op_K_case,       LEX_CASE,      GAWKX,          0},
 -{"close",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1)|A(2),      
do_close},
 -{"compl",     Op_builtin,    LEX_BUILTIN,     GAWKX|A(1),     do_compl},
 -{"continue",  Op_K_continue, LEX_CONTINUE,    0,              0},
 -{"cos",               Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_cos},
 -{"dcgettext", Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_dcgettext},
 -{"dcngettext",        Op_builtin,      LEX_BUILTIN,   
GAWKX|A(1)|A(2)|A(3)|A(4)|A(5), do_dcngettext},
 -{"default",   Op_K_default,    LEX_DEFAULT,   GAWKX,          0},
 -{"delete",    Op_K_delete,     LEX_DELETE,    NOT_OLD,        0},
 -{"do",                Op_K_do,         LEX_DO,        NOT_OLD|BREAK|CONTINUE, 
0},
 -{"else",      Op_K_else,       LEX_ELSE,      0,              0},
 -{"eval",      Op_symbol,       LEX_EVAL,      0,              0},
 -{"exit",      Op_K_exit,       LEX_EXIT,      0,              0},
 -{"exp",               Op_builtin,      LEX_BUILTIN,   A(1),           do_exp},
 -{"extension", Op_builtin,      LEX_BUILTIN,   GAWKX|A(2),     do_ext},
 -{"fflush",    Op_builtin,      LEX_BUILTIN,   A(0)|A(1), do_fflush},
 -{"for",               Op_K_for,        LEX_FOR,       BREAK|CONTINUE, 0},
 -{"func",      Op_func, LEX_FUNCTION,  NOT_POSIX|NOT_OLD,      0},
 -{"function",Op_func, LEX_FUNCTION,    NOT_OLD,        0},
 -{"gensub",    Op_sub_builtin,  LEX_BUILTIN,   GAWKX|A(3)|A(4), 0},
 -{"getline",   Op_K_getline_redir,      LEX_GETLINE,   NOT_OLD,        0},
 -{"gsub",      Op_sub_builtin,  LEX_BUILTIN,   NOT_OLD|A(2)|A(3), 0},
 -{"if",                Op_K_if,         LEX_IF,        0,              0},
 -{"in",                Op_symbol,       LEX_IN,        0,              0},
 -{"include",  Op_symbol,        LEX_INCLUDE,   GAWKX,  0},
 -{"index",     Op_builtin,      LEX_BUILTIN,   A(2),           do_index},
 -{"int",               Op_builtin,      LEX_BUILTIN,   A(1),           do_int},
 -{"isarray",   Op_builtin,      LEX_BUILTIN,   GAWKX|A(1),     do_isarray},
 -{"length",    Op_builtin,      LEX_LENGTH,    A(0)|A(1),      do_length},
 -{"log",               Op_builtin,      LEX_BUILTIN,   A(1),           do_log},
 -{"lshift",    Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_lshift},
 -{"match",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(2)|A(3), do_match},
 -{"mktime",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1),     do_mktime},
 -{"next",      Op_K_next,       LEX_NEXT,      0,              0},
 -{"nextfile",  Op_K_nextfile, LEX_NEXTFILE,    0,              0},
 -{"or",                Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_or},
 -{"patsplit",  Op_builtin,    LEX_BUILTIN,     GAWKX|A(2)|A(3)|A(4), 
do_patsplit},
 -{"print",     Op_K_print,      LEX_PRINT,     0,              0},
 -{"printf",    Op_K_printf,     LEX_PRINTF,    0,              0},
 -{"rand",      Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(0),   do_rand},
 -{"return",    Op_K_return,     LEX_RETURN,    NOT_OLD,        0},
 -{"rshift",    Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_rshift},
 -{"sin",               Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_sin},
 -{"split",     Op_builtin,      LEX_BUILTIN,   A(2)|A(3)|A(4), do_split},
 -{"sprintf",   Op_builtin,      LEX_BUILTIN,   0,              do_sprintf},
 -{"sqrt",      Op_builtin,      LEX_BUILTIN,   A(1),           do_sqrt},
 -{"srand",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(0)|A(1), do_srand},
 +{"and",               Op_builtin,    LEX_BUILTIN,     GAWKX,          do_and, 
MPF(and)},
 +{"asort",     Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_asort,       0},
 +{"asorti",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_asorti,      0},
 +{"atan2",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(2),   do_atan2,       
MPF(atan2)},
 +{"bindtextdomain",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2),        
do_bindtextdomain,      0},
 +{"break",     Op_K_break,      LEX_BREAK,     0,              0,      0},
 +{"case",      Op_K_case,       LEX_CASE,      GAWKX,          0,      0},
 +{"close",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1)|A(2),      
do_close,       0},
 +{"compl",     Op_builtin,    LEX_BUILTIN,     GAWKX|A(1),     do_compl,       
MPF(compl)},
 +{"continue",  Op_K_continue, LEX_CONTINUE,    0,              0,      0},
 +{"cos",               Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_cos, 
MPF(cos)},
 +{"dcgettext", Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_dcgettext,   0},
 +{"dcngettext",        Op_builtin,      LEX_BUILTIN,   
GAWKX|A(1)|A(2)|A(3)|A(4)|A(5), do_dcngettext,  0},
 +{"default",   Op_K_default,    LEX_DEFAULT,   GAWKX,          0,      0},
 +{"delete",    Op_K_delete,     LEX_DELETE,    NOT_OLD,        0,      0},
 +{"do",                Op_K_do,         LEX_DO,        NOT_OLD|BREAK|CONTINUE, 
0,      0},
 +{"else",      Op_K_else,       LEX_ELSE,      0,              0,      0},
 +{"eval",      Op_symbol,       LEX_EVAL,      0,              0,      0},
 +{"exit",      Op_K_exit,       LEX_EXIT,      0,              0,      0},
 +{"exp",               Op_builtin,      LEX_BUILTIN,   A(1),           do_exp, 
MPF(exp)},
- {"fflush",    Op_builtin,      LEX_BUILTIN,   RESX|A(0)|A(1), do_fflush,      
0},
++{"fflush",    Op_builtin,      LEX_BUILTIN,   A(0)|A(1), do_fflush,   0},
 +{"for",               Op_K_for,        LEX_FOR,       BREAK|CONTINUE, 0,      
0},
 +{"func",      Op_func, LEX_FUNCTION,  NOT_POSIX|NOT_OLD,      0,      0},
 +{"function",Op_func, LEX_FUNCTION,    NOT_OLD,        0,      0},
 +{"gensub",    Op_sub_builtin,  LEX_BUILTIN,   GAWKX|A(3)|A(4), 0,     0},
 +{"getline",   Op_K_getline_redir,      LEX_GETLINE,   NOT_OLD,        0,      
0},
 +{"gsub",      Op_sub_builtin,  LEX_BUILTIN,   NOT_OLD|A(2)|A(3), 0,   0},
 +{"if",                Op_K_if,         LEX_IF,        0,              0,      
0},
 +{"in",                Op_symbol,       LEX_IN,        0,              0,      
0},
 +{"include",  Op_symbol,        LEX_INCLUDE,   GAWKX,  0,      0},
 +{"index",     Op_builtin,      LEX_BUILTIN,   A(2),           do_index,       
0},
 +{"int",               Op_builtin,      LEX_BUILTIN,   A(1),           do_int, 
MPF(int)},
 +{"isarray",   Op_builtin,      LEX_BUILTIN,   GAWKX|A(1),     do_isarray,     
0},
 +{"length",    Op_builtin,      LEX_LENGTH,    A(0)|A(1),      do_length,      
0},
 +{"load",      Op_symbol,       LEX_LOAD,      GAWKX,          0,      0},
 +{"log",               Op_builtin,      LEX_BUILTIN,   A(1),           do_log, 
MPF(log)},
 +{"lshift",    Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_lshift,      
MPF(lshift)},
 +{"match",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(2)|A(3), do_match,    
0},
 +{"mktime",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1),     do_mktime,      
0},
 +{"next",      Op_K_next,       LEX_NEXT,      0,              0,      0},
 +{"nextfile",  Op_K_nextfile, LEX_NEXTFILE,    0,              0,      0},
 +{"or",                Op_builtin,    LEX_BUILTIN,     GAWKX,          do_or,  
MPF(or)},
 +{"patsplit",  Op_builtin,    LEX_BUILTIN,     GAWKX|A(2)|A(3)|A(4), 
do_patsplit,      0},
 +{"print",     Op_K_print,      LEX_PRINT,     0,              0,      0},
 +{"printf",    Op_K_printf,     LEX_PRINTF,    0,              0,      0},
 +{"rand",      Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(0),   do_rand,        
MPF(rand)},
 +{"return",    Op_K_return,     LEX_RETURN,    NOT_OLD,        0,      0},
 +{"rshift",    Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_rshift,      
MPF(rhift)},
 +{"sin",               Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_sin, 
MPF(sin)},
 +{"split",     Op_builtin,      LEX_BUILTIN,   A(2)|A(3)|A(4), do_split,       
0},
 +{"sprintf",   Op_builtin,      LEX_BUILTIN,   0,              do_sprintf,     
0},
 +{"sqrt",      Op_builtin,      LEX_BUILTIN,   A(1),           do_sqrt,        
MPF(sqrt)},
 +{"srand",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(0)|A(1), do_srand,    
MPF(srand)},
  #if defined(GAWKDEBUG) || defined(ARRAYDEBUG) /* || ... */
 -{"stopme",    Op_builtin,    LEX_BUILTIN,     GAWKX|A(0),     stopme},
 +{"stopme",    Op_builtin,     LEX_BUILTIN,    GAWKX|A(0),     stopme,         
0},
  #endif
 -{"strftime",  Op_builtin,      LEX_BUILTIN,   GAWKX|A(0)|A(1)|A(2)|A(3), 
do_strftime},
 -{"strtonum",  Op_builtin,    LEX_BUILTIN,     GAWKX|A(1),     do_strtonum},
 -{"sub",               Op_sub_builtin,  LEX_BUILTIN,   NOT_OLD|A(2)|A(3), 0},
 -{"substr",    Op_builtin,      LEX_BUILTIN,   A(2)|A(3),      do_substr},
 -{"switch",    Op_K_switch,     LEX_SWITCH,    GAWKX|BREAK,    0},
 -{"system",    Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_system},
 -{"systime",   Op_builtin,      LEX_BUILTIN,   GAWKX|A(0),     do_systime},
 -{"tolower",   Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_tolower},
 -{"toupper",   Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_toupper},
 -{"while",     Op_K_while,      LEX_WHILE,     BREAK|CONTINUE, 0},
 -{"xor",               Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_xor},
 +{"strftime",  Op_builtin,      LEX_BUILTIN,   GAWKX|A(0)|A(1)|A(2)|A(3), 
do_strftime, 0},
 +{"strtonum",  Op_builtin,    LEX_BUILTIN,     GAWKX|A(1),     do_strtonum, 
MPF(strtonum)},
 +{"sub",               Op_sub_builtin,  LEX_BUILTIN,   NOT_OLD|A(2)|A(3), 0,   
0},
 +{"substr",    Op_builtin,      LEX_BUILTIN,   A(2)|A(3),      do_substr,      
0},
 +{"switch",    Op_K_switch,     LEX_SWITCH,    GAWKX|BREAK,    0,      0},
 +{"system",    Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_system,      
0},
 +{"systime",   Op_builtin,      LEX_BUILTIN,   GAWKX|A(0),     do_systime,     
0},
 +{"tolower",   Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_tolower,     
0},
 +{"toupper",   Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_toupper,     
0},
 +{"while",     Op_K_while,      LEX_WHILE,     BREAK|CONTINUE, 0,      0},
 +{"xor",               Op_builtin,    LEX_BUILTIN,     GAWKX,          do_xor, 
MPF(xor)},
  };
  
  #if MBS_SUPPORT
diff --cc awkgram.y
index e7d44b8,cd1c092..3048cc8
--- a/awkgram.y
+++ b/awkgram.y
@@@ -1795,12 -1786,10 +1795,11 @@@ struct token 
  #     define  NOT_OLD         0x0100  /* feature not in old awk */
  #     define  NOT_POSIX       0x0200  /* feature not in POSIX */
  #     define  GAWKX           0x0400  /* gawk extension */
- #     define  RESX            0x0800  /* Bell Labs Research extension */
- #     define  BREAK           0x1000  /* break allowed inside */
- #     define  CONTINUE        0x2000  /* continue allowed inside */
+ #     define  BREAK           0x0800  /* break allowed inside */
+ #     define  CONTINUE        0x1000  /* continue allowed inside */
        
        NODE *(*ptr)(int);      /* function that implements this keyword */
 +      NODE *(*ptr2)(int);     /* alternate arbitrary-precision function */
  };
  
  #if 'a' == 0x81 /* it's EBCDIC */
@@@ -1824,87 -1813,81 +1823,87 @@@ tokcompare(const void *l, const void *r
   * Function pointers come from declarations in awk.h.
   */
  
 +#ifdef HAVE_MPFR
 +#define MPF(F) do_mpfr_##F
 +#else
 +#define MPF(F) 0
 +#endif
 +
  static const struct token tokentab[] = {
 -{"BEGIN",     Op_rule,         LEX_BEGIN,     0,              0},
 -{"BEGINFILE", Op_rule,         LEX_BEGINFILE, GAWKX,          0},
 -{"END",               Op_rule,         LEX_END,       0,              0},
 -{"ENDFILE",           Op_rule,         LEX_ENDFILE,   GAWKX,          0},
 +{"BEGIN",     Op_rule,         LEX_BEGIN,     0,              0,      0},
 +{"BEGINFILE", Op_rule,         LEX_BEGINFILE, GAWKX,          0,      0},
 +{"END",               Op_rule,         LEX_END,       0,              0,      
0},
 +{"ENDFILE",           Op_rule,         LEX_ENDFILE,   GAWKX,          0,      
0},
  #ifdef ARRAYDEBUG
 -{"adump",     Op_builtin,    LEX_BUILTIN,     GAWKX|A(1),     do_adump},
 +{"adump",     Op_builtin,    LEX_BUILTIN,     GAWKX|A(1)|A(2),        
do_adump,       0},
  #endif
 -{"and",               Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_and},
 -{"asort",     Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_asort},
 -{"asorti",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_asorti},
 -{"atan2",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(2),   do_atan2},
 -{"bindtextdomain",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2),        
do_bindtextdomain},
 -{"break",     Op_K_break,      LEX_BREAK,     0,              0},
 -{"case",      Op_K_case,       LEX_CASE,      GAWKX,          0},
 -{"close",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1)|A(2),      
do_close},
 -{"compl",     Op_builtin,    LEX_BUILTIN,     GAWKX|A(1),     do_compl},
 -{"continue",  Op_K_continue, LEX_CONTINUE,    0,              0},
 -{"cos",               Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_cos},
 -{"dcgettext", Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_dcgettext},
 -{"dcngettext",        Op_builtin,      LEX_BUILTIN,   
GAWKX|A(1)|A(2)|A(3)|A(4)|A(5), do_dcngettext},
 -{"default",   Op_K_default,    LEX_DEFAULT,   GAWKX,          0},
 -{"delete",    Op_K_delete,     LEX_DELETE,    NOT_OLD,        0},
 -{"do",                Op_K_do,         LEX_DO,        NOT_OLD|BREAK|CONTINUE, 
0},
 -{"else",      Op_K_else,       LEX_ELSE,      0,              0},
 -{"eval",      Op_symbol,       LEX_EVAL,      0,              0},
 -{"exit",      Op_K_exit,       LEX_EXIT,      0,              0},
 -{"exp",               Op_builtin,      LEX_BUILTIN,   A(1),           do_exp},
 -{"extension", Op_builtin,      LEX_BUILTIN,   GAWKX|A(2),     do_ext},
 -{"fflush",    Op_builtin,      LEX_BUILTIN,   A(0)|A(1), do_fflush},
 -{"for",               Op_K_for,        LEX_FOR,       BREAK|CONTINUE, 0},
 -{"func",      Op_func, LEX_FUNCTION,  NOT_POSIX|NOT_OLD,      0},
 -{"function",Op_func, LEX_FUNCTION,    NOT_OLD,        0},
 -{"gensub",    Op_sub_builtin,  LEX_BUILTIN,   GAWKX|A(3)|A(4), 0},
 -{"getline",   Op_K_getline_redir,      LEX_GETLINE,   NOT_OLD,        0},
 -{"gsub",      Op_sub_builtin,  LEX_BUILTIN,   NOT_OLD|A(2)|A(3), 0},
 -{"if",                Op_K_if,         LEX_IF,        0,              0},
 -{"in",                Op_symbol,       LEX_IN,        0,              0},
 -{"include",  Op_symbol,        LEX_INCLUDE,   GAWKX,  0},
 -{"index",     Op_builtin,      LEX_BUILTIN,   A(2),           do_index},
 -{"int",               Op_builtin,      LEX_BUILTIN,   A(1),           do_int},
 -{"isarray",   Op_builtin,      LEX_BUILTIN,   GAWKX|A(1),     do_isarray},
 -{"length",    Op_builtin,      LEX_LENGTH,    A(0)|A(1),      do_length},
 -{"log",               Op_builtin,      LEX_BUILTIN,   A(1),           do_log},
 -{"lshift",    Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_lshift},
 -{"match",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(2)|A(3), do_match},
 -{"mktime",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1),     do_mktime},
 -{"next",      Op_K_next,       LEX_NEXT,      0,              0},
 -{"nextfile",  Op_K_nextfile, LEX_NEXTFILE,    0,              0},
 -{"or",                Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_or},
 -{"patsplit",  Op_builtin,    LEX_BUILTIN,     GAWKX|A(2)|A(3)|A(4), 
do_patsplit},
 -{"print",     Op_K_print,      LEX_PRINT,     0,              0},
 -{"printf",    Op_K_printf,     LEX_PRINTF,    0,              0},
 -{"rand",      Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(0),   do_rand},
 -{"return",    Op_K_return,     LEX_RETURN,    NOT_OLD,        0},
 -{"rshift",    Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_rshift},
 -{"sin",               Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_sin},
 -{"split",     Op_builtin,      LEX_BUILTIN,   A(2)|A(3)|A(4), do_split},
 -{"sprintf",   Op_builtin,      LEX_BUILTIN,   0,              do_sprintf},
 -{"sqrt",      Op_builtin,      LEX_BUILTIN,   A(1),           do_sqrt},
 -{"srand",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(0)|A(1), do_srand},
 +{"and",               Op_builtin,    LEX_BUILTIN,     GAWKX,          do_and, 
MPF(and)},
 +{"asort",     Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_asort,       0},
 +{"asorti",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_asorti,      0},
 +{"atan2",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(2),   do_atan2,       
MPF(atan2)},
 +{"bindtextdomain",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2),        
do_bindtextdomain,      0},
 +{"break",     Op_K_break,      LEX_BREAK,     0,              0,      0},
 +{"case",      Op_K_case,       LEX_CASE,      GAWKX,          0,      0},
 +{"close",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1)|A(2),      
do_close,       0},
 +{"compl",     Op_builtin,    LEX_BUILTIN,     GAWKX|A(1),     do_compl,       
MPF(compl)},
 +{"continue",  Op_K_continue, LEX_CONTINUE,    0,              0,      0},
 +{"cos",               Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_cos, 
MPF(cos)},
 +{"dcgettext", Op_builtin,      LEX_BUILTIN,   GAWKX|A(1)|A(2)|A(3),   
do_dcgettext,   0},
 +{"dcngettext",        Op_builtin,      LEX_BUILTIN,   
GAWKX|A(1)|A(2)|A(3)|A(4)|A(5), do_dcngettext,  0},
 +{"default",   Op_K_default,    LEX_DEFAULT,   GAWKX,          0,      0},
 +{"delete",    Op_K_delete,     LEX_DELETE,    NOT_OLD,        0,      0},
 +{"do",                Op_K_do,         LEX_DO,        NOT_OLD|BREAK|CONTINUE, 
0,      0},
 +{"else",      Op_K_else,       LEX_ELSE,      0,              0,      0},
 +{"eval",      Op_symbol,       LEX_EVAL,      0,              0,      0},
 +{"exit",      Op_K_exit,       LEX_EXIT,      0,              0,      0},
 +{"exp",               Op_builtin,      LEX_BUILTIN,   A(1),           do_exp, 
MPF(exp)},
- {"fflush",    Op_builtin,      LEX_BUILTIN,   RESX|A(0)|A(1), do_fflush,      
0},
++{"fflush",    Op_builtin,      LEX_BUILTIN,   A(0)|A(1), do_fflush,   0},
 +{"for",               Op_K_for,        LEX_FOR,       BREAK|CONTINUE, 0,      
0},
 +{"func",      Op_func, LEX_FUNCTION,  NOT_POSIX|NOT_OLD,      0,      0},
 +{"function",Op_func, LEX_FUNCTION,    NOT_OLD,        0,      0},
 +{"gensub",    Op_sub_builtin,  LEX_BUILTIN,   GAWKX|A(3)|A(4), 0,     0},
 +{"getline",   Op_K_getline_redir,      LEX_GETLINE,   NOT_OLD,        0,      
0},
 +{"gsub",      Op_sub_builtin,  LEX_BUILTIN,   NOT_OLD|A(2)|A(3), 0,   0},
 +{"if",                Op_K_if,         LEX_IF,        0,              0,      
0},
 +{"in",                Op_symbol,       LEX_IN,        0,              0,      
0},
 +{"include",  Op_symbol,        LEX_INCLUDE,   GAWKX,  0,      0},
 +{"index",     Op_builtin,      LEX_BUILTIN,   A(2),           do_index,       
0},
 +{"int",               Op_builtin,      LEX_BUILTIN,   A(1),           do_int, 
MPF(int)},
 +{"isarray",   Op_builtin,      LEX_BUILTIN,   GAWKX|A(1),     do_isarray,     
0},
 +{"length",    Op_builtin,      LEX_LENGTH,    A(0)|A(1),      do_length,      
0},
 +{"load",      Op_symbol,       LEX_LOAD,      GAWKX,          0,      0},
 +{"log",               Op_builtin,      LEX_BUILTIN,   A(1),           do_log, 
MPF(log)},
 +{"lshift",    Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_lshift,      
MPF(lshift)},
 +{"match",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(2)|A(3), do_match,    
0},
 +{"mktime",    Op_builtin,      LEX_BUILTIN,   GAWKX|A(1),     do_mktime,      
0},
 +{"next",      Op_K_next,       LEX_NEXT,      0,              0,      0},
 +{"nextfile",  Op_K_nextfile, LEX_NEXTFILE,    0,              0,      0},
 +{"or",                Op_builtin,    LEX_BUILTIN,     GAWKX,          do_or,  
MPF(or)},
 +{"patsplit",  Op_builtin,    LEX_BUILTIN,     GAWKX|A(2)|A(3)|A(4), 
do_patsplit,      0},
 +{"print",     Op_K_print,      LEX_PRINT,     0,              0,      0},
 +{"printf",    Op_K_printf,     LEX_PRINTF,    0,              0,      0},
 +{"rand",      Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(0),   do_rand,        
MPF(rand)},
 +{"return",    Op_K_return,     LEX_RETURN,    NOT_OLD,        0,      0},
 +{"rshift",    Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_rshift,      
MPF(rhift)},
 +{"sin",               Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_sin, 
MPF(sin)},
 +{"split",     Op_builtin,      LEX_BUILTIN,   A(2)|A(3)|A(4), do_split,       
0},
 +{"sprintf",   Op_builtin,      LEX_BUILTIN,   0,              do_sprintf,     
0},
 +{"sqrt",      Op_builtin,      LEX_BUILTIN,   A(1),           do_sqrt,        
MPF(sqrt)},
 +{"srand",     Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(0)|A(1), do_srand,    
MPF(srand)},
  #if defined(GAWKDEBUG) || defined(ARRAYDEBUG) /* || ... */
 -{"stopme",    Op_builtin,    LEX_BUILTIN,     GAWKX|A(0),     stopme},
 +{"stopme",    Op_builtin,     LEX_BUILTIN,    GAWKX|A(0),     stopme,         
0},
  #endif
 -{"strftime",  Op_builtin,      LEX_BUILTIN,   GAWKX|A(0)|A(1)|A(2)|A(3), 
do_strftime},
 -{"strtonum",  Op_builtin,    LEX_BUILTIN,     GAWKX|A(1),     do_strtonum},
 -{"sub",               Op_sub_builtin,  LEX_BUILTIN,   NOT_OLD|A(2)|A(3), 0},
 -{"substr",    Op_builtin,      LEX_BUILTIN,   A(2)|A(3),      do_substr},
 -{"switch",    Op_K_switch,     LEX_SWITCH,    GAWKX|BREAK,    0},
 -{"system",    Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_system},
 -{"systime",   Op_builtin,      LEX_BUILTIN,   GAWKX|A(0),     do_systime},
 -{"tolower",   Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_tolower},
 -{"toupper",   Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_toupper},
 -{"while",     Op_K_while,      LEX_WHILE,     BREAK|CONTINUE, 0},
 -{"xor",               Op_builtin,    LEX_BUILTIN,     GAWKX|A(2),     do_xor},
 +{"strftime",  Op_builtin,      LEX_BUILTIN,   GAWKX|A(0)|A(1)|A(2)|A(3), 
do_strftime, 0},
 +{"strtonum",  Op_builtin,    LEX_BUILTIN,     GAWKX|A(1),     do_strtonum, 
MPF(strtonum)},
 +{"sub",               Op_sub_builtin,  LEX_BUILTIN,   NOT_OLD|A(2)|A(3), 0,   
0},
 +{"substr",    Op_builtin,      LEX_BUILTIN,   A(2)|A(3),      do_substr,      
0},
 +{"switch",    Op_K_switch,     LEX_SWITCH,    GAWKX|BREAK,    0,      0},
 +{"system",    Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_system,      
0},
 +{"systime",   Op_builtin,      LEX_BUILTIN,   GAWKX|A(0),     do_systime,     
0},
 +{"tolower",   Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_tolower,     
0},
 +{"toupper",   Op_builtin,      LEX_BUILTIN,   NOT_OLD|A(1),   do_toupper,     
0},
 +{"while",     Op_K_while,      LEX_WHILE,     BREAK|CONTINUE, 0,      0},
 +{"xor",               Op_builtin,    LEX_BUILTIN,     GAWKX,          do_xor, 
MPF(xor)},
  };
  
  #if MBS_SUPPORT
diff --cc doc/ChangeLog
index c3be84e,2dbbd08..402757f
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@@ -1,104 -1,13 +1,110 @@@
+ 2012-12-07         Arnold D. Robbins     <address@hidden>
+ 
+       * gawk.texi (I/O Functions): Document that fflush() is now part
+       of POSIX. Fix in a few other places as well.
+       * awkcard.in: Update for fflush().
+ 
 +2012-12-03         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: Fix all @tex ... @end tex tables to use a different
 +      control character than @ so that the new makeinfo won't
 +      complain about them. Thanks to Karl Berry for the guidance.
 +
 +2012-12-01         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: API chapter. Sync with gawkapi.h
 +
  2012-11-27         Arnold D. Robbins     <address@hidden>
  
 -      * gawk.texi (I/O Functions): Document new behavior for fflush().
 +      * gawk.texi: API chapter. Change command for making shared libs
 +      to use gcc, not ld. Thanks to Nelson Beebe.
 +      (I/O Functions): Document new behavior for fflush().
        * gawk.1: Update for fflush().
 +      * awkcard.in: Ditto. And some general cleanup.
 +
 +2012-11-24         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi (Future Extensions): Point to TODO file in the
 +      gawk dist.
 +      (Implementation Limitations): New node, from old LIMITATIONS file.
 +
 +2012-11-22         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: In API chapter, document the full list of include
 +      files that need to be included.
 +
 +2012-11-21         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: In API chapter, update behavior of stat function
 +      in the filefuncs extension.  Update the code example and prose
 +      to match the current code.
 +
 +2012-11-19         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: In API chapter, update behavior of readdir extension.
 +
 +2012-11-16         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: Minor edits in API chapter.
 +      Thanks to Nelson Beebe.
 +
 +2012-11-14         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: Minor edits in API chapter.
 +      Thanks to Andrew Schorr.
 +
 +2012-11-06         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: Rearrange chapter order and separate into parts
 +      using @part for TeX.  Fix capitalization in @caption text.
 +      (Variable Scope): Document that arrays can be local also.
 +      Thanks to Denis Shirokov <address@hidden>, for pointing out
 +      the lack.
 +
 +2012-11-05         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: Semi-rationalize invocations of @image.
 +
 +2012-11-04         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: New chapter on extension API.
 +      * api-figure1.pdf, api-figure2.pdf, api-figure3.pdf,
 +      general-program.pdf, process-flow.pdf: New files. Again.
 +      * Makefile.am (EXTRA_DIST): Update. Again.
 +
 +2012-11-03         Arnold D. Robbins     <address@hidden>
 +
 +      * api-figure1.pdf, api-figure2.pdf, api-figure3.pdf: Removed.
 +      * api-figure1.txt, api-figure2.txt, api-figure3.txt,
 +      api-figure1.png, api-figure2.png, api-figure3.png: New files.
 +      * Makefile.am (EXTRA_DIST): Update.
 +
 +      * gawk.texi: Fix up images.
 +      * general-program.pdf, process-flow.pdf: Removed.
 +      * general-program.png, process-flow.png,
 +      general-program.txt, process-flow.txt: New files.
 +      * Makefile.am (EXTRA_DIST): Update.
 +
 +2012-10-31         Arnold D. Robbins     <address@hidden>
 +
 +      * api-figure1.eps, api-figure1.fig, api-figure1.pdf,
 +      api-figure2.eps, api-figure2.fig, api-figure2.pdf,
 +      api-figure3.eps, api-figure3.fig, api-figure3.pdf: New files.
 +      * Makefile.am (EXTRA_DIST): Add the above.
 +
 +2012-10-28         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi (Glossary): Document cookie, some cleanup of
 +      notes at the end.
 +
 +2012-10-19         Arnold D. Robbins     <address@hidden>
 +
 +      * gawk.texi: More doc on SYMTAB.
 +
 +2012-10-05         Arnold D. Robbins     <address@hidden>
 +
 +      * Makefile.am (LN, install-data-hook, uninstall-hook): Removed. No
 +      longer needed since dgawk and pgawk are gone.
  
  2012-10-13         Arnold D. Robbins     <address@hidden>
  
diff --cc doc/gawk.info
index c339dcb,e23618b..f28ba41
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@@ -29108,28 -24794,25 +29109,28 @@@ Inde
  * --field-separator option:              Options.             (line  21)
  * --file option:                         Options.             (line  25)
  * --gen-pot option <1>:                  String Extraction.   (line   6)
 -* --gen-pot option:                      Options.             (line 138)
 -* --help option:                         Options.             (line 145)
 -* --L option:                            Options.             (line 248)
 -* --lint option <1>:                     Options.             (line 150)
 +* --gen-pot option:                      Options.             (line 161)
 +* --help option:                         Options.             (line 168)
 +* --include option:                      Options.             (line  32)
 +* --L option:                            Options.             (line 288)
 +* --lint option <1>:                     Options.             (line 182)
  * --lint option:                         Command Line.        (line  20)
 -* --lint-old option:                     Options.             (line 248)
 +* --lint-old option:                     Options.             (line 288)
 +* --load option:                         Options.             (line 173)
  * --non-decimal-data option <1>:         Nondecimal Data.     (line   6)
 -* --non-decimal-data option:             Options.             (line 169)
 +* --non-decimal-data option:             Options.             (line 207)
  * --non-decimal-data option, strtonum() function and: Nondecimal Data.
                                                                (line  36)
 -* --optimize option:                     Options.             (line 182)
 -* --posix option:                        Options.             (line 202)
 -* --posix option, --traditional option and: Options.          (line 221)
 -* --profile option <1>:                  Profiling.           (line  15)
 -* --profile option:                      Options.             (line 189)
 -* --re-interval option:                  Options.             (line 227)
 -* --sandbox option:                      Options.             (line 239)
 +* --optimize option:                     Options.             (line 228)
 +* --posix option:                        Options.             (line 247)
 +* --posix option, --traditional option and: Options.          (line 266)
 +* --pretty-print option:                 Options.             (line 220)
 +* --profile option <1>:                  Profiling.           (line  12)
 +* --profile option:                      Options.             (line 235)
 +* --re-interval option:                  Options.             (line 272)
 +* --sandbox option:                      Options.             (line 279)
  * --sandbox option, disabling system() function: I/O Functions.
-                                                               (line  93)
+                                                               (line  94)
  * --sandbox option, input redirection with getline: Getline.  (line  19)
  * --sandbox option, output redirection with print, printf: Redirection.
                                                                (line   6)
@@@ -29298,7 -24978,8 +29299,7 @@@
  * Ada programming language:              Glossary.            (line  20)
  * adding, features to gawk:              Adding Code.         (line   6)
  * adding, fields:                        Changing Fields.     (line  53)
- * advanced features, buffering:          I/O Functions.       (line 106)
 -* adding, functions to gawk:             Dynamic Extensions.  (line  10)
+ * advanced features, buffering:          I/O Functions.       (line 107)
  * advanced features, close() function:   Close Files And Pipes.
                                                                (line 131)
  * advanced features, constants, values of: Nondecimal-numbers.
@@@ -30406,10 -26091,9 +30407,9 @@@
                                                                (line 139)
  * gawk, ERRNO variable in:               Getline.             (line  19)
  * gawk, escape sequences:                Escape Sequences.    (line 125)
 -* gawk, extensions, disabling:           Options.             (line 202)
 +* gawk, extensions, disabling:           Options.             (line 247)
  * gawk, features, adding:                Adding Code.         (line   6)
  * gawk, features, advanced:              Advanced Features.   (line   6)
- * gawk, fflush() function in:            I/O Functions.       (line  44)
  * gawk, field separators and:            User-modified.       (line  77)
  * gawk, FIELDWIDTHS variable in <1>:     User-modified.       (line  35)
  * gawk, FIELDWIDTHS variable in:         Constant Size.       (line  22)
@@@ -30635,13 -26317,42 +30635,13 @@@
  * insomnia, cure for:                    Alarm Program.       (line   6)
  * installation, VMS:                     VMS Installation.    (line   6)
  * installing gawk:                       Installation.        (line   6)
 -* INT signal (MS-Windows):               Profiling.           (line 207)
 +* INT signal (MS-Windows):               Profiling.           (line 206)
  * int() function:                        Numeric Functions.   (line  23)
 -* integers:                              Basic Data Typing.   (line  21)
 -* integers, unsigned:                    Basic Data Typing.   (line  30)
 +* integer, arbitrary precision:          Arbitrary Precision Integers.
 +                                                              (line   6)
 +* integers:                              General Arithmetic.  (line   6)
 +* integers, unsigned:                    General Arithmetic.  (line  15)
- * interacting with other programs:       I/O Functions.       (line  71)
+ * interacting with other programs:       I/O Functions.       (line  72)
 -* internal constant, INVALID_HANDLE:     Internals.           (line 160)
 -* internal function, assoc_clear():      Internals.           (line  75)
 -* internal function, assoc_lookup():     Internals.           (line  79)
 -* internal function, dupnode():          Internals.           (line  96)
 -* internal function, force_number():     Internals.           (line  27)
 -* internal function, force_string():     Internals.           (line  32)
 -* internal function, force_wstring():    Internals.           (line  37)
 -* internal function, get_actual_argument(): Internals.        (line 125)
 -* internal function, get_argument():     Internals.           (line 120)
 -* internal function, get_curfunc_arg_count(): Internals.      (line  42)
 -* internal function, iop_alloc():        Internals.           (line 160)
 -* internal function, make_builtin():     Internals.           (line 106)
 -* internal function, make_number():      Internals.           (line  91)
 -* internal function, make_string():      Internals.           (line  86)
 -* internal function, register_deferred_variable(): Internals. (line 149)
 -* internal function, register_open_hook(): Internals.         (line 160)
 -* internal function, unref():            Internals.           (line 101)
 -* internal function, update_ERRNO():     Internals.           (line 139)
 -* internal function, update_ERRNO_saved(): Internals.         (line 144)
 -* internal macro, get_array_argument():  Internals.           (line 136)
 -* internal macro, get_scalar_argument(): Internals.           (line 133)
 -* internal structure, IOBUF:             Internals.           (line 160)
 -* internal type, AWKNUM:                 Internals.           (line  19)
 -* internal type, NODE:                   Internals.           (line  23)
 -* internal variable, nargs:              Internals.           (line  49)
 -* internal variable, stlen:              Internals.           (line  53)
 -* internal variable, stptr:              Internals.           (line  53)
 -* internal variable, type:               Internals.           (line  66)
 -* internal variable, vname:              Internals.           (line  71)
 -* internal variable, wstlen:             Internals.           (line  61)
 -* internal variable, wstptr:             Internals.           (line  61)
  * internationalization <1>:              I18N and L10N.       (line   6)
  * internationalization:                  I18N Functions.      (line   6)
  * internationalization, localization <1>: Internationalization.
@@@ -31522,13 -27242,12 +31522,13 @@@
  * substr() function:                     String Functions.    (line 481)
  * Sumner, Andrew:                        Other Versions.      (line  55)
  * switch statement:                      Switch Statement.    (line   6)
 +* SYMTAB array:                          Auto-set.            (line 254)
  * syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops.
                                                                (line 148)
- * system() function:                     I/O Functions.       (line  71)
+ * system() function:                     I/O Functions.       (line  72)
  * systime() function (gawk):             Time Functions.      (line  64)
 -* t debugger command (alias for tbreak): Breakpoint Control.  (line  89)
 -* tbreak debugger command:               Breakpoint Control.  (line  89)
 +* t debugger command (alias for tbreak): Breakpoint Control.  (line  90)
 +* tbreak debugger command:               Breakpoint Control.  (line  90)
  * Tcl:                                   Library Names.       (line  57)
  * TCP/IP:                                TCP/IP Networking.   (line   6)
  * TCP/IP, support for:                   Special Network.     (line   6)
@@@ -31610,9 -27326,9 +31610,9 @@@
                                                                (line  38)
  * troubleshooting, string concatenation: Concatenation.       (line  27)
  * troubleshooting, substr() function:    String Functions.    (line 499)
- * troubleshooting, system() function:    I/O Functions.       (line  93)
+ * troubleshooting, system() function:    I/O Functions.       (line  94)
  * troubleshooting, typographical errors, global variables: Options.
 -                                                              (line  98)
 +                                                              (line 112)
  * true, logical:                         Truth Values.        (line   6)
  * Trueman, David <1>:                    Contributors.        (line  31)
  * Trueman, David <2>:                    Acknowledgments.     (line  47)
@@@ -31773,516 -27497,418 +31773,516 @@@
  
  Tag Table:
  Node: Top1352
 -Node: Foreword30282
 -Node: Preface34627
 -Ref: Preface-Footnote-137680
 -Ref: Preface-Footnote-237786
 -Node: History38018
 -Node: Names40409
 -Ref: Names-Footnote-141886
 -Node: This Manual41958
 -Ref: This Manual-Footnote-146905
 -Node: Conventions47005
 -Node: Manual History49139
 -Ref: Manual History-Footnote-152409
 -Ref: Manual History-Footnote-252450
 -Node: How To Contribute52524
 -Node: Acknowledgments53668
 -Node: Getting Started57999
 -Node: Running gawk60378
 -Node: One-shot61564
 -Node: Read Terminal62789
 -Ref: Read Terminal-Footnote-164439
 -Ref: Read Terminal-Footnote-264715
 -Node: Long64886
 -Node: Executable Scripts66262
 -Ref: Executable Scripts-Footnote-168131
 -Ref: Executable Scripts-Footnote-268233
 -Node: Comments68780
 -Node: Quoting71247
 -Node: DOS Quoting75870
 -Node: Sample Data Files76545
 -Node: Very Simple79577
 -Node: Two Rules84176
 -Node: More Complex86323
 -Ref: More Complex-Footnote-189253
 -Node: Statements/Lines89338
 -Ref: Statements/Lines-Footnote-193800
 -Node: Other Features94065
 -Node: When94993
 -Node: Invoking Gawk97140
 -Node: Command Line98525
 -Node: Options99308
 -Ref: Options-Footnote-1112852
 -Node: Other Arguments112877
 -Node: Naming Standard Input115535
 -Node: Environment Variables116629
 -Node: AWKPATH Variable117073
 -Ref: AWKPATH Variable-Footnote-1119670
 -Node: Other Environment Variables119930
 -Node: Exit Status122270
 -Node: Include Files122945
 -Node: Obsolete126430
 -Node: Undocumented127116
 -Node: Regexp127357
 -Node: Regexp Usage128746
 -Node: Escape Sequences130772
 -Node: Regexp Operators136535
 -Ref: Regexp Operators-Footnote-1143915
 -Ref: Regexp Operators-Footnote-2144062
 -Node: Bracket Expressions144160
 -Ref: table-char-classes146050
 -Node: GNU Regexp Operators148573
 -Node: Case-sensitivity152296
 -Ref: Case-sensitivity-Footnote-1155264
 -Ref: Case-sensitivity-Footnote-2155499
 -Node: Leftmost Longest155607
 -Node: Computed Regexps156808
 -Node: Reading Files160218
 -Node: Records162159
 -Ref: Records-Footnote-1171083
 -Node: Fields171120
 -Ref: Fields-Footnote-1174153
 -Node: Nonconstant Fields174239
 -Node: Changing Fields176441
 -Node: Field Separators182422
 -Node: Default Field Splitting185051
 -Node: Regexp Field Splitting186168
 -Node: Single Character Fields189510
 -Node: Command Line Field Separator190569
 -Node: Field Splitting Summary194010
 -Ref: Field Splitting Summary-Footnote-1197202
 -Node: Constant Size197303
 -Node: Splitting By Content201887
 -Ref: Splitting By Content-Footnote-1205613
 -Node: Multiple Line205653
 -Ref: Multiple Line-Footnote-1211500
 -Node: Getline211679
 -Node: Plain Getline213907
 -Node: Getline/Variable215996
 -Node: Getline/File217137
 -Node: Getline/Variable/File218459
 -Ref: Getline/Variable/File-Footnote-1220058
 -Node: Getline/Pipe220145
 -Node: Getline/Variable/Pipe222705
 -Node: Getline/Coprocess223812
 -Node: Getline/Variable/Coprocess225055
 -Node: Getline Notes225769
 -Node: Getline Summary228556
 -Ref: table-getline-variants228899
 -Node: Command line directories229755
 -Node: Printing230380
 -Node: Print232011
 -Node: Print Examples233348
 -Node: Output Separators236132
 -Node: OFMT237892
 -Node: Printf239250
 -Node: Basic Printf240156
 -Node: Control Letters241695
 -Node: Format Modifiers245507
 -Node: Printf Examples251516
 -Node: Redirection254231
 -Node: Special Files261215
 -Node: Special FD261748
 -Ref: Special FD-Footnote-1265373
 -Node: Special Network265447
 -Node: Special Caveats266297
 -Node: Close Files And Pipes267093
 -Ref: Close Files And Pipes-Footnote-1274116
 -Ref: Close Files And Pipes-Footnote-2274264
 -Node: Expressions274414
 -Node: Values275546
 -Node: Constants276222
 -Node: Scalar Constants276902
 -Ref: Scalar Constants-Footnote-1277761
 -Node: Nondecimal-numbers277943
 -Node: Regexp Constants281002
 -Node: Using Constant Regexps281477
 -Node: Variables284532
 -Node: Using Variables285187
 -Node: Assignment Options286911
 -Node: Conversion288783
 -Ref: table-locale-affects294159
 -Ref: Conversion-Footnote-1294783
 -Node: All Operators294892
 -Node: Arithmetic Ops295522
 -Node: Concatenation298027
 -Ref: Concatenation-Footnote-1300820
 -Node: Assignment Ops300940
 -Ref: table-assign-ops305928
 -Node: Increment Ops307336
 -Node: Truth Values and Conditions310806
 -Node: Truth Values311889
 -Node: Typing and Comparison312938
 -Node: Variable Typing313727
 -Ref: Variable Typing-Footnote-1317624
 -Node: Comparison Operators317746
 -Ref: table-relational-ops318156
 -Node: POSIX String Comparison321705
 -Ref: POSIX String Comparison-Footnote-1322661
 -Node: Boolean Ops322799
 -Ref: Boolean Ops-Footnote-1326877
 -Node: Conditional Exp326968
 -Node: Function Calls328700
 -Node: Precedence332294
 -Node: Locales335963
 -Node: Patterns and Actions337052
 -Node: Pattern Overview338106
 -Node: Regexp Patterns339775
 -Node: Expression Patterns340318
 -Node: Ranges344003
 -Node: BEGIN/END346969
 -Node: Using BEGIN/END347731
 -Ref: Using BEGIN/END-Footnote-1350462
 -Node: I/O And BEGIN/END350568
 -Node: BEGINFILE/ENDFILE352850
 -Node: Empty355743
 -Node: Using Shell Variables356059
 -Node: Action Overview358344
 -Node: Statements360701
 -Node: If Statement362555
 -Node: While Statement364054
 -Node: Do Statement366098
 -Node: For Statement367254
 -Node: Switch Statement370406
 -Node: Break Statement372503
 -Node: Continue Statement374493
 -Node: Next Statement376286
 -Node: Nextfile Statement378676
 -Node: Exit Statement381317
 -Node: Built-in Variables383733
 -Node: User-modified384828
 -Ref: User-modified-Footnote-1392854
 -Node: Auto-set392916
 -Ref: Auto-set-Footnote-1402207
 -Node: ARGC and ARGV402412
 -Node: Arrays406263
 -Node: Array Basics407768
 -Node: Array Intro408594
 -Node: Reference to Elements412912
 -Node: Assigning Elements415182
 -Node: Array Example415673
 -Node: Scanning an Array417405
 -Node: Controlling Scanning419719
 -Ref: Controlling Scanning-Footnote-1424652
 -Node: Delete424968
 -Ref: Delete-Footnote-1427733
 -Node: Numeric Array Subscripts427790
 -Node: Uninitialized Subscripts429973
 -Node: Multi-dimensional431601
 -Node: Multi-scanning434695
 -Node: Arrays of Arrays436286
 -Node: Functions440931
 -Node: Built-in441753
 -Node: Calling Built-in442831
 -Node: Numeric Functions444819
 -Ref: Numeric Functions-Footnote-1448651
 -Ref: Numeric Functions-Footnote-2449008
 -Ref: Numeric Functions-Footnote-3449056
 -Node: String Functions449325
 -Ref: String Functions-Footnote-1472822
 -Ref: String Functions-Footnote-2472951
 -Ref: String Functions-Footnote-3473199
 -Node: Gory Details473286
 -Ref: table-sub-escapes474965
 -Ref: table-sub-posix-92476319
 -Ref: table-sub-proposed477662
 -Ref: table-posix-sub479012
 -Ref: table-gensub-escapes480558
 -Ref: Gory Details-Footnote-1481765
 -Ref: Gory Details-Footnote-2481816
 -Node: I/O Functions481967
 -Ref: I/O Functions-Footnote-1489072
 -Node: Time Functions489219
 -Ref: Time Functions-Footnote-1500111
 -Ref: Time Functions-Footnote-2500179
 -Ref: Time Functions-Footnote-3500337
 -Ref: Time Functions-Footnote-4500448
 -Ref: Time Functions-Footnote-5500560
 -Ref: Time Functions-Footnote-6500787
 -Node: Bitwise Functions501053
 -Ref: table-bitwise-ops501611
 -Ref: Bitwise Functions-Footnote-1505771
 -Node: Type Functions505955
 -Node: I18N Functions506425
 -Node: User-defined508052
 -Node: Definition Syntax508856
 -Ref: Definition Syntax-Footnote-1513766
 -Node: Function Example513835
 -Node: Function Caveats516429
 -Node: Calling A Function516850
 -Node: Variable Scope517965
 -Node: Pass By Value/Reference519940
 -Node: Return Statement523380
 -Node: Dynamic Typing526361
 -Node: Indirect Calls527096
 -Node: Internationalization536781
 -Node: I18N and L10N538207
 -Node: Explaining gettext538893
 -Ref: Explaining gettext-Footnote-1543959
 -Ref: Explaining gettext-Footnote-2544143
 -Node: Programmer i18n544308
 -Node: Translator i18n548508
 -Node: String Extraction549301
 -Ref: String Extraction-Footnote-1550262
 -Node: Printf Ordering550348
 -Ref: Printf Ordering-Footnote-1553132
 -Node: I18N Portability553196
 -Ref: I18N Portability-Footnote-1555645
 -Node: I18N Example555708
 -Ref: I18N Example-Footnote-1558343
 -Node: Gawk I18N558415
 -Node: Advanced Features559032
 -Node: Nondecimal Data560545
 -Node: Array Sorting562128
 -Node: Controlling Array Traversal562825
 -Node: Array Sorting Functions571062
 -Ref: Array Sorting Functions-Footnote-1574736
 -Ref: Array Sorting Functions-Footnote-2574829
 -Node: Two-way I/O575023
 -Ref: Two-way I/O-Footnote-1580455
 -Node: TCP/IP Networking580525
 -Node: Profiling583369
 -Node: Library Functions590843
 -Ref: Library Functions-Footnote-1593850
 -Node: Library Names594021
 -Ref: Library Names-Footnote-1597492
 -Ref: Library Names-Footnote-2597712
 -Node: General Functions597798
 -Node: Strtonum Function598751
 -Node: Assert Function601681
 -Node: Round Function605007
 -Node: Cliff Random Function606550
 -Node: Ordinal Functions607566
 -Ref: Ordinal Functions-Footnote-1610636
 -Ref: Ordinal Functions-Footnote-2610888
 -Node: Join Function611097
 -Ref: Join Function-Footnote-1612868
 -Node: Gettimeofday Function613068
 -Node: Data File Management616783
 -Node: Filetrans Function617415
 -Node: Rewind Function621554
 -Node: File Checking622941
 -Node: Empty Files624035
 -Node: Ignoring Assigns626265
 -Node: Getopt Function627818
 -Ref: Getopt Function-Footnote-1639122
 -Node: Passwd Functions639325
 -Ref: Passwd Functions-Footnote-1648300
 -Node: Group Functions648388
 -Node: Walking Arrays656472
 -Node: Sample Programs658041
 -Node: Running Examples658706
 -Node: Clones659434
 -Node: Cut Program660658
 -Node: Egrep Program670503
 -Ref: Egrep Program-Footnote-1678276
 -Node: Id Program678386
 -Node: Split Program682002
 -Ref: Split Program-Footnote-1685521
 -Node: Tee Program685649
 -Node: Uniq Program688452
 -Node: Wc Program695881
 -Ref: Wc Program-Footnote-1700147
 -Ref: Wc Program-Footnote-2700347
 -Node: Miscellaneous Programs700439
 -Node: Dupword Program701627
 -Node: Alarm Program703658
 -Node: Translate Program708407
 -Ref: Translate Program-Footnote-1712794
 -Ref: Translate Program-Footnote-2713022
 -Node: Labels Program713156
 -Ref: Labels Program-Footnote-1716527
 -Node: Word Sorting716611
 -Node: History Sorting720495
 -Node: Extract Program722334
 -Ref: Extract Program-Footnote-1729817
 -Node: Simple Sed729945
 -Node: Igawk Program733007
 -Ref: Igawk Program-Footnote-1748164
 -Ref: Igawk Program-Footnote-2748365
 -Node: Anagram Program748503
 -Node: Signature Program751571
 -Node: Debugger752671
 -Node: Debugging753582
 -Node: Debugging Concepts753995
 -Node: Debugging Terms755851
 -Node: Awk Debugging758474
 -Node: Sample dgawk session759366
 -Node: dgawk invocation759858
 -Node: Finding The Bug761040
 -Node: List of Debugger Commands767526
 -Node: Breakpoint Control768837
 -Node: Dgawk Execution Control772473
 -Node: Viewing And Changing Data775824
 -Node: Dgawk Stack779161
 -Node: Dgawk Info780621
 -Node: Miscellaneous Dgawk Commands784569
 -Node: Readline Support789997
 -Node: Dgawk Limitations790835
 -Node: Language History793024
 -Node: V7/SVR3.1794536
 -Node: SVR4796857
 -Node: POSIX798299
 -Node: BTL799307
 -Node: POSIX/GNU800112
 -Node: Common Extensions805263
 -Node: Ranges and Locales806322
 -Ref: Ranges and Locales-Footnote-1810940
 -Ref: Ranges and Locales-Footnote-2810967
 -Ref: Ranges and Locales-Footnote-3811227
 -Node: Contributors811448
 -Node: Installation815710
 -Node: Gawk Distribution816604
 -Node: Getting817088
 -Node: Extracting817914
 -Node: Distribution contents819606
 -Node: Unix Installation824828
 -Node: Quick Installation825445
 -Node: Additional Configuration Options827407
 -Node: Configuration Philosophy828884
 -Node: Non-Unix Installation831226
 -Node: PC Installation831684
 -Node: PC Binary Installation832983
 -Node: PC Compiling834998
 -Node: PC Testing837942
 -Node: PC Using839118
 -Node: Cygwin843303
 -Node: MSYS844303
 -Node: VMS Installation844817
 -Node: VMS Compilation845420
 -Ref: VMS Compilation-Footnote-1846427
 -Node: VMS Installation Details846485
 -Node: VMS Running848120
 -Node: VMS Old Gawk849727
 -Node: Bugs850201
 -Node: Other Versions854053
 -Node: Notes859334
 -Node: Compatibility Mode860026
 -Node: Additions860809
 -Node: Accessing The Source861621
 -Node: Adding Code863046
 -Node: New Ports869013
 -Node: Dynamic Extensions873126
 -Node: Internals874502
 -Node: Plugin License883605
 -Node: Sample Library884239
 -Node: Internal File Description884925
 -Node: Internal File Ops888640
 -Ref: Internal File Ops-Footnote-1893421
 -Node: Using Internal File Ops893561
 -Node: Future Extensions895938
 -Node: Basic Concepts898442
 -Node: Basic High Level899199
 -Ref: Basic High Level-Footnote-1903234
 -Node: Basic Data Typing903419
 -Node: Floating Point Issues907944
 -Node: String Conversion Precision909027
 -Ref: String Conversion Precision-Footnote-1910727
 -Node: Unexpected Results910836
 -Node: POSIX Floating Point Problems912662
 -Ref: POSIX Floating Point Problems-Footnote-1916367
 -Node: Glossary916405
 -Node: Copying941580
 -Node: GNU Free Documentation License979137
 -Node: Index1004274
 +Node: Foreword40138
 +Node: Preface44483
 +Ref: Preface-Footnote-147536
 +Ref: Preface-Footnote-247642
 +Node: History47874
 +Node: Names50265
 +Ref: Names-Footnote-151742
 +Node: This Manual51814
 +Ref: This Manual-Footnote-157720
 +Node: Conventions57820
 +Node: Manual History59954
 +Ref: Manual History-Footnote-163224
 +Ref: Manual History-Footnote-263265
 +Node: How To Contribute63339
 +Node: Acknowledgments64483
 +Node: Getting Started68979
 +Node: Running gawk71358
 +Node: One-shot72544
 +Node: Read Terminal73769
 +Ref: Read Terminal-Footnote-175419
 +Ref: Read Terminal-Footnote-275695
 +Node: Long75866
 +Node: Executable Scripts77242
 +Ref: Executable Scripts-Footnote-179111
 +Ref: Executable Scripts-Footnote-279213
 +Node: Comments79760
 +Node: Quoting82227
 +Node: DOS Quoting86850
 +Node: Sample Data Files87525
 +Node: Very Simple90557
 +Node: Two Rules95156
 +Node: More Complex97303
 +Ref: More Complex-Footnote-1100233
 +Node: Statements/Lines100318
 +Ref: Statements/Lines-Footnote-1104780
 +Node: Other Features105045
 +Node: When105973
 +Node: Invoking Gawk108120
 +Node: Command Line109581
 +Node: Options110364
 +Ref: Options-Footnote-1125762
 +Node: Other Arguments125787
 +Node: Naming Standard Input128445
 +Node: Environment Variables129539
 +Node: AWKPATH Variable130097
 +Ref: AWKPATH Variable-Footnote-1132855
 +Node: AWKLIBPATH Variable133115
 +Node: Other Environment Variables133712
 +Node: Exit Status136207
 +Node: Include Files136882
 +Node: Loading Shared Libraries140451
 +Node: Obsolete141676
 +Node: Undocumented142373
 +Node: Regexp142616
 +Node: Regexp Usage144005
 +Node: Escape Sequences146031
 +Node: Regexp Operators151794
 +Ref: Regexp Operators-Footnote-1159174
 +Ref: Regexp Operators-Footnote-2159321
 +Node: Bracket Expressions159419
 +Ref: table-char-classes161309
 +Node: GNU Regexp Operators163832
 +Node: Case-sensitivity167555
 +Ref: Case-sensitivity-Footnote-1170523
 +Ref: Case-sensitivity-Footnote-2170758
 +Node: Leftmost Longest170866
 +Node: Computed Regexps172067
 +Node: Reading Files175477
 +Node: Records177480
 +Ref: Records-Footnote-1186404
 +Node: Fields186441
 +Ref: Fields-Footnote-1189474
 +Node: Nonconstant Fields189560
 +Node: Changing Fields191762
 +Node: Field Separators197743
 +Node: Default Field Splitting200372
 +Node: Regexp Field Splitting201489
 +Node: Single Character Fields204831
 +Node: Command Line Field Separator205890
 +Node: Field Splitting Summary209331
 +Ref: Field Splitting Summary-Footnote-1212523
 +Node: Constant Size212624
 +Node: Splitting By Content217208
 +Ref: Splitting By Content-Footnote-1220934
 +Node: Multiple Line220974
 +Ref: Multiple Line-Footnote-1226821
 +Node: Getline227000
 +Node: Plain Getline229216
 +Node: Getline/Variable231305
 +Node: Getline/File232446
 +Node: Getline/Variable/File233768
 +Ref: Getline/Variable/File-Footnote-1235367
 +Node: Getline/Pipe235454
 +Node: Getline/Variable/Pipe238014
 +Node: Getline/Coprocess239121
 +Node: Getline/Variable/Coprocess240364
 +Node: Getline Notes241078
 +Node: Getline Summary243865
 +Ref: table-getline-variants244273
 +Node: Read Timeout245131
 +Ref: Read Timeout-Footnote-1248876
 +Node: Command line directories248933
 +Node: Printing249563
 +Node: Print251194
 +Node: Print Examples252531
 +Node: Output Separators255315
 +Node: OFMT257075
 +Node: Printf258433
 +Node: Basic Printf259339
 +Node: Control Letters260878
 +Node: Format Modifiers264690
 +Node: Printf Examples270699
 +Node: Redirection273414
 +Node: Special Files280398
 +Node: Special FD280931
 +Ref: Special FD-Footnote-1284556
 +Node: Special Network284630
 +Node: Special Caveats285480
 +Node: Close Files And Pipes286276
 +Ref: Close Files And Pipes-Footnote-1293299
 +Ref: Close Files And Pipes-Footnote-2293447
 +Node: Expressions293597
 +Node: Values294729
 +Node: Constants295405
 +Node: Scalar Constants296085
 +Ref: Scalar Constants-Footnote-1296944
 +Node: Nondecimal-numbers297126
 +Node: Regexp Constants300185
 +Node: Using Constant Regexps300660
 +Node: Variables303715
 +Node: Using Variables304370
 +Node: Assignment Options306094
 +Node: Conversion307966
 +Ref: table-locale-affects313342
 +Ref: Conversion-Footnote-1313966
 +Node: All Operators314075
 +Node: Arithmetic Ops314705
 +Node: Concatenation317210
 +Ref: Concatenation-Footnote-1320003
 +Node: Assignment Ops320123
 +Ref: table-assign-ops325111
 +Node: Increment Ops326519
 +Node: Truth Values and Conditions329989
 +Node: Truth Values331072
 +Node: Typing and Comparison332121
 +Node: Variable Typing332910
 +Ref: Variable Typing-Footnote-1336807
 +Node: Comparison Operators336929
 +Ref: table-relational-ops337339
 +Node: POSIX String Comparison340888
 +Ref: POSIX String Comparison-Footnote-1341844
 +Node: Boolean Ops341982
 +Ref: Boolean Ops-Footnote-1346060
 +Node: Conditional Exp346151
 +Node: Function Calls347883
 +Node: Precedence351477
 +Node: Locales355146
 +Node: Patterns and Actions356235
 +Node: Pattern Overview357289
 +Node: Regexp Patterns358958
 +Node: Expression Patterns359501
 +Node: Ranges363186
 +Node: BEGIN/END366152
 +Node: Using BEGIN/END366914
 +Ref: Using BEGIN/END-Footnote-1369645
 +Node: I/O And BEGIN/END369751
 +Node: BEGINFILE/ENDFILE372033
 +Node: Empty374937
 +Node: Using Shell Variables375253
 +Node: Action Overview377538
 +Node: Statements379895
 +Node: If Statement381749
 +Node: While Statement383248
 +Node: Do Statement385292
 +Node: For Statement386448
 +Node: Switch Statement389600
 +Node: Break Statement391697
 +Node: Continue Statement393687
 +Node: Next Statement395480
 +Node: Nextfile Statement397870
 +Node: Exit Statement400511
 +Node: Built-in Variables402927
 +Node: User-modified404022
 +Ref: User-modified-Footnote-1412377
 +Node: Auto-set412439
 +Ref: Auto-set-Footnote-1424790
 +Ref: Auto-set-Footnote-2424995
 +Node: ARGC and ARGV425051
 +Node: Arrays428902
 +Node: Array Basics430407
 +Node: Array Intro431233
 +Node: Reference to Elements435551
 +Node: Assigning Elements437821
 +Node: Array Example438312
 +Node: Scanning an Array440044
 +Node: Controlling Scanning442358
 +Ref: Controlling Scanning-Footnote-1447291
 +Node: Delete447607
 +Ref: Delete-Footnote-1450372
 +Node: Numeric Array Subscripts450429
 +Node: Uninitialized Subscripts452612
 +Node: Multi-dimensional454240
 +Node: Multi-scanning457334
 +Node: Arrays of Arrays458925
 +Node: Functions463570
 +Node: Built-in464389
 +Node: Calling Built-in465467
 +Node: Numeric Functions467455
 +Ref: Numeric Functions-Footnote-1471287
 +Ref: Numeric Functions-Footnote-2471644
 +Ref: Numeric Functions-Footnote-3471692
 +Node: String Functions471961
 +Ref: String Functions-Footnote-1495458
 +Ref: String Functions-Footnote-2495587
 +Ref: String Functions-Footnote-3495835
 +Node: Gory Details495922
 +Ref: table-sub-escapes497601
 +Ref: table-sub-posix-92498955
 +Ref: table-sub-proposed500306
 +Ref: table-posix-sub501660
 +Ref: table-gensub-escapes503205
 +Ref: Gory Details-Footnote-1504412
 +Ref: Gory Details-Footnote-2504463
 +Node: I/O Functions504614
- Ref: I/O Functions-Footnote-1511638
- Node: Time Functions511785
- Ref: Time Functions-Footnote-1522677
- Ref: Time Functions-Footnote-2522745
- Ref: Time Functions-Footnote-3522903
- Ref: Time Functions-Footnote-4523014
- Ref: Time Functions-Footnote-5523126
- Ref: Time Functions-Footnote-6523353
- Node: Bitwise Functions523619
- Ref: table-bitwise-ops524177
- Ref: Bitwise Functions-Footnote-1528398
- Node: Type Functions528582
- Node: I18N Functions529052
- Node: User-defined530679
- Node: Definition Syntax531483
- Ref: Definition Syntax-Footnote-1536393
- Node: Function Example536462
- Node: Function Caveats539056
- Node: Calling A Function539477
- Node: Variable Scope540592
- Node: Pass By Value/Reference543555
- Node: Return Statement546995
- Node: Dynamic Typing549976
- Node: Indirect Calls550711
- Node: Library Functions560396
- Ref: Library Functions-Footnote-1563395
- Node: Library Names563566
- Ref: Library Names-Footnote-1567037
- Ref: Library Names-Footnote-2567257
- Node: General Functions567343
- Node: Strtonum Function568296
- Node: Assert Function571226
- Node: Round Function574552
- Node: Cliff Random Function576095
- Node: Ordinal Functions577111
- Ref: Ordinal Functions-Footnote-1580181
- Ref: Ordinal Functions-Footnote-2580433
- Node: Join Function580642
- Ref: Join Function-Footnote-1582413
- Node: Getlocaltime Function582613
- Node: Data File Management586328
- Node: Filetrans Function586960
- Node: Rewind Function591099
- Node: File Checking592486
- Node: Empty Files593580
- Node: Ignoring Assigns595810
- Node: Getopt Function597363
- Ref: Getopt Function-Footnote-1608667
- Node: Passwd Functions608870
- Ref: Passwd Functions-Footnote-1617845
- Node: Group Functions617933
- Node: Walking Arrays626017
- Node: Sample Programs627586
- Node: Running Examples628263
- Node: Clones628991
- Node: Cut Program630215
- Node: Egrep Program640060
- Ref: Egrep Program-Footnote-1647833
- Node: Id Program647943
- Node: Split Program651559
- Ref: Split Program-Footnote-1655078
- Node: Tee Program655206
- Node: Uniq Program658009
- Node: Wc Program665438
- Ref: Wc Program-Footnote-1669704
- Ref: Wc Program-Footnote-2669904
- Node: Miscellaneous Programs669996
- Node: Dupword Program671184
- Node: Alarm Program673215
- Node: Translate Program677964
- Ref: Translate Program-Footnote-1682351
- Ref: Translate Program-Footnote-2682579
- Node: Labels Program682713
- Ref: Labels Program-Footnote-1686084
- Node: Word Sorting686168
- Node: History Sorting690052
- Node: Extract Program691891
- Ref: Extract Program-Footnote-1699374
- Node: Simple Sed699502
- Node: Igawk Program702564
- Ref: Igawk Program-Footnote-1717721
- Ref: Igawk Program-Footnote-2717922
- Node: Anagram Program718060
- Node: Signature Program721128
- Node: Internationalization722228
- Node: I18N and L10N723660
- Node: Explaining gettext724346
- Ref: Explaining gettext-Footnote-1729412
- Ref: Explaining gettext-Footnote-2729596
- Node: Programmer i18n729761
- Node: Translator i18n733961
- Node: String Extraction734754
- Ref: String Extraction-Footnote-1735715
- Node: Printf Ordering735801
- Ref: Printf Ordering-Footnote-1738585
- Node: I18N Portability738649
- Ref: I18N Portability-Footnote-1741098
- Node: I18N Example741161
- Ref: I18N Example-Footnote-1743796
- Node: Gawk I18N743868
- Node: Advanced Features744485
- Node: Nondecimal Data745989
- Node: Array Sorting747572
- Node: Controlling Array Traversal748269
- Node: Array Sorting Functions756507
- Ref: Array Sorting Functions-Footnote-1760181
- Ref: Array Sorting Functions-Footnote-2760274
- Node: Two-way I/O760468
- Ref: Two-way I/O-Footnote-1765900
- Node: TCP/IP Networking765970
- Node: Profiling768814
- Node: Debugger776268
- Node: Debugging777236
- Node: Debugging Concepts777669
- Node: Debugging Terms779525
- Node: Awk Debugging782122
- Node: Sample Debugging Session783014
- Node: Debugger Invocation783534
- Node: Finding The Bug784863
- Node: List of Debugger Commands791351
- Node: Breakpoint Control792685
- Node: Debugger Execution Control796349
- Node: Viewing And Changing Data799709
- Node: Execution Stack803065
- Node: Debugger Info804532
- Node: Miscellaneous Debugger Commands808513
- Node: Readline Support813958
- Node: Limitations814789
- Node: Arbitrary Precision Arithmetic817041
- Ref: Arbitrary Precision Arithmetic-Footnote-1818683
- Node: General Arithmetic818831
- Node: Floating Point Issues820551
- Node: String Conversion Precision821432
- Ref: String Conversion Precision-Footnote-1823138
- Node: Unexpected Results823247
- Node: POSIX Floating Point Problems825400
- Ref: POSIX Floating Point Problems-Footnote-1829225
- Node: Integer Programming829263
- Node: Floating-point Programming831016
- Ref: Floating-point Programming-Footnote-1837325
- Node: Floating-point Representation837589
- Node: Floating-point Context838754
- Ref: table-ieee-formats839596
- Node: Rounding Mode840980
- Ref: table-rounding-modes841459
- Ref: Rounding Mode-Footnote-1844463
- Node: Gawk and MPFR844644
- Node: Arbitrary Precision Floats845886
- Ref: Arbitrary Precision Floats-Footnote-1848315
- Node: Setting Precision848626
- Node: Setting Rounding Mode851359
- Ref: table-gawk-rounding-modes851763
- Node: Floating-point Constants852943
- Node: Changing Precision854367
- Ref: Changing Precision-Footnote-1855767
- Node: Exact Arithmetic855941
- Node: Arbitrary Precision Integers859049
- Ref: Arbitrary Precision Integers-Footnote-1862049
- Node: Dynamic Extensions862196
- Node: Extension Intro863582
- Node: Plugin License864790
- Node: Extension Design865464
- Node: Old Extension Problems866535
- Ref: Old Extension Problems-Footnote-1868045
- Node: Extension New Mechanism Goals868102
- Ref: Extension New Mechanism Goals-Footnote-1870814
- Node: Extension Other Design Decisions871000
- Node: Extension Mechanism Outline873112
- Ref: load-extension874137
- Ref: load-new-function875615
- Ref: call-new-function876596
- Node: Extension Future Growth878590
- Node: Extension API Description879408
- Node: Extension API Functions Introduction880736
- Node: General Data Types885436
- Ref: General Data Types-Footnote-1891038
- Node: Requesting Values891337
- Ref: table-value-types-returned892068
- Node: Constructor Functions893022
- Node: Registration Functions896018
- Node: Extension Functions896703
- Node: Exit Callback Functions898535
- Node: Extension Version String899778
- Node: Input Parsers900428
- Node: Output Wrappers909015
- Node: Two-way processors913431
- Node: Printing Messages915561
- Ref: Printing Messages-Footnote-1916638
- Node: Updating `ERRNO'916790
- Node: Accessing Parameters917529
- Node: Symbol Table Access918759
- Node: Symbol table by name919271
- Ref: Symbol table by name-Footnote-1921441
- Node: Symbol table by cookie921521
- Ref: Symbol table by cookie-Footnote-1925650
- Node: Cached values925713
- Ref: Cached values-Footnote-1929156
- Node: Array Manipulation929247
- Ref: Array Manipulation-Footnote-1930345
- Node: Array Data Types930384
- Ref: Array Data Types-Footnote-1933087
- Node: Array Functions933179
- Node: Flattening Arrays936945
- Node: Creating Arrays943778
- Node: Extension API Variables948573
- Node: Extension Versioning949209
- Node: Extension API Informational Variables951110
- Node: Extension API Boilerplate952196
- Node: Finding Extensions956027
- Node: Extension Example956574
- Node: Internal File Description957312
- Node: Internal File Ops961000
- Ref: Internal File Ops-Footnote-1972447
- Node: Using Internal File Ops972587
- Ref: Using Internal File Ops-Footnote-1974940
- Node: Extension Samples975206
- Node: Extension Sample File Functions976649
- Node: Extension Sample Fnmatch985122
- Node: Extension Sample Fork986848
- Node: Extension Sample Ord988062
- Node: Extension Sample Readdir988838
- Node: Extension Sample Revout990342
- Node: Extension Sample Rev2way990935
- Node: Extension Sample Read write array991625
- Node: Extension Sample Readfile993508
- Node: Extension Sample API Tests994263
- Node: Extension Sample Time994788
- Node: gawkextlib996095
- Node: Language History998476
- Node: V7/SVR3.1999998
- Node: SVR41002319
- Node: POSIX1003761
- Node: BTL1004769
- Node: POSIX/GNU1005503
- Node: Common Extensions1011038
- Node: Ranges and Locales1012145
- Ref: Ranges and Locales-Footnote-11016763
- Ref: Ranges and Locales-Footnote-21016790
- Ref: Ranges and Locales-Footnote-31017050
- Node: Contributors1017271
- Node: Installation1021567
- Node: Gawk Distribution1022461
- Node: Getting1022945
- Node: Extracting1023771
- Node: Distribution contents1025463
- Node: Unix Installation1030685
- Node: Quick Installation1031302
- Node: Additional Configuration Options1033264
- Node: Configuration Philosophy1034741
- Node: Non-Unix Installation1037083
- Node: PC Installation1037541
- Node: PC Binary Installation1038840
- Node: PC Compiling1040688
- Node: PC Testing1043632
- Node: PC Using1044808
- Node: Cygwin1048993
- Node: MSYS1049993
- Node: VMS Installation1050507
- Node: VMS Compilation1051110
- Ref: VMS Compilation-Footnote-11052117
- Node: VMS Installation Details1052175
- Node: VMS Running1053810
- Node: VMS Old Gawk1055417
- Node: Bugs1055891
- Node: Other Versions1059743
- Node: Notes1065058
- Node: Compatibility Mode1065717
- Node: Additions1066500
- Node: Accessing The Source1067427
- Node: Adding Code1069030
- Node: New Ports1075072
- Node: Derived Files1079207
- Ref: Derived Files-Footnote-11084515
- Ref: Derived Files-Footnote-21084549
- Ref: Derived Files-Footnote-31085149
- Node: Future Extensions1085247
- Node: Implementation Limitations1085828
- Node: Basic Concepts1087055
- Node: Basic High Level1087736
- Ref: figure-general-flow1088007
- Ref: figure-process-flow1088606
- Ref: Basic High Level-Footnote-11091835
- Node: Basic Data Typing1092020
- Node: Glossary1095375
- Node: Copying1120686
- Node: GNU Free Documentation License1158243
- Node: Index1183380
++Ref: I/O Functions-Footnote-1511719
++Node: Time Functions511866
++Ref: Time Functions-Footnote-1522758
++Ref: Time Functions-Footnote-2522826
++Ref: Time Functions-Footnote-3522984
++Ref: Time Functions-Footnote-4523095
++Ref: Time Functions-Footnote-5523207
++Ref: Time Functions-Footnote-6523434
++Node: Bitwise Functions523700
++Ref: table-bitwise-ops524258
++Ref: Bitwise Functions-Footnote-1528479
++Node: Type Functions528663
++Node: I18N Functions529133
++Node: User-defined530760
++Node: Definition Syntax531564
++Ref: Definition Syntax-Footnote-1536474
++Node: Function Example536543
++Node: Function Caveats539137
++Node: Calling A Function539558
++Node: Variable Scope540673
++Node: Pass By Value/Reference543636
++Node: Return Statement547076
++Node: Dynamic Typing550057
++Node: Indirect Calls550792
++Node: Library Functions560477
++Ref: Library Functions-Footnote-1563476
++Node: Library Names563647
++Ref: Library Names-Footnote-1567118
++Ref: Library Names-Footnote-2567338
++Node: General Functions567424
++Node: Strtonum Function568377
++Node: Assert Function571307
++Node: Round Function574633
++Node: Cliff Random Function576176
++Node: Ordinal Functions577192
++Ref: Ordinal Functions-Footnote-1580262
++Ref: Ordinal Functions-Footnote-2580514
++Node: Join Function580723
++Ref: Join Function-Footnote-1582494
++Node: Getlocaltime Function582694
++Node: Data File Management586409
++Node: Filetrans Function587041
++Node: Rewind Function591180
++Node: File Checking592567
++Node: Empty Files593661
++Node: Ignoring Assigns595891
++Node: Getopt Function597444
++Ref: Getopt Function-Footnote-1608748
++Node: Passwd Functions608951
++Ref: Passwd Functions-Footnote-1617926
++Node: Group Functions618014
++Node: Walking Arrays626098
++Node: Sample Programs627667
++Node: Running Examples628344
++Node: Clones629072
++Node: Cut Program630296
++Node: Egrep Program640141
++Ref: Egrep Program-Footnote-1647914
++Node: Id Program648024
++Node: Split Program651640
++Ref: Split Program-Footnote-1655159
++Node: Tee Program655287
++Node: Uniq Program658090
++Node: Wc Program665519
++Ref: Wc Program-Footnote-1669785
++Ref: Wc Program-Footnote-2669985
++Node: Miscellaneous Programs670077
++Node: Dupword Program671265
++Node: Alarm Program673296
++Node: Translate Program678045
++Ref: Translate Program-Footnote-1682432
++Ref: Translate Program-Footnote-2682660
++Node: Labels Program682794
++Ref: Labels Program-Footnote-1686165
++Node: Word Sorting686249
++Node: History Sorting690133
++Node: Extract Program691972
++Ref: Extract Program-Footnote-1699455
++Node: Simple Sed699583
++Node: Igawk Program702645
++Ref: Igawk Program-Footnote-1717802
++Ref: Igawk Program-Footnote-2718003
++Node: Anagram Program718141
++Node: Signature Program721209
++Node: Internationalization722309
++Node: I18N and L10N723741
++Node: Explaining gettext724427
++Ref: Explaining gettext-Footnote-1729493
++Ref: Explaining gettext-Footnote-2729677
++Node: Programmer i18n729842
++Node: Translator i18n734042
++Node: String Extraction734835
++Ref: String Extraction-Footnote-1735796
++Node: Printf Ordering735882
++Ref: Printf Ordering-Footnote-1738666
++Node: I18N Portability738730
++Ref: I18N Portability-Footnote-1741179
++Node: I18N Example741242
++Ref: I18N Example-Footnote-1743877
++Node: Gawk I18N743949
++Node: Advanced Features744566
++Node: Nondecimal Data746070
++Node: Array Sorting747653
++Node: Controlling Array Traversal748350
++Node: Array Sorting Functions756588
++Ref: Array Sorting Functions-Footnote-1760262
++Ref: Array Sorting Functions-Footnote-2760355
++Node: Two-way I/O760549
++Ref: Two-way I/O-Footnote-1765981
++Node: TCP/IP Networking766051
++Node: Profiling768895
++Node: Debugger776349
++Node: Debugging777317
++Node: Debugging Concepts777750
++Node: Debugging Terms779606
++Node: Awk Debugging782203
++Node: Sample Debugging Session783095
++Node: Debugger Invocation783615
++Node: Finding The Bug784944
++Node: List of Debugger Commands791432
++Node: Breakpoint Control792766
++Node: Debugger Execution Control796430
++Node: Viewing And Changing Data799790
++Node: Execution Stack803146
++Node: Debugger Info804613
++Node: Miscellaneous Debugger Commands808594
++Node: Readline Support814039
++Node: Limitations814870
++Node: Arbitrary Precision Arithmetic817122
++Ref: Arbitrary Precision Arithmetic-Footnote-1818764
++Node: General Arithmetic818912
++Node: Floating Point Issues820632
++Node: String Conversion Precision821513
++Ref: String Conversion Precision-Footnote-1823219
++Node: Unexpected Results823328
++Node: POSIX Floating Point Problems825481
++Ref: POSIX Floating Point Problems-Footnote-1829306
++Node: Integer Programming829344
++Node: Floating-point Programming831097
++Ref: Floating-point Programming-Footnote-1837406
++Node: Floating-point Representation837670
++Node: Floating-point Context838835
++Ref: table-ieee-formats839677
++Node: Rounding Mode841061
++Ref: table-rounding-modes841540
++Ref: Rounding Mode-Footnote-1844544
++Node: Gawk and MPFR844725
++Node: Arbitrary Precision Floats845967
++Ref: Arbitrary Precision Floats-Footnote-1848396
++Node: Setting Precision848707
++Node: Setting Rounding Mode851440
++Ref: table-gawk-rounding-modes851844
++Node: Floating-point Constants853024
++Node: Changing Precision854448
++Ref: Changing Precision-Footnote-1855848
++Node: Exact Arithmetic856022
++Node: Arbitrary Precision Integers859130
++Ref: Arbitrary Precision Integers-Footnote-1862130
++Node: Dynamic Extensions862277
++Node: Extension Intro863663
++Node: Plugin License864871
++Node: Extension Design865545
++Node: Old Extension Problems866616
++Ref: Old Extension Problems-Footnote-1868126
++Node: Extension New Mechanism Goals868183
++Ref: Extension New Mechanism Goals-Footnote-1870895
++Node: Extension Other Design Decisions871081
++Node: Extension Mechanism Outline873193
++Ref: load-extension874218
++Ref: load-new-function875696
++Ref: call-new-function876677
++Node: Extension Future Growth878671
++Node: Extension API Description879489
++Node: Extension API Functions Introduction880817
++Node: General Data Types885517
++Ref: General Data Types-Footnote-1891119
++Node: Requesting Values891418
++Ref: table-value-types-returned892149
++Node: Constructor Functions893103
++Node: Registration Functions896099
++Node: Extension Functions896784
++Node: Exit Callback Functions898616
++Node: Extension Version String899859
++Node: Input Parsers900509
++Node: Output Wrappers909096
++Node: Two-way processors913512
++Node: Printing Messages915642
++Ref: Printing Messages-Footnote-1916719
++Node: Updating `ERRNO'916871
++Node: Accessing Parameters917610
++Node: Symbol Table Access918840
++Node: Symbol table by name919352
++Ref: Symbol table by name-Footnote-1921522
++Node: Symbol table by cookie921602
++Ref: Symbol table by cookie-Footnote-1925731
++Node: Cached values925794
++Ref: Cached values-Footnote-1929237
++Node: Array Manipulation929328
++Ref: Array Manipulation-Footnote-1930426
++Node: Array Data Types930465
++Ref: Array Data Types-Footnote-1933168
++Node: Array Functions933260
++Node: Flattening Arrays937026
++Node: Creating Arrays943859
++Node: Extension API Variables948654
++Node: Extension Versioning949290
++Node: Extension API Informational Variables951191
++Node: Extension API Boilerplate952277
++Node: Finding Extensions956108
++Node: Extension Example956655
++Node: Internal File Description957393
++Node: Internal File Ops961081
++Ref: Internal File Ops-Footnote-1972528
++Node: Using Internal File Ops972668
++Ref: Using Internal File Ops-Footnote-1975021
++Node: Extension Samples975287
++Node: Extension Sample File Functions976730
++Node: Extension Sample Fnmatch985203
++Node: Extension Sample Fork986929
++Node: Extension Sample Ord988143
++Node: Extension Sample Readdir988919
++Node: Extension Sample Revout990423
++Node: Extension Sample Rev2way991016
++Node: Extension Sample Read write array991706
++Node: Extension Sample Readfile993589
++Node: Extension Sample API Tests994344
++Node: Extension Sample Time994869
++Node: gawkextlib996176
++Node: Language History998557
++Node: V7/SVR3.11000079
++Node: SVR41002400
++Node: POSIX1003842
++Node: BTL1004850
++Node: POSIX/GNU1005655
++Node: Common Extensions1011190
++Node: Ranges and Locales1012249
++Ref: Ranges and Locales-Footnote-11016867
++Ref: Ranges and Locales-Footnote-21016894
++Ref: Ranges and Locales-Footnote-31017154
++Node: Contributors1017375
++Node: Installation1021671
++Node: Gawk Distribution1022565
++Node: Getting1023049
++Node: Extracting1023875
++Node: Distribution contents1025567
++Node: Unix Installation1030789
++Node: Quick Installation1031406
++Node: Additional Configuration Options1033368
++Node: Configuration Philosophy1034845
++Node: Non-Unix Installation1037187
++Node: PC Installation1037645
++Node: PC Binary Installation1038944
++Node: PC Compiling1040792
++Node: PC Testing1043736
++Node: PC Using1044912
++Node: Cygwin1049097
++Node: MSYS1050097
++Node: VMS Installation1050611
++Node: VMS Compilation1051214
++Ref: VMS Compilation-Footnote-11052221
++Node: VMS Installation Details1052279
++Node: VMS Running1053914
++Node: VMS Old Gawk1055521
++Node: Bugs1055995
++Node: Other Versions1059847
++Node: Notes1065162
++Node: Compatibility Mode1065821
++Node: Additions1066604
++Node: Accessing The Source1067531
++Node: Adding Code1069134
++Node: New Ports1075176
++Node: Derived Files1079311
++Ref: Derived Files-Footnote-11084619
++Ref: Derived Files-Footnote-21084653
++Ref: Derived Files-Footnote-31085253
++Node: Future Extensions1085351
++Node: Implementation Limitations1085932
++Node: Basic Concepts1087159
++Node: Basic High Level1087840
++Ref: figure-general-flow1088111
++Ref: figure-process-flow1088710
++Ref: Basic High Level-Footnote-11091939
++Node: Basic Data Typing1092124
++Node: Glossary1095479
++Node: Copying1120790
++Node: GNU Free Documentation License1158347
++Node: Index1183484
  
  End Tag Table

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog      |   14 ++
 NEWS           |    7 +-
 awkgram.c      |   12 +-
 awkgram.y      |   12 +-
 doc/ChangeLog  |    6 +
 doc/awkcard.in |    5 +-
 doc/gawk.1     |   14 +--
 doc/gawk.info  |  636 ++++++++++++++++++++++++++++----------------------------
 doc/gawk.texi  |   32 ++--
 9 files changed, 370 insertions(+), 368 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]