winedos / Fix DESQview checks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch fixes DESQview installation check. Previously
set system date accepted and ignored illegal dates. After this
patch, illegal dates are rejected which is how DOS applications
see that certain extensions (like DESQview) are not available.





Changelog:
  Report errors to applications when illegal dates are passed
  to set system date call (required by many installation checks).




Index: dlls/winedos/int21.c
===================================================================
RCS file: /home/wine/wine/dlls/winedos/int21.c,v
retrieving revision 1.30
diff -u -r1.30 int21.c
--- dlls/winedos/int21.c	2 May 2003 20:12:52 -0000	1.30
+++ dlls/winedos/int21.c	4 May 2003 21:19:31 -0000
@@ -1543,9 +1543,25 @@
         break;
 
     case 0x2b: /* SET SYSTEM DATE */
-        FIXME("SetSystemDate(%02d/%02d/%04d): not allowed\n",
-              DL_reg(context), DH_reg(context), CX_reg(context) );
-        SET_AL( context, 0 );  /* Let's pretend we succeeded */
+        TRACE( "SET SYSTEM DATE\n" );
+        {
+            WORD year  = CX_reg(context);
+            BYTE month = DH_reg(context);
+            BYTE day   = DL_reg(context);
+
+            if (year  >= 1980 && year  <= 2099 &&
+                month >= 1    && month <= 12   &&
+                day   >= 1    && day   <= 31)
+            {
+                FIXME( "SetSystemDate(%02d/%02d/%04d): not allowed\n",
+                       day, month, year );
+                SET_AL( context, 0 );  /* Let's pretend we succeeded */
+            }
+            else
+            {
+                SET_AL( context, 0xff ); /* invalid date */
+            }
+        }
         break;
 
     case 0x2c: /* GET SYSTEM TIME */




-- 
Jukka Heinonen <http://www.iki.fi/jhei/>


[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux