summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2015-04-28 16:46:05 +0300
committerArnold D. Robbins <arnold@skeeve.com>2015-04-28 16:46:05 +0300
commit6853b3e94c03194200c5a7c4450820a8eaa0920f (patch)
tree0e68baf9f5d687a0a3b6543f01522a56bf010279
parent020be4cb81b519a597acbf85e683cfb95993c2b9 (diff)
parentb4ef28f58688cf3c3a5878c595b6582144ee2cf1 (diff)
downloadgawk-6853b3e94c03194200c5a7c4450820a8eaa0920f.tar.gz
Merge branch 'master' into feature/regex-type
-rw-r--r--ChangeLog84
-rw-r--r--array.c2
-rw-r--r--awkgram.c1981
-rw-r--r--awkgram.y101
-rw-r--r--builtin.c119
-rw-r--r--command.c10
-rw-r--r--command.y10
-rw-r--r--debug.c16
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/gawk.texi7
-rw-r--r--doc/gawktexi.in7
-rw-r--r--eval.c12
-rw-r--r--extension/ChangeLog7
-rw-r--r--extension/readfile.c4
-rw-r--r--extension/rwarray.c4
-rw-r--r--extension/rwarray0.c4
-rw-r--r--field.c4
-rw-r--r--gawkapi.h2
-rw-r--r--helpers/ChangeLog8
-rw-r--r--helpers/testdfa.c21
-rw-r--r--interpret.h7
-rw-r--r--io.c11
-rw-r--r--node.c14
-rw-r--r--old-extension/ChangeLog9
-rw-r--r--old-extension/bindarr.c2
-rw-r--r--old-extension/fileop.c2
-rw-r--r--po/da.po1062
-rw-r--r--po/it.po20
-rw-r--r--po/sv.po16
-rw-r--r--profile.c9
-rw-r--r--re.c4
-rw-r--r--test/ChangeLog16
-rw-r--r--test/Makefile.am15
-rw-r--r--test/Makefile.in30
-rw-r--r--test/Maketests15
-rw-r--r--test/inpref.awk9
-rw-r--r--test/inpref.in2
-rw-r--r--test/inpref.ok2
-rw-r--r--test/regexpbrack2.awk2
-rw-r--r--test/regexpbrack2.in2
-rw-r--r--test/regexpbrack2.ok2
-rw-r--r--test/shadowbuiltin.awk10
-rw-r--r--test/shadowbuiltin.ok2
43 files changed, 1986 insertions, 1684 deletions
diff --git a/ChangeLog b/ChangeLog
index 4499f94e..3b78f84e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2015-04-28 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awkgram.y (yylex): Rework the bracket handling from zero.
+ Thanks to Michal Jaegermann for yet another test case.
+
+ Unrelated:
+
+ * eval.c (setup_frame): Restore call-by-value for $0. This was
+ necessitated by the changes on 2014-11-11 for conserving
+ memory use. Thanks to Andrew Schorr for the report and isolating
+ the cause of the problem.
+
+2015-04-27 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awkgram.y (yylex): Make change of Jan 7 for parsing regexps
+ work better. Thanks to Nelson Beebe.
+
2015-04-26 Arnold D. Robbins <arnold@skeeve.com>
* dfa.c: Sync with grep.
@@ -15,6 +32,15 @@
2015-04-16 Arnold D. Robbins <arnold@skeeve.com>
+ Let parameter names shadow the names of gawk additional built-ins.
+ Make it actually work.
+
+ * awkgram.y (want_param_names): Now an enum, there are three states.
+ (grammar): Set states properly.
+ (yylex): Improve checking logic.
+
+2015-04-16 Arnold D. Robbins <arnold@skeeve.com>
+
* configure.ac: Updated by autoupdate.
* configure, aclocal.m4: Regenerated.
* io.c, main.c, profile.c: Removed use of RETSIGTYPE.
@@ -34,6 +60,14 @@
* NEWS: Updated.
+2015-04-15 Arnold D. Robbins <arnold@skeeve.com>
+
+ Let parameter names shadow the names of gawk additional built-ins.
+
+ * awkgram.y (want_param_names): New variable.
+ (yylex): Check it before returning a built-in token.
+ (grammar): Set and clear it in the right places.
+
2015-04-14 Arnold D. Robbins <arnold@skeeve.com>
* builtin.c (do_strftime): Restore checking for negative result and
@@ -48,9 +82,23 @@
* builtin.c (call_sub): Fix for indirect gensub, 3 args now works.
Unrelated:
+
+ * builtin.c (do_sub): Improve some variable names for readability
+ and add / expand some comments.
+
+ Unrelated:
+
* builtin.c (call_sub, call_match, call_split_func): Allow for
regex to be Node_hardregex.
+2015-04-14 Andrew J. Schorr <aschorr@telemetry-investments.com>
+ Arnold D. Robbins <arnold@skeeve.com>
+
+ * builtin.c (do_sub): Make computations smarter; initial len
+ to malloc, test for final amount after all matches done and
+ need to copy in the final part of the original string.
+
+
2015-04-13 Arnold D. Robbins <arnold@skeeve.com>
* regcomp.c (analyze): Prevent malloc(0).
@@ -72,6 +120,15 @@
* Makefile.am (efence): Make this link again.
Thanks to Michal Jaegermann for pointing out the problem.
+2015-04-09 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * awkgram.y (yyerror): Rationalize buffer size computations. Remove
+ old valgrind workarounds.
+ * debug.c (gprintf): Rationalize buffer size computations.
+ (serialize_subscript): Ditto.
+ * io.c (iop_finish): Rationalize buffer size computations.
+ * profile.c (pp_string): Correct space allocation computation.
+
2015-04-08 John E. Malmberg <wb8tyw@qsl.net>
* custom.h: VMS shares some code paths with ZOS_USS in
@@ -485,6 +542,33 @@
* profile.c (pprint): Be sure to set ip2 in all paths
through the code. Thanks to GCC 4.9 for the warning.
+2014-12-18 Arnold D. Robbins <arnold@skeeve.com>
+
+ * builtin.c (do_sub): Do not waste a byte at the end of a string.
+
+2014-12-14 Arnold D. Robbins <arnold@skeeve.com>
+
+ * awkgram.y (yyerror): Do not waste a byte at the end of a string.
+ * builtin.c (do_match): Ditto.
+ * command.y (append_statement): Ditto.
+ * debug.c (gprintf, serialize): Ditto.
+ * field.c (set_FIELDWIDTHS): Ditto.
+ * io.c.c (grow_iop_buffer): Ditto.
+ * profile.c (pp_string, pp_group3): Ditto.
+
+2014-12-14 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * array.c (concat_exp): Do not waste a byte at the end of a string.
+ * awkgram.y (common_exp): Ditto.
+ * builtin.c (do_substr): Ditto.
+ * eval.c (set_OFS): Ditto.
+ * field.c (rebuild_record): Ditto.
+ * gawkapi.h (r_make_string): Ditto.
+ * interpret.h (r_interpret): Ditto for Op_assign_concat.
+ * node.c (r_format_val, r_dupnode, make_str_node, str2wstr, wstr2str):
+ Ditto.
+ * re.c (make_regexp): Ditto.
+
2014-12-20 Arnold D. Robbins <arnold@skeeve.com>
Enable non-fatal output on per-file or global basis,
diff --git a/array.c b/array.c
index f7993624..59428ba2 100644
--- a/array.c
+++ b/array.c
@@ -414,7 +414,7 @@ concat_exp(int nargs, bool do_subsep)
}
len += (nargs - 1) * subseplen;
- emalloc(str, char *, len + 2, "concat_exp");
+ emalloc(str, char *, len + 1, "concat_exp");
r = args_array[nargs];
memcpy(str, r->stptr, r->stlen);
diff --git a/awkgram.c b/awkgram.c
index b4f71d40..d3481c8e 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -129,6 +129,11 @@ static void check_comment(void);
static bool at_seen = false;
static bool want_source = false;
static bool want_regexp = false; /* lexical scanning kludge */
+static enum {
+ FUNC_HEADER,
+ FUNC_BODY,
+ DONT_CHECK
+} want_param_names = DONT_CHECK; /* ditto */
static char *in_function; /* parsing kludge */
static int rule = 0;
@@ -202,7 +207,7 @@ extern double fmod(double x, double y);
#define YYSTYPE INSTRUCTION *
-#line 206 "awkgram.c" /* yacc.c:339 */
+#line 211 "awkgram.c" /* yacc.c:339 */
# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
@@ -358,7 +363,7 @@ int yyparse (void);
/* Copy the second part of user declarations. */
-#line 362 "awkgram.c" /* yacc.c:358 */
+#line 367 "awkgram.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -600,16 +605,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1220
+#define YYLAST 1236
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 76
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 69
+#define YYNNTS 70
/* YYNRULES -- Number of rules. */
-#define YYNRULES 202
+#define YYNRULES 203
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 349
+#define YYNSTATES 350
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
@@ -660,27 +665,27 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 205, 205, 207, 212, 213, 217, 229, 234, 245,
- 251, 257, 266, 274, 276, 281, 289, 291, 297, 305,
- 315, 345, 359, 373, 381, 392, 404, 406, 408, 414,
- 422, 423, 427, 462, 461, 495, 522, 524, 529, 535,
- 563, 568, 569, 573, 575, 577, 584, 674, 716, 758,
- 871, 878, 885, 895, 904, 913, 922, 933, 949, 948,
- 972, 984, 984, 1082, 1082, 1115, 1145, 1151, 1152, 1158,
- 1159, 1166, 1171, 1183, 1197, 1199, 1207, 1212, 1214, 1222,
- 1231, 1233, 1242, 1243, 1251, 1256, 1256, 1267, 1271, 1279,
- 1280, 1283, 1285, 1290, 1291, 1300, 1301, 1306, 1311, 1317,
- 1319, 1321, 1328, 1329, 1335, 1336, 1341, 1343, 1348, 1350,
- 1358, 1363, 1372, 1373, 1378, 1380, 1385, 1387, 1395, 1400,
- 1408, 1409, 1414, 1421, 1425, 1427, 1429, 1442, 1459, 1469,
- 1476, 1478, 1483, 1485, 1487, 1495, 1497, 1502, 1504, 1509,
- 1511, 1513, 1563, 1565, 1567, 1569, 1571, 1573, 1575, 1577,
- 1591, 1596, 1601, 1626, 1632, 1634, 1636, 1638, 1640, 1642,
- 1647, 1651, 1683, 1685, 1691, 1697, 1710, 1711, 1712, 1717,
- 1722, 1726, 1730, 1745, 1758, 1763, 1800, 1829, 1830, 1836,
- 1837, 1842, 1844, 1851, 1868, 1885, 1887, 1894, 1899, 1907,
- 1917, 1929, 1938, 1942, 1946, 1950, 1954, 1958, 1961, 1963,
- 1967, 1971, 1975
+ 0, 210, 210, 212, 217, 218, 222, 234, 239, 250,
+ 257, 263, 272, 280, 282, 287, 295, 297, 303, 311,
+ 321, 351, 365, 379, 387, 398, 410, 412, 414, 420,
+ 428, 429, 433, 433, 469, 468, 502, 529, 531, 536,
+ 542, 570, 575, 576, 580, 582, 584, 591, 681, 723,
+ 765, 878, 885, 892, 902, 911, 920, 929, 940, 956,
+ 955, 979, 991, 991, 1089, 1089, 1122, 1152, 1158, 1159,
+ 1165, 1166, 1173, 1178, 1190, 1204, 1206, 1214, 1219, 1221,
+ 1229, 1238, 1240, 1249, 1250, 1258, 1263, 1263, 1274, 1278,
+ 1286, 1287, 1290, 1292, 1297, 1298, 1307, 1308, 1313, 1318,
+ 1324, 1326, 1328, 1335, 1336, 1342, 1343, 1348, 1350, 1355,
+ 1357, 1365, 1370, 1379, 1380, 1385, 1387, 1392, 1394, 1402,
+ 1407, 1415, 1416, 1421, 1428, 1432, 1434, 1436, 1449, 1466,
+ 1476, 1483, 1485, 1490, 1492, 1494, 1502, 1504, 1509, 1511,
+ 1516, 1518, 1520, 1570, 1572, 1574, 1576, 1578, 1580, 1582,
+ 1584, 1598, 1603, 1608, 1633, 1639, 1641, 1643, 1645, 1647,
+ 1649, 1654, 1658, 1690, 1692, 1698, 1704, 1717, 1718, 1719,
+ 1724, 1729, 1733, 1737, 1752, 1765, 1770, 1807, 1836, 1837,
+ 1843, 1844, 1849, 1851, 1858, 1875, 1892, 1894, 1901, 1906,
+ 1914, 1924, 1936, 1945, 1949, 1953, 1957, 1961, 1965, 1968,
+ 1970, 1974, 1978, 1982
};
#endif
@@ -703,10 +708,10 @@ static const char *const yytname[] =
"'!'", "UNARY", "'^'", "'$'", "'('", "')'", "'@'", "'['", "']'", "'{'",
"'}'", "';'", "$accept", "program", "rule", "source", "library",
"pattern", "action", "func_name", "lex_builtin", "function_prologue",
- "regexp", "$@1", "hard_regexp", "a_slash", "statements",
- "statement_term", "statement", "non_compound_stmt", "$@2", "simple_stmt",
- "$@3", "$@4", "opt_simple_stmt", "case_statements", "case_statement",
- "case_value", "print", "print_expression_list", "output_redir", "$@5",
+ "$@1", "regexp", "$@2", "hard_regexp", "a_slash", "statements",
+ "statement_term", "statement", "non_compound_stmt", "$@3", "simple_stmt",
+ "$@4", "$@5", "opt_simple_stmt", "case_statements", "case_statement",
+ "case_value", "print", "print_expression_list", "output_redir", "$@6",
"if_statement", "nls", "opt_nls", "input_redir", "opt_param_list",
"param_list", "opt_exp", "opt_expression_list", "expression_list",
"opt_fcall_expression_list", "fcall_expression_list", "fcall_exp", "exp",
@@ -735,55 +740,55 @@ static const yytype_uint16 yytoknum[] =
};
# endif
-#define YYPACT_NINF -274
+#define YYPACT_NINF -275
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-274)))
+ (!!((Yystate) == (-275)))
-#define YYTABLE_NINF -114
+#define YYTABLE_NINF -115
#define yytable_value_is_error(Yytable_value) \
- (!!((Yytable_value) == (-114)))
+ (!!((Yytable_value) == (-115)))
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -274, 360, -274, -274, -17, -23, -274, -274, -274, -274,
- 128, -274, -274, 14, 14, 14, -11, 8, -274, -274,
- -274, 1123, 1123, -274, 1123, 1150, 853, 151, -274, -20,
- -10, -274, -274, 20, 868, 1049, 252, 276, -274, -274,
- -274, -274, 264, 779, 853, -274, 9, -274, -274, -274,
- -274, -274, 28, 45, -274, 10, -274, -274, -274, 779,
- 779, 134, 75, 104, 75, 75, 1123, 127, -274, -274,
- 15, 333, 44, 63, -274, 106, -274, -274, -274, 20,
- -274, 106, -274, 157, -274, -274, 1076, 152, 1123, 1123,
- 1123, 106, -274, -274, -274, 1123, 145, 252, 1123, 1123,
- 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
- -274, 164, -274, -274, 172, 1123, -274, -274, -274, 97,
- 73, -274, 1091, 36, 1091, -274, -274, -274, 26, 1123,
- -274, 97, 97, 333, -274, -274, -274, 1123, 106, -274,
- 146, 900, -274, -274, 16, -21, -274, 34, -21, 20,
- -274, 583, -274, -274, -274, 173, -274, 209, 374, 1032,
- 1123, 215, 14, 102, 102, 75, 75, 75, 75, 102,
- 102, 75, 75, 75, 75, -274, -274, 1091, -274, 1076,
- 826, -274, -274, -274, 97, 111, 252, -274, -274, 1091,
- -274, 152, -274, 1091, -274, -274, -274, -274, -274, 120,
- -274, 42, 126, 131, 106, 135, -21, -21, -274, -274,
- -21, 1123, -21, 106, -274, -274, -21, -274, -274, 1091,
- -274, 115, 106, 1123, 1091, -274, -274, -274, -274, 106,
- -274, 43, -274, 1123, 1123, -274, 203, 1123, 1123, 699,
- 933, -274, -274, -274, -21, 1091, -274, -274, -274, 630,
- 583, 106, -274, -274, 1091, -274, -274, -274, 333, -21,
- -23, 147, 333, 333, 199, -5, -274, 115, -274, 853,
- 216, -274, 4, -274, -274, 106, -274, -274, 122, -274,
- -274, -274, 106, 106, 167, 152, 106, 15, -274, -274,
- 699, -274, -274, -10, 699, 1123, 97, 746, 146, 1123,
- 218, -274, -274, 333, 106, 246, 106, 1049, 106, 144,
- 106, 699, 106, 981, 699, -274, 272, 185, -274, 168,
- -274, -274, 981, 97, -274, -274, -274, 236, 238, -274,
- -274, 185, -274, 106, -274, 97, 106, -274, -274, 106,
- -274, 106, 699, -274, 433, 699, -274, 508, -274
+ -275, 376, -275, -275, -12, -9, -275, -275, -275, -275,
+ 171, -275, -275, 44, 44, 44, 5, 40, -275, -275,
+ -275, 1139, 1139, -275, 1139, 1166, 869, 27, -275, -18,
+ 2, -275, -275, 89, 884, 1065, 192, 214, -275, -275,
+ -275, -275, 248, 795, 869, -275, 10, -275, -275, -275,
+ -275, -275, 116, 82, -275, 115, -275, -275, -275, 795,
+ 795, 166, 107, 104, 107, 107, 1139, 117, -275, -275,
+ 15, 349, 23, 45, -275, 125, -275, -275, -275, 89,
+ -275, 125, -275, 178, -275, -275, 1092, 172, 1139, 1139,
+ 1139, 125, -275, -275, -275, 1139, 146, 192, 1139, 1139,
+ 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
+ -275, 181, -275, -275, 173, 1139, -275, -275, -275, 128,
+ 73, -275, 1107, 14, 1107, -275, -275, -275, -275, 1139,
+ -275, 128, 128, 349, -275, -275, -275, 1139, 125, -275,
+ 152, 916, -275, -275, 16, 92, -275, 20, 92, 89,
+ -275, 599, -275, -275, -275, 148, -275, 124, 22, 1048,
+ 1139, 199, 44, 265, 265, 107, 107, 107, 107, 265,
+ 265, 107, 107, 107, 107, -275, -275, 1107, -275, 1092,
+ 842, -275, 43, 192, -275, -275, 1107, -275, 172, -275,
+ 1107, -275, -275, -275, -275, -275, 133, -275, 41, 144,
+ 145, 125, 147, 92, 92, -275, -275, 92, 1139, 92,
+ 125, -275, -275, 92, -275, -275, 1107, -275, 151, 125,
+ 1139, 1107, -275, -275, -275, -275, -275, -275, 128, 76,
+ -275, 1139, 1139, -275, 224, 1139, 1139, 715, 949, -275,
+ -275, -275, 92, 1107, -275, -275, -275, 646, 599, 125,
+ -275, -275, 1107, 125, -275, 49, 349, 92, -9, 160,
+ 349, 349, 206, 113, -275, 151, -275, 869, 225, -275,
+ 169, -275, -275, -275, -275, -275, 125, -275, -275, 11,
+ -275, -275, -275, 125, 125, 179, 172, 125, 15, -275,
+ -275, 715, -275, -275, 2, 715, 1139, 128, 762, 152,
+ 1139, 219, -275, -275, 349, 125, 275, 125, 1065, 125,
+ 112, 125, 715, 125, 997, 715, -275, 261, 205, -275,
+ 191, -275, -275, 997, 128, -275, -275, -275, 271, 272,
+ -275, -275, 205, -275, 125, -275, 128, 125, -275, -275,
+ 125, -275, 125, 715, -275, 449, 715, -275, 524, -275
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -791,65 +796,65 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 2, 0, 1, 6, 0, 188, 170, 171, 21, 22,
- 0, 23, 24, 177, 0, 0, 0, 165, 5, 89,
- 37, 0, 0, 36, 0, 0, 0, 0, 3, 0,
- 0, 160, 33, 4, 19, 131, 139, 140, 142, 166,
- 174, 190, 167, 0, 0, 185, 0, 189, 27, 26,
- 30, 31, 0, 0, 28, 93, 178, 168, 169, 0,
- 0, 0, 173, 167, 172, 161, 0, 194, 167, 108,
- 0, 106, 0, 0, 175, 91, 200, 7, 8, 41,
- 38, 91, 9, 0, 90, 135, 0, 0, 0, 0,
- 0, 91, 136, 138, 137, 0, 0, 141, 0, 0,
+ 2, 0, 1, 6, 0, 189, 171, 172, 21, 22,
+ 0, 23, 24, 178, 0, 0, 0, 166, 5, 90,
+ 38, 0, 0, 37, 0, 0, 0, 0, 3, 0,
+ 0, 161, 34, 4, 19, 132, 140, 141, 143, 167,
+ 175, 191, 168, 0, 0, 186, 0, 190, 27, 26,
+ 30, 31, 0, 0, 28, 94, 179, 169, 170, 0,
+ 0, 0, 174, 168, 173, 162, 0, 195, 168, 109,
+ 0, 107, 0, 0, 176, 92, 201, 7, 8, 42,
+ 39, 92, 9, 0, 91, 136, 0, 0, 0, 0,
+ 0, 92, 137, 139, 138, 0, 0, 142, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 133, 132, 150, 151, 0, 0, 116, 35, 121, 0,
- 0, 114, 120, 0, 106, 187, 186, 29, 0, 0,
- 149, 0, 0, 0, 192, 193, 191, 109, 91, 197,
- 0, 0, 162, 14, 0, 0, 17, 0, 0, 92,
- 195, 0, 42, 34, 126, 127, 128, 124, 125, 0,
- 0, 129, 177, 147, 148, 144, 145, 146, 143, 158,
- 159, 155, 156, 157, 154, 123, 134, 122, 176, 117,
- 0, 184, 99, 97, 0, 0, 94, 163, 164, 110,
- 202, 0, 111, 107, 13, 10, 16, 11, 40, 0,
- 58, 0, 0, 0, 91, 0, 0, 0, 80, 81,
- 0, 102, 0, 91, 39, 52, 0, 61, 45, 66,
- 38, 198, 91, 0, 20, 153, 118, 119, 115, 91,
- 100, 0, 152, 0, 102, 63, 0, 0, 0, 0,
- 67, 53, 54, 55, 0, 103, 56, 196, 60, 0,
- 0, 91, 199, 43, 130, 32, 101, 98, 0, 0,
- 179, 0, 0, 0, 0, 188, 68, 0, 57, 0,
- 84, 82, 0, 44, 25, 91, 59, 64, 0, 181,
- 183, 65, 91, 91, 0, 0, 91, 0, 85, 62,
- 0, 180, 182, 0, 0, 0, 0, 0, 83, 0,
- 87, 69, 47, 0, 91, 0, 91, 86, 91, 0,
- 91, 0, 91, 67, 0, 71, 0, 0, 70, 0,
- 48, 49, 67, 0, 88, 74, 77, 0, 0, 78,
- 79, 0, 201, 91, 46, 0, 91, 76, 75, 91,
- 38, 91, 0, 38, 0, 0, 51, 0, 50
+ 134, 133, 151, 152, 0, 0, 117, 36, 122, 0,
+ 0, 115, 121, 0, 107, 188, 187, 29, 32, 0,
+ 150, 0, 0, 0, 193, 194, 192, 110, 92, 198,
+ 0, 0, 163, 14, 0, 0, 17, 0, 0, 93,
+ 196, 0, 43, 35, 127, 128, 129, 125, 126, 0,
+ 0, 130, 178, 148, 149, 145, 146, 147, 144, 159,
+ 160, 156, 157, 158, 155, 124, 135, 123, 177, 118,
+ 0, 185, 0, 95, 164, 165, 111, 203, 0, 112,
+ 108, 13, 10, 16, 11, 41, 0, 59, 0, 0,
+ 0, 92, 0, 0, 0, 81, 82, 0, 103, 0,
+ 92, 40, 53, 0, 62, 46, 67, 39, 199, 92,
+ 0, 20, 154, 119, 120, 116, 100, 98, 0, 0,
+ 153, 0, 103, 64, 0, 0, 0, 0, 68, 54,
+ 55, 56, 0, 104, 57, 197, 61, 0, 0, 92,
+ 200, 44, 131, 92, 101, 0, 0, 0, 180, 0,
+ 0, 0, 0, 189, 69, 0, 58, 0, 85, 83,
+ 0, 45, 25, 33, 102, 99, 92, 60, 65, 0,
+ 182, 184, 66, 92, 92, 0, 0, 92, 0, 86,
+ 63, 0, 181, 183, 0, 0, 0, 0, 0, 84,
+ 0, 88, 70, 48, 0, 92, 0, 92, 87, 92,
+ 0, 92, 0, 92, 68, 0, 72, 0, 0, 71,
+ 0, 49, 50, 68, 0, 89, 75, 78, 0, 0,
+ 79, 80, 0, 202, 92, 47, 0, 92, 77, 76,
+ 92, 39, 92, 0, 39, 0, 0, 52, 0, 51
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -274, -274, -274, -274, -274, -274, 223, -274, -274, -274,
- -70, -274, -82, -274, -196, -55, -19, -274, -274, -179,
- -274, -274, -273, -274, -274, -274, -274, -274, -274, -274,
- -274, 5, 47, -274, -274, -274, 21, -274, -41, 117,
- -274, 2, -1, -274, -274, -274, -42, 17, -274, 233,
- -274, 1, 100, -274, -274, -8, -37, -274, -274, -80,
- -2, -274, -28, -242, -49, -274, -15, -72, -110
+ -275, -275, -275, -275, -275, -275, 252, -275, -275, -275,
+ -275, -33, -275, -80, -275, -213, 100, -144, -275, -275,
+ -231, -275, -275, -274, -275, -275, -275, -275, -275, -275,
+ -275, -275, 7, 62, -275, -275, -275, 54, -275, -43,
+ 1, -275, -23, -1, -275, -275, -275, -13, 17, -275,
+ 263, -275, 8, 127, -275, -275, 21, -36, -275, -275,
+ -78, -2, -275, -27, -230, -65, -275, -15, -38, -94
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 1, 28, 145, 148, 29, 77, 53, 54, 30,
- 31, 83, 118, 32, 151, 78, 214, 215, 234, 216,
- 249, 260, 267, 309, 318, 331, 217, 270, 289, 299,
- 218, 149, 150, 130, 184, 185, 244, 271, 70, 119,
- 120, 121, 219, 115, 94, 95, 35, 36, 37, 38,
- 39, 40, 55, 277, 278, 279, 45, 46, 47, 41,
- 42, 136, 220, 221, 142, 251, 222, 333, 141
+ 182, 31, 83, 118, 32, 151, 78, 211, 212, 232,
+ 213, 247, 258, 265, 310, 319, 332, 214, 268, 290,
+ 300, 215, 149, 150, 130, 228, 229, 242, 269, 70,
+ 119, 120, 121, 216, 115, 94, 95, 35, 36, 37,
+ 38, 39, 40, 55, 278, 279, 280, 45, 46, 47,
+ 41, 42, 136, 217, 218, 142, 249, 219, 334, 141
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -857,256 +862,258 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 34, 80, 80, 123, 154, 137, 33, 156, 273, 126,
- 180, 56, 57, 58, 81, -105, 137, 194, 5, 63,
- 63, 140, 63, 68, 250, 71, 125, 182, 74, 175,
- 183, 19, 19, 63, 79, 196, 285, 137, 62, 64,
- 323, 65, 122, 124, 256, 143, 235, 257, 44, 335,
- 144, 43, 97, 75, 76, 76, -105, 59, 122, 122,
- 138, 266, 74, 75, 146, 133, 44, 129, -12, 147,
- 178, 138, 84, -105, 179, 231, 60, 334, 127, -105,
- 44, 25, 187, 188, 139, 155, -15, 157, 158, 159,
- 195, -12, 138, 197, 161, -95, 63, 63, 63, 63,
- 63, 63, 63, 63, 63, 63, 63, 63, 181, -15,
- 236, 232, 230, 128, 177, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 63, 152, 138,
- 81, 48, 49, 81, 266, 229, 189, 4, 160, 291,
- 193, 103, -113, 266, 344, 315, 186, 347, 112, 113,
- 79, 241, 242, 79, 4, 243, 5, 246, 19, 224,
- 56, 248, 153, 100, 101, 102, 139, 138, 103, 316,
- 317, 134, 135, 117, 50, 51, 131, 132, 122, 122,
- -96, 226, 228, 85, 162, 190, 176, 191, 233, 268,
- 76, 81, 81, 44, 237, 81, 19, 81, 52, 238,
- 72, 81, 73, 240, 276, 296, 252, 261, 272, 275,
- 245, 79, 79, 282, 283, 79, 281, 79, -91, 85,
- 264, 79, 254, 280, 86, -114, 284, 288, 287, 81,
- 92, 93, 258, 245, 330, 295, 262, 263, 298, 308,
- 332, 280, 213, 337, 81, 338, 329, 304, 124, 79,
- 87, 239, 286, 82, 310, 259, 85, 307, 67, 339,
- 247, 86, 225, 0, 79, 301, 92, 93, 71, 253,
- 292, 300, -114, -114, 336, 302, 255, 110, 111, 325,
- 326, 117, 306, 0, 0, 0, 341, 87, 88, 89,
- 312, 0, 321, 0, 303, 324, 305, 63, 274, 0,
- 90, 0, 0, 92, 93, 63, 0, 0, 112, 113,
- 0, 98, 99, 100, 101, 102, 0, 114, 103, 0,
- 0, 76, 290, 346, 97, 20, 348, 0, 0, 293,
- 294, 327, 328, 297, 23, 104, 105, 106, 107, 108,
- 0, 0, 109, 85, 0, 0, 0, 0, 86, 0,
- 0, 311, 0, 313, 0, 314, 319, 320, 0, 322,
- 2, 3, 0, 4, 5, 0, 0, 6, 7, 0,
- 0, 0, 0, 0, 87, 88, 89, 0, 8, 9,
- 340, 0, 0, 342, 85, 0, 343, 90, 345, 86,
- 92, 93, 0, 0, 0, 0, 10, 11, 12, 13,
- 0, 0, 139, 0, 14, 15, 16, 17, 18, 0,
- 0, 0, 19, 20, 0, 87, 88, 0, 0, 21,
- 22, 0, 23, 0, 24, 0, 0, 25, 26, 0,
- 27, 92, 93, -18, 198, -18, 4, 5, 0, 0,
- 6, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 199, 0, 200, 201, 202, -73, -73,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 0,
- 0, 0, 13, 212, 0, 0, 0, 14, 15, 16,
- 17, 0, 0, 0, 0, -73, 20, 0, 0, 0,
- 0, 0, 21, 22, 0, 23, 0, 24, 0, 0,
- 25, 26, 0, 61, 0, 0, 75, -73, 76, 198,
- 0, 4, 5, 0, 0, 6, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 199, 0,
- 200, 201, 202, -72, -72, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 0, 0, 0, 13, 212, 0,
- 0, 0, 14, 15, 16, 17, 0, 0, 0, 0,
- -72, 20, 0, 0, 0, 0, 0, 21, 22, 0,
- 23, 0, 24, 0, 0, 25, 26, 0, 61, 0,
- 0, 75, -72, 76, 198, 0, 4, 5, 0, 0,
- 6, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 199, 0, 200, 201, 202, 0, 0,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 0,
- 0, 0, 13, 212, 0, 0, 0, 14, 15, 16,
- 17, 69, 0, 4, 5, 0, 20, 6, 7, 0,
- 0, -104, 21, 22, 0, 23, 0, 24, 0, 0,
- 25, 26, 0, 61, 0, 0, 75, 213, 76, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
- 0, 0, 0, 0, 14, 15, 16, 17, 0, 0,
- 0, 0, -104, 20, 0, 0, 0, 0, 0, 21,
- 22, 0, 23, 0, 24, 0, 0, 25, 269, -104,
- 61, 0, 4, 5, 0, -104, 6, 7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 199,
- 0, 200, 201, 202, 0, 0, 203, 204, 205, 206,
- 207, 208, 209, 210, 211, 0, 0, 0, 13, 212,
- 0, 0, 0, 14, 15, 16, 17, 0, 0, 4,
- 5, 0, 20, 6, 7, 0, 0, 0, 21, 22,
+ 34, 123, 80, 80, 248, 140, 154, 264, 33, 156,
+ 126, 56, 57, 58, 81, 137, 137, 191, 271, 63,
+ 63, 193, 63, 68, 143, 71, 180, 125, 292, 144,
+ 4, 175, 85, 63, 19, 74, 79, 86, 62, 64,
+ 324, 65, 122, 124, 226, 233, 146, 227, 5, 336,
+ 274, 147, 97, 275, 178, 75, 43, 76, 122, 122,
+ 131, 132, 44, 87, 88, 133, 184, 185, -12, 74,
+ 138, 138, -15, 59, 179, 75, 72, 254, 73, 92,
+ 93, 44, 44, 264, 139, 155, 181, 157, 158, 159,
+ 335, -12, 264, 262, 161, -15, 63, 63, 63, 63,
+ 63, 63, 63, 63, 63, 63, 63, 63, 60, 234,
+ 230, 25, -96, 316, 177, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 63, 345, 138,
+ 81, 348, 138, 81, 85, 255, 186, 317, 318, 86,
+ 190, 84, -114, 152, 19, -97, 183, 301, 112, 113,
+ 128, 303, 79, 160, 286, 79, 223, 225, 85, 221,
+ 56, 134, 135, 253, 19, 87, 127, 76, 322, 4,
+ 137, 325, 129, 103, 48, 49, 5, 19, 122, 122,
+ -106, 92, 93, 153, 44, 162, -92, 176, 81, 81,
+ 117, 276, 81, 188, 81, 283, 284, 139, 81, 347,
+ 187, 231, 349, 250, 270, 92, 93, 243, 297, -115,
+ 79, 79, 235, 236, 79, 238, 79, 50, 51, 252,
+ 79, -106, 281, 299, 288, 138, 76, 81, 259, 282,
+ 256, 243, 305, 285, 260, 261, 289, 331, -106, 311,
+ 309, 52, 81, 281, -106, 192, 124, 296, 194, 79,
+ 287, 98, 99, 100, 101, 102, -115, -115, 103, 337,
+ 333, 110, 111, 237, 79, 210, 71, 302, 326, 327,
+ 117, 342, 245, 104, 105, 106, 107, 108, 338, 339,
+ 109, 251, 82, 307, 330, 85, 257, 308, 67, 222,
+ 86, 313, 112, 113, 340, 304, 0, 306, 63, 0,
+ 293, 114, 0, 239, 240, 0, 63, 241, 0, 244,
+ 0, 272, 0, 246, 20, 273, 87, 88, 89, 0,
+ 328, 329, 0, 23, 0, 97, 100, 101, 102, 90,
+ 0, 103, 92, 93, 0, 0, 0, 0, 291, 0,
+ 0, 0, 266, 0, 0, 294, 295, 0, 0, 298,
+ 76, 0, 0, 0, 0, 0, 0, 277, 0, 85,
+ 0, 0, 0, 0, 86, 0, 0, 312, 0, 314,
+ 0, 315, 320, 321, 0, 323, 2, 3, 0, 4,
+ 5, 0, 0, 6, 7, 0, 0, 0, 0, 0,
+ 87, 88, 89, 0, 8, 9, 341, 0, 0, 343,
+ 0, 0, 344, 90, 346, 0, 92, 93, 0, 0,
+ 0, 0, 10, 11, 12, 13, 0, 0, 139, 0,
+ 14, 15, 16, 17, 18, 0, 0, 0, 19, 20,
+ 0, 0, 0, 0, 0, 21, 22, 0, 23, 0,
+ 24, 0, 0, 25, 26, 0, 27, 0, 0, -18,
+ 195, -18, 4, 5, 0, 0, 6, 7, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
+ 0, 197, 198, 199, -74, -74, 200, 201, 202, 203,
+ 204, 205, 206, 207, 208, 0, 0, 0, 13, 209,
+ 0, 0, 0, 14, 15, 16, 17, 0, 0, 0,
+ 0, -74, 20, 0, 0, 0, 0, 0, 21, 22,
+ 0, 23, 0, 24, 0, 0, 25, 26, 0, 61,
+ 0, 0, 75, -74, 76, 195, 0, 4, 5, 0,
+ 0, 6, 7, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 196, 0, 197, 198, 199, -73,
+ -73, 200, 201, 202, 203, 204, 205, 206, 207, 208,
+ 0, 0, 0, 13, 209, 0, 0, 0, 14, 15,
+ 16, 17, 0, 0, 0, 0, -73, 20, 0, 0,
+ 0, 0, 0, 21, 22, 0, 23, 0, 24, 0,
+ 0, 25, 26, 0, 61, 0, 0, 75, -73, 76,
+ 195, 0, 4, 5, 0, 0, 6, 7, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
+ 0, 197, 198, 199, 0, 0, 200, 201, 202, 203,
+ 204, 205, 206, 207, 208, 0, 0, 0, 13, 209,
+ 0, 0, 0, 14, 15, 16, 17, 69, 0, 4,
+ 5, 0, 20, 6, 7, 0, 0, -105, 21, 22,
+ 0, 23, 0, 24, 0, 0, 25, 26, 0, 61,
+ 0, 0, 75, 210, 76, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 13, 0, 0, 0, 0,
+ 14, 15, 16, 17, 0, 0, 0, 0, -105, 20,
+ 0, 0, 0, 0, 0, 21, 22, 0, 23, 0,
+ 24, 0, 0, 25, 267, -105, 61, 0, 4, 5,
+ 0, -105, 6, 7, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 196, 0, 197, 198, 199,
+ 0, 0, 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 0, 0, 0, 13, 209, 0, 0, 0, 14,
+ 15, 16, 17, 0, 0, 4, 5, 0, 20, 6,
+ 7, 0, 0, 0, 21, 22, 0, 23, 0, 24,
+ 0, 0, 25, 26, 0, 61, 0, 0, 75, 0,
+ 76, 0, 0, 0, 0, 0, 116, 0, 4, 5,
+ 0, 13, 6, 7, 117, 0, 14, 15, 16, 17,
+ 0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
+ 0, 21, 22, 0, 23, 0, 24, 0, 0, 25,
+ 26, 0, 61, 0, 13, 0, 0, 76, 0, 14,
+ 15, 16, 17, 224, 0, 4, 5, 0, 20, 6,
+ 7, 117, 0, 0, 21, 22, 0, 23, 0, 24,
+ 0, 0, 25, 26, -113, 61, 0, 0, 0, 0,
+ 69, 0, 4, 5, 0, 0, 6, 7, 0, 0,
+ 0, 13, 0, 0, 0, 0, 14, 15, 16, 17,
+ 0, 0, 0, 0, 85, 20, 0, 0, 0, 86,
+ 0, 21, 22, 0, 23, 0, 24, 0, 13, 25,
+ 26, 0, 61, 14, 15, 16, 17, 189, 0, 4,
+ 5, 0, 20, 6, 7, 87, 88, 89, 21, 22,
+ 0, 23, 0, 24, 0, 0, 25, 26, 90, 61,
+ 91, 92, 93, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 4, 263, 0, 13, 6, 7, 0, 0,
+ 14, 15, 16, 17, 0, 0, 0, 0, 0, 20,
+ 0, 0, 198, 0, 0, 21, 22, 0, 23, 0,
+ 24, 205, 206, 25, 26, 0, 61, 0, 13, 0,
+ 0, 0, 0, 14, 15, 16, 17, 0, 0, 0,
+ 4, 5, 20, 0, 6, 7, 0, 0, 21, 22,
+ 0, 23, 0, 24, 0, 0, 25, 26, 0, 61,
+ 198, 0, 0, 0, 0, 0, 0, 0, 0, 205,
+ 206, 0, 0, 0, 0, 0, 13, 0, 0, 0,
+ 0, 14, 15, 16, 17, 0, 0, 0, 0, 0,
+ 20, 0, 0, 0, 0, 0, 21, 22, 85, 23,
+ 0, 24, 0, 86, 25, 26, 0, 61, 4, 5,
+ 0, 0, 6, 7, 0, 0, 0, 96, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
+ 88, 89, 0, 0, 0, 4, 5, 0, 0, 6,
+ 7, 117, 90, 220, 13, 92, 93, 0, 0, 14,
+ 15, 16, 17, 0, 0, 0, 0, 85, 20, 0,
+ 0, 0, 86, 0, 21, 22, 0, 23, 0, 24,
+ 0, 13, 25, 26, 0, 61, 14, 15, 16, 17,
+ 0, 0, 4, 5, 0, 20, 6, 7, 87, 88,
+ 89, 21, 22, 0, 23, 0, 24, 0, 0, 25,
+ 26, 90, 61, 0, 92, 93, 0, 0, 0, 4,
+ 5, 0, 0, 6, 7, 0, 0, 0, 13, 0,
+ 0, 0, 0, 14, 15, 16, 17, 0, 0, 0,
+ 0, 0, 20, 0, 0, 0, 0, 0, 21, 22,
0, 23, 0, 24, 0, 0, 25, 26, 0, 61,
- 0, 0, 75, 0, 76, 0, 0, 0, 0, 0,
- 116, 0, 4, 5, 0, 13, 6, 7, 117, 0,
14, 15, 16, 17, 0, 0, 0, 0, 0, 20,
0, 0, 0, 0, 0, 21, 22, 0, 23, 0,
- 24, 0, 0, 25, 26, 0, 61, 0, 13, 0,
- 0, 76, 0, 14, 15, 16, 17, 227, 0, 4,
- 5, 0, 20, 6, 7, 117, 0, 0, 21, 22,
- 0, 23, 0, 24, 0, 0, 25, 26, -112, 61,
- 0, 0, 0, 0, 69, 0, 4, 5, 0, 0,
- 6, 7, 0, 0, 0, 13, 0, 0, 0, 0,
- 14, 15, 16, 17, 0, 0, 0, 0, 85, 20,
- 0, 0, 0, 86, 0, 21, 22, 0, 23, 0,
- 24, 0, 13, 25, 26, 0, 61, 14, 15, 16,
- 17, 192, 0, 4, 5, 0, 20, 6, 7, 87,
- 88, 89, 21, 22, 0, 23, 0, 24, 0, 0,
- 25, 26, 90, 61, 91, 92, 93, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 265, 0, 13,
- 6, 7, 0, 0, 14, 15, 16, 17, 0, 0,
- 0, 0, 0, 20, 0, 0, 201, 0, 0, 21,
- 22, 0, 23, 0, 24, 208, 209, 25, 26, 0,
- 61, 0, 13, 0, 0, 0, 0, 14, 15, 16,
- 17, 0, 0, 0, 4, 5, 20, 0, 6, 7,
- 0, 0, 21, 22, 0, 23, 0, 24, 0, 0,
- 25, 26, 0, 61, 201, 0, 0, 0, 0, 0,
- 0, 0, 0, 208, 209, 0, 0, 0, 0, 0,
- 13, 0, 0, 0, 0, 14, 15, 16, 17, 0,
- 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
- 21, 22, 85, 23, 0, 24, 0, 86, 25, 26,
- 0, 61, 4, 5, 0, 0, 6, 7, 0, 0,
- 0, 96, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 87, 88, 89, 0, 0, 0, 4,
- 5, 0, 0, 6, 7, 117, 90, 223, 13, 92,
- 93, 0, 0, 14, 15, 16, 17, 0, 0, 0,
- 0, 85, 20, 0, 0, 0, 86, 0, 21, 22,
- 0, 23, 0, 24, 0, 13, 25, 26, 0, 61,
- 14, 15, 16, 17, 0, 0, 4, 5, 0, 20,
- 6, 7, 87, 88, 89, 21, 22, 0, 23, 0,
- 24, 0, 0, 25, 26, 90, 61, 0, 92, 93,
- 0, 0, 0, 4, 5, 0, 0, 6, 7, 0,
- 0, 0, 13, 0, 0, 0, 0, 14, 15, 16,
- 17, 0, 0, 0, 0, 0, 20, 0, 0, 0,
- 0, 0, 21, 22, 0, 23, 0, 24, 0, 0,
- 25, 26, 0, 61, 14, 15, 16, 17, 0, 0,
- 0, 0, 0, 20, 0, 0, 0, 0, 0, 21,
- 22, 0, 23, 0, 24, 0, 0, 25, 66, 0,
- 61
+ 24, 0, 0, 25, 66, 0, 61
};
static const yytype_int16 yycheck[] =
{
- 1, 29, 30, 44, 86, 1, 1, 87, 250, 46,
- 120, 13, 14, 15, 29, 11, 1, 1, 4, 21,
- 22, 70, 24, 25, 220, 26, 17, 1, 27, 111,
- 4, 52, 52, 35, 29, 1, 41, 1, 21, 22,
- 313, 24, 43, 44, 1, 1, 4, 4, 71, 322,
- 6, 68, 35, 73, 75, 75, 52, 68, 59, 60,
- 56, 240, 61, 73, 1, 66, 71, 57, 52, 6,
- 119, 56, 52, 69, 1, 185, 68, 319, 50, 75,
- 71, 67, 131, 132, 69, 86, 52, 88, 89, 90,
- 145, 75, 56, 148, 95, 69, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 108, 109, 72, 75,
- 68, 191, 1, 68, 115, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 129, 81, 56,
- 145, 3, 4, 148, 313, 184, 137, 3, 91, 17,
- 141, 66, 69, 322, 340, 1, 129, 343, 44, 45,
- 145, 206, 207, 148, 3, 210, 4, 212, 52, 160,
- 162, 216, 5, 61, 62, 63, 69, 56, 66, 25,
- 26, 44, 45, 9, 46, 47, 59, 60, 179, 180,
- 69, 179, 180, 10, 39, 138, 14, 41, 68, 244,
- 75, 206, 207, 71, 68, 210, 52, 212, 70, 68,
- 49, 216, 51, 68, 259, 285, 221, 4, 249, 258,
- 211, 206, 207, 262, 263, 210, 69, 212, 74, 10,
- 239, 216, 223, 260, 15, 10, 27, 11, 269, 244,
- 57, 58, 233, 234, 316, 68, 237, 238, 287, 21,
- 55, 278, 74, 7, 259, 7, 316, 296, 249, 244,
- 41, 204, 267, 30, 303, 234, 10, 299, 25, 331,
- 213, 15, 162, -1, 259, 293, 57, 58, 269, 222,
- 278, 290, 57, 58, 323, 294, 229, 13, 14, 7,
- 8, 9, 297, -1, -1, -1, 335, 41, 42, 43,
- 305, -1, 311, -1, 295, 314, 297, 299, 251, -1,
- 54, -1, -1, 57, 58, 307, -1, -1, 44, 45,
- -1, 59, 60, 61, 62, 63, -1, 53, 66, -1,
- -1, 75, 275, 342, 307, 53, 345, -1, -1, 282,
- 283, 59, 60, 286, 62, 59, 60, 61, 62, 63,
- -1, -1, 66, 10, -1, -1, -1, -1, 15, -1,
- -1, 304, -1, 306, -1, 308, 309, 310, -1, 312,
- 0, 1, -1, 3, 4, -1, -1, 7, 8, -1,
- -1, -1, -1, -1, 41, 42, 43, -1, 18, 19,
- 333, -1, -1, 336, 10, -1, 339, 54, 341, 15,
- 57, 58, -1, -1, -1, -1, 36, 37, 38, 39,
- -1, -1, 69, -1, 44, 45, 46, 47, 48, -1,
- -1, -1, 52, 53, -1, 41, 42, -1, -1, 59,
- 60, -1, 62, -1, 64, -1, -1, 67, 68, -1,
- 70, 57, 58, 73, 1, 75, 3, 4, -1, -1,
- 7, 8, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 20, -1, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, -1,
- -1, -1, 39, 40, -1, -1, -1, 44, 45, 46,
- 47, -1, -1, -1, -1, 52, 53, -1, -1, -1,
- -1, -1, 59, 60, -1, 62, -1, 64, -1, -1,
- 67, 68, -1, 70, -1, -1, 73, 74, 75, 1,
- -1, 3, 4, -1, -1, 7, 8, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 20, -1,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, -1, -1, -1, 39, 40, -1,
- -1, -1, 44, 45, 46, 47, -1, -1, -1, -1,
- 52, 53, -1, -1, -1, -1, -1, 59, 60, -1,
- 62, -1, 64, -1, -1, 67, 68, -1, 70, -1,
- -1, 73, 74, 75, 1, -1, 3, 4, -1, -1,
- 7, 8, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 20, -1, 22, 23, 24, -1, -1,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, -1,
- -1, -1, 39, 40, -1, -1, -1, 44, 45, 46,
- 47, 1, -1, 3, 4, -1, 53, 7, 8, -1,
- -1, 11, 59, 60, -1, 62, -1, 64, -1, -1,
- 67, 68, -1, 70, -1, -1, 73, 74, 75, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 39,
- -1, -1, -1, -1, 44, 45, 46, 47, -1, -1,
- -1, -1, 52, 53, -1, -1, -1, -1, -1, 59,
- 60, -1, 62, -1, 64, -1, -1, 67, 68, 69,
- 70, -1, 3, 4, -1, 75, 7, 8, -1, -1,
+ 1, 44, 29, 30, 217, 70, 86, 238, 1, 87,
+ 46, 13, 14, 15, 29, 1, 1, 1, 248, 21,
+ 22, 1, 24, 25, 1, 26, 120, 17, 17, 6,
+ 3, 111, 10, 35, 52, 27, 29, 15, 21, 22,
+ 314, 24, 43, 44, 1, 4, 1, 4, 4, 323,
+ 1, 6, 35, 4, 119, 73, 68, 75, 59, 60,
+ 59, 60, 71, 41, 42, 66, 131, 132, 52, 61,
+ 56, 56, 52, 68, 1, 73, 49, 1, 51, 57,
+ 58, 71, 71, 314, 69, 86, 72, 88, 89, 90,
+ 320, 75, 323, 237, 95, 75, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 68, 68,
+ 188, 67, 69, 1, 115, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 129, 341, 56,
+ 145, 344, 56, 148, 10, 229, 137, 25, 26, 15,
+ 141, 52, 69, 81, 52, 69, 129, 291, 44, 45,
+ 68, 295, 145, 91, 41, 148, 179, 180, 10, 160,
+ 162, 44, 45, 228, 52, 41, 50, 75, 312, 3,
+ 1, 315, 57, 66, 3, 4, 4, 52, 179, 180,
+ 11, 57, 58, 5, 71, 39, 74, 14, 203, 204,
+ 9, 256, 207, 41, 209, 260, 261, 69, 213, 343,
+ 138, 68, 346, 218, 247, 57, 58, 208, 286, 10,
+ 203, 204, 68, 68, 207, 68, 209, 46, 47, 220,
+ 213, 52, 258, 288, 267, 56, 75, 242, 4, 69,
+ 231, 232, 297, 27, 235, 236, 11, 317, 69, 304,
+ 21, 70, 257, 279, 75, 145, 247, 68, 148, 242,
+ 265, 59, 60, 61, 62, 63, 57, 58, 66, 324,
+ 55, 13, 14, 201, 257, 74, 267, 294, 7, 8,
+ 9, 336, 210, 59, 60, 61, 62, 63, 7, 7,
+ 66, 219, 30, 298, 317, 10, 232, 300, 25, 162,
+ 15, 306, 44, 45, 332, 296, -1, 298, 300, -1,
+ 279, 53, -1, 203, 204, -1, 308, 207, -1, 209,
+ -1, 249, -1, 213, 53, 253, 41, 42, 43, -1,
+ 59, 60, -1, 62, -1, 308, 61, 62, 63, 54,
+ -1, 66, 57, 58, -1, -1, -1, -1, 276, -1,
+ -1, -1, 242, -1, -1, 283, 284, -1, -1, 287,
+ 75, -1, -1, -1, -1, -1, -1, 257, -1, 10,
+ -1, -1, -1, -1, 15, -1, -1, 305, -1, 307,
+ -1, 309, 310, 311, -1, 313, 0, 1, -1, 3,
+ 4, -1, -1, 7, 8, -1, -1, -1, -1, -1,
+ 41, 42, 43, -1, 18, 19, 334, -1, -1, 337,
+ -1, -1, 340, 54, 342, -1, 57, 58, -1, -1,
+ -1, -1, 36, 37, 38, 39, -1, -1, 69, -1,
+ 44, 45, 46, 47, 48, -1, -1, -1, 52, 53,
+ -1, -1, -1, -1, -1, 59, 60, -1, 62, -1,
+ 64, -1, -1, 67, 68, -1, 70, -1, -1, 73,
+ 1, 75, 3, 4, -1, -1, 7, 8, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
+ -1, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, -1, -1, -1, 39, 40,
+ -1, -1, -1, 44, 45, 46, 47, -1, -1, -1,
+ -1, 52, 53, -1, -1, -1, -1, -1, 59, 60,
+ -1, 62, -1, 64, -1, -1, 67, 68, -1, 70,
+ -1, -1, 73, 74, 75, 1, -1, 3, 4, -1,
+ -1, 7, 8, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 20, -1, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ -1, -1, -1, 39, 40, -1, -1, -1, 44, 45,
+ 46, 47, -1, -1, -1, -1, 52, 53, -1, -1,
+ -1, -1, -1, 59, 60, -1, 62, -1, 64, -1,
+ -1, 67, 68, -1, 70, -1, -1, 73, 74, 75,
+ 1, -1, 3, 4, -1, -1, 7, 8, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
-1, 22, 23, 24, -1, -1, 27, 28, 29, 30,
31, 32, 33, 34, 35, -1, -1, -1, 39, 40,
- -1, -1, -1, 44, 45, 46, 47, -1, -1, 3,
- 4, -1, 53, 7, 8, -1, -1, -1, 59, 60,
+ -1, -1, -1, 44, 45, 46, 47, 1, -1, 3,
+ 4, -1, 53, 7, 8, -1, -1, 11, 59, 60,
+ -1, 62, -1, 64, -1, -1, 67, 68, -1, 70,
+ -1, -1, 73, 74, 75, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 39, -1, -1, -1, -1,
+ 44, 45, 46, 47, -1, -1, -1, -1, 52, 53,
+ -1, -1, -1, -1, -1, 59, 60, -1, 62, -1,
+ 64, -1, -1, 67, 68, 69, 70, -1, 3, 4,
+ -1, 75, 7, 8, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 20, -1, 22, 23, 24,
+ -1, -1, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, -1, -1, -1, 39, 40, -1, -1, -1, 44,
+ 45, 46, 47, -1, -1, 3, 4, -1, 53, 7,
+ 8, -1, -1, -1, 59, 60, -1, 62, -1, 64,
+ -1, -1, 67, 68, -1, 70, -1, -1, 73, -1,
+ 75, -1, -1, -1, -1, -1, 1, -1, 3, 4,
+ -1, 39, 7, 8, 9, -1, 44, 45, 46, 47,
+ -1, -1, -1, -1, -1, 53, -1, -1, -1, -1,
+ -1, 59, 60, -1, 62, -1, 64, -1, -1, 67,
+ 68, -1, 70, -1, 39, -1, -1, 75, -1, 44,
+ 45, 46, 47, 1, -1, 3, 4, -1, 53, 7,
+ 8, 9, -1, -1, 59, 60, -1, 62, -1, 64,
+ -1, -1, 67, 68, 69, 70, -1, -1, -1, -1,
+ 1, -1, 3, 4, -1, -1, 7, 8, -1, -1,
+ -1, 39, -1, -1, -1, -1, 44, 45, 46, 47,
+ -1, -1, -1, -1, 10, 53, -1, -1, -1, 15,
+ -1, 59, 60, -1, 62, -1, 64, -1, 39, 67,
+ 68, -1, 70, 44, 45, 46, 47, 1, -1, 3,
+ 4, -1, 53, 7, 8, 41, 42, 43, 59, 60,
+ -1, 62, -1, 64, -1, -1, 67, 68, 54, 70,
+ 56, 57, 58, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 3, 4, -1, 39, 7, 8, -1, -1,
+ 44, 45, 46, 47, -1, -1, -1, -1, -1, 53,
+ -1, -1, 23, -1, -1, 59, 60, -1, 62, -1,
+ 64, 32, 33, 67, 68, -1, 70, -1, 39, -1,
+ -1, -1, -1, 44, 45, 46, 47, -1, -1, -1,
+ 3, 4, 53, -1, 7, 8, -1, -1, 59, 60,
+ -1, 62, -1, 64, -1, -1, 67, 68, -1, 70,
+ 23, -1, -1, -1, -1, -1, -1, -1, -1, 32,
+ 33, -1, -1, -1, -1, -1, 39, -1, -1, -1,
+ -1, 44, 45, 46, 47, -1, -1, -1, -1, -1,
+ 53, -1, -1, -1, -1, -1, 59, 60, 10, 62,
+ -1, 64, -1, 15, 67, 68, -1, 70, 3, 4,
+ -1, -1, 7, 8, -1, -1, -1, 12, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
+ 42, 43, -1, -1, -1, 3, 4, -1, -1, 7,
+ 8, 9, 54, 55, 39, 57, 58, -1, -1, 44,
+ 45, 46, 47, -1, -1, -1, -1, 10, 53, -1,
+ -1, -1, 15, -1, 59, 60, -1, 62, -1, 64,
+ -1, 39, 67, 68, -1, 70, 44, 45, 46, 47,
+ -1, -1, 3, 4, -1, 53, 7, 8, 41, 42,
+ 43, 59, 60, -1, 62, -1, 64, -1, -1, 67,
+ 68, 54, 70, -1, 57, 58, -1, -1, -1, 3,
+ 4, -1, -1, 7, 8, -1, -1, -1, 39, -1,
+ -1, -1, -1, 44, 45, 46, 47, -1, -1, -1,
+ -1, -1, 53, -1, -1, -1, -1, -1, 59, 60,
-1, 62, -1, 64, -1, -1, 67, 68, -1, 70,
- -1, -1, 73, -1, 75, -1, -1, -1, -1, -1,
- 1, -1, 3, 4, -1, 39, 7, 8, 9, -1,
44, 45, 46, 47, -1, -1, -1, -1, -1, 53,
-1, -1, -1, -1, -1, 59, 60, -1, 62, -1,
- 64, -1, -1, 67, 68, -1, 70, -1, 39, -1,
- -1, 75, -1, 44, 45, 46, 47, 1, -1, 3,
- 4, -1, 53, 7, 8, 9, -1, -1, 59, 60,
- -1, 62, -1, 64, -1, -1, 67, 68, 69, 70,
- -1, -1, -1, -1, 1, -1, 3, 4, -1, -1,
- 7, 8, -1, -1, -1, 39, -1, -1, -1, -1,
- 44, 45, 46, 47, -1, -1, -1, -1, 10, 53,
- -1, -1, -1, 15, -1, 59, 60, -1, 62, -1,
- 64, -1, 39, 67, 68, -1, 70, 44, 45, 46,
- 47, 1, -1, 3, 4, -1, 53, 7, 8, 41,
- 42, 43, 59, 60, -1, 62, -1, 64, -1, -1,
- 67, 68, 54, 70, 56, 57, 58, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 3, 4, -1, 39,
- 7, 8, -1, -1, 44, 45, 46, 47, -1, -1,
- -1, -1, -1, 53, -1, -1, 23, -1, -1, 59,
- 60, -1, 62, -1, 64, 32, 33, 67, 68, -1,
- 70, -1, 39, -1, -1, -1, -1, 44, 45, 46,
- 47, -1, -1, -1, 3, 4, 53, -1, 7, 8,
- -1, -1, 59, 60, -1, 62, -1, 64, -1, -1,
- 67, 68, -1, 70, 23, -1, -1, -1, -1, -1,
- -1, -1, -1, 32, 33, -1, -1, -1, -1, -1,
- 39, -1, -1, -1, -1, 44, 45, 46, 47, -1,
- -1, -1, -1, -1, 53, -1, -1, -1, -1, -1,
- 59, 60, 10, 62, -1, 64, -1, 15, 67, 68,
- -1, 70, 3, 4, -1, -1, 7, 8, -1, -1,
- -1, 12, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 41, 42, 43, -1, -1, -1, 3,
- 4, -1, -1, 7, 8, 9, 54, 55, 39, 57,
- 58, -1, -1, 44, 45, 46, 47, -1, -1, -1,
- -1, 10, 53, -1, -1, -1, 15, -1, 59, 60,
- -1, 62, -1, 64, -1, 39, 67, 68, -1, 70,
- 44, 45, 46, 47, -1, -1, 3, 4, -1, 53,
- 7, 8, 41, 42, 43, 59, 60, -1, 62, -1,
- 64, -1, -1, 67, 68, 54, 70, -1, 57, 58,
- -1, -1, -1, 3, 4, -1, -1, 7, 8, -1,
- -1, -1, 39, -1, -1, -1, -1, 44, 45, 46,
- 47, -1, -1, -1, -1, -1, 53, -1, -1, -1,
- -1, -1, 59, 60, -1, 62, -1, 64, -1, -1,
- 67, 68, -1, 70, 44, 45, 46, 47, -1, -1,
- -1, -1, -1, 53, -1, -1, -1, -1, -1, 59,
- 60, -1, 62, -1, 64, -1, -1, 67, 68, -1,
- 70
+ 64, -1, -1, 67, 68, -1, 70
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1116,38 +1123,38 @@ static const yytype_uint8 yystos[] =
0, 77, 0, 1, 3, 4, 7, 8, 18, 19,
36, 37, 38, 39, 44, 45, 46, 47, 48, 52,
53, 59, 60, 62, 64, 67, 68, 70, 78, 81,
- 85, 86, 89, 107, 118, 122, 123, 124, 125, 126,
- 127, 135, 136, 68, 71, 132, 133, 134, 3, 4,
- 46, 47, 70, 83, 84, 128, 136, 136, 136, 68,
- 68, 70, 123, 136, 123, 123, 68, 125, 136, 1,
- 114, 118, 49, 51, 127, 73, 75, 82, 91, 107,
- 138, 142, 82, 87, 52, 10, 15, 41, 42, 43,
- 54, 56, 57, 58, 120, 121, 12, 123, 59, 60,
+ 85, 87, 90, 108, 119, 123, 124, 125, 126, 127,
+ 128, 136, 137, 68, 71, 133, 134, 135, 3, 4,
+ 46, 47, 70, 83, 84, 129, 137, 137, 137, 68,
+ 68, 70, 124, 137, 124, 124, 68, 126, 137, 1,
+ 115, 119, 49, 51, 128, 73, 75, 82, 92, 108,
+ 139, 143, 82, 88, 52, 10, 15, 41, 42, 43,
+ 54, 56, 57, 58, 121, 122, 12, 124, 59, 60,
61, 62, 63, 66, 59, 60, 61, 62, 63, 66,
- 13, 14, 44, 45, 53, 119, 1, 9, 88, 115,
- 116, 117, 118, 114, 118, 17, 132, 50, 68, 57,
- 109, 115, 115, 118, 44, 45, 137, 1, 56, 69,
- 140, 144, 140, 1, 6, 79, 1, 6, 80, 107,
- 108, 90, 108, 5, 88, 118, 135, 118, 118, 118,
- 108, 118, 39, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 123, 88, 14, 118, 140, 1,
- 144, 72, 1, 4, 110, 111, 123, 140, 140, 118,
- 108, 41, 1, 118, 1, 91, 1, 91, 1, 20,
- 22, 23, 24, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 40, 74, 92, 93, 95, 102, 106, 118,
- 138, 139, 142, 55, 118, 128, 117, 1, 117, 140,
- 1, 144, 135, 68, 94, 4, 68, 68, 68, 108,
- 68, 91, 91, 91, 112, 118, 91, 108, 91, 96,
- 90, 141, 142, 108, 118, 108, 1, 4, 118, 112,
- 97, 4, 118, 118, 92, 4, 95, 98, 91, 68,
- 103, 113, 114, 139, 108, 140, 91, 129, 130, 131,
- 132, 69, 140, 140, 27, 41, 142, 114, 11, 104,
- 108, 17, 131, 108, 108, 68, 135, 108, 140, 105,
- 92, 138, 92, 118, 140, 118, 142, 122, 21, 99,
- 140, 108, 142, 108, 108, 1, 25, 26, 100, 108,
- 108, 92, 108, 98, 92, 7, 8, 59, 60, 86,
- 88, 101, 55, 143, 139, 98, 140, 7, 7, 143,
- 108, 140, 108, 108, 90, 108, 92, 90, 92
+ 13, 14, 44, 45, 53, 120, 1, 9, 89, 116,
+ 117, 118, 119, 115, 119, 17, 133, 50, 68, 57,
+ 110, 116, 116, 119, 44, 45, 138, 1, 56, 69,
+ 141, 145, 141, 1, 6, 79, 1, 6, 80, 108,
+ 109, 91, 109, 5, 89, 119, 136, 119, 119, 119,
+ 109, 119, 39, 124, 124, 124, 124, 124, 124, 124,
+ 124, 124, 124, 124, 124, 89, 14, 119, 141, 1,
+ 145, 72, 86, 124, 141, 141, 119, 109, 41, 1,
+ 119, 1, 92, 1, 92, 1, 20, 22, 23, 24,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 40,
+ 74, 93, 94, 96, 103, 107, 119, 139, 140, 143,
+ 55, 119, 129, 118, 1, 118, 1, 4, 111, 112,
+ 136, 68, 95, 4, 68, 68, 68, 109, 68, 92,
+ 92, 92, 113, 119, 92, 109, 92, 97, 91, 142,
+ 143, 109, 119, 141, 1, 145, 119, 113, 98, 4,
+ 119, 119, 93, 4, 96, 99, 92, 68, 104, 114,
+ 115, 140, 109, 109, 1, 4, 141, 92, 130, 131,
+ 132, 133, 69, 141, 141, 27, 41, 143, 115, 11,
+ 105, 109, 17, 132, 109, 109, 68, 136, 109, 141,
+ 106, 93, 139, 93, 119, 141, 119, 143, 123, 21,
+ 100, 141, 109, 143, 109, 109, 1, 25, 26, 101,
+ 109, 109, 93, 109, 99, 93, 7, 8, 59, 60,
+ 87, 89, 102, 55, 144, 140, 99, 141, 7, 7,
+ 144, 109, 141, 109, 109, 91, 109, 93, 91, 93
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1156,24 +1163,24 @@ static const yytype_uint8 yyr1[] =
0, 76, 77, 77, 77, 77, 77, 78, 78, 78,
78, 78, 79, 79, 79, 80, 80, 80, 81, 81,
81, 81, 81, 81, 81, 82, 83, 83, 83, 83,
- 84, 84, 85, 87, 86, 88, 89, 89, 90, 90,
- 90, 91, 91, 92, 92, 92, 92, 92, 92, 92,
- 92, 92, 92, 93, 93, 93, 93, 93, 94, 93,
- 93, 96, 95, 97, 95, 95, 95, 98, 98, 99,
- 99, 99, 100, 100, 101, 101, 101, 101, 101, 101,
- 102, 102, 103, 103, 104, 105, 104, 106, 106, 107,
- 107, 108, 108, 109, 109, 110, 110, 111, 111, 111,
- 111, 111, 112, 112, 113, 113, 114, 114, 114, 114,
- 114, 114, 115, 115, 116, 116, 116, 116, 116, 116,
- 117, 117, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 119, 119, 119, 120, 120, 121, 121, 122,
- 122, 122, 123, 123, 123, 123, 123, 123, 123, 123,
+ 84, 84, 86, 85, 88, 87, 89, 90, 90, 91,
+ 91, 91, 92, 92, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 94, 94, 94, 94, 94, 95,
+ 94, 94, 97, 96, 98, 96, 96, 96, 99, 99,
+ 100, 100, 100, 101, 101, 102, 102, 102, 102, 102,
+ 102, 103, 103, 104, 104, 105, 106, 105, 107, 107,
+ 108, 108, 109, 109, 110, 110, 111, 111, 112, 112,
+ 112, 112, 112, 113, 113, 114, 114, 115, 115, 115,
+ 115, 115, 115, 116, 116, 117, 117, 117, 117, 117,
+ 117, 118, 118, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 120, 120, 120, 121, 121, 122, 122,
123, 123, 123, 124, 124, 124, 124, 124, 124, 124,
- 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
- 125, 125, 125, 125, 126, 126, 127, 128, 128, 129,
- 129, 130, 130, 131, 132, 133, 133, 134, 135, 135,
- 136, 136, 137, 137, 137, 138, 139, 140, 141, 141,
- 142, 143, 144
+ 124, 124, 124, 124, 125, 125, 125, 125, 125, 125,
+ 125, 126, 126, 126, 126, 126, 126, 126, 126, 126,
+ 126, 126, 126, 126, 126, 127, 127, 128, 129, 129,
+ 130, 130, 131, 131, 132, 133, 134, 134, 135, 136,
+ 136, 137, 137, 138, 138, 138, 139, 140, 141, 142,
+ 142, 143, 144, 145
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1182,24 +1189,24 @@ static const yytype_uint8 yyr2[] =
0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
4, 4, 1, 2, 1, 1, 2, 1, 0, 1,
4, 1, 1, 1, 1, 5, 1, 1, 1, 2,
- 1, 1, 6, 0, 3, 1, 1, 1, 0, 2,
- 2, 1, 2, 2, 3, 1, 9, 6, 8, 8,
- 12, 11, 1, 2, 2, 2, 2, 3, 0, 4,
- 2, 0, 4, 0, 4, 4, 1, 0, 1, 0,
- 2, 2, 5, 4, 1, 2, 2, 1, 1, 1,
- 1, 1, 1, 3, 0, 0, 3, 6, 9, 1,
- 2, 0, 1, 0, 2, 0, 1, 1, 3, 1,
- 2, 3, 0, 1, 0, 1, 1, 3, 1, 2,
- 3, 3, 0, 1, 1, 3, 1, 2, 3, 3,
- 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
- 5, 1, 1, 1, 2, 1, 1, 1, 1, 1,
- 1, 2, 1, 3, 3, 3, 3, 3, 3, 3,
- 2, 2, 5, 4, 3, 3, 3, 3, 3, 3,
- 1, 2, 3, 4, 4, 1, 1, 1, 2, 2,
- 1, 1, 2, 2, 1, 2, 4, 0, 1, 0,
- 2, 1, 2, 1, 3, 1, 2, 2, 1, 2,
- 1, 3, 1, 1, 0, 2, 2, 1, 0, 1,
- 1, 1, 2
+ 1, 1, 0, 7, 0, 3, 1, 1, 1, 0,
+ 2, 2, 1, 2, 2, 3, 1, 9, 6, 8,
+ 8, 12, 11, 1, 2, 2, 2, 2, 3, 0,
+ 4, 2, 0, 4, 0, 4, 4, 1, 0, 1,
+ 0, 2, 2, 5, 4, 1, 2, 2, 1, 1,
+ 1, 1, 1, 1, 3, 0, 0, 3, 6, 9,
+ 1, 2, 0, 1, 0, 2, 0, 1, 1, 3,
+ 1, 2, 3, 0, 1, 0, 1, 1, 3, 1,
+ 2, 3, 3, 0, 1, 1, 3, 1, 2, 3,
+ 3, 1, 1, 3, 3, 3, 3, 3, 3, 3,
+ 3, 5, 1, 1, 1, 2, 1, 1, 1, 1,
+ 1, 1, 2, 1, 3, 3, 3, 3, 3, 3,
+ 3, 2, 2, 5, 4, 3, 3, 3, 3, 3,
+ 3, 1, 2, 3, 4, 4, 1, 1, 1, 2,
+ 2, 1, 1, 2, 2, 1, 2, 4, 0, 1,
+ 0, 2, 1, 2, 1, 3, 1, 2, 2, 1,
+ 2, 1, 3, 1, 1, 0, 2, 2, 1, 0,
+ 1, 1, 1, 2
};
@@ -1876,24 +1883,24 @@ yyreduce:
switch (yyn)
{
case 3:
-#line 208 "awkgram.y" /* yacc.c:1646 */
+#line 213 "awkgram.y" /* yacc.c:1646 */
{
rule = 0;
yyerrok;
}
-#line 1885 "awkgram.c" /* yacc.c:1646 */
+#line 1892 "awkgram.c" /* yacc.c:1646 */
break;
case 5:
-#line 214 "awkgram.y" /* yacc.c:1646 */
+#line 219 "awkgram.y" /* yacc.c:1646 */
{
next_sourcefile();
}
-#line 1893 "awkgram.c" /* yacc.c:1646 */
+#line 1900 "awkgram.c" /* yacc.c:1646 */
break;
case 6:
-#line 218 "awkgram.y" /* yacc.c:1646 */
+#line 223 "awkgram.y" /* yacc.c:1646 */
{
rule = 0;
/*
@@ -1902,20 +1909,20 @@ yyreduce:
*/
/* yyerrok; */
}
-#line 1906 "awkgram.c" /* yacc.c:1646 */
+#line 1913 "awkgram.c" /* yacc.c:1646 */
break;
case 7:
-#line 230 "awkgram.y" /* yacc.c:1646 */
+#line 235 "awkgram.y" /* yacc.c:1646 */
{
(void) append_rule((yyvsp[-1]), (yyvsp[0]));
first_rule = false;
}
-#line 1915 "awkgram.c" /* yacc.c:1646 */
+#line 1922 "awkgram.c" /* yacc.c:1646 */
break;
case 8:
-#line 235 "awkgram.y" /* yacc.c:1646 */
+#line 240 "awkgram.y" /* yacc.c:1646 */
{
if (rule != Rule) {
msg(_("%s blocks must have an action part"), ruletab[rule]);
@@ -1926,41 +1933,42 @@ yyreduce:
} else /* pattern rule with non-empty pattern */
(void) append_rule((yyvsp[-1]), NULL);
}
-#line 1930 "awkgram.c" /* yacc.c:1646 */
+#line 1937 "awkgram.c" /* yacc.c:1646 */
break;
case 9:
-#line 246 "awkgram.y" /* yacc.c:1646 */
+#line 251 "awkgram.y" /* yacc.c:1646 */
{
in_function = NULL;
(void) mk_function((yyvsp[-1]), (yyvsp[0]));
+ want_param_names = DONT_CHECK;
yyerrok;
}
-#line 1940 "awkgram.c" /* yacc.c:1646 */
+#line 1948 "awkgram.c" /* yacc.c:1646 */
break;
case 10:
-#line 252 "awkgram.y" /* yacc.c:1646 */
+#line 258 "awkgram.y" /* yacc.c:1646 */
{
want_source = false;
at_seen = false;
yyerrok;
}
-#line 1950 "awkgram.c" /* yacc.c:1646 */
+#line 1958 "awkgram.c" /* yacc.c:1646 */
break;
case 11:
-#line 258 "awkgram.y" /* yacc.c:1646 */
+#line 264 "awkgram.y" /* yacc.c:1646 */
{
want_source = false;
at_seen = false;
yyerrok;
}
-#line 1960 "awkgram.c" /* yacc.c:1646 */
+#line 1968 "awkgram.c" /* yacc.c:1646 */
break;
case 12:
-#line 267 "awkgram.y" /* yacc.c:1646 */
+#line 273 "awkgram.y" /* yacc.c:1646 */
{
if (include_source((yyvsp[0])) < 0)
YYABORT;
@@ -1968,23 +1976,23 @@ yyreduce:
bcfree((yyvsp[0]));
(yyval) = NULL;
}
-#line 1972 "awkgram.c" /* yacc.c:1646 */
+#line 1980 "awkgram.c" /* yacc.c:1646 */
break;
case 13:
-#line 275 "awkgram.y" /* yacc.c:1646 */
+#line 281 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 1978 "awkgram.c" /* yacc.c:1646 */
+#line 1986 "awkgram.c" /* yacc.c:1646 */
break;
case 14:
-#line 277 "awkgram.y" /* yacc.c:1646 */
+#line 283 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 1984 "awkgram.c" /* yacc.c:1646 */
+#line 1992 "awkgram.c" /* yacc.c:1646 */
break;
case 15:
-#line 282 "awkgram.y" /* yacc.c:1646 */
+#line 288 "awkgram.y" /* yacc.c:1646 */
{
if (load_library((yyvsp[0])) < 0)
YYABORT;
@@ -1992,23 +2000,23 @@ yyreduce:
bcfree((yyvsp[0]));
(yyval) = NULL;
}
-#line 1996 "awkgram.c" /* yacc.c:1646 */
+#line 2004 "awkgram.c" /* yacc.c:1646 */
break;
case 16:
-#line 290 "awkgram.y" /* yacc.c:1646 */
+#line 296 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 2002 "awkgram.c" /* yacc.c:1646 */
+#line 2010 "awkgram.c" /* yacc.c:1646 */
break;
case 17:
-#line 292 "awkgram.y" /* yacc.c:1646 */
+#line 298 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 2008 "awkgram.c" /* yacc.c:1646 */
+#line 2016 "awkgram.c" /* yacc.c:1646 */
break;
case 18:
-#line 297 "awkgram.y" /* yacc.c:1646 */
+#line 303 "awkgram.y" /* yacc.c:1646 */
{
rule = Rule;
if (comment != NULL) {
@@ -2017,11 +2025,11 @@ yyreduce:
} else
(yyval) = NULL;
}
-#line 2021 "awkgram.c" /* yacc.c:1646 */
+#line 2029 "awkgram.c" /* yacc.c:1646 */
break;
case 19:
-#line 306 "awkgram.y" /* yacc.c:1646 */
+#line 312 "awkgram.y" /* yacc.c:1646 */
{
rule = Rule;
if (comment != NULL) {
@@ -2030,11 +2038,11 @@ yyreduce:
} else
(yyval) = (yyvsp[0]);
}
-#line 2034 "awkgram.c" /* yacc.c:1646 */
+#line 2042 "awkgram.c" /* yacc.c:1646 */
break;
case 20:
-#line 316 "awkgram.y" /* yacc.c:1646 */
+#line 322 "awkgram.y" /* yacc.c:1646 */
{
INSTRUCTION *tp;
@@ -2064,11 +2072,11 @@ yyreduce:
(yyval) = list_append(list_merge((yyvsp[-3]), (yyvsp[0])), tp);
rule = Rule;
}
-#line 2068 "awkgram.c" /* yacc.c:1646 */
+#line 2076 "awkgram.c" /* yacc.c:1646 */
break;
case 21:
-#line 346 "awkgram.y" /* yacc.c:1646 */
+#line 352 "awkgram.y" /* yacc.c:1646 */
{
static int begin_seen = 0;
@@ -2082,11 +2090,11 @@ yyreduce:
check_comment();
(yyval) = (yyvsp[0]);
}
-#line 2086 "awkgram.c" /* yacc.c:1646 */
+#line 2094 "awkgram.c" /* yacc.c:1646 */
break;
case 22:
-#line 360 "awkgram.y" /* yacc.c:1646 */
+#line 366 "awkgram.y" /* yacc.c:1646 */
{
static int end_seen = 0;
@@ -2100,11 +2108,11 @@ yyreduce:
check_comment();
(yyval) = (yyvsp[0]);
}
-#line 2104 "awkgram.c" /* yacc.c:1646 */
+#line 2112 "awkgram.c" /* yacc.c:1646 */
break;
case 23:
-#line 374 "awkgram.y" /* yacc.c:1646 */
+#line 380 "awkgram.y" /* yacc.c:1646 */
{
func_first = false;
(yyvsp[0])->in_rule = rule = BEGINFILE;
@@ -2112,11 +2120,11 @@ yyreduce:
check_comment();
(yyval) = (yyvsp[0]);
}
-#line 2116 "awkgram.c" /* yacc.c:1646 */
+#line 2124 "awkgram.c" /* yacc.c:1646 */
break;
case 24:
-#line 382 "awkgram.y" /* yacc.c:1646 */
+#line 388 "awkgram.y" /* yacc.c:1646 */
{
func_first = false;
(yyvsp[0])->in_rule = rule = ENDFILE;
@@ -2124,11 +2132,11 @@ yyreduce:
check_comment();
(yyval) = (yyvsp[0]);
}
-#line 2128 "awkgram.c" /* yacc.c:1646 */
+#line 2136 "awkgram.c" /* yacc.c:1646 */
break;
case 25:
-#line 393 "awkgram.y" /* yacc.c:1646 */
+#line 399 "awkgram.y" /* yacc.c:1646 */
{
INSTRUCTION *ip;
if ((yyvsp[-3]) == NULL)
@@ -2137,42 +2145,48 @@ yyreduce:
ip = (yyvsp[-3]);
(yyval) = ip;
}
-#line 2141 "awkgram.c" /* yacc.c:1646 */
+#line 2149 "awkgram.c" /* yacc.c:1646 */
break;
case 26:
-#line 405 "awkgram.y" /* yacc.c:1646 */
+#line 411 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 2147 "awkgram.c" /* yacc.c:1646 */
+#line 2155 "awkgram.c" /* yacc.c:1646 */
break;
case 27:
-#line 407 "awkgram.y" /* yacc.c:1646 */
+#line 413 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 2153 "awkgram.c" /* yacc.c:1646 */
+#line 2161 "awkgram.c" /* yacc.c:1646 */
break;
case 28:
-#line 409 "awkgram.y" /* yacc.c:1646 */
+#line 415 "awkgram.y" /* yacc.c:1646 */
{
yyerror(_("`%s' is a built-in function, it cannot be redefined"),
tokstart);
YYABORT;
}
-#line 2163 "awkgram.c" /* yacc.c:1646 */
+#line 2171 "awkgram.c" /* yacc.c:1646 */
break;
case 29:
-#line 415 "awkgram.y" /* yacc.c:1646 */
+#line 421 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = (yyvsp[0]);
at_seen = false;
}
-#line 2172 "awkgram.c" /* yacc.c:1646 */
+#line 2180 "awkgram.c" /* yacc.c:1646 */
break;
case 32:
-#line 428 "awkgram.y" /* yacc.c:1646 */
+#line 433 "awkgram.y" /* yacc.c:1646 */
+ { want_param_names = FUNC_HEADER; }
+#line 2186 "awkgram.c" /* yacc.c:1646 */
+ break;
+
+ case 33:
+#line 434 "awkgram.y" /* yacc.c:1646 */
{
/*
* treat any comments between BOF and the first function
@@ -2190,26 +2204,27 @@ yyreduce:
comment = NULL;
}
func_first = false;
- (yyvsp[-5])->source_file = source;
- if (install_function((yyvsp[-4])->lextok, (yyvsp[-5]), (yyvsp[-2])) < 0)
+ (yyvsp[-6])->source_file = source;
+ if (install_function((yyvsp[-5])->lextok, (yyvsp[-6]), (yyvsp[-2])) < 0)
YYABORT;
- in_function = (yyvsp[-4])->lextok;
- (yyvsp[-4])->lextok = NULL;
- bcfree((yyvsp[-4]));
- /* $4 already free'd in install_function */
- (yyval) = (yyvsp[-5]);
+ in_function = (yyvsp[-5])->lextok;
+ (yyvsp[-5])->lextok = NULL;
+ bcfree((yyvsp[-5]));
+ /* $5 already free'd in install_function */
+ (yyval) = (yyvsp[-6]);
+ want_param_names = FUNC_BODY;
}
-#line 2203 "awkgram.c" /* yacc.c:1646 */
+#line 2218 "awkgram.c" /* yacc.c:1646 */
break;
- case 33:
-#line 462 "awkgram.y" /* yacc.c:1646 */
+ case 34:
+#line 469 "awkgram.y" /* yacc.c:1646 */
{ want_regexp = true; }
-#line 2209 "awkgram.c" /* yacc.c:1646 */
+#line 2224 "awkgram.c" /* yacc.c:1646 */
break;
- case 34:
-#line 464 "awkgram.y" /* yacc.c:1646 */
+ case 35:
+#line 471 "awkgram.y" /* yacc.c:1646 */
{
NODE *n, *exp;
char *re;
@@ -2238,11 +2253,11 @@ yyreduce:
(yyval)->opcode = Op_match_rec;
(yyval)->memory = n;
}
-#line 2242 "awkgram.c" /* yacc.c:1646 */
+#line 2257 "awkgram.c" /* yacc.c:1646 */
break;
- case 35:
-#line 496 "awkgram.y" /* yacc.c:1646 */
+ case 36:
+#line 503 "awkgram.y" /* yacc.c:1646 */
{
NODE *n, *exp;
char *re;
@@ -2267,28 +2282,28 @@ yyreduce:
#endif
(yyval)->memory = n;
}
-#line 2271 "awkgram.c" /* yacc.c:1646 */
+#line 2286 "awkgram.c" /* yacc.c:1646 */
break;
- case 36:
-#line 523 "awkgram.y" /* yacc.c:1646 */
+ case 37:
+#line 530 "awkgram.y" /* yacc.c:1646 */
{ bcfree((yyvsp[0])); }
-#line 2277 "awkgram.c" /* yacc.c:1646 */
+#line 2292 "awkgram.c" /* yacc.c:1646 */
break;
- case 38:
-#line 529 "awkgram.y" /* yacc.c:1646 */
+ case 39:
+#line 536 "awkgram.y" /* yacc.c:1646 */
{
if (comment != NULL) {
(yyval) = list_create(comment);
comment = NULL;
} else (yyval) = NULL;
}
-#line 2288 "awkgram.c" /* yacc.c:1646 */
+#line 2303 "awkgram.c" /* yacc.c:1646 */
break;
- case 39:
-#line 536 "awkgram.y" /* yacc.c:1646 */
+ case 40:
+#line 543 "awkgram.y" /* yacc.c:1646 */
{
if ((yyvsp[0]) == NULL) {
if (comment == NULL)
@@ -2316,40 +2331,40 @@ yyreduce:
}
yyerrok;
}
-#line 2320 "awkgram.c" /* yacc.c:1646 */
+#line 2335 "awkgram.c" /* yacc.c:1646 */
break;
- case 40:
-#line 564 "awkgram.y" /* yacc.c:1646 */
+ case 41:
+#line 571 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 2326 "awkgram.c" /* yacc.c:1646 */
+#line 2341 "awkgram.c" /* yacc.c:1646 */
break;
- case 43:
-#line 574 "awkgram.y" /* yacc.c:1646 */
+ case 44:
+#line 581 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 2332 "awkgram.c" /* yacc.c:1646 */
+#line 2347 "awkgram.c" /* yacc.c:1646 */
break;
- case 44:
-#line 576 "awkgram.y" /* yacc.c:1646 */
+ case 45:
+#line 583 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[-1]); }
-#line 2338 "awkgram.c" /* yacc.c:1646 */
+#line 2353 "awkgram.c" /* yacc.c:1646 */
break;
- case 45:
-#line 578 "awkgram.y" /* yacc.c:1646 */
+ case 46:
+#line 585 "awkgram.y" /* yacc.c:1646 */
{
if (do_pretty_print)
(yyval) = list_prepend((yyvsp[0]), instruction(Op_exec_count));
else
(yyval) = (yyvsp[0]);
}
-#line 2349 "awkgram.c" /* yacc.c:1646 */
+#line 2364 "awkgram.c" /* yacc.c:1646 */
break;
- case 46:
-#line 585 "awkgram.y" /* yacc.c:1646 */
+ case 47:
+#line 592 "awkgram.y" /* yacc.c:1646 */
{
INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt;
INSTRUCTION *ip, *nextc, *tbreak;
@@ -2439,11 +2454,11 @@ yyreduce:
break_allowed--;
fix_break_continue(ip, tbreak, NULL);
}
-#line 2443 "awkgram.c" /* yacc.c:1646 */
+#line 2458 "awkgram.c" /* yacc.c:1646 */
break;
- case 47:
-#line 675 "awkgram.y" /* yacc.c:1646 */
+ case 48:
+#line 682 "awkgram.y" /* yacc.c:1646 */
{
/*
* -----------------
@@ -2485,11 +2500,11 @@ yyreduce:
continue_allowed--;
fix_break_continue(ip, tbreak, tcont);
}
-#line 2489 "awkgram.c" /* yacc.c:1646 */
+#line 2504 "awkgram.c" /* yacc.c:1646 */
break;
- case 48:
-#line 717 "awkgram.y" /* yacc.c:1646 */
+ case 49:
+#line 724 "awkgram.y" /* yacc.c:1646 */
{
/*
* -----------------
@@ -2531,11 +2546,11 @@ yyreduce:
} /* else
$1 and $4 are NULLs */
}
-#line 2535 "awkgram.c" /* yacc.c:1646 */
+#line 2550 "awkgram.c" /* yacc.c:1646 */
break;
- case 49:
-#line 759 "awkgram.y" /* yacc.c:1646 */
+ case 50:
+#line 766 "awkgram.y" /* yacc.c:1646 */
{
INSTRUCTION *ip;
char *var_name = (yyvsp[-5])->lextok;
@@ -2648,44 +2663,44 @@ regular_loop:
break_allowed--;
continue_allowed--;
}
-#line 2652 "awkgram.c" /* yacc.c:1646 */
+#line 2667 "awkgram.c" /* yacc.c:1646 */
break;
- case 50:
-#line 872 "awkgram.y" /* yacc.c:1646 */
+ case 51:
+#line 879 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = mk_for_loop((yyvsp[-11]), (yyvsp[-9]), (yyvsp[-6]), (yyvsp[-3]), (yyvsp[0]));
break_allowed--;
continue_allowed--;
}
-#line 2663 "awkgram.c" /* yacc.c:1646 */
+#line 2678 "awkgram.c" /* yacc.c:1646 */
break;
- case 51:
-#line 879 "awkgram.y" /* yacc.c:1646 */
+ case 52:
+#line 886 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = mk_for_loop((yyvsp[-10]), (yyvsp[-8]), (INSTRUCTION *) NULL, (yyvsp[-3]), (yyvsp[0]));
break_allowed--;
continue_allowed--;
}
-#line 2674 "awkgram.c" /* yacc.c:1646 */
+#line 2689 "awkgram.c" /* yacc.c:1646 */
break;
- case 52:
-#line 886 "awkgram.y" /* yacc.c:1646 */
+ case 53:
+#line 893 "awkgram.y" /* yacc.c:1646 */
{
if (do_pretty_print)
(yyval) = list_prepend((yyvsp[0]), instruction(Op_exec_count));
else
(yyval) = (yyvsp[0]);
}
-#line 2685 "awkgram.c" /* yacc.c:1646 */
+#line 2700 "awkgram.c" /* yacc.c:1646 */
break;
- case 53:
-#line 896 "awkgram.y" /* yacc.c:1646 */
+ case 54:
+#line 903 "awkgram.y" /* yacc.c:1646 */
{
if (! break_allowed)
error_ln((yyvsp[-1])->source_line,
@@ -2694,11 +2709,11 @@ regular_loop:
(yyval) = list_create((yyvsp[-1]));
}
-#line 2698 "awkgram.c" /* yacc.c:1646 */
+#line 2713 "awkgram.c" /* yacc.c:1646 */
break;
- case 54:
-#line 905 "awkgram.y" /* yacc.c:1646 */
+ case 55:
+#line 912 "awkgram.y" /* yacc.c:1646 */
{
if (! continue_allowed)
error_ln((yyvsp[-1])->source_line,
@@ -2707,11 +2722,11 @@ regular_loop:
(yyval) = list_create((yyvsp[-1]));
}
-#line 2711 "awkgram.c" /* yacc.c:1646 */
+#line 2726 "awkgram.c" /* yacc.c:1646 */
break;
- case 55:
-#line 914 "awkgram.y" /* yacc.c:1646 */
+ case 56:
+#line 921 "awkgram.y" /* yacc.c:1646 */
{
/* if inside function (rule = 0), resolve context at run-time */
if (rule && rule != Rule)
@@ -2720,11 +2735,11 @@ regular_loop:
(yyvsp[-1])->target_jmp = ip_rec;
(yyval) = list_create((yyvsp[-1]));
}
-#line 2724 "awkgram.c" /* yacc.c:1646 */
+#line 2739 "awkgram.c" /* yacc.c:1646 */
break;
- case 56:
-#line 923 "awkgram.y" /* yacc.c:1646 */
+ case 57:
+#line 930 "awkgram.y" /* yacc.c:1646 */
{
/* if inside function (rule = 0), resolve context at run-time */
if (rule == BEGIN || rule == END || rule == ENDFILE)
@@ -2735,11 +2750,11 @@ regular_loop:
(yyvsp[-1])->target_endfile = ip_endfile;
(yyval) = list_create((yyvsp[-1]));
}
-#line 2739 "awkgram.c" /* yacc.c:1646 */
+#line 2754 "awkgram.c" /* yacc.c:1646 */
break;
- case 57:
-#line 934 "awkgram.y" /* yacc.c:1646 */
+ case 58:
+#line 941 "awkgram.y" /* yacc.c:1646 */
{
/* Initialize the two possible jump targets, the actual target
* is resolved at run-time.
@@ -2754,20 +2769,20 @@ regular_loop:
} else
(yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
}
-#line 2758 "awkgram.c" /* yacc.c:1646 */
+#line 2773 "awkgram.c" /* yacc.c:1646 */
break;
- case 58:
-#line 949 "awkgram.y" /* yacc.c:1646 */
+ case 59:
+#line 956 "awkgram.y" /* yacc.c:1646 */
{
if (! in_function)
yyerror(_("`return' used outside function context"));
}
-#line 2767 "awkgram.c" /* yacc.c:1646 */
+#line 2782 "awkgram.c" /* yacc.c:1646 */
break;
- case 59:
-#line 952 "awkgram.y" /* yacc.c:1646 */
+ case 60:
+#line 959 "awkgram.y" /* yacc.c:1646 */
{
if ((yyvsp[-1]) == NULL) {
(yyval) = list_create((yyvsp[-3]));
@@ -2788,17 +2803,17 @@ regular_loop:
(yyval) = list_append((yyvsp[-1]), (yyvsp[-3]));
}
}
-#line 2792 "awkgram.c" /* yacc.c:1646 */
+#line 2807 "awkgram.c" /* yacc.c:1646 */
break;
- case 61:
-#line 984 "awkgram.y" /* yacc.c:1646 */
+ case 62:
+#line 991 "awkgram.y" /* yacc.c:1646 */
{ in_print = true; in_parens = 0; }
-#line 2798 "awkgram.c" /* yacc.c:1646 */
+#line 2813 "awkgram.c" /* yacc.c:1646 */
break;
- case 62:
-#line 985 "awkgram.y" /* yacc.c:1646 */
+ case 63:
+#line 992 "awkgram.y" /* yacc.c:1646 */
{
/*
* Optimization: plain `print' has no expression list, so $3 is null.
@@ -2895,17 +2910,17 @@ regular_print:
}
}
}
-#line 2899 "awkgram.c" /* yacc.c:1646 */
+#line 2914 "awkgram.c" /* yacc.c:1646 */
break;
- case 63:
-#line 1082 "awkgram.y" /* yacc.c:1646 */
+ case 64:
+#line 1089 "awkgram.y" /* yacc.c:1646 */
{ sub_counter = 0; }
-#line 2905 "awkgram.c" /* yacc.c:1646 */
+#line 2920 "awkgram.c" /* yacc.c:1646 */
break;
- case 64:
-#line 1083 "awkgram.y" /* yacc.c:1646 */
+ case 65:
+#line 1090 "awkgram.y" /* yacc.c:1646 */
{
char *arr = (yyvsp[-2])->lextok;
@@ -2938,11 +2953,11 @@ regular_print:
(yyval) = list_append(list_append((yyvsp[0]), (yyvsp[-2])), (yyvsp[-3]));
}
}
-#line 2942 "awkgram.c" /* yacc.c:1646 */
+#line 2957 "awkgram.c" /* yacc.c:1646 */
break;
- case 65:
-#line 1120 "awkgram.y" /* yacc.c:1646 */
+ case 66:
+#line 1127 "awkgram.y" /* yacc.c:1646 */
{
static bool warned = false;
char *arr = (yyvsp[-1])->lextok;
@@ -2968,52 +2983,52 @@ regular_print:
fatal(_("`delete' is not allowed with FUNCTAB"));
}
}
-#line 2972 "awkgram.c" /* yacc.c:1646 */
+#line 2987 "awkgram.c" /* yacc.c:1646 */
break;
- case 66:
-#line 1146 "awkgram.y" /* yacc.c:1646 */
+ case 67:
+#line 1153 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = optimize_assignment((yyvsp[0])); }
-#line 2978 "awkgram.c" /* yacc.c:1646 */
+#line 2993 "awkgram.c" /* yacc.c:1646 */
break;
- case 67:
-#line 1151 "awkgram.y" /* yacc.c:1646 */
+ case 68:
+#line 1158 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 2984 "awkgram.c" /* yacc.c:1646 */
+#line 2999 "awkgram.c" /* yacc.c:1646 */
break;
- case 68:
-#line 1153 "awkgram.y" /* yacc.c:1646 */
+ case 69:
+#line 1160 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 2990 "awkgram.c" /* yacc.c:1646 */
+#line 3005 "awkgram.c" /* yacc.c:1646 */
break;
- case 69:
-#line 1158 "awkgram.y" /* yacc.c:1646 */
+ case 70:
+#line 1165 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 2996 "awkgram.c" /* yacc.c:1646 */
+#line 3011 "awkgram.c" /* yacc.c:1646 */
break;
- case 70:
-#line 1160 "awkgram.y" /* yacc.c:1646 */
+ case 71:
+#line 1167 "awkgram.y" /* yacc.c:1646 */
{
if ((yyvsp[-1]) == NULL)
(yyval) = list_create((yyvsp[0]));
else
(yyval) = list_prepend((yyvsp[-1]), (yyvsp[0]));
}
-#line 3007 "awkgram.c" /* yacc.c:1646 */
+#line 3022 "awkgram.c" /* yacc.c:1646 */
break;
- case 71:
-#line 1167 "awkgram.y" /* yacc.c:1646 */
+ case 72:
+#line 1174 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3013 "awkgram.c" /* yacc.c:1646 */
+#line 3028 "awkgram.c" /* yacc.c:1646 */
break;
- case 72:
-#line 1172 "awkgram.y" /* yacc.c:1646 */
+ case 73:
+#line 1179 "awkgram.y" /* yacc.c:1646 */
{
INSTRUCTION *casestmt = (yyvsp[0]);
if ((yyvsp[0]) == NULL)
@@ -3025,11 +3040,11 @@ regular_print:
bcfree((yyvsp[-2]));
(yyval) = (yyvsp[-4]);
}
-#line 3029 "awkgram.c" /* yacc.c:1646 */
+#line 3044 "awkgram.c" /* yacc.c:1646 */
break;
- case 73:
-#line 1184 "awkgram.y" /* yacc.c:1646 */
+ case 74:
+#line 1191 "awkgram.y" /* yacc.c:1646 */
{
INSTRUCTION *casestmt = (yyvsp[0]);
if ((yyvsp[0]) == NULL)
@@ -3040,17 +3055,17 @@ regular_print:
(yyvsp[-3])->case_stmt = casestmt;
(yyval) = (yyvsp[-3]);
}
-#line 3044 "awkgram.c" /* yacc.c:1646 */
+#line 3059 "awkgram.c" /* yacc.c:1646 */
break;
- case 74:
-#line 1198 "awkgram.y" /* yacc.c:1646 */
+ case 75:
+#line 1205 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3050 "awkgram.c" /* yacc.c:1646 */
+#line 3065 "awkgram.c" /* yacc.c:1646 */
break;
- case 75:
-#line 1200 "awkgram.y" /* yacc.c:1646 */
+ case 76:
+#line 1207 "awkgram.y" /* yacc.c:1646 */
{
NODE *n = (yyvsp[0])->memory;
(void) force_number(n);
@@ -3058,26 +3073,26 @@ regular_print:
bcfree((yyvsp[-1]));
(yyval) = (yyvsp[0]);
}
-#line 3062 "awkgram.c" /* yacc.c:1646 */
+#line 3077 "awkgram.c" /* yacc.c:1646 */
break;
- case 76:
-#line 1208 "awkgram.y" /* yacc.c:1646 */
+ case 77:
+#line 1215 "awkgram.y" /* yacc.c:1646 */
{
bcfree((yyvsp[-1]));
(yyval) = (yyvsp[0]);
}
-#line 3071 "awkgram.c" /* yacc.c:1646 */
+#line 3086 "awkgram.c" /* yacc.c:1646 */
break;
- case 77:
-#line 1213 "awkgram.y" /* yacc.c:1646 */
+ case 78:
+#line 1220 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3077 "awkgram.c" /* yacc.c:1646 */
+#line 3092 "awkgram.c" /* yacc.c:1646 */
break;
- case 78:
-#line 1215 "awkgram.y" /* yacc.c:1646 */
+ case 79:
+#line 1222 "awkgram.y" /* yacc.c:1646 */
{
if ((yyvsp[0])->memory->type == Node_regex)
(yyvsp[0])->opcode = Op_push_re;
@@ -3085,57 +3100,57 @@ regular_print:
(yyvsp[0])->opcode = Op_push;
(yyval) = (yyvsp[0]);
}
-#line 3089 "awkgram.c" /* yacc.c:1646 */
+#line 3104 "awkgram.c" /* yacc.c:1646 */
break;
- case 79:
-#line 1223 "awkgram.y" /* yacc.c:1646 */
+ case 80:
+#line 1230 "awkgram.y" /* yacc.c:1646 */
{
assert((yyvsp[0])->memory->type == Node_hardregex);
(yyvsp[0])->opcode = Op_push_re;
(yyval) = (yyvsp[0]);
}
-#line 3099 "awkgram.c" /* yacc.c:1646 */
+#line 3114 "awkgram.c" /* yacc.c:1646 */
break;
- case 80:
-#line 1232 "awkgram.y" /* yacc.c:1646 */
+ case 81:
+#line 1239 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3105 "awkgram.c" /* yacc.c:1646 */
+#line 3120 "awkgram.c" /* yacc.c:1646 */
break;
- case 81:
-#line 1234 "awkgram.y" /* yacc.c:1646 */
+ case 82:
+#line 1241 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3111 "awkgram.c" /* yacc.c:1646 */
+#line 3126 "awkgram.c" /* yacc.c:1646 */
break;
- case 83:
-#line 1244 "awkgram.y" /* yacc.c:1646 */
+ case 84:
+#line 1251 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = (yyvsp[-1]);
}
-#line 3119 "awkgram.c" /* yacc.c:1646 */
+#line 3134 "awkgram.c" /* yacc.c:1646 */
break;
- case 84:
-#line 1251 "awkgram.y" /* yacc.c:1646 */
+ case 85:
+#line 1258 "awkgram.y" /* yacc.c:1646 */
{
in_print = false;
in_parens = 0;
(yyval) = NULL;
}
-#line 3129 "awkgram.c" /* yacc.c:1646 */
+#line 3144 "awkgram.c" /* yacc.c:1646 */
break;
- case 85:
-#line 1256 "awkgram.y" /* yacc.c:1646 */
+ case 86:
+#line 1263 "awkgram.y" /* yacc.c:1646 */
{ in_print = false; in_parens = 0; }
-#line 3135 "awkgram.c" /* yacc.c:1646 */
+#line 3150 "awkgram.c" /* yacc.c:1646 */
break;
- case 86:
-#line 1257 "awkgram.y" /* yacc.c:1646 */
+ case 87:
+#line 1264 "awkgram.y" /* yacc.c:1646 */
{
if ((yyvsp[-2])->redir_type == redirect_twoway
&& (yyvsp[0])->lasti->opcode == Op_K_getline_redir
@@ -3143,136 +3158,136 @@ regular_print:
yyerror(_("multistage two-way pipelines don't work"));
(yyval) = list_prepend((yyvsp[0]), (yyvsp[-2]));
}
-#line 3147 "awkgram.c" /* yacc.c:1646 */
+#line 3162 "awkgram.c" /* yacc.c:1646 */
break;
- case 87:
-#line 1268 "awkgram.y" /* yacc.c:1646 */
+ case 88:
+#line 1275 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = mk_condition((yyvsp[-3]), (yyvsp[-5]), (yyvsp[0]), NULL, NULL);
}
-#line 3155 "awkgram.c" /* yacc.c:1646 */
+#line 3170 "awkgram.c" /* yacc.c:1646 */
break;
- case 88:
-#line 1273 "awkgram.y" /* yacc.c:1646 */
+ case 89:
+#line 1280 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = mk_condition((yyvsp[-6]), (yyvsp[-8]), (yyvsp[-3]), (yyvsp[-2]), (yyvsp[0]));
}
-#line 3163 "awkgram.c" /* yacc.c:1646 */
+#line 3178 "awkgram.c" /* yacc.c:1646 */
break;
- case 93:
-#line 1290 "awkgram.y" /* yacc.c:1646 */
+ case 94:
+#line 1297 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3169 "awkgram.c" /* yacc.c:1646 */
+#line 3184 "awkgram.c" /* yacc.c:1646 */
break;
- case 94:
-#line 1292 "awkgram.y" /* yacc.c:1646 */
+ case 95:
+#line 1299 "awkgram.y" /* yacc.c:1646 */
{
bcfree((yyvsp[-1]));
(yyval) = (yyvsp[0]);
}
-#line 3178 "awkgram.c" /* yacc.c:1646 */
+#line 3193 "awkgram.c" /* yacc.c:1646 */
break;
- case 95:
-#line 1300 "awkgram.y" /* yacc.c:1646 */
+ case 96:
+#line 1307 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3184 "awkgram.c" /* yacc.c:1646 */
+#line 3199 "awkgram.c" /* yacc.c:1646 */
break;
- case 96:
-#line 1302 "awkgram.y" /* yacc.c:1646 */
+ case 97:
+#line 1309 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3190 "awkgram.c" /* yacc.c:1646 */
+#line 3205 "awkgram.c" /* yacc.c:1646 */
break;
- case 97:
-#line 1307 "awkgram.y" /* yacc.c:1646 */
+ case 98:
+#line 1314 "awkgram.y" /* yacc.c:1646 */
{
(yyvsp[0])->param_count = 0;
(yyval) = list_create((yyvsp[0]));
}
-#line 3199 "awkgram.c" /* yacc.c:1646 */
+#line 3214 "awkgram.c" /* yacc.c:1646 */
break;
- case 98:
-#line 1312 "awkgram.y" /* yacc.c:1646 */
+ case 99:
+#line 1319 "awkgram.y" /* yacc.c:1646 */
{
(yyvsp[0])->param_count = (yyvsp[-2])->lasti->param_count + 1;
(yyval) = list_append((yyvsp[-2]), (yyvsp[0]));
yyerrok;
}
-#line 3209 "awkgram.c" /* yacc.c:1646 */
+#line 3224 "awkgram.c" /* yacc.c:1646 */
break;
- case 99:
-#line 1318 "awkgram.y" /* yacc.c:1646 */
+ case 100:
+#line 1325 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3215 "awkgram.c" /* yacc.c:1646 */
+#line 3230 "awkgram.c" /* yacc.c:1646 */
break;
- case 100:
-#line 1320 "awkgram.y" /* yacc.c:1646 */
+ case 101:
+#line 1327 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[-1]); }
-#line 3221 "awkgram.c" /* yacc.c:1646 */
+#line 3236 "awkgram.c" /* yacc.c:1646 */
break;
- case 101:
-#line 1322 "awkgram.y" /* yacc.c:1646 */
+ case 102:
+#line 1329 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[-2]); }
-#line 3227 "awkgram.c" /* yacc.c:1646 */
+#line 3242 "awkgram.c" /* yacc.c:1646 */
break;
- case 102:
-#line 1328 "awkgram.y" /* yacc.c:1646 */
+ case 103:
+#line 1335 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3233 "awkgram.c" /* yacc.c:1646 */
+#line 3248 "awkgram.c" /* yacc.c:1646 */
break;
- case 103:
-#line 1330 "awkgram.y" /* yacc.c:1646 */
+ case 104:
+#line 1337 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3239 "awkgram.c" /* yacc.c:1646 */
+#line 3254 "awkgram.c" /* yacc.c:1646 */
break;
- case 104:
-#line 1335 "awkgram.y" /* yacc.c:1646 */
+ case 105:
+#line 1342 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3245 "awkgram.c" /* yacc.c:1646 */
+#line 3260 "awkgram.c" /* yacc.c:1646 */
break;
- case 105:
-#line 1337 "awkgram.y" /* yacc.c:1646 */
+ case 106:
+#line 1344 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3251 "awkgram.c" /* yacc.c:1646 */
+#line 3266 "awkgram.c" /* yacc.c:1646 */
break;
- case 106:
-#line 1342 "awkgram.y" /* yacc.c:1646 */
+ case 107:
+#line 1349 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
-#line 3257 "awkgram.c" /* yacc.c:1646 */
+#line 3272 "awkgram.c" /* yacc.c:1646 */
break;
- case 107:
-#line 1344 "awkgram.y" /* yacc.c:1646 */
+ case 108:
+#line 1351 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
yyerrok;
}
-#line 3266 "awkgram.c" /* yacc.c:1646 */
+#line 3281 "awkgram.c" /* yacc.c:1646 */
break;
- case 108:
-#line 1349 "awkgram.y" /* yacc.c:1646 */
+ case 109:
+#line 1356 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3272 "awkgram.c" /* yacc.c:1646 */
+#line 3287 "awkgram.c" /* yacc.c:1646 */
break;
- case 109:
-#line 1351 "awkgram.y" /* yacc.c:1646 */
+ case 110:
+#line 1358 "awkgram.y" /* yacc.c:1646 */
{
/*
* Returning the expression list instead of NULL lets
@@ -3280,62 +3295,62 @@ regular_print:
*/
(yyval) = (yyvsp[-1]);
}
-#line 3284 "awkgram.c" /* yacc.c:1646 */
+#line 3299 "awkgram.c" /* yacc.c:1646 */
break;
- case 110:
-#line 1359 "awkgram.y" /* yacc.c:1646 */
+ case 111:
+#line 1366 "awkgram.y" /* yacc.c:1646 */
{
/* Ditto */
(yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
}
-#line 3293 "awkgram.c" /* yacc.c:1646 */
+#line 3308 "awkgram.c" /* yacc.c:1646 */
break;
- case 111:
-#line 1364 "awkgram.y" /* yacc.c:1646 */
+ case 112:
+#line 1371 "awkgram.y" /* yacc.c:1646 */
{
/* Ditto */
(yyval) = (yyvsp[-2]);
}
-#line 3302 "awkgram.c" /* yacc.c:1646 */
+#line 3317 "awkgram.c" /* yacc.c:1646 */
break;
- case 112:
-#line 1372 "awkgram.y" /* yacc.c:1646 */
+ case 113:
+#line 1379 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3308 "awkgram.c" /* yacc.c:1646 */
+#line 3323 "awkgram.c" /* yacc.c:1646 */
break;
- case 113:
-#line 1374 "awkgram.y" /* yacc.c:1646 */
+ case 114:
+#line 1381 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3314 "awkgram.c" /* yacc.c:1646 */
+#line 3329 "awkgram.c" /* yacc.c:1646 */
break;
- case 114:
-#line 1379 "awkgram.y" /* yacc.c:1646 */
+ case 115:
+#line 1386 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
-#line 3320 "awkgram.c" /* yacc.c:1646 */
+#line 3335 "awkgram.c" /* yacc.c:1646 */
break;
- case 115:
-#line 1381 "awkgram.y" /* yacc.c:1646 */
+ case 116:
+#line 1388 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
yyerrok;
}
-#line 3329 "awkgram.c" /* yacc.c:1646 */
+#line 3344 "awkgram.c" /* yacc.c:1646 */
break;
- case 116:
-#line 1386 "awkgram.y" /* yacc.c:1646 */
+ case 117:
+#line 1393 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3335 "awkgram.c" /* yacc.c:1646 */
+#line 3350 "awkgram.c" /* yacc.c:1646 */
break;
- case 117:
-#line 1388 "awkgram.y" /* yacc.c:1646 */
+ case 118:
+#line 1395 "awkgram.y" /* yacc.c:1646 */
{
/*
* Returning the expression list instead of NULL lets
@@ -3343,72 +3358,72 @@ regular_print:
*/
(yyval) = (yyvsp[-1]);
}
-#line 3347 "awkgram.c" /* yacc.c:1646 */
+#line 3362 "awkgram.c" /* yacc.c:1646 */
break;
- case 118:
-#line 1396 "awkgram.y" /* yacc.c:1646 */
+ case 119:
+#line 1403 "awkgram.y" /* yacc.c:1646 */
{
/* Ditto */
(yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
}
-#line 3356 "awkgram.c" /* yacc.c:1646 */
+#line 3371 "awkgram.c" /* yacc.c:1646 */
break;
- case 119:
-#line 1401 "awkgram.y" /* yacc.c:1646 */
+ case 120:
+#line 1408 "awkgram.y" /* yacc.c:1646 */
{
/* Ditto */
(yyval) = (yyvsp[-2]);
}
-#line 3365 "awkgram.c" /* yacc.c:1646 */
+#line 3380 "awkgram.c" /* yacc.c:1646 */
break;
- case 120:
-#line 1408 "awkgram.y" /* yacc.c:1646 */
+ case 121:
+#line 1415 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3371 "awkgram.c" /* yacc.c:1646 */
+#line 3386 "awkgram.c" /* yacc.c:1646 */
break;
- case 121:
-#line 1409 "awkgram.y" /* yacc.c:1646 */
+ case 122:
+#line 1416 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = list_create((yyvsp[0])); }
-#line 3377 "awkgram.c" /* yacc.c:1646 */
+#line 3392 "awkgram.c" /* yacc.c:1646 */
break;
- case 122:
-#line 1415 "awkgram.y" /* yacc.c:1646 */
+ case 123:
+#line 1422 "awkgram.y" /* yacc.c:1646 */
{
if (do_lint && (yyvsp[0])->lasti->opcode == Op_match_rec)
lintwarn_ln((yyvsp[-1])->source_line,
_("regular expression on right of assignment"));
(yyval) = mk_assignment((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1]));
}
-#line 3388 "awkgram.c" /* yacc.c:1646 */
+#line 3403 "awkgram.c" /* yacc.c:1646 */
break;
- case 123:
-#line 1422 "awkgram.y" /* yacc.c:1646 */
+ case 124:
+#line 1429 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = mk_assignment((yyvsp[-2]), list_create((yyvsp[0])), (yyvsp[-1]));
}
-#line 3396 "awkgram.c" /* yacc.c:1646 */
+#line 3411 "awkgram.c" /* yacc.c:1646 */
break;
- case 124:
-#line 1426 "awkgram.y" /* yacc.c:1646 */
+ case 125:
+#line 1433 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3402 "awkgram.c" /* yacc.c:1646 */
+#line 3417 "awkgram.c" /* yacc.c:1646 */
break;
- case 125:
-#line 1428 "awkgram.y" /* yacc.c:1646 */
+ case 126:
+#line 1435 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3408 "awkgram.c" /* yacc.c:1646 */
+#line 3423 "awkgram.c" /* yacc.c:1646 */
break;
- case 126:
-#line 1430 "awkgram.y" /* yacc.c:1646 */
+ case 127:
+#line 1437 "awkgram.y" /* yacc.c:1646 */
{
if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
warning_ln((yyvsp[-1])->source_line,
@@ -3421,11 +3436,11 @@ regular_print:
bcfree((yyvsp[0]));
(yyval) = list_append((yyvsp[-2]), (yyvsp[-1]));
}
-#line 3425 "awkgram.c" /* yacc.c:1646 */
+#line 3440 "awkgram.c" /* yacc.c:1646 */
break;
- case 127:
-#line 1443 "awkgram.y" /* yacc.c:1646 */
+ case 128:
+#line 1450 "awkgram.y" /* yacc.c:1646 */
{
if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
warning_ln((yyvsp[-1])->source_line,
@@ -3442,11 +3457,11 @@ regular_print:
(yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), (yyvsp[-1]));
}
}
-#line 3446 "awkgram.c" /* yacc.c:1646 */
+#line 3461 "awkgram.c" /* yacc.c:1646 */
break;
- case 128:
-#line 1460 "awkgram.y" /* yacc.c:1646 */
+ case 129:
+#line 1467 "awkgram.y" /* yacc.c:1646 */
{
if (do_lint_old)
warning_ln((yyvsp[-1])->source_line,
@@ -3456,91 +3471,91 @@ regular_print:
(yyvsp[-1])->expr_count = 1;
(yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), (yyvsp[-1]));
}
-#line 3460 "awkgram.c" /* yacc.c:1646 */
+#line 3475 "awkgram.c" /* yacc.c:1646 */
break;
- case 129:
-#line 1470 "awkgram.y" /* yacc.c:1646 */
+ case 130:
+#line 1477 "awkgram.y" /* yacc.c:1646 */
{
if (do_lint && (yyvsp[0])->lasti->opcode == Op_match_rec)
lintwarn_ln((yyvsp[-1])->source_line,
_("regular expression on right of comparison"));
(yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), (yyvsp[-1]));
}
-#line 3471 "awkgram.c" /* yacc.c:1646 */
- break;
-
- case 130:
-#line 1477 "awkgram.y" /* yacc.c:1646 */
- { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); }
-#line 3477 "awkgram.c" /* yacc.c:1646 */
+#line 3486 "awkgram.c" /* yacc.c:1646 */
break;
case 131:
-#line 1479 "awkgram.y" /* yacc.c:1646 */
- { (yyval) = (yyvsp[0]); }
-#line 3483 "awkgram.c" /* yacc.c:1646 */
+#line 1484 "awkgram.y" /* yacc.c:1646 */
+ { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); }
+#line 3492 "awkgram.c" /* yacc.c:1646 */
break;
case 132:
-#line 1484 "awkgram.y" /* yacc.c:1646 */
+#line 1486 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3489 "awkgram.c" /* yacc.c:1646 */
+#line 3498 "awkgram.c" /* yacc.c:1646 */
break;
case 133:
-#line 1486 "awkgram.y" /* yacc.c:1646 */
+#line 1491 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3495 "awkgram.c" /* yacc.c:1646 */
+#line 3504 "awkgram.c" /* yacc.c:1646 */
break;
case 134:
-#line 1488 "awkgram.y" /* yacc.c:1646 */
+#line 1493 "awkgram.y" /* yacc.c:1646 */
+ { (yyval) = (yyvsp[0]); }
+#line 3510 "awkgram.c" /* yacc.c:1646 */
+ break;
+
+ case 135:
+#line 1495 "awkgram.y" /* yacc.c:1646 */
{
(yyvsp[0])->opcode = Op_assign_quotient;
(yyval) = (yyvsp[0]);
}
-#line 3504 "awkgram.c" /* yacc.c:1646 */
- break;
-
- case 135:
-#line 1496 "awkgram.y" /* yacc.c:1646 */
- { (yyval) = (yyvsp[0]); }
-#line 3510 "awkgram.c" /* yacc.c:1646 */
+#line 3519 "awkgram.c" /* yacc.c:1646 */
break;
case 136:
-#line 1498 "awkgram.y" /* yacc.c:1646 */
+#line 1503 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3516 "awkgram.c" /* yacc.c:1646 */
+#line 3525 "awkgram.c" /* yacc.c:1646 */
break;
case 137:
-#line 1503 "awkgram.y" /* yacc.c:1646 */
+#line 1505 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3522 "awkgram.c" /* yacc.c:1646 */
+#line 3531 "awkgram.c" /* yacc.c:1646 */
break;
case 138:
-#line 1505 "awkgram.y" /* yacc.c:1646 */
+#line 1510 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3528 "awkgram.c" /* yacc.c:1646 */
+#line 3537 "awkgram.c" /* yacc.c:1646 */
break;
case 139:
-#line 1510 "awkgram.y" /* yacc.c:1646 */
+#line 1512 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3534 "awkgram.c" /* yacc.c:1646 */
+#line 3543 "awkgram.c" /* yacc.c:1646 */
break;
case 140:
-#line 1512 "awkgram.y" /* yacc.c:1646 */
+#line 1517 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3540 "awkgram.c" /* yacc.c:1646 */
+#line 3549 "awkgram.c" /* yacc.c:1646 */
break;
case 141:
-#line 1514 "awkgram.y" /* yacc.c:1646 */
+#line 1519 "awkgram.y" /* yacc.c:1646 */
+ { (yyval) = (yyvsp[0]); }
+#line 3555 "awkgram.c" /* yacc.c:1646 */
+ break;
+
+ case 142:
+#line 1521 "awkgram.y" /* yacc.c:1646 */
{
int count = 2;
bool is_simple_var = false;
@@ -3569,7 +3584,7 @@ regular_print:
n1 = force_string(n1);
n2 = force_string(n2);
nlen = n1->stlen + n2->stlen;
- erealloc(n1->stptr, char *, nlen + 2, "constant fold");
+ erealloc(n1->stptr, char *, nlen + 1, "constant fold");
memcpy(n1->stptr + n1->stlen, n2->stptr, n2->stlen);
n1->stlen = nlen;
n1->stptr[nlen] = '\0';
@@ -3587,47 +3602,47 @@ regular_print:
max_args = count;
}
}
-#line 3591 "awkgram.c" /* yacc.c:1646 */
- break;
-
- case 143:
-#line 1566 "awkgram.y" /* yacc.c:1646 */
- { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3597 "awkgram.c" /* yacc.c:1646 */
+#line 3606 "awkgram.c" /* yacc.c:1646 */
break;
case 144:
-#line 1568 "awkgram.y" /* yacc.c:1646 */
+#line 1573 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3603 "awkgram.c" /* yacc.c:1646 */
+#line 3612 "awkgram.c" /* yacc.c:1646 */
break;
case 145:
-#line 1570 "awkgram.y" /* yacc.c:1646 */
+#line 1575 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3609 "awkgram.c" /* yacc.c:1646 */
+#line 3618 "awkgram.c" /* yacc.c:1646 */
break;
case 146:
-#line 1572 "awkgram.y" /* yacc.c:1646 */
+#line 1577 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3615 "awkgram.c" /* yacc.c:1646 */
+#line 3624 "awkgram.c" /* yacc.c:1646 */
break;
case 147:
-#line 1574 "awkgram.y" /* yacc.c:1646 */
+#line 1579 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3621 "awkgram.c" /* yacc.c:1646 */
+#line 3630 "awkgram.c" /* yacc.c:1646 */
break;
case 148:
-#line 1576 "awkgram.y" /* yacc.c:1646 */
+#line 1581 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3627 "awkgram.c" /* yacc.c:1646 */
+#line 3636 "awkgram.c" /* yacc.c:1646 */
break;
case 149:
-#line 1578 "awkgram.y" /* yacc.c:1646 */
+#line 1583 "awkgram.y" /* yacc.c:1646 */
+ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
+#line 3642 "awkgram.c" /* yacc.c:1646 */
+ break;
+
+ case 150:
+#line 1585 "awkgram.y" /* yacc.c:1646 */
{
/*
* In BEGINFILE/ENDFILE, allow `getline [var] < file'
@@ -3641,29 +3656,29 @@ regular_print:
_("non-redirected `getline' undefined inside END action"));
(yyval) = mk_getline((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]), redirect_input);
}
-#line 3645 "awkgram.c" /* yacc.c:1646 */
+#line 3660 "awkgram.c" /* yacc.c:1646 */
break;
- case 150:
-#line 1592 "awkgram.y" /* yacc.c:1646 */
+ case 151:
+#line 1599 "awkgram.y" /* yacc.c:1646 */
{
(yyvsp[0])->opcode = Op_postincrement;
(yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
}
-#line 3654 "awkgram.c" /* yacc.c:1646 */
+#line 3669 "awkgram.c" /* yacc.c:1646 */
break;
- case 151:
-#line 1597 "awkgram.y" /* yacc.c:1646 */
+ case 152:
+#line 1604 "awkgram.y" /* yacc.c:1646 */
{
(yyvsp[0])->opcode = Op_postdecrement;
(yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
}
-#line 3663 "awkgram.c" /* yacc.c:1646 */
+#line 3678 "awkgram.c" /* yacc.c:1646 */
break;
- case 152:
-#line 1602 "awkgram.y" /* yacc.c:1646 */
+ case 153:
+#line 1609 "awkgram.y" /* yacc.c:1646 */
{
if (do_lint_old) {
warning_ln((yyvsp[-1])->source_line,
@@ -3683,64 +3698,64 @@ regular_print:
(yyval) = list_append(list_merge(t, (yyvsp[0])), (yyvsp[-1]));
}
}
-#line 3687 "awkgram.c" /* yacc.c:1646 */
+#line 3702 "awkgram.c" /* yacc.c:1646 */
break;
- case 153:
-#line 1627 "awkgram.y" /* yacc.c:1646 */
+ case 154:
+#line 1634 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = mk_getline((yyvsp[-1]), (yyvsp[0]), (yyvsp[-3]), (yyvsp[-2])->redir_type);
bcfree((yyvsp[-2]));
}
-#line 3696 "awkgram.c" /* yacc.c:1646 */
- break;
-
- case 154:
-#line 1633 "awkgram.y" /* yacc.c:1646 */
- { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3702 "awkgram.c" /* yacc.c:1646 */
+#line 3711 "awkgram.c" /* yacc.c:1646 */
break;
case 155:
-#line 1635 "awkgram.y" /* yacc.c:1646 */
+#line 1640 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3708 "awkgram.c" /* yacc.c:1646 */
+#line 3717 "awkgram.c" /* yacc.c:1646 */
break;
case 156:
-#line 1637 "awkgram.y" /* yacc.c:1646 */
+#line 1642 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3714 "awkgram.c" /* yacc.c:1646 */
+#line 3723 "awkgram.c" /* yacc.c:1646 */
break;
case 157:
-#line 1639 "awkgram.y" /* yacc.c:1646 */
+#line 1644 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3720 "awkgram.c" /* yacc.c:1646 */
+#line 3729 "awkgram.c" /* yacc.c:1646 */
break;
case 158:
-#line 1641 "awkgram.y" /* yacc.c:1646 */
+#line 1646 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3726 "awkgram.c" /* yacc.c:1646 */
+#line 3735 "awkgram.c" /* yacc.c:1646 */
break;
case 159:
-#line 1643 "awkgram.y" /* yacc.c:1646 */
+#line 1648 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3732 "awkgram.c" /* yacc.c:1646 */
+#line 3741 "awkgram.c" /* yacc.c:1646 */
break;
case 160:
-#line 1648 "awkgram.y" /* yacc.c:1646 */
+#line 1650 "awkgram.y" /* yacc.c:1646 */
+ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
+#line 3747 "awkgram.c" /* yacc.c:1646 */
+ break;
+
+ case 161:
+#line 1655 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = list_create((yyvsp[0]));
}
-#line 3740 "awkgram.c" /* yacc.c:1646 */
+#line 3755 "awkgram.c" /* yacc.c:1646 */
break;
- case 161:
-#line 1652 "awkgram.y" /* yacc.c:1646 */
+ case 162:
+#line 1659 "awkgram.y" /* yacc.c:1646 */
{
if ((yyvsp[0])->opcode == Op_match_rec) {
(yyvsp[0])->opcode = Op_nomatch;
@@ -3772,37 +3787,37 @@ regular_print:
}
}
}
-#line 3776 "awkgram.c" /* yacc.c:1646 */
+#line 3791 "awkgram.c" /* yacc.c:1646 */
break;
- case 162:
-#line 1684 "awkgram.y" /* yacc.c:1646 */
+ case 163:
+#line 1691 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[-1]); }
-#line 3782 "awkgram.c" /* yacc.c:1646 */
+#line 3797 "awkgram.c" /* yacc.c:1646 */
break;
- case 163:
-#line 1686 "awkgram.y" /* yacc.c:1646 */
+ case 164:
+#line 1693 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
if ((yyval) == NULL)
YYABORT;
}
-#line 3792 "awkgram.c" /* yacc.c:1646 */
+#line 3807 "awkgram.c" /* yacc.c:1646 */
break;
- case 164:
-#line 1692 "awkgram.y" /* yacc.c:1646 */
+ case 165:
+#line 1699 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
if ((yyval) == NULL)
YYABORT;
}
-#line 3802 "awkgram.c" /* yacc.c:1646 */
+#line 3817 "awkgram.c" /* yacc.c:1646 */
break;
- case 165:
-#line 1698 "awkgram.y" /* yacc.c:1646 */
+ case 166:
+#line 1705 "awkgram.y" /* yacc.c:1646 */
{
static bool warned = false;
@@ -3815,45 +3830,45 @@ regular_print:
if ((yyval) == NULL)
YYABORT;
}
-#line 3819 "awkgram.c" /* yacc.c:1646 */
+#line 3834 "awkgram.c" /* yacc.c:1646 */
break;
- case 168:
-#line 1713 "awkgram.y" /* yacc.c:1646 */
+ case 169:
+#line 1720 "awkgram.y" /* yacc.c:1646 */
{
(yyvsp[-1])->opcode = Op_preincrement;
(yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
}
-#line 3828 "awkgram.c" /* yacc.c:1646 */
+#line 3843 "awkgram.c" /* yacc.c:1646 */
break;
- case 169:
-#line 1718 "awkgram.y" /* yacc.c:1646 */
+ case 170:
+#line 1725 "awkgram.y" /* yacc.c:1646 */
{
(yyvsp[-1])->opcode = Op_predecrement;
(yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
}
-#line 3837 "awkgram.c" /* yacc.c:1646 */
+#line 3852 "awkgram.c" /* yacc.c:1646 */
break;
- case 170:
-#line 1723 "awkgram.y" /* yacc.c:1646 */
+ case 171:
+#line 1730 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = list_create((yyvsp[0]));
}
-#line 3845 "awkgram.c" /* yacc.c:1646 */
+#line 3860 "awkgram.c" /* yacc.c:1646 */
break;
- case 171:
-#line 1727 "awkgram.y" /* yacc.c:1646 */
+ case 172:
+#line 1734 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = list_create((yyvsp[0]));
}
-#line 3853 "awkgram.c" /* yacc.c:1646 */
+#line 3868 "awkgram.c" /* yacc.c:1646 */
break;
- case 172:
-#line 1731 "awkgram.y" /* yacc.c:1646 */
+ case 173:
+#line 1738 "awkgram.y" /* yacc.c:1646 */
{
if ((yyvsp[0])->lasti->opcode == Op_push_i
&& ((yyvsp[0])->lasti->memory->flags & (STRCUR|STRING)) == 0
@@ -3868,11 +3883,11 @@ regular_print:
(yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
}
}
-#line 3872 "awkgram.c" /* yacc.c:1646 */
+#line 3887 "awkgram.c" /* yacc.c:1646 */
break;
- case 173:
-#line 1746 "awkgram.y" /* yacc.c:1646 */
+ case 174:
+#line 1753 "awkgram.y" /* yacc.c:1646 */
{
/*
* was: $$ = $2
@@ -3882,20 +3897,20 @@ regular_print:
(yyvsp[-1])->memory = make_number(0.0);
(yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
}
-#line 3886 "awkgram.c" /* yacc.c:1646 */
+#line 3901 "awkgram.c" /* yacc.c:1646 */
break;
- case 174:
-#line 1759 "awkgram.y" /* yacc.c:1646 */
+ case 175:
+#line 1766 "awkgram.y" /* yacc.c:1646 */
{
func_use((yyvsp[0])->lasti->func_name, FUNC_USE);
(yyval) = (yyvsp[0]);
}
-#line 3895 "awkgram.c" /* yacc.c:1646 */
+#line 3910 "awkgram.c" /* yacc.c:1646 */
break;
- case 175:
-#line 1764 "awkgram.y" /* yacc.c:1646 */
+ case 176:
+#line 1771 "awkgram.y" /* yacc.c:1646 */
{
/* indirect function call */
INSTRUCTION *f, *t;
@@ -3929,11 +3944,11 @@ regular_print:
(yyval) = list_prepend((yyvsp[0]), t);
at_seen = false;
}
-#line 3933 "awkgram.c" /* yacc.c:1646 */
+#line 3948 "awkgram.c" /* yacc.c:1646 */
break;
- case 176:
-#line 1801 "awkgram.y" /* yacc.c:1646 */
+ case 177:
+#line 1808 "awkgram.y" /* yacc.c:1646 */
{
NODE *n;
@@ -3958,49 +3973,49 @@ regular_print:
(yyval) = list_append(t, (yyvsp[-3]));
}
}
-#line 3962 "awkgram.c" /* yacc.c:1646 */
+#line 3977 "awkgram.c" /* yacc.c:1646 */
break;
- case 177:
-#line 1829 "awkgram.y" /* yacc.c:1646 */
+ case 178:
+#line 1836 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3968 "awkgram.c" /* yacc.c:1646 */
+#line 3983 "awkgram.c" /* yacc.c:1646 */
break;
- case 178:
-#line 1831 "awkgram.y" /* yacc.c:1646 */
+ case 179:
+#line 1838 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3974 "awkgram.c" /* yacc.c:1646 */
+#line 3989 "awkgram.c" /* yacc.c:1646 */
break;
- case 179:
-#line 1836 "awkgram.y" /* yacc.c:1646 */
+ case 180:
+#line 1843 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 3980 "awkgram.c" /* yacc.c:1646 */
+#line 3995 "awkgram.c" /* yacc.c:1646 */
break;
- case 180:
-#line 1838 "awkgram.y" /* yacc.c:1646 */
+ case 181:
+#line 1845 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[-1]); }
-#line 3986 "awkgram.c" /* yacc.c:1646 */
+#line 4001 "awkgram.c" /* yacc.c:1646 */
break;
- case 181:
-#line 1843 "awkgram.y" /* yacc.c:1646 */
+ case 182:
+#line 1850 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 3992 "awkgram.c" /* yacc.c:1646 */
+#line 4007 "awkgram.c" /* yacc.c:1646 */
break;
- case 182:
-#line 1845 "awkgram.y" /* yacc.c:1646 */
+ case 183:
+#line 1852 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
}
-#line 4000 "awkgram.c" /* yacc.c:1646 */
+#line 4015 "awkgram.c" /* yacc.c:1646 */
break;
- case 183:
-#line 1852 "awkgram.y" /* yacc.c:1646 */
+ case 184:
+#line 1859 "awkgram.y" /* yacc.c:1646 */
{
INSTRUCTION *ip = (yyvsp[0])->lasti;
int count = ip->sub_count; /* # of SUBSEP-seperated expressions */
@@ -4014,11 +4029,11 @@ regular_print:
sub_counter++; /* count # of dimensions */
(yyval) = (yyvsp[0]);
}
-#line 4018 "awkgram.c" /* yacc.c:1646 */
+#line 4033 "awkgram.c" /* yacc.c:1646 */
break;
- case 184:
-#line 1869 "awkgram.y" /* yacc.c:1646 */
+ case 185:
+#line 1876 "awkgram.y" /* yacc.c:1646 */
{
INSTRUCTION *t = (yyvsp[-1]);
if ((yyvsp[-1]) == NULL) {
@@ -4032,31 +4047,31 @@ regular_print:
(yyvsp[0])->sub_count = count_expressions(&t, false);
(yyval) = list_append(t, (yyvsp[0]));
}
-#line 4036 "awkgram.c" /* yacc.c:1646 */
+#line 4051 "awkgram.c" /* yacc.c:1646 */
break;
- case 185:
-#line 1886 "awkgram.y" /* yacc.c:1646 */
+ case 186:
+#line 1893 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); }
-#line 4042 "awkgram.c" /* yacc.c:1646 */
+#line 4057 "awkgram.c" /* yacc.c:1646 */
break;
- case 186:
-#line 1888 "awkgram.y" /* yacc.c:1646 */
+ case 187:
+#line 1895 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
}
-#line 4050 "awkgram.c" /* yacc.c:1646 */
+#line 4065 "awkgram.c" /* yacc.c:1646 */
break;
- case 187:
-#line 1895 "awkgram.y" /* yacc.c:1646 */
+ case 188:
+#line 1902 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[-1]); }
-#line 4056 "awkgram.c" /* yacc.c:1646 */
+#line 4071 "awkgram.c" /* yacc.c:1646 */
break;
- case 188:
-#line 1900 "awkgram.y" /* yacc.c:1646 */
+ case 189:
+#line 1907 "awkgram.y" /* yacc.c:1646 */
{
char *var_name = (yyvsp[0])->lextok;
@@ -4064,22 +4079,22 @@ regular_print:
(yyvsp[0])->memory = variable((yyvsp[0])->source_line, var_name, Node_var_new);
(yyval) = list_create((yyvsp[0]));
}
-#line 4068 "awkgram.c" /* yacc.c:1646 */
+#line 4083 "awkgram.c" /* yacc.c:1646 */
break;
- case 189:
-#line 1908 "awkgram.y" /* yacc.c:1646 */
+ case 190:
+#line 1915 "awkgram.y" /* yacc.c:1646 */
{
char *arr = (yyvsp[-1])->lextok;
(yyvsp[-1])->memory = variable((yyvsp[-1])->source_line, arr, Node_var_new);
(yyvsp[-1])->opcode = Op_push_array;
(yyval) = list_prepend((yyvsp[0]), (yyvsp[-1]));
}
-#line 4079 "awkgram.c" /* yacc.c:1646 */
+#line 4094 "awkgram.c" /* yacc.c:1646 */
break;
- case 190:
-#line 1918 "awkgram.y" /* yacc.c:1646 */
+ case 191:
+#line 1925 "awkgram.y" /* yacc.c:1646 */
{
INSTRUCTION *ip = (yyvsp[0])->nexti;
if (ip->opcode == Op_push
@@ -4091,73 +4106,73 @@ regular_print:
} else
(yyval) = (yyvsp[0]);
}
-#line 4095 "awkgram.c" /* yacc.c:1646 */
+#line 4110 "awkgram.c" /* yacc.c:1646 */
break;
- case 191:
-#line 1930 "awkgram.y" /* yacc.c:1646 */
+ case 192:
+#line 1937 "awkgram.y" /* yacc.c:1646 */
{
(yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
if ((yyvsp[0]) != NULL)
mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
}
-#line 4105 "awkgram.c" /* yacc.c:1646 */
+#line 4120 "awkgram.c" /* yacc.c:1646 */
break;
- case 192:
-#line 1939 "awkgram.y" /* yacc.c:1646 */
+ case 193:
+#line 1946 "awkgram.y" /* yacc.c:1646 */
{
(yyvsp[0])->opcode = Op_postincrement;
}
-#line 4113 "awkgram.c" /* yacc.c:1646 */
+#line 4128 "awkgram.c" /* yacc.c:1646 */
break;
- case 193:
-#line 1943 "awkgram.y" /* yacc.c:1646 */
+ case 194:
+#line 1950 "awkgram.y" /* yacc.c:1646 */
{
(yyvsp[0])->opcode = Op_postdecrement;
}
-#line 4121 "awkgram.c" /* yacc.c:1646 */
+#line 4136 "awkgram.c" /* yacc.c:1646 */
break;
- case 194:
-#line 1946 "awkgram.y" /* yacc.c:1646 */
+ case 195:
+#line 1953 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = NULL; }
-#line 4127 "awkgram.c" /* yacc.c:1646 */
+#line 4142 "awkgram.c" /* yacc.c:1646 */
break;
- case 196:
-#line 1954 "awkgram.y" /* yacc.c:1646 */
+ case 197:
+#line 1961 "awkgram.y" /* yacc.c:1646 */
{ yyerrok; }
-#line 4133 "awkgram.c" /* yacc.c:1646 */
+#line 4148 "awkgram.c" /* yacc.c:1646 */
break;
- case 197:
-#line 1958 "awkgram.y" /* yacc.c:1646 */
+ case 198:
+#line 1965 "awkgram.y" /* yacc.c:1646 */
{ yyerrok; }
-#line 4139 "awkgram.c" /* yacc.c:1646 */
+#line 4154 "awkgram.c" /* yacc.c:1646 */
break;
- case 200:
-#line 1967 "awkgram.y" /* yacc.c:1646 */
+ case 201:
+#line 1974 "awkgram.y" /* yacc.c:1646 */
{ yyerrok; }
-#line 4145 "awkgram.c" /* yacc.c:1646 */
+#line 4160 "awkgram.c" /* yacc.c:1646 */
break;
- case 201:
-#line 1971 "awkgram.y" /* yacc.c:1646 */
+ case 202:
+#line 1978 "awkgram.y" /* yacc.c:1646 */
{ (yyval) = (yyvsp[0]); yyerrok; }
-#line 4151 "awkgram.c" /* yacc.c:1646 */
+#line 4166 "awkgram.c" /* yacc.c:1646 */
break;
- case 202:
-#line 1975 "awkgram.y" /* yacc.c:1646 */
+ case 203:
+#line 1982 "awkgram.y" /* yacc.c:1646 */
{ yyerrok; }
-#line 4157 "awkgram.c" /* yacc.c:1646 */
+#line 4172 "awkgram.c" /* yacc.c:1646 */
break;
-#line 4161 "awkgram.c" /* yacc.c:1646 */
+#line 4176 "awkgram.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -4385,7 +4400,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 1977 "awkgram.y" /* yacc.c:1906 */
+#line 1984 "awkgram.y" /* yacc.c:1906 */
struct token {
@@ -4687,7 +4702,6 @@ yyerror(const char *m, ...)
char *buf;
int count;
static char end_of_file_line[] = "(END OF FILE)";
- char save;
print_included_from();
@@ -4715,24 +4729,15 @@ yyerror(const char *m, ...)
bp = thisline + strlen(thisline);
}
- /*
- * Saving and restoring *bp keeps valgrind happy,
- * since the guts of glibc uses strlen, even though
- * we're passing an explict precision. Sigh.
- *
- * 8/2003: We may not need this anymore.
- */
- save = *bp;
- *bp = '\0';
-
msg("%.*s", (int) (bp - thisline), thisline);
- *bp = save;
va_start(args, m);
if (mesg == NULL)
mesg = m;
- count = (bp - thisline) + strlen(mesg) + 2 + 1;
+ count = strlen(mesg) + 1;
+ if (lexptr != NULL)
+ count += (lexeme - thisline) + 2;
emalloc(buf, char *, count, "yyerror");
bp = buf;
@@ -5730,21 +5735,24 @@ yylex(void)
collect_regexp:
if (want_regexp) {
int in_brack = 0; /* count brackets, [[:alnum:]] allowed */
+ int b_index = -1;
+ int cur_index = 0;
+
/*
- * Counting brackets is non-trivial. [[] is ok,
- * and so is [\]], with a point being that /[/]/ as a regexp
- * constant has to work.
+ * Here is what's ok with brackets:
*
- * Do not count [ or ] if either one is preceded by a \.
- * A `[' should be counted if
- * a) it is the first one so far (in_brack == 0)
- * b) it is the `[' in `[:'
- * A ']' should be counted if not preceded by a \, since
- * it is either closing `:]' or just a plain list.
- * According to POSIX, []] is how you put a ] into a set.
- * Try to handle that too.
+ * [[] [^[] []] [^]] [.../...]
+ * [...\[...] [...\]...] [...\/...]
+ *
+ * (Remember that all of the above are inside /.../)
*
- * The code for \ handles \[ and \].
+ * The code for \ handles \[, \] and \/.
+ *
+ * Otherwise, track the first open [ position, and if
+ * an embedded [ or ] occurs, allow it to pass through
+ * if it's right after the first [ or after [^.
+ *
+ * Whew!
*/
want_regexp = false;
@@ -5754,17 +5762,21 @@ collect_regexp:
if (gawk_mb_cur_max == 1 || nextc_is_1stbyte) switch (c) {
case '[':
- /* one day check for `.' and `=' too */
- if (nextc(false) == ':' || in_brack == 0)
- in_brack++;
- pushback();
- break;
case ']':
- if (tok[-1] == '['
- || (tok[-2] == '[' && tok[-1] == '^'))
- /* do nothing */;
- else
+ cur_index = tok - tokstart;
+ if (in_brack > 0
+ && (cur_index == b_index + 1
+ || (cur_index == b_index + 2 && tok[-1] == '^')))
+ ; /* do nothing */
+ else if (c == '[') {
+ in_brack++;
+ if (in_brack == 1)
+ b_index = tok - tokstart;
+ } else {
in_brack--;
+ if (in_brack == 0)
+ b_index = -1;
+ }
break;
case '\\':
if ((c = nextc(false)) == END_FILE) {
@@ -6414,6 +6426,27 @@ retry:
&& lasttok != '@')
goto out;
+ /* allow parameter names to shadow the names of gawk extension built-ins */
+ if ((tokentab[mid].flags & GAWKX) != 0) {
+ switch (want_param_names) {
+ case FUNC_HEADER:
+ /* in header, defining parameter names */
+ goto out;
+ case FUNC_BODY:
+ /* in body, name must be in symbol table for it to be a parameter */
+ if (lookup(tokstart) != NULL)
+ goto out;
+ /* else
+ fall through */
+ case DONT_CHECK:
+ /* regular code */
+ break;
+ default:
+ cant_happen();
+ break;
+ }
+ }
+
if (do_lint) {
if ((tokentab[mid].flags & GAWKX) != 0 && (warntab[mid] & GAWKX) == 0) {
lintwarn(_("`%s' is a gawk extension"),
diff --git a/awkgram.y b/awkgram.y
index 027bfa94..f4a5e9c7 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -89,6 +89,11 @@ static void check_comment(void);
static bool at_seen = false;
static bool want_source = false;
static bool want_regexp = false; /* lexical scanning kludge */
+static enum {
+ FUNC_HEADER,
+ FUNC_BODY,
+ DONT_CHECK
+} want_param_names = DONT_CHECK; /* ditto */
static char *in_function; /* parsing kludge */
static int rule = 0;
@@ -246,6 +251,7 @@ rule
{
in_function = NULL;
(void) mk_function($1, $2);
+ want_param_names = DONT_CHECK;
yyerrok;
}
| '@' LEX_INCLUDE source statement_term
@@ -424,7 +430,7 @@ lex_builtin
;
function_prologue
- : LEX_FUNCTION func_name '(' opt_param_list r_paren opt_nls
+ : LEX_FUNCTION func_name '(' { want_param_names = FUNC_HEADER; } opt_param_list r_paren opt_nls
{
/*
* treat any comments between BOF and the first function
@@ -443,13 +449,14 @@ function_prologue
}
func_first = false;
$1->source_file = source;
- if (install_function($2->lextok, $1, $4) < 0)
+ if (install_function($2->lextok, $1, $5) < 0)
YYABORT;
in_function = $2->lextok;
$2->lextok = NULL;
bcfree($2);
- /* $4 already free'd in install_function */
+ /* $5 already free'd in install_function */
$$ = $1;
+ want_param_names = FUNC_BODY;
}
;
@@ -1539,7 +1546,7 @@ common_exp
n1 = force_string(n1);
n2 = force_string(n2);
nlen = n1->stlen + n2->stlen;
- erealloc(n1->stptr, char *, nlen + 2, "constant fold");
+ erealloc(n1->stptr, char *, nlen + 1, "constant fold");
memcpy(n1->stptr + n1->stlen, n2->stptr, n2->stlen);
n1->stlen = nlen;
n1->stptr[nlen] = '\0';
@@ -2275,7 +2282,6 @@ yyerror(const char *m, ...)
char *buf;
int count;
static char end_of_file_line[] = "(END OF FILE)";
- char save;
print_included_from();
@@ -2303,24 +2309,15 @@ yyerror(const char *m, ...)
bp = thisline + strlen(thisline);
}
- /*
- * Saving and restoring *bp keeps valgrind happy,
- * since the guts of glibc uses strlen, even though
- * we're passing an explict precision. Sigh.
- *
- * 8/2003: We may not need this anymore.
- */
- save = *bp;
- *bp = '\0';
-
msg("%.*s", (int) (bp - thisline), thisline);
- *bp = save;
va_start(args, m);
if (mesg == NULL)
mesg = m;
- count = (bp - thisline) + strlen(mesg) + 2 + 1;
+ count = strlen(mesg) + 1;
+ if (lexptr != NULL)
+ count += (lexeme - thisline) + 2;
emalloc(buf, char *, count, "yyerror");
bp = buf;
@@ -3318,21 +3315,24 @@ yylex(void)
collect_regexp:
if (want_regexp) {
int in_brack = 0; /* count brackets, [[:alnum:]] allowed */
+ int b_index = -1;
+ int cur_index = 0;
+
/*
- * Counting brackets is non-trivial. [[] is ok,
- * and so is [\]], with a point being that /[/]/ as a regexp
- * constant has to work.
+ * Here is what's ok with brackets:
+ *
+ * [[] [^[] []] [^]] [.../...]
+ * [...\[...] [...\]...] [...\/...]
+ *
+ * (Remember that all of the above are inside /.../)
*
- * Do not count [ or ] if either one is preceded by a \.
- * A `[' should be counted if
- * a) it is the first one so far (in_brack == 0)
- * b) it is the `[' in `[:'
- * A ']' should be counted if not preceded by a \, since
- * it is either closing `:]' or just a plain list.
- * According to POSIX, []] is how you put a ] into a set.
- * Try to handle that too.
+ * The code for \ handles \[, \] and \/.
*
- * The code for \ handles \[ and \].
+ * Otherwise, track the first open [ position, and if
+ * an embedded [ or ] occurs, allow it to pass through
+ * if it's right after the first [ or after [^.
+ *
+ * Whew!
*/
want_regexp = false;
@@ -3342,17 +3342,21 @@ collect_regexp:
if (gawk_mb_cur_max == 1 || nextc_is_1stbyte) switch (c) {
case '[':
- /* one day check for `.' and `=' too */
- if (nextc(false) == ':' || in_brack == 0)
- in_brack++;
- pushback();
- break;
case ']':
- if (tok[-1] == '['
- || (tok[-2] == '[' && tok[-1] == '^'))
- /* do nothing */;
- else
+ cur_index = tok - tokstart;
+ if (in_brack > 0
+ && (cur_index == b_index + 1
+ || (cur_index == b_index + 2 && tok[-1] == '^')))
+ ; /* do nothing */
+ else if (c == '[') {
+ in_brack++;
+ if (in_brack == 1)
+ b_index = tok - tokstart;
+ } else {
in_brack--;
+ if (in_brack == 0)
+ b_index = -1;
+ }
break;
case '\\':
if ((c = nextc(false)) == END_FILE) {
@@ -4002,6 +4006,27 @@ retry:
&& lasttok != '@')
goto out;
+ /* allow parameter names to shadow the names of gawk extension built-ins */
+ if ((tokentab[mid].flags & GAWKX) != 0) {
+ switch (want_param_names) {
+ case FUNC_HEADER:
+ /* in header, defining parameter names */
+ goto out;
+ case FUNC_BODY:
+ /* in body, name must be in symbol table for it to be a parameter */
+ if (lookup(tokstart) != NULL)
+ goto out;
+ /* else
+ fall through */
+ case DONT_CHECK:
+ /* regular code */
+ break;
+ default:
+ cant_happen();
+ break;
+ }
+ }
+
if (do_lint) {
if ((tokentab[mid].flags & GAWKX) != 0 && (warntab[mid] & GAWKX) == 0) {
lintwarn(_("`%s' is a gawk extension"),
diff --git a/builtin.c b/builtin.c
index e10e8689..0241c297 100644
--- a/builtin.c
+++ b/builtin.c
@@ -1847,7 +1847,7 @@ do_substr(int nargs)
* way to do things.
*/
memset(& mbs, 0, sizeof(mbs));
- emalloc(substr, char *, (length * gawk_mb_cur_max) + 2, "do_substr");
+ emalloc(substr, char *, (length * gawk_mb_cur_max) + 1, "do_substr");
wp = t1->wstptr + indx;
for (cp = substr; length > 0; length--) {
result = wcrtomb(cp, *wp, & mbs);
@@ -2597,7 +2597,7 @@ do_match(int nargs)
sprintf(buff, "%d", ii);
ilen = strlen(buff);
- amt = ilen + subseplen + strlen("length") + 2;
+ amt = ilen + subseplen + strlen("length") + 1;
if (oldamt == 0) {
emalloc(buf, char *, amt, "do_match");
@@ -2771,42 +2771,42 @@ do_sub(int nargs, unsigned int flags)
int ampersands;
int matches = 0;
Regexp *rp;
- NODE *s; /* subst. pattern */
- NODE *t; /* string to make sub. in; $0 if none given */
+ NODE *rep_node; /* replacement text */
+ NODE *target; /* string to make sub. in; $0 if none given */
NODE *tmp;
NODE **lhs = NULL;
long how_many = 1; /* one substitution for sub, also gensub default */
- int global;
+ bool global;
long current;
bool lastmatchnonzero;
char *mb_indices = NULL;
if ((flags & GENSUB) != 0) {
double d;
- NODE *t1;
+ NODE *glob_flag;
tmp = PEEK(3);
rp = re_update(tmp);
- t = POP_STRING(); /* original string */
+ target = POP_STRING(); /* original string */
- t1 = POP_SCALAR(); /* value of global flag */
- if ((t1->flags & (STRCUR|STRING)) != 0) {
- if (t1->stlen > 0 && (t1->stptr[0] == 'g' || t1->stptr[0] == 'G'))
+ glob_flag = POP_SCALAR(); /* value of global flag */
+ if ((glob_flag->flags & (STRCUR|STRING)) != 0) {
+ if (glob_flag->stlen > 0 && (glob_flag->stptr[0] == 'g' || glob_flag->stptr[0] == 'G'))
how_many = -1;
else {
- (void) force_number(t1);
- d = get_number_d(t1);
- if ((t1->flags & NUMCUR) != 0)
+ (void) force_number(glob_flag);
+ d = get_number_d(glob_flag);
+ if ((glob_flag->flags & NUMCUR) != 0)
goto set_how_many;
warning(_("gensub: third argument `%.*s' treated as 1"),
- (int) t1->stlen, t1->stptr);
+ (int) glob_flag->stlen, glob_flag->stptr);
how_many = 1;
}
} else {
- (void) force_number(t1);
- d = get_number_d(t1);
+ (void) force_number(glob_flag);
+ d = get_number_d(glob_flag);
set_how_many:
if (d < 1)
how_many = 1;
@@ -2817,10 +2817,8 @@ set_how_many:
if (d <= 0)
warning(_("gensub: third argument %g treated as 1"), d);
}
- DEREF(t1);
-
+ DEREF(glob_flag);
} else {
-
/* take care of regexp early, in case re_update is fatal */
tmp = PEEK(2);
@@ -2832,30 +2830,30 @@ set_how_many:
/* original string */
if ((flags & LITERAL) != 0)
- t = POP_STRING();
+ target = POP_STRING();
else {
lhs = POP_ADDRESS();
- t = force_string(*lhs);
+ target = force_string(*lhs);
}
}
global = (how_many == -1);
- s = POP_STRING(); /* replacement text */
+ rep_node = POP_STRING(); /* replacement text */
decr_sp(); /* regexp, already updated above */
/* do the search early to avoid work on non-match */
- if (research(rp, t->stptr, 0, t->stlen, RE_NEED_START) == -1 ||
- RESTART(rp, t->stptr) > t->stlen)
+ if (research(rp, target->stptr, 0, target->stlen, RE_NEED_START) == -1 ||
+ RESTART(rp, target->stptr) > target->stlen)
goto done;
- t->flags |= STRING;
+ target->flags |= STRING;
- text = t->stptr;
- textlen = t->stlen;
+ text = target->stptr;
+ textlen = target->stlen;
- repl = s->stptr;
- replend = repl + s->stlen;
+ repl = rep_node->stptr;
+ replend = repl + rep_node->stlen;
repllen = replend - repl;
ampersands = 0;
@@ -2873,6 +2871,7 @@ set_how_many:
index_multibyte_buffer(repl, mb_indices, repllen);
}
+ /* compute length of replacement string, number of ampersands */
for (scan = repl; scan < replend; scan++) {
if ((gawk_mb_cur_max == 1 || (repllen > 0 && mb_indices[scan - repl] == 1))
&& (*scan == '&')) {
@@ -2917,24 +2916,32 @@ set_how_many:
lastmatchnonzero = false;
- /* guesstimate how much room to allocate; +2 forces > 0 */
- buflen = textlen + (ampersands + 1) * repllen + 2;
- emalloc(buf, char *, buflen + 2, "do_sub");
+ /* guesstimate how much room to allocate; +1 forces > 0 */
+ buflen = textlen + (ampersands + 1) * repllen + 1;
+ emalloc(buf, char *, buflen + 1, "do_sub");
buf[buflen] = '\0';
- buf[buflen + 1] = '\0';
bp = buf;
for (current = 1;; current++) {
matches++;
- matchstart = t->stptr + RESTART(rp, t->stptr);
- matchend = t->stptr + REEND(rp, t->stptr);
+ matchstart = target->stptr + RESTART(rp, target->stptr);
+ matchend = target->stptr + REEND(rp, target->stptr);
/*
* create the result, copying in parts of the original
- * string
+ * string. note that length of replacement string can
+ * vary since ampersand is actual text of regexp match.
+ */
+
+ /*
+ * add 1 to len to handle "empty" case where
+ * matchend == matchstart and we force a match on a single
+ * char. Use 'matchend - text' instead of 'matchstart - text'
+ * because we may not actually make any substitution depending
+ * on the 'global' and 'how_many' values.
*/
- len = matchstart - text + repllen
- + ampersands * (matchend - matchstart);
+ len = matchend - text + repllen
+ + ampersands * (matchend - matchstart) + 1;
sofar = bp - buf;
while (buflen < (sofar + len + 1)) {
buflen *= 2;
@@ -2981,13 +2988,13 @@ set_how_many:
if (flags & GENSUB) { /* gensub, behave sanely */
if (isdigit((unsigned char) scan[1])) {
int dig = scan[1] - '0';
- if (dig < NUMSUBPATS(rp, t->stptr) && SUBPATSTART(rp, tp->stptr, dig) != -1) {
+ if (dig < NUMSUBPATS(rp, target->stptr) && SUBPATSTART(rp, tp->stptr, dig) != -1) {
char *start, *end;
- start = t->stptr
- + SUBPATSTART(rp, t->stptr, dig);
- end = t->stptr
- + SUBPATEND(rp, t->stptr, dig);
+ start = target->stptr
+ + SUBPATSTART(rp, target->stptr, dig);
+ end = target->stptr
+ + SUBPATEND(rp, target->stptr, dig);
for (cp = start; cp < end; cp++)
*bp++ = *cp;
@@ -3041,19 +3048,29 @@ set_how_many:
textlen = text + textlen - matchend;
text = matchend;
+#if 0
+ if (bp - buf > sofar + len)
+ fprintf(stderr, "debug: len = %zu, but used %ld\n", len, (long)((bp - buf) - (long)sofar));
+#endif
+
if ((current >= how_many && ! global)
|| ((long) textlen <= 0 && matchstart == matchend)
- || research(rp, t->stptr, text - t->stptr, textlen, RE_NEED_START) == -1)
+ || research(rp, target->stptr, text - target->stptr, textlen, RE_NEED_START) == -1)
break;
}
sofar = bp - buf;
- if (buflen - sofar - textlen - 1) {
- buflen = sofar + textlen + 2;
+ if (buflen < (sofar + textlen + 1)) {
+ buflen = sofar + textlen + 1;
erealloc(buf, char *, buflen, "do_sub");
bp = buf + sofar;
}
- for (scan = matchend; scan < text + textlen; scan++)
+ /*
+ * Note that text == matchend, since that assignment is made before
+ * exiting the 'for' loop above. Thus we copy in the rest of the
+ * original string.
+ */
+ for (scan = text; scan < text + textlen; scan++)
*bp++ = *scan;
*bp = '\0';
textlen = bp - buf;
@@ -3062,7 +3079,7 @@ set_how_many:
efree(mb_indices);
done:
- DEREF(s);
+ DEREF(rep_node);
if ((matches == 0 || (flags & LITERAL) != 0) && buf != NULL) {
efree(buf);
@@ -3072,18 +3089,18 @@ done:
if (flags & GENSUB) {
if (matches > 0) {
/* return the result string */
- DEREF(t);
+ DEREF(target);
assert(buf != NULL);
return make_str_node(buf, textlen, ALREADY_MALLOCED);
}
/* return the original string */
- return t;
+ return target;
}
/* For a string literal, must not change the original string. */
if ((flags & LITERAL) != 0)
- DEREF(t);
+ DEREF(target);
else if (matches > 0) {
unref(*lhs);
*lhs = make_str_node(buf, textlen, ALREADY_MALLOCED);
diff --git a/command.c b/command.c
index 04d5e5f3..b23b21c5 100644
--- a/command.c
+++ b/command.c
@@ -2515,7 +2515,7 @@ append_statement(CMDARG *stmt_list, char *stmt)
len += strlen(a->a_string) + 1; /* 1 for ',' */
len += EVALSIZE;
- emalloc(s, char *, (len + 2) * sizeof(char), "append_statement");
+ emalloc(s, char *, (len + 1) * sizeof(char), "append_statement");
arg = mk_cmdarg(D_string);
arg->a_string = s;
arg->a_count = len; /* kludge */
@@ -2542,7 +2542,7 @@ append_statement(CMDARG *stmt_list, char *stmt)
ssize = stmt_list->a_count;
if (len > ssize - slen) {
ssize = slen + len + EVALSIZE;
- erealloc(s, char *, (ssize + 2) * sizeof(char), "append_statement");
+ erealloc(s, char *, (ssize + 1) * sizeof(char), "append_statement");
stmt_list->a_string = s;
stmt_list->a_count = ssize;
}
@@ -2554,7 +2554,7 @@ append_statement(CMDARG *stmt_list, char *stmt)
}
if (stmt == end_EVAL)
- erealloc(stmt_list->a_string, char *, slen + 2, "append_statement");
+ erealloc(stmt_list->a_string, char *, slen + 1, "append_statement");
return stmt_list;
#undef EVALSIZE
@@ -2921,7 +2921,7 @@ again:
bool esc_seen = false;
toklen = lexend - lexptr;
- emalloc(str, char *, toklen + 2, "yylex");
+ emalloc(str, char *, toklen + 1, "yylex");
p = str;
while ((c = *++lexptr) != '"') {
@@ -3100,7 +3100,7 @@ concat_args(CMDARG *arg, int count)
arg = arg->next;
}
- emalloc(str, char *, len + 2, "concat_args");
+ emalloc(str, char *, len + 1, "concat_args");
n = tmp[0];
memcpy(str, n->stptr, n->stlen);
p = str + n->stlen;
diff --git a/command.y b/command.y
index 08893743..bd5b4870 100644
--- a/command.y
+++ b/command.y
@@ -764,7 +764,7 @@ append_statement(CMDARG *stmt_list, char *stmt)
len += strlen(a->a_string) + 1; /* 1 for ',' */
len += EVALSIZE;
- emalloc(s, char *, (len + 2) * sizeof(char), "append_statement");
+ emalloc(s, char *, (len + 1) * sizeof(char), "append_statement");
arg = mk_cmdarg(D_string);
arg->a_string = s;
arg->a_count = len; /* kludge */
@@ -791,7 +791,7 @@ append_statement(CMDARG *stmt_list, char *stmt)
ssize = stmt_list->a_count;
if (len > ssize - slen) {
ssize = slen + len + EVALSIZE;
- erealloc(s, char *, (ssize + 2) * sizeof(char), "append_statement");
+ erealloc(s, char *, (ssize + 1) * sizeof(char), "append_statement");
stmt_list->a_string = s;
stmt_list->a_count = ssize;
}
@@ -803,7 +803,7 @@ append_statement(CMDARG *stmt_list, char *stmt)
}
if (stmt == end_EVAL)
- erealloc(stmt_list->a_string, char *, slen + 2, "append_statement");
+ erealloc(stmt_list->a_string, char *, slen + 1, "append_statement");
return stmt_list;
#undef EVALSIZE
@@ -1170,7 +1170,7 @@ again:
bool esc_seen = false;
toklen = lexend - lexptr;
- emalloc(str, char *, toklen + 2, "yylex");
+ emalloc(str, char *, toklen + 1, "yylex");
p = str;
while ((c = *++lexptr) != '"') {
@@ -1349,7 +1349,7 @@ concat_args(CMDARG *arg, int count)
arg = arg->next;
}
- emalloc(str, char *, len + 2, "concat_args");
+ emalloc(str, char *, len + 1, "concat_args");
n = tmp[0];
memcpy(str, n->stptr, n->stlen);
p = str + n->stlen;
diff --git a/debug.c b/debug.c
index 58012b72..6aaba099 100644
--- a/debug.c
+++ b/debug.c
@@ -4205,10 +4205,10 @@ gprintf(FILE *fp, const char *format, ...)
#define GPRINTF_BUFSIZ 512
if (buf == NULL) {
buflen = GPRINTF_BUFSIZ;
- emalloc(buf, char *, (buflen + 2) * sizeof(char), "gprintf");
+ emalloc(buf, char *, buflen * sizeof(char), "gprintf");
} else if (buflen - bl < GPRINTF_BUFSIZ/2) {
buflen += GPRINTF_BUFSIZ;
- erealloc(buf, char *, (buflen + 2) * sizeof(char), "gprintf");
+ erealloc(buf, char *, buflen * sizeof(char), "gprintf");
}
#undef GPRINTF_BUFSIZ
@@ -4227,7 +4227,7 @@ gprintf(FILE *fp, const char *format, ...)
/* enlarge buffer, and try again */
buflen *= 2;
- erealloc(buf, char *, (buflen + 2) * sizeof(char), "gprintf");
+ erealloc(buf, char *, buflen * sizeof(char), "gprintf");
}
bl = 0;
@@ -4267,7 +4267,7 @@ gprintf(FILE *fp, const char *format, ...)
static int
serialize_subscript(char *buf, int buflen, struct list_item *item)
{
- int bl = 0, nchar, i;
+ int bl, nchar, i;
NODE *sub;
nchar = snprintf(buf, buflen, "%d%c%d%c%s%c%d%c",
@@ -4277,7 +4277,7 @@ serialize_subscript(char *buf, int buflen, struct list_item *item)
return 0;
else if (nchar >= buflen) /* need larger buffer */
return nchar;
- bl += nchar;
+ bl = nchar;
for (i = 0; i < item->num_subs; i++) {
sub = item->subs[i];
nchar = snprintf(buf + bl, buflen - bl, "%lu%c%s%c",
@@ -4356,7 +4356,7 @@ serialize(int type)
if (buf == NULL) { /* first time */
buflen = SERIALIZE_BUFSIZ;
- emalloc(buf, char *, buflen + 2, "serialize");
+ emalloc(buf, char *, buflen + 1, "serialize");
}
bl = 0;
@@ -4365,7 +4365,7 @@ serialize(int type)
if (buflen - bl < SERIALIZE_BUFSIZ/2) {
enlarge_buffer:
buflen *= 2;
- erealloc(buf, char *, buflen + 2, "serialize");
+ erealloc(buf, char *, buflen + 1, "serialize");
}
#undef SERIALIZE_BUFSIZ
@@ -4466,7 +4466,7 @@ enlarge_buffer:
}
if (nchar > 0) { /* non-empty commands list */
- nchar += (strlen("commands ") + 20 + strlen("end") + 2); /* 20 for cnum (an int) */
+ nchar += (strlen("commands ") + 20 + strlen("end") + 1); /* 20 for cnum (an int) */
if (nchar > buflen - bl) {
buflen = bl + nchar;
erealloc(buf, char *, buflen + 3, "serialize");
diff --git a/doc/ChangeLog b/doc/ChangeLog
index c91b9bf1..c436758f 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2015-04-16 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in (Undocumented): More info added.
+
2015-04-08 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: Update feature history section.
diff --git a/doc/gawk.texi b/doc/gawk.texi
index e86e8bba..501aacde 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -4900,6 +4900,13 @@ Similarly, you may use @code{print} or @code{printf} statements in the
@var{init} and @var{increment} parts of a @code{for} loop. This is another
long-undocumented ``feature'' of Unix @command{awk}.
+@command{gawk} lets you use the names of built-in functions that are
+@command{gawk} extensions as the names of parameters in user-defined functions.
+This is intended to ``future-proof'' old code that happens to use
+function names added by @command{gawk} after the code was written.
+Standard @command{awk} built-in functions, such as @code{sin()} or
+@code{substr()} are @emph{not} shadowed in this way.
+
@end ignore
@node Invoking Summary
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index aa2a78f3..663353d4 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -4811,6 +4811,13 @@ Similarly, you may use @code{print} or @code{printf} statements in the
@var{init} and @var{increment} parts of a @code{for} loop. This is another
long-undocumented ``feature'' of Unix @command{awk}.
+@command{gawk} lets you use the names of built-in functions that are
+@command{gawk} extensions as the names of parameters in user-defined functions.
+This is intended to ``future-proof'' old code that happens to use
+function names added by @command{gawk} after the code was written.
+Standard @command{awk} built-in functions, such as @code{sin()} or
+@code{substr()} are @emph{not} shadowed in this way.
+
@end ignore
@node Invoking Summary
diff --git a/eval.c b/eval.c
index 8a144945..8f5eb05b 100644
--- a/eval.c
+++ b/eval.c
@@ -828,9 +828,9 @@ set_OFS()
new_ofs_len = OFS_node->var_value->stlen;
if (OFS == NULL)
- emalloc(OFS, char *, new_ofs_len + 2, "set_OFS");
+ emalloc(OFS, char *, new_ofs_len + 1, "set_OFS");
else if (OFSlen < new_ofs_len)
- erealloc(OFS, char *, new_ofs_len + 2, "set_OFS");
+ erealloc(OFS, char *, new_ofs_len + 1, "set_OFS");
memcpy(OFS, OFS_node->var_value->stptr, OFS_node->var_value->stlen);
OFSlen = new_ofs_len;
@@ -1329,7 +1329,13 @@ setup_frame(INSTRUCTION *pc)
if (m->type == Node_param_list)
m = GET_PARAM(m->param_cnt);
-
+
+ /* $0 needs to be passed by value to a function */
+ if (m == fields_arr[0]) {
+ DEREF(m);
+ m = dupnode(m);
+ }
+
switch (m->type) {
case Node_var_new:
case Node_var_array:
diff --git a/extension/ChangeLog b/extension/ChangeLog
index 2769a350..9df8ae00 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -86,6 +86,13 @@
(errno_la_SOURCES, errno_la_LDFLAGS, errno_la_LIBADD): Remove.
(EXTRA_DIST): Remove errlist.h.
+2014-12-14 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * readfile.c (read_file_to_buffer): Do not waste a byte at the end of
+ a string.
+ * rwarray.c (read_value): Ditto.
+ * rwarray0.c (read_value): Ditto.
+
2014-11-23 Arnold D. Robbins <arnold@skeeve.com>
* inplace.c (do_inplace_begin): Jump through hoops to silence
diff --git a/extension/readfile.c b/extension/readfile.c
index d4b4aef9..7673589f 100644
--- a/extension/readfile.c
+++ b/extension/readfile.c
@@ -82,8 +82,8 @@ read_file_to_buffer(int fd, const struct stat *sbuf)
goto done;
}
- emalloc(text, char *, sbuf->st_size + 2, "do_readfile");
- memset(text, '\0', sbuf->st_size + 2);
+ emalloc(text, char *, sbuf->st_size + 1, "do_readfile");
+ memset(text, '\0', sbuf->st_size + 1);
if ((ret = read(fd, text, sbuf->st_size)) != sbuf->st_size) {
update_ERRNO_int(errno);
diff --git a/extension/rwarray.c b/extension/rwarray.c
index aa05a0d5..5bead973 100644
--- a/extension/rwarray.c
+++ b/extension/rwarray.c
@@ -468,8 +468,8 @@ read_value(FILE *fp, awk_value_t *value)
len = ntohl(len);
value->val_type = AWK_STRING;
value->str_value.len = len;
- value->str_value.str = gawk_malloc(len + 2);
- memset(value->str_value.str, '\0', len + 2);
+ value->str_value.str = gawk_malloc(len + 1);
+ memset(value->str_value.str, '\0', len + 1);
if (fread(value->str_value.str, 1, len, fp) != (ssize_t) len) {
gawk_free(value->str_value.str);
diff --git a/extension/rwarray0.c b/extension/rwarray0.c
index e2de3cf5..ec3663cc 100644
--- a/extension/rwarray0.c
+++ b/extension/rwarray0.c
@@ -452,8 +452,8 @@ read_value(int fd, awk_value_t *value)
len = ntohl(len);
value->val_type = AWK_STRING;
value->str_value.len = len;
- value->str_value.str = malloc(len + 2);
- memset(value->str_value.str, '\0', len + 2);
+ value->str_value.str = malloc(len + 1);
+ memset(value->str_value.str, '\0', len + 1);
if (read(fd, value->str_value.str, len) != (ssize_t) len) {
free(value->str_value.str);
diff --git a/field.c b/field.c
index 6a7c6b1d..13a5db6f 100644
--- a/field.c
+++ b/field.c
@@ -163,7 +163,7 @@ rebuild_record()
tlen += (NF - 1) * OFSlen;
if ((long) tlen < 0)
tlen = 0;
- emalloc(ops, char *, tlen + 2, "rebuild_record");
+ emalloc(ops, char *, tlen + 1, "rebuild_record");
cops = ops;
ops[0] = '\0';
for (i = 1; i <= NF; i++) {
@@ -1138,7 +1138,7 @@ set_FIELDWIDTHS()
FIELDWIDTHS[0] = 0;
for (i = 1; ; i++) {
unsigned long int tmp;
- if (i + 2 >= fw_alloc) {
+ if (i + 1 >= fw_alloc) {
fw_alloc *= 2;
erealloc(FIELDWIDTHS, int *, fw_alloc * sizeof(int), "set_FIELDWIDTHS");
}
diff --git a/gawkapi.h b/gawkapi.h
index 8bf3a08d..c708db67 100644
--- a/gawkapi.h
+++ b/gawkapi.h
@@ -827,7 +827,7 @@ r_make_string(const gawk_api_t *api, /* needed for emalloc */
result->str_value.len = length;
if (duplicate) {
- emalloc(cp, char *, length + 2, "r_make_string");
+ emalloc(cp, char *, length + 1, "r_make_string");
memcpy(cp, string, length);
cp[length] = '\0';
result->str_value.str = cp;
diff --git a/helpers/ChangeLog b/helpers/ChangeLog
index a5bbafb1..5a3f2fe3 100644
--- a/helpers/ChangeLog
+++ b/helpers/ChangeLog
@@ -1,3 +1,11 @@
+2015-04-09 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * testdfa.c (setup_pattern): Rationalize buffer size computations.
+
+2014-12-18 Arnold D. Robbins <arnold@skeeve.com>
+
+ * testdfa.c (setup_pattern): Do not waste a byte at the end of a string.
+
2014-09-04 Arnold D. Robbins <arnold@skeeve.com>
* chlistref.awk: New file. Finds @ref{} to non-chapters.
diff --git a/helpers/testdfa.c b/helpers/testdfa.c
index 25a229a2..2b773467 100644
--- a/helpers/testdfa.c
+++ b/helpers/testdfa.c
@@ -372,10 +372,10 @@ setup_pattern(const char *pattern, size_t *len)
{
size_t is_multibyte = 0;
int c, c2;
- size_t buflen = 0;
+ size_t buflen;
mbstate_t mbs;
bool has_anchor = false;
- char *buf = NULL;
+ char *buf;
char *dest;
const char *src, *end;
@@ -391,21 +391,12 @@ setup_pattern(const char *pattern, size_t *len)
* escaped characters translated, and generate the regex
* from that.
*/
+ buf = (char *) malloc(*len + 1);
if (buf == NULL) {
- buf = (char *) malloc(*len + 2);
- if (buf == NULL) {
- fprintf(stderr, "%s: malloc failed\n", __func__);
- exit(EXIT_FAILURE);
- }
- buflen = *len;
- } else if (*len > buflen) {
- buf = (char *) realloc(buf, *len + 2);
- if (buf == NULL) {
- fprintf(stderr, "%s: realloc failed\n", __func__);
- exit(EXIT_FAILURE);
- }
- buflen = *len;
+ fprintf(stderr, "%s: malloc failed\n", __func__);
+ exit(EXIT_FAILURE);
}
+ buflen = *len;
dest = buf;
while (src < end) {
diff --git a/interpret.h b/interpret.h
index b76952f1..03532f43 100644
--- a/interpret.h
+++ b/interpret.h
@@ -709,7 +709,7 @@ mod:
if (t1 != t2 && t1->valref == 1 && (t1->flags & MPFN) == 0) {
size_t nlen = t1->stlen + t2->stlen;
- erealloc(t1->stptr, char *, nlen + 2, "r_interpret");
+ erealloc(t1->stptr, char *, nlen + 1, "r_interpret");
memcpy(t1->stptr + t1->stlen, t2->stptr, t2->stlen);
t1->stlen = nlen;
t1->stptr[nlen] = '\0';
@@ -719,7 +719,7 @@ mod:
size_t wlen = t1->wstlen + t2->wstlen;
erealloc(t1->wstptr, wchar_t *,
- sizeof(wchar_t) * (wlen + 2), "r_interpret");
+ sizeof(wchar_t) * (wlen + 1), "r_interpret");
memcpy(t1->wstptr + t1->wstlen, t2->wstptr, t2->wstlen);
t1->wstlen = wlen;
t1->wstptr[wlen] = L'\0';
@@ -730,9 +730,10 @@ mod:
size_t nlen = t1->stlen + t2->stlen;
char *p;
- emalloc(p, char *, nlen + 2, "r_interpret");
+ emalloc(p, char *, nlen + 1, "r_interpret");
memcpy(p, t1->stptr, t1->stlen);
memcpy(p + t1->stlen, t2->stptr, t2->stlen);
+ /* N.B. No NUL-termination required, since make_str_node will do it. */
unref(*lhs);
t1 = *lhs = make_str_node(p, nlen, ALREADY_MALLOCED);
}
diff --git a/io.c b/io.c
index 50310ed2..50f0989b 100644
--- a/io.c
+++ b/io.c
@@ -2709,6 +2709,7 @@ init_awkpath(path_info *pi)
end++;
len = end - start;
if (len > 0) {
+ /* +2 is correct here; leave room for / */
emalloc(p, char *, len + 2, "init_awkpath");
memcpy(p, start, len);
@@ -3163,7 +3164,7 @@ iop_finish(IOBUF *iop)
lintwarn(_("data file `%s' is empty"), iop->public.name);
iop->errcode = errno = 0;
iop->count = iop->scanoff = 0;
- emalloc(iop->buf, char *, iop->size += 2, "iop_finish");
+ emalloc(iop->buf, char *, iop->size += 1, "iop_finish");
iop->off = iop->buf;
iop->dataend = NULL;
iop->end = iop->buf + iop->size;
@@ -3195,10 +3196,10 @@ grow_iop_buffer(IOBUF *iop)
size_t newsize;
/*
- * Lop off original extra two bytes, double the size,
- * add them back.
+ * Lop off original extra byte, double the size,
+ * add it back.
*/
- newsize = ((iop->size - 2) * 2) + 2;
+ newsize = ((iop->size - 1) * 2) + 1;
/* Check for overflow */
if (newsize <= iop->size)
@@ -3206,7 +3207,7 @@ grow_iop_buffer(IOBUF *iop)
/* Make sure there's room for a disk block */
if (newsize - valid < iop->readsize)
- newsize += iop->readsize + 2;
+ newsize += iop->readsize + 1;
/* Check for overflow, again */
if (newsize <= iop->size)
diff --git a/node.c b/node.c
index b9c751dd..b15159f0 100644
--- a/node.c
+++ b/node.c
@@ -261,7 +261,7 @@ r_format_val(const char *format, int index, NODE *s)
}
if (s->stptr != NULL)
efree(s->stptr);
- emalloc(s->stptr, char *, s->stlen + 2, "format_val");
+ emalloc(s->stptr, char *, s->stlen + 1, "format_val");
memcpy(s->stptr, sp, s->stlen + 1);
no_malloc:
s->flags |= STRCUR;
@@ -299,12 +299,12 @@ r_dupnode(NODE *n)
r->wstlen = 0;
if ((n->flags & STRCUR) != 0) {
- emalloc(r->stptr, char *, n->stlen + 2, "r_dupnode");
+ emalloc(r->stptr, char *, n->stlen + 1, "r_dupnode");
memcpy(r->stptr, n->stptr, n->stlen);
r->stptr[n->stlen] = '\0';
if ((n->flags & WSTRCUR) != 0) {
r->wstlen = n->wstlen;
- emalloc(r->wstptr, wchar_t *, sizeof(wchar_t) * (n->wstlen + 2), "r_dupnode");
+ emalloc(r->wstptr, wchar_t *, sizeof(wchar_t) * (n->wstlen + 1), "r_dupnode");
memcpy(r->wstptr, n->wstptr, n->wstlen * sizeof(wchar_t));
r->wstptr[n->wstlen] = L'\0';
r->flags |= WSTRCUR;
@@ -377,7 +377,7 @@ make_str_node(const char *s, size_t len, int flags)
if ((flags & ALREADY_MALLOCED) != 0)
r->stptr = (char *) s;
else {
- emalloc(r->stptr, char *, len + 2, "make_str_node");
+ emalloc(r->stptr, char *, len + 1, "make_str_node");
memcpy(r->stptr, s, len);
}
r->stptr[len] = '\0';
@@ -681,7 +681,7 @@ str2wstr(NODE *n, size_t **ptr)
* realloc the wide string down in size.
*/
- emalloc(n->wstptr, wchar_t *, sizeof(wchar_t) * (n->stlen + 2), "str2wstr");
+ emalloc(n->wstptr, wchar_t *, sizeof(wchar_t) * (n->stlen + 1), "str2wstr");
wsp = n->wstptr;
/*
@@ -755,7 +755,7 @@ str2wstr(NODE *n, size_t **ptr)
n->flags |= WSTRCUR;
#define ARBITRARY_AMOUNT_TO_GIVE_BACK 100
if (n->stlen - n->wstlen > ARBITRARY_AMOUNT_TO_GIVE_BACK)
- erealloc(n->wstptr, wchar_t *, sizeof(wchar_t) * (n->wstlen + 2), "str2wstr");
+ erealloc(n->wstptr, wchar_t *, sizeof(wchar_t) * (n->wstlen + 1), "str2wstr");
return n;
}
@@ -782,7 +782,7 @@ wstr2str(NODE *n)
memset(& mbs, 0, sizeof(mbs));
length = n->wstlen;
- emalloc(newval, char *, (length * gawk_mb_cur_max) + 2, "wstr2str");
+ emalloc(newval, char *, (length * gawk_mb_cur_max) + 1, "wstr2str");
wp = n->wstptr;
for (cp = newval; length > 0; length--) {
diff --git a/old-extension/ChangeLog b/old-extension/ChangeLog
index 55c8d31d..dad5c794 100644
--- a/old-extension/ChangeLog
+++ b/old-extension/ChangeLog
@@ -1,3 +1,12 @@
+2015-04-09 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * bindarr.c (do_bind_array): Undo Arnold's change of 2014-12-18.
+
+2014-12-18 Arnold D. Robbins <arnold@skeeve.com>
+
+ * bindarr.c (do_bind_array): Do not waste a byte at the end of a string.
+ * fileop.c (do_fread): Ditto.
+
2014-01-07 Arnold D. Robbins <arnold@skeeve.com>
* dbarray.awk: Use full name for lib to load in extenstion() call.
diff --git a/old-extension/bindarr.c b/old-extension/bindarr.c
index 60959903..41467425 100644
--- a/old-extension/bindarr.c
+++ b/old-extension/bindarr.c
@@ -235,7 +235,7 @@ do_bind_array(int nargs)
}
/* copy the array -- this is passed as the second argument to the functions */
- emalloc(aname, char *, strlen(t->vname) + 2, "do_bind_array");
+ emalloc(aname, char *, 1 + strlen(symbol->vname) + 1, "do_bind_array");
aname[0] = '~'; /* any illegal character */
strcpy(& aname[1], symbol->vname);
td = make_array();
diff --git a/old-extension/fileop.c b/old-extension/fileop.c
index 86f62576..d76a7ded 100644
--- a/old-extension/fileop.c
+++ b/old-extension/fileop.c
@@ -55,7 +55,7 @@ do_fread(int nargs)
force_number(arg);
rlen = get_number_ui(arg);
- emalloc(rbuf, char *, rlen + 2, "do_fread");
+ emalloc(rbuf, char *, rlen + 1, "do_fread");
if ((count = fread(rbuf, 1, rlen, f->fp)) < rlen) {
if (! feof(f->fp))
update_ERRNO_int(errno);
diff --git a/po/da.po b/po/da.po
index 8dfedbea..d87ebb42 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,10 +8,10 @@
# Review by Ask Hjorth Larsen <asklarsen@gmail.com>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: gawk 4.0.0h\n"
+"Project-Id-Version: gawk 4.1.1d\n"
"Report-Msgid-Bugs-To: bug-gawk@gnu.org\n"
-"POT-Creation-Date: 2015-02-26 20:05+0200\n"
-"PO-Revision-Date: 2012-02-06 10:37+0100\n"
+"POT-Creation-Date: 2015-04-16 17:16+0300\n"
+"PO-Revision-Date: 2015-04-26 12:37+0200\n"
"Last-Translator: Keld Simonsen <keld@keldix.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
@@ -41,7 +41,7 @@ msgid "attempt to use scalar `%s' as an array"
msgstr "forsøg på at bruge skalar '%s' som et array"
#: array.c:409 array.c:576 builtin.c:85 builtin.c:1606 builtin.c:1652
-#: builtin.c:1665 builtin.c:2092 builtin.c:2106 eval.c:1149 eval.c:1153
+#: builtin.c:1665 builtin.c:2106 builtin.c:2120 eval.c:1149 eval.c:1153
#: eval.c:1558
#, c-format
msgid "attempt to use array `%s' in a scalar context"
@@ -58,9 +58,8 @@ msgid "attempt to use scalar `%s[\"%.*s\"]' as an array"
msgstr "forsøg på at bruge skalaren '%s[\"%.*s\"]' som array"
#: array.c:776
-#, fuzzy
msgid "adump: first argument not an array"
-msgstr "adump: argument er ikke et array"
+msgstr "adump: første argument er ikke et array"
#: array.c:815
msgid "asort: second argument not an array"
@@ -80,23 +79,19 @@ msgstr "asorti: første argument er ikke et array"
#: array.c:831
msgid "asort: cannot use a subarray of first arg for second arg"
-msgstr ""
-"asort: kan ikke bruge et underarray af første argument for andet argument"
+msgstr "asort: kan ikke bruge et underarray af første argument for andet argument"
#: array.c:832
msgid "asorti: cannot use a subarray of first arg for second arg"
-msgstr ""
-"asorti: kan ikke bruge et underarray af første argument for andet argument"
+msgstr "asorti: kan ikke bruge et underarray af første argument for andet argument"
#: array.c:837
msgid "asort: cannot use a subarray of second arg for first arg"
-msgstr ""
-"asort: kan ikke bruge et underarray af andet argument for første argument"
+msgstr "asort: kan ikke bruge et underarray af andet argument for første argument"
#: array.c:838
msgid "asorti: cannot use a subarray of second arg for first arg"
-msgstr ""
-"asorti: kan ikke bruge et underarray af andet argument for første argument"
+msgstr "asorti: kan ikke bruge et underarray af andet argument for første argument"
#: array.c:1313
#, c-format
@@ -108,410 +103,398 @@ msgstr "'%s' er ugyldigt som funktionsnavn"
msgid "sort comparison function `%s' is not defined"
msgstr "funktionen for sorteringssammenligning '%s' er ikke defineret"
-#: awkgram.y:226
+#: awkgram.y:225
#, c-format
msgid "%s blocks must have an action part"
msgstr "%s-blokke skal have en handlingsdel"
-#: awkgram.y:229
+#: awkgram.y:228
msgid "each rule must have a pattern or an action part"
msgstr "hver regel skal have et mønster eller en handlingsdel"
-#: awkgram.y:320 awkgram.y:331
+#: awkgram.y:319 awkgram.y:330
msgid "old awk does not support multiple `BEGIN' or `END' rules"
-msgstr ""
-"gamle versioner af awk understøtter ikke flere 'BEGIN'- eller 'END'-regler"
+msgstr "gamle versioner af awk understøtter ikke flere 'BEGIN'- eller 'END'-regler"
-#: awkgram.y:368
+#: awkgram.y:367
#, c-format
msgid "`%s' is a built-in function, it cannot be redefined"
msgstr "'%s' er en indbygget funktion, den kan ikke omdefineres"
-#: awkgram.y:417
+#: awkgram.y:416
msgid "regexp constant `//' looks like a C++ comment, but is not"
msgstr "regexp-konstanten '//' ser ud som en C++-kommentar, men er det ikke"
-#: awkgram.y:421
+#: awkgram.y:420
#, c-format
msgid "regexp constant `/%s/' looks like a C comment, but is not"
msgstr "regexp-konstanten '/%s/' ser ud som en C-kommentar, men er det ikke"
-#: awkgram.y:513
+#: awkgram.y:512
#, c-format
msgid "duplicate case values in switch body: %s"
msgstr "dublet case-værdier i switch-krop %s"
-#: awkgram.y:534
+#: awkgram.y:533
msgid "duplicate `default' detected in switch body"
msgstr "dublet 'default' opdaget i switch-krop"
-#: awkgram.y:794 awkgram.y:3751
+#: awkgram.y:793 awkgram.y:3750
msgid "`break' is not allowed outside a loop or switch"
msgstr "'break' uden for en løkke eller switch er ikke tilladt"
-#: awkgram.y:803 awkgram.y:3743
+#: awkgram.y:802 awkgram.y:3742
msgid "`continue' is not allowed outside a loop"
msgstr "'continue' uden for en løkke er ikke tilladt"
-#: awkgram.y:813
+#: awkgram.y:812
#, c-format
msgid "`next' used in %s action"
msgstr "'next' brugt i %s-handling"
-#: awkgram.y:822
+#: awkgram.y:821
#, c-format
msgid "`nextfile' used in %s action"
msgstr "'nextfile' brugt i %s-handling"
-#: awkgram.y:846
+#: awkgram.y:845
msgid "`return' used outside function context"
msgstr "'return' brugt uden for funktion"
-#: awkgram.y:920
+#: awkgram.y:919
msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr ""
-"alenestående 'print' i BEGIN eller END-regel skulle muligvis være 'print "
-"\"\"'"
+msgstr "alenestående 'print' i BEGIN eller END-regel skulle muligvis være 'print \"\"'"
-#: awkgram.y:986 awkgram.y:1035
+#: awkgram.y:985 awkgram.y:1034
msgid "`delete' is not allowed with SYMTAB"
msgstr ""
-#: awkgram.y:988 awkgram.y:1037
+#: awkgram.y:987 awkgram.y:1036
msgid "`delete' is not allowed with FUNCTAB"
msgstr ""
-#: awkgram.y:1022 awkgram.y:1026
+#: awkgram.y:1021 awkgram.y:1025
msgid "`delete(array)' is a non-portable tawk extension"
msgstr "'delete array' er en ikke-portabel udvidelse fra tawk"
-#: awkgram.y:1147
+#: awkgram.y:1146
msgid "multistage two-way pipelines don't work"
msgstr "flertrins dobbeltrettede datakanaler fungerer ikke"
-#: awkgram.y:1262
+#: awkgram.y:1261
msgid "regular expression on right of assignment"
msgstr "regulært udtryk i højreleddet af en tildeling"
-#: awkgram.y:1273
+#: awkgram.y:1272
msgid "regular expression on left of `~' or `!~' operator"
msgstr "regulært udtryk på venstre side af en '~'- eller '!~'-operator"
-#: awkgram.y:1289 awkgram.y:1431
+#: awkgram.y:1288 awkgram.y:1430
msgid "old awk does not support the keyword `in' except after `for'"
-msgstr ""
-"gamle versioner af awk understøtter ikke nøgleordet 'in' undtagen efter 'for'"
+msgstr "gamle versioner af awk understøtter ikke nøgleordet 'in' undtagen efter 'for'"
-#: awkgram.y:1299
+#: awkgram.y:1298
msgid "regular expression on right of comparison"
msgstr "regulært udtryk i højreleddet af en sammenligning"
-#: awkgram.y:1411
+#: awkgram.y:1410
#, c-format
msgid "non-redirected `getline' invalid inside `%s' rule"
msgstr "ikke-omdirigeret 'getline' ugyldig inden i '%s'-regel"
-#: awkgram.y:1414
+#: awkgram.y:1413
msgid "non-redirected `getline' undefined inside END action"
msgstr "ikke-omdirigeret 'getline' udefineret inden i END-handling"
-#: awkgram.y:1433
+#: awkgram.y:1432
msgid "old awk does not support multidimensional arrays"
msgstr "gamle versioner af awk understøtter ikke flerdimensionale array"
-#: awkgram.y:1530
+#: awkgram.y:1529
msgid "call of `length' without parentheses is not portable"
msgstr "kald af 'length' uden parenteser er ikke portabelt"
-#: awkgram.y:1596
+#: awkgram.y:1595
msgid "indirect function calls are a gawk extension"
msgstr "indirekte funktionskald er en gawk-udvidelse"
-#: awkgram.y:1609
+#: awkgram.y:1608
#, c-format
msgid "can not use special variable `%s' for indirect function call"
msgstr "kan ikke bruge specialvariabel '%s' til indirekte funktionskald"
-#: awkgram.y:1635
-#, fuzzy, c-format
+#: awkgram.y:1634
+#, c-format
msgid "attempt to use non-function `%s' in function call"
-msgstr "forsøg på at bruge funktionen '%s' som et array"
+msgstr "forsøg på at bruge ikke-funktionen '%s' som et funktionskald"
-#: awkgram.y:1699
+#: awkgram.y:1698
msgid "invalid subscript expression"
msgstr "ugyldigt indeksudtryk"
-#: awkgram.y:2045 awkgram.y:2065 gawkapi.c:206 gawkapi.c:224 msg.c:126
+#: awkgram.y:2044 awkgram.y:2064 gawkapi.c:206 gawkapi.c:224 msg.c:126
msgid "warning: "
msgstr "advarsel: "
-#: awkgram.y:2063 gawkapi.c:192 gawkapi.c:221 msg.c:158
+#: awkgram.y:2062 gawkapi.c:192 gawkapi.c:221 msg.c:158
msgid "fatal: "
msgstr "fatal: "
-#: awkgram.y:2113
+#: awkgram.y:2112
msgid "unexpected newline or end of string"
msgstr "uventet nylinjetegn eller strengafslutning"
-#: awkgram.y:2392 awkgram.y:2468 awkgram.y:2691 debug.c:523 debug.c:539
+#: awkgram.y:2391 awkgram.y:2467 awkgram.y:2690 debug.c:523 debug.c:539
#: debug.c:2812 debug.c:5055
#, c-format
msgid "can't open source file `%s' for reading (%s)"
msgstr "kan ikke åbne kildefilen '%s' for læsning (%s)"
-#: awkgram.y:2393 awkgram.y:2518
-#, fuzzy, c-format
+#: awkgram.y:2392 awkgram.y:2517
+#, c-format
msgid "can't open shared library `%s' for reading (%s)"
-msgstr "kan ikke åbne kildefilen '%s' for læsning (%s)"
+msgstr "kan ikke åbne delt bibliotek '%s' for læsning (%s)"
-#: awkgram.y:2395 awkgram.y:2469 awkgram.y:2519 builtin.c:135 debug.c:5206
+#: awkgram.y:2394 awkgram.y:2468 awkgram.y:2518 builtin.c:135 debug.c:5206
msgid "reason unknown"
msgstr "ukendt årsag"
-#: awkgram.y:2404 awkgram.y:2428
+#: awkgram.y:2403 awkgram.y:2427
#, c-format
msgid "can't include `%s' and use it as a program file"
msgstr ""
-#: awkgram.y:2417
+#: awkgram.y:2416
#, c-format
msgid "already included source file `%s'"
msgstr "allerede inkluderet kildefil '%s'"
-#: awkgram.y:2418
-#, fuzzy, c-format
+#: awkgram.y:2417
+#, c-format
msgid "already loaded shared library `%s'"
-msgstr "allerede inkluderet kildefil '%s'"
+msgstr "allerede indlæst delt bibliotek '%s'"
-#: awkgram.y:2453
+#: awkgram.y:2452
msgid "@include is a gawk extension"
msgstr "@include er en gawk-udvidelse"
-#: awkgram.y:2459
+#: awkgram.y:2458
msgid "empty filename after @include"
msgstr "tomt filnavn efter @include"
-#: awkgram.y:2503
-#, fuzzy
+#: awkgram.y:2502
msgid "@load is a gawk extension"
-msgstr "@include er en gawk-udvidelse"
+msgstr "@load er en gawk-udvidelse"
-#: awkgram.y:2509
-#, fuzzy
+#: awkgram.y:2508
msgid "empty filename after @load"
-msgstr "tomt filnavn efter @include"
+msgstr "tomt filnavn efter @load"
-#: awkgram.y:2643
+#: awkgram.y:2642
msgid "empty program text on command line"
msgstr "tom programtekst på kommandolinjen"
-#: awkgram.y:2758
+#: awkgram.y:2757
#, c-format
msgid "can't read sourcefile `%s' (%s)"
msgstr "kan ikke læse kildefilen '%s' (%s)"
-#: awkgram.y:2769
+#: awkgram.y:2768
#, c-format
msgid "source file `%s' is empty"
msgstr "kildefilen '%s' er tom"
-#: awkgram.y:2828
+#: awkgram.y:2827
#, c-format
msgid "PEBKAC error: invalid character '\\%03o' in source code"
msgstr ""
-#: awkgram.y:2959
+#: awkgram.y:2958
msgid "source file does not end in newline"
msgstr "kildefilen slutter ikke med en ny linje"
-#: awkgram.y:3062
+#: awkgram.y:3061
msgid "unterminated regexp ends with `\\' at end of file"
msgstr "uafsluttet regulært udtryk slutter med '\\' i slutningen af filen"
-#: awkgram.y:3089
+#: awkgram.y:3088
#, c-format
msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "%s: %d: regex-ændringstegn '/.../%c' fra tawk virker ikke i gawk"
-#: awkgram.y:3093
+#: awkgram.y:3092
#, c-format
msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
msgstr "regex-ændringstegn '/.../%c' fra tawk virker ikke i gawk"
-#: awkgram.y:3100
+#: awkgram.y:3099
msgid "unterminated regexp"
msgstr "uafsluttet regulært udtryk"
-#: awkgram.y:3104
+#: awkgram.y:3103
msgid "unterminated regexp at end of file"
msgstr "uafsluttet regulært udtryk i slutningen af filen"
-#: awkgram.y:3162
+#: awkgram.y:3161
msgid "use of `\\ #...' line continuation is not portable"
msgstr "brug af '\\ #...' for linjefortsættelse er ikke portabelt"
-#: awkgram.y:3178
+#: awkgram.y:3177
msgid "backslash not last character on line"
msgstr "sidste tegn på linjen er ikke en omvendt skråstreg"
-#: awkgram.y:3239
+#: awkgram.y:3238
msgid "POSIX does not allow operator `**='"
msgstr "POSIX tillader ikke operatoren '**='"
-#: awkgram.y:3241
+#: awkgram.y:3240
msgid "old awk does not support operator `**='"
msgstr "gamle versioner af awk understøtter ikke operatoren '**='"
-#: awkgram.y:3250
+#: awkgram.y:3249
msgid "POSIX does not allow operator `**'"
msgstr "POSIX tillader ikke operatoren '**'"
-#: awkgram.y:3252
+#: awkgram.y:3251
msgid "old awk does not support operator `**'"
msgstr "gamle versioner af awk understøtter ikke operatoren '**'"
-#: awkgram.y:3287
+#: awkgram.y:3286
msgid "operator `^=' is not supported in old awk"
msgstr "operatoren '^=' understøttes ikke i gamle versioner af awk"
-#: awkgram.y:3295
+#: awkgram.y:3294
msgid "operator `^' is not supported in old awk"
msgstr "operatoren '^' understøttes ikke i gamle versioner af awk"
-#: awkgram.y:3392 awkgram.y:3410 command.y:1180
+#: awkgram.y:3391 awkgram.y:3409 command.y:1180
msgid "unterminated string"
msgstr "uafsluttet streng"
-#: awkgram.y:3631
+#: awkgram.y:3630
#, c-format
msgid "invalid char '%c' in expression"
msgstr "ugyldigt tegn '%c' i udtryk"
-#: awkgram.y:3678
+#: awkgram.y:3677
#, c-format
msgid "`%s' is a gawk extension"
msgstr "'%s' er en gawk-udvidelse"
-#: awkgram.y:3683
+#: awkgram.y:3682
#, c-format
msgid "POSIX does not allow `%s'"
msgstr "POSIX tillader ikke '%s'"
-#: awkgram.y:3691
+#: awkgram.y:3690
#, c-format
msgid "`%s' is not supported in old awk"
msgstr "'%s' understøttes ikke i gamle versioner af awk"
-#: awkgram.y:3781
+#: awkgram.y:3780
msgid "`goto' considered harmful!\n"
msgstr "'goto' anses for skadelig!\n"
-#: awkgram.y:3815
+#: awkgram.y:3814
#, c-format
msgid "%d is invalid as number of arguments for %s"
msgstr "%d er et ugyldigt antal argumenter for %s"
-#: awkgram.y:3850
+#: awkgram.y:3849
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
-msgstr ""
-"%s: bogstavelig streng som sidste argument til erstatning har ingen effekt"
+msgstr "%s: bogstavelig streng som sidste argument til erstatning har ingen effekt"
-#: awkgram.y:3855
+#: awkgram.y:3854
#, c-format
msgid "%s third parameter is not a changeable object"
msgstr "%s: tredje argument er ikke et ændringsbart objekt"
-#: awkgram.y:3938 awkgram.y:3941
+#: awkgram.y:3937 awkgram.y:3940
msgid "match: third argument is a gawk extension"
msgstr "match: tredje argument er en gawk-udvidelse"
-#: awkgram.y:3995 awkgram.y:3998
+#: awkgram.y:3994 awkgram.y:3997
msgid "close: second argument is a gawk extension"
msgstr "close: andet argument er en gawk-udvidelse"
-#: awkgram.y:4010
+#: awkgram.y:4009
msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
-msgstr ""
-"brug af dcgettext(_\"...\") er forkert: fjern det indledende "
-"understregningstegn"
+msgstr "brug af dcgettext(_\"...\") er forkert: fjern det indledende understregningstegn"
-#: awkgram.y:4025
+#: awkgram.y:4024
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
-msgstr ""
-"brug af dcgettext(_\"...\") er forkert: fjern det indledende "
-"understregningstegn"
+msgstr "brug af dcgettext(_\"...\") er forkert: fjern det indledende understregningstegn"
-#: awkgram.y:4044
+#: awkgram.y:4043
#, fuzzy
+#| msgid "index: received non-string second argument"
msgid "index: regexp constant as second argument is not allowed"
msgstr "indeks: andet argument er ikke en streng"
-#: awkgram.y:4097
+#: awkgram.y:4096
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "funktionen '%s': parameteren '%s' overskygger en global variabel"
-#: awkgram.y:4154 debug.c:4041 debug.c:4084 debug.c:5204
+#: awkgram.y:4153 debug.c:4041 debug.c:4084 debug.c:5204
#, c-format
msgid "could not open `%s' for writing (%s)"
msgstr "kunne ikke åbne '%s' for skrivning (%s)"
-#: awkgram.y:4155
+#: awkgram.y:4154
msgid "sending variable list to standard error"
msgstr "sender variabelliste til standard fejl"
-#: awkgram.y:4163
+#: awkgram.y:4162
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: lukning mislykkedes (%s)"
-#: awkgram.y:4188
+#: awkgram.y:4187
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() kaldt to gange!"
-#: awkgram.y:4196
+#: awkgram.y:4195
msgid "there were shadowed variables."
msgstr "der var skyggede variable."
-#: awkgram.y:4267
+#: awkgram.y:4266
#, c-format
msgid "function name `%s' previously defined"
msgstr "funktionsnavnet '%s' er allerede defineret"
-#: awkgram.y:4313
+#: awkgram.y:4312
#, c-format
msgid "function `%s': can't use function name as parameter name"
msgstr "funktionen '%s': kan ikke bruge funktionsnavn som parameternavn"
-#: awkgram.y:4316
+#: awkgram.y:4315
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
-msgstr ""
-"funktionen '%s': kan ikke bruge specialvariabel '%s' som en "
-"funktionsparameter"
+msgstr "funktionen '%s': kan ikke bruge specialvariabel '%s' som en funktionsparameter"
-#: awkgram.y:4324
+#: awkgram.y:4323
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "funktionen '%s': parameter %d, '%s', er samme som parameter %d"
-#: awkgram.y:4411 awkgram.y:4417
+#: awkgram.y:4410 awkgram.y:4416
#, c-format
msgid "function `%s' called but never defined"
msgstr "funktionen '%s' kaldt, men aldrig defineret"
-#: awkgram.y:4421
+#: awkgram.y:4420
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "funktionen '%s' defineret, men aldrig kaldt direkte"
-#: awkgram.y:4453
+#: awkgram.y:4452
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr "konstant regulært udtryk for parameter %d giver en boolesk værdi"
-#: awkgram.y:4468
+#: awkgram.y:4467
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -520,22 +503,22 @@ msgstr ""
"funktionen '%s' kaldt med blanktegn mellem navnet og '(',\n"
"eller brugt som en variabel eller et array"
-#: awkgram.y:4674
+#: awkgram.y:4673
msgid "division by zero attempted"
msgstr "forsøgte at dividere med nul"
-#: awkgram.y:4683
+#: awkgram.y:4682
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "forsøgte at dividere med nul i '%%'"
-#: awkgram.y:5003
-msgid ""
-"cannot assign a value to the result of a field post-increment expression"
+#: awkgram.y:5002
+msgid "cannot assign a value to the result of a field post-increment expression"
msgstr ""
-#: awkgram.y:5006
+#: awkgram.y:5005
#, fuzzy, c-format
+#| msgid "%d is invalid as number of arguments for %s"
msgid "invalid target of assignment (opcode %s)"
msgstr "%d er et ugyldigt antal argumenter for %s"
@@ -560,8 +543,7 @@ msgstr "exp: argumentet %g er uden for det tilladte område"
#: builtin.c:229
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
-msgstr ""
-"fflush: kan ikke rense: datakanalen '%s' åbnet for læsning, ikke skrivning"
+msgstr "fflush: kan ikke rense: datakanalen '%s' åbnet for læsning, ikke skrivning"
#: builtin.c:232
#, c-format
@@ -644,8 +626,7 @@ msgstr "fatal: '$' tillades ikke efter et punktum i formatet"
#: builtin.c:921
msgid "fatal: no `$' supplied for positional field width or precision"
-msgstr ""
-"fatal: intet '$' angivet for bredde eller præcision af positionsangivet felt"
+msgstr "fatal: intet '$' angivet for bredde eller præcision af positionsangivet felt"
#: builtin.c:991
msgid "`l' is meaningless in awk formats; ignored"
@@ -672,14 +653,14 @@ msgid "fatal: `h' is not permitted in POSIX awk formats"
msgstr "fatal: 'h' tillades ikke i POSIX awk-formater"
#: builtin.c:1055
-#, fuzzy, c-format
+#, c-format
msgid "[s]printf: value %g is too big for %%c format"
-msgstr "[s]printf: værdi %g er uden for område for '%%%c'-format"
+msgstr "[s]printf: værdi %g er for stor for %%c-format"
#: builtin.c:1068
-#, fuzzy, c-format
+#, c-format
msgid "[s]printf: value %g is not a valid wide character"
-msgstr "[s]printf: værdi %g er uden for område for '%%%c'-format"
+msgstr "[s]printf: værdi %g er ikke et gyldigt bredt tegn"
#: builtin.c:1454
#, c-format
@@ -689,8 +670,7 @@ msgstr "[s]printf: værdi %g er uden for område for '%%%c'-format"
#: builtin.c:1552
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
-msgstr ""
-"ignorerer ukendt formatspecificeringstegn '%c': intet argument konverteret"
+msgstr "ignorerer ukendt formatspecificeringstegn '%c': intet argument konverteret"
#: builtin.c:1557
msgid "fatal: not enough arguments to satisfy format string"
@@ -709,9 +689,8 @@ msgid "too many arguments supplied for format string"
msgstr "for mange argumenter til formatstrengen"
#: builtin.c:1625
-#, fuzzy
msgid "sprintf: no arguments"
-msgstr "printf: ingen argumenter"
+msgstr "sprintf: ingen argumenter"
#: builtin.c:1648 builtin.c:1659
msgid "printf: no arguments"
@@ -767,203 +746,211 @@ msgstr "substr: startindeks %g er forbi slutningen på strengen"
#: builtin.c:1820
#, c-format
-msgid ""
-"substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr ""
-"substr: længden %g ved startindeks %g overskrider længden af første argument "
-"(%lu)"
+msgid "substr: length %g at start index %g exceeds length of first argument (%lu)"
+msgstr "substr: længden %g ved startindeks %g overskrider længden af første argument (%lu)"
-#: builtin.c:1890
+#: builtin.c:1892
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
msgstr "strftime: formatværdi i PROCINFO[\"strftime\"] har numerisk type"
-#: builtin.c:1913
+#: builtin.c:1915
msgid "strftime: received non-numeric second argument"
msgstr "strftime: fik et ikke-numerisk andet argument"
-#: builtin.c:1917
+#: builtin.c:1924
msgid "strftime: second argument less than 0 or too big for time_t"
msgstr "strftime: andet argument mindre end 0 eller for stort til time_t"
-#: builtin.c:1924
+#: builtin.c:1928
+msgid "strftime: second argument out of range for time_t"
+msgstr "strftime: andet argument uden for område for time_t"
+
+#: builtin.c:1935
msgid "strftime: received non-string first argument"
msgstr "strftime: fik et første argument som ikke er en streng"
-#: builtin.c:1931
+#: builtin.c:1942
msgid "strftime: received empty format string"
msgstr "strftime: fik en tom formatstreng"
-#: builtin.c:1997
+#: builtin.c:2011
msgid "mktime: received non-string argument"
msgstr "mktime: fik et argument som ikke er en streng"
-#: builtin.c:2014
+#: builtin.c:2028
msgid "mktime: at least one of the values is out of the default range"
msgstr "mktime: mindst én af værdierne er udenfor standardområdet"
-#: builtin.c:2049
+#: builtin.c:2063
msgid "'system' function not allowed in sandbox mode"
msgstr "'system'-funktion ikke tilladt i sandkasse-tilstand"
-#: builtin.c:2054
+#: builtin.c:2068
msgid "system: received non-string argument"
msgstr "system: fik et argument som ikke er en streng"
-#: builtin.c:2174
+#: builtin.c:2188
#, c-format
msgid "reference to uninitialized field `$%d'"
msgstr "reference til ikke-initieret felt '$%d'"
-#: builtin.c:2259
+#: builtin.c:2273
msgid "tolower: received non-string argument"
msgstr "tolower: fik et argument som ikke er en streng"
-#: builtin.c:2290
+#: builtin.c:2304
msgid "toupper: received non-string argument"
msgstr "toupper: fik et argument som ikke er en streng"
-#: builtin.c:2323 mpfr.c:679
+#: builtin.c:2337 mpfr.c:679
msgid "atan2: received non-numeric first argument"
msgstr "atan2: fik et ikke-numerisk første argument"
-#: builtin.c:2325 mpfr.c:681
+#: builtin.c:2339 mpfr.c:681
msgid "atan2: received non-numeric second argument"
msgstr "atan2: fik et ikke-numerisk andet argument"
-#: builtin.c:2344
+#: builtin.c:2358
msgid "sin: received non-numeric argument"
msgstr "sin: fik et ikke-numerisk argument"
-#: builtin.c:2360
+#: builtin.c:2374
msgid "cos: received non-numeric argument"
msgstr "cos: fik et ikke-numerisk argument"
-#: builtin.c:2413 mpfr.c:1176
+#: builtin.c:2427 mpfr.c:1176
msgid "srand: received non-numeric argument"
msgstr "srand: fik et ikke-numerisk argument"
-#: builtin.c:2444
+#: builtin.c:2458
msgid "match: third argument is not an array"
msgstr "match: tredje argument er ikke et array"
-#: builtin.c:2705
-#, fuzzy, c-format
+#: builtin.c:2719
+#, c-format
msgid "gensub: third argument `%.*s' treated as 1"
-msgstr "gensub: 0 i tredje argument behandlet som 1"
+msgstr "gensub: tredje argument '%.*s' behandlet som 1"
-#: builtin.c:2720
-#, fuzzy, c-format
+#: builtin.c:2734
+#, c-format
msgid "gensub: third argument %g treated as 1"
-msgstr "gensub: 0 i tredje argument behandlet som 1"
+msgstr "gensub: tredje argument %g behandlet som 1"
-#: builtin.c:3020
+#: builtin.c:3032
+#, c-format
+msgid "%s: can be called indirectly only with two arguments"
+msgstr "%s: kan kun kaldes indirekte med to argumenter"
+
+#: builtin.c:3122
+#, c-format
+msgid "indirect call to %s requires at least two arguments"
+msgstr "indirekte kald til %s kræver mindst to argumenter"
+
+#: builtin.c:3174
msgid "lshift: received non-numeric first argument"
msgstr "lshift: fik et ikke-numerisk første argument"
-#: builtin.c:3022
+#: builtin.c:3176
msgid "lshift: received non-numeric second argument"
msgstr "lshift: fik et ikke-numerisk andet argument"
-#: builtin.c:3028
-#, fuzzy, c-format
+#: builtin.c:3182
+#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
-msgstr "lshift(%lf, %lf): negative værdier vil give mærkelige resultater"
+msgstr "lshift(%f, %f): negative værdier vil give mærkelige resultater"
-#: builtin.c:3030
-#, fuzzy, c-format
+#: builtin.c:3184
+#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
-msgstr "lshift(%lf, %lf): kommatalsværdier vil blive trunkeret"
+msgstr "lshift(%f, %f): kommatalsværdier vil blive trunkeret"
-#: builtin.c:3032
-#, fuzzy, c-format
+#: builtin.c:3186
+#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
-msgstr ""
-"lshift(%lf, %lf): for store skifteværdier vil give mærkelige resultater"
+msgstr "lshift(%f, %f): for stor skifteværdi vil give mærkelige resultater"
-#: builtin.c:3057
+#: builtin.c:3211
msgid "rshift: received non-numeric first argument"
msgstr "rshift: fik et ikke-numerisk første argument"
-#: builtin.c:3059
+#: builtin.c:3213
msgid "rshift: received non-numeric second argument"
msgstr "rshift: fik et ikke-numerisk andet argument"
-#: builtin.c:3065
-#, fuzzy, c-format
+#: builtin.c:3219
+#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
-msgstr "rshift(%lf, %lf): negative værdier vil give mærkelige resultater"
+msgstr "rshift(%f, %f): negative værdier vil give mærkelige resultater"
-#: builtin.c:3067
-#, fuzzy, c-format
+#: builtin.c:3221
+#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
-msgstr "rshift(%lf, %lf): kommatalsværdier vil blive trunkeret"
+msgstr "rshift(%f, %f): kommatalsværdier vil blive trunkeret"
-#: builtin.c:3069
-#, fuzzy, c-format
+#: builtin.c:3223
+#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
-msgstr ""
-"rshift(%lf, %lf): for store skifteværdier vil give mærkelige resultater"
+msgstr "rshift(%f, %f): for stor skifteværdi vil give mærkelige resultater"
-#: builtin.c:3094 mpfr.c:988
-#, fuzzy
+#: builtin.c:3248 mpfr.c:988
msgid "and: called with less than two arguments"
-msgstr "sqrt: kaldt med negativt argument %g"
+msgstr "and: kaldt med mindre end to argumenter"
-#: builtin.c:3099
-#, fuzzy, c-format
+#: builtin.c:3253
+#, c-format
msgid "and: argument %d is non-numeric"
-msgstr "exp: argumentet %g er uden for det tilladte område"
+msgstr "and: argumentet %d er ikke-numerisk"
-#: builtin.c:3103
+#: builtin.c:3257
#, fuzzy, c-format
+#| msgid "and(%lf, %lf): negative values will give strange results"
msgid "and: argument %d negative value %g will give strange results"
msgstr "and(%lf, %lf): negative værdier vil give mærkelige resultater"
-#: builtin.c:3126 mpfr.c:1020
-#, fuzzy
+#: builtin.c:3280 mpfr.c:1020
msgid "or: called with less than two arguments"
-msgstr "sqrt: kaldt med negativt argument %g"
+msgstr "or: kaldt med mindre end to argumenter"
-#: builtin.c:3131
-#, fuzzy, c-format
+#: builtin.c:3285
+#, c-format
msgid "or: argument %d is non-numeric"
-msgstr "exp: argumentet %g er uden for det tilladte område"
+msgstr "or: argumentet %d er ikke-numerisk"
-#: builtin.c:3135
-#, fuzzy, c-format
+#: builtin.c:3289
+#, c-format
msgid "or: argument %d negative value %g will give strange results"
-msgstr "compl(%lf): negative værdier vil give mærkelige resultater"
+msgstr "or: argument %d negativ værdi %g vil give mærkelige resultater"
-#: builtin.c:3157 mpfr.c:1051
-#, fuzzy
+#: builtin.c:3311 mpfr.c:1051
msgid "xor: called with less than two arguments"
-msgstr "sqrt: kaldt med negativt argument %g"
+msgstr "zor: kaldt med mindre end to argumenter"
-#: builtin.c:3163
-#, fuzzy, c-format
+#: builtin.c:3317
+#, c-format
msgid "xor: argument %d is non-numeric"
-msgstr "exp: argumentet %g er uden for det tilladte område"
+msgstr "xor: argumentet %d er ikke-numerisk"
-#: builtin.c:3167
-#, fuzzy, c-format
+#: builtin.c:3321
+#, c-format
msgid "xor: argument %d negative value %g will give strange results"
-msgstr "xor(%lf, %lf): negative værdier vil give mærkelige resultater"
+msgstr "xor: argument %d negativ værdi %g vil give mærkelige resultater"
-#: builtin.c:3192 mpfr.c:807
+#: builtin.c:3346 mpfr.c:807
msgid "compl: received non-numeric argument"
msgstr "compl: fik et ikke-numerisk argument"
-#: builtin.c:3198
-#, fuzzy, c-format
+#: builtin.c:3352
+#, c-format
msgid "compl(%f): negative value will give strange results"
-msgstr "compl(%lf): negative værdier vil give mærkelige resultater"
+msgstr "compl(%f): negativ værdi vil give mærkelige resultater"
-#: builtin.c:3200
+#: builtin.c:3354
#, fuzzy, c-format
+#| msgid "compl(%lf): fractional value will be truncated"
msgid "compl(%f): fractional value will be truncated"
msgstr "compl(%lf): kommatalsværdier vil blive trunkeret"
-#: builtin.c:3369
+#: builtin.c:3523
#, c-format
msgid "dcgettext: `%s' is not a valid locale category"
msgstr "dcgettext: '%s' er ikke en gyldig lokalitetskategori"
@@ -975,13 +962,14 @@ msgstr ""
#: command.y:289
#, fuzzy, c-format
+#| msgid "Invalid range end"
msgid "invalid frame number: %d"
msgstr "Ugyldig intervalslutning"
#: command.y:295
-#, fuzzy, c-format
+#, c-format
msgid "info: invalid option - \"%s\""
-msgstr "%s: ugyldigt flag - '%c'\n"
+msgstr "info: ugyldigt flag - '%s'"
#: command.y:321
#, c-format
@@ -1024,18 +1012,17 @@ msgid "`silent' valid only in command `commands'"
msgstr ""
#: command.y:373
-#, fuzzy, c-format
+#, c-format
msgid "trace: invalid option - \"%s\""
-msgstr "%s: ugyldigt flag - '%c'\n"
+msgstr "trace: ugyldigt flag - '%s'"
#: command.y:387
msgid "condition: invalid breakpoint/watchpoint number"
msgstr ""
#: command.y:449
-#, fuzzy
msgid "argument not a string"
-msgstr "exp: argumentet %g er uden for det tilladte område"
+msgstr "argument er ikke en streng"
#: command.y:459 command.y:464
#, c-format
@@ -1049,16 +1036,19 @@ msgstr ""
#: command.y:531
#, fuzzy, c-format
+#| msgid "%s: invalid option -- '%c'\n"
msgid "enable: invalid option - \"%s\""
msgstr "%s: ugyldigt flag - '%c'\n"
#: command.y:597
#, fuzzy, c-format
+#| msgid "Invalid range end"
msgid "invalid range specification: %d - %d"
msgstr "Ugyldig intervalslutning"
#: command.y:659
#, fuzzy
+#| msgid "unknown value for field spec: %d\n"
msgid "non-numeric value for field number"
msgstr "ukendt værdi for felt-spec: %d\n"
@@ -1071,14 +1061,11 @@ msgid "non-zero integer value"
msgstr ""
#: command.y:817
-msgid ""
-"backtrace [N] - print trace of all or N innermost (outermost if N < 0) "
-"frames."
+msgid "backtrace [N] - print trace of all or N innermost (outermost if N < 0) frames."
msgstr ""
#: command.y:819
-msgid ""
-"break [[filename:]N|function] - set breakpoint at the specified location."
+msgid "break [[filename:]N|function] - set breakpoint at the specified location."
msgstr ""
#: command.y:821
@@ -1086,9 +1073,7 @@ msgid "clear [[filename:]N|function] - delete breakpoints previously set."
msgstr ""
#: command.y:823
-msgid ""
-"commands [num] - starts a list of commands to be executed at a "
-"breakpoint(watchpoint) hit."
+msgid "commands [num] - starts a list of commands to be executed at a breakpoint(watchpoint) hit."
msgstr ""
#: command.y:825
@@ -1148,9 +1133,7 @@ msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT."
msgstr ""
#: command.y:853
-msgid ""
-"info topic - source|sources|variables|functions|break|frame|args|locals|"
-"display|watch."
+msgid "info topic - source|sources|variables|functions|break|frame|args|locals|display|watch."
msgstr ""
#: command.y:855
@@ -1162,8 +1145,7 @@ msgid "next [COUNT] - step program, proceeding through subroutine calls."
msgstr ""
#: command.y:859
-msgid ""
-"nexti [COUNT] - step one instruction, but proceed through subroutine calls."
+msgid "nexti [COUNT] - step one instruction, but proceed through subroutine calls."
msgstr ""
#: command.y:861
@@ -1199,8 +1181,7 @@ msgid "set var = value - assign value to a scalar variable."
msgstr ""
#: command.y:879
-msgid ""
-"silent - suspends usual message when stopped at a breakpoint/watchpoint."
+msgid "silent - suspends usual message when stopped at a breakpoint/watchpoint."
msgstr ""
#: command.y:881
@@ -1228,9 +1209,7 @@ msgid "undisplay [N] - remove variable(s) from automatic display list."
msgstr ""
#: command.y:893
-msgid ""
-"until [[filename:]N|function] - execute until program reaches a different "
-"line or line N within current frame."
+msgid "until [[filename:]N|function] - execute until program reaches a different line or line N within current frame."
msgstr ""
#: command.y:895
@@ -1246,9 +1225,7 @@ msgid "watch var - set a watchpoint for a variable."
msgstr ""
#: command.y:901
-msgid ""
-"where [N] - (same as backtrace) print trace of all or N innermost (outermost "
-"if N < 0) frames."
+msgid "where [N] - (same as backtrace) print trace of all or N innermost (outermost if N < 0) frames."
msgstr ""
#: command.y:1013 debug.c:401 msg.c:135
@@ -1258,16 +1235,19 @@ msgstr "fejl: "
#: command.y:1053
#, fuzzy, c-format
+#| msgid "can't redirect from `%s' (%s)"
msgid "can't read command (%s)\n"
msgstr "kan ikke omdirigere fra '%s' (%s)"
#: command.y:1067
#, fuzzy, c-format
+#| msgid "can't redirect from `%s' (%s)"
msgid "can't read command (%s)"
msgstr "kan ikke omdirigere fra '%s' (%s)"
#: command.y:1118
#, fuzzy
+#| msgid "Invalid character class name"
msgid "invalid character in command"
msgstr "Ugyldigt tegnklassenavn"
@@ -1283,6 +1263,7 @@ msgstr ""
#: command.y:1286
#, fuzzy
+#| msgid "Invalid collation character"
msgid "invalid character"
msgstr "Ugyldigt sorteringstegn"
@@ -1325,11 +1306,13 @@ msgstr ""
#: debug.c:448 debug.c:606
#, fuzzy, c-format
+#| msgid "can't read sourcefile `%s' (%s)"
msgid "can't read source file `%s' (%s)"
msgstr "kan ikke læse kildefilen '%s' (%s)"
#: debug.c:453
#, fuzzy, c-format
+#| msgid "source file `%s' is empty"
msgid "source file `%s' is empty.\n"
msgstr "kildefilen '%s' er tom"
@@ -1339,6 +1322,7 @@ msgstr ""
#: debug.c:505
#, fuzzy, c-format
+#| msgid "can't read sourcefile `%s' (%s)"
msgid "cannot find source file named `%s' (%s)"
msgstr "kan ikke læse kildefilen '%s' (%s)"
@@ -1354,6 +1338,7 @@ msgstr ""
#: debug.c:611
#, fuzzy, c-format
+#| msgid "unexpected newline or end of string"
msgid "unexpected eof while reading file `%s', line %d"
msgstr "uventet nylinjetegn eller strengafslutning"
@@ -1364,6 +1349,7 @@ msgstr ""
#: debug.c:732
#, fuzzy, c-format
+#| msgid "already included source file `%s'"
msgid "Current source file: %s\n"
msgstr "allerede inkluderet kildefil '%s'"
@@ -1424,6 +1410,7 @@ msgstr ""
#: debug.c:848
#, fuzzy
+#| msgid "printf: no arguments"
msgid "No arguments.\n"
msgstr "printf: ingen argumenter"
@@ -1457,26 +1444,31 @@ msgstr ""
#: debug.c:1029
#, fuzzy, c-format
+#| msgid "`exit' cannot be called in the current context"
msgid "no symbol `%s' in current context\n"
msgstr "'exit' kan ikke kaldes i den aktuelle kontekst"
#: debug.c:1041 debug.c:1427
#, fuzzy, c-format
+#| msgid "`%s' is not a legal variable name"
msgid "`%s' is not an array\n"
msgstr "'%s' er ikke et gyldigt variabelnavn"
#: debug.c:1055
#, fuzzy, c-format
+#| msgid "reference to uninitialized field `$%d'"
msgid "$%ld = uninitialized field\n"
msgstr "reference til ikke-initieret felt '$%d'"
#: debug.c:1076
#, fuzzy, c-format
+#| msgid "data file `%s' is empty"
msgid "array `%s' is empty\n"
msgstr "datafilen '%s' er tom"
#: debug.c:1119 debug.c:1171
#, fuzzy, c-format
+#| msgid "delete: index `%s' not in array `%s'"
msgid "[\"%s\"] not in array `%s'\n"
msgstr "delete: indeks '%s' findes ikke i array '%s'"
@@ -1487,21 +1479,25 @@ msgstr ""
#: debug.c:1236 debug.c:4964
#, fuzzy, c-format
+#| msgid "`%s' is not a legal variable name"
msgid "`%s' is not a scalar variable"
msgstr "'%s' er ikke et gyldigt variabelnavn"
#: debug.c:1258 debug.c:4994
#, fuzzy, c-format
+#| msgid "attempt to use array `%s[\"%.*s\"]' in a scalar context"
msgid "attempt to use array `%s[\"%s\"]' in a scalar context"
msgstr "forsøg på at bruge array '%s[\"%.*s\"]' i skalarsammenhæng"
#: debug.c:1280 debug.c:5005
#, fuzzy, c-format
+#| msgid "attempt to use scalar `%s[\"%.*s\"]' as an array"
msgid "attempt to use scalar `%s[\"%s\"]' as array"
msgstr "forsøg på at bruge skalaren '%s[\"%.*s\"]' som array"
#: debug.c:1423
#, fuzzy, c-format
+#| msgid "`%s' is invalid as a function name"
msgid "`%s' is a function"
msgstr "'%s' er ugyldigt som funktionsnavn"
@@ -1522,11 +1518,13 @@ msgstr ""
#: debug.c:1528
#, fuzzy, c-format
+#| msgid "delete: index `%s' not in array `%s'"
msgid "%d: [\"%s\"] not in array `%s'\n"
msgstr "delete: indeks '%s' findes ikke i array '%s'"
#: debug.c:1767
#, fuzzy
+#| msgid "attempt to use a scalar value as array"
msgid "attempt to use scalar value as array"
msgstr "forsøg på at bruge en skalar som array"
@@ -1562,6 +1560,7 @@ msgstr ""
#: debug.c:2017
#, fuzzy
+#| msgid "Invalid range end"
msgid "invalid frame number"
msgstr "Ugyldig intervalslutning"
@@ -1597,6 +1596,7 @@ msgstr ""
#: debug.c:2369 debug.c:2492 debug.c:3350
#, fuzzy, c-format
+#| msgid "exp: argument %g is out of range"
msgid "line number %d in file `%s' out of range"
msgstr "exp: argumentet %g er uden for det tilladte område"
@@ -1632,6 +1632,7 @@ msgstr ""
#: debug.c:2541
#, fuzzy, c-format
+#| msgid "error reading input file `%s': %s"
msgid "No breakpoint at file `%s', line #%d\n"
msgstr "fejl ved læsning af inddatafilen '%s': %s"
@@ -1737,6 +1738,7 @@ msgstr ""
#: debug.c:3377
#, fuzzy, c-format
+#| msgid "already included source file `%s'"
msgid "invalid source line %d in file `%s'"
msgstr "allerede inkluderet kildefil '%s'"
@@ -1747,8 +1749,9 @@ msgstr ""
#: debug.c:3424
#, fuzzy, c-format
+#| msgid "adump: argument not an array"
msgid "element not in array\n"
-msgstr "delete: indeks '%s' findes ikke i array '%s'"
+msgstr "adump: argument er ikke et array"
#: debug.c:3424
#, c-format
@@ -1780,6 +1783,7 @@ msgstr ""
#: debug.c:5001
#, fuzzy, c-format
+#| msgid "delete: index `%s' not in array `%s'"
msgid "[\"%s\"] not in array `%s'"
msgstr "delete: indeks '%s' findes ikke i array '%s'"
@@ -1794,16 +1798,19 @@ msgstr ""
#: debug.c:5381
#, fuzzy, c-format
+#| msgid "`exit' cannot be called in the current context"
msgid "`%s' not allowed in current context; statement ignored"
msgstr "'exit' kan ikke kaldes i den aktuelle kontekst"
#: debug.c:5389
#, fuzzy
+#| msgid "`exit' cannot be called in the current context"
msgid "`return' not allowed in current context; statement ignored"
msgstr "'exit' kan ikke kaldes i den aktuelle kontekst"
#: debug.c:5604
#, fuzzy, c-format
+#| msgid "attempt to use array `%s' in scalar context"
msgid "No symbol `%s' in current context"
msgstr "forsøg på at bruge array '%s' i skalarsammenhæng"
@@ -1814,6 +1821,7 @@ msgstr ""
#: dfa.c:1119
#, fuzzy
+#| msgid "Invalid character class name"
msgid "invalid character class"
msgstr "Ugyldigt tegnklassenavn"
@@ -1827,11 +1835,13 @@ msgstr ""
#: dfa.c:1474
#, fuzzy
+#| msgid "Invalid content of \\{\\}"
msgid "invalid content of \\{\\}"
msgstr "Ugyldigt indhold i \\{\\}"
#: dfa.c:1477
#, fuzzy
+#| msgid "Regular expression too big"
msgid "regular expression too big"
msgstr "Regulært udtryk for stort"
@@ -1952,6 +1962,7 @@ msgstr "udvidelser er ikke tilladt i sandkasse-tilstand"
#: ext.c:68
#, fuzzy
+#| msgid "@include is a gawk extension"
msgid "-l / @load are gawk extensions"
msgstr "@include er en gawk-udvidelse"
@@ -1961,22 +1972,21 @@ msgstr ""
#: ext.c:74
#, fuzzy, c-format
+#| msgid "fatal: extension: cannot open `%s' (%s)\n"
msgid "load_ext: cannot open library `%s' (%s)\n"
msgstr "atalt: extension: kan ikke åbne '%s' (%s)\n"
#: ext.c:80
#, fuzzy, c-format
-msgid ""
-"load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
-msgstr ""
-"fatalt: extension: bibliotek '%s': definer ikke "
-"'plugin_is_GPL_compatible' (%s)\n"
+#| msgid "fatal: extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
+msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
+msgstr "fatalt: extension: bibliotek '%s': definer ikke 'plugin_is_GPL_compatible' (%s)\n"
#: ext.c:86
#, fuzzy, c-format
+#| msgid "fatal: extension: library `%s': cannot call function `%s' (%s)\n"
msgid "load_ext: library `%s': cannot call function `%s' (%s)\n"
-msgstr ""
-"fatalt: extension: bibliotek '%s': kan ikke kalde funktionen '%s' (%s)\n"
+msgstr "fatalt: extension: bibliotek '%s': kan ikke kalde funktionen '%s' (%s)\n"
#: ext.c:90
#, c-format
@@ -1993,45 +2003,49 @@ msgstr ""
#: ext.c:156
#, fuzzy, c-format
+#| msgid "fatal: extension: cannot open `%s' (%s)\n"
msgid "extension: cannot open library `%s' (%s)"
msgstr "atalt: extension: kan ikke åbne '%s' (%s)\n"
#: ext.c:162
#, fuzzy, c-format
-msgid ""
-"extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-msgstr ""
-"fatalt: extension: bibliotek '%s': definer ikke "
-"'plugin_is_GPL_compatible' (%s)\n"
+#| msgid "fatal: extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
+msgid "extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
+msgstr "fatalt: extension: bibliotek '%s': definer ikke 'plugin_is_GPL_compatible' (%s)\n"
#: ext.c:166
#, fuzzy, c-format
+#| msgid "fatal: extension: library `%s': cannot call function `%s' (%s)\n"
msgid "extension: library `%s': cannot call function `%s' (%s)"
-msgstr ""
-"fatalt: extension: bibliotek '%s': kan ikke kalde funktionen '%s' (%s)\n"
+msgstr "fatalt: extension: bibliotek '%s': kan ikke kalde funktionen '%s' (%s)\n"
#: ext.c:197
#, fuzzy
+#| msgid "extension: missing function name"
msgid "make_builtin: missing function name"
msgstr "extension: mangler funktionsnavn"
#: ext.c:212
#, fuzzy, c-format
+#| msgid "extension: can't redefine function `%s'"
msgid "make_builtin: can't redefine function `%s'"
msgstr "extension: kan ikke omdefinere funktion '%s'"
#: ext.c:216
#, fuzzy, c-format
+#| msgid "extension: function `%s' already defined"
msgid "make_builtin: function `%s' already defined"
msgstr "extension: funktionen '%s' er allerede defineret"
#: ext.c:220
#, fuzzy, c-format
+#| msgid "extension: function name `%s' previously defined"
msgid "make_builtin: function name `%s' previously defined"
msgstr "extension: funktionsnavnet '%s' er defineret tidligere"
#: ext.c:222
#, fuzzy, c-format
+#| msgid "extension: can't use gawk built-in `%s' as function name"
msgid "make_builtin: can't use gawk built-in `%s' as function name"
msgstr "extension: kan ikke bruge gawk's indbyggede '%s' som funktionsnavn"
@@ -2041,32 +2055,31 @@ msgid "make_builtin: negative argument count for function `%s'"
msgstr "make_builtin: negativt argumentantal for funktion '%s'"
#: ext.c:252
-#, fuzzy
msgid "extension: missing function name"
msgstr "extension: mangler funktionsnavn"
#: ext.c:255 ext.c:259
-#, fuzzy, c-format
+#, c-format
msgid "extension: illegal character `%c' in function name `%s'"
msgstr "extension: ugyldigt tegn '%c' i funktionsnavn '%s'"
#: ext.c:267
-#, fuzzy, c-format
+#, c-format
msgid "extension: can't redefine function `%s'"
msgstr "extension: kan ikke omdefinere funktion '%s'"
#: ext.c:271
-#, fuzzy, c-format
+#, c-format
msgid "extension: function `%s' already defined"
msgstr "extension: funktionen '%s' er allerede defineret"
#: ext.c:275
-#, fuzzy, c-format
+#, c-format
msgid "extension: function name `%s' previously defined"
-msgstr "funktionsnavnet '%s' er allerede defineret"
+msgstr "extension: funktionsnavnet '%s' er defineret tidligere"
#: ext.c:277
-#, fuzzy, c-format
+#, c-format
msgid "extension: can't use gawk built-in `%s' as function name"
msgstr "extension: kan ikke bruge gawk's indbyggede '%s' som funktionsnavn"
@@ -2083,14 +2096,12 @@ msgstr "funktion '%s': mangler argument nummer %d"
#: ext.c:371
#, c-format
msgid "function `%s': argument #%d: attempt to use scalar as an array"
-msgstr ""
-"funktion '%s': argument nummer %d: forsøg på at bruge skalar som et array"
+msgstr "funktion '%s': argument nummer %d: forsøg på at bruge skalar som et array"
#: ext.c:375
#, c-format
msgid "function `%s': argument #%d: attempt to use array as a scalar"
-msgstr ""
-"funktion '%s': argument nummer %d: forsøg på at bruge array som en skalar"
+msgstr "funktion '%s': argument nummer %d: forsøg på at bruge array som en skalar"
#: ext.c:389
msgid "dynamic loading of library not supported"
@@ -2098,6 +2109,7 @@ msgstr ""
#: extension/filefuncs.c:159
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "chdir: called with incorrect number of arguments, expecting 1"
msgstr "sqrt: kaldt med negativt argument %g"
@@ -2108,21 +2120,24 @@ msgstr ""
#: extension/filefuncs.c:472
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "stat: called with wrong number of arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/filefuncs.c:479
#, fuzzy
+#| msgid "%s: is parameter\n"
msgid "stat: bad parameters"
msgstr "%s: er parameter\n"
#: extension/filefuncs.c:533
-#, fuzzy, c-format
+#, c-format
msgid "fts init: could not create variable %s"
-msgstr "indeks: andet argument er ikke en streng"
+msgstr ""
#: extension/filefuncs.c:554
#, fuzzy
+#| msgid "`%s' is not supported in old awk"
msgid "fts is not supported on this system"
msgstr "'%s' understøttes ikke i gamle versioner af awk"
@@ -2135,9 +2150,8 @@ msgid "fill_stat_element: could not set element"
msgstr ""
#: extension/filefuncs.c:597
-#, fuzzy
msgid "fill_path_element: could not set element"
-msgstr "indeks: andet argument er ikke en streng"
+msgstr ""
#: extension/filefuncs.c:613
msgid "fill_error_element: could not set element"
@@ -2149,34 +2163,36 @@ msgstr ""
#: extension/filefuncs.c:670 extension/filefuncs.c:717
#: extension/filefuncs.c:735
-#, fuzzy
msgid "fts-process: could not set element"
-msgstr "indeks: andet argument er ikke en streng"
+msgstr ""
#: extension/filefuncs.c:784
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "fts: called with incorrect number of arguments, expecting 3"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/filefuncs.c:787
#, fuzzy
+#| msgid "%s: is parameter\n"
msgid "fts: bad first parameter"
msgstr "%s: er parameter\n"
#: extension/filefuncs.c:793
#, fuzzy
+#| msgid "%s: is parameter\n"
msgid "fts: bad second parameter"
msgstr "%s: er parameter\n"
#: extension/filefuncs.c:799
#, fuzzy
+#| msgid "%s: is parameter\n"
msgid "fts: bad third parameter"
msgstr "%s: er parameter\n"
#: extension/filefuncs.c:806
-#, fuzzy
msgid "fts: could not flatten array\n"
-msgstr "'%s' er ikke et gyldigt variabelnavn"
+msgstr ""
#: extension/filefuncs.c:824
msgid "fts: ignoring sneaky FTS_NOSTAT flag. nyah, nyah, nyah."
@@ -2188,21 +2204,25 @@ msgstr ""
#: extension/fnmatch.c:112
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "fnmatch: called with less than three arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/fnmatch.c:115
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "fnmatch: called with more than three arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/fnmatch.c:118
#, fuzzy
+#| msgid "strftime: received non-string first argument"
msgid "fnmatch: could not get first argument"
msgstr "strftime: fik et første argument som ikke er en streng"
#: extension/fnmatch.c:123
#, fuzzy
+#| msgid "index: received non-string second argument"
msgid "fnmatch: could not get second argument"
msgstr "indeks: andet argument er ikke en streng"
@@ -2229,6 +2249,7 @@ msgstr ""
#: extension/fork.c:81
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "fork: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
@@ -2238,16 +2259,19 @@ msgstr ""
#: extension/fork.c:118
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "waitpid: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/fork.c:126
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "wait: called with no arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/fork.c:143
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "wait: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
@@ -2271,13 +2295,14 @@ msgstr ""
#: extension/inplace.c:151
#, fuzzy, c-format
+#| msgid "fatal: extension: cannot open `%s' (%s)\n"
msgid "inplace_begin: Cannot stat `%s' (%s)"
msgstr "atalt: extension: kan ikke åbne '%s' (%s)\n"
#: extension/inplace.c:158
-#, fuzzy, c-format
+#, c-format
msgid "inplace_begin: `%s' is not a regular file"
-msgstr "'%s' er ikke et gyldigt variabelnavn"
+msgstr ""
#: extension/inplace.c:169
#, c-format
@@ -2286,6 +2311,7 @@ msgstr ""
#: extension/inplace.c:181
#, fuzzy, c-format
+#| msgid "%s: close failed (%s)"
msgid "inplace_begin: chmod failed (%s)"
msgstr "%s: lukning mislykkedes (%s)"
@@ -2301,6 +2327,7 @@ msgstr ""
#: extension/inplace.c:194
#, fuzzy, c-format
+#| msgid "%s: close failed (%s)"
msgid "inplace_begin: close(%d) failed (%s)"
msgstr "%s: lukning mislykkedes (%s)"
@@ -2319,6 +2346,7 @@ msgstr ""
#: extension/inplace.c:229
#, fuzzy, c-format
+#| msgid "%s: close failed (%s)"
msgid "inplace_end: close(%d) failed (%s)"
msgstr "%s: lukning mislykkedes (%s)"
@@ -2329,41 +2357,49 @@ msgstr ""
#: extension/inplace.c:246
#, fuzzy, c-format
+#| msgid "pipe flush of `%s' failed (%s)."
msgid "inplace_end: link(`%s', `%s') failed (%s)"
msgstr "datakanalsrensning af '%s' mislykkedes (%s)."
#: extension/inplace.c:256
#, fuzzy, c-format
+#| msgid "close of fd %d (`%s') failed (%s)"
msgid "inplace_end: rename(`%s', `%s') failed (%s)"
msgstr "lukning af fd %d ('%s') mislykkedes (%s)"
#: extension/ordchr.c:69
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "ord: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/ordchr.c:75
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "ord: called with no arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/ordchr.c:77
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "ord: called with inappropriate argument(s)"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/ordchr.c:99
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "chr: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/ordchr.c:109
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "chr: called with no arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/ordchr.c:111
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "chr: called with inappropriate argument(s)"
msgstr "sqrt: kaldt med negativt argument %g"
@@ -2374,11 +2410,13 @@ msgstr ""
#: extension/readfile.c:113
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "readfile: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/readfile.c:137
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "readfile: called with no arguments"
msgstr "sqrt: kaldt med negativt argument %g"
@@ -2388,18 +2426,21 @@ msgstr ""
#: extension/rwarray.c:124 extension/rwarray0.c:109
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "writea: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/rwarray.c:131 extension/rwarray0.c:116
#, fuzzy, c-format
+#| msgid "exp: argument %g is out of range"
msgid "do_writea: argument 0 is not a string\n"
-msgstr "exp: argumentet %g er uden for det tilladte område\n"
+msgstr "exp: argumentet %g er uden for det tilladte område"
#: extension/rwarray.c:137 extension/rwarray0.c:122
#, fuzzy, c-format
+#| msgid "split: fourth argument is not an array"
msgid "do_writea: argument 1 is not an array\n"
-msgstr "split: fjerde argument er ikke et array\n"
+msgstr "split: fjerde argument er ikke et array"
#: extension/rwarray.c:184 extension/rwarray0.c:169
#, c-format
@@ -2413,18 +2454,21 @@ msgstr ""
#: extension/rwarray.c:280 extension/rwarray0.c:265
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "reada: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/rwarray.c:287 extension/rwarray0.c:272
#, fuzzy, c-format
+#| msgid "exp: argument %g is out of range"
msgid "do_reada: argument 0 is not a string\n"
msgstr "exp: argumentet %g er uden for det tilladte område"
#: extension/rwarray.c:293 extension/rwarray0.c:278
#, fuzzy, c-format
+#| msgid "adump: argument not an array"
msgid "do_reada: argument 1 is not an array\n"
-msgstr "match: tredje argument er ikke et array"
+msgstr "adump: argument er ikke et array"
#: extension/rwarray.c:337 extension/rwarray0.c:322
#, c-format
@@ -2438,6 +2482,7 @@ msgstr ""
#: extension/time.c:113
#, fuzzy
+#| msgid "mktime: received non-string argument"
msgid "gettimeofday: ignoring arguments"
msgstr "mktime: fik et argument som ikke er en streng"
@@ -2447,16 +2492,19 @@ msgstr ""
#: extension/time.c:165
#, fuzzy
+#| msgid "sqrt: called with negative argument %g"
msgid "sleep: called with too many arguments"
msgstr "sqrt: kaldt med negativt argument %g"
#: extension/time.c:168
#, fuzzy
+#| msgid "exp: received non-numeric argument"
msgid "sleep: missing required numeric argument"
msgstr "exp: fik et ikke-numerisk argument"
#: extension/time.c:174
#, fuzzy
+#| msgid "exp: argument %g is out of range"
msgid "sleep: argument is negative"
msgstr "exp: argumentet %g er uden for det tilladte område"
@@ -2486,13 +2534,11 @@ msgstr "split: kan ikke bruge det samme array som andet og fjerde argument"
#: field.c:985
msgid "split: cannot use a subarray of second arg for fourth arg"
-msgstr ""
-"split: kan ikke bruge et underarray af andet argument som fjerde argument"
+msgstr "split: kan ikke bruge et underarray af andet argument som fjerde argument"
#: field.c:988
msgid "split: cannot use a subarray of fourth arg for second arg"
-msgstr ""
-"split: kan ikke bruge et underarray af fjerde argument som andet argument"
+msgstr "split: kan ikke bruge et underarray af fjerde argument som andet argument"
#: field.c:1019
msgid "split: null string for third arg is a gawk extension"
@@ -2516,13 +2562,11 @@ msgstr "patsplit: kan ikke bruge det samme array som andet og fjerde argument"
#: field.c:1079
msgid "patsplit: cannot use a subarray of second arg for fourth arg"
-msgstr ""
-"patsplit: kan ikke bruge et underarray af andet argument som fjerde argument"
+msgstr "patsplit: kan ikke bruge et underarray af andet argument som fjerde argument"
#: field.c:1082
msgid "patsplit: cannot use a subarray of fourth arg for second arg"
-msgstr ""
-"patsplit: kan ikke bruge et underarray af fjerde argument som andet argument"
+msgstr "patsplit: kan ikke bruge et underarray af fjerde argument som andet argument"
#: field.c:1120
msgid "`FIELDWIDTHS' is a gawk extension"
@@ -2559,6 +2603,7 @@ msgstr ""
#: gawkapi.c:809
#, fuzzy
+#| msgid "length: received array argument"
msgid "remove_element: received null array"
msgstr "length: fik et array-argument"
@@ -2578,6 +2623,7 @@ msgstr ""
#: getopt.c:604 getopt.c:633
#, fuzzy, c-format
+#| msgid "%s: option '%s' is ambiguous\n"
msgid "%s: option '%s' is ambiguous; possibilities:"
msgstr "%s: flaget '%s' er flertydigt\n"
@@ -2663,8 +2709,7 @@ msgstr "udtrykket for '%s'-omdirigering har en tom streng som værdi"
#: io.c:794
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
-msgstr ""
-"filnavnet '%s' for '%s'-omdirigering kan være resultatet af et logisk udtryk"
+msgstr "filnavnet '%s' for '%s'-omdirigering kan være resultatet af et logisk udtryk"
#: io.c:842
#, c-format
@@ -2697,11 +2742,8 @@ msgid "can't redirect to `%s' (%s)"
msgstr "kan ikke omdirigere til '%s' (%s)"
#: io.c:1073
-msgid ""
-"reached system limit for open files: starting to multiplex file descriptors"
-msgstr ""
-"nåede systembegrænsningen for åbne filer: begynder at multiplekse "
-"fildeskriptorer"
+msgid "reached system limit for open files: starting to multiplex file descriptors"
+msgstr "nåede systembegrænsningen for åbne filer: begynder at multiplekse fildeskriptorer"
#: io.c:1089
#, c-format
@@ -2728,8 +2770,7 @@ msgstr "lukning af omdirigering som aldrig blev åbnet"
#: io.c:1238
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr ""
-"close: omdirigeringen '%s' blev ikke åbnet med '|&', andet argument ignoreret"
+msgstr "close: omdirigeringen '%s' blev ikke åbnet med '|&', andet argument ignoreret"
#: io.c:1255
#, c-format
@@ -2761,12 +2802,12 @@ msgstr "ingen eksplicit lukning af datakanalen '%s' angivet"
msgid "no explicit close of file `%s' provided"
msgstr "ingen eksplicit lukning af filen '%s' angivet"
-#: io.c:1317 io.c:1375 main.c:628 main.c:670
+#: io.c:1317 io.c:1375 main.c:632 main.c:674
#, c-format
msgid "error writing standard output (%s)"
msgstr "fejl ved skrivning til standard ud (%s)"
-#: io.c:1322 io.c:1381 main.c:630
+#: io.c:1322 io.c:1381 main.c:634
#, c-format
msgid "error writing standard error (%s)"
msgstr "fejl ved skrivning til standard fejl (%s)"
@@ -2796,145 +2837,138 @@ msgstr "lokal port %s ugyldig i '/inet'"
msgid "remote host and port information (%s, %s) invalid"
msgstr "fjernvært og portinformation (%s, %s) ugyldige"
-#: io.c:1673
+#: io.c:1699
msgid "TCP/IP communications are not supported"
msgstr "TCP/IP-kommunikation understøttes ikke"
-#: io.c:1854
+#: io.c:1880
#, c-format
msgid "could not open `%s', mode `%s'"
msgstr "kunne ikke åbne '%s', tilstand '%s'"
-#: io.c:1904
+#: io.c:1930
#, c-format
msgid "close of master pty failed (%s)"
msgstr "lukning af master-pty mislykkedes (%s)"
-#: io.c:1906 io.c:2092 io.c:2293
+#: io.c:1932 io.c:2118 io.c:2319
#, c-format
msgid "close of stdout in child failed (%s)"
msgstr "lukning af standard ud i underproces mislykkedes (%s)"
-#: io.c:1909
+#: io.c:1935
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
-msgstr ""
-"flytning af slave-pty til standard ud i underproces mislykkedes (dup: %s)"
+msgstr "flytning af slave-pty til standard ud i underproces mislykkedes (dup: %s)"
-#: io.c:1911 io.c:2097
+#: io.c:1937 io.c:2123
#, c-format
msgid "close of stdin in child failed (%s)"
msgstr "lukning af standard ind i underproces mislykkedes (%s)"
-#: io.c:1914
+#: io.c:1940
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
-msgstr ""
-"flytning af slave-pty til standard ind i underproces mislykkedes (dup: %s)"
+msgstr "flytning af slave-pty til standard ind i underproces mislykkedes (dup: %s)"
-#: io.c:1916 io.c:1938
+#: io.c:1942 io.c:1964
#, c-format
msgid "close of slave pty failed (%s)"
msgstr "lukning af slave-pty mislykkedes (%s)"
-#: io.c:2027 io.c:2095 io.c:2264 io.c:2296
+#: io.c:2053 io.c:2121 io.c:2290 io.c:2322
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
-msgstr ""
-"flytning af datakanal til standard ud i underproces mislykkedes (dup: %s)"
+msgstr "flytning af datakanal til standard ud i underproces mislykkedes (dup: %s)"
-#: io.c:2034 io.c:2100
+#: io.c:2060 io.c:2126
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
-msgstr ""
-"flytning af datakanalen til standard ind i underproces mislykkedes (dup: %s)"
+msgstr "flytning af datakanalen til standard ind i underproces mislykkedes (dup: %s)"
-#: io.c:2060 io.c:2286
+#: io.c:2086 io.c:2312
msgid "restoring stdout in parent process failed\n"
msgstr "genskabelse af standard ud i forælderprocessen mislykkedes\n"
-#: io.c:2068
+#: io.c:2094
msgid "restoring stdin in parent process failed\n"
msgstr "genskabelse af standard ind i forælderprocessen mislykkedes\n"
-#: io.c:2103 io.c:2298 io.c:2313
+#: io.c:2129 io.c:2324 io.c:2339
#, c-format
msgid "close of pipe failed (%s)"
msgstr "lukning af datakanalen mislykkedes (%s)"
-#: io.c:2162
+#: io.c:2188
msgid "`|&' not supported"
msgstr "'|&' understøttes ikke"
-#: io.c:2249
+#: io.c:2275
#, c-format
msgid "cannot open pipe `%s' (%s)"
msgstr "kan ikke åbne datakanalen '%s' (%s)"
-#: io.c:2307
+#: io.c:2333
#, c-format
msgid "cannot create child process for `%s' (fork: %s)"
msgstr "kan ikke oprette barneproces for '%s' (fork: %s)"
-#: io.c:2734
+#: io.c:2760
msgid "register_input_parser: received NULL pointer"
msgstr ""
-#: io.c:2762
+#: io.c:2788
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
msgstr ""
-#: io.c:2769
+#: io.c:2795
#, c-format
msgid "input parser `%s' failed to open `%s'"
msgstr ""
-#: io.c:2789
+#: io.c:2815
msgid "register_output_wrapper: received NULL pointer"
msgstr ""
-#: io.c:2817
+#: io.c:2843
#, c-format
-msgid ""
-"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
+msgid "output wrapper `%s' conflicts with previously installed output wrapper `%s'"
msgstr ""
-#: io.c:2824
+#: io.c:2850
#, c-format
msgid "output wrapper `%s' failed to open `%s'"
msgstr ""
-#: io.c:2845
+#: io.c:2871
msgid "register_output_processor: received NULL pointer"
msgstr ""
-#: io.c:2874
+#: io.c:2900
#, c-format
-msgid ""
-"two-way processor `%s' conflicts with previously installed two-way processor "
-"`%s'"
+msgid "two-way processor `%s' conflicts with previously installed two-way processor `%s'"
msgstr ""
-#: io.c:2883
+#: io.c:2909
#, c-format
msgid "two way processor `%s' failed to open `%s'"
msgstr ""
-#: io.c:3008
+#: io.c:3034
#, c-format
msgid "data file `%s' is empty"
msgstr "datafilen '%s' er tom"
-#: io.c:3050 io.c:3058
+#: io.c:3076 io.c:3084
msgid "could not allocate more input memory"
msgstr "kunne ikke allokere mere hukommelse til inddata"
-#: io.c:3636
+#: io.c:3662
msgid "multicharacter value of `RS' is a gawk extension"
msgstr "'RS' som flertegnsværdi er en gawk-udvidelse"
-#: io.c:3783
+#: io.c:3809
msgid "IPv6 communication is not supported"
msgstr "IPv6-kommunikation understøttes ikke"
@@ -2957,6 +2991,7 @@ msgstr "at køre %s setuid root kan være et sikkerhedsproblem"
#: main.c:346
#, fuzzy
+#| msgid "`--posix' overrides `--binary'"
msgid "`--posix' overrides `--characters-as-bytes'"
msgstr "'--posix' tilsidesætter '--binary'"
@@ -3027,6 +3062,7 @@ msgstr "\t-d[fil]\t\t--dump-variables[=fil]\n"
#: main.c:579
#, fuzzy
+#| msgid "\t-p[file]\t\t--profile[=file]\n"
msgid "\t-D[file]\t\t--debug[=file]\n"
msgstr "\t-p[fil]\t\t--profile[=fil]\n"
@@ -3054,62 +3090,68 @@ msgstr ""
msgid "\t-l library\t\t--load=library\n"
msgstr ""
-#: main.c:586
+#. TRANSLATORS: the "fatal" and "invalid" here are literal
+#. values, they should not be translated. Thanks.
+#.
+#: main.c:590
#, fuzzy
+#| msgid "\t-L [fatal]\t\t--lint[=fatal]\n"
msgid "\t-L[fatal|invalid]\t--lint[=fatal|invalid]\n"
msgstr "\t-L [fatal]\t\t--lint[=fatal]\n"
-#: main.c:587
+#: main.c:591
#, fuzzy
+#| msgid "\t-g\t\t\t--gen-pot\n"
msgid "\t-M\t\t\t--bignum\n"
msgstr "\t-g\t\t\t--gen-pot\n"
-#: main.c:588
+#: main.c:592
msgid "\t-N\t\t\t--use-lc-numeric\n"
msgstr "\t-N\t\t\t--use-lc-numeric\n"
-#: main.c:589
+#: main.c:593
msgid "\t-n\t\t\t--non-decimal-data\n"
msgstr "\t-n\t\t\t--non-decimal-data\n"
-#: main.c:590
+#: main.c:594
#, fuzzy
+#| msgid "\t-p[file]\t\t--profile[=file]\n"
msgid "\t-o[file]\t\t--pretty-print[=file]\n"
msgstr "\t-p[fil]\t\t--profile[=fil]\n"
-#: main.c:591
+#: main.c:595
msgid "\t-O\t\t\t--optimize\n"
msgstr "\t-O\t\t\t--optimize\n"
-#: main.c:592
+#: main.c:596
msgid "\t-p[file]\t\t--profile[=file]\n"
msgstr "\t-p[fil]\t\t--profile[=fil]\n"
-#: main.c:593
+#: main.c:597
msgid "\t-P\t\t\t--posix\n"
msgstr "\t-P\t\t\t--posix\n"
-#: main.c:594
+#: main.c:598
msgid "\t-r\t\t\t--re-interval\n"
msgstr "\t-r\t\t\t--re-interval\n"
-#: main.c:595
+#: main.c:599
msgid "\t-S\t\t\t--sandbox\n"
msgstr "\t-S\t\t\t--sandbox\n"
-#: main.c:596
+#: main.c:600
msgid "\t-t\t\t\t--lint-old\n"
msgstr "\t-t\t\t\t--lint-old\n"
-#: main.c:597
+#: main.c:601
msgid "\t-V\t\t\t--version\n"
msgstr "\t-V\t\t\t--version\n"
-#: main.c:599
+#: main.c:603
msgid "\t-W nostalgia\t\t--nostalgia\n"
msgstr "\t-W nostalgia\t\t--nostalgia\n"
-#: main.c:602
+#: main.c:606
msgid "\t-Y\t\t--parsedebug\n"
msgstr "\t-Y\t\t--parsedebug\n"
@@ -3118,7 +3160,7 @@ msgstr "\t-Y\t\t--parsedebug\n"
#. for this application. Please add _another line_ with the
#. address for translation bugs.
#. no-wrap
-#: main.c:611
+#: main.c:615
msgid ""
"\n"
"To report bugs, see node `Bugs' in `gawk.info', which is\n"
@@ -3131,7 +3173,7 @@ msgstr ""
"\n"
"Rapportér kommentarer til oversættelsen til <dansk@dansk-gruppen.dk>.\n"
-#: main.c:615
+#: main.c:619
msgid ""
"gawk is a pattern scanning and processing language.\n"
"By default it reads standard input and writes standard output.\n"
@@ -3141,7 +3183,7 @@ msgstr ""
"Almindeligvis læser gawk fra standard ind og skriver til standard ud.\n"
"\n"
-#: main.c:619
+#: main.c:623
msgid ""
"Examples:\n"
"\tgawk '{ sum += $1 }; END { print sum }' file\n"
@@ -3151,7 +3193,7 @@ msgstr ""
"\tgawk '{ sum += $1 }; END { print sum }' fil\n"
"\tgawk -F: '{ print $1 }' /etc/passwd\n"
-#: main.c:644
+#: main.c:648
#, c-format
msgid ""
"Copyright (C) 1989, 1991-%d Free Software Foundation.\n"
@@ -3166,12 +3208,11 @@ msgstr ""
"\n"
"Dette program er frit programmel. Du kan distribuere det og/eller\n"
"ændre det under betingelserne i GNU General Public License, offentliggjort\n"
-"af Free Software Foundation, enten version 3 af licensen, eller (hvis du "
-"vil)\n"
+"af Free Software Foundation, enten version 3 af licensen, eller (hvis du vil)\n"
"enhver senere version.\n"
"\n"
-#: main.c:652
+#: main.c:656
msgid ""
"This program is distributed in the hope that it will be useful,\n"
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
@@ -3185,7 +3226,7 @@ msgstr ""
"General Public License for yderligere information.\n"
"\n"
-#: main.c:658
+#: main.c:662
msgid ""
"You should have received a copy of the GNU General Public License\n"
"along with this program. If not, see http://www.gnu.org/licenses/.\n"
@@ -3193,16 +3234,16 @@ msgstr ""
"Du bør have fået en kopi af GNU General Public License sammen\n"
"med dette program. Hvis ikke, så se http://www.gnu.org/licenses/.\n"
-#: main.c:695
+#: main.c:699
msgid "-Ft does not set FS to tab in POSIX awk"
msgstr "-Ft sætter ikke FS til tab i POSIX-awk"
-#: main.c:982
+#: main.c:986
#, c-format
msgid "unknown value for field spec: %d\n"
msgstr "ukendt værdi for felt-spec: %d\n"
-#: main.c:1080
+#: main.c:1084
#, c-format
msgid ""
"%s: `%s' argument to `-v' not in `var=value' form\n"
@@ -3211,102 +3252,109 @@ msgstr ""
"%s: '%s' argument til '-v' ikke på formen 'var=værdi'\n"
"\n"
-#: main.c:1106
+#: main.c:1110
#, c-format
msgid "`%s' is not a legal variable name"
msgstr "'%s' er ikke et gyldigt variabelnavn"
-#: main.c:1109
+#: main.c:1113
#, c-format
msgid "`%s' is not a variable name, looking for file `%s=%s'"
msgstr "'%s' er ikke et variabelnavn, leder efter fil '%s=%s'"
-#: main.c:1113
+#: main.c:1117
#, c-format
msgid "cannot use gawk builtin `%s' as variable name"
msgstr "kan ikke bruge gawk's indbyggede '%s' som variabelnavn"
-#: main.c:1118
+#: main.c:1122
#, c-format
msgid "cannot use function `%s' as variable name"
msgstr "kan ikke bruge funktion '%s' som variabelnavn"
-#: main.c:1171
+#: main.c:1175
msgid "floating point exception"
msgstr "flydendetalsundtagelse"
-#: main.c:1178
+#: main.c:1182
msgid "fatal error: internal error"
msgstr "fatal fejl: intern fejl"
-#: main.c:1193
+#: main.c:1197
msgid "fatal error: internal error: segfault"
msgstr "fatal fejl: intern fejl: segmentfejl"
-#: main.c:1205
+#: main.c:1209
msgid "fatal error: internal error: stack overflow"
msgstr "fatal fejl: intern fejl: stakoverløb"
-#: main.c:1264
+#: main.c:1268
#, c-format
msgid "no pre-opened fd %d"
msgstr "ingen fd %d åbnet i forvejen"
-#: main.c:1271
+#: main.c:1275
#, c-format
msgid "could not pre-open /dev/null for fd %d"
msgstr "kunne ikke i forvejen åbne /dev/null for fd %d"
-#: main.c:1485
+#: main.c:1489
msgid "empty argument to `-e/--source' ignored"
msgstr "tomt argument til '-e/--source' ignoreret"
-#: main.c:1556
+#: main.c:1560
msgid "-M ignored: MPFR/GMP support not compiled in"
msgstr ""
-#: main.c:1577
+#: main.c:1581
#, c-format
msgid "%s: option `-W %s' unrecognized, ignored\n"
msgstr "%s: flaget '-W %s' ukendt, ignoreret\n"
-#: main.c:1630
+#: main.c:1634
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: flaget kræver et argument -- %c\n"
#: mpfr.c:557
#, fuzzy, c-format
+#| msgid "BINMODE value `%s' is invalid, treated as 3"
msgid "PREC value `%.*s' is invalid"
msgstr "BINMODE værdi '%s' er ugyldig, behandles som 3"
#: mpfr.c:615
#, fuzzy, c-format
+#| msgid "BINMODE value `%s' is invalid, treated as 3"
msgid "RNDMODE value `%.*s' is invalid"
msgstr "BINMODE værdi '%s' er ugyldig, behandles som 3"
#: mpfr.c:711
#, fuzzy, c-format
+#| msgid "cos: received non-numeric argument"
msgid "%s: received non-numeric argument"
msgstr "cos: fik et ikke-numerisk argument"
#: mpfr.c:820
#, fuzzy
+#| msgid "compl(%lf): negative value will give strange results"
msgid "compl(%Rg): negative value will give strange results"
msgstr "compl(%lf): negative værdier vil give mærkelige resultater"
#: mpfr.c:824
#, fuzzy
+#| msgid "compl(%lf): fractional value will be truncated"
msgid "comp(%Rg): fractional value will be truncated"
msgstr "compl(%lf): kommatalsværdier vil blive trunkeret"
#: mpfr.c:836
#, fuzzy, c-format
+#| msgid "compl(%lf): negative value will give strange results"
msgid "cmpl(%Zd): negative values will give strange results"
msgstr "compl(%lf): negative værdier vil give mærkelige resultater"
#: mpfr.c:855
#, fuzzy, c-format
+#| msgid "cos: received non-numeric argument"
msgid "%s: received non-numeric argument #%d"
msgstr "cos: fik et ikke-numerisk argument"
@@ -3316,18 +3364,21 @@ msgstr ""
#: mpfr.c:877
#, fuzzy
+#| msgid "and(%lf, %lf): negative values will give strange results"
msgid "%s: argument #%d negative value %Rg will give strange results"
-msgstr "compl(%lf): negative værdier vil give mærkelige resultater"
+msgstr "and(%lf, %lf): negative værdier vil give mærkelige resultater"
#: mpfr.c:883
#, fuzzy
+#| msgid "and(%lf, %lf): fractional values will be truncated"
msgid "%s: argument #%d fractional value %Rg will be truncated"
-msgstr "or(%lf, %lf): kommatalsværdier vil blive trunkeret"
+msgstr "and(%lf, %lf): kommatalsværdier vil blive trunkeret"
#: mpfr.c:898
#, fuzzy, c-format
+#| msgid "and(%lf, %lf): negative values will give strange results"
msgid "%s: argument #%d negative value %Zd will give strange results"
-msgstr "compl(%lf): negative værdier vil give mærkelige resultater"
+msgstr "and(%lf, %lf): negative værdier vil give mærkelige resultater"
#: msg.c:68
#, c-format
@@ -3353,12 +3404,8 @@ msgstr "ingen heksadecimale cifre i '\\x'-kontrolsekvenser"
#: node.c:567
#, c-format
-msgid ""
-"hex escape \\x%.*s of %d characters probably not interpreted the way you "
-"expect"
-msgstr ""
-"den heksadecimale sekvens \\x%.*s på %d tegn nok ikke forstået som du "
-"forventer det"
+msgid "hex escape \\x%.*s of %d characters probably not interpreted the way you expect"
+msgstr "den heksadecimale sekvens \\x%.*s på %d tegn nok ikke forstået som du forventer det"
#: node.c:582
#, c-format
@@ -3366,12 +3413,8 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
msgstr "kontrolsekvensen '\\%c' behandlet som kun '%c'"
#: node.c:726
-msgid ""
-"Invalid multibyte data detected. There may be a mismatch between your data "
-"and your locale."
-msgstr ""
-"Ugyldigt multibyte data fundet. Måske er der uoverensstemmelse mellem dine "
-"data og dit locale."
+msgid "Invalid multibyte data detected. There may be a mismatch between your data and your locale."
+msgstr "Ugyldigt multibyte data fundet. Måske er der uoverensstemmelse mellem dine data og dit locale."
#: posix/gawkmisc.c:177
#, c-format
@@ -3383,17 +3426,20 @@ msgstr "%s %s '%s': kunne ikke få fat på fd flag: (fcntl F_GETFD: %s)"
msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
msgstr "%s %s '%s': kunne ikke sætte luk-ved-exec (fcntl F_SETFD: %s)"
-#: profile.c:71
+#: profile.c:91
#, c-format
msgid "could not open `%s' for writing: %s"
msgstr "kunne ikke åbne '%s' for skrivning: %s"
-#: profile.c:73
+#: profile.c:93
msgid "sending profile to standard error"
msgstr "sender profilen til standard fejl"
-#: profile.c:193
+#: profile.c:213
#, fuzzy, c-format
+#| msgid ""
+#| "\t# Rule(s)\n"
+#| "\n"
msgid ""
"\t# %s rule(s)\n"
"\n"
@@ -3401,7 +3447,7 @@ msgstr ""
"\t# Regler\n"
"\n"
-#: profile.c:198
+#: profile.c:218
#, c-format
msgid ""
"\t# Rule(s)\n"
@@ -3410,29 +3456,30 @@ msgstr ""
"\t# Regler\n"
"\n"
-#: profile.c:272
+#: profile.c:292
#, c-format
msgid "internal error: %s with null vname"
msgstr "intern fejl: %s med null vname"
-#: profile.c:538
+#: profile.c:558
#, fuzzy
+#| msgid "internal error: %s with null vname"
msgid "internal error: builtin with null fname"
msgstr "intern fejl: %s med null vname"
-#: profile.c:958
+#: profile.c:978
#, c-format
msgid ""
"\t# Loaded extensions (-l and/or @load)\n"
"\n"
msgstr ""
-#: profile.c:981
+#: profile.c:1001
#, c-format
msgid "\t# gawk profile, created %s\n"
msgstr "\t# profil til gawk oprettet %s\n"
-#: profile.c:1521
+#: profile.c:1555
#, c-format
msgid ""
"\n"
@@ -3441,7 +3488,7 @@ msgstr ""
"\n"
"\t# Funktioner, listede alfabetisk\n"
-#: profile.c:1559
+#: profile.c:1593
#, c-format
msgid "redir2str: unknown redirection type %d"
msgstr "redir2str: uykendt omdirigeringstype %d"
@@ -3481,6 +3528,7 @@ msgstr "Ugyldig bagudreference"
#: regcomp.c:160
#, fuzzy
+#| msgid "Unmatched [ or [^"
msgid "Unmatched [, [^, [:, [., or [="
msgstr "Ubalanceret [ eller [^"
@@ -3526,6 +3574,7 @@ msgstr "Intet foregående regulært udtryk"
#: symbol.c:677
#, fuzzy, c-format
+#| msgid "function `%s': can't use function name as parameter name"
msgid "function `%s': can't use function `%s' as a parameter name"
msgstr "funktionen '%s': kan ikke bruge funktionsnavn som parameternavn"
@@ -3533,89 +3582,59 @@ msgstr "funktionen '%s': kan ikke bruge funktionsnavn som parameternavn"
msgid "can not pop main context"
msgstr ""
-#~ msgid "`getline var' invalid inside `%s' rule"
-#~ msgstr "'getline var' ugyldig inden i '%s' regel"
-
-#~ msgid "`getline' invalid inside `%s' rule"
-#~ msgstr "'getline' ugyldig inden i '%s' regel"
-
-#~ msgid "no (known) protocol supplied in special filename `%s'"
-#~ msgstr "ingen (kendt) protokol opgivet i special-filnavn '%s'"
-
-#~ msgid "special file name `%s' is incomplete"
-#~ msgstr "special-filnavn '%s' er ufuldstændigt"
-
-#~ msgid "must supply a remote hostname to `/inet'"
-#~ msgstr "fjernmaskinenavn til '/inet' skal angives"
-
-#~ msgid "must supply a remote port to `/inet'"
-#~ msgstr "fjernport til '/inet' skal angives"
-
-#~ msgid ""
-#~ "\t# %s block(s)\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\t# %s blokke\n"
-#~ "\n"
-
-#~ msgid "range of the form `[%c-%c]' is locale dependent"
-#~ msgstr "område på formen `[%c-%c]' er locale-afhængig"
+#~ msgid "reference to uninitialized element `%s[\"%.*s\"]'"
+#~ msgstr "reference til ikke-initieret element '%s[\"%.*s\"]'"
-#, fuzzy
-#~ msgid "[s]printf called with no arguments"
-#~ msgstr "sqrt: kaldt med negativt argument %g"
+#~ msgid "subscript of array `%s' is null string"
+#~ msgstr "indeks i array '%s' er en tom streng"
-#~ msgid "`-m[fr]' option irrelevant in gawk"
-#~ msgstr "'-m[fr]'-flaget er irrelevant i gawk"
+#~ msgid "%s: empty (null)\n"
+#~ msgstr "%s: tom (null)\n"
-#~ msgid "-m option usage: `-m[fr] nnn'"
-#~ msgstr "brug af flaget -m: '-m[fr] nnn'"
+#~ msgid "%s: empty (zero)\n"
+#~ msgstr "%s: tom (nul)\n"
-#, fuzzy
-#~ msgid "%s: received non-numeric first argument"
-#~ msgstr "or: fik et ikke-numerisk første argument"
+#~ msgid "%s: table_size = %d, array_size = %d\n"
+#~ msgstr "%s: tabelstørrelse = %d, arraystørrelse = %d\n"
-#, fuzzy
-#~ msgid "%s: received non-numeric second argument"
-#~ msgstr "or: fik et ikke-numerisk andet argument"
+#~ msgid "%s: array_ref to %s\n"
+#~ msgstr "%s: arrayreference til %s\n"
-#, fuzzy
-#~ msgid "%s(%Rg, ..): negative values will give strange results"
-#~ msgstr "or(%lf, %lf): negative værdier vil give mærkelige resultater"
+#~ msgid "`nextfile' is a gawk extension"
+#~ msgstr "'nextfile' er en gawk-udvidelse"
-#, fuzzy
-#~ msgid "%s(%Rg, ..): fractional values will be truncated"
-#~ msgstr "or(%lf, %lf): kommatalsværdier vil blive trunkeret"
+#~ msgid "`delete array' is a gawk extension"
+#~ msgstr "'delete array' er en gawk-udvidelse"
-#, fuzzy
-#~ msgid "%s(%Zd, ..): negative values will give strange results"
-#~ msgstr "or(%lf, %lf): negative værdier vil give mærkelige resultater"
+#~ msgid "`getline var' invalid inside `%s' rule"
+#~ msgstr "'getline var' ugyldig inden i '%s' regel"
-#, fuzzy
-#~ msgid "%s(.., %Rg): negative values will give strange results"
-#~ msgstr "or(%lf, %lf): negative værdier vil give mærkelige resultater"
+#~ msgid "`getline' invalid inside `%s' rule"
+#~ msgstr "'getline' ugyldig inden i '%s' regel"
-#, fuzzy
-#~ msgid "%s(.., %Zd): negative values will give strange results"
-#~ msgstr "or(%lf, %lf): negative værdier vil give mærkelige resultater"
+#~ msgid "use of non-array as array"
+#~ msgstr "brug af ikke-array som array"
#~ msgid "`%s' is a Bell Labs extension"
#~ msgstr "'%s' er en Bell Labs-udvidelse"
-#~ msgid "`nextfile' is a gawk extension"
-#~ msgstr "'nextfile' er en gawk-udvidelse"
-
-#~ msgid "`delete array' is a gawk extension"
-#~ msgstr "'delete array' er en gawk-udvidelse"
-
#~ msgid "and: received non-numeric first argument"
#~ msgstr "and: fik et ikke-numerisk første argument"
#~ msgid "and: received non-numeric second argument"
#~ msgstr "and: fik et ikke-numerisk andet argument"
-#~ msgid "and(%lf, %lf): fractional values will be truncated"
-#~ msgstr "and(%lf, %lf): kommatalsværdier vil blive trunkeret"
+#~ msgid "or: received non-numeric first argument"
+#~ msgstr "or: fik et ikke-numerisk første argument"
+
+#~ msgid "or: received non-numeric second argument"
+#~ msgstr "or: fik et ikke-numerisk andet argument"
+
+#~ msgid "or(%lf, %lf): negative values will give strange results"
+#~ msgstr "or(%lf, %lf): negative værdier vil give mærkelige resultater"
+
+#~ msgid "or(%lf, %lf): fractional values will be truncated"
+#~ msgstr "or(%lf, %lf): kommatalsværdier vil blive trunkeret"
#~ msgid "xor: received non-numeric first argument"
#~ msgstr "xor: fik et ikke-numerisk første argument"
@@ -3626,30 +3645,6 @@ msgstr ""
#~ msgid "xor(%lf, %lf): fractional values will be truncated"
#~ msgstr "xor(%lf, %lf): kommatalsværdier vil blive trunkeret"
-#~ msgid "Operation Not Supported"
-#~ msgstr "Operationen understøttes ikke"
-
-#~ msgid "reference to uninitialized element `%s[\"%.*s\"]'"
-#~ msgstr "reference til ikke-initieret element '%s[\"%.*s\"]'"
-
-#~ msgid "subscript of array `%s' is null string"
-#~ msgstr "indeks i array '%s' er en tom streng"
-
-#~ msgid "%s: empty (null)\n"
-#~ msgstr "%s: tom (null)\n"
-
-#~ msgid "%s: empty (zero)\n"
-#~ msgstr "%s: tom (nul)\n"
-
-#~ msgid "%s: table_size = %d, array_size = %d\n"
-#~ msgstr "%s: tabelstørrelse = %d, arraystørrelse = %d\n"
-
-#~ msgid "%s: array_ref to %s\n"
-#~ msgstr "%s: arrayreference til %s\n"
-
-#~ msgid "use of non-array as array"
-#~ msgstr "brug af ikke-array som array"
-
#~ msgid "can't use function name `%s' as variable or array"
#~ msgstr "kan ikke bruge funktionsnavnet '%s' som variabel eller array"
@@ -3659,11 +3654,8 @@ msgstr ""
#~ msgid "statement has no effect"
#~ msgstr "kommandoen har ingen effekt"
-#~ msgid ""
-#~ "for loop: array `%s' changed size from %ld to %ld during loop execution"
-#~ msgstr ""
-#~ "for-løkke: array '%s' ændrede størrelse fra %ld til %ld under udførelse "
-#~ "af løkken"
+#~ msgid "for loop: array `%s' changed size from %ld to %ld during loop execution"
+#~ msgstr "for-løkke: array '%s' ændrede størrelse fra %ld til %ld under udførelse af løkken"
#~ msgid "function called indirectly through `%s' does not exist"
#~ msgstr "funktion kaldt indirekte via '%s' eksisterer ikke"
@@ -3680,12 +3672,43 @@ msgstr ""
#~ msgid "Sorry, don't know how to interpret `%s'"
#~ msgstr "Véd desværre ikke hvordan '%s' skal fortolkes"
+#~ msgid "Operation Not Supported"
+#~ msgstr "Operationen understøttes ikke"
+
+#~ msgid "no (known) protocol supplied in special filename `%s'"
+#~ msgstr "ingen (kendt) protokol opgivet i special-filnavn '%s'"
+
+#~ msgid "special file name `%s' is incomplete"
+#~ msgstr "special-filnavn '%s' er ufuldstændigt"
+
+#~ msgid "must supply a remote hostname to `/inet'"
+#~ msgstr "fjernmaskinenavn til '/inet' skal angives"
+
+#~ msgid "must supply a remote port to `/inet'"
+#~ msgstr "fjernport til '/inet' skal angives"
+
+#~ msgid "`-m[fr]' option irrelevant in gawk"
+#~ msgstr "'-m[fr]'-flaget er irrelevant i gawk"
+
+#~ msgid "-m option usage: `-m[fr] nnn'"
+#~ msgstr "brug af flaget -m: '-m[fr] nnn'"
+
#~ msgid "\t-R file\t\t\t--command=file\n"
#~ msgstr "\t-R file\t\t\t--command=fil\n"
#~ msgid "could not find groups: %s"
#~ msgstr "kunne ikke finde grupper: %s"
+#~ msgid ""
+#~ "\t# %s block(s)\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\t# %s blokke\n"
+#~ "\n"
+
+#~ msgid "range of the form `[%c-%c]' is locale dependent"
+#~ msgstr "område på formen `[%c-%c]' er locale-afhængig"
+
#~ msgid "assignment is not allowed to result of builtin function"
#~ msgstr "tildeling er ikke tilladt til resultatet fra en indbygget funktion"
@@ -3725,11 +3748,8 @@ msgstr ""
#~ msgid "`nextfile' cannot be called from a BEGIN rule"
#~ msgstr "'nextfile' kan ikke kaldes fra en BEGIN-regel"
-#~ msgid ""
-#~ "concatenation: side effects in one expression have changed the length of "
-#~ "another!"
-#~ msgstr ""
-#~ "konkatenering: sideeffekter i et udtryk har ændret længden af et andet!"
+#~ msgid "concatenation: side effects in one expression have changed the length of another!"
+#~ msgstr "konkatenering: sideeffekter i et udtryk har ændret længden af et andet!"
#~ msgid "illegal type (%s) in tree_eval"
#~ msgstr "ugyldig type (%s) i tree_eval"
diff --git a/po/it.po b/po/it.po
index 88e537f6..8c4ab070 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: GNU Awk 4.0.73, API: 0.0\n"
"Report-Msgid-Bugs-To: bug-gawk@gnu.org\n"
"POT-Creation-Date: 2015-02-26 20:05+0200\n"
-"PO-Revision-Date: 2014-12-14 22:10+0100\n"
+"PO-Revision-Date: 2015-04-27 10:10+0100\n"
"Last-Translator: Antonio Colombo <azc100@gmail.com>\n"
"Language-Team: Italian <it@li.org>\n"
"Language: it\n"
@@ -230,7 +230,7 @@ msgstr ""
#: awkgram.y:1635
#, c-format
msgid "attempt to use non-function `%s' in function call"
-msgstr ""
+msgstr "tentativo di usare la non-funzione `%s' in una chiamata di funzione"
#: awkgram.y:1699
msgid "invalid subscript expression"
@@ -2384,7 +2384,7 @@ msgstr "readfile: chiamata senza argomenti"
#: extension/revoutput.c:125
msgid "revoutput: could not initialize REVOUT variable"
-msgstr ""
+msgstr "revoutput: non riesco a inizializzare la variabile REVOUT"
#: extension/rwarray.c:124 extension/rwarray0.c:109
msgid "writea: called with too many arguments"
@@ -3526,23 +3526,11 @@ msgid "No previous regular expression"
msgstr "Nessuna espressione regolare precedente"
#: symbol.c:677
-#, fuzzy, c-format
msgid "function `%s': can't use function `%s' as a parameter name"
msgstr ""
-"funzione `%s': non è possibile usare nome della funzione come nome parametro"
+"funzione `%s': non è possibile come nome parametro quello della funzione `%s'"
#: symbol.c:809
msgid "can not pop main context"
msgstr "non posso salire più in alto nello stack"
-#~ msgid "div: third argument is not an array"
-#~ msgstr "div: terzo argomento non-vettoriale"
-
-#~ msgid "div: received non-numeric first argument"
-#~ msgstr "div: il primo argomento ricevuto non è numerico"
-
-#~ msgid "div: received non-numeric second argument"
-#~ msgstr "div: il secondo argomento ricevuto non è numerico"
-
-#~ msgid "div: division by zero attempted"
-#~ msgstr "div: tentativo di dividere per zero"
diff --git a/po/sv.po b/po/sv.po
index 9c91f4f0..6becf207 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -6,13 +6,13 @@
# Christer Andersson <klamm@comhem.se>, 2007.
# Göran Uddeborg <goeran@uddeborg.se>, 2011, 2012, 2013, 2014, 2015.
#
-# $Revision: 1.19 $
+# $Revision: 1.20 $
msgid ""
msgstr ""
"Project-Id-Version: gawk 4.1.1d\n"
"Report-Msgid-Bugs-To: bug-gawk@gnu.org\n"
"POT-Creation-Date: 2015-04-16 17:16+0300\n"
-"PO-Revision-Date: 2015-04-16 21:44+0200\n"
+"PO-Revision-Date: 2015-04-22 22:34+0200\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -306,7 +306,7 @@ msgstr "kÀllfilen \"%s\" Àr tom"
#: awkgram.y:2827
#, c-format
msgid "PEBKAC error: invalid character '\\%03o' in source code"
-msgstr "PEBKAC-fel: ogiltigt tecken ”\\%03o” i kÀllkodenc"
+msgstr "PEBKAC-fel: ogiltigt tecken ”\\%03o” i kÀllkoden"
#: awkgram.y:2958
msgid "source file does not end in newline"
@@ -1549,7 +1549,7 @@ msgstr "Observera: brytpunkt %d (aktiverad), Àr också satt vid %s:%d"
#: debug.c:2214
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
-msgstr "Observera: brytpunkt %d (avaktiverad, intorera följande %ld trÀffar), Àr också satt vid %s:%d"
+msgstr "Observera: brytpunkt %d (avaktiverad, ignorera följande %ld trÀffar), Àr också satt vid %s:%d"
#: debug.c:2221
#, c-format
@@ -2618,7 +2618,7 @@ msgstr "nådde systembegrÀnsningen för öppna filer: börjar multiplexa fildes
#: io.c:1089
#, c-format
msgid "close of `%s' failed (%s)."
-msgstr "stÀngning av \"%s\" misslyckades (%s)"
+msgstr "stÀngning av \"%s\" misslyckades (%s)."
#: io.c:1097
msgid "too many pipes or input files open"
@@ -2685,17 +2685,17 @@ msgstr "fel vid skrivning till standard fel (%s)"
#: io.c:1330
#, c-format
msgid "pipe flush of `%s' failed (%s)."
-msgstr "rörspolning av \"%s\" misslyckades (%s)"
+msgstr "rörspolning av \"%s\" misslyckades (%s)."
#: io.c:1333
#, c-format
msgid "co-process flush of pipe to `%s' failed (%s)."
-msgstr "koprocesspolning av röret till \"%s\" misslyckades (%s)"
+msgstr "koprocesspolning av röret till \"%s\" misslyckades (%s)."
#: io.c:1336
#, c-format
msgid "file flush of `%s' failed (%s)."
-msgstr "filspolning av \"%s\" misslyckades (%s)"
+msgstr "filspolning av \"%s\" misslyckades (%s)."
#: io.c:1453
#, c-format
diff --git a/profile.c b/profile.c
index dc887e97..dcc2946c 100644
--- a/profile.c
+++ b/profile.c
@@ -1359,7 +1359,7 @@ pp_string(const char *in_str, size_t len, int delim)
osiz *= 2; \
} ofre -= (l)
- osiz = len + 3 + 2; /* initial size; 3 for delim + terminating null */
+ osiz = len + 3 + 1; /* initial size; 3 for delim + terminating null */
emalloc(obuf, char *, osiz, "pp_string");
obufout = obuf;
ofre = osiz - 1;
@@ -1371,10 +1371,9 @@ pp_string(const char *in_str, size_t len, int delim)
*obufout++ = '\\';
*obufout++ = delim;
} else if (*str == '\0') {
- chksize(4);
-
*obufout++ = '\\';
*obufout++ = '0';
+ chksize(2); /* need 2 more chars for this case */
*obufout++ = '0';
*obufout++ = '0';
} else if ((cp = strchr(escapes, *str)) != NULL) {
@@ -1384,7 +1383,7 @@ pp_string(const char *in_str, size_t len, int delim)
/* NB: Deliberate use of lower-case versions. */
} else if (isascii(*str) && isprint(*str)) {
*obufout++ = *str;
- ofre += 1;
+ ofre += 1; /* used 1 less than expected */
} else {
size_t len;
@@ -1607,7 +1606,7 @@ pp_group3(const char *s1, const char *s2, const char *s3)
len1 = strlen(s1);
len2 = strlen(s2);
len3 = strlen(s3);
- l = len1 + len2 + len3 + 2;
+ l = len1 + len2 + len3 + 1;
emalloc(str, char *, l, "pp_group3");
s = str;
if (len1 > 0) {
diff --git a/re.c b/re.c
index 1d4d191c..203ba16d 100644
--- a/re.c
+++ b/re.c
@@ -75,10 +75,10 @@ make_regexp(const char *s, size_t len, bool ignorecase, bool dfa, bool canfatal)
* from that.
*/
if (buf == NULL) {
- emalloc(buf, char *, len + 2, "make_regexp");
+ emalloc(buf, char *, len + 1, "make_regexp");
buflen = len;
} else if (len > buflen) {
- erealloc(buf, char *, len + 2, "make_regexp");
+ erealloc(buf, char *, len + 1, "make_regexp");
buflen = len;
}
dest = buf;
diff --git a/test/ChangeLog b/test/ChangeLog
index 285c2802..ba14f533 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,19 @@
+2015-04-27 Andrew J. Schorr <aschorr@telemetry-investments.com>
+
+ * Makefile.am (inpref): New test.
+ * inpref.awk, inpref.in, inpref.ok: New files.
+
+2015-04-27 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (regexpbrack2): New test.
+ * regexpbrack2.awk, regexpbrack2.in, regexpbrack2.ok: New files.
+ Thanks to Nelson Beebe.
+
+2015-04-16 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (shadowbuiltin): New test.
+ * shadowbuiltin.awk, shadowbuiltin.ok: New files.
+
2015-04-14 Arnold D. Robbins <arnold@skeeve.com>
* indirectbuiltin.awk: Add another test (gensub 3 args).
diff --git a/test/Makefile.am b/test/Makefile.am
index 9ec3fc6c..c53e65c1 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -411,6 +411,9 @@ EXTRA_DIST = \
icasers.awk \
icasers.in \
icasers.ok \
+ inpref.awk \
+ inpref.in \
+ inpref.ok \
id.awk \
id.ok \
igncdym.awk \
@@ -783,6 +786,9 @@ EXTRA_DIST = \
regexpbrack.awk \
regexpbrack.in \
regexpbrack.ok \
+ regexpbrack2.awk \
+ regexpbrack2.in \
+ regexpbrack2.ok \
regexprange.awk \
regexprange.ok \
reginttrad.awk \
@@ -868,6 +874,8 @@ EXTRA_DIST = \
sclifin.ok \
shadow.awk \
shadow.ok \
+ shadowbuiltin.awk \
+ shadowbuiltin.ok \
sort1.awk \
sort1.ok \
sortempty.awk \
@@ -1032,7 +1040,7 @@ BASIC_TESTS = \
gsubasgn gsubtest gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 \
gsubtst7 gsubtst8 \
hex hsprint \
- inputred intest intprec iobug1 \
+ inpref inputred intest intprec iobug1 \
leaddig leadnl litoct longsub longwrds \
manglprm math membug1 messages minusstr mmap8k mtchi18n \
nasty nasty2 negexp negrange nested nfldstr nfloop nfneg nfset nlfldsep \
@@ -1043,7 +1051,7 @@ BASIC_TESTS = \
paramdup paramres paramtyp paramuninitglobal parse1 parsefld parseme \
pcntplus posix2008sub prdupval prec printf0 printf1 prmarscl prmreuse \
prt1eval prtoeval \
- rand randtest range1 rebt8b1 redfilnm regeq regexpbrack regexprange regrange reindops \
+ rand randtest range1 rebt8b1 redfilnm regeq regexpbrack regexpbrack2 regexprange regrange reindops \
reparse resplit rri1 rs rsnul1nl rsnulbig rsnulbig2 rstest1 rstest2 \
rstest3 rstest4 rstest5 rswhite \
scalar sclforin sclifin sortempty sortglos splitargv splitarr splitdef \
@@ -1075,7 +1083,8 @@ GAWK_EXT_TESTS = \
profile0 profile1 profile2 profile3 profile4 profile5 profile6 profile7 \
profile8 pty1 \
rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline rsglstdin rsstart1 \
- rsstart2 rsstart3 rstest6 shadow sortfor sortu split_after_fpat \
+ rsstart2 rsstart3 rstest6 shadow shadowbuiltin \
+ sortfor sortu split_after_fpat \
splitarg4 strftime \
strtonum switch2 symtab1 symtab2 symtab3 symtab4 symtab5 symtab6 \
symtab7 symtab8 symtab9 \
diff --git a/test/Makefile.in b/test/Makefile.in
index 9c01d192..caae2ba5 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -668,6 +668,9 @@ EXTRA_DIST = \
icasers.awk \
icasers.in \
icasers.ok \
+ inpref.awk \
+ inpref.in \
+ inpref.ok \
id.awk \
id.ok \
igncdym.awk \
@@ -1040,6 +1043,9 @@ EXTRA_DIST = \
regexpbrack.awk \
regexpbrack.in \
regexpbrack.ok \
+ regexpbrack2.awk \
+ regexpbrack2.in \
+ regexpbrack2.ok \
regexprange.awk \
regexprange.ok \
reginttrad.awk \
@@ -1125,6 +1131,8 @@ EXTRA_DIST = \
sclifin.ok \
shadow.awk \
shadow.ok \
+ shadowbuiltin.awk \
+ shadowbuiltin.ok \
sort1.awk \
sort1.ok \
sortempty.awk \
@@ -1288,7 +1296,7 @@ BASIC_TESTS = \
gsubasgn gsubtest gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 \
gsubtst7 gsubtst8 \
hex hsprint \
- inputred intest intprec iobug1 \
+ inpref inputred intest intprec iobug1 \
leaddig leadnl litoct longsub longwrds \
manglprm math membug1 messages minusstr mmap8k mtchi18n \
nasty nasty2 negexp negrange nested nfldstr nfloop nfneg nfset nlfldsep \
@@ -1299,7 +1307,7 @@ BASIC_TESTS = \
paramdup paramres paramtyp paramuninitglobal parse1 parsefld parseme \
pcntplus posix2008sub prdupval prec printf0 printf1 prmarscl prmreuse \
prt1eval prtoeval \
- rand randtest range1 rebt8b1 redfilnm regeq regexpbrack regexprange regrange reindops \
+ rand randtest range1 rebt8b1 redfilnm regeq regexpbrack regexpbrack2 regexprange regrange reindops \
reparse resplit rri1 rs rsnul1nl rsnulbig rsnulbig2 rstest1 rstest2 \
rstest3 rstest4 rstest5 rswhite \
scalar sclforin sclifin sortempty sortglos splitargv splitarr splitdef \
@@ -1331,7 +1339,8 @@ GAWK_EXT_TESTS = \
profile0 profile1 profile2 profile3 profile4 profile5 profile6 profile7 \
profile8 pty1 \
rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline rsglstdin rsstart1 \
- rsstart2 rsstart3 rstest6 shadow sortfor sortu split_after_fpat \
+ rsstart2 rsstart3 rstest6 shadow shadowbuiltin \
+ sortfor sortu split_after_fpat \
splitarg4 strftime \
strtonum switch2 symtab1 symtab2 symtab3 symtab4 symtab5 symtab6 \
symtab7 symtab8 symtab9 \
@@ -2944,6 +2953,11 @@ hsprint:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+inpref:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
inputred:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -3251,6 +3265,11 @@ regexpbrack:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+regexpbrack2:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
regexprange:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -3786,6 +3805,11 @@ shadow:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+shadowbuiltin:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
sortfor:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/Maketests b/test/Maketests
index 219d592d..61b0ec8e 100644
--- a/test/Maketests
+++ b/test/Maketests
@@ -405,6 +405,11 @@ hsprint:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+inpref:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
inputred:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -712,6 +717,11 @@ regexpbrack:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+regexpbrack2:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
regexprange:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@@ -1247,6 +1257,11 @@ shadow:
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+shadowbuiltin:
+ @echo $@
+ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
sortfor:
@echo $@
@AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/test/inpref.awk b/test/inpref.awk
new file mode 100644
index 00000000..d64ffe7f
--- /dev/null
+++ b/test/inpref.awk
@@ -0,0 +1,9 @@
+function test(x) {
+ print x
+ getline
+ print x
+}
+
+{
+ test($0)
+}
diff --git a/test/inpref.in b/test/inpref.in
new file mode 100644
index 00000000..a32119c8
--- /dev/null
+++ b/test/inpref.in
@@ -0,0 +1,2 @@
+hello
+goodbye
diff --git a/test/inpref.ok b/test/inpref.ok
new file mode 100644
index 00000000..317e9677
--- /dev/null
+++ b/test/inpref.ok
@@ -0,0 +1,2 @@
+hello
+hello
diff --git a/test/regexpbrack2.awk b/test/regexpbrack2.awk
new file mode 100644
index 00000000..81424844
--- /dev/null
+++ b/test/regexpbrack2.awk
@@ -0,0 +1,2 @@
+NR == 1 { gsub(/\\\\[;?!,()<>|+@%\]\[]/, " ") ; print "\"" $0 "\"" }
+NR == 2 { gsub(/\\\\[;?!,()<>|+@%\]\[^]/, " ") ; print "\"" $0 "\"" }
diff --git a/test/regexpbrack2.in b/test/regexpbrack2.in
new file mode 100644
index 00000000..42888dd0
--- /dev/null
+++ b/test/regexpbrack2.in
@@ -0,0 +1,2 @@
+test: \\; \\? \\!
+test: \\; \\? \\!
diff --git a/test/regexpbrack2.ok b/test/regexpbrack2.ok
new file mode 100644
index 00000000..9c2a2922
--- /dev/null
+++ b/test/regexpbrack2.ok
@@ -0,0 +1,2 @@
+"test: "
+"test: "
diff --git a/test/shadowbuiltin.awk b/test/shadowbuiltin.awk
new file mode 100644
index 00000000..3ae21725
--- /dev/null
+++ b/test/shadowbuiltin.awk
@@ -0,0 +1,10 @@
+function foo(gensub)
+{
+ print gensub
+ print lshift(1, 1)
+}
+
+BEGIN {
+ x = 5
+ foo(x)
+}
diff --git a/test/shadowbuiltin.ok b/test/shadowbuiltin.ok
new file mode 100644
index 00000000..47586a86
--- /dev/null
+++ b/test/shadowbuiltin.ok
@@ -0,0 +1,2 @@
+5
+2