added the qse_fs_mode_t type and the mode parameter to qse_mkdir() and related functions
This commit is contained in:
@ -515,7 +515,7 @@ start_over:
|
||||
goto oops;
|
||||
}
|
||||
|
||||
if (qse_fs_mkdirsys (fs, cpfile->dst_fspath) <= -1)
|
||||
if (qse_fs_mkdirsys(fs, cpfile->dst_fspath, 0777) <= -1) /* TODO: copy mode? */
|
||||
{
|
||||
/* it's ok if the destination directory already exists */
|
||||
if (fs->errnum != QSE_FS_EEXIST) goto oops;
|
||||
@ -700,7 +700,7 @@ int qse_fs_cpfilembs (qse_fs_t* fs, const qse_mchar_t* srcpath, const qse_mchar_
|
||||
if (flags & QSE_FS_CPFILE_GLOB)
|
||||
{
|
||||
fs->errnum = QSE_FS_ENOERR;
|
||||
if (qse_globmbs (srcpath, copy_file_for_glob, &ctx, DEFAULT_GLOB_FLAGS, fs->mmgr, fs->cmgr) <= -1)
|
||||
if (qse_globmbs(srcpath, copy_file_for_glob, &ctx, DEFAULT_GLOB_FLAGS, fs->mmgr, fs->cmgr) <= -1)
|
||||
{
|
||||
if (fs->errnum == QSE_FS_ENOERR) fs->errnum = QSE_FS_EGLOB;
|
||||
ret = -1;
|
||||
@ -738,7 +738,7 @@ int qse_fs_cpfilewcs (qse_fs_t* fs, const qse_wchar_t* srcpath, const qse_wchar_
|
||||
if (flags & QSE_FS_CPFILE_GLOB)
|
||||
{
|
||||
fs->errnum = QSE_FS_ENOERR;
|
||||
if (qse_globwcs (srcpath, copy_file_for_glob, &ctx, DEFAULT_GLOB_FLAGS, fs->mmgr, fs->cmgr) <= -1)
|
||||
if (qse_globwcs(srcpath, copy_file_for_glob, &ctx, DEFAULT_GLOB_FLAGS, fs->mmgr, fs->cmgr) <= -1)
|
||||
{
|
||||
if (fs->errnum == QSE_FS_ENOERR) fs->errnum = QSE_FS_EGLOB;
|
||||
ret = -1;
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
#include "fs-prv.h"
|
||||
|
||||
int qse_fs_mkdirsys (qse_fs_t* fs, const qse_fs_char_t* fspath)
|
||||
int qse_fs_mkdirsys (qse_fs_t* fs, const qse_fs_char_t* fspath, qse_fs_mode_t mode)
|
||||
{
|
||||
|
||||
#if defined(_WIN32)
|
||||
@ -78,7 +78,7 @@ int qse_fs_mkdirsys (qse_fs_t* fs, const qse_fs_char_t* fspath)
|
||||
|
||||
#else
|
||||
|
||||
if (QSE_MKDIR (fspath, 0777) <= -1) /* TODO: proper mode?? */
|
||||
if (QSE_MKDIR (fspath, mode) <= -1) /* TODO: proper mode?? */
|
||||
{
|
||||
fs->errnum = qse_fs_syserrtoerrnum (fs, errno);
|
||||
return -1;
|
||||
@ -91,7 +91,7 @@ int qse_fs_mkdirsys (qse_fs_t* fs, const qse_fs_char_t* fspath)
|
||||
|
||||
/* --------------------------------------------------------------------- */
|
||||
|
||||
static int make_directory_chain (qse_fs_t* fs, qse_fs_char_t* fspath)
|
||||
static int make_directory_chain (qse_fs_t* fs, qse_fs_char_t* fspath, qse_fs_mode_t mode)
|
||||
{
|
||||
qse_fs_char_t* core, * p, c;
|
||||
int ret = 0;
|
||||
@ -120,7 +120,7 @@ static int make_directory_chain (qse_fs_t* fs, qse_fs_char_t* fspath)
|
||||
c = *(p + 1);
|
||||
*(p + 1) = QSE_FS_T('\0');
|
||||
#endif
|
||||
ret = qse_fs_mkdirsys (fs, fspath);
|
||||
ret = qse_fs_mkdirsys (fs, fspath, mode);
|
||||
if (ret <= -1 && fs->errnum != QSE_FS_EEXIST) goto done; /* abort */
|
||||
#if defined(_WIN32) || defined(__DOS__) || defined(__OS2__)
|
||||
*p = c;
|
||||
@ -130,13 +130,13 @@ static int make_directory_chain (qse_fs_t* fs, qse_fs_char_t* fspath)
|
||||
}
|
||||
}
|
||||
|
||||
if (!IS_FSPATHSEP(*(p - 1))) ret = qse_fs_mkdirsys (fs, fspath);
|
||||
if (!IS_FSPATHSEP(*(p - 1))) ret = qse_fs_mkdirsys (fs, fspath, mode);
|
||||
|
||||
done:
|
||||
return ret;
|
||||
}
|
||||
|
||||
int qse_fs_mkdirmbs (qse_fs_t* fs, const qse_mchar_t* path, int flags)
|
||||
int qse_fs_mkdirmbs (qse_fs_t* fs, const qse_mchar_t* path, qse_fs_mode_t mode, int flags)
|
||||
{
|
||||
qse_fs_char_t* fspath;
|
||||
int ret;
|
||||
@ -154,14 +154,14 @@ int qse_fs_mkdirmbs (qse_fs_t* fs, const qse_mchar_t* path, int flags)
|
||||
fspath = qse_fs_dupfspathformbs (fs, path);
|
||||
if (!fspath) return -1;
|
||||
|
||||
ret = make_directory_chain (fs, fspath);
|
||||
ret = make_directory_chain (fs, fspath, mode);
|
||||
}
|
||||
else
|
||||
{
|
||||
fspath = (qse_fs_char_t*)qse_fs_makefspathformbs (fs, path);
|
||||
if (!fspath) return -1;
|
||||
|
||||
ret = qse_fs_mkdirsys (fs, fspath);
|
||||
ret = qse_fs_mkdirsys (fs, fspath, mode);
|
||||
}
|
||||
|
||||
qse_fs_freefspathformbs (fs, path, fspath);
|
||||
@ -169,7 +169,7 @@ int qse_fs_mkdirmbs (qse_fs_t* fs, const qse_mchar_t* path, int flags)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int qse_fs_mkdirwcs (qse_fs_t* fs, const qse_wchar_t* path, int flags)
|
||||
int qse_fs_mkdirwcs (qse_fs_t* fs, const qse_wchar_t* path, qse_fs_mode_t mode, int flags)
|
||||
{
|
||||
qse_fs_char_t* fspath;
|
||||
int ret;
|
||||
@ -187,14 +187,14 @@ int qse_fs_mkdirwcs (qse_fs_t* fs, const qse_wchar_t* path, int flags)
|
||||
fspath = qse_fs_dupfspathforwcs (fs, path);
|
||||
if (!fspath) return -1;
|
||||
|
||||
ret = make_directory_chain (fs, fspath);
|
||||
ret = make_directory_chain (fs, fspath, mode);
|
||||
}
|
||||
else
|
||||
{
|
||||
fspath = (qse_fs_char_t*)qse_fs_makefspathforwcs (fs, path);
|
||||
if (!fspath) return -1;
|
||||
|
||||
ret = qse_fs_mkdirsys (fs, fspath);
|
||||
ret = qse_fs_mkdirsys (fs, fspath, mode);
|
||||
}
|
||||
|
||||
qse_fs_freefspathforwcs (fs, path, fspath);
|
||||
|
@ -179,7 +179,8 @@ int qse_fs_syscpfile (
|
||||
|
||||
int qse_fs_mkdirsys (
|
||||
qse_fs_t* fs,
|
||||
const qse_fs_char_t* fspath
|
||||
const qse_fs_char_t* fspath,
|
||||
qse_fs_mode_t mode
|
||||
);
|
||||
|
||||
int qse_fs_rmfilesys (
|
||||
|
@ -103,8 +103,7 @@ static qse_sio_errnum_t tio_errnum_to_sio_errnum (qse_tio_t* tio)
|
||||
}
|
||||
}
|
||||
|
||||
qse_sio_t* qse_sio_open (
|
||||
qse_mmgr_t* mmgr, qse_size_t xtnsize, const qse_char_t* file, int flags)
|
||||
qse_sio_t* qse_sio_open (qse_mmgr_t* mmgr, qse_size_t xtnsize, const qse_char_t* file, int flags)
|
||||
{
|
||||
qse_sio_t* sio;
|
||||
|
||||
@ -161,8 +160,7 @@ void qse_sio_close (qse_sio_t* sio)
|
||||
QSE_MMGR_FREE (sio->mmgr, sio);
|
||||
}
|
||||
|
||||
int qse_sio_init (
|
||||
qse_sio_t* sio, qse_mmgr_t* mmgr, const qse_char_t* path, int flags)
|
||||
int qse_sio_init (qse_sio_t* sio, qse_mmgr_t* mmgr, const qse_char_t* path, int flags)
|
||||
{
|
||||
int mode;
|
||||
int topt = 0;
|
||||
|
Reference in New Issue
Block a user