gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, gawk_mpfr, updated. 5481d2ffcd24d5983d95


From: John Haque
Subject: [gawk-diffs] [SCM] gawk branch, gawk_mpfr, updated. 5481d2ffcd24d5983d95013c62e046634c6c73dc
Date: Sun, 08 Apr 2012 21:53:48 +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, gawk_mpfr has been updated
       via  5481d2ffcd24d5983d95013c62e046634c6c73dc (commit)
      from  2aa4ca2371c89581a5cb0cbec0882f5ef1efa1f3 (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=5481d2ffcd24d5983d95013c62e046634c6c73dc

commit 5481d2ffcd24d5983d95013c62e046634c6c73dc
Author: john haque <address@hidden>
Date:   Sun Apr 8 16:33:46 2012 -0500

    Placate gcc -Wall, minor doc updates.

diff --git a/awk.h b/awk.h
index bf49fb6..56fd49e 100644
--- a/awk.h
+++ b/awk.h
@@ -1229,7 +1229,7 @@ extern STACK_ITEM *stack_top;
                                : ((n)->flags & MPZN) ? (mpz_sgn((n)->mpg_i) == 
0) \
                                : ((n)->numbr == 0.0))
 
-#define IEEE_FMT(r, t)         do_ieee_fmt && format_ieee(r, t)
+#define IEEE_FMT(r, t)         (void) (do_ieee_fmt && format_ieee(r, t))
 
 #define mpg_float()            mpg_node(MPFN)
 #define mpg_integer()          mpg_node(MPZN)
diff --git a/awkgram.c b/awkgram.c
index 4bd9f09..c2fcb03 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -718,10 +718,10 @@ static const yytype_uint16 yyrline[] =
     1279,  1284,  1286,  1288,  1338,  1340,  1342,  1344,  1346,  1348,
     1350,  1352,  1375,  1380,  1385,  1410,  1416,  1418,  1420,  1422,
     1424,  1426,  1431,  1435,  1467,  1469,  1475,  1481,  1494,  1495,
-    1496,  1501,  1506,  1510,  1514,  1531,  1544,  1549,  1585,  1603,
-    1604,  1610,  1611,  1616,  1618,  1625,  1642,  1659,  1661,  1668,
-    1673,  1681,  1691,  1703,  1712,  1716,  1720,  1724,  1728,  1732,
-    1735,  1737,  1741,  1745,  1749
+    1496,  1501,  1506,  1510,  1514,  1529,  1542,  1547,  1583,  1601,
+    1602,  1608,  1609,  1614,  1616,  1623,  1640,  1657,  1659,  1666,
+    1671,  1679,  1689,  1701,  1710,  1714,  1718,  1722,  1726,  1730,
+    1733,  1735,  1739,  1743,  1747
 };
 #endif
 
@@ -2039,7 +2039,7 @@ yyreduce:
     {
         case 3:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 195 "awkgram.y"
     {
                rule = 0;
@@ -2049,7 +2049,7 @@ yyreduce:
 
   case 5:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 201 "awkgram.y"
     {
                next_sourcefile();
@@ -2058,7 +2058,7 @@ yyreduce:
 
   case 6:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 205 "awkgram.y"
     {
                rule = 0;
@@ -2072,7 +2072,7 @@ yyreduce:
 
   case 7:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 217 "awkgram.y"
     {
                (void) append_rule((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
@@ -2081,7 +2081,7 @@ yyreduce:
 
   case 8:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 221 "awkgram.y"
     {
                if (rule != Rule) {
@@ -2097,7 +2097,7 @@ yyreduce:
 
   case 9:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 232 "awkgram.y"
     {
                in_function = NULL;
@@ -2108,7 +2108,7 @@ yyreduce:
 
   case 10:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 238 "awkgram.y"
     {
                want_source = FALSE;
@@ -2118,7 +2118,7 @@ yyreduce:
 
   case 11:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 246 "awkgram.y"
     {
                if (include_source((yyvsp[(1) - (1)])) < 0)
@@ -2131,35 +2131,35 @@ yyreduce:
 
   case 12:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 254 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 13:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 256 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 14:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 261 "awkgram.y"
     {  (yyval) = NULL; rule = Rule; }
     break;
 
   case 15:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 263 "awkgram.y"
     {  (yyval) = (yyvsp[(1) - (1)]); rule = Rule; }
     break;
 
   case 16:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 265 "awkgram.y"
     {
                INSTRUCTION *tp;
@@ -2190,7 +2190,7 @@ yyreduce:
 
   case 17:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 291 "awkgram.y"
     {
                static int begin_seen = 0;
@@ -2206,7 +2206,7 @@ yyreduce:
 
   case 18:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 302 "awkgram.y"
     {
                static int end_seen = 0;
@@ -2222,7 +2222,7 @@ yyreduce:
 
   case 19:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 313 "awkgram.y"
     {
                (yyvsp[(1) - (1)])->in_rule = rule = BEGINFILE;
@@ -2233,7 +2233,7 @@ yyreduce:
 
   case 20:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 319 "awkgram.y"
     {
                (yyvsp[(1) - (1)])->in_rule = rule = ENDFILE;
@@ -2244,7 +2244,7 @@ yyreduce:
 
   case 21:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 328 "awkgram.y"
     {
                if ((yyvsp[(2) - (5)]) == NULL)
@@ -2256,21 +2256,21 @@ yyreduce:
 
   case 22:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 338 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 23:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 340 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 24:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 342 "awkgram.y"
     {
                yyerror(_("`%s' is a built-in function, it cannot be 
redefined"),
@@ -2281,14 +2281,14 @@ yyreduce:
 
   case 25:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 348 "awkgram.y"
     { (yyval) = (yyvsp[(2) - (2)]); }
     break;
 
   case 28:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 358 "awkgram.y"
     {
                (yyvsp[(1) - (6)])->source_file = source;
@@ -2304,14 +2304,14 @@ yyreduce:
 
   case 29:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 376 "awkgram.y"
     { ++want_regexp; }
     break;
 
   case 30:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 378 "awkgram.y"
     {
                  NODE *n, *exp;
@@ -2345,21 +2345,21 @@ yyreduce:
 
   case 31:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 410 "awkgram.y"
     { bcfree((yyvsp[(1) - (1)])); }
     break;
 
   case 33:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 416 "awkgram.y"
     {  (yyval) = NULL; }
     break;
 
   case 34:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 418 "awkgram.y"
     {
                if ((yyvsp[(2) - (2)]) == NULL)
@@ -2377,28 +2377,28 @@ yyreduce:
 
   case 35:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 431 "awkgram.y"
     {  (yyval) = NULL; }
     break;
 
   case 38:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 441 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 39:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 443 "awkgram.y"
     { (yyval) = (yyvsp[(2) - (3)]); }
     break;
 
   case 40:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 445 "awkgram.y"
     {
                if (do_pretty_print)
@@ -2410,7 +2410,7 @@ yyreduce:
 
   case 41:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 452 "awkgram.y"
     {
                INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt;
@@ -2505,7 +2505,7 @@ yyreduce:
 
   case 42:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 542 "awkgram.y"
     { 
                /*
@@ -2552,7 +2552,7 @@ yyreduce:
 
   case 43:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 584 "awkgram.y"
     {
                /*
@@ -2599,7 +2599,7 @@ yyreduce:
 
   case 44:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 626 "awkgram.y"
     {
                INSTRUCTION *ip;
@@ -2717,7 +2717,7 @@ regular_loop:
 
   case 45:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 739 "awkgram.y"
     {
                (yyval) = mk_for_loop((yyvsp[(1) - (12)]), (yyvsp[(3) - (12)]), 
(yyvsp[(6) - (12)]), (yyvsp[(9) - (12)]), (yyvsp[(12) - (12)]));
@@ -2729,7 +2729,7 @@ regular_loop:
 
   case 46:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 746 "awkgram.y"
     {
                (yyval) = mk_for_loop((yyvsp[(1) - (11)]), (yyvsp[(3) - (11)]), 
(INSTRUCTION *) NULL, (yyvsp[(8) - (11)]), (yyvsp[(11) - (11)]));
@@ -2741,7 +2741,7 @@ regular_loop:
 
   case 47:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 753 "awkgram.y"
     {
                if (do_pretty_print)
@@ -2753,7 +2753,7 @@ regular_loop:
 
   case 48:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 763 "awkgram.y"
     { 
                if (! break_allowed)
@@ -2767,7 +2767,7 @@ regular_loop:
 
   case 49:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 772 "awkgram.y"
     {
                if (! continue_allowed)
@@ -2781,7 +2781,7 @@ regular_loop:
 
   case 50:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 781 "awkgram.y"
     {
                /* if inside function (rule = 0), resolve context at run-time */
@@ -2795,7 +2795,7 @@ regular_loop:
 
   case 51:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 790 "awkgram.y"
     {
                if (do_traditional)
@@ -2815,7 +2815,7 @@ regular_loop:
 
   case 52:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 805 "awkgram.y"
     {
                /* Initialize the two possible jump targets, the actual target
@@ -2835,7 +2835,7 @@ regular_loop:
 
   case 53:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 820 "awkgram.y"
     {
                if (! in_function)
@@ -2845,7 +2845,7 @@ regular_loop:
 
   case 54:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 823 "awkgram.y"
     {
                if ((yyvsp[(3) - (4)]) == NULL) {
@@ -2871,14 +2871,14 @@ regular_loop:
 
   case 56:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 855 "awkgram.y"
     { in_print = TRUE; in_parens = 0; }
     break;
 
   case 57:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 856 "awkgram.y"
     {
                /*
@@ -2980,14 +2980,14 @@ regular_print:
 
   case 58:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 953 "awkgram.y"
     { sub_counter = 0; }
     break;
 
   case 59:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 954 "awkgram.y"
     {
                char *arr = (yyvsp[(2) - (4)])->lextok;
@@ -3017,7 +3017,7 @@ regular_print:
 
   case 60:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 983 "awkgram.y"
     {
                static short warned = FALSE;
@@ -3041,35 +3041,35 @@ regular_print:
 
   case 61:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1002 "awkgram.y"
     {  (yyval) = optimize_assignment((yyvsp[(1) - (1)])); }
     break;
 
   case 62:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1007 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 63:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1009 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 64:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1014 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 65:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1016 "awkgram.y"
     {
                if ((yyvsp[(1) - (2)]) == NULL)
@@ -3081,14 +3081,14 @@ regular_print:
 
   case 66:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1023 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 67:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1028 "awkgram.y"
     {
                INSTRUCTION *casestmt = (yyvsp[(5) - (5)]);
@@ -3105,7 +3105,7 @@ regular_print:
 
   case 68:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1040 "awkgram.y"
     {
                INSTRUCTION *casestmt = (yyvsp[(4) - (4)]);
@@ -3121,14 +3121,14 @@ regular_print:
 
   case 69:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1054 "awkgram.y"
     {  (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 70:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1056 "awkgram.y"
     { 
                NODE *n = (yyvsp[(2) - (2)])->memory;
@@ -3141,7 +3141,7 @@ regular_print:
 
   case 71:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1064 "awkgram.y"
     {
                bcfree((yyvsp[(1) - (2)]));
@@ -3151,14 +3151,14 @@ regular_print:
 
   case 72:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1069 "awkgram.y"
     {  (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 73:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1071 "awkgram.y"
     {
                (yyvsp[(1) - (1)])->opcode = Op_push_re;
@@ -3168,21 +3168,21 @@ regular_print:
 
   case 74:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1079 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 75:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1081 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 77:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1091 "awkgram.y"
     {
                (yyval) = (yyvsp[(2) - (3)]);
@@ -3191,7 +3191,7 @@ regular_print:
 
   case 78:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1098 "awkgram.y"
     {
                in_print = FALSE;
@@ -3202,14 +3202,14 @@ regular_print:
 
   case 79:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1103 "awkgram.y"
     { in_print = FALSE; in_parens = 0; }
     break;
 
   case 80:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1104 "awkgram.y"
     {
                if ((yyvsp[(1) - (3)])->redir_type == redirect_twoway
@@ -3222,7 +3222,7 @@ regular_print:
 
   case 81:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1115 "awkgram.y"
     {
                (yyval) = mk_condition((yyvsp[(3) - (6)]), (yyvsp[(1) - (6)]), 
(yyvsp[(6) - (6)]), NULL, NULL);
@@ -3231,7 +3231,7 @@ regular_print:
 
   case 82:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1120 "awkgram.y"
     {
                (yyval) = mk_condition((yyvsp[(3) - (9)]), (yyvsp[(1) - (9)]), 
(yyvsp[(6) - (9)]), (yyvsp[(7) - (9)]), (yyvsp[(9) - (9)]));
@@ -3240,14 +3240,14 @@ regular_print:
 
   case 87:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1137 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 88:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1139 "awkgram.y"
     {
                bcfree((yyvsp[(1) - (2)]));
@@ -3257,21 +3257,21 @@ regular_print:
 
   case 89:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1147 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 90:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1149 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]) ; }
     break;
 
   case 91:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1154 "awkgram.y"
     {
                (yyvsp[(1) - (1)])->param_count = 0;
@@ -3281,7 +3281,7 @@ regular_print:
 
   case 92:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1159 "awkgram.y"
     {
                (yyvsp[(3) - (3)])->param_count =  (yyvsp[(1) - 
(3)])->lasti->param_count + 1;
@@ -3292,63 +3292,63 @@ regular_print:
 
   case 93:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1165 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 94:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1167 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (2)]); }
     break;
 
   case 95:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1169 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (3)]); }
     break;
 
   case 96:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1175 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 97:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1177 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 98:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1182 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 99:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1184 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 100:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1189 "awkgram.y"
     {  (yyval) = mk_expression_list(NULL, (yyvsp[(1) - (1)])); }
     break;
 
   case 101:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1191 "awkgram.y"
     {
                (yyval) = mk_expression_list((yyvsp[(1) - (3)]), (yyvsp[(3) - 
(3)]));
@@ -3358,35 +3358,35 @@ regular_print:
 
   case 102:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1196 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 103:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1198 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 104:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1200 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 105:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1202 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 106:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1208 "awkgram.y"
     {
                if (do_lint && (yyvsp[(3) - (3)])->lasti->opcode == 
Op_match_rec)
@@ -3398,21 +3398,21 @@ regular_print:
 
   case 107:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1215 "awkgram.y"
     {  (yyval) = mk_boolean((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
     break;
 
   case 108:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1217 "awkgram.y"
     {  (yyval) = mk_boolean((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
     break;
 
   case 109:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1219 "awkgram.y"
     {
                if ((yyvsp[(1) - (3)])->lasti->opcode == Op_match_rec)
@@ -3433,7 +3433,7 @@ regular_print:
 
   case 110:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1235 "awkgram.y"
     {
                if (do_lint_old)
@@ -3448,7 +3448,7 @@ regular_print:
 
   case 111:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1245 "awkgram.y"
     {
                if (do_lint && (yyvsp[(3) - (3)])->lasti->opcode == 
Op_match_rec)
@@ -3460,35 +3460,35 @@ regular_print:
 
   case 112:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1252 "awkgram.y"
     { (yyval) = mk_condition((yyvsp[(1) - (5)]), (yyvsp[(2) - (5)]), 
(yyvsp[(3) - (5)]), (yyvsp[(4) - (5)]), (yyvsp[(5) - (5)])); }
     break;
 
   case 113:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1254 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 114:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1259 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 115:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1261 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 116:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1263 "awkgram.y"
     {  
                (yyvsp[(2) - (2)])->opcode = Op_assign_quotient;
@@ -3498,49 +3498,49 @@ regular_print:
 
   case 117:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1271 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 118:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1273 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 119:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1278 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 120:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1280 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 121:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1285 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 122:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1287 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 123:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1289 "awkgram.y"
     {
                int count = 2;
@@ -3592,49 +3592,49 @@ regular_print:
 
   case 125:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1341 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 126:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1343 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 127:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1345 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 128:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1347 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 129:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1349 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 130:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1351 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 131:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1353 "awkgram.y"
     {
                /*
@@ -3662,7 +3662,7 @@ regular_print:
 
   case 132:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1376 "awkgram.y"
     {
                (yyvsp[(2) - (2)])->opcode = Op_postincrement;
@@ -3672,7 +3672,7 @@ regular_print:
 
   case 133:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1381 "awkgram.y"
     {
                (yyvsp[(2) - (2)])->opcode = Op_postdecrement;
@@ -3682,7 +3682,7 @@ regular_print:
 
   case 134:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1386 "awkgram.y"
     {
                if (do_lint_old) {
@@ -3707,7 +3707,7 @@ regular_print:
 
   case 135:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1411 "awkgram.y"
     {
                  (yyval) = mk_getline((yyvsp[(3) - (4)]), (yyvsp[(4) - (4)]), 
(yyvsp[(1) - (4)]), (yyvsp[(2) - (4)])->redir_type);
@@ -3717,49 +3717,49 @@ regular_print:
 
   case 136:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1417 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 137:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1419 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 138:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1421 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 139:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1423 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 140:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1425 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 141:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1427 "awkgram.y"
     { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) - 
(3)])); }
     break;
 
   case 142:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1432 "awkgram.y"
     {
                (yyval) = list_create((yyvsp[(1) - (1)]));
@@ -3768,7 +3768,7 @@ regular_print:
 
   case 143:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1436 "awkgram.y"
     {
                if ((yyvsp[(2) - (2)])->opcode == Op_match_rec) {
@@ -3805,14 +3805,14 @@ regular_print:
 
   case 144:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1468 "awkgram.y"
     { (yyval) = (yyvsp[(2) - (3)]); }
     break;
 
   case 145:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1470 "awkgram.y"
     {
                (yyval) = snode((yyvsp[(3) - (4)]), (yyvsp[(1) - (4)]));
@@ -3823,7 +3823,7 @@ regular_print:
 
   case 146:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1476 "awkgram.y"
     {
                (yyval) = snode((yyvsp[(3) - (4)]), (yyvsp[(1) - (4)]));
@@ -3834,7 +3834,7 @@ regular_print:
 
   case 147:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1482 "awkgram.y"
     {
                static short warned1 = FALSE;
@@ -3852,7 +3852,7 @@ regular_print:
 
   case 150:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1497 "awkgram.y"
     {
                (yyvsp[(1) - (2)])->opcode = Op_preincrement;
@@ -3862,7 +3862,7 @@ regular_print:
 
   case 151:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1502 "awkgram.y"
     {
                (yyvsp[(1) - (2)])->opcode = Op_predecrement;
@@ -3872,7 +3872,7 @@ regular_print:
 
   case 152:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1507 "awkgram.y"
     {
                (yyval) = list_create((yyvsp[(1) - (1)]));
@@ -3881,7 +3881,7 @@ regular_print:
 
   case 153:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1511 "awkgram.y"
     {
                (yyval) = list_create((yyvsp[(1) - (1)]));
@@ -3890,15 +3890,13 @@ regular_print:
 
   case 154:
 
-/* Line 1806 of yacc.c  */
+/* Line 1821 of yacc.c  */
 #line 1515 "awkgram.y"
     {
                if ((yyvsp[(2) - (2)])->lasti->opcode == Op_push_i
                        && ((yyvsp[(2) - (2)])->lasti->memory->flags & 
(STRCUR|STRING)) == 0
                ) {
                        NODE *n = (yyvsp[(2) - (2)])->lasti->memory;
-                       int tval;
-
                        (void) force_number(n);
                        negate_num(n);                  
                        (yyval) = (yyvsp[(2) - (2)]);
@@ -3912,8 +3910,8 @@ regular_print:
 
   case 155:
 
-/* Line 1806 of yacc.c  */
-#line 1532 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1530 "awkgram.y"
     {
            /*
             * was: $$ = $2
@@ -3927,8 +3925,8 @@ regular_print:
 
   case 156:
 
-/* Line 1806 of yacc.c  */
-#line 1545 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1543 "awkgram.y"
     {
                func_use((yyvsp[(1) - (1)])->lasti->func_name, FUNC_USE);
                (yyval) = (yyvsp[(1) - (1)]);
@@ -3937,8 +3935,8 @@ regular_print:
 
   case 157:
 
-/* Line 1806 of yacc.c  */
-#line 1550 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1548 "awkgram.y"
     {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@ -3975,8 +3973,8 @@ regular_print:
 
   case 158:
 
-/* Line 1806 of yacc.c  */
-#line 1586 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1584 "awkgram.y"
     {
                param_sanity((yyvsp[(3) - (4)]));
                (yyvsp[(1) - (4)])->opcode = Op_func_call;
@@ -3994,43 +3992,43 @@ regular_print:
 
   case 159:
 
-/* Line 1806 of yacc.c  */
-#line 1603 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1601 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 160:
 
-/* Line 1806 of yacc.c  */
-#line 1605 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1603 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 161:
 
-/* Line 1806 of yacc.c  */
-#line 1610 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1608 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 162:
 
-/* Line 1806 of yacc.c  */
-#line 1612 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1610 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (2)]); }
     break;
 
   case 163:
 
-/* Line 1806 of yacc.c  */
-#line 1617 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1615 "awkgram.y"
     {  (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 164:
 
-/* Line 1806 of yacc.c  */
-#line 1619 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1617 "awkgram.y"
     {
                (yyval) = list_merge((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
          }
@@ -4038,8 +4036,8 @@ regular_print:
 
   case 165:
 
-/* Line 1806 of yacc.c  */
-#line 1626 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1624 "awkgram.y"
     {
                INSTRUCTION *ip = (yyvsp[(1) - (1)])->lasti; 
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@ -4057,8 +4055,8 @@ regular_print:
 
   case 166:
 
-/* Line 1806 of yacc.c  */
-#line 1643 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1641 "awkgram.y"
     {
                INSTRUCTION *t = (yyvsp[(2) - (3)]);
                if ((yyvsp[(2) - (3)]) == NULL) {
@@ -4076,15 +4074,15 @@ regular_print:
 
   case 167:
 
-/* Line 1806 of yacc.c  */
-#line 1660 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1658 "awkgram.y"
     {  (yyval) = (yyvsp[(1) - (1)]); }
     break;
 
   case 168:
 
-/* Line 1806 of yacc.c  */
-#line 1662 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1660 "awkgram.y"
     {
                (yyval) = list_merge((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
          }
@@ -4092,15 +4090,15 @@ regular_print:
 
   case 169:
 
-/* Line 1806 of yacc.c  */
-#line 1669 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1667 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (2)]); }
     break;
 
   case 170:
 
-/* Line 1806 of yacc.c  */
-#line 1674 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1672 "awkgram.y"
     {
                char *var_name = (yyvsp[(1) - (1)])->lextok;
 
@@ -4112,8 +4110,8 @@ regular_print:
 
   case 171:
 
-/* Line 1806 of yacc.c  */
-#line 1682 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1680 "awkgram.y"
     {
                char *arr = (yyvsp[(1) - (2)])->lextok;
                (yyvsp[(1) - (2)])->memory = variable((yyvsp[(1) - 
(2)])->source_line, arr, Node_var_new);
@@ -4124,8 +4122,8 @@ regular_print:
 
   case 172:
 
-/* Line 1806 of yacc.c  */
-#line 1692 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1690 "awkgram.y"
     {
                INSTRUCTION *ip = (yyvsp[(1) - (1)])->nexti;
                if (ip->opcode == Op_push
@@ -4141,8 +4139,8 @@ regular_print:
 
   case 173:
 
-/* Line 1806 of yacc.c  */
-#line 1704 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1702 "awkgram.y"
     {
                (yyval) = list_append((yyvsp[(2) - (3)]), (yyvsp[(1) - (3)]));
                if ((yyvsp[(3) - (3)]) != NULL)
@@ -4152,8 +4150,8 @@ regular_print:
 
   case 174:
 
-/* Line 1806 of yacc.c  */
-#line 1713 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1711 "awkgram.y"
     {
                (yyvsp[(1) - (1)])->opcode = Op_postincrement;
          }
@@ -4161,8 +4159,8 @@ regular_print:
 
   case 175:
 
-/* Line 1806 of yacc.c  */
-#line 1717 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1715 "awkgram.y"
     {
                (yyvsp[(1) - (1)])->opcode = Op_postdecrement;
          }
@@ -4170,50 +4168,50 @@ regular_print:
 
   case 176:
 
-/* Line 1806 of yacc.c  */
-#line 1720 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1718 "awkgram.y"
     { (yyval) = NULL; }
     break;
 
   case 178:
 
-/* Line 1806 of yacc.c  */
-#line 1728 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1726 "awkgram.y"
     { yyerrok; }
     break;
 
   case 179:
 
-/* Line 1806 of yacc.c  */
-#line 1732 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1730 "awkgram.y"
     { yyerrok; }
     break;
 
   case 182:
 
-/* Line 1806 of yacc.c  */
-#line 1741 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1739 "awkgram.y"
     { yyerrok; }
     break;
 
   case 183:
 
-/* Line 1806 of yacc.c  */
-#line 1745 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1743 "awkgram.y"
     { (yyval) = (yyvsp[(1) - (1)]); yyerrok; }
     break;
 
   case 184:
 
-/* Line 1806 of yacc.c  */
-#line 1749 "awkgram.y"
+/* Line 1821 of yacc.c  */
+#line 1747 "awkgram.y"
     { yyerrok; }
     break;
 
 
 
-/* Line 1806 of yacc.c  */
-#line 4229 "awkgram.c"
+/* Line 1821 of yacc.c  */
+#line 4227 "awkgram.c"
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4444,7 +4442,7 @@ yyreturn:
 
 
 /* Line 2067 of yacc.c  */
-#line 1751 "awkgram.y"
+#line 1749 "awkgram.y"
 
 
 struct token {
diff --git a/awkgram.y b/awkgram.y
index 04d2e08..03d93ae 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -1517,8 +1517,6 @@ non_post_simp_exp
                        && ($2->lasti->memory->flags & (STRCUR|STRING)) == 0
                ) {
                        NODE *n = $2->lasti->memory;
-                       int tval;
-
                        (void) force_number(n);
                        negate_num(n);                  
                        $$ = $2;
diff --git a/builtin.c b/builtin.c
index 5a63977..5049bfe 100644
--- a/builtin.c
+++ b/builtin.c
@@ -671,7 +671,7 @@ format_tree(
        char *cend = &cpbufs[0].stackbuf[sizeof(cpbufs[0].stackbuf)];
        char *cp;
        const char *fill;
-       AWKNUM tmpval;
+       AWKNUM tmpval = 0.0;
        char signchar = FALSE;
        size_t len;
        int zero_flag = FALSE;
diff --git a/doc/gawk.1 b/doc/gawk.1
index 9f6beca..6bb7388 100644
--- a/doc/gawk.1
+++ b/doc/gawk.1
@@ -1178,7 +1178,7 @@ the version of
 The rounding mode to use for arbitrary precision arithmetic on
 numbers, by default \fB"N"\fR (IEEE-754 roundTiesToEven mode).
 The accepted values are
-\fB"N"\fR or \fB"n"\fR for roundTowardPositive,
+\fB"N"\fR or \fB"n"\fR for roundTiesToEven,
 \fB"U"\fR or \fB"u"\fR for roundTowardPositive,
 \fB"D"\fR or \fB"d"\fR for roundTowardNegative,
 \fB"Z"\fR or \fB"z"\fR for roundTowardZero,
diff --git a/doc/gawk.info b/doc/gawk.info
index 6c94a6a..3ca10d7 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -1,4 +1,4 @@
-This is gawk.info, produced by makeinfo version 4.13 from gawk.texi.
+This is gawk.info, produced by makeinfo version 4.8 from gawk.texi.
 
 INFO-DIR-SECTION Text creation and manipulation
 START-INFO-DIR-ENTRY
@@ -760,7 +760,7 @@ A Rose by Any Other Name
 ========================
 
 The `awk' language has evolved over the years. Full details are
-provided in *note Language History::.  The language described in this
+provided in *Note Language History::.  The language described in this
 Info file is often referred to as "new `awk'" (`nawk').
 
    Because of this, there are systems with multiple versions of `awk'.
@@ -821,78 +821,78 @@ illustrates the concept currently being described.
    While this Info file is aimed principally at people who have not been
 exposed to `awk', there is a lot of information here that even the `awk'
 expert should find useful.  In particular, the description of POSIX
-`awk' and the example programs in *note Library Functions::, and in
-*note Sample Programs::, should be of interest.
+`awk' and the example programs in *Note Library Functions::, and in
+*Note Sample Programs::, should be of interest.
 
-   *note Getting Started::, provides the essentials you need to know to
+   *Note Getting Started::, provides the essentials you need to know to
 begin using `awk'.
 
-   *note Invoking Gawk::, describes how to run `gawk', the meaning of
+   *Note Invoking Gawk::, describes how to run `gawk', the meaning of
 its command-line options, and how it finds `awk' program source files.
 
-   *note Regexp::, introduces regular expressions in general, and in
+   *Note Regexp::, introduces regular expressions in general, and in
 particular the flavors supported by POSIX `awk' and `gawk'.
 
-   *note Reading Files::, describes how `awk' reads your data.  It
+   *Note Reading Files::, describes how `awk' reads your data.  It
 introduces the concepts of records and fields, as well as the `getline'
 command.  I/O redirection is first described here.  Network I/O is also
 briefly introduced here.
 
-   *note Printing::, describes how `awk' programs can produce output
+   *Note Printing::, describes how `awk' programs can produce output
 with `print' and `printf'.
 
-   *note Expressions::, describes expressions, which are the basic
+   *Note Expressions::, describes expressions, which are the basic
 building blocks for getting most things done in a program.
 
-   *note Patterns and Actions::, describes how to write patterns for
+   *Note Patterns and Actions::, describes how to write patterns for
 matching records, actions for doing something when a record is matched,
 and the built-in variables `awk' and `gawk' use.
 
-   *note Arrays::, covers `awk''s one-and-only data structure:
+   *Note Arrays::, covers `awk''s one-and-only data structure:
 associative arrays.  Deleting array elements and whole arrays is also
 described, as well as sorting arrays in `gawk'.  It also describes how
 `gawk' provides arrays of arrays.
 
-   *note Functions::, describes the built-in functions `awk' and `gawk'
+   *Note Functions::, describes the built-in functions `awk' and `gawk'
 provide, as well as how to define your own functions.
 
-   *note Internationalization::, describes special features in `gawk'
+   *Note Internationalization::, describes special features in `gawk'
 for translating program messages into different languages at runtime.
 
-   *note Advanced Features::, describes a number of `gawk'-specific
+   *Note Advanced Features::, describes a number of `gawk'-specific
 advanced features.  Of particular note are the abilities to have
 two-way communications with another process, perform TCP/IP networking,
 and profile your `awk' programs.
 
-   *note Library Functions::, and *note Sample Programs::, provide many
+   *Note Library Functions::, and *Note Sample Programs::, provide many
 sample `awk' programs.  Reading them allows you to see `awk' solving
 real problems.
 
-   *note Debugger::, describes the `awk' debugger.
+   *Note Debugger::, describes the `awk' debugger.
 
-   *note Language History::, describes how the `awk' language has
+   *Note Language History::, describes how the `awk' language has
 evolved since its first release to present.  It also describes how
 `gawk' has acquired features over time.
 
-   *note Installation::, describes how to get `gawk', how to compile it
+   *Note Installation::, describes how to get `gawk', how to compile it
 on POSIX-compatible systems, and how to compile and use it on different
 non-POSIX systems.  It also describes how to report bugs in `gawk' and
 where to get other freely available `awk' implementations.
 
-   *note Notes::, describes how to disable `gawk''s extensions, as well
+   *Note Notes::, describes how to disable `gawk''s extensions, as well
 as how to contribute new code to `gawk', how to write extension
 libraries, and some possible future directions for `gawk' development.
 
-   *note Basic Concepts::, provides some very cursory background
+   *Note Basic Concepts::, provides some very cursory background
 material for those who are completely unfamiliar with computer
 programming.  Also centralized there is a discussion of some of the
 issues surrounding floating-point numbers.
 
-   The *note Glossary::, defines most, if not all, the significant
+   The *Note Glossary::, defines most, if not all, the significant
 terms used throughout the book.  If you find terms that you aren't
 familiar with, try looking them up here.
 
-   *note Copying::, and *note GNU Free Documentation License::, present
+   *Note Copying::, and *Note GNU Free Documentation License::, present
 the licenses that cover the `gawk' source code and this Info file,
 respectively.
 
@@ -1008,7 +1008,7 @@ Guide'.
    This edition maintains the basic structure of the previous editions.
 For Edition 4.0, the content has been thoroughly reviewed and updated.
 All references to versions prior to 4.0 have been removed.  Of
-significant note for this edition is *note Debugger::.
+significant note for this edition is *Note Debugger::.
 
    `GAWK: Effective AWK Programming' will undoubtedly continue to
 evolve.  An electronic version comes with the `gawk' distribution from
@@ -1020,7 +1020,7 @@ electronically.
 
    (1) GNU stands for "GNU's not Unix."
 
-   (2) The terminology "GNU/Linux" is explained in the *note Glossary::.
+   (2) The terminology "GNU/Linux" is explained in the *Note Glossary::.
 
 
 File: gawk.info,  Node: How To Contribute,  Next: Acknowledgments,  Prev: 
Manual History,  Up: Preface
@@ -1123,7 +1123,7 @@ byte-code interpreter, including the debugger, and the 
additional
 modifications for support of arbitrary precision arithmetic.  Stephen
 Davies contributed to the effort to bring the byte-code changes into
 the mainstream code base.  Efraim Yawitz contributed the initial text
-of *note Debugger::.  John Haque contributed the initial text of *note
+of *Note Debugger::.  John Haque contributed the initial text of *Note
 Arbitrary Precision Arithmetic::.
 
    I would like to thank Brian Kernighan for invaluable assistance
@@ -1258,7 +1258,7 @@ programs from shell scripts, because it avoids the need 
for a separate
 file for the `awk' program.  A self-contained shell script is more
 reliable because there are no other files to misplace.
 
-   *note Very Simple::, presents several short, self-contained programs.
+   *Note Very Simple::, presents several short, self-contained programs.
 
 
 File: gawk.info,  Node: Read Terminal,  Next: Long,  Prev: One-shot,  Up: 
Running gawk
@@ -1443,7 +1443,7 @@ programs, but this usually isn't very useful; the purpose 
of a comment
 is to help you or another person understand the program when reading it
 at a later time.
 
-     CAUTION: As mentioned in *note One-shot::, you can enclose small
+     CAUTION: As mentioned in *Note One-shot::, you can enclose small
      to medium programs in single quotes, in order to keep your shell
      scripts self-contained.  When doing so, _don't_ put an apostrophe
      (i.e., a single quote) into a comment (or anywhere else in your
@@ -1505,7 +1505,7 @@ Shell).  If you use the C shell, you're on your own.
      quotes.  The shell does no interpretation of the quoted text,
      passing it on verbatim to the command.  It is _impossible_ to
      embed a single quote inside single-quoted text.  Refer back to
-     *note Comments::, for an example of what happens if you try.
+     *Note Comments::, for an example of what happens if you try.
 
    * Double quotes protect most things between the opening and closing
      quotes.  The shell does at least variable and command substitution
@@ -1517,7 +1517,7 @@ Shell).  If you use the C shell, you're on your own.
      the characters `$', ``', `\', and `"', all of which must be
      preceded by a backslash within double-quoted text if they are to
      be passed on literally to the program.  (The leading backslash is
-     stripped first.)  Thus, the example seen in *note Read Terminal::,
+     stripped first.)  Thus, the example seen in *Note Read Terminal::,
      is applicable:
 
           $ awk "BEGIN { print \"Don't Panic!\" }"
@@ -1672,7 +1672,7 @@ Miscellaneous File Operations: (emacs)Misc File Ops, for 
more
 information).  Using this information, create your own `BBS-list' and
 `inventory-shipped' files and practice what you learn in this Info file.
 
-   If you are using the stand-alone version of Info, see *note Extract
+   If you are using the stand-alone version of Info, see *Note Extract
 Program::, for an `awk' program that extracts these data files from
 `gawk.texi', the Texinfo source file for this Info file.
 
@@ -2014,7 +2014,7 @@ minor node could also be written this way:
    ---------- Footnotes ----------
 
    (1) The `?' and `:' referred to here is the three-operand
-conditional expression described in *note Conditional Exp::.  Splitting
+conditional expression described in *Note Conditional Exp::.  Splitting
 lines after `?' and `:' is a minor `gawk' extension; if `--posix' is
 specified (*note Options::), then this extension is disabled.
 
@@ -2037,7 +2037,7 @@ determining the type of a variable, and array sorting.
 
    As we develop our presentation of the `awk' language, we introduce
 most of the variables and many of the functions. They are described
-systematically in *note Built-in Variables::, and *note Built-in::.
+systematically in *Note Built-in Variables::, and *Note Built-in::.
 
 
 File: gawk.info,  Node: When,  Prev: Other Features,  Up: Getting Started
@@ -2195,7 +2195,7 @@ The following list describes options mandated by the 
POSIX standard:
      This is useful if you have file names that start with `-', or in
      shell scripts, if you have file names that will be specified by
      the user that could start with `-'.  It is also useful for passing
-     options on to the `awk' program; see *note Getopt Function::.
+     options on to the `awk' program; see *Note Getopt Function::.
 
    The following list describes `gawk'-specific options:
 
@@ -2214,7 +2214,7 @@ The following list describes options mandated by the 
POSIX standard:
      Specify "compatibility mode", in which the GNU extensions to the
      `awk' language are disabled, so that `gawk' behaves just like
      Brian Kernighan's version `awk'.  *Note POSIX/GNU::, which
-     summarizes the extensions.  Also see *note Compatibility Mode::.
+     summarizes the extensions.  Also see *Note Compatibility Mode::.
 
 `-C'
 `--copyright'
@@ -2426,7 +2426,7 @@ if they had been concatenated together into one big file. 
 This is
 useful for creating libraries of `awk' functions.  These functions can
 be written once and then retrieved from a standard place, instead of
 having to be included into each individual program.  (As mentioned in
-*note Definition Syntax::, function names must be unique.)
+*Note Definition Syntax::, function names must be unique.)
 
    With standard `awk', library functions can still be used, even if
 the program is entered at the terminal, by specifying `-f /dev/tty'.
@@ -2484,7 +2484,7 @@ File: gawk.info,  Node: Other Arguments,  Next: Naming 
Standard Input,  Prev: Op
 Any additional arguments on the command line are normally treated as
 input files to be processed in the order specified.   However, an
 argument that has the form `VAR=VALUE', assigns the value VALUE to the
-variable VAR--it does not specify a file at all.  (See *note Assignment
+variable VAR--it does not specify a file at all.  (See *Note Assignment
 Options::.)
 
    All these arguments are made available to your `awk' program in the
@@ -2804,7 +2804,7 @@ reducing the need for writing complex and tedious command 
lines.  In
 particular, address@hidden' is very useful for writing CGI scripts to be run
 from web pages.
 
-   As mentioned in *note AWKPATH Variable::, the current directory is
+   As mentioned in *Note AWKPATH Variable::, the current directory is
 always searched first for source files, before searching in `AWKPATH',
 and this also applies to files named with address@hidden'.
 
@@ -2822,7 +2822,7 @@ they will _not_ be in the next release).
    The process-related special files `/dev/pid', `/dev/ppid',
 `/dev/pgrpid', and `/dev/user' were deprecated in `gawk' 3.1, but still
 worked.  As of version 4.0, they are no longer interpreted specially by
-`gawk'.  (Use `PROCINFO' instead; see *note Auto-set::.)
+`gawk'.  (Use `PROCINFO' instead; see *Note Auto-set::.)
 
 
 File: gawk.info,  Node: Undocumented,  Prev: Obsolete,  Up: Invoking Gawk
@@ -3015,7 +3015,7 @@ with a backslash have special meaning in regexps.  *Note 
GNU Regexp
 Operators::.
 
    In a regexp, a backslash before any character that is not in the
-previous list and not listed in *note GNU Regexp Operators::, means
+previous list and not listed in *Note GNU Regexp Operators::, means
 that the next character should be taken literally, even if it would
 normally be a regexp operator.  For example, `/a\+b/' matches the three
 characters `a+b'.
@@ -3030,7 +3030,7 @@ character not shown in the previous list.
      early, as soon as `awk' reads your program.
 
    * `gawk' processes both regexp constants and dynamic regexps (*note
-     Computed Regexps::), for the special operators listed in *note GNU
+     Computed Regexps::), for the special operators listed in *Note GNU
      Regexp Operators::.
 
    * A backslash before any other character means to treat that
@@ -3059,7 +3059,7 @@ Advanced Notes: Escape Sequences for Metacharacters
 ---------------------------------------------------
 
 Suppose you use an octal or hexadecimal escape to represent a regexp
-metacharacter.  (See *note Regexp Operators::.)  Does `awk' treat the
+metacharacter.  (See *Note Regexp Operators::.)  Does `awk' treat the
 character as a literal character or as a regexp operator?
 
    Historically, such characters were taken literally.  (d.c.)
@@ -3079,7 +3079,7 @@ You can combine regular expressions with special 
characters, called
 "regular expression operators" or "metacharacters", to increase the
 power and versatility of regular expressions.
 
-   The escape sequences described in *note Escape Sequences::, are
+   The escape sequences described in *Note Escape Sequences::, are
 valid inside a regexp.  They are introduced by a `\' and are recognized
 and converted into corresponding real characters as the very first step
 in processing regexps.
@@ -3129,7 +3129,7 @@ sequences and that are not listed in the table stand for 
themselves:
      the characters that are enclosed in the square brackets.  For
      example, `[MVX]' matches any one of the characters `M', `V', or
      `X' in a string.  A full discussion of what can be inside the
-     square brackets of a bracket expression is given in *note Bracket
+     square brackets of a bracket expression is given in *Note Bracket
      Expressions::.
 
 `[^ ...]'
@@ -3256,7 +3256,7 @@ those listed between the opening and closing square 
brackets.
 characters separated by a hyphen.  It matches any single character that
 sorts between the two characters, based upon the system's native
 character set.  For example, `[0-9]' is equivalent to `[0123456789]'.
-(See *note Ranges and Locales::, for an explanation of how the POSIX
+(See *Note Ranges and Locales::, for an explanation of how the POSIX
 standard and `gawk' have changed over time.  This is mainly of
 historical interest.)
 
@@ -3282,7 +3282,7 @@ differs between the United States and France.
 
    A character class is only valid in a regexp _inside_ the brackets of
 a bracket expression.  Character classes consist of `[:', a keyword
-denoting the class, and `:]'.  *note table-char-classes:: lists the
+denoting the class, and `:]'.  *Note table-char-classes:: lists the
 character classes defined by the POSIX standard.
 
 Class       Meaning
@@ -3413,7 +3413,7 @@ GNU `\b' appears to be the lesser of two evils.
 
 No options
      In the default case, `gawk' provides all the facilities of POSIX
-     regexps and the GNU regexp operators described in *note Regexp
+     regexps and the GNU regexp operators described in *Note Regexp
      Operators::.
 
 `--posix'
@@ -3966,7 +3966,7 @@ that the multiplication is done before the `$' operation; 
they are
 necessary whenever there is a binary operator in the field-number
 expression.  This example, then, prints the hours of operation (the
 fourth field) for every line of the file `BBS-list'.  (All of the `awk'
-operators are listed, in order of decreasing precedence, in *note
+operators are listed, in order of decreasing precedence, in *Note
 Precedence::.)
 
    If the field number you compute is zero, you get the entire record.
@@ -3976,7 +3976,7 @@ not allowed; trying to reference one usually terminates 
the program.
 negative field number.  `gawk' notices this and terminates your
 program.  Other `awk' implementations may behave differently.)
 
-   As mentioned in *note Fields::, `awk' stores the current record's
+   As mentioned in *Note Fields::, `awk' stores the current record's
 number of fields in the built-in variable `NF' (also *note Built-in
 Variables::).  The expression `$NF' is not a special feature--it is the
 direct consequence of evaluating `NF' and using its value as a field
@@ -5237,7 +5237,7 @@ in mind:
      probably by accident, and you should reconsider what it is you're
      trying to accomplish.
 
-   * *note Getline Summary::, presents a table summarizing the
+   * *Note Getline Summary::, presents a table summarizing the
      `getline' variants and which variables they can affect.  It is
      worth noting that those variants which do not use redirection can
      cause `FILENAME' to be updated if they cause `awk' to start
@@ -5249,7 +5249,7 @@ File: gawk.info,  Node: Getline Summary,  Prev: Getline 
Notes,  Up: Getline
 4.9.10 Summary of `getline' Variants
 ------------------------------------
 
-*note table-getline-variants:: summarizes the eight variants of
+*Note table-getline-variants:: summarizes the eight variants of
 `getline', listing which built-in variables are set by each one, and
 whether the variant is standard or a `gawk' extension.
 
@@ -5389,7 +5389,7 @@ and the `printf' statement for fancier formatting.  The 
`print'
 statement is not limited when computing _which_ values to print.
 However, with two exceptions, you cannot specify _how_ to print
 them--how many columns, whether to use exponential notation or not, and
-so on.  (For the exceptions, *note Output Separators::, and *note
+so on.  (For the exceptions, *note Output Separators::, and *Note
 OFMT::.)  For printing with specifications, you need the `printf'
 statement (*note Printf::).
 
@@ -5576,7 +5576,7 @@ that string.  `awk' uses the `sprintf()' function to do 
this conversion
 `sprintf()' function accepts a "format specification" that tells it how
 to format numbers (or strings), and that there are a number of
 different ways in which numbers can be formatted.  The different format
-specifications are discussed more fully in *note Control Letters::.
+specifications are discussed more fully in *Note Control Letters::.
 
    The built-in variable `OFMT' contains the default format
 specification that `print' uses with `sprintf()' when it wants to
@@ -5626,8 +5626,8 @@ A simple `printf' statement looks like this:
      printf FORMAT, ITEM1, ITEM2, ...
 
 The entire list of arguments may optionally be enclosed in parentheses.
-The parentheses are necessary if any of the item expressions use the `>'
-relational operator; otherwise, it can be confused with an output
+The parentheses are necessary if any of the item expressions use the
+`>' relational operator; otherwise, it can be confused with an output
 redirection (*note Redirection::).
 
    The difference between `printf' and `print' is the FORMAT argument.
@@ -5833,12 +5833,12 @@ which they may appear:
           -| 1,234,567                 Results in US English UTF locale
 
      For more information about locales and internationalization issues,
-     see *note Locales::.
+     see *Note Locales::.
 
           NOTE: The `'' flag is a nice feature, but its use complicates
           things: it becomes difficult to use it in command-line
           programs.  For information on appropriate quoting tricks, see
-          *note Quoting::.
+          *Note Quoting::.
 
 `WIDTH'
      This is a number specifying the desired minimum width of a field.
@@ -6079,7 +6079,7 @@ work identically for `printf':
      The message is built using string concatenation and saved in the
      variable `m'.  It's then sent down the pipeline to the `mail'
      program.  (The parentheses group the items to concatenate--see
-     *note Concatenation::.)
+     *Note Concatenation::.)
 
      The `close()' function is called here because it's a good idea to
      close the pipe as soon as all the intended output has been sent to
@@ -6264,7 +6264,7 @@ essential pieces of information for making a networking 
connection.
 These file names are used with the `|&' operator for communicating with
 a coprocess (*note Two-way I/O::).  This is an advanced feature,
 mentioned here only for completeness.  Full discussion is delayed until
-*note TCP/IP Networking::.
+*Note TCP/IP Networking::.
 
 
 File: gawk.info,  Node: Special Caveats,  Prev: Special Network,  Up: Special 
Files
@@ -6411,7 +6411,7 @@ to `close()'.  As in any other call to `close()', the 
first argument is
 the name of the command or special file used to start the coprocess.
 The second argument should be a string, with either of the values
 `"to"' or `"from"'.  Case does not matter.  As this is an advanced
-feature, a more complete discussion is delayed until *note Two-way
+feature, a more complete discussion is delayed until *Note Two-way
 I/O::, which discusses it in more detail and gives an example.
 
 Advanced Notes: Using `close()''s Return Value
@@ -6600,7 +6600,7 @@ option; *note Nondecimal Data::.)  If you have octal or 
hexadecimal
 data, you can use the `strtonum()' function (*note String Functions::)
 to convert the data into a number.  Most of the time, you will want to
 use octal or hexadecimal constants when working with the built-in bit
-manipulation functions; see *note Bitwise Functions::, for more
+manipulation functions; see *Note Bitwise Functions::, for more
 information.
 
    Unlike some early C implementations, `8' and `9' are not valid in
@@ -6883,7 +6883,7 @@ your programs, just port `gawk' itself.  *Note Print::, 
for more
 information on the `print' statement.
 
    And, once again, where you are can matter when it comes to converting
-between numbers and strings.  In *note Locales::, we mentioned that the
+between numbers and strings.  In *Note Locales::, we mentioned that the
 local character set and language (the locale) can affect how `gawk'
 matches characters.  The locale also affects numeric formats.  In
 particular, for `awk' programs, it affects the decimal point character.
@@ -6924,7 +6924,7 @@ character.  (`gawk' also uses the locale's decimal point 
character when
 in POSIX mode, either via `--posix', or the `POSIXLY_CORRECT'
 environment variable.)
 
-   *note table-locale-affects:: describes the cases in which the
+   *Note table-locale-affects:: describes the cases in which the
 locale's decimal point character is used and when a period is used.
 Some of these features have not been described yet.
 
@@ -6940,7 +6940,7 @@ Table 6.1: Locale Decimal Point versus A Period
    Finally, modern day formal standards and IEEE standard floating point
 representation can have an unusual but important effect on the way
 `gawk' converts some special string values to numbers.  The details are
-presented in *note POSIX Floating Point Problems::.
+presented in *Note POSIX Floating Point Problems::.
 
    ---------- Footnotes ----------
 
@@ -7251,7 +7251,7 @@ righthand expression.  For example:
 The indices of `bar' are practically guaranteed to be different, because
 `rand()' returns different values each time it is called.  (Arrays and
 the `rand()' function haven't been covered yet.  *Note Arrays::, and
-see *note Numeric Functions::, for more information).  This example
+see *Note Numeric Functions::, for more information).  This example
 illustrates an important fact about assignment operators: the lefthand
 expression is only evaluated _once_.  It is up to the implementation as
 to which expression is evaluated first, the lefthand or the righthand.
@@ -7262,7 +7262,7 @@ Consider this example:
 
 The value of `a[3]' could be either two or four.
 
-   *note table-assign-ops:: lists the arithmetic assignment operators.
+   *Note table-assign-ops:: lists the arithmetic assignment operators.
 In each case, the righthand operand is an expression whose value is
 converted to a number.
 
@@ -7300,7 +7300,7 @@ A workaround is:
      awk '/[=]=/' /dev/null
 
    `gawk' does not have this problem, nor do the other freely available
-versions described in *note Other Versions::.
+versions described in *Note Other Versions::.
 
 
 File: gawk.info,  Node: Increment Ops,  Prev: Assignment Ops,  Up: All 
Operators
@@ -7565,7 +7565,7 @@ File: gawk.info,  Node: Comparison Operators,  Next: 
POSIX String Comparison,  P
 
 "Comparison expressions" compare strings or numbers for relationships
 such as equality.  They are written using "relational operators", which
-are a superset of those in C.  *note table-relational-ops:: describes
+are a superset of those in C.  *Note table-relational-ops:: describes
 them.
 
 Expression         Result
@@ -7741,8 +7741,8 @@ Boolean operators are:
           if ($0 ~ /2400/ || $0 ~ /foo/) print
 
      The subexpression BOOLEAN2 is evaluated only if BOOLEAN1 is false.
-     This can make a difference when BOOLEAN2 contains expressions that
-     have side effects.
+     This can make a difference when BOOLEAN2 contains expressions
+     that have side effects.
 
 `! BOOLEAN'
      True if BOOLEAN is false.  For example, the following program
@@ -7752,7 +7752,7 @@ Boolean operators are:
           BEGIN { if (! ("HOME" in ENVIRON))
                          print "no home!" }
 
-     (The `in' operator is described in *note Reference to Elements::.)
+     (The `in' operator is described in *Note Reference to Elements::.)
 
    The `&&' and `||' operators are called "short-circuit" operators
 because of the way they work.  Evaluation of the full expression is
@@ -7782,7 +7782,7 @@ using `!'. The next rule prints lines as long as 
`interested' is true.
 When a line is seen whose first field is `END', `interested' is toggled
 back to false.(1)
 
-     NOTE: The `next' statement is discussed in *note Next Statement::.
+     NOTE: The `next' statement is discussed in *Note Next Statement::.
      `next' tells `awk' to skip the rest of the rules, get the next
      record, and start processing the rules over again at the top.  The
      reason it's there is to avoid printing the bracketing `START' and
@@ -7885,7 +7885,7 @@ User-defined::).
    As an advanced feature, `gawk' provides indirect function calls,
 which is a way to choose the function to call at runtime, instead of
 when you write the source code to your program. We defer discussion of
-this feature until later; see *note Indirect Calls::.
+this feature until later; see *Note Indirect Calls::.
 
    Like every other expression, the function call has a value, which is
 computed by the function based on the arguments you give it.  In this
@@ -8045,12 +8045,12 @@ make several function calls, _per input character_, to 
find the record
 terminator.
 
    According to POSIX, string comparison is also affected by locales
-(similar to regular expressions).  The details are presented in *note
+(similar to regular expressions).  The details are presented in *Note
 POSIX String Comparison::.
 
    Finally, the locale affects the value of the decimal point character
 used when `gawk' parses input data.  This is discussed in detail in
-*note Conversion::.
+*Note Conversion::.
 
 
 File: gawk.info,  Node: Patterns and Actions,  Next: Arrays,  Prev: 
Expressions,  Up: Top
@@ -8151,7 +8151,7 @@ otherwise, it depends on only what has happened so far in 
the execution
 of the `awk' program.
 
    Comparison expressions, using the comparison operators described in
-*note Typing and Comparison::, are a very common kind of pattern.
+*Note Typing and Comparison::, are a very common kind of pattern.
 Regexp matching and nonmatching are also very common expressions.  The
 left operand of the `~' and `!~' operators is a string.  The right
 operand is either a constant regular expression enclosed in slashes
@@ -8217,7 +8217,7 @@ inside Boolean patterns.  Likewise, the special patterns 
`BEGIN', `END',
 expressions and cannot appear inside Boolean patterns.
 
    The precedence of the different operators which can appear in
-patterns is described in *note Precedence::.
+patterns is described in *Note Precedence::.
 
 
 File: gawk.info,  Node: Ranges,  Next: BEGIN/END,  Prev: Expression Patterns,  
Up: Pattern Overview
@@ -8403,7 +8403,7 @@ explicitly.
 `BEGIN' rule, because the implicit
 read-a-record-and-match-against-the-rules loop has not started yet.
 Similarly, those statements are not valid in an `END' rule, since all
-the input has been read.  (*Note Next Statement::, and see *note
+the input has been read.  (*Note Next Statement::, and see *Note
 Nextfile Statement::.)
 
 
@@ -8942,7 +8942,7 @@ Statement::.)
      }
 
    The `break' statement is also used to break out of the `switch'
-statement.  This is discussed in *note Switch Statement::.
+statement.  This is discussed in *Note Switch Statement::.
 
    The `break' statement has no meaning when used outside the body of a
 loop or `switch'.  However, although it was never documented,
@@ -9039,7 +9039,7 @@ beginning, in the following manner:
 Because of the `next' statement, the program's subsequent rules won't
 see the bad record.  The error message is redirected to the standard
 error output stream, as error messages should be.  For more detail see
-*note Special Files::.
+*Note Special Files::.
 
    If the `next' statement causes the end of the input to be reached,
 then the code in any `END' rules is executed.  *Note BEGIN/END::.
@@ -9210,7 +9210,7 @@ specific to `gawk' are marked with a pound sign (`#').
      string value of `"rw"' or `"wr"' indicates that all files should
      use binary I/O.  Any other string value is treated the same as
      `"rw"', but causes `gawk' to generate a warning message.
-     `BINMODE' is described in more detail in *note PC Using::.
+     `BINMODE' is described in more detail in *Note PC Using::.
 
      This variable is a `gawk' extension.  In other `awk'
      implementations (except `mawk', *note Other Versions::), or if
@@ -9523,7 +9523,7 @@ with a pound sign (`#').
           If this element exists in `PROCINFO', its value controls the
           order in which array indices will be processed by `for (index
           in array) ...' loops.  Since this is an advanced feature, we
-          defer the full description until later; see *note Scanning an
+          defer the full description until later; see *Note Scanning an
           Array::.
 
     `PROCINFO["strftime"]'
@@ -9561,7 +9561,7 @@ with a pound sign (`#').
 
      The `PROCINFO' array is also used to cause coprocesses to
      communicate over pseudo-ttys instead of through two-way pipes;
-     this is discussed further in *note Two-way I/O::.
+     this is discussed further in *Note Two-way I/O::.
 
      This array is a `gawk' extension.  In other `awk' implementations,
      or if `gawk' is in compatibility mode (*note Options::), it is not
@@ -9623,7 +9623,7 @@ File: gawk.info,  Node: ARGC and ARGV,  Prev: Auto-set,  
Up: Built-in Variables
 7.5.3 Using `ARGC' and `ARGV'
 -----------------------------
 
-*note Auto-set::, presented the following program describing the
+*Note Auto-set::, presented the following program describing the
 information contained in `ARGC' and `ARGV':
 
      $ awk 'BEGIN {
@@ -9679,7 +9679,7 @@ elements from `ARGV' (*note Delete::).
 
    All of these actions are typically done in the `BEGIN' rule, before
 actual processing of the input begins.  *Note Split Program::, and see
-*note Tee Program::, for examples of each way of removing elements from
+*Note Tee Program::, for examples of each way of removing elements from
 `ARGV'.  The following fragment processes `ARGV' in order to examine,
 and then remove, command-line options:
 
@@ -9861,7 +9861,7 @@ from English to French:
 Here we decided to translate the number one in both spelled-out and
 numeric form--thus illustrating that a single array can have both
 numbers and strings as indices.  In fact, array subscripts are always
-strings; this is discussed in more detail in *note Numeric Array
+strings; this is discussed in more detail in *Note Numeric Array
 Subscripts::.  Here, the number `1' isn't double-quoted, since `awk'
 automatically converts it to a string.
 
@@ -10081,7 +10081,7 @@ internal implementation of arrays and will vary from 
one version of
 
    * Set `PROCINFO["sorted_in"]' to the name of a user-defined function
      to be used for comparison of array elements. This advanced feature
-     is described later, in *note Array Sorting::.
+     is described later, in *Note Array Sorting::.
 
    The following special values for `PROCINFO["sorted_in"]' are
 available:
@@ -10191,7 +10191,7 @@ traversal.
      *note Delete::.)
 
    In addition, `gawk' provides built-in functions for sorting arrays;
-see *note Array Sorting Functions::.
+see *Note Array Sorting Functions::.
 
    ---------- Footnotes ----------
 
@@ -10901,7 +10901,7 @@ pound sign (`#'):
 
           asort(a, a, "descending")
 
-     The `asort()' function is described in more detail in *note Array
+     The `asort()' function is described in more detail in *Note Array
      Sorting Functions::.  `asort()' is a `gawk' extension; it is not
      available in compatibility mode (*note Options::).
 
@@ -10910,7 +10910,7 @@ pound sign (`#'):
      similarly to `asort()', however, the _indices_ are sorted, instead
      of the values. (Here too, `IGNORECASE' affects the sorting.)
 
-     The `asorti()' function is described in more detail in *note Array
+     The `asorti()' function is described in more detail in *Note Array
      Sorting Functions::.  `asorti()' is a `gawk' extension; it is not
      available in compatibility mode (*note Options::).
 
@@ -11393,7 +11393,7 @@ replacement string to determine what to generate.
 
    At both levels, `awk' looks for a defined set of characters that can
 come after a backslash.  At the lexical level, it looks for the escape
-sequences listed in *note Escape Sequences::.  Thus, for every `\' that
+sequences listed in *Note Escape Sequences::.  Thus, for every `\' that
 `awk' processes at the runtime level, you must type two backslashes at
 the lexical level.  When a character that is not valid for an escape
 sequence follows the `\', Brian Kernighan's `awk' and `gawk' both
@@ -11406,7 +11406,7 @@ Historically, the `sub()' and `gsub()' functions 
treated the two
 character sequence `\&' specially; this sequence was replaced in the
 generated text with a single `&'.  Any other `\' within the REPLACEMENT
 string that did not precede an `&' was passed through unchanged.  This
-is illustrated in *note table-sub-escapes::.
+is illustrated in *Note table-sub-escapes::.
 
       You type         `sub()' sees          `sub()' generates
       -------         ---------          --------------
@@ -11418,8 +11418,7 @@ is illustrated in *note table-sub-escapes::.
      `\\\\\\&'           `\\\&'            a literal `\\&'
          `\\q'             `\q'            a literal `\q'
 
-Table 9.1: Historical Escape Sequence Processing for `sub()' and
-`gsub()'
+Table 9.1: Historical Escape Sequence Processing for `sub()' and `gsub()'
 
 This table shows both the lexical-level processing, where an odd number
 of backslashes becomes an even number at the runtime level, as well as
@@ -11434,7 +11433,7 @@ get a literal `\' followed by the matched text.
 says that `sub()' and `gsub()' look for either a `\' or an `&' after
 the `\'. If either one follows a `\', that character is output
 literally.  The interpretation of `\' and `&' then becomes as shown in
-*note table-sub-posix-92::.
+*Note table-sub-posix-92::.
 
       You type         `sub()' sees          `sub()' generates
       -------         ---------          --------------
@@ -11461,7 +11460,7 @@ problems:
 submitted proposed text for a revised standard that reverts to rules
 that correspond more closely to the original existing practice. The
 proposed rules have special cases that make it possible to produce a
-`\' preceding the matched text. This is shown in *note
+`\' preceding the matched text. This is shown in *Note
 table-sub-proposed::.
 
       You type         `sub()' sees         `sub()' generates
@@ -11489,7 +11488,7 @@ except for one case.
    The POSIX rules state that `\&' in the replacement string produces a
 literal `&', `\\' produces a literal `\', and `\' followed by anything
 else is not special; the `\' is placed straight into the output.  These
-rules are presented in *note table-posix-sub::.
+rules are presented in *Note table-posix-sub::.
 
       You type         `sub()' sees         `sub()' generates
       -------         ---------         --------------
@@ -11520,7 +11519,7 @@ level, whenever `gawk' sees a `\', if the following 
character is a
 digit, then the text that matched the corresponding parenthesized
 subexpression is placed in the generated output.  Otherwise, no matter
 what character follows the `\', it appears in the generated text and
-the `\' does not, as shown in *note table-gensub-escapes::.
+the `\' does not, as shown in *Note table-gensub-escapes::.
 
        You type          `gensub()' sees         `gensub()' generates
        -------          ------------         -----------------
@@ -12049,7 +12048,7 @@ supports all of the conversions listed here.
 
    (5) If you don't understand any of this, don't worry about it; these
 facilities are meant to make it easier to "internationalize" programs.
-Other internationalization features are described in *note
+Other internationalization features are described in *Note
 Internationalization::.
 
    (6) This is because ISO C leaves the behavior of the C version of
@@ -12069,7 +12068,7 @@ File: gawk.info,  Node: Bitwise Functions,  Next: Type 
Functions,  Prev: Time Fu
    Many languages provide the ability to perform "bitwise" operations
 on two integer numbers.  In other words, the operation is performed on
 each successive pair of bits in the operands.  Three common operations
-are bitwise AND, OR, and XOR.  The operations are described in *note
+are bitwise AND, OR, and XOR.  The operations are described in *Note
 table-bitwise-ops::.
 
                      Bit Operator
@@ -12337,7 +12336,7 @@ act of a function calling itself is called "recursion".
 
    All the built-in functions return a value to their caller.
 User-defined functions can do also, using the `return' statement, which
-is described in detail in *note Return Statement::.  Many of the
+is described in detail in *Note Return Statement::.  Many of the
 subsequent examples in this minor node use the `return' statement.
 
    In many `awk' implementations, including `gawk', the keyword
@@ -13270,7 +13269,7 @@ internationalization:
      `"LC_MESSAGES"'.
 
      If you supply a value for CATEGORY, it must be a string equal to
-     one of the known locale categories described in *note Explaining
+     one of the known locale categories described in *Note Explaining
      gettext::.  You must also supply a text domain.  Use `TEXTDOMAIN'
      if you want to use the current domain.
 
@@ -13302,7 +13301,7 @@ internationalization:
      current binding for the given DOMAIN.
 
    To use these facilities in your `awk' program, follow the steps
-outlined in *note Explaining gettext::, like so:
+outlined in *Note Explaining gettext::, like so:
 
   1. Set the variable `TEXTDOMAIN' to the text domain of your program.
      This is best done in a `BEGIN' rule (*note BEGIN/END::), or it can
@@ -13718,7 +13717,13 @@ Numerical programming is an extensive area; if you 
need to develop
 sophisticated numerical algorithms then `gawk' may not be the ideal
 tool, and this documentation may not be sufficient.  It might require a
 book or two to communicate how to compute with ideal accuracy and
-precision, and the result often depends on the particular application.
+precision and the result often depends on the particular application.
+
+     NOTE: Accuracy is how close a floating-point calculation comes to
+     the real value.  However, precision usually refers to the number
+     of bits used to represent the number (see the Wikipedia article
+     (http://en.wikipedia.org/wiki/Accuracy_and_precision) for more
+     information).
 
    Binary floating-point representations and arithmetic are inexact.
 Simple values like 0.1 cannot be precisely represented using binary
@@ -13727,7 +13732,7 @@ numbers means that slight changes in the order of 
operations or the
 precision of intermediate storage can change the result. To make
 matters worse with arbitrary precision floating-point, you can set the
 precision before starting a computation, but then you cannot be sure of
-the final result.
+the number of significant decimal places in the final result.
 
    Sometimes you need to think more about what you really want and
 what's really happening. Consider the two numbers in the following
@@ -13804,7 +13809,7 @@ representations yield an unexpected result:
      -| 4
 
    Can computation using aribitrary precision help with the previous
-examples?  If you are impatient to know, see *note Exact Arithmetic::.
+examples?  If you are impatient to know, see *Note Exact Arithmetic::.
 
    Instead of aribitrary precision floating-point arithmetic, often all
 you need is an adjustment of your logic or a different order for the
@@ -13876,7 +13881,7 @@ range for exponents.  The context has the following 
primary components:
 `rounding'
      The rounding mode of this context.
 
-   *note table-ieee-formats:: lists the precision and exponent field
+   *Note table-ieee-formats:: lists the precision and exponent field
 values for the basic IEEE-754 binary formats:
 
 Name           Total bits     Precision      emin           emax
@@ -13899,12 +13904,12 @@ for numbers.  On most systems, this is IEEE-754 
floating-point format,
 corresponding to 64-bit binary with 53 bits of precision.
 
      NOTE: In case an underflow occurs, the standard allows, but does
-     not require, the smallest normal number to lose precision
-     gradually when an arithmetic operation is not exactly zero but is
-     too close to zero.  Such numbers do not have as many significant
-     digits as normal numbers, and are called "denormals" or
-     "subnormals".  The basic IEEE-754 binary formats support subnormal
-     numbers.
+     not require, the result from an arithmetic operation to be a
+     number smaller than the smallest nonzero normalized number. Such
+     numbers do not have as many significant digits as normal numbers,
+     and are called "denormals" or "subnormals". The alternative,
+     simply returning a zero, is called "flush to zero". The basic
+     IEEE-754 binary formats support subnormal numbers.
 
 
 File: gawk.info,  Node: Rounding Mode,  Next: Arbitrary Precision Floats,  
Prev: Floating-point Context,  Up: Arbitrary Precision Arithmetic
@@ -13916,7 +13921,7 @@ The "rounding mode" specifies the behavior for the 
results of numerical
 operations when discarding extra precision. Each rounding mode indicates
 how the least significant returned digit of a rounded result is to be
 calculated.  The `RNDMODE' variable (*note Setting Rounding Mode::)
-provides program level control over the rounding mode.  *note
+provides program level control over the rounding mode.  *Note
 table-rounding-modes:: lists the IEEE-754 defined rounding modes:
 
 Rounding Mode                    IEEE Name              `RNDMODE'
@@ -14175,11 +14180,16 @@ assignment to `PREC'.  The precision of a number is 
always the one that
 was used at the time of its creation, and there is no way for the user
 to explicitly change it afterwards. However, since the result of a
 floating-point arithmetic operation is always an arbitrary precision
-floating-point value--with a precision set by the value of `PREC'--the
-following workaround effectively accomplishes the desired behavior:
+floating-point value--with a precision set by the value of `PREC'--one
+of the following workarounds effectively accomplishes the desired
+behavior:
 
      x = x + 0.0
 
+   or:
+
+     x += 0.0
+
    ---------- Footnotes ----------
 
    (1) Dirk Laurie.  `Variable-precision Arithmetic Considered Perilous
@@ -14212,7 +14222,7 @@ get the job done:
      -| 1
 
    If adding more bits is good, perhaps adding even more bits of
-precicision is better?  Here is what happens if we use an even larger
+precision is better?  Here is what happens if we use an even larger
 value of `PREC':
 
      $ gawk -M -vPREC=201 'BEGIN { print (0.1 + 12.2 == 12.3) }'
@@ -14315,7 +14325,7 @@ floating-point values instead, the precision needed for 
correct output
    The result from an arithmetic operation with an integer and a
 floating-point value is a floating-point value with a precision equal
 to the working precision.  The following program calculates the eighth
-term in Sylvester's sequence using a recurrence:
+term in Sylvester's sequence(1) using a recurrence:
 
      $ gawk -M 'BEGIN {
      >   s = 2.0
@@ -14354,6 +14364,12 @@ reason for simply not using the following:
 
      gawk -M 'BEGIN { n = 13; print n % 2 }'
 
+   ---------- Footnotes ----------
+
+   (1) Weisstein, Eric W. `Sylvester's Sequence'. From MathWorld-A
+Wolfram Web Resource.
+`http://mathworld.wolfram.com/SylvestersSequence.html'
+
 
 File: gawk.info,  Node: MPFR and GMP Libraries,  Prev: Arbitrary Precision 
Integers,  Up: Arbitrary Precision Arithmetic
 
@@ -14384,7 +14400,7 @@ full detail, along with the basics of TCP/IP 
networking.  Finally,
 `gawk' can "profile" an `awk' program, making it possible to tune it
 for performance.
 
-   *note Dynamic Extensions::, discusses the ability to dynamically add
+   *Note Dynamic Extensions::, discusses the ability to dynamically add
 new built-in functions to `gawk'.  As this feature is still immature
 and likely to change, its description is relegated to an appendix.
 
@@ -14472,7 +14488,7 @@ of arrays inside `awk'.
 in a particular order that you, the programmer, choose.  `gawk' lets
 you do this.
 
-   *note Controlling Scanning::, describes how you can assign special,
+   *Note Controlling Scanning::, describes how you can assign special,
 pre-defined values to `PROCINFO["sorted_in"]' in order to control the
 order in which `gawk' will traverse an array during a `for' loop.
 
@@ -15220,14 +15236,14 @@ File: gawk.info,  Node: Library Functions,  Next: 
Sample Programs,  Prev: Advanc
 13 A Library of `awk' Functions
 *******************************
 
-*note User-defined::, describes how to write your own `awk' functions.
+*Note User-defined::, describes how to write your own `awk' functions.
 Writing functions is important, because it allows you to encapsulate
 algorithms and program tasks in a single place.  It simplifies
 programming, making program development more manageable, and making
 programs more readable.
 
    One valuable way to learn a new programming language is to _read_
-programs in that language.  To that end, this major node and *note
+programs in that language.  To that end, this major node and *Note
 Sample Programs::, provide a good-sized body of code for you to read,
 and hopefully, to learn from.
 
@@ -15236,16 +15252,16 @@ of the sample programs presented later in this Info 
file use these
 functions.  The functions are presented here in a progression from
 simple to complex.
 
-   *note Extract Program::, presents a program that you can use to
+   *Note Extract Program::, presents a program that you can use to
 extract the source code for these example library functions and
 programs from the Texinfo source for this Info file.  (This has already
 been done as part of the `gawk' distribution.)
 
    If you have written one or more useful, general-purpose `awk'
 functions and would like to contribute them to the `awk' user
-community, see *note How To Contribute::, for more information.
+community, see *Note How To Contribute::, for more information.
 
-   The programs in this major node and in *note Sample Programs::,
+   The programs in this major node and in *Note Sample Programs::,
 freely use features that are `gawk'-specific.  Rewriting these programs
 for different implementations of `awk' is pretty straightforward.
 
@@ -15347,7 +15363,7 @@ program, leading to bugs that are very difficult to 
track down:
 single associative array to hold the values needed by the library
 function(s), or "package."  This significantly decreases the number of
 actual global names in use.  For example, the functions described in
-*note Passwd Functions::, might have used array elements
+*Note Passwd Functions::, might have used array elements
 `PW_data["inited"]', `PW_data["total"]', `PW_data["count"]', and
 `PW_data["awklib"]', instead of `_pw_inited', `_pw_awklib', `_pw_total',
 and `_pw_count'.
@@ -15785,7 +15801,7 @@ File: gawk.info,  Node: Gettimeofday Function,  Prev: 
Join Function,  Up: Genera
 13.2.7 Managing the Time of Day
 -------------------------------
 
-The `systime()' and `strftime()' functions described in *note Time
+The `systime()' and `strftime()' functions described in *Note Time
 Functions::, provide the minimum functionality necessary for dealing
 with the time of day in human readable form.  While `strftime()' is
 extensive, the control formats are not necessarily easy to remember or
@@ -15857,7 +15873,7 @@ current time formatted in the same way as the `date' 
utility:
 
    The string indices are easier to use and read than the various
 formats required by `strftime()'.  The `alarm' program presented in
-*note Alarm Program::, uses this function.  A more general design for
+*Note Alarm Program::, uses this function.  A more general design for
 the `gettimeofday()' function would have allowed the user to supply an
 optional timestamp value to use instead of the current time.
 
@@ -15958,7 +15974,7 @@ solves the problem:
 
      END  { endfile(_filename_) }
 
-   *note Wc Program::, shows how this library function can be used and
+   *Note Wc Program::, shows how this library function can be used and
 how it simplifies writing the main program.
 
 Advanced Notes: So Why Does `gawk' have `BEGINFILE' and `ENDFILE'?
@@ -16012,7 +16028,7 @@ over with it from the top.  For lack of a better name, 
we'll call it
 
    This code relies on the `ARGIND' variable (*note Auto-set::), which
 is specific to `gawk'.  If you are not using `gawk', you can use ideas
-presented in *note Filetrans Function::, to either update `ARGIND' on
+presented in *Note Filetrans Function::, to either update `ARGIND' on
 your own or modify this code as appropriate.
 
    The `rewind()' function also relies on the `nextfile' keyword (*note
@@ -16045,7 +16061,7 @@ program to your `awk' program:
 
    This works, because the `getline' won't be fatal.  Removing the
 element from `ARGV' with `delete' skips the file (since it's no longer
-in the list).  See also *note ARGC and ARGV::.
+in the list).  See also *Note ARGC and ARGV::.
 
 
 File: gawk.info,  Node: Empty Files,  Next: Ignoring Assigns,  Prev: File 
Checking,  Up: Data File Management
@@ -16063,7 +16079,7 @@ program code.
 
    Using `gawk''s `ARGIND' variable (*note Built-in Variables::), it is
 possible to detect when an empty data file has been skipped.  Similar
-to the library file presented in *note Filetrans Function::, the
+to the library file presented in *Note Filetrans Function::, the
 following library file calls a function named `zerofile()' that the
 user must provide.  The arguments passed are the file name and the
 position in `ARGV' where it was found:
@@ -16431,7 +16447,7 @@ that it does not try to interpret the `-a', etc., as 
its own options.
      `Optind', so that `awk' does not try to process the command-line
      options as file names.
 
-   Several of the sample programs presented in *note Sample Programs::,
+   Several of the sample programs presented in *Note Sample Programs::,
 use `getopt()' to process their arguments.
 
    ---------- Footnotes ----------
@@ -16676,7 +16692,7 @@ once.  If you are worried about squeezing every last 
cycle out of your
 this is not necessary, since most `awk' programs are I/O-bound, and
 such a change would clutter up the code.
 
-   The `id' program in *note Id Program::, uses these functions.
+   The `id' program in *Note Id Program::, uses these functions.
 
    ---------- Footnotes ----------
 
@@ -16689,7 +16705,7 @@ File: gawk.info,  Node: Group Functions,  Next: Walking 
Arrays,  Prev: Passwd Fu
 13.6 Reading the Group Database
 ===============================
 
-Much of the discussion presented in *note Passwd Functions::, applies
+Much of the discussion presented in *Note Passwd Functions::, applies
 to the group database as well.  Although there has traditionally been a
 well-known file (`/etc/group') in a well-known format, the POSIX
 standard only provides a set of C library routines (`<grp.h>' and
@@ -16915,7 +16931,7 @@ body of `_gr_init()' into a `BEGIN' rule).
 associative arrays.  The functions that the user calls are themselves
 very simple, relying on `awk''s associative arrays to do work.
 
-   The `id' program in *note Id Program::, uses these functions.
+   The `id' program in *Note Id Program::, uses these functions.
 
 
 File: gawk.info,  Node: Walking Arrays,  Prev: Group Functions,  Up: Library 
Functions
@@ -16923,7 +16939,7 @@ File: gawk.info,  Node: Walking Arrays,  Prev: Group 
Functions,  Up: Library Fun
 13.7 Traversing Arrays of Arrays
 ================================
 
-*note Arrays of Arrays::, described how `gawk' provides arrays of
+*Note Arrays of Arrays::, described how `gawk' provides arrays of
 arrays.  In particular, any element of an array may be either a scalar,
 or another array. The `isarray()' function (*note Type Functions::)
 lets you distinguish an array from a scalar.  The following function,
@@ -16974,12 +16990,12 @@ File: gawk.info,  Node: Sample Programs,  Next: 
Debugger,  Prev: Library Functio
 14 Practical `awk' Programs
 ***************************
 
-*note Library Functions::, presents the idea that reading programs in a
+*Note Library Functions::, presents the idea that reading programs in a
 language contributes to learning that language.  This major node
 continues that theme, presenting a potpourri of `awk' programs for your
 reading enjoyment.
 
-   Many of these programs use library functions presented in *note
+   Many of these programs use library functions presented in *Note
 Library Functions::.
 
 * Menu:
@@ -17154,7 +17170,7 @@ by characters, the output field separator is set to the 
null string:
 Using a single space (`" "') for the value of `FS' is incorrect--`awk'
 would separate fields with runs of spaces, TABs, and/or newlines, and
 we want them to be separated with individual spaces.  Also remember
-that after `getopt()' is through (as described in *note Getopt
+that after `getopt()' is through (as described in *Note Getopt
 Function::), we have to clear out all the elements of `ARGV' from 1 to
 `Optind', so that `awk' does not try to process the command-line options
 as file names.
@@ -17659,7 +17675,7 @@ to something like `myfileaa', `myfileab', and so on, 
supply an
 additional argument that specifies the file name prefix.
 
    Here is a version of `split' in `awk'. It uses the `ord()' and
-`chr()' functions presented in *note Ordinal Functions::.
+`chr()' functions presented in *Note Ordinal Functions::.
 
    The program first sets its defaults, and then tests to make sure
 there are not too many arguments.  It then looks at each argument in
@@ -18193,7 +18209,7 @@ in its length.  Next, `lines' is incremented for each 
line read, and
    ---------- Footnotes ----------
 
    (1) `wc' can't just use the value of `FNR' in `endfile()'. If you
-examine the code in *note Filetrans Function::, you will see that `FNR'
+examine the code in *Note Filetrans Function::, you will see that `FNR'
 has already been reset by the time `endfile()' is called.
 
    (2) Since `gawk' understands multibyte locales, this code counts
@@ -18289,7 +18305,7 @@ prints the message on the standard output. In addition, 
you can give it
 the number of times to repeat the message as well as a delay between
 repetitions.
 
-   This program uses the `gettimeofday()' function from *note
+   This program uses the `gettimeofday()' function from *Note
 Gettimeofday Function::.
 
    All the work is done in the `BEGIN' rule.  The first part is argument
@@ -18797,7 +18813,7 @@ File: gawk.info,  Node: Extract Program,  Next: Simple 
Sed,  Prev: History Sorti
 14.3.7 Extracting Programs from Texinfo Source Files
 ----------------------------------------------------
 
-The nodes *note Library Functions::, and *note Sample Programs::, are
+The nodes *Note Library Functions::, and *Note Sample Programs::, are
 the top level nodes for a large number of `awk' programs.  If you want
 to experiment with these programs, it is tedious to have to type them
 in by hand.  Here we present a program that can extract parts of a
@@ -19078,7 +19094,7 @@ File: gawk.info,  Node: Igawk Program,  Next: Anagram 
Program,  Prev: Simple Sed
 14.3.9 An Easy Way to Use Library Functions
 -------------------------------------------
 
-In *note Include Files::, we saw how `gawk' provides a built-in
+In *Note Include Files::, we saw how `gawk' provides a built-in
 file-inclusion capability.  However, this is a `gawk' extension.  This
 minor node provides the motivation for making file inclusion available
 for standard `awk', and shows how to do it using a combination of shell
@@ -20198,7 +20214,7 @@ execution of the program than we saw in our earlier 
example:
 `si' [COUNT]
      Execute one (or COUNT) instruction(s), stepping inside function
      calls.  (For illustration of what is meant by an "instruction" in
-     `gawk', see the output shown under `dump' in *note Miscellaneous
+     `gawk', see the output shown under `dump' in *Note Miscellaneous
      Debugger Commands::.)
 
 `until' [[FILENAME`:']N | FUNCTION]
@@ -20605,7 +20621,7 @@ some limitations.  A few which are worth being aware of 
are:
      Rather, it just responds `syntax error'.  When you do figure out
      what your mistake was, though, you'll feel like a real guru.
 
-   * If you perused the dump of opcodes in *note Miscellaneous Debugger
+   * If you perused the dump of opcodes in *Note Miscellaneous Debugger
      Commands::, (or if you are already familiar with `gawk' internals),
      you will realize that much of the internal manipulation of data in
      `gawk', as in many interpreters, is done on a stack.  `Op_push',
@@ -20626,7 +20642,7 @@ some limitations.  A few which are worth being aware of 
are:
 
    * The `gawk' debugger is designed to be used by running a program
      (with all its parameters) on the command line, as described in
-     *note Debugger Invocation::.  There is no way (as of now) to
+     *Note Debugger Invocation::.  There is no way (as of now) to
      attach or "break in" to a running program.  This seems reasonable
      for a language which is used mainly for quickly executing, short
      programs.
@@ -20817,7 +20833,7 @@ Other Versions::).
    This minor node describes common extensions that originally appeared
 in his version of `awk'.
 
-   * The `**' and `**=' operators (*note Arithmetic Ops:: and *note
+   * The `**' and `**=' operators (*note Arithmetic Ops:: and *Note
      Assignment Ops::).
 
    * The use of `func' as an abbreviation for `function' (*note
@@ -21210,7 +21226,7 @@ Info file, in approximate chronological order:
    * John Haque reworked the `gawk' internals to use a byte-code engine,
      providing the `gawk' debugger for `awk' programs.
 
-   * Efraim Yawitz contributed the original text for *note Debugger::.
+   * Efraim Yawitz contributed the original text for *Note Debugger::.
 
    * Arnold Robbins has been working on `gawk' since 1988, at first
      helping David Trueman, and as the primary maintainer since around
@@ -21414,7 +21430,7 @@ Various `.c', `.y', and `.h' files
 
 `doc/igawk.1'
      The `troff' source for a manual page describing the `igawk'
-     program presented in *note Igawk Program::.
+     program presented in *Note Igawk Program::.
 
 `doc/Makefile.in'
      The input file used during the configuration process to generate
@@ -21434,7 +21450,7 @@ Various `.c', `.y', and `.h' files
 `missing_d/*'
 `m4/*'
      These files and subdirectories are used when configuring `gawk'
-     for various Unix systems.  They are explained in *note Unix
+     for various Unix systems.  They are explained in *Note Unix
      Installation::.
 
 `po/*'
@@ -21449,8 +21465,8 @@ Various `.c', `.y', and `.h' files
      programs from the Texinfo source file for this Info file. It also
      contains a `Makefile.in' file, which `configure' uses to generate
      a `Makefile'.  `Makefile.am' is used by GNU Automake to create
-     `Makefile.in'.  The library functions from *note Library
-     Functions::, and the `igawk' program from *note Igawk Program::,
+     `Makefile.in'.  The library functions from *Note Library
+     Functions::, and the `igawk' program from *Note Igawk Program::,
      are included as ready-to-use files in the `gawk' distribution.
      They are installed as part of the installation process.  The rest
      of the programs in this Info file are available in appropriate
@@ -21815,7 +21831,7 @@ MS-DOS or MS-Windows.  EMX (OS/2 only) does support at 
least the `|&'
 operator.
 
    The MS-DOS and MS-Windows versions of `gawk' search for program
-files as described in *note AWKPATH Variable::.  However, semicolons
+files as described in *Note AWKPATH Variable::.  However, semicolons
 (rather than colons) separate elements in the `AWKPATH' variable.  If
 `AWKPATH' is not set or is empty, then the default search path for
 MS-Windows and MS-DOS versions is `".;c:/lib/awk;c:/gnu/lib/awk"'.
@@ -22350,7 +22366,7 @@ File: gawk.info,  Node: Accessing The Source,  Next: 
Adding Code,  Up: Additions
 C.2.1 Accessing The `gawk' Git Repository
 -----------------------------------------
 
-As `gawk' is Free Software, the source code is always available.  *note
+As `gawk' is Free Software, the source code is always available.  *Note
 Gawk Distribution::, describes how to get and build the formal,
 released versions of `gawk'.
 
@@ -22370,7 +22386,7 @@ access the repository using:
      git clone http://git.savannah.gnu.org/r/gawk.git
 
    Once you have made changes, you can use `git diff' to produce a
-patch, and send that to the `gawk' maintainer; see *note Bugs:: for how
+patch, and send that to the `gawk' maintainer; see *Note Bugs:: for how
 to do that.
 
    Finally, if you cannot install Git (e.g., if it hasn't been ported
@@ -22519,7 +22535,7 @@ C.2.3 Porting `gawk' to a New Operating System
 If you want to port `gawk' to a new operating system, there are several
 steps:
 
-  1. Follow the guidelines in *note Adding Code::, concerning coding
+  1. Follow the guidelines in *Note Adding Code::, concerning coding
      style, submission of diffs, and so on.
 
   2. Be prepared to sign the appropriate paperwork.  In order for the
@@ -23473,7 +23489,7 @@ larger range of values.  The disadvantage is that there 
are numbers
 that they cannot represent exactly.  `awk' uses "double precision"
 floating-point numbers, which can hold more digits than "single
 precision" floating-point numbers.  Floating-point issues are discussed
-more fully in *note Floating Point Issues::.
+more fully in *Note Floating Point Issues::.
 
    At the very lowest level, computers store values as groups of binary
 digits, or "bits".  Modern computers group bits into groups of eight,
@@ -23496,7 +23512,7 @@ or "binary", base 8 or "octal", and base 16 or 
"hexadecimal".  In
 binary, each column represents two times the value in the column to its
 right. Each column may contain either a 0 or a 1.  Thus, binary 1010
 represents 1 times 8, plus 0 times 4, plus 1 times 2, plus 0 times 1,
-or decimal 10.  Octal and hexadecimal are discussed more in *note
+or decimal 10.  Octal and hexadecimal are discussed more in *Note
 Nondecimal-numbers::.
 
    Programs are written in programming languages.  Hundreds, if not
@@ -23813,7 +23829,7 @@ Bit
      floating-point numbers, character data, addresses of other memory
      objects, or other data.  `awk' lets you work with floating-point
      numbers and strings.  `gawk' lets you manipulate bit values with
-     the built-in functions described in *note Bitwise Functions::.
+     the built-in functions described in *Note Bitwise Functions::.
 
      Computers are often defined by how many bits they use to represent
      integer values.  Typical systems are 32-bit systems, but 64-bit
@@ -23996,7 +24012,7 @@ Field
      built-in variable `FIELDWIDTHS' to describe their lengths.  If you
      wish to specify the contents of fields instead of the field
      separator, you can use the built-in variable `FPAT' to do so.
-     (*Note Field Separators::, *note Constant Size::, and *note
+     (*Note Field Separators::, *Note Constant Size::, and *Note
      Splitting By Content::.)
 
 Flag
@@ -24231,7 +24247,7 @@ Redirection
      `|', and `|&' operators.  You can redirect the output of the
      `print' and `printf' statements to a file or a system command,
      using the `>', `>>', `|', and `|&' operators.  (*Note Getline::,
-     and *note Redirection::.)
+     and *Note Redirection::.)
 
 Regexp
      See "Regular Expression."
@@ -25624,7 +25640,7 @@ Index
 * * (asterisk), * operator, as regexp operator: Regexp Operators.
                                                               (line  87)
 * * (asterisk), * operator, null strings, matching: Gory Details.
-                                                              (line 164)
+                                                              (line 163)
 * * (asterisk), ** operator <1>:         Precedence.          (line  49)
 * * (asterisk), ** operator:             Arithmetic Ops.      (line  81)
 * * (asterisk), **= operator <1>:        Precedence.          (line  95)
@@ -25869,7 +25885,7 @@ Index
                                                               (line  23)
 * advanced features, network connections, See Also networks, connections: 
Advanced Features.
                                                               (line   6)
-* advanced features, null strings, matching: Gory Details.    (line 164)
+* advanced features, null strings, matching: Gory Details.    (line 163)
 * advanced features, operators, precedence: Increment Ops.    (line  61)
 * advanced features, piping into sh:     Redirection.         (line 143)
 * advanced features, regexp constants:   Assignment Ops.      (line 148)
@@ -25968,7 +25984,7 @@ Index
 * asterisk (*), * operator, as regexp operator: Regexp Operators.
                                                               (line  87)
 * asterisk (*), * operator, null strings, matching: Gory Details.
-                                                              (line 164)
+                                                              (line 163)
 * asterisk (*), ** operator <1>:         Precedence.          (line  49)
 * asterisk (*), ** operator:             Arithmetic Ops.      (line  81)
 * asterisk (*), **= operator <1>:        Precedence.          (line  95)
@@ -27413,7 +27429,7 @@ Index
 * matching, expressions, See comparison expressions: Typing and Comparison.
                                                               (line   9)
 * matching, leftmost longest:            Multiple Line.       (line  26)
-* matching, null strings:                Gory Details.        (line 164)
+* matching, null strings:                Gory Details.        (line 163)
 * mawk program:                          Other Versions.      (line  35)
 * McPhee, Patrick:                       Contributors.        (line 100)
 * memory, releasing:                     Internals.           (line  92)
@@ -27498,7 +27514,7 @@ Index
 * null strings, as array subscripts:     Uninitialized Subscripts.
                                                               (line  43)
 * null strings, converting numbers to strings: Conversion.    (line  21)
-* null strings, matching:                Gory Details.        (line 164)
+* null strings, matching:                Gory Details.        (line 163)
 * null strings, quoting and:             Quoting.             (line  62)
 * number sign (#), #! (executable scripts): Executable Scripts.
                                                               (line   6)
@@ -27711,7 +27727,7 @@ Index
 * POSIX awk, field separators and:       Fields.              (line   6)
 * POSIX awk, FS variable and:            User-modified.       (line  66)
 * POSIX awk, function keyword in:        Definition Syntax.   (line  83)
-* POSIX awk, functions and, gsub()/sub(): Gory Details.       (line  54)
+* POSIX awk, functions and, gsub()/sub(): Gory Details.       (line  53)
 * POSIX awk, functions and, length():    String Functions.    (line 175)
 * POSIX awk, GNU long options and:       Options.             (line  15)
 * POSIX awk, interval expressions in:    Regexp Operators.    (line 135)
@@ -28401,440 +28417,441 @@ Index
 
 
 Tag Table:
-Node: Top1346
-Node: Foreword31547
-Node: Preface35892
-Ref: Preface-Footnote-138945
-Ref: Preface-Footnote-239051
-Node: History39283
-Node: Names41674
-Ref: Names-Footnote-143151
-Node: This Manual43223
-Ref: This Manual-Footnote-148161
-Node: Conventions48261
-Node: Manual History50395
-Ref: Manual History-Footnote-153665
-Ref: Manual History-Footnote-253706
-Node: How To Contribute53780
-Node: Acknowledgments54924
-Node: Getting Started59420
-Node: Running gawk61799
-Node: One-shot62985
-Node: Read Terminal64210
-Ref: Read Terminal-Footnote-165860
-Ref: Read Terminal-Footnote-266136
-Node: Long66307
-Node: Executable Scripts67683
-Ref: Executable Scripts-Footnote-169552
-Ref: Executable Scripts-Footnote-269654
-Node: Comments70105
-Node: Quoting72572
-Node: DOS Quoting77195
-Node: Sample Data Files77870
-Node: Very Simple80902
-Node: Two Rules85501
-Node: More Complex87648
-Ref: More Complex-Footnote-190578
-Node: Statements/Lines90663
-Ref: Statements/Lines-Footnote-195125
-Node: Other Features95390
-Node: When96318
-Node: Invoking Gawk98465
-Node: Command Line99850
-Node: Options100633
-Ref: Options-Footnote-1115003
-Node: Other Arguments115028
-Node: Naming Standard Input117686
-Node: Environment Variables118780
-Node: AWKPATH Variable119224
-Ref: AWKPATH Variable-Footnote-1121821
-Node: Other Environment Variables122081
-Node: Exit Status124573
-Node: Include Files125248
-Node: Obsolete128733
-Node: Undocumented129419
-Node: Regexp129660
-Node: Regexp Usage131049
-Node: Escape Sequences133075
-Node: Regexp Operators138838
-Ref: Regexp Operators-Footnote-1146035
-Ref: Regexp Operators-Footnote-2146182
-Node: Bracket Expressions146280
-Ref: table-char-classes148170
-Node: GNU Regexp Operators150693
-Node: Case-sensitivity154416
-Ref: Case-sensitivity-Footnote-1157384
-Ref: Case-sensitivity-Footnote-2157619
-Node: Leftmost Longest157727
-Node: Computed Regexps158928
-Node: Reading Files162338
-Node: Records164342
-Ref: Records-Footnote-1173016
-Node: Fields173053
-Ref: Fields-Footnote-1176086
-Node: Nonconstant Fields176172
-Node: Changing Fields178374
-Node: Field Separators184355
-Node: Default Field Splitting186984
-Node: Regexp Field Splitting188101
-Node: Single Character Fields191443
-Node: Command Line Field Separator192502
-Node: Field Splitting Summary195943
-Ref: Field Splitting Summary-Footnote-1199135
-Node: Constant Size199236
-Node: Splitting By Content203820
-Ref: Splitting By Content-Footnote-1207546
-Node: Multiple Line207586
-Ref: Multiple Line-Footnote-1213433
-Node: Getline213612
-Node: Plain Getline215828
-Node: Getline/Variable217917
-Node: Getline/File219058
-Node: Getline/Variable/File220380
-Ref: Getline/Variable/File-Footnote-1221979
-Node: Getline/Pipe222066
-Node: Getline/Variable/Pipe224626
-Node: Getline/Coprocess225733
-Node: Getline/Variable/Coprocess226976
-Node: Getline Notes227690
-Node: Getline Summary229632
-Ref: table-getline-variants229975
-Node: Read Timeout230831
-Ref: Read Timeout-Footnote-1234576
-Node: Command line directories234633
-Node: Printing235263
-Node: Print236894
-Node: Print Examples238231
-Node: Output Separators241015
-Node: OFMT242775
-Node: Printf244133
-Node: Basic Printf245039
-Node: Control Letters246578
-Node: Format Modifiers250390
-Node: Printf Examples256399
-Node: Redirection259114
-Node: Special Files266098
-Node: Special FD266631
-Ref: Special FD-Footnote-1270256
-Node: Special Network270330
-Node: Special Caveats271180
-Node: Close Files And Pipes271976
-Ref: Close Files And Pipes-Footnote-1278999
-Ref: Close Files And Pipes-Footnote-2279147
-Node: Expressions279297
-Node: Values280429
-Node: Constants281105
-Node: Scalar Constants281785
-Ref: Scalar Constants-Footnote-1282644
-Node: Nondecimal-numbers282826
-Node: Regexp Constants285885
-Node: Using Constant Regexps286360
-Node: Variables289415
-Node: Using Variables290070
-Node: Assignment Options291794
-Node: Conversion293666
-Ref: table-locale-affects299042
-Ref: Conversion-Footnote-1299666
-Node: All Operators299775
-Node: Arithmetic Ops300405
-Node: Concatenation302910
-Ref: Concatenation-Footnote-1305703
-Node: Assignment Ops305823
-Ref: table-assign-ops310811
-Node: Increment Ops312219
-Node: Truth Values and Conditions315689
-Node: Truth Values316772
-Node: Typing and Comparison317821
-Node: Variable Typing318610
-Ref: Variable Typing-Footnote-1322507
-Node: Comparison Operators322629
-Ref: table-relational-ops323039
-Node: POSIX String Comparison326588
-Ref: POSIX String Comparison-Footnote-1327544
-Node: Boolean Ops327682
-Ref: Boolean Ops-Footnote-1331760
-Node: Conditional Exp331851
-Node: Function Calls333583
-Node: Precedence337177
-Node: Locales340846
-Node: Patterns and Actions341935
-Node: Pattern Overview342989
-Node: Regexp Patterns344658
-Node: Expression Patterns345201
-Node: Ranges348886
-Node: BEGIN/END351852
-Node: Using BEGIN/END352614
-Ref: Using BEGIN/END-Footnote-1355345
-Node: I/O And BEGIN/END355451
-Node: BEGINFILE/ENDFILE357733
-Node: Empty360626
-Node: Using Shell Variables360942
-Node: Action Overview363227
-Node: Statements365584
-Node: If Statement367438
-Node: While Statement368937
-Node: Do Statement370981
-Node: For Statement372137
-Node: Switch Statement375289
-Node: Break Statement377386
-Node: Continue Statement379376
-Node: Next Statement381169
-Node: Nextfile Statement383559
-Node: Exit Statement386104
-Node: Built-in Variables388520
-Node: User-modified389615
-Ref: User-modified-Footnote-1397968
-Node: Auto-set398030
-Ref: Auto-set-Footnote-1407876
-Node: ARGC and ARGV408081
-Node: Arrays411932
-Node: Array Basics413437
-Node: Array Intro414263
-Node: Reference to Elements418581
-Node: Assigning Elements420851
-Node: Array Example421342
-Node: Scanning an Array423074
-Node: Controlling Scanning425388
-Ref: Controlling Scanning-Footnote-1430321
-Node: Delete430637
-Ref: Delete-Footnote-1433072
-Node: Numeric Array Subscripts433129
-Node: Uninitialized Subscripts435312
-Node: Multi-dimensional436940
-Node: Multi-scanning440034
-Node: Arrays of Arrays441625
-Node: Functions446270
-Node: Built-in447092
-Node: Calling Built-in448170
-Node: Numeric Functions450158
-Ref: Numeric Functions-Footnote-1453923
-Ref: Numeric Functions-Footnote-2454280
-Ref: Numeric Functions-Footnote-3454328
-Node: String Functions454597
-Ref: String Functions-Footnote-1478094
-Ref: String Functions-Footnote-2478223
-Ref: String Functions-Footnote-3478471
-Node: Gory Details478558
-Ref: table-sub-escapes480237
-Ref: table-sub-posix-92481591
-Ref: table-sub-proposed482934
-Ref: table-posix-sub484284
-Ref: table-gensub-escapes485830
-Ref: Gory Details-Footnote-1487037
-Ref: Gory Details-Footnote-2487088
-Node: I/O Functions487239
-Ref: I/O Functions-Footnote-1493894
-Node: Time Functions494041
-Ref: Time Functions-Footnote-1504933
-Ref: Time Functions-Footnote-2505001
-Ref: Time Functions-Footnote-3505159
-Ref: Time Functions-Footnote-4505270
-Ref: Time Functions-Footnote-5505382
-Ref: Time Functions-Footnote-6505609
-Node: Bitwise Functions505875
-Ref: table-bitwise-ops506433
-Ref: Bitwise Functions-Footnote-1510593
-Node: Type Functions510777
-Node: I18N Functions511247
-Node: User-defined512874
-Node: Definition Syntax513678
-Ref: Definition Syntax-Footnote-1518588
-Node: Function Example518657
-Node: Function Caveats521251
-Node: Calling A Function521672
-Node: Variable Scope522787
-Node: Pass By Value/Reference524762
-Node: Return Statement528202
-Node: Dynamic Typing531183
-Node: Indirect Calls531918
-Node: Internationalization541603
-Node: I18N and L10N543042
-Node: Explaining gettext543728
-Ref: Explaining gettext-Footnote-1548794
-Ref: Explaining gettext-Footnote-2548978
-Node: Programmer i18n549143
-Node: Translator i18n553343
-Node: String Extraction554136
-Ref: String Extraction-Footnote-1555097
-Node: Printf Ordering555183
-Ref: Printf Ordering-Footnote-1557967
-Node: I18N Portability558031
-Ref: I18N Portability-Footnote-1560480
-Node: I18N Example560543
-Ref: I18N Example-Footnote-1563178
-Node: Gawk I18N563250
-Node: Arbitrary Precision Arithmetic563867
-Ref: Arbitrary Precision Arithmetic-Footnote-1566742
-Node: Floating-point Programming566890
-Node: Floating-point Representation571781
-Node: Floating-point Context572885
-Ref: table-ieee-formats573720
-Node: Rounding Mode575045
-Ref: table-rounding-modes575670
-Ref: Rounding Mode-Footnote-1578791
-Node: Arbitrary Precision Floats578972
-Ref: Arbitrary Precision Floats-Footnote-1581023
-Node: Setting Precision581334
-Node: Setting Rounding Mode584092
-Node: Floating-point Constants585001
-Node: Changing Precision586420
-Ref: Changing Precision-Footnote-1587792
-Node: Exact Arithmetic587965
-Node: Integer Programming590980
-Node: Arbitrary Precision Integers592760
-Node: MPFR and GMP Libraries595757
-Node: Advanced Features596142
-Node: Nondecimal Data597665
-Node: Array Sorting599248
-Node: Controlling Array Traversal599945
-Node: Array Sorting Functions608182
-Ref: Array Sorting Functions-Footnote-1611856
-Ref: Array Sorting Functions-Footnote-2611949
-Node: Two-way I/O612143
-Ref: Two-way I/O-Footnote-1617575
-Node: TCP/IP Networking617645
-Node: Profiling620489
-Node: Library Functions627943
-Ref: Library Functions-Footnote-1630950
-Node: Library Names631121
-Ref: Library Names-Footnote-1634592
-Ref: Library Names-Footnote-2634812
-Node: General Functions634898
-Node: Strtonum Function635851
-Node: Assert Function638781
-Node: Round Function642107
-Node: Cliff Random Function643650
-Node: Ordinal Functions644666
-Ref: Ordinal Functions-Footnote-1647736
-Ref: Ordinal Functions-Footnote-2647988
-Node: Join Function648197
-Ref: Join Function-Footnote-1649968
-Node: Gettimeofday Function650168
-Node: Data File Management653883
-Node: Filetrans Function654515
-Node: Rewind Function658654
-Node: File Checking660041
-Node: Empty Files661135
-Node: Ignoring Assigns663365
-Node: Getopt Function664918
-Ref: Getopt Function-Footnote-1676222
-Node: Passwd Functions676425
-Ref: Passwd Functions-Footnote-1685400
-Node: Group Functions685488
-Node: Walking Arrays693572
-Node: Sample Programs695141
-Node: Running Examples695806
-Node: Clones696534
-Node: Cut Program697758
-Node: Egrep Program707603
-Ref: Egrep Program-Footnote-1715376
-Node: Id Program715486
-Node: Split Program719102
-Ref: Split Program-Footnote-1722621
-Node: Tee Program722749
-Node: Uniq Program725552
-Node: Wc Program732981
-Ref: Wc Program-Footnote-1737247
-Ref: Wc Program-Footnote-2737447
-Node: Miscellaneous Programs737539
-Node: Dupword Program738727
-Node: Alarm Program740758
-Node: Translate Program745507
-Ref: Translate Program-Footnote-1749894
-Ref: Translate Program-Footnote-2750122
-Node: Labels Program750256
-Ref: Labels Program-Footnote-1753627
-Node: Word Sorting753711
-Node: History Sorting757595
-Node: Extract Program759434
-Ref: Extract Program-Footnote-1766917
-Node: Simple Sed767045
-Node: Igawk Program770107
-Ref: Igawk Program-Footnote-1785264
-Ref: Igawk Program-Footnote-2785465
-Node: Anagram Program785603
-Node: Signature Program788671
-Node: Debugger789771
-Node: Debugging790723
-Node: Debugging Concepts791156
-Node: Debugging Terms793012
-Node: Awk Debugging795609
-Node: Sample Debugging Session796501
-Node: Debugger Invocation797021
-Node: Finding The Bug798350
-Node: List of Debugger Commands804838
-Node: Breakpoint Control806172
-Node: Debugger Execution Control809836
-Node: Viewing And Changing Data813196
-Node: Execution Stack816552
-Node: Debugger Info818019
-Node: Miscellaneous Debugger Commands822000
-Node: Readline Support827445
-Node: Limitations828276
-Node: Language History830528
-Node: V7/SVR3.1832040
-Node: SVR4834361
-Node: POSIX835803
-Node: BTL836811
-Node: POSIX/GNU837545
-Node: Common Extensions842696
-Node: Ranges and Locales843803
-Ref: Ranges and Locales-Footnote-1848407
-Node: Contributors848628
-Node: Installation852889
-Node: Gawk Distribution853783
-Node: Getting854267
-Node: Extracting855093
-Node: Distribution contents856785
-Node: Unix Installation862007
-Node: Quick Installation862624
-Node: Additional Configuration Options864586
-Node: Configuration Philosophy866063
-Node: Non-Unix Installation868405
-Node: PC Installation868863
-Node: PC Binary Installation870162
-Node: PC Compiling872010
-Node: PC Testing874954
-Node: PC Using876130
-Node: Cygwin880315
-Node: MSYS881315
-Node: VMS Installation881829
-Node: VMS Compilation882432
-Ref: VMS Compilation-Footnote-1883439
-Node: VMS Installation Details883497
-Node: VMS Running885132
-Node: VMS Old Gawk886739
-Node: Bugs887213
-Node: Other Versions891065
-Node: Notes896380
-Node: Compatibility Mode897072
-Node: Additions897855
-Node: Accessing The Source898667
-Node: Adding Code900092
-Node: New Ports906059
-Node: Dynamic Extensions910172
-Node: Internals911612
-Node: Plugin License920131
-Node: Loading Extensions920769
-Node: Sample Library922579
-Node: Internal File Description923269
-Node: Internal File Ops926984
-Ref: Internal File Ops-Footnote-1931708
-Node: Using Internal File Ops931848
-Node: Future Extensions934225
-Node: Basic Concepts936729
-Node: Basic High Level937486
-Ref: Basic High Level-Footnote-1941521
-Node: Basic Data Typing941706
-Node: Floating Point Issues946231
-Node: String Conversion Precision947314
-Ref: String Conversion Precision-Footnote-1949014
-Node: Unexpected Results949123
-Node: POSIX Floating Point Problems950949
-Ref: POSIX Floating Point Problems-Footnote-1954654
-Node: Glossary954692
-Node: Copying979668
-Node: GNU Free Documentation License1017225
-Node: Index1042362
+Node: Top1345
+Node: Foreword31546
+Node: Preface35891
+Ref: Preface-Footnote-138944
+Ref: Preface-Footnote-239050
+Node: History39282
+Node: Names41673
+Ref: Names-Footnote-143150
+Node: This Manual43222
+Ref: This Manual-Footnote-148160
+Node: Conventions48260
+Node: Manual History50394
+Ref: Manual History-Footnote-153664
+Ref: Manual History-Footnote-253705
+Node: How To Contribute53779
+Node: Acknowledgments54923
+Node: Getting Started59419
+Node: Running gawk61798
+Node: One-shot62984
+Node: Read Terminal64209
+Ref: Read Terminal-Footnote-165859
+Ref: Read Terminal-Footnote-266135
+Node: Long66306
+Node: Executable Scripts67682
+Ref: Executable Scripts-Footnote-169551
+Ref: Executable Scripts-Footnote-269653
+Node: Comments70104
+Node: Quoting72571
+Node: DOS Quoting77194
+Node: Sample Data Files77869
+Node: Very Simple80901
+Node: Two Rules85500
+Node: More Complex87647
+Ref: More Complex-Footnote-190577
+Node: Statements/Lines90662
+Ref: Statements/Lines-Footnote-195124
+Node: Other Features95389
+Node: When96317
+Node: Invoking Gawk98464
+Node: Command Line99849
+Node: Options100632
+Ref: Options-Footnote-1115002
+Node: Other Arguments115027
+Node: Naming Standard Input117685
+Node: Environment Variables118779
+Node: AWKPATH Variable119223
+Ref: AWKPATH Variable-Footnote-1121820
+Node: Other Environment Variables122080
+Node: Exit Status124572
+Node: Include Files125247
+Node: Obsolete128732
+Node: Undocumented129418
+Node: Regexp129659
+Node: Regexp Usage131048
+Node: Escape Sequences133074
+Node: Regexp Operators138837
+Ref: Regexp Operators-Footnote-1146034
+Ref: Regexp Operators-Footnote-2146181
+Node: Bracket Expressions146279
+Ref: table-char-classes148169
+Node: GNU Regexp Operators150692
+Node: Case-sensitivity154415
+Ref: Case-sensitivity-Footnote-1157383
+Ref: Case-sensitivity-Footnote-2157618
+Node: Leftmost Longest157726
+Node: Computed Regexps158927
+Node: Reading Files162337
+Node: Records164341
+Ref: Records-Footnote-1173015
+Node: Fields173052
+Ref: Fields-Footnote-1176085
+Node: Nonconstant Fields176171
+Node: Changing Fields178373
+Node: Field Separators184354
+Node: Default Field Splitting186983
+Node: Regexp Field Splitting188100
+Node: Single Character Fields191442
+Node: Command Line Field Separator192501
+Node: Field Splitting Summary195942
+Ref: Field Splitting Summary-Footnote-1199134
+Node: Constant Size199235
+Node: Splitting By Content203819
+Ref: Splitting By Content-Footnote-1207545
+Node: Multiple Line207585
+Ref: Multiple Line-Footnote-1213432
+Node: Getline213611
+Node: Plain Getline215827
+Node: Getline/Variable217916
+Node: Getline/File219057
+Node: Getline/Variable/File220379
+Ref: Getline/Variable/File-Footnote-1221978
+Node: Getline/Pipe222065
+Node: Getline/Variable/Pipe224625
+Node: Getline/Coprocess225732
+Node: Getline/Variable/Coprocess226975
+Node: Getline Notes227689
+Node: Getline Summary229631
+Ref: table-getline-variants229974
+Node: Read Timeout230830
+Ref: Read Timeout-Footnote-1234575
+Node: Command line directories234632
+Node: Printing235262
+Node: Print236893
+Node: Print Examples238230
+Node: Output Separators241014
+Node: OFMT242774
+Node: Printf244132
+Node: Basic Printf245038
+Node: Control Letters246577
+Node: Format Modifiers250389
+Node: Printf Examples256398
+Node: Redirection259113
+Node: Special Files266097
+Node: Special FD266630
+Ref: Special FD-Footnote-1270255
+Node: Special Network270329
+Node: Special Caveats271179
+Node: Close Files And Pipes271975
+Ref: Close Files And Pipes-Footnote-1278998
+Ref: Close Files And Pipes-Footnote-2279146
+Node: Expressions279296
+Node: Values280428
+Node: Constants281104
+Node: Scalar Constants281784
+Ref: Scalar Constants-Footnote-1282643
+Node: Nondecimal-numbers282825
+Node: Regexp Constants285884
+Node: Using Constant Regexps286359
+Node: Variables289414
+Node: Using Variables290069
+Node: Assignment Options291793
+Node: Conversion293665
+Ref: table-locale-affects299041
+Ref: Conversion-Footnote-1299665
+Node: All Operators299774
+Node: Arithmetic Ops300404
+Node: Concatenation302909
+Ref: Concatenation-Footnote-1305702
+Node: Assignment Ops305822
+Ref: table-assign-ops310810
+Node: Increment Ops312218
+Node: Truth Values and Conditions315688
+Node: Truth Values316771
+Node: Typing and Comparison317820
+Node: Variable Typing318609
+Ref: Variable Typing-Footnote-1322506
+Node: Comparison Operators322628
+Ref: table-relational-ops323038
+Node: POSIX String Comparison326587
+Ref: POSIX String Comparison-Footnote-1327543
+Node: Boolean Ops327681
+Ref: Boolean Ops-Footnote-1331759
+Node: Conditional Exp331850
+Node: Function Calls333582
+Node: Precedence337176
+Node: Locales340845
+Node: Patterns and Actions341934
+Node: Pattern Overview342988
+Node: Regexp Patterns344657
+Node: Expression Patterns345200
+Node: Ranges348885
+Node: BEGIN/END351851
+Node: Using BEGIN/END352613
+Ref: Using BEGIN/END-Footnote-1355344
+Node: I/O And BEGIN/END355450
+Node: BEGINFILE/ENDFILE357732
+Node: Empty360625
+Node: Using Shell Variables360941
+Node: Action Overview363226
+Node: Statements365583
+Node: If Statement367437
+Node: While Statement368936
+Node: Do Statement370980
+Node: For Statement372136
+Node: Switch Statement375288
+Node: Break Statement377385
+Node: Continue Statement379375
+Node: Next Statement381168
+Node: Nextfile Statement383558
+Node: Exit Statement386103
+Node: Built-in Variables388519
+Node: User-modified389614
+Ref: User-modified-Footnote-1397967
+Node: Auto-set398029
+Ref: Auto-set-Footnote-1407875
+Node: ARGC and ARGV408080
+Node: Arrays411931
+Node: Array Basics413436
+Node: Array Intro414262
+Node: Reference to Elements418580
+Node: Assigning Elements420850
+Node: Array Example421341
+Node: Scanning an Array423073
+Node: Controlling Scanning425387
+Ref: Controlling Scanning-Footnote-1430320
+Node: Delete430636
+Ref: Delete-Footnote-1433071
+Node: Numeric Array Subscripts433128
+Node: Uninitialized Subscripts435311
+Node: Multi-dimensional436939
+Node: Multi-scanning440033
+Node: Arrays of Arrays441624
+Node: Functions446269
+Node: Built-in447091
+Node: Calling Built-in448169
+Node: Numeric Functions450157
+Ref: Numeric Functions-Footnote-1453922
+Ref: Numeric Functions-Footnote-2454279
+Ref: Numeric Functions-Footnote-3454327
+Node: String Functions454596
+Ref: String Functions-Footnote-1478093
+Ref: String Functions-Footnote-2478222
+Ref: String Functions-Footnote-3478470
+Node: Gory Details478557
+Ref: table-sub-escapes480236
+Ref: table-sub-posix-92481590
+Ref: table-sub-proposed482933
+Ref: table-posix-sub484283
+Ref: table-gensub-escapes485829
+Ref: Gory Details-Footnote-1487036
+Ref: Gory Details-Footnote-2487087
+Node: I/O Functions487238
+Ref: I/O Functions-Footnote-1493893
+Node: Time Functions494040
+Ref: Time Functions-Footnote-1504932
+Ref: Time Functions-Footnote-2505000
+Ref: Time Functions-Footnote-3505158
+Ref: Time Functions-Footnote-4505269
+Ref: Time Functions-Footnote-5505381
+Ref: Time Functions-Footnote-6505608
+Node: Bitwise Functions505874
+Ref: table-bitwise-ops506432
+Ref: Bitwise Functions-Footnote-1510592
+Node: Type Functions510776
+Node: I18N Functions511246
+Node: User-defined512873
+Node: Definition Syntax513677
+Ref: Definition Syntax-Footnote-1518587
+Node: Function Example518656
+Node: Function Caveats521250
+Node: Calling A Function521671
+Node: Variable Scope522786
+Node: Pass By Value/Reference524761
+Node: Return Statement528201
+Node: Dynamic Typing531182
+Node: Indirect Calls531917
+Node: Internationalization541602
+Node: I18N and L10N543041
+Node: Explaining gettext543727
+Ref: Explaining gettext-Footnote-1548793
+Ref: Explaining gettext-Footnote-2548977
+Node: Programmer i18n549142
+Node: Translator i18n553342
+Node: String Extraction554135
+Ref: String Extraction-Footnote-1555096
+Node: Printf Ordering555182
+Ref: Printf Ordering-Footnote-1557966
+Node: I18N Portability558030
+Ref: I18N Portability-Footnote-1560479
+Node: I18N Example560542
+Ref: I18N Example-Footnote-1563177
+Node: Gawk I18N563249
+Node: Arbitrary Precision Arithmetic563866
+Ref: Arbitrary Precision Arithmetic-Footnote-1566741
+Node: Floating-point Programming566889
+Node: Floating-point Representation572121
+Node: Floating-point Context573225
+Ref: table-ieee-formats574060
+Node: Rounding Mode575430
+Ref: table-rounding-modes576055
+Ref: Rounding Mode-Footnote-1579176
+Node: Arbitrary Precision Floats579357
+Ref: Arbitrary Precision Floats-Footnote-1581408
+Node: Setting Precision581719
+Node: Setting Rounding Mode584477
+Node: Floating-point Constants585386
+Node: Changing Precision586805
+Ref: Changing Precision-Footnote-1588208
+Node: Exact Arithmetic588381
+Node: Integer Programming591394
+Node: Arbitrary Precision Integers593174
+Ref: Arbitrary Precision Integers-Footnote-1596210
+Node: MPFR and GMP Libraries596355
+Node: Advanced Features596740
+Node: Nondecimal Data598263
+Node: Array Sorting599846
+Node: Controlling Array Traversal600543
+Node: Array Sorting Functions608780
+Ref: Array Sorting Functions-Footnote-1612454
+Ref: Array Sorting Functions-Footnote-2612547
+Node: Two-way I/O612741
+Ref: Two-way I/O-Footnote-1618173
+Node: TCP/IP Networking618243
+Node: Profiling621087
+Node: Library Functions628541
+Ref: Library Functions-Footnote-1631548
+Node: Library Names631719
+Ref: Library Names-Footnote-1635190
+Ref: Library Names-Footnote-2635410
+Node: General Functions635496
+Node: Strtonum Function636449
+Node: Assert Function639379
+Node: Round Function642705
+Node: Cliff Random Function644248
+Node: Ordinal Functions645264
+Ref: Ordinal Functions-Footnote-1648334
+Ref: Ordinal Functions-Footnote-2648586
+Node: Join Function648795
+Ref: Join Function-Footnote-1650566
+Node: Gettimeofday Function650766
+Node: Data File Management654481
+Node: Filetrans Function655113
+Node: Rewind Function659252
+Node: File Checking660639
+Node: Empty Files661733
+Node: Ignoring Assigns663963
+Node: Getopt Function665516
+Ref: Getopt Function-Footnote-1676820
+Node: Passwd Functions677023
+Ref: Passwd Functions-Footnote-1685998
+Node: Group Functions686086
+Node: Walking Arrays694170
+Node: Sample Programs695739
+Node: Running Examples696404
+Node: Clones697132
+Node: Cut Program698356
+Node: Egrep Program708201
+Ref: Egrep Program-Footnote-1715974
+Node: Id Program716084
+Node: Split Program719700
+Ref: Split Program-Footnote-1723219
+Node: Tee Program723347
+Node: Uniq Program726150
+Node: Wc Program733579
+Ref: Wc Program-Footnote-1737845
+Ref: Wc Program-Footnote-2738045
+Node: Miscellaneous Programs738137
+Node: Dupword Program739325
+Node: Alarm Program741356
+Node: Translate Program746105
+Ref: Translate Program-Footnote-1750492
+Ref: Translate Program-Footnote-2750720
+Node: Labels Program750854
+Ref: Labels Program-Footnote-1754225
+Node: Word Sorting754309
+Node: History Sorting758193
+Node: Extract Program760032
+Ref: Extract Program-Footnote-1767515
+Node: Simple Sed767643
+Node: Igawk Program770705
+Ref: Igawk Program-Footnote-1785862
+Ref: Igawk Program-Footnote-2786063
+Node: Anagram Program786201
+Node: Signature Program789269
+Node: Debugger790369
+Node: Debugging791321
+Node: Debugging Concepts791754
+Node: Debugging Terms793610
+Node: Awk Debugging796207
+Node: Sample Debugging Session797099
+Node: Debugger Invocation797619
+Node: Finding The Bug798948
+Node: List of Debugger Commands805436
+Node: Breakpoint Control806770
+Node: Debugger Execution Control810434
+Node: Viewing And Changing Data813794
+Node: Execution Stack817150
+Node: Debugger Info818617
+Node: Miscellaneous Debugger Commands822598
+Node: Readline Support828043
+Node: Limitations828874
+Node: Language History831126
+Node: V7/SVR3.1832638
+Node: SVR4834959
+Node: POSIX836401
+Node: BTL837409
+Node: POSIX/GNU838143
+Node: Common Extensions843294
+Node: Ranges and Locales844401
+Ref: Ranges and Locales-Footnote-1849005
+Node: Contributors849226
+Node: Installation853487
+Node: Gawk Distribution854381
+Node: Getting854865
+Node: Extracting855691
+Node: Distribution contents857383
+Node: Unix Installation862605
+Node: Quick Installation863222
+Node: Additional Configuration Options865184
+Node: Configuration Philosophy866661
+Node: Non-Unix Installation869003
+Node: PC Installation869461
+Node: PC Binary Installation870760
+Node: PC Compiling872608
+Node: PC Testing875552
+Node: PC Using876728
+Node: Cygwin880913
+Node: MSYS881913
+Node: VMS Installation882427
+Node: VMS Compilation883030
+Ref: VMS Compilation-Footnote-1884037
+Node: VMS Installation Details884095
+Node: VMS Running885730
+Node: VMS Old Gawk887337
+Node: Bugs887811
+Node: Other Versions891663
+Node: Notes896978
+Node: Compatibility Mode897670
+Node: Additions898453
+Node: Accessing The Source899265
+Node: Adding Code900690
+Node: New Ports906657
+Node: Dynamic Extensions910770
+Node: Internals912210
+Node: Plugin License920729
+Node: Loading Extensions921367
+Node: Sample Library923177
+Node: Internal File Description923867
+Node: Internal File Ops927582
+Ref: Internal File Ops-Footnote-1932306
+Node: Using Internal File Ops932446
+Node: Future Extensions934823
+Node: Basic Concepts937327
+Node: Basic High Level938084
+Ref: Basic High Level-Footnote-1942119
+Node: Basic Data Typing942304
+Node: Floating Point Issues946829
+Node: String Conversion Precision947912
+Ref: String Conversion Precision-Footnote-1949612
+Node: Unexpected Results949721
+Node: POSIX Floating Point Problems951547
+Ref: POSIX Floating Point Problems-Footnote-1955252
+Node: Glossary955290
+Node: Copying980266
+Node: GNU Free Documentation License1017823
+Node: Index1042960
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index d1a35d2..9b812a1 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -18436,8 +18436,15 @@ the ideal tool, and this documentation may not be 
sufficient.
 It might require a book or two to communicate how to compute
 @c FIXME: JOHN: Please provide a definition for the terms
 @c              accuracy and precision
-with ideal accuracy and precision, and the result often depends
-on the particular application.
+with ideal accuracy and precision
+and the result often depends on the particular application.
+
address@hidden NOTE
+Accuracy is how close a floating-point calculation comes to the real value.
+However, precision usually refers to the number of bits used to represent 
+the number (see @uref{http://en.wikipedia.org/wiki/Accuracy_and_precision, the 
Wikipedia article}
+for more information).
address@hidden quotation
 
 Binary floating-point representations and arithmetic are inexact.
 Simple values like 0.1 cannot be precisely represented using
@@ -18446,7 +18453,8 @@ floating-point numbers means that slight changes in
 the order of operations or the precision of intermediate storage
 can change the result. To make matters worse with arbitrary precision
 floating-point, you can set the precision before starting a computation,
-but then you cannot be sure of the final result.
+but then you cannot be sure of the number of significant decimal places
+in the final result.
 @c FIXME: JOHN: Not clear what you mean by "cannot be sure of the final result"
 
 Sometimes you need to think more about what you really want
@@ -18648,13 +18656,11 @@ of precision.
 
 @quotation NOTE
 In case an underflow occurs, the standard allows, but does not require,
-the smallest normal number to lose precision gradually when an arithmetic
address@hidden FIXME: JOHN: Do you mean "an arithmetic operation's result" ?
-operation is not exactly zero but is too close to zero.
address@hidden FIXME: JOHN: Too close to zero to what? or for what? Not clear.
-Such numbers do
+the result from an arithmetic operation to be a number smaller than
+the smallest nonzero normalized number. Such numbers do
 not have as many significant digits as normal numbers, and are called
address@hidden or @dfn{subnormals}.  The basic IEEE-754 binary formats
address@hidden or @dfn{subnormals}. The alternative, simply returning a zero,
+is called @dfn{flush to zero}. The basic IEEE-754 binary formats
 support subnormal numbers.
 @end quotation
 
@@ -18958,12 +18964,19 @@ to @code{PREC}.  The precision of a number is always 
the one that was
 used at the time of its creation, and there is no way for the user
 to explicitly change it afterwards. However, since the result of a
 floating-point arithmetic operation is always an arbitrary precision
-floating-point value---with a precision set by the value of @code{PREC}---the
-following workaround effectively accomplishes the desired behavior:
+floating-point value---with a precision set by the value of @code{PREC}---one 
of the
+following workarounds effectively accomplishes the desired behavior:
 
 @example
 x = x + 0.0
 @end example
+
+or:
+
address@hidden
+x += 0.0
address@hidden example
+
 @c FIXME: JOHN: Does += also work? I'd assume so...
 
 @node Exact Arithmetic
@@ -18996,7 +19009,7 @@ $ @kbd{gawk -M -vPREC=56 'BEGIN @{ print (0.1 + 12.2 == 
12.3) @}'}
 @end example
 
 If adding more bits is good, perhaps adding even more bits of
-precicision is better?
+precision is better?
 Here is what happens if we use an even larger value of @code{PREC}:
 
 @example 
@@ -19144,8 +19157,10 @@ or 608693.
 The result from an arithmetic operation with an integer and a floating-point 
value
 is a floating-point value with a precision equal to the working precision.
 The following program calculates the eighth term in
+Sylvester's address@hidden
+Weisstein, Eric W. @cite{Sylvester's Sequence}. From MathWorld--A Wolfram Web 
Resource. @url{http://mathworld.wolfram.com/SylvestersSequence.html}}
 @c FIXME: JOHN: Cite a URL for what Sylvester's sequence is...
-Sylvester's sequence using a recurrence:
+using a recurrence:
 
 @example
 $ @kbd{gawk -M 'BEGIN @{}
diff --git a/mpfr.c b/mpfr.c
index aaf65c2..2adf918 100644
--- a/mpfr.c
+++ b/mpfr.c
@@ -441,8 +441,8 @@ NODE *
 mpg_update_var(NODE *n)
 {
        NODE *val = n->var_value;
-       long nr;
-       mpz_ptr nq;
+       long nr = 0;
+       mpz_ptr nq = 0;
 
        if (n == NR_node) {
                nr = NR;
@@ -474,10 +474,9 @@ mpg_update_var(NODE *n)
 long
 mpg_set_var(NODE *n)
 {
-       long nr;
-       mpz_ptr nq, r;
+       long nr = 0;
+       mpz_ptr nq = 0, r;
        NODE *val = n->var_value;
-       int neg = FALSE;
 
        if (n == NR_node)
                nq = MNR;

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

Summary of changes:
 awk.h         |    2 +-
 awkgram.c     |  398 ++++++++++----------
 awkgram.y     |    2 -
 builtin.c     |    2 +-
 doc/gawk.1    |    2 +-
 doc/gawk.info | 1225 +++++++++++++++++++++++++++++----------------------------
 doc/gawk.texi |   41 ++-
 mpfr.c        |    9 +-
 8 files changed, 854 insertions(+), 827 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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