[MSI] Fix regression CORE-14646

Pressing Next-button in setup of "1C Enterprise (training version) 8.3.10.2252"
did not have any effect anymore. Setup could not be completed anymore.

The regression was introduced to ros by 0.4.8-dev-739-g
f8b992f2d3
and was confirmed being a Wine-regression in
https://bugs.winehq.org/show_bug.cgi?id=45445

Thanks to Fabian Maurer for communicating to Wine and thanks to
Thomas Faber for regenerating cond.tab.c from the fixed source file cond.y
using BISON.

I also committed the same fix to 0.4.12-RC-32-g152ee20.
This commit is contained in:
Joachim Henze 2019-06-14 23:21:37 +02:00
parent ec14975612
commit 10f00f8c1c
2 changed files with 133 additions and 114 deletions

View file

@ -1,8 +1,8 @@
/* A Bison parser, made by GNU Bison 3.0. */
/* A Bison parser, made by GNU Bison 3.1. */
/* Bison implementation for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2013 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"
#define YYBISON_VERSION "3.1"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@ -186,11 +186,11 @@ static void value_free( struct value val )
#line 188 "cond.tab.c" /* yacc.c:339 */
# ifndef YY_NULL
# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
# define YY_NULL nullptr
# define YY_NULLPTR nullptr
# else
# define YY_NULL 0
# define YY_NULLPTR 0
# endif
# endif
@ -202,10 +202,7 @@ static void value_free( struct value val )
# define YYERROR_VERBOSE 0
#endif
/* In a future release of Bison, this section will be replaced
by #include "cond.tab.h". */
#ifndef YY_COND_E_REACTOSSYNC_GCC_DLL_WIN32_MSI_COND_TAB_H_INCLUDED
# define YY_COND_E_REACTOSSYNC_GCC_DLL_WIN32_MSI_COND_TAB_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@ -262,7 +259,7 @@ extern int cond_debug;
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
{
#line 122 "cond.y" /* yacc.c:355 */
@ -273,8 +270,10 @@ union YYSTYPE
INT operator;
BOOL bool;
#line 277 "cond.tab.c" /* yacc.c:355 */
#line 274 "cond.tab.c" /* yacc.c:355 */
};
typedef union YYSTYPE YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
#endif
@ -283,11 +282,11 @@ union YYSTYPE
int cond_parse (COND_input *info);
#endif /* !YY_COND_E_REACTOSSYNC_GCC_DLL_WIN32_MSI_COND_TAB_H_INCLUDED */
/* Copy the second part of user declarations. */
#line 291 "cond.tab.c" /* yacc.c:358 */
#line 290 "cond.tab.c" /* yacc.c:358 */
#ifdef short
# undef short
@ -308,13 +307,13 @@ typedef signed char yytype_int8;
#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
typedef unsigned short int yytype_uint16;
typedef unsigned short yytype_uint16;
#endif
#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
typedef short int yytype_int16;
typedef short yytype_int16;
#endif
#ifndef YYSIZE_T
@ -326,7 +325,7 @@ typedef short int yytype_int16;
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
# define YYSIZE_T unsigned int
# define YYSIZE_T unsigned
# endif
#endif
@ -344,11 +343,30 @@ typedef short int yytype_int16;
# endif
#endif
#ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
# if (! defined __GNUC__ || __GNUC__ < 2 \
|| (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
# define __attribute__(Spec) /* empty */
#ifndef YY_ATTRIBUTE
# if (defined __GNUC__ \
&& (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
|| defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
# else
# define YY_ATTRIBUTE(Spec) /* empty */
# endif
#endif
#ifndef YY_ATTRIBUTE_PURE
# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
#endif
#ifndef YY_ATTRIBUTE_UNUSED
# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
#endif
#if !defined _Noreturn \
&& (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
# if defined _MSC_VER && 1200 <= _MSC_VER
# define _Noreturn __declspec (noreturn)
# else
# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
# endif
#endif
@ -359,7 +377,7 @@ typedef short int yytype_int16;
# define YYUSE(E) /* empty */
#endif
#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
@ -527,7 +545,7 @@ union yyalloc
#define YYMAXUTOK 295
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
as returned by yylex, without out-of-bounds checking. */
@ -591,7 +609,7 @@ static const char *const yytname[] =
"COND_QUESTION", "COND_AMPER", "COND_EXCLAM", "COND_IDENT",
"COND_NUMBER", "COND_LITER", "COND_ERROR", "$accept", "condition",
"expression", "boolean_term", "boolean_factor", "operator", "value",
"identifier", YY_NULL
"identifier", YY_NULLPTR
};
#endif
@ -845,7 +863,7 @@ do { \
static void
yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, COND_input *info)
{
unsigned long int yylno = yyrline[yyrule];
unsigned long yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule];
int yyi;
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
@ -994,11 +1012,11 @@ static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken)
{
YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
YYSIZE_T yysize = yysize0;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
const char *yyformat = YY_NULL;
const char *yyformat = YY_NULLPTR;
/* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per
@ -1055,7 +1073,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
}
yyarg[yycount++] = yytname[yyx];
{
YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
@ -1071,6 +1089,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
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"));
@ -1281,7 +1300,7 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
yyvsp = yyvs + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
(unsigned long) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
@ -1392,89 +1411,89 @@ yyreduce:
switch (yyn)
{
case 2:
#line 150 "cond.y" /* yacc.c:1646 */
#line 150 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
cond->result = (yyvsp[0].bool);
}
#line 1401 "cond.tab.c" /* yacc.c:1646 */
#line 1420 "cond.tab.c" /* yacc.c:1651 */
break;
case 3:
#line 155 "cond.y" /* yacc.c:1646 */
#line 155 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
cond->result = MSICONDITION_NONE;
}
#line 1410 "cond.tab.c" /* yacc.c:1646 */
#line 1429 "cond.tab.c" /* yacc.c:1651 */
break;
case 4:
#line 163 "cond.y" /* yacc.c:1646 */
#line 163 "cond.y" /* yacc.c:1651 */
{
(yyval.bool) = (yyvsp[0].bool);
}
#line 1418 "cond.tab.c" /* yacc.c:1646 */
#line 1437 "cond.tab.c" /* yacc.c:1651 */
break;
case 5:
#line 167 "cond.y" /* yacc.c:1646 */
#line 167 "cond.y" /* yacc.c:1651 */
{
(yyval.bool) = (yyvsp[-2].bool) || (yyvsp[0].bool);
}
#line 1426 "cond.tab.c" /* yacc.c:1646 */
#line 1445 "cond.tab.c" /* yacc.c:1651 */
break;
case 6:
#line 171 "cond.y" /* yacc.c:1646 */
#line 171 "cond.y" /* yacc.c:1651 */
{
(yyval.bool) = !(yyvsp[-2].bool) || (yyvsp[0].bool);
}
#line 1434 "cond.tab.c" /* yacc.c:1646 */
#line 1453 "cond.tab.c" /* yacc.c:1651 */
break;
case 7:
#line 175 "cond.y" /* yacc.c:1646 */
#line 175 "cond.y" /* yacc.c:1651 */
{
(yyval.bool) = ( (yyvsp[-2].bool) || (yyvsp[0].bool) ) && !( (yyvsp[-2].bool) && (yyvsp[0].bool) );
}
#line 1442 "cond.tab.c" /* yacc.c:1646 */
#line 1461 "cond.tab.c" /* yacc.c:1651 */
break;
case 8:
#line 179 "cond.y" /* yacc.c:1646 */
#line 179 "cond.y" /* yacc.c:1651 */
{
(yyval.bool) = ( (yyvsp[-2].bool) && (yyvsp[0].bool) ) || ( !(yyvsp[-2].bool) && !(yyvsp[0].bool) );
}
#line 1450 "cond.tab.c" /* yacc.c:1646 */
#line 1469 "cond.tab.c" /* yacc.c:1651 */
break;
case 9:
#line 186 "cond.y" /* yacc.c:1646 */
#line 186 "cond.y" /* yacc.c:1651 */
{
(yyval.bool) = (yyvsp[0].bool);
}
#line 1458 "cond.tab.c" /* yacc.c:1646 */
#line 1477 "cond.tab.c" /* yacc.c:1651 */
break;
case 10:
#line 190 "cond.y" /* yacc.c:1646 */
#line 190 "cond.y" /* yacc.c:1651 */
{
(yyval.bool) = (yyvsp[-2].bool) && (yyvsp[0].bool);
}
#line 1466 "cond.tab.c" /* yacc.c:1646 */
#line 1485 "cond.tab.c" /* yacc.c:1651 */
break;
case 11:
#line 197 "cond.y" /* yacc.c:1646 */
#line 197 "cond.y" /* yacc.c:1651 */
{
(yyval.bool) = !(yyvsp[0].bool);
}
#line 1474 "cond.tab.c" /* yacc.c:1646 */
#line 1493 "cond.tab.c" /* yacc.c:1651 */
break;
case 12:
#line 201 "cond.y" /* yacc.c:1646 */
#line 201 "cond.y" /* yacc.c:1651 */
{
if ((yyvsp[0].value).type == VALUE_INTEGER)
(yyval.bool) = (yyvsp[0].value).u.integer ? 1 : 0;
@ -1482,11 +1501,11 @@ yyreduce:
(yyval.bool) = (yyvsp[0].value).u.string && (yyvsp[0].value).u.string[0];
value_free( (yyvsp[0].value) );
}
#line 1486 "cond.tab.c" /* yacc.c:1646 */
#line 1505 "cond.tab.c" /* yacc.c:1651 */
break;
case 13:
#line 209 "cond.y" /* yacc.c:1646 */
#line 209 "cond.y" /* yacc.c:1651 */
{
if ((yyvsp[-2].value).type == VALUE_INTEGER && (yyvsp[0].value).type == VALUE_INTEGER)
{
@ -1499,7 +1518,7 @@ yyreduce:
}
else if ((yyvsp[-2].value).type == VALUE_LITERAL || (yyvsp[0].value).type == VALUE_LITERAL)
{
(yyval.bool) = FALSE;
(yyval.bool) = ((yyvsp[-1].operator) == COND_NE || (yyvsp[-1].operator) == COND_INE );
}
else if ((yyvsp[-2].value).type == VALUE_SYMBOL) /* symbol operator integer */
{
@ -1521,127 +1540,127 @@ yyreduce:
value_free( (yyvsp[-2].value) );
value_free( (yyvsp[0].value) );
}
#line 1525 "cond.tab.c" /* yacc.c:1646 */
#line 1544 "cond.tab.c" /* yacc.c:1651 */
break;
case 14:
#line 244 "cond.y" /* yacc.c:1646 */
#line 244 "cond.y" /* yacc.c:1651 */
{
(yyval.bool) = (yyvsp[-1].bool);
}
#line 1533 "cond.tab.c" /* yacc.c:1646 */
#line 1552 "cond.tab.c" /* yacc.c:1651 */
break;
case 15:
#line 251 "cond.y" /* yacc.c:1646 */
#line 251 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_EQ; }
#line 1539 "cond.tab.c" /* yacc.c:1646 */
#line 1558 "cond.tab.c" /* yacc.c:1651 */
break;
case 16:
#line 252 "cond.y" /* yacc.c:1646 */
#line 252 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_NE; }
#line 1545 "cond.tab.c" /* yacc.c:1646 */
#line 1564 "cond.tab.c" /* yacc.c:1651 */
break;
case 17:
#line 253 "cond.y" /* yacc.c:1646 */
#line 253 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_LT; }
#line 1551 "cond.tab.c" /* yacc.c:1646 */
#line 1570 "cond.tab.c" /* yacc.c:1651 */
break;
case 18:
#line 254 "cond.y" /* yacc.c:1646 */
#line 254 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_GT; }
#line 1557 "cond.tab.c" /* yacc.c:1646 */
#line 1576 "cond.tab.c" /* yacc.c:1651 */
break;
case 19:
#line 255 "cond.y" /* yacc.c:1646 */
#line 255 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_LE; }
#line 1563 "cond.tab.c" /* yacc.c:1646 */
#line 1582 "cond.tab.c" /* yacc.c:1651 */
break;
case 20:
#line 256 "cond.y" /* yacc.c:1646 */
#line 256 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_GE; }
#line 1569 "cond.tab.c" /* yacc.c:1646 */
#line 1588 "cond.tab.c" /* yacc.c:1651 */
break;
case 21:
#line 257 "cond.y" /* yacc.c:1646 */
#line 257 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_SS; }
#line 1575 "cond.tab.c" /* yacc.c:1646 */
#line 1594 "cond.tab.c" /* yacc.c:1651 */
break;
case 22:
#line 258 "cond.y" /* yacc.c:1646 */
#line 258 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_IEQ; }
#line 1581 "cond.tab.c" /* yacc.c:1646 */
#line 1600 "cond.tab.c" /* yacc.c:1651 */
break;
case 23:
#line 259 "cond.y" /* yacc.c:1646 */
#line 259 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_INE; }
#line 1587 "cond.tab.c" /* yacc.c:1646 */
#line 1606 "cond.tab.c" /* yacc.c:1651 */
break;
case 24:
#line 260 "cond.y" /* yacc.c:1646 */
#line 260 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_ILT; }
#line 1593 "cond.tab.c" /* yacc.c:1646 */
#line 1612 "cond.tab.c" /* yacc.c:1651 */
break;
case 25:
#line 261 "cond.y" /* yacc.c:1646 */
#line 261 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_IGT; }
#line 1599 "cond.tab.c" /* yacc.c:1646 */
#line 1618 "cond.tab.c" /* yacc.c:1651 */
break;
case 26:
#line 262 "cond.y" /* yacc.c:1646 */
#line 262 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_ILE; }
#line 1605 "cond.tab.c" /* yacc.c:1646 */
#line 1624 "cond.tab.c" /* yacc.c:1651 */
break;
case 27:
#line 263 "cond.y" /* yacc.c:1646 */
#line 263 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_IGE; }
#line 1611 "cond.tab.c" /* yacc.c:1646 */
#line 1630 "cond.tab.c" /* yacc.c:1651 */
break;
case 28:
#line 264 "cond.y" /* yacc.c:1646 */
#line 264 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_ISS; }
#line 1617 "cond.tab.c" /* yacc.c:1646 */
#line 1636 "cond.tab.c" /* yacc.c:1651 */
break;
case 29:
#line 265 "cond.y" /* yacc.c:1646 */
#line 265 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_LHS; }
#line 1623 "cond.tab.c" /* yacc.c:1646 */
#line 1642 "cond.tab.c" /* yacc.c:1651 */
break;
case 30:
#line 266 "cond.y" /* yacc.c:1646 */
#line 266 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_RHS; }
#line 1629 "cond.tab.c" /* yacc.c:1646 */
#line 1648 "cond.tab.c" /* yacc.c:1651 */
break;
case 31:
#line 267 "cond.y" /* yacc.c:1646 */
#line 267 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_ILHS; }
#line 1635 "cond.tab.c" /* yacc.c:1646 */
#line 1654 "cond.tab.c" /* yacc.c:1651 */
break;
case 32:
#line 268 "cond.y" /* yacc.c:1646 */
#line 268 "cond.y" /* yacc.c:1651 */
{ (yyval.operator) = COND_IRHS; }
#line 1641 "cond.tab.c" /* yacc.c:1646 */
#line 1660 "cond.tab.c" /* yacc.c:1651 */
break;
case 33:
#line 273 "cond.y" /* yacc.c:1646 */
#line 273 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
UINT len;
@ -1655,11 +1674,11 @@ yyreduce:
}
cond_free( (yyvsp[0].identifier) );
}
#line 1659 "cond.tab.c" /* yacc.c:1646 */
#line 1678 "cond.tab.c" /* yacc.c:1651 */
break;
case 34:
#line 287 "cond.y" /* yacc.c:1646 */
#line 287 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
UINT len = GetEnvironmentVariableW( (yyvsp[0].identifier), NULL, 0 );
@ -1674,11 +1693,11 @@ yyreduce:
}
cond_free( (yyvsp[0].identifier) );
}
#line 1678 "cond.tab.c" /* yacc.c:1646 */
#line 1697 "cond.tab.c" /* yacc.c:1651 */
break;
case 35:
#line 302 "cond.y" /* yacc.c:1646 */
#line 302 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
(yyval.value).type = VALUE_LITERAL;
@ -1686,11 +1705,11 @@ yyreduce:
if( !(yyval.value).u.string )
YYABORT;
}
#line 1690 "cond.tab.c" /* yacc.c:1646 */
#line 1709 "cond.tab.c" /* yacc.c:1651 */
break;
case 36:
#line 310 "cond.y" /* yacc.c:1646 */
#line 310 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
LPWSTR szNum = COND_GetString( cond, &(yyvsp[0].str) );
@ -1700,11 +1719,11 @@ yyreduce:
(yyval.value).u.integer = atoiW( szNum );
cond_free( szNum );
}
#line 1704 "cond.tab.c" /* yacc.c:1646 */
#line 1723 "cond.tab.c" /* yacc.c:1651 */
break;
case 37:
#line 320 "cond.y" /* yacc.c:1646 */
#line 320 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
INSTALLSTATE install = INSTALLSTATE_UNKNOWN, action = INSTALLSTATE_UNKNOWN;
@ -1721,11 +1740,11 @@ yyreduce:
}
cond_free( (yyvsp[0].identifier) );
}
#line 1725 "cond.tab.c" /* yacc.c:1646 */
#line 1744 "cond.tab.c" /* yacc.c:1651 */
break;
case 38:
#line 337 "cond.y" /* yacc.c:1646 */
#line 337 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
INSTALLSTATE install = INSTALLSTATE_UNKNOWN, action = INSTALLSTATE_UNKNOWN;
@ -1742,11 +1761,11 @@ yyreduce:
}
cond_free( (yyvsp[0].identifier) );
}
#line 1746 "cond.tab.c" /* yacc.c:1646 */
#line 1765 "cond.tab.c" /* yacc.c:1651 */
break;
case 39:
#line 354 "cond.y" /* yacc.c:1646 */
#line 354 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
INSTALLSTATE install, action;
@ -1763,11 +1782,11 @@ yyreduce:
}
cond_free( (yyvsp[0].identifier) );
}
#line 1767 "cond.tab.c" /* yacc.c:1646 */
#line 1786 "cond.tab.c" /* yacc.c:1651 */
break;
case 40:
#line 371 "cond.y" /* yacc.c:1646 */
#line 371 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
INSTALLSTATE install = INSTALLSTATE_UNKNOWN, action = INSTALLSTATE_UNKNOWN;
@ -1784,22 +1803,22 @@ yyreduce:
}
cond_free( (yyvsp[0].identifier) );
}
#line 1788 "cond.tab.c" /* yacc.c:1646 */
#line 1807 "cond.tab.c" /* yacc.c:1651 */
break;
case 41:
#line 391 "cond.y" /* yacc.c:1646 */
#line 391 "cond.y" /* yacc.c:1651 */
{
COND_input* cond = (COND_input*) info;
(yyval.identifier) = COND_GetString( cond, &(yyvsp[0].str) );
if( !(yyval.identifier) )
YYABORT;
}
#line 1799 "cond.tab.c" /* yacc.c:1646 */
#line 1818 "cond.tab.c" /* yacc.c:1651 */
break;
#line 1803 "cond.tab.c" /* yacc.c:1646 */
#line 1822 "cond.tab.c" /* yacc.c:1651 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@ -2027,7 +2046,7 @@ yyreturn:
#endif
return yyresult;
}
#line 399 "cond.y" /* yacc.c:1906 */
#line 399 "cond.y" /* yacc.c:1910 */

View file

@ -218,7 +218,7 @@ boolean_factor:
}
else if ($1.type == VALUE_LITERAL || $3.type == VALUE_LITERAL)
{
$$ = FALSE;
$$ = ($2 == COND_NE || $2 == COND_INE );
}
else if ($1.type == VALUE_SYMBOL) /* symbol operator integer */
{