Shell32: fix DllGetVersion for newer callers

Robert Shearman rob at codeweavers.com
Wed Sep 15 06:39:36 CDT 2004


Juan Lang wrote:

>--- Robert Shearman <rob at codeweavers.com> wrote:
>  
>
>>This is *really* ugly. Create a header file with
>>just the version 
>>numbers defined and import it from the resource file
>>and the file that 
>>implements the DllGetVersion function and problem
>>solved.
>>    
>>
>
>Got any suggestions for the version string?  The rc
>compiler doesn't like any complicated macro fun.
>  
>

Yes, you're right. I would submit a patch with the string manually 
created and I'll see what I can do about fixing wpp, unless anyone else 
volunteers. Attached is the patch I have so far, but it doesn't work on 
some of our header files.

Rob
-------------- next part --------------
Index: wine/libs/wpp/ppl.l
===================================================================
RCS file: /home/wine/wine/libs/wpp/ppl.l,v
retrieving revision 1.4
diff -u -p -r1.4 ppl.l
--- wine/libs/wpp/ppl.l	21 Oct 2003 23:57:25 -0000	1.4
+++ wine/libs/wpp/ppl.l	15 Sep 2004 11:38:13 -0000
@@ -433,8 +433,12 @@ includelogicentry_t *pp_includelogiclist
 	/*
 	 * Scan the substitution of a define
 	 */
-<pp_define>[^'"/\\\n]+		pplval.cptr = pp_xstrdup(pptext); return tLITERAL;
-<pp_define>(\\\r?)|(\/[^/*])	pplval.cptr = pp_xstrdup(pptext); return tLITERAL;
+<pp_define>[^a-zA-Z0-9'"#/\\\n]+	pplval.cptr = pp_xstrdup(pptext); return tLITERAL;
+<pp_define>{cident}		pplval.cptr = pp_xstrdup(pptext); return tIDENT;
+<pp_define>\#\#			return tCONCAT;
+<pp_define>\#			return tSTRINGIZE;
+<pp_define>[0-9][^'"#/\\\n]*	pplval.cptr = pp_xstrdup(pptext); return tLITERAL;
+<pp_define>(\\\r?)|(\/[^/*'"#\\\n]*)	pplval.cptr = pp_xstrdup(pptext); return tLITERAL;
 <pp_define>\\\r?\n{ws}+		newline(0); pplval.cptr = pp_xstrdup(" "); return tLITERAL;
 <pp_define>\\\r?\n		newline(0);
 <pp_define>\n			newline(1); yy_pop_state(); return tNL;


More information about the wine-devel mailing list