minor bug fixes

This commit is contained in:
hyung-hwan 2008-11-27 03:56:27 +00:00
parent 815dc8c1cd
commit d3adc09e7e

View File

@ -56,20 +56,6 @@ ase_fio_t* ase_fio_init (
ase_fio_t* fio, ase_mmgr_t* mmgr, ase_fio_t* fio, ase_mmgr_t* mmgr,
const ase_char_t* path, int flags, int mode) const ase_char_t* path, int flags, int mode)
{ {
#ifdef _WIN32
DWORD desired_access = 0;
DWORD share_mode = FILE_SHARE_READ | FILE_SHARE_WRITE;
DWORD creation_disposition = 0;
DWORD attributes = FILE_ATTRIBUTE_NORMAL;
DWORD file_type;
#else
int desired_access = 0;
#ifdef ASE_CHAR_IS_MCHAR
const ase_mchar_t* path_mb;
#else
ase_mchar_t path_mb[PATH_MAX + 1];
#endif /* ASE_CHAR_IS_MCHAR */
#endif /* _WIN32 */
ase_fio_hnd_t handle; ase_fio_hnd_t handle;
ASE_MEMSET (fio, 0, ASE_SIZEOF(*fio)); ASE_MEMSET (fio, 0, ASE_SIZEOF(*fio));
@ -82,6 +68,12 @@ ase_fio_t* ase_fio_init (
} }
else else
{ {
DWORD desired_access = 0;
DWORD share_mode = FILE_SHARE_READ | FILE_SHARE_WRITE;
DWORD creation_disposition = 0;
DWORD attributes = FILE_ATTRIBUTE_NORMAL;
DWORD file_type;
if (flags & ASE_FIO_READ) desired_access |= GENERIC_READ; if (flags & ASE_FIO_READ) desired_access |= GENERIC_READ;
if (flags & ASE_FIO_WRITE) desired_access |= GENERIC_WRITE; if (flags & ASE_FIO_WRITE) desired_access |= GENERIC_WRITE;
if (flags & ASE_FIO_APPEND) if (flags & ASE_FIO_APPEND)
@ -135,19 +127,19 @@ ase_fio_t* ase_fio_init (
} }
else else
{ {
int desired_access = 0;
#ifdef ASE_CHAR_IS_MCHAR #ifdef ASE_CHAR_IS_MCHAR
path_mb = path; const ase_mchar_t* path_mb = path;
#else #else
ase_mchar_t path_mb[PATH_MAX + 1];
if (ase_wcstombs_strict (path, if (ase_wcstombs_strict (path,
path_mb, ASE_COUNTOF(path_mb)) == -1) return ASE_NULL; path_mb, ASE_COUNTOF(path_mb)) == -1) return ASE_NULL;
#endif #endif
if (flags & ASE_FIO_READ) desired_access = O_RDONLY; if ((flags & ASE_FIO_READ) &&
if (flags & ASE_FIO_WRITE) (flags & ASE_FIO_WRITE)) desired_access |= O_RDWR;
{ else if (flags & ASE_FIO_READ) desired_access |= O_RDONLY;
if (desired_access == 0) desired_access |= O_WRONLY; else desired_access |= O_WRONLY;
else desired_access = O_RDWR;
}
if (flags & ASE_FIO_APPEND) desired_access |= O_APPEND; if (flags & ASE_FIO_APPEND) desired_access |= O_APPEND;
if (flags & ASE_FIO_CREATE) desired_access |= O_CREAT; if (flags & ASE_FIO_CREATE) desired_access |= O_CREAT;
@ -196,7 +188,7 @@ ase_fio_off_t ase_fio_seek (
ase_fio_t* fio, ase_fio_off_t offset, ase_fio_ori_t origin) ase_fio_t* fio, ase_fio_off_t offset, ase_fio_ori_t origin)
{ {
#ifdef _WIN32 #ifdef _WIN32
static int __seek_map[] = static int seek_map[] =
{ {
FILE_BEGIN, FILE_BEGIN,
FILE_CURRENT, FILE_CURRENT,
@ -208,12 +200,12 @@ ase_fio_off_t ase_fio_seek (
x.QuadPart = offset; x.QuadPart = offset;
if (SetFilePointerEx ( if (SetFilePointerEx (
fio->handle, x, &y, __seek_map[origin]) == FALSE) return -1; fio->handle, x, &y, seek_map[origin]) == FALSE) return -1;
return (ase_fio_off_t)y.QuadPart; return (ase_fio_off_t)y.QuadPart;
#else #else
static int __seek_map[] = static int seek_map[] =
{ {
SEEK_SET, SEEK_SET,
SEEK_CUR, SEEK_CUR,
@ -227,16 +219,16 @@ ase_fio_off_t ase_fio_seek (
(unsigned long)(offset>>32), (unsigned long)(offset>>32),
(unsigned long)(offset&0xFFFFFFFFlu), (unsigned long)(offset&0xFFFFFFFFlu),
&tmp, &tmp,
__seek_map[origin]) == -1) return -1; seek_map[origin]) == -1) return -1;
return tmp; return (ase_fio_off_t)tmp;
#elif defined(SYS_lseek) #elif defined(SYS_lseek)
return syscall (SYS_lseek, fio->handle, offset, __seek_map[origin]); return syscall (SYS_lseek, fio->handle, offset, seek_map[origin]);
#elif !defined(_LP64) && defined(HAVE_LSEEK64) #elif !defined(_LP64) && defined(HAVE_LSEEK64)
return lseek64 (fio->handle, offset, __seek_map[origin]); return lseek64 (fio->handle, offset, seek_map[origin]);
#else #else
return lseek (fio->handle, offset, __seek_map[origin]); return lseek (fio->handle, offset, seek_map[origin]);
#endif #endif
#endif #endif