From 1689c9badbbe196bab6efd6442c314b4172a3ca4 Mon Sep 17 00:00:00 2001 From: Jonathan Campbell Date: Thu, 9 Apr 2015 10:46:06 -0700 Subject: [PATCH] svn mainline r3904:3905 ripsaw8080: Attempting to unlink (delete) an existing device name returns an access denied error. Fixes EMM device driver detection, and thus SoundBlaster sound, in the Striker soccer game. Also add a log message for FindFirst. --- PATCHES-IN-DISPUTE | 4 ++++ src/dos/dos_files.cpp | 6 ++++++ 2 files changed, 10 insertions(+) create mode 100644 PATCHES-IN-DISPUTE diff --git a/PATCHES-IN-DISPUTE b/PATCHES-IN-DISPUTE new file mode 100644 index 000000000..4e844e665 --- /dev/null +++ b/PATCHES-IN-DISPUTE @@ -0,0 +1,4 @@ +mainline patches NOT applied: + +svn diff -r 3903:3904 Allow CRTC read/write access on all mirror ports for non-VGA machine types. Fixes Tandy and EGA display in International Hockey booter. Thanks Great Hierophant for testing on real systems. + diff --git a/src/dos/dos_files.cpp b/src/dos/dos_files.cpp index c0751a583..bdef15135 100644 --- a/src/dos/dos_files.cpp +++ b/src/dos/dos_files.cpp @@ -300,6 +300,7 @@ bool DOS_Rename(char const * const oldname,char const * const newname) { } bool DOS_FindFirst(char * search,Bit16u attr,bool fcb_findfirst) { + LOG(LOG_FILES,LOG_NORMAL)("file search attributes %X name %s",attr,search); DOS_DTA dta(dos.dta()); Bit8u drive;char fullsearch[DOS_PATHLENGTH]; char dir[DOS_PATHLENGTH];char pattern[DOS_PATHLENGTH]; @@ -660,6 +661,11 @@ bool DOS_OpenFileExtended(char const * name, Bit16u flags, Bit16u createAttr, Bi bool DOS_UnlinkFile(char const * const name) { char fullname[DOS_PATHLENGTH];Bit8u drive; + // An existing device returns an access denied error + if (DOS_FindDevice(name) != DOS_DEVICES) { + DOS_SetError(DOSERR_ACCESS_DENIED); + return false; + } if (!DOS_MakeName(name,fullname,&drive)) return false; if(Drives[drive]->FileUnlink(fullname)){ return true;