added qse_sio_openstd().
added QSE_SED_ZEROA1 and related code
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fio.c 565 2011-09-11 02:48:21Z hyunghwan.chung $
|
||||
* $Id: fio.c 569 2011-09-19 06:51:02Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2011 Chung, Hyung-Hwan.
|
||||
This file is part of QSE.
|
||||
@ -45,8 +45,10 @@
|
||||
|
||||
QSE_IMPLEMENT_COMMON_FUNCTIONS (fio)
|
||||
|
||||
static qse_ssize_t fio_input (qse_tio_cmd_t cmd, void* arg, void* buf, qse_size_t size);
|
||||
static qse_ssize_t fio_output (qse_tio_cmd_t cmd, void* arg, void* buf, qse_size_t size);
|
||||
static qse_ssize_t fio_input (
|
||||
qse_tio_cmd_t cmd, void* arg, void* buf, qse_size_t size);
|
||||
static qse_ssize_t fio_output (
|
||||
qse_tio_cmd_t cmd, void* arg, void* buf, qse_size_t size);
|
||||
|
||||
qse_fio_t* qse_fio_open (
|
||||
qse_mmgr_t* mmgr, qse_size_t ext,
|
||||
@ -851,3 +853,34 @@ static qse_ssize_t fio_output (qse_tio_cmd_t cmd, void* arg, void* buf, qse_size
|
||||
* by fio */
|
||||
return 0;
|
||||
}
|
||||
|
||||
int qse_getstdfiohandle (qse_fio_std_t std, qse_fio_hnd_t* hnd)
|
||||
{
|
||||
qse_fio_hnd_t tab[] =
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
(HANDLE)STD_INPUT_HANDLE,
|
||||
(HANDLE)STD_OUTPUT_HANDLE,
|
||||
(HANDLE)STD_ERROR_HANDLE
|
||||
#elif defined(__OS2__)
|
||||
(HFILE)0, (HFILE)1, (HFILE)2
|
||||
#elif defined(__DOS__)
|
||||
0, 1, 2
|
||||
#else
|
||||
0, 1, 2
|
||||
#endif
|
||||
};
|
||||
|
||||
if (std < 0 || std >= QSE_COUNTOF(tab)) return -1;
|
||||
|
||||
#if defined(_WIN32)
|
||||
{
|
||||
HANDLE tmp = GetStdHandle (tab[std]);
|
||||
if (tmp == INVALID_HANDLE_VALUE) return -1;
|
||||
*hnd = tmp;
|
||||
}
|
||||
#else
|
||||
*hnd = tab[std];
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: sio.c 568 2011-09-17 15:41:26Z hyunghwan.chung $
|
||||
* $Id: sio.c 569 2011-09-19 06:51:02Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2011 Chung, Hyung-Hwan.
|
||||
This file is part of QSE.
|
||||
@ -194,6 +194,14 @@ qse_sio_t* qse_sio_open (
|
||||
return sio;
|
||||
}
|
||||
|
||||
qse_sio_t* qse_sio_openstd (
|
||||
qse_mmgr_t* mmgr, qse_size_t xtnsize, qse_sio_std_t std, int flags)
|
||||
{
|
||||
qse_fio_hnd_t hnd;
|
||||
if (qse_getstdfiohandle (std, &hnd) <= -1) return QSE_NULL;
|
||||
return qse_sio_open (mmgr, xtnsize, &hnd, flags | QSE_SIO_HANDLE);
|
||||
}
|
||||
|
||||
void qse_sio_close (qse_sio_t* sio)
|
||||
{
|
||||
qse_sio_fini (sio);
|
||||
@ -235,6 +243,14 @@ int qse_sio_init (
|
||||
return 0;
|
||||
}
|
||||
|
||||
int qse_sio_initstd (
|
||||
qse_sio_t* sio, qse_mmgr_t* mmgr, qse_sio_std_t std, int flags)
|
||||
{
|
||||
qse_fio_hnd_t hnd;
|
||||
if (qse_getstdfiohandle (std, &hnd) <= -1) return -1;
|
||||
return qse_sio_init (sio, mmgr, &hnd, flags | QSE_SIO_HANDLE);
|
||||
}
|
||||
|
||||
void qse_sio_fini (qse_sio_t* sio)
|
||||
{
|
||||
/*if (qse_sio_flush (sio) == -1) return -1;*/
|
||||
|
Reference in New Issue
Block a user