dlls/gdi32/font.c warning removal (RESEND)

Gerald Pfeifer gerald at pfeifer.com
Sun Feb 10 15:31:20 CST 2008


On Wed, 6 Feb 2008, Alexandre Julliard wrote:
>> The reason is that we have
>>
>>   #define HDPTOLP(y) ((y<0)?                                      \
>>                 (-abs(INTERNAL_YDSTOWS(dc, (y)))):              \
>>                 (abs(INTERNAL_YDSTOWS(dc, (y)))))
>>
>> which is overly complicated for unsigned types.  We can avoid these 
>> warnings by using plain INTERNAL_YDSTOWS instead of HDPTOLP here.
> No, you still need the abs().

You're right.  That was a stupid thinko on my side.  Please find below
an updated patch.

Gerald

ChangeLog:
For unsigned types, directly use INTERNAL_YDS

Index: font.c
===================================================================
RCS file: /home/wine/wine/dlls/gdi32/font.c,v
retrieving revision 1.39
diff -u -3 -p -r1.39 font.c
--- font.c	6 Feb 2008 13:28:51 -0000	1.39
+++ font.c	10 Feb 2008 21:26:59 -0000
@@ -1690,16 +1690,16 @@ UINT WINAPI GetOutlineTextMetricsW(
 	    output->otmTextMetrics.tmOverhang         = WDPTOLP(output->otmTextMetrics.tmOverhang);
 	    output->otmAscent = HDPTOLP(output->otmAscent);
 	    output->otmDescent = HDPTOLP(output->otmDescent);
-	    output->otmLineGap = HDPTOLP(output->otmLineGap);
-	    output->otmsCapEmHeight = HDPTOLP(output->otmsCapEmHeight);
-	    output->otmsXHeight = HDPTOLP(output->otmsXHeight);
+	    output->otmLineGap = abs(INTERNAL_YDSTOWS(dc,output->otmLineGap));
+	    output->otmsCapEmHeight = abs(INTERNAL_YDSTOWS(dc,output->otmsCapEmHeight));
+	    output->otmsXHeight = abs(INTERNAL_YDSTOWS(dc,output->otmsXHeight));
 	    output->otmrcFontBox.top = HDPTOLP(output->otmrcFontBox.top);
 	    output->otmrcFontBox.bottom = HDPTOLP(output->otmrcFontBox.bottom);
 	    output->otmrcFontBox.left = WDPTOLP(output->otmrcFontBox.left);
 	    output->otmrcFontBox.right = WDPTOLP(output->otmrcFontBox.right);
 	    output->otmMacAscent = HDPTOLP(output->otmMacAscent);
 	    output->otmMacDescent = HDPTOLP(output->otmMacDescent);
-	    output->otmMacLineGap = HDPTOLP(output->otmMacLineGap);
+	    output->otmMacLineGap = abs(INTERNAL_YDSTOWS(dc,output->otmMacLineGap));
 	    output->otmptSubscriptSize.x = WDPTOLP(output->otmptSubscriptSize.x);
 	    output->otmptSubscriptSize.y = HDPTOLP(output->otmptSubscriptSize.y);
 	    output->otmptSubscriptOffset.x = WDPTOLP(output->otmptSubscriptOffset.x);
@@ -1708,7 +1708,7 @@ UINT WINAPI GetOutlineTextMetricsW(
 	    output->otmptSuperscriptSize.y = HDPTOLP(output->otmptSuperscriptSize.y);
 	    output->otmptSuperscriptOffset.x = WDPTOLP(output->otmptSuperscriptOffset.x);
 	    output->otmptSuperscriptOffset.y = HDPTOLP(output->otmptSuperscriptOffset.y);
-	    output->otmsStrikeoutSize = HDPTOLP(output->otmsStrikeoutSize);
+	    output->otmsStrikeoutSize = abs(INTERNAL_YDSTOWS(dc,output->otmsStrikeoutSize));
 	    output->otmsStrikeoutPosition = HDPTOLP(output->otmsStrikeoutPosition);
 	    output->otmsUnderscoreSize = HDPTOLP(output->otmsUnderscoreSize);
 	    output->otmsUnderscorePosition = HDPTOLP(output->otmsUnderscorePosition);



More information about the wine-patches mailing list