added some convenience routines into sio
This commit is contained in:
@ -718,4 +718,89 @@ static qse_ssize_t file_output (
|
||||
return 0;
|
||||
}
|
||||
|
||||
static qse_sio_t* sio_stdout = QSE_NULL;
|
||||
static qse_sio_t* sio_stderr = QSE_NULL;
|
||||
|
||||
int qse_openstdsios (void)
|
||||
{
|
||||
if (sio_stdout == QSE_NULL)
|
||||
{
|
||||
sio_stdout = qse_sio_openstd (QSE_MMGR_GETDFL(), 0, QSE_SIO_STDOUT, 0);
|
||||
}
|
||||
if (sio_stderr == QSE_NULL)
|
||||
{
|
||||
sio_stderr = qse_sio_openstd (QSE_MMGR_GETDFL(), 0, QSE_SIO_STDERR, 0);
|
||||
}
|
||||
|
||||
if (sio_stdout == QSE_NULL || sio_stderr == QSE_NULL)
|
||||
{
|
||||
qse_closestdsios ();
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void qse_closestdsios (void)
|
||||
{
|
||||
if (sio_stderr)
|
||||
{
|
||||
qse_sio_close (sio_stderr);
|
||||
sio_stderr = QSE_NULL;
|
||||
}
|
||||
if (sio_stdout)
|
||||
{
|
||||
qse_sio_close (sio_stdout);
|
||||
sio_stdout = QSE_NULL;
|
||||
}
|
||||
}
|
||||
|
||||
qse_sio_t* qse_getstdout (void)
|
||||
{
|
||||
return sio_stdout;
|
||||
}
|
||||
|
||||
qse_sio_t* qse_getstderr (void)
|
||||
{
|
||||
return sio_stderr;
|
||||
}
|
||||
|
||||
qse_ssize_t qse_putmbsf (const qse_mchar_t* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
qse_ssize_t x;
|
||||
|
||||
va_start (ap, fmt);
|
||||
x = qse_mxprintf (fmt, put_mchar, put_wchar, sio_stdout, ap);
|
||||
va_end (ap);
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
qse_ssize_t qse_putwcsf (const qse_wchar_t* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
qse_ssize_t x;
|
||||
|
||||
va_start (ap, fmt);
|
||||
x = qse_wxprintf (fmt, put_wchar, put_mchar, sio_stdout, ap);
|
||||
va_end (ap);
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
qse_ssize_t qse_putstrf (const qse_char_t* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
qse_ssize_t x;
|
||||
|
||||
va_start (ap, fmt);
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
x = qse_mxprintf (fmt, put_mchar, put_wchar, sio_stdout, ap);
|
||||
#else
|
||||
x = qse_wxprintf (fmt, put_wchar, put_mchar, sio_stdout, ap);
|
||||
#endif
|
||||
va_end (ap);
|
||||
|
||||
return x;
|
||||
}
|
||||
|
@ -980,6 +980,7 @@ qse_xli_pair_t* qse_xli_setpair (qse_xli_t* xli, const qse_char_t* fqpn, const q
|
||||
|
||||
if (pair == QSE_NULL)
|
||||
{
|
||||
/* TODO: honor QSE_XLI_VALIDATE.... */
|
||||
/* insert a new item..... */
|
||||
if (*ptr == QSE_T('\0'))
|
||||
{
|
||||
|
Reference in New Issue
Block a user