%{ /* rcparse.y -- parser for Windows rc files
- Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2007, 2008,
- 2011 Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support.
Extended by Kai Tietz, Onevision.
base_style = BS_AUTO3STATE;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_AUTOCHECKBOX;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_AUTORADIOBUTTON;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_EDIT;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_CHECKBOX | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = 0;
class.named = 0;
class.u.id = CTL_COMBOBOX;
- res_text_field = res_null_text;
+ res_text_field = res_null_text;
}
control_params
{
base_style = SS_CENTER;
class.named = 0;
class.u.id = CTL_STATIC;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_EDIT;
- res_text_field = res_null_text;
+ res_text_field = res_null_text;
}
control_params
{
base_style = BS_GROUPBOX;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_EDIT;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_EDIT;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = LBS_NOTIFY | WS_BORDER;
class.named = 0;
class.u.id = CTL_LISTBOX;
- res_text_field = res_null_text;
+ res_text_field = res_null_text;
}
control_params
{
base_style = SS_LEFT;
class.named = 0;
class.u.id = CTL_STATIC;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_PUSHBUTTON | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_RADIOBUTTON;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = SS_RIGHT;
class.named = 0;
class.u.id = CTL_STATIC;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = 0;
class.named = 0;
class.u.id = CTL_SCROLLBAR;
- res_text_field = res_null_text;
+ res_text_field = res_null_text;
}
control_params
{
base_style = BS_3STATE;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
$$ = $4;
}
| USERBUTTON resref numexpr ',' numexpr ',' numexpr ','
- numexpr ',' numexpr ','
+ numexpr ',' numexpr ','
{ style = WS_CHILD | WS_VISIBLE; }
styleexpr optcnumexpr
{
/* Stringtable resources. */
stringtable:
- STRINGTABLE suboptions BEG
+ STRINGTABLE suboptions BEG
{ sub_res_info = $2; rcparse_rcdata (); }
string_data END { rcparse_normal (); }
;
res_alloc (sizeof (rc_fixed_versioninfo)));
memset ($$, 0, sizeof (rc_fixed_versioninfo));
}
- | fixedverinfo FILEVERSION numexpr cnumexpr cnumexpr cnumexpr
+ | fixedverinfo FILEVERSION numexpr optcnumexpr optcnumexpr
+ optcnumexpr
{
- $1->file_version_ms = ($3 << 16) | $4;
- $1->file_version_ls = ($5 << 16) | $6;
+ $1->file_version_ms = ($3 << 16) | ($4 & 0xffff);
+ $1->file_version_ls = ($5 << 16) | ($6 & 0xffff);
$$ = $1;
}
- | fixedverinfo PRODUCTVERSION numexpr cnumexpr cnumexpr cnumexpr
+ | fixedverinfo PRODUCTVERSION numexpr optcnumexpr optcnumexpr
+ optcnumexpr
{
- $1->product_version_ms = ($3 << 16) | $4;
- $1->product_version_ls = ($5 << 16) | $6;
+ $1->product_version_ms = ($3 << 16) | ($4 & 0xffff);
+ $1->product_version_ls = ($5 << 16) | ($6 & 0xffff);
$$ = $1;
}
| fixedverinfo FILEFLAGSMASK numexpr
}
| sizednumexpr '/' sizednumexpr
{
- $$.val = $1.val / $3.val;
+ $$.val = $1.val / ($3.val ? $3.val : 1);
$$.dword = $1.dword || $3.dword;
}
| sizednumexpr '%' sizednumexpr
{
- $$.val = $1.val % $3.val;
+ $$.val = $1.val % ($3.val ? $3.val : 1);
$$.dword = $1.dword || $3.dword;
}
| sizednumexpr '+' sizednumexpr
}
| sizedposnumexpr '/' sizednumexpr
{
- $$.val = $1.val / $3.val;
+ $$.val = $1.val / ($3.val ? $3.val : 1);
$$.dword = $1.dword || $3.dword;
}
| sizedposnumexpr '%' sizednumexpr
{
- $$.val = $1.val % $3.val;
+ /* PR 17512: file: 89105a25. */
+ $$.val = $1.val % ($3.val ? $3.val : 1);
$$.dword = $1.dword || $3.dword;
}
| sizedposnumexpr '+' sizednumexpr