File sharing fixes.
diff --git a/files/file.c b/files/file.c
index 88b7ae6..f68e67c 100644
--- a/files/file.c
+++ b/files/file.c
@@ -603,8 +603,13 @@
/***********************************************************************
* FILE_Open
+ *
+ * path[I] name of file to open
+ * mode[I] mode how to open, in unix notation
+ * shareMode[I] the sharing mode in the win OpenFile notation
+ *
*/
-HFILE32 FILE_Open( LPCSTR path, INT32 mode )
+HFILE32 FILE_Open( LPCSTR path, INT32 mode, INT32 shareMode )
{
DOS_FULL_NAME full_name;
const char *unixName;
@@ -640,7 +645,7 @@
unixName = full_name.long_name;
}
- dosMode = FILE_UnixToDosMode(mode);
+ dosMode = FILE_UnixToDosMode(mode)| shareMode;
fileInUse = FILE_InUse(full_name.long_name,&oldMode);
if(fileInUse)
{
@@ -1409,9 +1414,7 @@
TRACE(file, "('%s',%04x)\n", path, mode );
unixMode= FILE_DOSToUnixMode(mode);
- unixMode |= (mode &0x70); /* transfer the OF_SHARE options to handle
- them in FILE_Open*/
- return FILE_Open( path, unixMode );
+ return FILE_Open( path, unixMode , (mode & 0x70));
}