made minor changes to support MINGW32

This commit is contained in:
2008-12-10 00:52:03 +00:00
parent dea9b94b87
commit 261c499217
10 changed files with 56 additions and 54 deletions

View File

@ -72,7 +72,6 @@ ase_fio_t* ase_fio_init (
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_WRITE) desired_access |= GENERIC_WRITE;
@ -105,13 +104,15 @@ ase_fio_t* ase_fio_init (
creation_disposition, attributes, 0);
}
if (handle == INVALID_HANDLE) return ASE_NULL;
if (handle == INVALID_HANDLE_VALUE) return ASE_NULL;
file_type = GetFileType(handle);
if (file_type == FILE_TYPE_UNKNOWN)
{
CloseHandle (handle);
return ASE_NULL;
DWORD file_type = GetFileType(handle);
if (file_type == FILE_TYPE_UNKNOWN)
{
CloseHandle (handle);
return ASE_NULL;
}
}
/* TODO: a lot more */
@ -259,7 +260,7 @@ ase_ssize_t ase_fio_read (ase_fio_t* fio, void* buf, ase_size_t size)
#ifdef _WIN32
DWORD count;
if (size > ASE_TYPE_MAX(DWORD)) size = ASE_TYPE_MAX(DWORD);
if (ReadFile(handle, buf, size, &count, ASE_NULL) == FALSE) return -1;
if (ReadFile(fio->handle, buf, size, &count, ASE_NULL) == FALSE) return -1;
return (ase_ssize_t)count;
#else
if (size > ASE_TYPE_MAX(size_t)) size = ASE_TYPE_MAX(size_t);
@ -276,7 +277,7 @@ ase_ssize_t ase_fio_write (ase_fio_t* fio, const void* data, ase_size_t size)
#ifdef _WIN32
DWORD count;
if (size > ASE_TYPE_MAX(DWORD)) size = ASE_TYPE_MAX(DWORD);
if (WriteFile(handle, buf, &count, ASE_NULL) == FALSE) return -1;
if (WriteFile(fio->handle, data, size, &count, ASE_NULL) == FALSE) return -1;
return (ase_ssize_t)count;
#else
if (size > ASE_TYPE_MAX(size_t)) size = ASE_TYPE_MAX(size_t);

View File

@ -8,6 +8,10 @@
static ase_ssize_t __sio_input (int cmd, void* arg, void* buf, ase_size_t size);
static ase_ssize_t __sio_output (int cmd, void* arg, void* buf, ase_size_t size);
#ifdef _WIN32
#include <windows.h>
#endif
static ase_sio_t __sio_in =
{
ASE_NULL, /* mmgr */

View File

@ -1,5 +1,5 @@
/*
* $Id: main.c 116 2008-03-03 11:15:37Z baconevi $
* $Id: main.c 463 2008-12-09 06:52:03Z baconevi $
*
* {License}
*/
@ -10,7 +10,7 @@
#include <string.h>
#include <locale.h>
#if defined(_WIN32)
#if defined(_WIN32) && !defined(__MINGW32__)
int ase_runmain (int argc, ase_achar_t* argv[], int(*mf) (int,ase_char_t*[]))
{

View File

@ -1,5 +1,5 @@
/*
* $Id: stdio.c 341 2008-08-20 10:58:19Z baconevi $
* $Id: stdio.c 463 2008-12-09 06:52:03Z baconevi $
*
* {License}
*/
@ -21,7 +21,11 @@ int ase_vsprintf (ase_char_t* buf, size_t size, const ase_char_t* fmt, va_list a
{
int n;
n = _vsntprintf (buf, size, fmt, ap);
#ifdef ASE_CHAR_IS_MCHAR
n = _vsnprintf (buf, size, fmt, ap);
#else
n = _vsnwprintf (buf, size, fmt, ap);
#endif
if (n < 0 || (size_t)n >= size)
{
if (size > 0) buf[size-1] = ASE_T('\0');
@ -319,10 +323,10 @@ int ase_dprintf (const ase_char_t* fmt, ...)
ASE_FILE* ase_fopen (const ase_char_t* path, const ase_char_t* mode)
{
#if defined(_WIN32)
return _tfopen (path, mode);
#elif defined(ASE_CHAR_IS_MCHAR)
#if defined(ASE_CHAR_IS_MCHAR)
return fopen (path, mode);
#elif defined(_WIN32)
return _wfopen (path, mode);
#else
char path_mb[PATH_MAX + 1];
@ -343,24 +347,10 @@ ASE_FILE* ase_fopen (const ase_char_t* path, const ase_char_t* mode)
ASE_FILE* ase_popen (const ase_char_t* cmd, const ase_char_t* mode)
{
#if defined(__SPU__)
/* popen is not available */
#warning ############################################
#warning ase_popen is NOT SUPPORTED in this platform.
#warning #############################################
return ASE_NULL;
#elif defined(_WIN32)
#if defined(__DMC__)
/* TODO: implement this for DMC */
#warning ############################################
#warning ase_popen is NOT SUPPORTED in this platform.
#warning #############################################
return ASE_NULL;
#else
return _tpopen (cmd, mode);
#endif
#elif defined(ASE_CHAR_IS_MCHAR)
#if defined(ASE_CHAR_IS_MCHAR)
return popen (cmd, mode);
#elif defined(_WIN32)
return _wpopen (cmd, mode);
#else
char cmd_mb[PATH_MAX + 1];
char mode_mb[32];
@ -407,11 +397,11 @@ ase_ssize_t ase_getdelim (
if (b == ASE_NULL)
{
capa = 256;
#if (defined(vms) || defined(__vms)) && (ASE_SIZEOF_VOID_P >= 8)
#if (defined(vms) || defined(__vms)) && (ASE_SIZEOF_VOID_P >= 8)
b = (ase_char_t*) _malloc32 (sizeof(ase_char_t)*(capa+1));
#else
#else
b = (ase_char_t*) malloc (sizeof(ase_char_t)*(capa+1));
#endif
#endif
if (b == ASE_NULL) return -2;
}