added some DOS stuffs
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: std.c 447 2011-05-01 13:28:51Z hyunghwan.chung $
|
||||
* $Id: std.c 451 2011-05-03 14:00:38Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2011 Chung, Hyung-Hwan.
|
||||
This file is part of QSE.
|
||||
@ -37,7 +37,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef QSE_HAVE_CONFIG_H
|
||||
# if defined(__OS2__) || defined(_WIN32) || defined(__DOS__)
|
||||
# if defined(_WIN32) || defined(__OS2__) || defined(__DOS__)
|
||||
# define HAVE_POW
|
||||
# define HAVE_SIN
|
||||
# define HAVE_COS
|
||||
|
@ -36,6 +36,9 @@
|
||||
#elif defined(__OS2__)
|
||||
# define INCL_DOSPROCESS
|
||||
# include <os2.h>
|
||||
#elif defined(__DOS__)
|
||||
# include <dos.h>
|
||||
# include <dosfunc.h>
|
||||
#else
|
||||
# include "syscall.h"
|
||||
#endif
|
||||
@ -86,9 +89,11 @@ void qse_assert_failed (
|
||||
void *btarray[128];
|
||||
qse_size_t btsize, i;
|
||||
char **btsyms;
|
||||
|
||||
#ifdef QSE_CHAR_IS_WCHAR
|
||||
qse_wchar_t wcs[256];
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
qse_sio_puts (QSE_SIO_ERR, QSE_T("=[ASSERTION FAILURE]============================================================\n"));
|
||||
@ -151,9 +156,16 @@ void qse_assert_failed (
|
||||
qse_sio_flush (QSE_SIO_ERR);
|
||||
|
||||
#if defined(_WIN32)
|
||||
ExitProcess (1);
|
||||
ExitProcess (249);
|
||||
#elif defined(__OS2__)
|
||||
DosExit (EXIT_PROCESS, 1);
|
||||
DosExit (EXIT_PROCESS, 249);
|
||||
#elif defined(__DOS__)
|
||||
{
|
||||
union REGS regs;
|
||||
regs.h.ah = DOS_EXIT;
|
||||
regs.h.al = 249;
|
||||
intdos (®s, ®s);
|
||||
}
|
||||
#else
|
||||
QSE_KILL (QSE_GETPID(), SIGABRT);
|
||||
QSE_EXIT (1);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: chr_cnv.c 441 2011-04-22 14:28:43Z hyunghwan.chung $
|
||||
* $Id: chr_cnv.c 451 2011-05-03 14:00:38Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2011 Chung, Hyung-Hwan.
|
||||
This file is part of QSE.
|
||||
@ -22,7 +22,7 @@
|
||||
#include "mem.h"
|
||||
|
||||
#if !defined(QSE_HAVE_CONFIG_H)
|
||||
# if defined(_WIN32) || defined(__OS2__)
|
||||
# if defined(_WIN32) || defined(__OS2__) || defined(__DOS__)
|
||||
# define HAVE_WCHAR_H
|
||||
# define HAVE_STDLIB_H
|
||||
# define HAVE_MBRLEN
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fio.c 441 2011-04-22 14:28:43Z hyunghwan.chung $
|
||||
* $Id: fio.c 451 2011-05-03 14:00:38Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2011 Chung, Hyung-Hwan.
|
||||
This file is part of QSE.
|
||||
@ -252,6 +252,9 @@ qse_fio_t* qse_fio_init (
|
||||
|
||||
if (ret != NO_ERROR) return QSE_NULL;
|
||||
}
|
||||
#elif defined(__DOS__)
|
||||
/* UNSUPPORTED */
|
||||
return QSE_NULL;
|
||||
#else
|
||||
|
||||
if (flags & QSE_FIO_HANDLE)
|
||||
@ -328,6 +331,9 @@ qse_fio_t* qse_fio_init (
|
||||
CloseHandle (handle);
|
||||
#elif defined(__OS2__)
|
||||
DosClose (handle);
|
||||
#elif defined(__DOS__)
|
||||
/* UNSUPPORTED */
|
||||
;
|
||||
#else
|
||||
QSE_CLOSE (handle);
|
||||
#endif
|
||||
@ -349,6 +355,9 @@ void qse_fio_fini (qse_fio_t* fio)
|
||||
CloseHandle (fio->handle);
|
||||
#elif defined(__OS2__)
|
||||
DosClose (fio->handle);
|
||||
#elif defined(__DOS__)
|
||||
/* UNSUPPORTED */
|
||||
;
|
||||
#else
|
||||
QSE_CLOSE (fio->handle);
|
||||
#endif
|
||||
@ -417,6 +426,11 @@ qse_fio_off_t qse_fio_seek (
|
||||
if (ret != NO_ERROR) return (qse_fio_off_t)-1;
|
||||
|
||||
return ((qse_fio_off_t)pos.ulHi << 32) | pos.ulLo;
|
||||
#elif defined(__DOS__)
|
||||
|
||||
/* UNSUPPORTED */
|
||||
return -1;
|
||||
|
||||
#else
|
||||
static int seek_map[] =
|
||||
{
|
||||
@ -468,6 +482,11 @@ int qse_fio_truncate (qse_fio_t* fio, qse_fio_off_t size)
|
||||
|
||||
ret = DosSetFileSizeL (fio->handle, sz);
|
||||
return (ret == NO_ERROR)? 0: -1;
|
||||
|
||||
#elif defined(__DOS__)
|
||||
/* UNSUPPORTED */
|
||||
return -1;
|
||||
|
||||
#else
|
||||
return QSE_FTRUNCATE (fio->handle, size);
|
||||
#endif
|
||||
@ -485,6 +504,10 @@ static qse_ssize_t fio_read (qse_fio_t* fio, void* buf, qse_size_t size)
|
||||
if (size > QSE_TYPE_MAX(ULONG)) size = QSE_TYPE_MAX(ULONG);
|
||||
if (DosRead (fio->handle, buf, (ULONG)size, &count) != NO_ERROR) return -1;
|
||||
return (qse_ssize_t)count;
|
||||
|
||||
#elif defined(__DOS__)
|
||||
/* UNSUPPORTED */
|
||||
return -1;
|
||||
#else
|
||||
if (size > QSE_TYPE_MAX(size_t)) size = QSE_TYPE_MAX(size_t);
|
||||
return QSE_READ (fio->handle, buf, size);
|
||||
@ -511,6 +534,10 @@ static qse_ssize_t fio_write (qse_fio_t* fio, const void* data, qse_size_t size)
|
||||
if (size > QSE_TYPE_MAX(ULONG)) size = QSE_TYPE_MAX(ULONG);
|
||||
if (DosWrite(fio->handle, (PVOID)data, (ULONG)size, &count) != NO_ERROR) return -1;
|
||||
return (qse_ssize_t)count;
|
||||
|
||||
#elif defined(__DOS__)
|
||||
/* UNSUPPORTED */
|
||||
return -1;
|
||||
#else
|
||||
if (size > QSE_TYPE_MAX(size_t)) size = QSE_TYPE_MAX(size_t);
|
||||
return QSE_WRITE (fio->handle, data, size);
|
||||
@ -662,6 +689,10 @@ int qse_fio_chmod (qse_fio_t* fio, int mode)
|
||||
|
||||
stat.attrFile = flags;
|
||||
return (DosSetFileInfo (fio->handle, FIL_STANDARDL, &stat, size) != NO_ERROR)? -1: 0;
|
||||
|
||||
#elif defined(__DOS__)
|
||||
/* UNSUPPORTED */
|
||||
return -1;
|
||||
#else
|
||||
return QSE_FCHMOD (fio->handle, mode);
|
||||
#endif
|
||||
@ -673,6 +704,10 @@ int qse_fio_sync (qse_fio_t* fio)
|
||||
return (FlushFileBuffers (fio->handle) == FALSE)? -1: 0;
|
||||
#elif defined(__OS2__)
|
||||
return (DosResetBuffer (fio->handle) == NO_ERROR)? 0: -1;
|
||||
|
||||
#elif defined(__DOS__)
|
||||
/* UNSUPPORTED */
|
||||
return -1;
|
||||
#else
|
||||
return QSE_FSYNC (fio->handle);
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: misc.c 450 2011-05-03 07:48:42Z hyunghwan.chung $
|
||||
* $Id: misc.c 451 2011-05-03 14:00:38Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2011 Chung, Hyung-Hwan.
|
||||
This file is part of QSE.
|
||||
@ -28,7 +28,7 @@ const qse_mchar_t* qse_mbsbasename (const qse_mchar_t* path)
|
||||
for (p = path; *p != QSE_MT('\0'); p++)
|
||||
{
|
||||
if (*p == QSE_MT('/')) last = p;
|
||||
#if defined(__OS2__) || defined(_WIN32) || defined(__DOS__)
|
||||
#if defined(_WIN32) || defined(__OS2__) || defined(__DOS__)
|
||||
else if (*p == QSE_MT('\\')) last = p;
|
||||
#endif
|
||||
}
|
||||
@ -43,7 +43,7 @@ const qse_wchar_t* qse_wcsbasename (const qse_wchar_t* path)
|
||||
for (p = path; *p != QSE_WT('\0'); p++)
|
||||
{
|
||||
if (*p == QSE_WT('/')) last = p;
|
||||
#if defined(__OS2__) || defined(_WIN32) || defined(__DOS__)
|
||||
#if defined(_WIN32) || defined(__OS2__) || defined(__DOS__)
|
||||
else if (*p == QSE_WT('\\')) last = p;
|
||||
#endif
|
||||
}
|
||||
|
Reference in New Issue
Block a user