summaryrefslogtreecommitdiff
path: root/ext/mysql/libmysql/my_create.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysql/libmysql/my_create.c')
-rw-r--r--ext/mysql/libmysql/my_create.c30
1 files changed, 5 insertions, 25 deletions
diff --git a/ext/mysql/libmysql/my_create.c b/ext/mysql/libmysql/my_create.c
index f1d1e6f2fb..a0a24f6ad9 100644
--- a/ext/mysql/libmysql/my_create.c
+++ b/ext/mysql/libmysql/my_create.c
@@ -6,7 +6,7 @@ This file is public domain and comes with NO WARRANTY of any kind */
#include <my_dir.h>
#include "mysys_err.h"
#include <errno.h>
-#if defined(MSDOS) || defined(__WIN__)
+#if defined(MSDOS) || defined(__WIN__) || defined(__EMX__)
#include <share.h>
#endif
@@ -28,13 +28,13 @@ File my_create(const char *FileName, int CreateFlags, int access_flags,
DBUG_PRINT("my",("Name: '%s' CreateFlags: %d AccessFlags: %d MyFlags: %d",
FileName, CreateFlags, access_flags, MyFlags));
-#if !defined(NO_OPEN_3)
+#if !defined(NO_OPEN_3) && !defined(__EMX__)
fd = open((my_string) FileName, access_flags | O_CREAT,
CreateFlags ? CreateFlags : my_umask);
#elif defined(VMS)
fd = open((my_string) FileName, access_flags | O_CREAT, 0,
"ctx=stm","ctx=bin");
-#elif defined(MSDOS) || defined(__WIN__)
+#elif defined(MSDOS) || defined(__WIN__) || defined(__EMX__)
if (access_flags & O_SHARE)
fd = sopen((my_string) FileName, access_flags | O_CREAT | O_BINARY,
SH_DENYNO, MY_S_IREAD | MY_S_IWRITE);
@@ -45,26 +45,6 @@ File my_create(const char *FileName, int CreateFlags, int access_flags,
fd = open(FileName, access_flags);
#endif
- if (fd >= 0)
- {
- if ((int) fd >= MY_NFILE)
- {
- DBUG_PRINT("exit",("fd: %d",fd));
- DBUG_RETURN(fd); /* safeguard */
- }
- if ((my_file_info[fd].name = (char*) my_strdup(FileName,MyFlags)))
- {
- my_file_opened++;
- my_file_info[fd].type = FILE_BY_CREATE;
- DBUG_PRINT("exit",("fd: %d",fd));
- DBUG_RETURN(fd);
- }
- VOID(my_close(fd,MyFlags));
- my_errno=ENOMEM;
- }
- else
- my_errno=errno;
- if (MyFlags & (MY_FFNF | MY_FAE | MY_WME))
- my_error(EE_CANTCREATEFILE, MYF(ME_BELL+ME_WAITTANG), FileName,my_errno);
- DBUG_RETURN(-1);
+ DBUG_RETURN(my_register_filename(fd, FileName, FILE_BY_CREATE,
+ EE_CANTCREATEFILE, MyFlags));
} /* my_create */