From 17c499ba5db055c8375833334a98bdd9d06cc0ab Mon Sep 17 00:00:00 2001 From: Ulf Wohlers Date: Sat, 4 Oct 2003 12:40:28 +0000 Subject: [PATCH] added '+' as a valid char in DOS_MakeName added hack: devices can only be opened once Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1293 --- src/dos/dos_files.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/dos/dos_files.cpp b/src/dos/dos_files.cpp index 4fe7b066..4c60428b 100644 --- a/src/dos/dos_files.cpp +++ b/src/dos/dos_files.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: dos_files.cpp,v 1.44 2003-08-29 08:17:49 harekiet Exp $ */ +/* $Id: dos_files.cpp,v 1.45 2003-10-04 12:40:28 finsterr Exp $ */ #include #include @@ -81,7 +81,7 @@ bool DOS_MakeName(char * name,char * fullname,Bit8u * drive) { case '\\': case '$': case '#': case '@': case '(': case ')': case '!': case '%': case '{': case '}': case '`': case '~': case '_': case '-': case '.': case '*': case '?': case '&': - case '\'': + case '\'': case '+': upname[w++]=c; break; default: @@ -390,6 +390,8 @@ bool DOS_OpenFile(char * name,Bit8u flags,Bit16u * entry) { bool exists=false; if (!device) exists=Drives[drive]->FileOpen(&Files[handle],fullname,flags); if (exists || device ) { + // devices can only be opened once + if (device && ((*entry=psp.FindEntryByHandle(handle))!=0xff)) return true; Files[handle]->AddRef(); psp.SetFileHandle(*entry,handle); return true;