32/16 bit comparison in int21.c

Rein Klazes rklazes at xs4all.nl
Thu Mar 20 10:47:38 CST 2003


Hi,

Fixing a problem with a 16bit Winzip self-extracting exe.

Changelog:

	msdos	: int21.c
	Fix two comparisons between a 32 bit register with a 16 bit
	error code.

Rein.	
-- 
Rein Klazes
rklazes at xs4all.nl
-------------- next part --------------
--- wine/msdos/int21.c	2003-03-04 11:20:20.000000000 +0100
+++ mywine/msdos/int21.c	2003-03-20 17:30:59.000000000 +0100
@@ -718,7 +718,7 @@
         sprintf( p, "wine%04x.%03d", (int)getpid(), counter );
         counter = (counter + 1) % 1000;
 
-        if ((SET_AX( context, _lcreat16_uniq( name, 0 ))) != (WORD)HFILE_ERROR16)
+        if ((WORD) SET_AX( context, _lcreat16_uniq( name, 0 )) != (WORD)HFILE_ERROR16)
         {
             TRACE("created %s\n", name );
             return TRUE;
@@ -1392,10 +1392,10 @@
 	    TRACE(" LONG FILENAME - FIND FIRST MATCHING FILE for %s\n",
 		  (LPCSTR)CTX_SEG_OFF_TO_LIN(context, context->SegDs,context->Edx));
             /* FIXME: use attributes in CX */
-            if ((SET_AX( context, FindFirstFile16(
+            if ( (WORD) SET_AX( context, FindFirstFile16(
                    CTX_SEG_OFF_TO_LIN(context, context->SegDs,context->Edx),
                    (WIN32_FIND_DATAA *)CTX_SEG_OFF_TO_LIN(context, context->SegEs,
-                                                          context->Edi))))
+                                                          context->Edi)))
 		== INVALID_HANDLE_VALUE16)
 		bSetDOSExtendedError = TRUE;
             break;


More information about the wine-patches mailing list