Sync to Wine-20050628:
Mike McCormack <mike(a)codeweavers.com>
- Move function prototypes to header.
Eric Pouech <pouech-eric(a)wanadoo.fr>
- Const correctness fixes.
Modified: trunk/reactos/tools/wrc/parser.y
Modified: trunk/reactos/tools/wrc/translation.c
Modified: trunk/reactos/tools/wrc/wrc.c
Modified: trunk/reactos/tools/wrc/wrc.h
Modified: trunk/reactos/tools/wrc/y.tab.c
Modified: trunk/reactos/tools/wrc/y.tab.h
_____
Modified: trunk/reactos/tools/wrc/parser.y
--- trunk/reactos/tools/wrc/parser.y 2005-07-06 21:32:16 UTC (rev
16468)
+++ trunk/reactos/tools/wrc/parser.y 2005-07-06 21:40:07 UTC (rev
16469)
@@ -2571,7 +2571,7 @@
}
/* qsort sorting function for string table entries */
-#define STE(p) ((stt_entry_t *)(p))
+#define STE(p) ((const stt_entry_t *)(p))
static int sort_stt_entry(const void *e1, const void *e2)
{
return STE(e1)->id - STE(e2)->id;
_____
Modified: trunk/reactos/tools/wrc/translation.c
--- trunk/reactos/tools/wrc/translation.c 2005-07-06 21:32:16 UTC
(rev 16468)
+++ trunk/reactos/tools/wrc/translation.c 2005-07-06 21:40:07 UTC
(rev 16469)
@@ -20,6 +20,7 @@
#include <stdlib.h>
#include "dumpres.h"
+#include "wrc.h"
#define MASTER_LANGUAGE LANG_ENGLISH
#define NB_LANG 0x94
_____
Modified: trunk/reactos/tools/wrc/wrc.c
--- trunk/reactos/tools/wrc/wrc.c 2005-07-06 21:32:16 UTC (rev
16468)
+++ trunk/reactos/tools/wrc/wrc.c 2005-07-06 21:40:07 UTC (rev
16469)
@@ -107,12 +107,6 @@
" 1994 Martin von Loewis\n";
/*
- * External functions
- */
-void write_resfile(char *outname, resource_t *top);
-void verify_translations(resource_t *top);
-
-/*
* Set if compiling in 32bit mode (default).
*/
int win32 = 1;
_____
Modified: trunk/reactos/tools/wrc/wrc.h
--- trunk/reactos/tools/wrc/wrc.h 2005-07-06 21:32:16 UTC (rev
16468)
+++ trunk/reactos/tools/wrc/wrc.h 2005-07-06 21:40:07 UTC (rev
16469)
@@ -66,4 +66,7 @@
extern resource_t *resource_top;
extern language_t *currentlanguage;
+void verify_translations(resource_t *top);
+void write_resfile(char *outname, resource_t *top);
+
#endif
_____
Modified: trunk/reactos/tools/wrc/y.tab.c
--- trunk/reactos/tools/wrc/y.tab.c 2005-07-06 21:32:16 UTC (rev
16468)
+++ trunk/reactos/tools/wrc/y.tab.c 2005-07-06 21:40:07 UTC (rev
16469)
@@ -1,7 +1,7 @@
-/* A Bison parser, made by GNU Bison 1.875. */
+/* A Bison parser, made by GNU Bison 1.875c. */
/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
Foundation, Inc.
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 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
@@ -523,7 +523,7 @@
ani_any_t *ani;
} YYSTYPE;
/* Line 191 of yacc.c. */
-#line 526 "y.tab.c"
+#line 527 "parser.tab.c"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
@@ -535,22 +535,29 @@
/* Line 214 of yacc.c. */
-#line 538 "y.tab.c"
+#line 539 "parser.tab.c"
#if ! defined (yyoverflow) || YYERROR_VERBOSE
+# ifndef YYFREE
+# define YYFREE free
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# endif
+
/* The parser invokes alloca or malloc; define the necessary symbols.
*/
-# if YYSTACK_USE_ALLOCA
-# define YYSTACK_ALLOC alloca
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# define YYSTACK_ALLOC alloca
+# endif
# else
-# ifndef YYSTACK_USE_ALLOCA
-# if defined (alloca) || defined (_ALLOCA_H)
-# define YYSTACK_ALLOC alloca
-# else
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# endif
+# if defined (alloca) || defined (_ALLOCA_H)
+# define YYSTACK_ALLOC alloca
+# else
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
# endif
# endif
# endif
@@ -563,15 +570,15 @@
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
-# define YYSTACK_ALLOC malloc
-# define YYSTACK_FREE free
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
# endif
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
#if (! defined (yyoverflow) \
&& (! defined (__cplusplus) \
- || (YYSTYPE_IS_TRIVIAL)))
+ || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
@@ -592,7 +599,7 @@
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
-# if 1 < __GNUC__
+# if defined (__GNUC__) && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
@@ -866,38 +873,38 @@
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
- "$end", "error", "$undefined", "tNL",
"tNUMBER", "tLNUMBER",
"tSTRING",
- "tIDENT", "tFILENAME", "tRAWDATA",
"tACCELERATORS", "tBITMAP",
- "tCURSOR", "tDIALOG", "tDIALOGEX", "tMENU",
"tMENUEX",
"tMESSAGETABLE",
- "tRCDATA", "tVERSIONINFO", "tSTRINGTABLE",
"tFONT", "tFONTDIR",
"tICON",
- "tAUTO3STATE", "tAUTOCHECKBOX", "tAUTORADIOBUTTON",
"tCHECKBOX",
- "tDEFPUSHBUTTON", "tPUSHBUTTON", "tRADIOBUTTON",
"tSTATE3",
"tGROUPBOX",
- "tCOMBOBOX", "tLISTBOX", "tSCROLLBAR",
"tCONTROL", "tEDITTEXT",
- "tRTEXT", "tCTEXT", "tLTEXT", "tBLOCK",
"tVALUE", "tSHIFT", "tALT",
- "tASCII", "tVIRTKEY", "tGRAYED", "tCHECKED",
"tINACTIVE",
"tNOINVERT",
- "tPURE", "tIMPURE", "tDISCARDABLE",
"tLOADONCALL", "tPRELOAD",
"tFIXED",
- "tMOVEABLE", "tCLASS", "tCAPTION",
"tCHARACTERISTICS", "tEXSTYLE",
- "tSTYLE", "tVERSION", "tLANGUAGE",
"tFILEVERSION", "tPRODUCTVERSION",
- "tFILEFLAGSMASK", "tFILEOS", "tFILETYPE",
"tFILEFLAGS",
"tFILESUBTYPE",
- "tMENUBARBREAK", "tMENUBREAK", "tMENUITEM",
"tPOPUP", "tSEPARATOR",
- "tHELP", "tTOOLBAR", "tBUTTON", "tBEGIN",
"tEND", "tDLGINIT", "'|'",
- "'^'", "'&'", "'+'",
"'-'", "'*'", "'/'",
"'~'", "tNOT", "pUPM",
"','",
- "'('", "')'", "$accept",
"resource_file", "resources", "resource",
"@1",
- "usrcvt", "nameid", "nameid_s",
"resource_definition", "filename",
- "bitmap", "cursor", "icon", "font",
"fontdir", "messagetable",
"rcdata",
- "dlginit", "userres", "usertype",
"accelerators", "events",
"acc_opt",
- "accs", "acc", "dialog", "dlg_attributes",
"ctrls", "lab_ctrl",
- "ctrl_desc", "iconinfo", "gen_ctrl",
"opt_font",
"optional_style_pair",
- "style", "ctlclass", "dialogex",
"dlgex_attribs", "exctrls",
- "gen_exctrl", "lab_exctrl", "exctrl_desc",
"opt_data", "helpid",
- "opt_exfont", "opt_expr", "menu", "menu_body",
"item_definitions",
- "item_options", "menuex", "menuex_body",
"itemex_definitions",
- "itemex_options", "itemex_p_options", "stringtable",
"stt_head",
- "strings", "opt_comma", "versioninfo",
"fix_version", "ver_blocks",
- "ver_block", "ver_values", "ver_value",
"ver_words", "toolbar",
- "toolbar_items", "loadmemopts", "lamo", "lama",
"opt_lvc",
- "opt_language", "opt_characts", "opt_version",
"raw_data",
- "raw_elements", "file_raw", "e_expr", "expr",
"xpr_no_not", "xpr",
+ "$end", "error", "$undefined", "tNL",
"tNUMBER", "tLNUMBER",
"tSTRING",
+ "tIDENT", "tFILENAME", "tRAWDATA",
"tACCELERATORS", "tBITMAP",
"tCURSOR",
+ "tDIALOG", "tDIALOGEX", "tMENU", "tMENUEX",
"tMESSAGETABLE",
"tRCDATA",
+ "tVERSIONINFO", "tSTRINGTABLE", "tFONT",
"tFONTDIR", "tICON",
+ "tAUTO3STATE", "tAUTOCHECKBOX", "tAUTORADIOBUTTON",
"tCHECKBOX",
+ "tDEFPUSHBUTTON", "tPUSHBUTTON", "tRADIOBUTTON",
"tSTATE3",
"tGROUPBOX",
+ "tCOMBOBOX", "tLISTBOX", "tSCROLLBAR",
"tCONTROL", "tEDITTEXT",
"tRTEXT",
+ "tCTEXT", "tLTEXT", "tBLOCK", "tVALUE",
"tSHIFT", "tALT", "tASCII",
+ "tVIRTKEY", "tGRAYED", "tCHECKED", "tINACTIVE",
"tNOINVERT", "tPURE",
+ "tIMPURE", "tDISCARDABLE", "tLOADONCALL",
"tPRELOAD", "tFIXED",
+ "tMOVEABLE", "tCLASS", "tCAPTION",
"tCHARACTERISTICS", "tEXSTYLE",
+ "tSTYLE", "tVERSION", "tLANGUAGE",
"tFILEVERSION", "tPRODUCTVERSION",
+ "tFILEFLAGSMASK", "tFILEOS", "tFILETYPE",
"tFILEFLAGS",
"tFILESUBTYPE",
+ "tMENUBARBREAK", "tMENUBREAK", "tMENUITEM",
"tPOPUP", "tSEPARATOR",
+ "tHELP", "tTOOLBAR", "tBUTTON", "tBEGIN",
"tEND", "tDLGINIT", "'|'",
+ "'^'", "'&'", "'+'",
"'-'", "'*'", "'/'",
"'~'", "tNOT", "pUPM",
"','",
+ "'('", "')'", "$accept",
"resource_file", "resources", "resource",
"@1",
+ "usrcvt", "nameid", "nameid_s",
"resource_definition", "filename",
+ "bitmap", "cursor", "icon", "font",
"fontdir", "messagetable",
"rcdata",
+ "dlginit", "userres", "usertype",
"accelerators", "events",
"acc_opt",
+ "accs", "acc", "dialog", "dlg_attributes",
"ctrls", "lab_ctrl",
+ "ctrl_desc", "iconinfo", "gen_ctrl",
"opt_font",
"optional_style_pair",
+ "style", "ctlclass", "dialogex",
"dlgex_attribs", "exctrls",
+ "gen_exctrl", "lab_exctrl", "exctrl_desc",
"opt_data", "helpid",
+ "opt_exfont", "opt_expr", "menu", "menu_body",
"item_definitions",
+ "item_options", "menuex", "menuex_body",
"itemex_definitions",
+ "itemex_options", "itemex_p_options", "stringtable",
"stt_head",
+ "strings", "opt_comma", "versioninfo",
"fix_version", "ver_blocks",
+ "ver_block", "ver_values", "ver_value",
"ver_words", "toolbar",
+ "toolbar_items", "loadmemopts", "lamo", "lama",
"opt_lvc",
+ "opt_language", "opt_characts", "opt_version",
"raw_data",
+ "raw_elements", "file_raw", "e_expr", "expr",
"xpr_no_not", "xpr",
"any_num", 0
};
#endif
@@ -1388,8 +1395,9 @@
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrlab1
+#define YYERROR goto yyerrorlab
+
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
@@ -1422,11 +1430,11 @@
are run). */
#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- Current.first_line = Rhs[1].first_line; \
- Current.first_column = Rhs[1].first_column; \
- Current.last_line = Rhs[N].last_line; \
- Current.last_column = Rhs[N].last_column;
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ ((Current).first_line = (Rhs)[1].first_line, \
+ (Current).first_column = (Rhs)[1].first_column, \
+ (Current).last_line = (Rhs)[N].last_line, \
+ (Current).last_column = (Rhs)[N].last_column)
#endif
/* YYLEX -- calling `yylex' with the right arguments. */
@@ -1470,7 +1478,7 @@
/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (cinluded). |
+| TOP (included). |
`------------------------------------------------------------------*/
#if defined (__STDC__) || defined (__cplusplus)
@@ -1510,9 +1518,9 @@
#endif
{
int yyi;
- unsigned int yylineno = yyrline[yyrule];
+ unsigned int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
- yyrule - 1, yylineno);
+ yyrule - 1, yylno);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
@@ -1549,7 +1557,7 @@
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
-#if YYMAXDEPTH == 0
+#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
# undef YYMAXDEPTH
#endif
@@ -4146,8 +4154,8 @@
}
-/* Line 991 of yacc.c. */
-#line 4150 "y.tab.c"
+/* Line 1000 of yacc.c. */
+#line 4159 "parser.tab.c"
yyvsp -= yylen;
yyssp -= yylen;
@@ -4188,18 +4196,33 @@
{
YYSIZE_T yysize = 0;
int yytype = YYTRANSLATE (yychar);
+ const char* yyprefix;
char *yymsg;
- int yyx, yycount;
+ int yyx;
- yycount = 0;
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. */
- for (yyx = yyn < 0 ? -yyn : 0;
- yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 0;
+
+ yyprefix = ", expecting ";
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- yysize += yystrlen (yytname[yyx]) + 15, yycount++;
- yysize += yystrlen ("syntax error, unexpected ") + 1;
- yysize += yystrlen (yytname[yytype]);
+ {
+ yysize += yystrlen (yyprefix) + yystrlen (yytname
[yyx]);
+ yycount += 1;
+ if (yycount == 5)
+ {
+ yysize = 0;
+ break;
+ }
+ }
+ yysize += (sizeof ("syntax error, unexpected ")
+ + yystrlen (yytname[yytype]));
yymsg = (char *) YYSTACK_ALLOC (yysize);
if (yymsg != 0)
{
@@ -4208,16 +4231,13 @@
if (yycount < 5)
{
- yycount = 0;
- for (yyx = yyn < 0 ? -yyn : 0;
- yyx < (int) (sizeof (yytname) / sizeof (char *));
- yyx++)
+ yyprefix = ", expecting ";
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
- const char *yyq = ! yycount ? ", expecting " : "
or ";
- yyp = yystpcpy (yyp, yyq);
+ yyp = yystpcpy (yyp, yyprefix);
yyp = yystpcpy (yyp, yytname[yyx]);
- yycount++;
+ yyprefix = " or ";
}
}
yyerror (yymsg);
@@ -4238,51 +4258,56 @@
/* If just tried and failed to reuse lookahead token after an
error, discard it. */
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
+ if (yychar <= YYEOF)
{
- /* Pop the error token. */
- YYPOPSTACK;
- /* Pop the rest of the stack. */
- while (yyss < yyssp)
- {
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp,
yylsp);
- yydestruct (yystos[*yyssp], yyvsp);
- YYPOPSTACK;
- }
- YYABORT;
+ /* If at end of input, pop the error token,
+ then the rest of the stack, then return failure. */
+ if (yychar == YYEOF)
+ for (;;)
+ {
+ YYPOPSTACK;
+ if (yyssp == yyss)
+ YYABORT;
+ YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp,
yylsp);
+ yydestruct (yystos[*yyssp], yyvsp);
+ }
}
+ else
+ {
+ YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+ yydestruct (yytoken, &yylval);
+ yychar = YYEMPTY;
- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
- yydestruct (yytoken, &yylval);
- yychar = YYEMPTY;
-
+ }
}
/* Else will try to reuse lookahead token after shifting the error
token. */
- goto yyerrlab2;
+ goto yyerrlab1;
-/*----------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action. |
-`----------------------------------------------------*/
-yyerrlab1:
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR. |
+`---------------------------------------------------*/
+yyerrorlab:
- /* Suppress GCC warning that yyerrlab1 is unused when no action
- invokes YYERROR. */
-#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 +
__GNUC_MINOR__)
- __attribute__ ((__unused__))
+#ifdef __GNUC__
+ /* Pacify GCC when the user code never invokes YYERROR and the label
+ yyerrorlab therefore never appears in user code. */
+ if (0)
+ goto yyerrorlab;
#endif
+ yyvsp -= yylen;
+ yyssp -= yylen;
+ yystate = *yyssp;
+ goto yyerrlab1;
- goto yyerrlab2;
-
-/*---------------------------------------------------------------.
-| yyerrlab2 -- pop states until the error token can be shifted. |
-`---------------------------------------------------------------*/
-yyerrlab2:
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR. |
+`-------------------------------------------------------------*/
+yyerrlab1:
yyerrstatus = 3; /* Each real token shifted decrements this. */
for (;;)
@@ -4305,9 +4330,8 @@
YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
yydestruct (yystos[yystate], yyvsp);
- yyvsp--;
- yystate = *--yyssp;
-
+ YYPOPSTACK;
+ yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
}
@@ -5082,7 +5106,7 @@
}
/* qsort sorting function for string table entries */
-#define STE(p) ((stt_entry_t *)(p))
+#define STE(p) ((const stt_entry_t *)(p))
static int sort_stt_entry(const void *e1, const void *e2)
{
return STE(e1)->id - STE(e2)->id;
_____
Modified: trunk/reactos/tools/wrc/y.tab.h
--- trunk/reactos/tools/wrc/y.tab.h 2005-07-06 21:32:16 UTC (rev
16468)
+++ trunk/reactos/tools/wrc/y.tab.h 2005-07-06 21:40:07 UTC (rev
16469)
@@ -1,7 +1,7 @@
-/* A Bison parser, made by GNU Bison 1.875. */
+/* A Bison parser, made by GNU Bison 1.875c. */
/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
Foundation, Inc.
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 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
@@ -243,8 +243,8 @@
style_t *style;
ani_any_t *ani;
} YYSTYPE;
-/* Line 1248 of yacc.c. */
-#line 247 "y.tab.h"
+/* Line 1275 of yacc.c. */
+#line 248 "parser.tab.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1