- minor improvements to tio and sio
- renamed extio to eio in awk - renamed qse_awk_run_t to qse_awk_rtx_t
This commit is contained in:
@ -33,11 +33,13 @@ static qse_sio_t __sio_in =
|
||||
/* fio */
|
||||
{
|
||||
QSE_NULL,
|
||||
0,
|
||||
#ifdef _WIN32
|
||||
(HANDLE)STD_INPUT_HANDLE,
|
||||
#else
|
||||
0,
|
||||
#endif
|
||||
QSE_NULL
|
||||
},
|
||||
|
||||
/* tio */
|
||||
@ -67,11 +69,13 @@ static qse_sio_t __sio_out =
|
||||
/* fio */
|
||||
{
|
||||
QSE_NULL,
|
||||
0,
|
||||
#ifdef _WIN32
|
||||
(HANDLE)STD_OUTPUT_HANDLE,
|
||||
#else
|
||||
1
|
||||
1,
|
||||
#endif
|
||||
QSE_NULL
|
||||
},
|
||||
|
||||
/* tio */
|
||||
@ -101,11 +105,13 @@ static qse_sio_t __sio_err =
|
||||
/* fio */
|
||||
{
|
||||
QSE_NULL,
|
||||
0,
|
||||
#ifdef _WIN32
|
||||
(HANDLE)STD_ERROR_HANDLE,
|
||||
#else
|
||||
2
|
||||
2,
|
||||
#endif
|
||||
QSE_NULL
|
||||
},
|
||||
|
||||
/* tio */
|
||||
@ -226,39 +232,41 @@ void qse_sio_purge (qse_sio_t* sio)
|
||||
qse_tio_purge (&sio->tio);
|
||||
}
|
||||
|
||||
#if 0
|
||||
qse_ssize_t qse_sio_getc (qse_sio_t* sio, qse_char_t* c)
|
||||
{
|
||||
return qse_tio_getc (&sio->tio, c);
|
||||
return qse_tio_read (&sio->tio, c, 1);
|
||||
}
|
||||
|
||||
qse_ssize_t qse_sio_gets (qse_sio_t* sio, qse_char_t* buf, qse_size_t size)
|
||||
qse_ssize_t qse_sio_gets (
|
||||
qse_sio_t* sio, qse_char_t* buf, qse_size_t size)
|
||||
{
|
||||
return qse_tio_gets (&sio->tio, buf, size);
|
||||
qse_ssize_t n;
|
||||
|
||||
if (size <= 0) return 0;
|
||||
n = qse_tio_read (&sio->tio, buf, size -1);
|
||||
if (n == -1) return -1;
|
||||
buf[n] = QSE_T('\0');
|
||||
return n;
|
||||
}
|
||||
|
||||
qse_ssize_t qse_sio_getstr (qse_sio_t* sio, qse_str_t* buf)
|
||||
{
|
||||
return qse_tio_getstr (&sio->tio, buf);
|
||||
}
|
||||
|
||||
qse_ssize_t qse_sio_putc (qse_sio_t* sio, qse_char_t c)
|
||||
{
|
||||
return qse_tio_putc (&sio->tio, c);
|
||||
}
|
||||
|
||||
qse_ssize_t qse_sio_puts (qse_sio_t* sio, const qse_char_t* str)
|
||||
{
|
||||
return qse_tio_puts (&sio->tio, str);
|
||||
}
|
||||
#endif
|
||||
|
||||
qse_ssize_t qse_sio_read (qse_sio_t* sio, qse_char_t* buf, qse_size_t size)
|
||||
qse_ssize_t qse_sio_getsn (
|
||||
qse_sio_t* sio, qse_char_t* buf, qse_size_t size)
|
||||
{
|
||||
return qse_tio_read (&sio->tio, buf, size);
|
||||
}
|
||||
|
||||
qse_ssize_t qse_sio_write (qse_sio_t* sio, const qse_char_t* str, qse_size_t size)
|
||||
qse_ssize_t qse_sio_putc (qse_sio_t* sio, qse_char_t c)
|
||||
{
|
||||
return qse_tio_write (&sio->tio, &c, 1);
|
||||
}
|
||||
|
||||
qse_ssize_t qse_sio_puts (qse_sio_t* sio, const qse_char_t* str)
|
||||
{
|
||||
return qse_tio_write (&sio->tio, str, (qse_size_t)-1);
|
||||
}
|
||||
|
||||
qse_ssize_t qse_sio_putsn (
|
||||
qse_sio_t* sio, const qse_char_t* str, qse_size_t size)
|
||||
{
|
||||
return qse_tio_write (&sio->tio, str, size);
|
||||
}
|
||||
|
@ -74,19 +74,34 @@ static qse_ssize_t tio_putc (qse_tio_t* tio, qse_char_t c)
|
||||
qse_ssize_t qse_tio_write (qse_tio_t* tio, const qse_char_t* str, qse_size_t size)
|
||||
{
|
||||
qse_ssize_t n;
|
||||
const qse_char_t* p, * end;
|
||||
const qse_char_t* p;
|
||||
|
||||
if (size == 0) return 0;
|
||||
|
||||
p = str; end = str + size;
|
||||
while (p < end)
|
||||
{
|
||||
n = tio_putc (tio, *p);
|
||||
if (n == -1) return -1;
|
||||
if (n == 0) break;
|
||||
p = str;
|
||||
|
||||
p++;
|
||||
if (size == (qse_size_t)-1)
|
||||
{
|
||||
while (*p != QSE_T('\0'))
|
||||
{
|
||||
n = tio_putc (tio, *p);
|
||||
if (n == -1) return -1;
|
||||
if (n == 0) break;
|
||||
p++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const qse_char_t* end = str + size;
|
||||
while (p < end)
|
||||
{
|
||||
n = tio_putc (tio, *p);
|
||||
if (n == -1) return -1;
|
||||
if (n == 0) break;
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
return p - str;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user