enhanced win32 utf8 console hack in sio

This commit is contained in:
2012-02-25 14:52:26 +00:00
parent b0bcf53b6f
commit ada60acf67
30 changed files with 296 additions and 233 deletions

View File

@ -1171,7 +1171,7 @@ private:
int dispatch_function (Run* run, const cstr_t* name);
static const char_t* xerrstr (awk_t* a, errnum_t num);
static const char_t* xerrstr (const awk_t* a, errnum_t num);
private:
Awk (const Awk&);

View File

@ -999,7 +999,7 @@ typedef struct qse_awk_errinf_t qse_awk_errinf_t;
* object with the qse_awk_seterrstr() function to customize an error string.
*/
typedef const qse_char_t* (*qse_awk_errstr_t) (
qse_awk_t* awk, /**< awk */
const qse_awk_t* awk, /**< awk */
qse_awk_errnum_t num /**< error number */
);
@ -1205,7 +1205,7 @@ int qse_awk_clear (
* The qse_awk_geterrstr() gets an error string getter.
*/
qse_awk_errstr_t qse_awk_geterrstr (
qse_awk_t* awk /**< awk */
const qse_awk_t* awk /**< awk */
);
/**
@ -1243,7 +1243,7 @@ void qse_awk_seterrstr (
* @return error number
*/
qse_awk_errnum_t qse_awk_geterrnum (
qse_awk_t* awk /**< awk */
const qse_awk_t* awk /**< awk */
);
/**
@ -1251,7 +1251,7 @@ qse_awk_errnum_t qse_awk_geterrnum (
* last error has occurred.
*/
const qse_awk_loc_t* qse_awk_geterrloc (
qse_awk_t* awk /**< awk */
const qse_awk_t* awk /**< awk */
);
/**
@ -1261,7 +1261,7 @@ const qse_awk_loc_t* qse_awk_geterrloc (
* @return error message
*/
const qse_char_t* qse_awk_geterrmsg (
qse_awk_t* awk /**< awk */
const qse_awk_t* awk /**< awk */
);
/**
@ -1269,7 +1269,7 @@ const qse_char_t* qse_awk_geterrmsg (
* pointed to by @a errinf from @a awk.
*/
void qse_awk_geterrinf (
qse_awk_t* awk, /**< awk */
const qse_awk_t* awk, /**< awk */
qse_awk_errinf_t* errinf /**< error information buffer */
);
@ -1300,7 +1300,7 @@ void qse_awk_seterrinf (
* The qse_awk_geterror() function gets error information via parameters.
*/
void qse_awk_geterror (
qse_awk_t* awk, /**< awk */
const qse_awk_t* awk, /**< awk */
qse_awk_errnum_t* errnum, /**< error number */
const qse_char_t** errmsg, /**< error message */
qse_awk_loc_t* errloc /**< error location */
@ -1322,7 +1322,7 @@ void qse_awk_seterror (
* @return 0 or a number ORed of #qse_awk_option_t enumerators.
*/
int qse_awk_getoption (
qse_awk_t* awk /**< awk */
const qse_awk_t* awk /**< awk */
);
/**
@ -1340,8 +1340,8 @@ void qse_awk_setoption (
* @return maximum depth
*/
qse_size_t qse_awk_getmaxdepth (
qse_awk_t* awk, /**< awk */
qse_awk_depth_t type /**< operation type */
const qse_awk_t* awk, /**< awk */
qse_awk_depth_t type /**< operation type */
);
/**
@ -1797,7 +1797,7 @@ qse_htb_t* qse_awk_rtx_getnvmap (
* @return error number
*/
qse_awk_errnum_t qse_awk_rtx_geterrnum (
qse_awk_rtx_t* rtx /**< runtime context */
const qse_awk_rtx_t* rtx /**< runtime context */
);
/**
@ -1806,7 +1806,7 @@ qse_awk_errnum_t qse_awk_rtx_geterrnum (
* @return error location
*/
const qse_awk_loc_t* qse_awk_rtx_geterrloc (
qse_awk_rtx_t* rtx /**< runtime context */
const qse_awk_rtx_t* rtx /**< runtime context */
);
/**
@ -1815,7 +1815,7 @@ const qse_awk_loc_t* qse_awk_rtx_geterrloc (
* @return error message
*/
const qse_char_t* qse_awk_rtx_geterrmsg (
qse_awk_rtx_t* rtx /**< runtime context */
const qse_awk_rtx_t* rtx /**< runtime context */
);
/**
@ -1823,8 +1823,8 @@ const qse_char_t* qse_awk_rtx_geterrmsg (
* pointed to by @a errinf from a runtime context @a rtx.
*/
void qse_awk_rtx_geterrinf (
qse_awk_rtx_t* rtx, /**< runtime context */
qse_awk_errinf_t* errinf /**< error information */
const qse_awk_rtx_t* rtx, /**< runtime context */
qse_awk_errinf_t* errinf /**< error information */
);
/**
@ -1834,10 +1834,10 @@ void qse_awk_rtx_geterrinf (
* @a errmsg; the error line into memory pointed to by @a errlin.
*/
void qse_awk_rtx_geterror (
qse_awk_rtx_t* rtx, /**< runtime context */
qse_awk_errnum_t* errnum, /**< error number */
const qse_char_t** errmsg, /**< error message */
qse_awk_loc_t* errloc /**< error location */
const qse_awk_rtx_t* rtx, /**< runtime context */
qse_awk_errnum_t* errnum, /**< error number */
const qse_char_t** errmsg, /**< error message */
qse_awk_loc_t* errloc /**< error location */
);
/**

View File

@ -210,15 +210,19 @@ void qse_fio_fini (
qse_fio_t* fio
);
qse_fio_errnum_t qse_fio_geterrnum (
const qse_fio_t* fio
);
/**
* The qse_fio_gethandle() function returns the native file handle.
*/
qse_fio_hnd_t qse_fio_gethandle (
qse_fio_t* fio
const qse_fio_t* fio
);
qse_ubi_t qse_fio_gethandleasubi (
qse_fio_t* fio
const qse_fio_t* fio
);
/**

View File

@ -121,11 +121,11 @@ typedef void (*qse_htb_freeer_t) (
* integer otherwise.
*/
typedef int (*qse_htb_comper_t) (
qse_htb_t* htb, /**< hash table */
const void* kptr1, /**< key pointer */
qse_size_t klen1, /**< key length */
const void* kptr2, /**< key pointer */
qse_size_t klen2 /**< key length */
const qse_htb_t* htb, /**< hash table */
const void* kptr1, /**< key pointer */
qse_size_t klen1, /**< key length */
const void* kptr2, /**< key pointer */
qse_size_t klen2 /**< key length */
);
/**
@ -154,9 +154,9 @@ typedef qse_size_t (*qse_htb_sizer_t) (
* The qse_htb_hasher_t type defines a key hash function
*/
typedef qse_size_t (*qse_htb_hasher_t) (
qse_htb_t* htb, /**< hash table */
const void* kptr, /**< key pointer */
qse_size_t klen /**< key length in bytes */
const qse_htb_t* htb, /**< hash table */
const void* kptr, /**< key pointer */
qse_size_t klen /**< key length in bytes */
);
/**
@ -361,7 +361,7 @@ void qse_htb_fini (
* The qse_htb_getmancbs() function gets manipulation callback function set.
*/
const qse_htb_mancbs_t* qse_htb_getmancbs (
qse_htb_t* htb /**< hash table */
const qse_htb_t* htb /**< hash table */
);
/**
@ -377,7 +377,7 @@ void qse_htb_setmancbs (
* The qse_htb_getsize() function gets the number of pairs in hash table.
*/
qse_size_t qse_htb_getsize (
qse_htb_t* htb
const qse_htb_t* htb
);
/**
@ -385,7 +385,7 @@ qse_size_t qse_htb_getsize (
* in a hash bucket.
*/
qse_size_t qse_htb_getcapa (
qse_htb_t* htb /**< hash table */
const qse_htb_t* htb /**< hash table */
);
/**
@ -396,9 +396,9 @@ qse_size_t qse_htb_getcapa (
* or #QSE_NULL if no match is found.
*/
qse_htb_pair_t* qse_htb_search (
qse_htb_t* htb, /**< hash table */
const void* kptr, /**< key pointer */
qse_size_t klen /**< key length */
const qse_htb_t* htb, /**< hash table */
const void* kptr, /**< key pointer */
qse_size_t klen /**< key length */
);
/**
@ -632,20 +632,20 @@ void qse_htb_freepair (
* The qse_htb_dflhash() function is a default hash function.
*/
qse_size_t qse_htb_dflhash (
qse_htb_t* htb,
const void* kptr,
qse_size_t klen
const qse_htb_t* htb,
const void* kptr,
qse_size_t klen
);
/**
* The qse_htb_dflcomp() function is default comparator.
*/
int qse_htb_dflcomp (
qse_htb_t* htb,
const void* kptr1,
qse_size_t klen1,
const void* kptr2,
qse_size_t klen2
const qse_htb_t* htb,
const void* kptr1,
qse_size_t klen1,
const void* kptr2,
qse_size_t klen2
);
#ifdef __cplusplus

View File

@ -1,4 +1,3 @@
/*
* $Id$
*
@ -25,7 +24,7 @@
#include <qse/types.h>
#include <qse/macros.h>
typedef struct qse_ipad_t qse_ipad_t;
typedef struct qse_ipad_t qse_ipad_t;
typedef struct qse_ipad4_t qse_ipad4_t;
typedef struct qse_ipad6_t qse_ipad6_t;
@ -44,14 +43,14 @@ struct qse_ipad_t
{
enum
{
QSE_IPAD_IP4,
QSE_IPAD_IP6
QSE_IPAD_V4,
QSE_IPAD_V6
} type;
union
{
qse_ipad4_t ip4;
qse_ipad4_t ip6;
qse_ipad4_t v4;
qse_ipad6_t v6;
} u;
};
@ -59,6 +58,38 @@ struct qse_ipad_t
extern "C" {
#endif
int qse_mbstoipad4 (
const qse_mchar_t* mbs,
qse_ipad4_t* ipad
);
int qse_mbsntoipad4 (
const qse_mchar_t* mbs,
qse_size_t len
);
int qse_ipad4tombs (
const qse_ipad4_t* ipad,
qse_mchar_t* mbs,
qse_size_t len
);
int qse_wcstoipad4 (
const qse_wchar_t* wcs,
qse_ipad4_t* ipad
);
int qse_wcstoipad4 (
const qse_wchar_t* wcs,
qse_ipad4_t* ipad
);
int qse_ipad4towcs (
const qse_ipad4_t* ipad,
qse_wchar_t* wcs,
qse_size_t len
);
#ifdef __cplusplus
}
#endif

View File

@ -263,12 +263,21 @@ void qse_pio_fini (
qse_pio_t* pio /**< pio object */
);
/**
* The qse_pio_geterrnum() function returns the number of the last error
* occurred.
* @return error number
*/
qse_pio_errnum_t qse_pio_geterrnum (
const qse_pio_t* pio /**< pio object */
);
/**
* The qse_pio_getoption() function gets the current option.
* @return option number OR'ed of #qse_pio_option_t enumerators
*/
int qse_pio_getoption (
qse_pio_t* pio /**< pio object */
const qse_pio_t* pio /**< pio object */
);
/**
@ -280,15 +289,6 @@ void qse_pio_setoption (
enumerators */
);
/**
* The qse_pio_geterrnum() function returns the number of the last error
* occurred.
* @return error number
*/
qse_pio_errnum_t qse_pio_geterrnum (
qse_pio_t* pio /**< pio object */
);
/**
* The qse_pio_getcmgr() function returns the current character manager.
* It returns #QSE_NULL is @a pio is not opened with #QSE_PIO_TEXT.
@ -313,8 +313,8 @@ void qse_pio_setcmgr (
* @return pipe handle
*/
qse_pio_hnd_t qse_pio_gethandle (
qse_pio_t* pio, /**< pio object */
qse_pio_hid_t hid /**< handle ID */
const qse_pio_t* pio, /**< pio object */
qse_pio_hid_t hid /**< handle ID */
);
/**
@ -323,8 +323,8 @@ qse_pio_hnd_t qse_pio_gethandle (
* @return pipe handle
*/
qse_ubi_t qse_pio_gethandleasubi (
qse_pio_t* pio, /**< pio object */
qse_pio_hid_t hid /**< handle ID */
const qse_pio_t* pio, /**< pio object */
qse_pio_hid_t hid /**< handle ID */
);
/**
@ -332,7 +332,7 @@ qse_ubi_t qse_pio_gethandleasubi (
* @return process handle
*/
qse_pio_pid_t qse_pio_getchild (
qse_pio_t* pio /**< pio object */
const qse_pio_t* pio /**< pio object */
);
/**

View File

@ -116,11 +116,11 @@ typedef void (*qse_rbt_freeer_t) (
* key is greater than the second key, -1 otherwise.
*/
typedef int (*qse_rbt_comper_t) (
qse_rbt_t* rbt, /**< red-black tree */
const void* kptr1, /**< key pointer */
qse_size_t klen1, /**< key length */
const void* kptr2, /**< key pointer */
qse_size_t klen2 /**< key length */
const qse_rbt_t* rbt, /**< red-black tree */
const void* kptr1, /**< key pointer */
qse_size_t klen1, /**< key length */
const void* kptr2, /**< key pointer */
qse_size_t klen2 /**< key length */
);
/**
@ -319,7 +319,7 @@ void qse_rbt_fini (
* The qse_rbt_getmancbs() function gets manipulation callback function set.
*/
const qse_rbt_mancbs_t* qse_rbt_getmancbs (
qse_rbt_t* rbt /**< red-black tree */
const qse_rbt_t* rbt /**< red-black tree */
);
/**
@ -335,7 +335,7 @@ void qse_rbt_setmancbs (
* The qse_rbt_getsize() function gets the number of pairs in red-black tree.
*/
qse_size_t qse_rbt_getsize (
qse_rbt_t* rbt /**< red-black tree */
const qse_rbt_t* rbt /**< red-black tree */
);
/**
@ -346,9 +346,9 @@ qse_size_t qse_rbt_getsize (
* or QSE_NULL if no match is found.
*/
qse_rbt_pair_t* qse_rbt_search (
qse_rbt_t* rbt, /**< red-black tree */
const void* kptr, /**< key pointer */
qse_size_t klen /**< the size of the key */
const qse_rbt_t* rbt, /**< red-black tree */
const void* kptr, /**< key pointer */
qse_size_t klen /**< the size of the key */
);
/**
@ -574,11 +574,11 @@ void qse_rbt_freepair (
* The qse_rbt_dflcomp() function defines the default key comparator.
*/
int qse_rbt_dflcomp (
qse_rbt_t* rbt,
const void* kptr1,
qse_size_t klen1,
const void* kptr2,
qse_size_t klen2
const qse_rbt_t* rbt,
const void* kptr1,
qse_size_t klen1,
const void* kptr2,
qse_size_t klen2
);
#ifdef __cplusplus

View File

@ -238,7 +238,7 @@ qse_rex_node_t* qse_rex_yield (
* The qse_rex_getoption() function returns the current options.
*/
int qse_rex_getoption (
qse_rex_t* rex /**< regular expression processor */
const qse_rex_t* rex /**< regular expression processor */
);
/**
@ -250,11 +250,11 @@ void qse_rex_setoption (
);
qse_rex_errnum_t qse_rex_geterrnum (
qse_rex_t* rex
const qse_rex_t* rex
);
const qse_char_t* qse_rex_geterrmsg (
qse_rex_t* rex
const qse_rex_t* rex
);
qse_rex_node_t* qse_rex_comp (

View File

@ -197,7 +197,7 @@ void qse_sio_fini (
);
qse_sio_errnum_t qse_sio_geterrnum (
qse_sio_t* sio
const qse_sio_t* sio
);
qse_cmgr_t* qse_sio_getcmgr (
@ -210,11 +210,11 @@ void qse_sio_setcmgr (
);
qse_sio_hnd_t qse_sio_gethandle (
qse_sio_t* sio
const qse_sio_t* sio
);
qse_ubi_t qse_sio_gethandleasubi (
qse_sio_t* sio
const qse_sio_t* sio
);
qse_ssize_t qse_sio_flush (

View File

@ -169,7 +169,7 @@ int qse_tio_fini (
* The qse_tio_geterrnum() function returns the current error code.
*/
qse_tio_errnum_t qse_tio_geterrnum (
qse_tio_t* tio
const qse_tio_t* tio
);
/**

View File

@ -316,7 +316,7 @@ private:
sed_t* s, io_cmd_t cmd, io_arg_t* arg, char_t* buf, size_t len);
static ssize_t xout (
sed_t* s, io_cmd_t cmd, io_arg_t* arg, char_t* dat, size_t len);
static const char_t* xerrstr (sed_t* s, errnum_t num);
static const char_t* xerrstr (const sed_t* s, errnum_t num);
private:
Sed (const Sed&);

View File

@ -234,7 +234,7 @@ typedef enum qse_sed_errnum_t qse_sed_errnum_t;
* editor with the qse_sed_seterrstr() function to customize an error string.
*/
typedef const qse_char_t* (*qse_sed_errstr_t) (
qse_sed_t* sed, /**< stream editor */
const qse_sed_t* sed, /**< stream editor */
qse_sed_errnum_t num /**< an error number */
);
@ -355,7 +355,7 @@ void qse_sed_close (
* @return 0 or a number OR'ed of #qse_sed_option_t values
*/
int qse_sed_getoption (
qse_sed_t* sed /**< stream editor */
const qse_sed_t* sed /**< stream editor */
);
/**
@ -370,7 +370,7 @@ void qse_sed_setoption (
* The qse_sed_geterrstr() gets an error string getter.
*/
qse_sed_errstr_t qse_sed_geterrstr (
qse_sed_t* sed /**< stream editor */
const qse_sed_t* sed /**< stream editor */
);
/**
@ -407,7 +407,7 @@ void qse_sed_seterrstr (
* @return the number of the last error
*/
qse_sed_errnum_t qse_sed_geterrnum (
qse_sed_t* sed /**< stream editor */
const qse_sed_t* sed /**< stream editor */
);
/**
@ -416,7 +416,7 @@ qse_sed_errnum_t qse_sed_geterrnum (
* @return error location
*/
const qse_sed_loc_t* qse_sed_geterrloc (
qse_sed_t* sed /**< stream editor */
const qse_sed_t* sed /**< stream editor */
);
/**
@ -424,7 +424,7 @@ const qse_sed_loc_t* qse_sed_geterrloc (
* @return a pointer to an error message
*/
const qse_char_t* qse_sed_geterrmsg (
qse_sed_t* sed /**< stream editor */
const qse_sed_t* sed /**< stream editor */
);
/**
@ -433,7 +433,7 @@ const qse_char_t* qse_sed_geterrmsg (
* to by each parameter.
*/
void qse_sed_geterror (
qse_sed_t* sed, /**< stream editor */
const qse_sed_t* sed, /**< stream editor */
qse_sed_errnum_t* errnum, /**< error number */
const qse_char_t** errmsg, /**< error message */
qse_sed_loc_t* errloc /**< error location */