added QSE_TIO_IGNOREMBWCERR

This commit is contained in:
2011-09-11 20:48:21 +00:00
parent 00e15a42e9
commit e2affec43b
11 changed files with 113 additions and 68 deletions

View File

@ -1,5 +1,5 @@
/*
* $Id: fio.h 556 2011-08-31 15:43:46Z hyunghwan.chung $
* $Id: fio.h 565 2011-09-11 02:48:21Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -33,10 +33,11 @@
enum qse_fio_open_flag_t
{
/* request qse_char_io based IO */
QSE_FIO_TEXT = (1 << 0),
QSE_FIO_TEXT = (1 << 0),
QSE_FIO_IGNOREMBWCERR = (1 << 1),
/* treat the file name pointer as a handle pointer */
QSE_FIO_HANDLE = (1 << 1),
QSE_FIO_HANDLE = (1 << 3),
QSE_FIO_READ = (1 << 8),
QSE_FIO_WRITE = (1 << 9),

View File

@ -1,5 +1,5 @@
/*
* $Id: pio.h 556 2011-08-31 15:43:46Z hyunghwan.chung $
* $Id: pio.h 565 2011-09-11 02:48:21Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -38,15 +38,16 @@
enum qse_pio_oflag_t
{
/** enable text based I/O. */
QSE_PIO_TEXT = (1 << 0),
QSE_PIO_TEXT = (1 << 0),
QSE_PIO_IGNOREMBWCERR = (1 << 1),
/** execute the command via a system shell
* (/bin/sh on *nix, cmd.exe on windows) */
QSE_PIO_SHELL = (1 << 1),
QSE_PIO_SHELL = (1 << 3),
/** indicate that the command to qse_pio_open() is a multi-byte string.
* it is useful if #QSE_CHAR_IS_WCHAR is defined. */
QSE_PIO_MBSCMD = (1 << 2),
QSE_PIO_MBSCMD = (1 << 4),
/** write to stdin of a child process */
QSE_PIO_WRITEIN = (1 << 8),

View File

@ -1,5 +1,5 @@
/*
* $Id: sio.h 556 2011-08-31 15:43:46Z hyunghwan.chung $
* $Id: sio.h 565 2011-09-11 02:48:21Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -32,19 +32,20 @@
enum qse_sio_open_flag_t
{
QSE_SIO_HANDLE = QSE_FIO_HANDLE,
QSE_SIO_HANDLE = QSE_FIO_HANDLE,
QSE_SIO_IGNOREMBWCERR = QSE_FIO_IGNOREMBWCERR,
QSE_SIO_READ = QSE_FIO_READ,
QSE_SIO_WRITE = QSE_FIO_WRITE,
QSE_SIO_APPEND = QSE_FIO_APPEND,
QSE_SIO_READ = QSE_FIO_READ,
QSE_SIO_WRITE = QSE_FIO_WRITE,
QSE_SIO_APPEND = QSE_FIO_APPEND,
QSE_SIO_CREATE = QSE_FIO_CREATE,
QSE_SIO_TRUNCATE = QSE_FIO_TRUNCATE,
QSE_SIO_EXCLUSIVE = QSE_FIO_EXCLUSIVE,
QSE_SIO_SYNC = QSE_FIO_SYNC,
QSE_SIO_CREATE = QSE_FIO_CREATE,
QSE_SIO_TRUNCATE = QSE_FIO_TRUNCATE,
QSE_SIO_EXCLUSIVE = QSE_FIO_EXCLUSIVE,
QSE_SIO_SYNC = QSE_FIO_SYNC,
QSE_SIO_NOSHRD = QSE_FIO_NOSHRD,
QSE_SIO_NOSHWR = QSE_FIO_NOSHWR
QSE_SIO_NOSHRD = QSE_FIO_NOSHRD,
QSE_SIO_NOSHWR = QSE_FIO_NOSHWR
};
typedef qse_fio_off_t qse_sio_pos_t;

View File

@ -1,5 +1,5 @@
/*
* $Id: tio.h 556 2011-08-31 15:43:46Z hyunghwan.chung $
* $Id: tio.h 565 2011-09-11 02:48:21Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -60,12 +60,18 @@ enum
QSE_TIO_MAX_OUTBUF_LEN = 4096
};
enum
enum qse_tio_cmd_t
{
QSE_TIO_IO_OPEN,
QSE_TIO_IO_CLOSE,
QSE_TIO_IO_DATA
};
typedef enum qse_tio_cmd_t qse_tio_cmd_t;
enum qse_tio_flag_t
{
QSE_TIO_IGNOREMBWCERR = (1 << 0)
};
#define QSE_TIO_ERRNUM(tio) ((const qse_tio_errnum_t)(tio)->errnum)
@ -75,10 +81,10 @@ typedef struct qse_tio_t qse_tio_t;
* The qse_tio_io_t types define a text I/O handler.
*/
typedef qse_ssize_t (*qse_tio_io_t) (
int cmd,
void* arg,
void* data,
qse_size_t size
qse_tio_cmd_t cmd,
void* arg,
void* data,
qse_size_t size
);
/**
@ -90,6 +96,7 @@ struct qse_tio_t
{
QSE_DEFINE_COMMON_FIELDS (tio)
qse_tio_errnum_t errnum;
int flags;
/* io functions */
qse_tio_io_t input_func;
@ -126,7 +133,8 @@ QSE_DEFINE_COMMON_FUNCTIONS (tio)
*/
qse_tio_t* qse_tio_open (
qse_mmgr_t* mmgr,
qse_size_t xtnsize
qse_size_t xtnsize,
int flags
);
/**
@ -142,7 +150,8 @@ int qse_tio_close (
*/
int qse_tio_init (
qse_tio_t* tio,
qse_mmgr_t* mmgr
qse_mmgr_t* mmgr,
int flags
);
/**