changed qse_setdflcmgrbyid() and qse_setdflcmgr() to return the cmgr object set.
changed the default cmgr to either SLMB or UTF8 depending on the availability of underlying library functions
This commit is contained in:
@ -50,7 +50,15 @@ static qse_cmgr_t builtin_cmgr[] =
|
||||
#endif
|
||||
};
|
||||
|
||||
static qse_cmgr_t* dfl_cmgr = &builtin_cmgr[QSE_CMGR_SLMB];
|
||||
#if defined(_WIN32) && defined(HAVE_WCRTOMB)
|
||||
/* read the comment at the bottom of qse_slwcrtoslmb() in slmb.c
|
||||
* for the condition above. */
|
||||
# define DEFAULT_CMGR QSE_CMGR_SLMB
|
||||
#else
|
||||
# define DEFAULT_CMGR QSE_CMGR_UTF8
|
||||
#endif
|
||||
|
||||
static qse_cmgr_t* dfl_cmgr = &builtin_cmgr[DEFAULT_CMGR];
|
||||
static qse_cmgr_finder_t cmgr_finder = QSE_NULL;
|
||||
|
||||
qse_cmgr_t* qse_getdflcmgr (void)
|
||||
@ -58,15 +66,17 @@ qse_cmgr_t* qse_getdflcmgr (void)
|
||||
return dfl_cmgr;
|
||||
}
|
||||
|
||||
void qse_setdflcmgr (qse_cmgr_t* cmgr)
|
||||
qse_cmgr_t* qse_setdflcmgr (qse_cmgr_t* cmgr)
|
||||
{
|
||||
dfl_cmgr = (cmgr? cmgr: &builtin_cmgr[QSE_CMGR_SLMB]);
|
||||
dfl_cmgr = (cmgr? cmgr: &builtin_cmgr[DEFAULT_CMGR]);
|
||||
return dfl_cmgr;
|
||||
}
|
||||
|
||||
void qse_setdflcmgrbyid (qse_cmgr_id_t id)
|
||||
qse_cmgr_t* qse_setdflcmgrbyid (qse_cmgr_id_t id)
|
||||
{
|
||||
qse_cmgr_t* cmgr = qse_findcmgrbyid (id);
|
||||
dfl_cmgr = (cmgr? cmgr: &builtin_cmgr[QSE_CMGR_SLMB]);
|
||||
dfl_cmgr = (cmgr? cmgr: &builtin_cmgr[DEFAULT_CMGR]);
|
||||
return dfl_cmgr;
|
||||
}
|
||||
|
||||
qse_cmgr_t* qse_findcmgrbyid (qse_cmgr_id_t id)
|
||||
|
@ -815,15 +815,16 @@ static qse_ssize_t file_output (
|
||||
|
||||
static qse_sio_t* sio_stdout = QSE_NULL;
|
||||
static qse_sio_t* sio_stderr = QSE_NULL;
|
||||
/* TODO: add sio_stdin, qse_getmbs, etc */
|
||||
|
||||
int qse_openstdsios (void)
|
||||
{
|
||||
if (sio_stdout == QSE_NULL)
|
||||
{
|
||||
{
|
||||
sio_stdout = qse_sio_openstd (QSE_MMGR_GETDFL(), 0, QSE_SIO_STDOUT, QSE_SIO_LINEBREAK);
|
||||
}
|
||||
if (sio_stderr == QSE_NULL)
|
||||
{
|
||||
{
|
||||
sio_stderr = qse_sio_openstd (QSE_MMGR_GETDFL(), 0, QSE_SIO_STDERR, QSE_SIO_LINEBREAK);
|
||||
}
|
||||
|
||||
|
@ -104,6 +104,9 @@ qse_size_t qse_slwcrtoslmb (
|
||||
|
||||
#else
|
||||
/* not supported */
|
||||
|
||||
/* make sure to update the precessor condition to set DEFAULT_CMGR
|
||||
* in mbwc.c when you have different implementation here */
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
@ -708,7 +708,7 @@ qse_ssize_t qse_tio_writewcs (
|
||||
/* flush the full buffer regardless of conversion
|
||||
* result. */
|
||||
if (qse_tio_flush (tio) <= -1) return -1;
|
||||
nl = 0;
|
||||
nl = 0;
|
||||
}
|
||||
|
||||
if (n <= -1)
|
||||
|
Reference in New Issue
Block a user