touched up code and docs

This commit is contained in:
2009-06-05 07:36:02 +00:00
parent 551e6f7c09
commit 922bbbef18
8 changed files with 130 additions and 16 deletions

View File

@ -22,7 +22,50 @@
#ifndef NDEBUG
#include <qse/cmn/sio.h>
#include <stdlib.h>
#ifdef _WIN32
# include <windows.h>
#else
# include "syscall.h"
#endif
#define NTOC(n) (((n) >= 10)? (((n) - 10) + QSE_T('A')): (n) + QSE_T('0'))
#define WRITE_CHAR(c) \
do { \
qse_char_t __xxx_c = c; \
if (qse_sio_putsn (QSE_SIO_ERR, &__xxx_c, 1) != 1) return -1; \
} while (0)
static int write_num (qse_size_t x, int base)
{
qse_size_t last = x % base;
qse_size_t y = 0;
int dig = 0;
x = x / base;
while (x > 0)
{
y = y * base + (x % base);
x = x / base;
dig++;
}
while (y > 0)
{
WRITE_CHAR (NTOC(y % base));
y = y / base;
dig--;
}
while (dig > 0)
{
dig--;
WRITE_CHAR (QSE_T('0'));
}
WRITE_CHAR (NTOC(last));
return 0;
}
void qse_assert_failed (
const qse_char_t* expr, const qse_char_t* desc,
@ -32,9 +75,9 @@ void qse_assert_failed (
qse_sio_puts (QSE_SIO_ERR, QSE_T("FILE "));
qse_sio_puts (QSE_SIO_ERR, file);
qse_sio_puts (QSE_SIO_ERR, QSE_T("LINE "));
qse_sio_puts (QSE_SIO_ERR, QSE_T(" LINE "));
/*qse_sio_puts the number */
write_num (line, 10);
qse_sio_puts (QSE_SIO_ERR, QSE_T(": "));
qse_sio_puts (QSE_SIO_ERR, expr);
@ -47,8 +90,14 @@ void qse_assert_failed (
qse_sio_puts (QSE_SIO_ERR, QSE_T("\n"));
}
qse_sio_puts (QSE_SIO_ERR, QSE_T("================================================================================"));
qse_sio_flush (QSE_SIO_ERR);
abort ();
#ifdef _WIN32
ExitProcess (1);
#else
QSE_KILL (QSE_GETPID(), SIGABRT);
QSE_EXIT (1);
#endif
}
#endif

View File

@ -2676,7 +2676,7 @@ int qse_sed_exec (qse_sed_t* sed, qse_sed_io_fun_t inf, qse_sed_io_fun_t outf)
if (c->negated) n = !n;
if (n == 0)
{
c++;
c = c->state.next;
continue;
}