diff options
Diffstat (limited to 'ext/mysql/libmysql/my_create.c')
-rw-r--r-- | ext/mysql/libmysql/my_create.c | 30 |
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 */ |