fixed system error messages for FormatMessage()

Martin Fuchs martin-fuchs at gmx.net
Fri Oct 18 20:56:24 CDT 2002


Changelog
Corrects the alignment of unicode message table strings in wmc, and switched 
to unicode for message strings, so that FormatMessage() now works.

annotation:
wrc seems not to be completely clean, even with this fix:
It can only store unicode strings in message tables, even if wmc doesn't set 
the UNICODE-Flag.


Index: Make.rules.in
===================================================================
RCS file: /home/wine/wine/Make.rules.in,v
retrieving revision 1.130
diff -u -r1.130 Make.rules.in
--- Make.rules.in	2 Oct 2002 02:34:09 -0000	1.130
+++ Make.rules.in	19 Oct 2002 01:45:27 -0000
@@ -117,7 +117,7 @@
 	$(AS) -o $@ $<
 
 .mc.mc.rc:
-	$(LDPATH) $(WMC) -i -H /dev/null -o $@ $<
+	$(LDPATH) $(WMC) -i -U -H /dev/null -o $@ $<
 
 .rc.res:
 	$(LDPATH) $(WRC) $(WRCFLAGS) $(DIVINCL) -o $@ -r $<
Index: tools/wmc/write.c
===================================================================
RCS file: /home/wine/wine/tools/wmc/write.c,v
retrieving revision 1.5
diff -u -r1.5 write.c
--- tools/wmc/write.c	31 May 2002 23:41:00 -0000	1.5
+++ tools/wmc/write.c	19 Oct 2002 01:45:34 -0000
@@ -359,7 +359,10 @@
 				b = 0;
 			}
 		}
-		len = (len + 3) & ~3;
+		if (unicodeout)
+		    len = (len + 1) & ~1;
+		else
+		    len = (len + 3) & ~3;
 		for(; i < len; i++)
 		{
 			*cptr++ = '\\';
@@ -467,7 +471,7 @@
 				cptr = make_string(blk->msgs[j]->msg, l, unicodeout ? 0 : 
blk->msgs[j]->cp);
 				fprintf(fp, "\n /* Msg 0x%08x */ 0x%04x, 0x000%c,\n",
 					blk->idlo + j,
-					(unicodeout ? (l*2+3)&~3 : (l+3)&~3)+4,
+					(unicodeout ? (l*2+3)&~3 : (l+3)&~3) + 4,
 					unicodeout ? '1' : '0');
 				fprintf(fp, "%s%s\n", cptr, comma);
 				free(cptr);




More information about the wine-patches mailing list