From 8e266a6c8808605326cd7217127e972d224ecc96 Mon Sep 17 00:00:00 2001 From: Andreas Mohr Date: Tue, 3 Dec 2002 23:21:20 +0000 Subject: [PATCH] Fixed error checking in file creation and closing. --- msdos/int21.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/msdos/int21.c b/msdos/int21.c index 2130abd5b2b..b829766bc6a 100644 --- a/msdos/int21.c +++ b/msdos/int21.c @@ -1275,7 +1275,8 @@ void WINAPI INT_Int21Handler( CONTEXT86 *context ) case 0x3e: /* "CLOSE" - CLOSE FILE */ TRACE("CLOSE handle %d\n",BX_reg(context)); - bSetDOSExtendedError = ((SET_AX( context, _lclose16( BX_reg(context) )) != 0) ); + SET_AX( context, _lclose16( BX_reg(context) )); + bSetDOSExtendedError = (AX_reg(context) != 0); break; case 0x3f: /* "READ" - READ FROM FILE OR DEVICE */ @@ -1677,9 +1678,10 @@ void WINAPI INT_Int21Handler( CONTEXT86 *context ) case 0x5b: /* CREATE NEW FILE */ TRACE("CREATE NEW FILE 0x%02x for %s\n", CX_reg(context), (LPCSTR)CTX_SEG_OFF_TO_LIN(context, context->SegDs, context->Edx)); - bSetDOSExtendedError = ((SET_AX( context, + SET_AX( context, _lcreat16_uniq( CTX_SEG_OFF_TO_LIN(context, context->SegDs,context->Edx), - CX_reg(context) ))) == (WORD)HFILE_ERROR16); + CX_reg(context) )); + bSetDOSExtendedError = (AX_reg(context) != 0); break; case 0x5d: /* NETWORK */