From ed773d7c46df2285fe444dfe1d1ca14dd0b43745 Mon Sep 17 00:00:00 2001 From: Ulf Wohlers Date: Sun, 16 Feb 2003 14:49:11 +0000 Subject: [PATCH] Added check, if file is already opened Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@667 --- src/dos/dos_files.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/dos/dos_files.cpp b/src/dos/dos_files.cpp index 4f3f4ab1..ec7b5010 100644 --- a/src/dos/dos_files.cpp +++ b/src/dos/dos_files.cpp @@ -342,6 +342,20 @@ bool DOS_OpenFile(char * name,Bit8u flags,Bit16u * entry) { } else { /* First check if the name is correct */ if (!DOS_MakeName(name,fullname,&drive)) return false; + + /* Check, if file is already opened */ + for (i=0;iIsOpen() && Files[i]->IsName(fullname)) { + *entry = psp.FindEntryByHandle(i); + if (*entry==0xFF) { + // This shouldnt happen + LOG_ERROR("DOS: File %s is opened but has no psp entry.",name); + return false; + } + return true; + } + } + /* Check for a free file handle */ for (i=0;i