gerard patel <[EMAIL PROTECTED]> writes:

> With Cvs commits of today, I see a crash in WordViewer 97 (the freeware viewer
> of Word 97 files). 

This should fix it:

Index: objects/dc.c
===================================================================
RCS file: /opt/cvs-commit/wine/objects/dc.c,v
retrieving revision 1.39
diff -u -r1.39 dc.c
--- objects/dc.c        2000/08/19 21:38:56     1.39
+++ objects/dc.c        2000/08/20 17:05:22
@@ -809,38 +809,34 @@
     switch (cap)
     {
     case PHYSICALWIDTH:
-        if(Escape(hdc, GETPHYSPAGESIZE, 0, NULL, (LPVOID)&pt) > 0)
-           return pt.x;
+        if(Escape(hdc, GETPHYSPAGESIZE, 0, NULL, (LPVOID)&pt) > 0) ret = pt.x;
+        break;
     case PHYSICALHEIGHT:
-       if(Escape(hdc, GETPHYSPAGESIZE, 0, NULL, (LPVOID)&pt) > 0)
-           return pt.y;
+        if(Escape(hdc, GETPHYSPAGESIZE, 0, NULL, (LPVOID)&pt) > 0) ret = pt.y;
+        break;
     case PHYSICALOFFSETX:
-       if(Escape(hdc, GETPRINTINGOFFSET, 0, NULL, (LPVOID)&pt) > 0)
-           return pt.x;
+        if(Escape(hdc, GETPRINTINGOFFSET, 0, NULL, (LPVOID)&pt) > 0) ret = pt.x;
+        break;
     case PHYSICALOFFSETY:
-       if(Escape(hdc, GETPRINTINGOFFSET, 0, NULL, (LPVOID)&pt) > 0)
-           return pt.y;
+        if(Escape(hdc, GETPRINTINGOFFSET, 0, NULL, (LPVOID)&pt) > 0) ret = pt.y;
+        break;
     case SCALINGFACTORX:
-       if(Escape(hdc, GETSCALINGFACTOR, 0, NULL, (LPVOID)&pt) > 0)
-           return pt.x;
+        if(Escape(hdc, GETSCALINGFACTOR, 0, NULL, (LPVOID)&pt) > 0) ret = pt.x;
+        break;
     case SCALINGFACTORY:
-       if(Escape(hdc, GETSCALINGFACTOR, 0, NULL, (LPVOID)&pt) > 0)
-           return pt.y;
-    }
+        if(Escape(hdc, GETSCALINGFACTOR, 0, NULL, (LPVOID)&pt) > 0) ret = pt.y;
+        break;
+    default:
+        if ((cap < 0) || (cap > sizeof(DeviceCaps)-sizeof(WORD))) break;
 
-    if ((cap < 0) || (cap > sizeof(DeviceCaps)-sizeof(WORD)))
-    {
-      GDI_ReleaseObj( hdc );
-      return 0;
+        if (((cap>=46) && (cap<88)) || ((cap>=92) && (cap<104)))
+            FIXME("(%04x,%d): unsupported DeviceCaps capability, will yield 0!\n",
+                  hdc,cap );
+        ret = *(WORD *)(((char *)dc->w.devCaps) + cap);
+        break;
     }
 
-    if (((cap>=46) && (cap<88)) || ((cap>=92) && (cap<104)))
-       FIXME("(%04x,%d): unsupported DeviceCaps capability, will yield 0!\n",
-               hdc,cap
-       );
-    TRACE("(%04x,%d): returning %d\n",
-           hdc, cap, *(WORD *)(((char *)dc->w.devCaps) + cap) );
-    ret = *(WORD *)(((char *)dc->w.devCaps) + cap);
+    TRACE("(%04x,%d): returning %d\n", hdc, cap, ret );
     GDI_ReleaseObj( hdc );
     return ret;
 }

-- 
Alexandre Julliard
[EMAIL PROTECTED]

Reply via email to