446 lines
18 KiB
Diff
446 lines
18 KiB
Diff
|
From dce3a16e5e9368245735e29bf498dcd5e3e474a4 Mon Sep 17 00:00:00 2001
|
||
|
From: Daiki Ueno <ueno@gnu.org>
|
||
|
Date: Thu, 15 Sep 2016 13:57:24 +0200
|
||
|
Subject: [PATCH] xgettext: Fix crash with *.po file input
|
||
|
|
||
|
When xgettext was given two *.po files with the same msgid_plural, it
|
||
|
crashed with double-free. Problem reported by Davlet Panech in:
|
||
|
http://lists.gnu.org/archive/html/bug-gettext/2016-09/msg00001.html
|
||
|
|
||
|
praiskup:
|
||
|
- I dropped the testsuite part, otherwise we'd have to 'autoreconf -vif' the
|
||
|
sources
|
||
|
- I'm patching manually the po-gram-gen.c file to avoid 'bison' BR
|
||
|
|
||
|
diff --git a/gettext-tools/src/po-gram-gen.y b/gettext-tools/src/po-gram-gen.y
|
||
|
index becf5e607..4428e7725 100644
|
||
|
--- a/gettext-tools/src/po-gram-gen.y
|
||
|
+++ b/gettext-tools/src/po-gram-gen.y
|
||
|
@@ -221,14 +221,11 @@ message
|
||
|
check_obsolete ($1, $3);
|
||
|
check_obsolete ($1, $4);
|
||
|
if (!$1.obsolete || pass_obsolete_entries)
|
||
|
- {
|
||
|
- do_callback_message ($1.ctxt, string2, &$1.pos, $3.string,
|
||
|
- $4.rhs.msgstr, $4.rhs.msgstr_len, &$4.pos,
|
||
|
- $1.prev_ctxt,
|
||
|
- $1.prev_id, $1.prev_id_plural,
|
||
|
- $1.obsolete);
|
||
|
- free ($3.string);
|
||
|
- }
|
||
|
+ do_callback_message ($1.ctxt, string2, &$1.pos, $3.string,
|
||
|
+ $4.rhs.msgstr, $4.rhs.msgstr_len, &$4.pos,
|
||
|
+ $1.prev_ctxt,
|
||
|
+ $1.prev_id, $1.prev_id_plural,
|
||
|
+ $1.obsolete);
|
||
|
else
|
||
|
{
|
||
|
free_message_intro ($1);
|
||
|
diff --git a/gettext-tools/src/read-catalog.c b/gettext-tools/src/read-catalog.c
|
||
|
index 571d18e1b..6af6d2025 100644
|
||
|
--- a/gettext-tools/src/read-catalog.c
|
||
|
+++ b/gettext-tools/src/read-catalog.c
|
||
|
@@ -397,6 +397,8 @@ default_add_message (default_catalog_reader_ty *this,
|
||
|
appropriate. */
|
||
|
mp = message_alloc (msgctxt, msgid, msgid_plural, msgstr, msgstr_len,
|
||
|
msgstr_pos);
|
||
|
+ if (msgid_plural != NULL)
|
||
|
+ free (msgid_plural);
|
||
|
mp->prev_msgctxt = prev_msgctxt;
|
||
|
mp->prev_msgid = prev_msgid;
|
||
|
mp->prev_msgid_plural = prev_msgid_plural;
|
||
|
diff --git a/gettext-tools/src/po-gram-gen.c b/gettext-tools/src/po-gram-gen.c
|
||
|
--- a/gettext-tools/src/po-gram-gen.c
|
||
|
+++ b/gettext-tools/src/po-gram-gen.c
|
||
|
@@ -1,8 +1,8 @@
|
||
|
-/* A Bison parser, made by GNU Bison 3.0.4. */
|
||
|
+/* A Bison parser, made by GNU Bison 3.0.5. */
|
||
|
|
||
|
/* Bison implementation for Yacc-like parsers in C
|
||
|
|
||
|
- Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
|
||
|
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
|
||
|
|
||
|
This program is free software: you can redistribute it and/or modify
|
||
|
it under the terms of the GNU General Public License as published by
|
||
|
@@ -44,7 +44,7 @@
|
||
|
#define YYBISON 1
|
||
|
|
||
|
/* Bison version. */
|
||
|
-#define YYBISON_VERSION "3.0.4"
|
||
|
+#define YYBISON_VERSION "3.0.5"
|
||
|
|
||
|
/* Skeleton name. */
|
||
|
#define YYSKELETON_NAME "yacc.c"
|
||
|
@@ -568,9 +568,9 @@
|
||
|
static const yytype_uint16 yyrline[] =
|
||
|
{
|
||
|
0, 169, 169, 171, 172, 173, 174, 179, 187, 195,
|
||
|
- 216, 240, 249, 258, 269, 278, 292, 301, 315, 321,
|
||
|
- 332, 338, 350, 361, 372, 376, 391, 414, 422, 434,
|
||
|
- 442
|
||
|
+ 216, 237, 246, 255, 266, 275, 289, 298, 312, 318,
|
||
|
+ 329, 335, 347, 358, 369, 373, 388, 411, 419, 431,
|
||
|
+ 439
|
||
|
};
|
||
|
#endif
|
||
|
|
||
|
@@ -1054,6 +1054,7 @@
|
||
|
case N: \
|
||
|
yyformat = S; \
|
||
|
break
|
||
|
+ default: /* Avoid compiler warnings. */
|
||
|
YYCASE_(0, YY_("syntax error"));
|
||
|
YYCASE_(1, YY_("syntax error, unexpected %s"));
|
||
|
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
|
||
|
@@ -1370,23 +1371,23 @@
|
||
|
switch (yyn)
|
||
|
{
|
||
|
case 7:
|
||
|
-#line 180 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 180 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
po_callback_comment_dispatcher ((yyvsp[0].string).string);
|
||
|
}
|
||
|
-#line 1378 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1379 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 8:
|
||
|
-#line 188 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 188 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
po_callback_domain ((yyvsp[0].string).string);
|
||
|
}
|
||
|
-#line 1386 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1387 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 9:
|
||
|
-#line 196 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 196 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
char *string2 = string_list_concat_destroy (&(yyvsp[-2].stringlist).stringlist);
|
||
|
char *string4 = string_list_concat_destroy (&(yyvsp[0].stringlist).stringlist);
|
||
|
@@ -1407,11 +1408,11 @@
|
||
|
free (string4);
|
||
|
}
|
||
|
}
|
||
|
-#line 1411 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1412 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 10:
|
||
|
-#line 217 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 217 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
char *string2 = string_list_concat_destroy (&(yyvsp[-2].stringlist).stringlist);
|
||
|
|
||
|
@@ -1419,14 +1420,11 @@
|
||
|
check_obsolete ((yyvsp[-3].message_intro), (yyvsp[-1].string));
|
||
|
check_obsolete ((yyvsp[-3].message_intro), (yyvsp[0].rhs));
|
||
|
if (!(yyvsp[-3].message_intro).obsolete || pass_obsolete_entries)
|
||
|
- {
|
||
|
- do_callback_message ((yyvsp[-3].message_intro).ctxt, string2, &(yyvsp[-3].message_intro).pos, (yyvsp[-1].string).string,
|
||
|
- (yyvsp[0].rhs).rhs.msgstr, (yyvsp[0].rhs).rhs.msgstr_len, &(yyvsp[0].rhs).pos,
|
||
|
- (yyvsp[-3].message_intro).prev_ctxt,
|
||
|
- (yyvsp[-3].message_intro).prev_id, (yyvsp[-3].message_intro).prev_id_plural,
|
||
|
- (yyvsp[-3].message_intro).obsolete);
|
||
|
- free ((yyvsp[-1].string).string);
|
||
|
- }
|
||
|
+ do_callback_message ((yyvsp[-3].message_intro).ctxt, string2, &(yyvsp[-3].message_intro).pos, (yyvsp[-1].string).string,
|
||
|
+ (yyvsp[0].rhs).rhs.msgstr, (yyvsp[0].rhs).rhs.msgstr_len, &(yyvsp[0].rhs).pos,
|
||
|
+ (yyvsp[-3].message_intro).prev_ctxt,
|
||
|
+ (yyvsp[-3].message_intro).prev_id, (yyvsp[-3].message_intro).prev_id_plural,
|
||
|
+ (yyvsp[-3].message_intro).obsolete);
|
||
|
else
|
||
|
{
|
||
|
free_message_intro ((yyvsp[-3].message_intro));
|
||
|
@@ -1435,11 +1433,11 @@
|
||
|
free ((yyvsp[0].rhs).rhs.msgstr);
|
||
|
}
|
||
|
}
|
||
|
-#line 1439 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1437 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 11:
|
||
|
-#line 241 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 238 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-2].message_intro), (yyvsp[-1].stringlist));
|
||
|
check_obsolete ((yyvsp[-2].message_intro), (yyvsp[0].string));
|
||
|
@@ -1448,11 +1446,11 @@
|
||
|
string_list_destroy (&(yyvsp[-1].stringlist).stringlist);
|
||
|
free ((yyvsp[0].string).string);
|
||
|
}
|
||
|
-#line 1452 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1450 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 12:
|
||
|
-#line 250 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 247 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-2].message_intro), (yyvsp[-1].stringlist));
|
||
|
check_obsolete ((yyvsp[-2].message_intro), (yyvsp[0].rhs));
|
||
|
@@ -1461,22 +1459,22 @@
|
||
|
string_list_destroy (&(yyvsp[-1].stringlist).stringlist);
|
||
|
free ((yyvsp[0].rhs).rhs.msgstr);
|
||
|
}
|
||
|
-#line 1465 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1463 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 13:
|
||
|
-#line 259 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 256 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-1].message_intro), (yyvsp[0].stringlist));
|
||
|
po_gram_error_at_line (&(yyvsp[-1].message_intro).pos, _("missing 'msgstr' section"));
|
||
|
free_message_intro ((yyvsp[-1].message_intro));
|
||
|
string_list_destroy (&(yyvsp[0].stringlist).stringlist);
|
||
|
}
|
||
|
-#line 1476 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1474 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 14:
|
||
|
-#line 270 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 267 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
(yyval.message_intro).prev_ctxt = NULL;
|
||
|
(yyval.message_intro).prev_id = NULL;
|
||
|
@@ -1485,11 +1483,11 @@
|
||
|
(yyval.message_intro).pos = (yyvsp[0].string).pos;
|
||
|
(yyval.message_intro).obsolete = (yyvsp[0].string).obsolete;
|
||
|
}
|
||
|
-#line 1489 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1487 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 15:
|
||
|
-#line 279 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 276 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-1].prev), (yyvsp[0].string));
|
||
|
(yyval.message_intro).prev_ctxt = (yyvsp[-1].prev).ctxt;
|
||
|
@@ -1499,11 +1497,11 @@
|
||
|
(yyval.message_intro).pos = (yyvsp[0].string).pos;
|
||
|
(yyval.message_intro).obsolete = (yyvsp[0].string).obsolete;
|
||
|
}
|
||
|
-#line 1503 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1501 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 16:
|
||
|
-#line 293 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 290 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-1].string), (yyvsp[0].stringlist));
|
||
|
(yyval.prev).ctxt = (yyvsp[-1].string).string;
|
||
|
@@ -1512,11 +1510,11 @@
|
||
|
(yyval.prev).pos = (yyvsp[-1].string).pos;
|
||
|
(yyval.prev).obsolete = (yyvsp[-1].string).obsolete;
|
||
|
}
|
||
|
-#line 1516 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1514 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 17:
|
||
|
-#line 302 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 299 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-2].string), (yyvsp[-1].stringlist));
|
||
|
check_obsolete ((yyvsp[-2].string), (yyvsp[0].string));
|
||
|
@@ -1526,21 +1524,21 @@
|
||
|
(yyval.prev).pos = (yyvsp[-2].string).pos;
|
||
|
(yyval.prev).obsolete = (yyvsp[-2].string).obsolete;
|
||
|
}
|
||
|
-#line 1530 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1528 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 18:
|
||
|
-#line 316 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 313 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
(yyval.string).string = NULL;
|
||
|
(yyval.string).pos = (yyvsp[0].pos).pos;
|
||
|
(yyval.string).obsolete = (yyvsp[0].pos).obsolete;
|
||
|
}
|
||
|
-#line 1540 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1538 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 19:
|
||
|
-#line 322 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 319 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-2].pos), (yyvsp[-1].stringlist));
|
||
|
check_obsolete ((yyvsp[-2].pos), (yyvsp[0].pos));
|
||
|
@@ -1548,21 +1546,21 @@
|
||
|
(yyval.string).pos = (yyvsp[0].pos).pos;
|
||
|
(yyval.string).obsolete = (yyvsp[0].pos).obsolete;
|
||
|
}
|
||
|
-#line 1552 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1550 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 20:
|
||
|
-#line 333 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 330 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
(yyval.string).string = NULL;
|
||
|
(yyval.string).pos = (yyvsp[0].pos).pos;
|
||
|
(yyval.string).obsolete = (yyvsp[0].pos).obsolete;
|
||
|
}
|
||
|
-#line 1562 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1560 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 21:
|
||
|
-#line 339 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 336 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-2].pos), (yyvsp[-1].stringlist));
|
||
|
check_obsolete ((yyvsp[-2].pos), (yyvsp[0].pos));
|
||
|
@@ -1570,11 +1568,11 @@
|
||
|
(yyval.string).pos = (yyvsp[0].pos).pos;
|
||
|
(yyval.string).obsolete = (yyvsp[0].pos).obsolete;
|
||
|
}
|
||
|
-#line 1574 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1572 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 22:
|
||
|
-#line 351 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 348 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-1].pos), (yyvsp[0].stringlist));
|
||
|
plural_counter = 0;
|
||
|
@@ -1582,30 +1580,30 @@
|
||
|
(yyval.string).pos = (yyvsp[-1].pos).pos;
|
||
|
(yyval.string).obsolete = (yyvsp[-1].pos).obsolete;
|
||
|
}
|
||
|
-#line 1586 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1584 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 23:
|
||
|
-#line 362 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 359 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-1].pos), (yyvsp[0].stringlist));
|
||
|
(yyval.string).string = string_list_concat_destroy (&(yyvsp[0].stringlist).stringlist);
|
||
|
(yyval.string).pos = (yyvsp[-1].pos).pos;
|
||
|
(yyval.string).obsolete = (yyvsp[-1].pos).obsolete;
|
||
|
}
|
||
|
-#line 1597 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1595 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 24:
|
||
|
-#line 373 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 370 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
(yyval.rhs) = (yyvsp[0].rhs);
|
||
|
}
|
||
|
-#line 1605 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1603 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 25:
|
||
|
-#line 377 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 374 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-1].rhs), (yyvsp[0].rhs));
|
||
|
(yyval.rhs).rhs.msgstr = XNMALLOC ((yyvsp[-1].rhs).rhs.msgstr_len + (yyvsp[0].rhs).rhs.msgstr_len, char);
|
||
|
@@ -1617,11 +1615,11 @@
|
||
|
(yyval.rhs).pos = (yyvsp[-1].rhs).pos;
|
||
|
(yyval.rhs).obsolete = (yyvsp[-1].rhs).obsolete;
|
||
|
}
|
||
|
-#line 1621 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1619 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 26:
|
||
|
-#line 392 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 389 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-4].pos), (yyvsp[-3].pos));
|
||
|
check_obsolete ((yyvsp[-4].pos), (yyvsp[-2].number));
|
||
|
@@ -1640,11 +1638,11 @@
|
||
|
(yyval.rhs).pos = (yyvsp[-4].pos).pos;
|
||
|
(yyval.rhs).obsolete = (yyvsp[-4].pos).obsolete;
|
||
|
}
|
||
|
-#line 1644 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1642 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 27:
|
||
|
-#line 415 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 412 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
string_list_init (&(yyval.stringlist).stringlist);
|
||
|
string_list_append (&(yyval.stringlist).stringlist, (yyvsp[0].string).string);
|
||
|
@@ -1652,11 +1650,11 @@
|
||
|
(yyval.stringlist).pos = (yyvsp[0].string).pos;
|
||
|
(yyval.stringlist).obsolete = (yyvsp[0].string).obsolete;
|
||
|
}
|
||
|
-#line 1656 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1654 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 28:
|
||
|
-#line 423 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 420 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-1].stringlist), (yyvsp[0].string));
|
||
|
(yyval.stringlist).stringlist = (yyvsp[-1].stringlist).stringlist;
|
||
|
@@ -1665,11 +1663,11 @@
|
||
|
(yyval.stringlist).pos = (yyvsp[-1].stringlist).pos;
|
||
|
(yyval.stringlist).obsolete = (yyvsp[-1].stringlist).obsolete;
|
||
|
}
|
||
|
-#line 1669 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1667 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 29:
|
||
|
-#line 435 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 432 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
string_list_init (&(yyval.stringlist).stringlist);
|
||
|
string_list_append (&(yyval.stringlist).stringlist, (yyvsp[0].string).string);
|
||
|
@@ -1677,11 +1675,11 @@
|
||
|
(yyval.stringlist).pos = (yyvsp[0].string).pos;
|
||
|
(yyval.stringlist).obsolete = (yyvsp[0].string).obsolete;
|
||
|
}
|
||
|
-#line 1681 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1679 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
case 30:
|
||
|
-#line 443 "po-gram-gen.y" /* yacc.c:1646 */
|
||
|
+#line 440 "po-gram-gen.y" /* yacc.c:1648 */
|
||
|
{
|
||
|
check_obsolete ((yyvsp[-1].stringlist), (yyvsp[0].string));
|
||
|
(yyval.stringlist).stringlist = (yyvsp[-1].stringlist).stringlist;
|
||
|
@@ -1690,11 +1688,11 @@
|
||
|
(yyval.stringlist).pos = (yyvsp[-1].stringlist).pos;
|
||
|
(yyval.stringlist).obsolete = (yyvsp[-1].stringlist).obsolete;
|
||
|
}
|
||
|
-#line 1694 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1692 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
break;
|
||
|
|
||
|
|
||
|
-#line 1698 "po-gram-gen.c" /* yacc.c:1646 */
|
||
|
+#line 1696 "po-gram-gen.c" /* yacc.c:1648 */
|
||
|
default: break;
|
||
|
}
|
||
|
/* User semantic actions sometimes alter yychar, and that requires
|
||
|
--
|
||
|
2.19.1
|
||
|
|