added the qse_fs_mode_t type and the mode parameter to qse_mkdir() and related functions

This commit is contained in:
2018-01-17 07:45:31 +00:00
parent db55393050
commit d991f9c27b
8 changed files with 151 additions and 22 deletions

View File

@ -927,6 +927,9 @@
/* MB_LEN_MAX */
#undef QSE_MBLEN_MAX
/* Define if mode_t is signed */
#undef QSE_MODE_T_IS_SIGNED
/* Author */
#undef QSE_PACKAGE_AUTHOR
@ -981,6 +984,9 @@
/* sizeof(mbstate_t) */
#undef QSE_SIZEOF_MBSTATE_T
/* sizeof(mode_t) */
#undef QSE_SIZEOF_MODE_T
/* sizeof(off64_t) */
#undef QSE_SIZEOF_OFF64_T
@ -1080,6 +1086,9 @@
/* The size of `mbstate_t', as computed by sizeof. */
#undef SIZEOF_MBSTATE_T
/* The size of `mode_t', as computed by sizeof. */
#undef SIZEOF_MODE_T
/* The size of `off64_t', as computed by sizeof. */
#undef SIZEOF_OFF64_T

View File

@ -36,7 +36,6 @@
#include <qse/macros.h>
#include <qse/cmn/time.h>
#if defined(_WIN32) && defined(QSE_CHAR_IS_WCHAR)
typedef qse_wchar_t qse_fs_char_t;
# define QSE_FS_CHAR_IS_WCHAR
@ -47,6 +46,34 @@
# define QSE_SIZEOF_FS_CHAR_T QSE_SIZEOF_MCHAR_T
#endif
#if (QSE_SIZEOF_MODE_T == QSE_SIZEOF_LONG)
# if defined(QSE_MODE_T_IS_SIGNED)
typedef long int qse_fs_mode_t;
# else
typedef unsigned long int qse_fs_mode_t;
# endif
#elif (QSE_SIZEOF_MODE_T == QSE_SIZEOF_INT)
# if defined(QSE_MODE_T_IS_SIGNED)
typedef int qse_fs_mode_t;
# else
typedef unsigned int qse_fs_mode_t;
# endif
#elif (QSE_SIZEOF_MODE_T == QSE_SIZEOF_SHORT)
# if defined(QSE_MODE_T_IS_SIGNED)
typedef short int qse_fs_mode_t;
# else
typedef unsigned short int qse_fs_mode_t;
# endif
#elif (QSE_SIZEOF_MODE_T == QSE_SIZEOF_CHAR)
# if defined(QSE_MODE_T_IS_SIGNED)
typedef signed char qse_fs_mode_t;
# else
typedef unsigned char qse_fs_mode_t;
# endif
#else
typedef unsigned int qse_fs_mode_t;
#endif
enum qse_fs_errnum_t
{
QSE_FS_ENOERR = 0,
@ -441,12 +468,14 @@ QSE_EXPORT int qse_fs_cpfilewcs (
QSE_EXPORT int qse_fs_mkdirmbs (
qse_fs_t* fs,
const qse_mchar_t* path,
qse_fs_mode_t mode,
int flags
);
QSE_EXPORT int qse_fs_mkdirwcs (
qse_fs_t* fs,
const qse_wchar_t* path,
qse_fs_mode_t mode,
int flags
);
@ -475,11 +504,11 @@ QSE_EXPORT int qse_fs_rmdirwcs (
);
#if defined(QSE_CHAR_IS_MCHAR)
# define qse_fs_mkdir(fs,path,flags) qse_fs_mkdirmbs(fs,path,flags)
# define qse_fs_mkdir(fs,path,mode,flags) qse_fs_mkdirmbs(fs,path,mode,flags)
# define qse_fs_rmfile(fs,path,flags) qse_fs_rmfilembs(fs,path,flags)
# define qse_fs_rmdir(fs,path,flags) qse_fs_rmdirmbs(fs,path,flags)
#else
# define qse_fs_mkdir(fs,path,flags) qse_fs_mkdirwcs(fs,path,flags)
# define qse_fs_mkdir(fs,path,mode,flags) qse_fs_mkdirwcs(fs,path,mode,flags)
# define qse_fs_rmfile(fs,path,flags) qse_fs_rmfilewcs(fs,path,flags)
# define qse_fs_rmdir(fs,path,flags) qse_fs_rmdirwcs(fs,path,flags)
#endif