Version 1.0.14 of wrc.

This commit is contained in:
Bertho Stultiens 1999-08-14 15:01:54 +00:00 committed by Alexandre Julliard
parent bada25d5da
commit fbde5be239
5 changed files with 80 additions and 24 deletions

View File

@ -3260,26 +3260,26 @@ typedef struct tagNMDATETIMEFORMATQUERYW
#define GDTR_MAX 0x0002 #define GDTR_MAX 0x0002
#define DateTime_GetSystemtime(hdp, pst) \\ #define DateTime_GetSystemtime(hdp, pst) \
(DWORD)SendMessageA (hdp, DTM_GETSYSTEMTIME , 0, (LPARAM)(pst)) (DWORD)SendMessageA (hdp, DTM_GETSYSTEMTIME , 0, (LPARAM)(pst))
#define DateTime_SetSystemtime(hdp, gd, pst) \\ #define DateTime_SetSystemtime(hdp, gd, pst) \
(BOOL)SendMessageA (hdp, DTM_SETSYSTEMTIME, (LPARAM)(gd), (LPARAM)(pst)) (BOOL)SendMessageA (hdp, DTM_SETSYSTEMTIME, (LPARAM)(gd), (LPARAM)(pst))
#define DateTime_GetRange(hdp, rgst) \\ #define DateTime_GetRange(hdp, rgst) \
(DWORD)SendMessageA (hdp, DTM_GETRANGE, 0, (LPARAM)(rgst)) (DWORD)SendMessageA (hdp, DTM_GETRANGE, 0, (LPARAM)(rgst))
#define DateTime_SetRange(hdp, gd, rgst) \\ #define DateTime_SetRange(hdp, gd, rgst) \
(BOOL)SendMessageA (hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) (BOOL)SendMessageA (hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst))
#define DateTime_SetFormat WINELIB_NAME_AW(DateTime_SetFormat) #define DateTime_SetFormat WINELIB_NAME_AW(DateTime_SetFormat)
#define DateTime_SetFormatA(hdp, sz) \\ #define DateTime_SetFormatA(hdp, sz) \
(BOOL)SendMessageA (hdp, DTM_SETFORMAT, 0, (LPARAM)(sz)) (BOOL)SendMessageA (hdp, DTM_SETFORMAT, 0, (LPARAM)(sz))
#define DateTime_SetFormatW(hdp, sz) \\ #define DateTime_SetFormatW(hdp, sz) \
(BOOL)SendMessageW (hdp, DTM_SETFORMAT, 0, (LPARAM)(sz)) (BOOL)SendMessageW (hdp, DTM_SETFORMAT, 0, (LPARAM)(sz))
#define DateTime_GetMonthCalColor(hdp, iColor) \\ #define DateTime_GetMonthCalColor(hdp, iColor) \
SendMessageA (hdp, DTM_GETMCCOLOR, iColor, 0) SendMessageA (hdp, DTM_GETMCCOLOR, iColor, 0)
#define DateTime_GetMonthCal(hdp) \\ #define DateTime_GetMonthCal(hdp) \
(HWND) SendMessageA (hdp, DTM_GETMONTHCAL, 0, 0) (HWND) SendMessageA (hdp, DTM_GETMONTHCAL, 0, 0)
#define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) \\ #define DateTime_SetMonthCalFont(hdp, hfont, fRedraw) \
SendMessageA (hdp, DTM_SETMCFONT, (WPARAM)hfont, (LPARAM)fRedraw) SendMessageA (hdp, DTM_SETMCFONT, (WPARAM)hfont, (LPARAM)fRedraw)
#define DateTime_GetMonthCalFont(hdp) \\ #define DateTime_GetMonthCalFont(hdp) \
SendMessageA (hdp, DTM_GETMCFONT, 0, 0) SendMessageA (hdp, DTM_GETMCFONT, 0, 0)

View File

@ -1,3 +1,23 @@
---------------------------------------------------------------------------
Version 1.0.14 (08-Aug-1999)
Bertho Stultiens <bertho@akhphd.au.dk>
- Deeply ashamed that I thought that flex had a bug. Of course my own fault
not recognizing unmatched text in start condition yyrcd and pp_strip[ps].
There is a catch all rule now in the flexer with a warning to mark the
condition and promptly revealed errors in the wine-headers.
---------------------------------------------------------------------------
Version 1.0.13 (08-Aug-1999)
Bertho Stultiens <bertho@akhphd.au.dk>
- Fixed uppercase conversion of titles in dialog controls which was
introduced with the icon changes.
- Fixed strings longer than 1024 bytes/shorts by autosizing the array. A
warning is issued whenever more than 64k is allocated.
- Made a workarround for a flex bug where an ECHO put '\\' and '\n'
characters on the screen.
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
Version 1.0.12 (18-Jul-1999) Version 1.0.12 (18-Jul-1999)

View File

@ -457,7 +457,7 @@ res_t *dialog2res(name_id_t *name, dialog_t *dlg)
else else
internal_error(__FILE__, __LINE__, "Control has no control-class"); internal_error(__FILE__, __LINE__, "Control has no control-class");
if(ctrl->title) if(ctrl->title)
put_name_id(res, ctrl->title, TRUE); put_name_id(res, ctrl->title, FALSE);
else else
put_word(res, 0); put_word(res, 0);
if(ctrl->extra) if(ctrl->extra)
@ -634,7 +634,7 @@ res_t *dialogex2res(name_id_t *name, dialogex_t *dlgex)
else else
internal_error(__FILE__, __LINE__, "Control has no control-class"); internal_error(__FILE__, __LINE__, "Control has no control-class");
if(ctrl->title) if(ctrl->title)
put_name_id(res, ctrl->title, TRUE); put_name_id(res, ctrl->title, FALSE);
else else
put_word(res, 0); put_word(res, 0);
if(ctrl->extra) if(ctrl->extra)

View File

@ -126,10 +126,12 @@ string_t *make_filename(char *s, int len);
int line_number = 1; /* The current line */ int line_number = 1; /* The current line */
int char_number = 1; /* The current char pos within the line */ int char_number = 1; /* The current char pos within the line */
static char cbuffer[1024]; /* Buffers for string collection */ static char *cbuffer; /* Buffers for string collection */
static int cbufidx; static int cbufidx;
static short wbuffer[1024]; static int cbufalloc = 0;
static short *wbuffer;
static int wbufidx; static int wbufidx;
static int wbufalloc = 0;
static int want_nl = 0; /* Set when newline needs to go to parser */ static int want_nl = 0; /* Set when newline needs to go to parser */
static int want_ident = 0; /* Set is #ifdef, #ifndef or defined is seen */ static int want_ident = 0; /* Set is #ifdef, #ifndef or defined is seen */
static int stripslevel = 0; /* Count {} during pp_strips mode */ static int stripslevel = 0; /* Count {} during pp_strips mode */
@ -551,7 +553,8 @@ void add_to_substtext(char *text, int len)
<pp_strips>\{ stripslevel++; <pp_strips>\{ stripslevel++;
<pp_strips>\} stripslevel--; <pp_strips>\} stripslevel--;
<pp_strips>; if(!stripslevel) pop_start(); <pp_strips>; if(!stripslevel) pop_start();
<pp_strips>[^\{\};\n#]* ; /* Ignore rest */ <pp_strips>\/[^*\n] ; /* To catch comments */
<pp_strips>[^\{\};\n#/]* ; /* Ignore rest */
<pp_stripp>\( stripplevel++; <pp_stripp>\( stripplevel++;
<pp_stripp>\) { <pp_stripp>\) {
@ -562,7 +565,8 @@ void add_to_substtext(char *text, int len)
push_to(pp_stripp_final); push_to(pp_stripp_final);
} }
} }
<pp_stripp>[^\(\);\n#]* ; /* Ignore rest */ <pp_stripp>\/[^*\n] ; /* To catch comments */
<pp_stripp>[^\(\);\n#/]* ; /* Ignore rest */
<pp_stripp_final>{ws}* ; /* Ignore */ <pp_stripp_final>{ws}* ; /* Ignore */
<pp_stripp_final>; pop_start(); /* Kill the semicolon */ <pp_stripp_final>; pop_start(); /* Kill the semicolon */
@ -753,7 +757,7 @@ L\" {
<yystr>\"\" addcchar('\"'); /* "bla""bla" -> "bla\"bla" */ <yystr>\"\" addcchar('\"'); /* "bla""bla" -> "bla\"bla" */
<yystr>\\\"\" addcchar('\"'); /* "bla\""bla" -> "bla\"bla" */ <yystr>\\\"\" addcchar('\"'); /* "bla\""bla" -> "bla\"bla" */
<yystr>\"{ws}+\" ; /* "bla" "bla" -> "blabla" */ <yystr>\"{ws}+\" ; /* "bla" "bla" -> "blabla" */
<yystr>. yywarning("Matched %c");
\' { \' {
@ -774,9 +778,10 @@ L\" {
addcchar((char)result); addcchar((char)result);
} }
<yyrcd>{ws}+ ; /* Ignore space */ <yyrcd>{ws}+ ; /* Ignore space */
<yyrcd>\n line_number++; char_number = 1;
<yyrcd>. yyerror("Malformed data-line"); <yyrcd>. yyerror("Malformed data-line");
<INITIAL,pp_ignore,pp_def_s>"/*" push_to(comment); /* Eat comment */ <INITIAL,pp_ignore,pp_def_s,pp_strips,pp_stripp>"/*" push_to(comment); /* Eat comment */
<comment>[^*\n]* ; <comment>[^*\n]* ;
<comment>"*"+[^*/\n]* ; <comment>"*"+[^*/\n]* ;
<comment>\n line_number++; char_number = 1; <comment>\n line_number++; char_number = 1;
@ -810,6 +815,18 @@ L\" {
} }
yy_delete_buffer(b); yy_delete_buffer(b);
} }
<*>.|\n {
/* Catch all rule to find any unmatched text */
if(*yytext == '\n')
{
line_number++;
char_number = 1;
}
yywarning("Unmatched text '%c' (0x%02x) YY_START=%d",
isprint(*yytext) ? *yytext : '.', *yytext, YY_START);
}
%% %%
#ifndef yywrap #ifndef yywrap
@ -830,15 +847,34 @@ int yywrap(void)
*/ */
void addcchar(char c) void addcchar(char c)
{ {
if(cbufidx >= sizeof(cbuffer)) if(cbufidx >= cbufalloc)
internal_error(__FILE__, __LINE__, "Character buffer overflow"); {
cbufalloc += 1024;
cbuffer = xrealloc(cbuffer, cbufalloc * sizeof(cbuffer[0]));
if(cbufalloc > 65536)
yywarning("Reallocating string buffer larger than 64kB");
}
cbuffer[cbufidx++] = c; cbuffer[cbufidx++] = c;
} }
void addwchar(short s) void addwchar(short s)
{ {
if(wbufidx >= sizeof(wbuffer)) if(wbufidx >= wbufalloc)
internal_error(__FILE__, __LINE__, "Wide character buffer overflow"); {
wbufalloc += 1024;
wbuffer = xrealloc(wbuffer, wbufalloc * sizeof(wbuffer[0]));
if(wbufalloc > 65536)
yywarning("Reallocating wide string buffer larger than 64kB");
}
/*
* BS 08-Aug-1999 FIXME: The '& 0xff' is probably a bug, but I have
* not experienced it yet and I seem to remember that this was for
* a reason. But, as so many things you tend to forget why.
* I guess that there were problems due to the sign extension of
* shorts WRT chars (e.g. 0x80 becomes 0xff80 instead of 0x0080).
* This should then be fixed in the lexer calling the function.
*/
wbuffer[wbufidx++] = (short)(s & 0xff); wbuffer[wbufidx++] = (short)(s & 0xff);
} }

View File

@ -12,8 +12,8 @@
#include "wrctypes.h" #include "wrctypes.h"
#endif #endif
#define WRC_VERSION "1.0.12" #define WRC_VERSION "1.0.14"
#define WRC_RELEASEDATE "(18-Jul-1999)" #define WRC_RELEASEDATE "(08-Aug-1999)"
#define WRC_FULLVERSION WRC_VERSION " " WRC_RELEASEDATE #define WRC_FULLVERSION WRC_VERSION " " WRC_RELEASEDATE
/* Only used in heavy debugging sessions */ /* Only used in heavy debugging sessions */