changed @inclone to @include_once
changed the sf_in_open() to set arg->uniqie_id in lib/awk/std.c
This commit is contained in:
@ -759,8 +759,7 @@ static int occbound (comp_t* com, qse_rex_node_t* n)
|
||||
bound = bound * 10 + com->c.value - QSE_T('0');
|
||||
if (getc_noesc(com) <= -1) return -1;
|
||||
}
|
||||
while (com->c.value >= QSE_T('0') &&
|
||||
com->c.value <= QSE_T('9'));
|
||||
while (com->c.value >= QSE_T('0') && com->c.value <= QSE_T('9'));
|
||||
|
||||
n->occ.max = bound;
|
||||
}
|
||||
@ -768,7 +767,7 @@ static int occbound (comp_t* com, qse_rex_node_t* n)
|
||||
}
|
||||
else n->occ.max = n->occ.min;
|
||||
|
||||
if (n->occ.min > n->occ.min)
|
||||
if (n->occ.min > n->occ.max)
|
||||
{
|
||||
/* invalid occurrences range */
|
||||
com->rex->errnum = QSE_REX_EBOUND;
|
||||
@ -1103,15 +1102,14 @@ static qse_rex_node_t* comp_branches (comp_t* c, qse_rex_node_t* ge)
|
||||
return left;
|
||||
}
|
||||
|
||||
qse_rex_node_t* qse_rex_comp (
|
||||
qse_rex_t* rex, const qse_char_t* ptr, qse_size_t len)
|
||||
qse_rex_node_t* qse_rex_comp (qse_rex_t* rex, const qse_char_t* ptr, qse_size_t len)
|
||||
{
|
||||
comp_t c;
|
||||
qse_rex_node_t* end, * body;
|
||||
|
||||
c.rex = rex;
|
||||
c.re.ptr = ptr;
|
||||
c.re.len = len;
|
||||
c.re.len = len;
|
||||
|
||||
c.ptr = ptr;
|
||||
c.end = ptr + len;
|
||||
|
@ -123,9 +123,7 @@ qse_size_t qse_slwcrtoslmb (
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_size_t qse_slmbrtoslwc (
|
||||
const qse_mchar_t* mb, qse_size_t mbl,
|
||||
qse_wchar_t* wc, qse_mbstate_t* state)
|
||||
qse_size_t qse_slmbrtoslwc (const qse_mchar_t* mb, qse_size_t mbl, qse_wchar_t* wc, qse_mbstate_t* state)
|
||||
{
|
||||
#if defined(FORCE_UTF8)
|
||||
|
||||
@ -152,43 +150,15 @@ qse_size_t qse_slmbrtoslwc (
|
||||
}
|
||||
|
||||
return dbcslen;
|
||||
#elif defined(__sun__) && defined(HAVE_MBRTOWC)
|
||||
/*
|
||||
* Read comments in qse_slmbrlen().
|
||||
*/
|
||||
|
||||
size_t n;
|
||||
|
||||
QSE_ASSERT (mb != QSE_NULL);
|
||||
QSE_ASSERT (mbl > 0);
|
||||
|
||||
if (wc)
|
||||
{
|
||||
n = mbrtowc (wc, mb, mbl, (mbstate_t*)state);
|
||||
if (n == 0)
|
||||
{
|
||||
*wc = QSE_WT('\0');
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
qse_wchar_t dummy;
|
||||
n = mbrtowc (&dummy, mb, mbl, (mbstate_t*)state);
|
||||
if (n == 0) return 1;
|
||||
}
|
||||
|
||||
if (n == (size_t)-1) return 0; /* invalid sequence */
|
||||
if (n == (size_t)-2) return mbl + 1; /* incomplete sequence */
|
||||
return (qse_size_t)n;
|
||||
|
||||
#elif defined(HAVE_MBRTOWC)
|
||||
size_t n;
|
||||
wchar_t tc;
|
||||
|
||||
QSE_ASSERT (mb != QSE_NULL);
|
||||
QSE_ASSERT (mbl > 0);
|
||||
|
||||
n = mbrtowc (wc, mb, mbl, (mbstate_t*)state);
|
||||
n = mbrtowc(&tc, mb, mbl, (mbstate_t*)state);
|
||||
if (n == 0)
|
||||
{
|
||||
if (wc) *wc = QSE_WT('\0');
|
||||
@ -197,6 +167,8 @@ qse_size_t qse_slmbrtoslwc (
|
||||
|
||||
if (n == (size_t)-1) return 0; /* invalid sequence */
|
||||
if (n == (size_t)-2) return mbl + 1; /* incomplete sequence */
|
||||
|
||||
if (wc) *wc = tc; /* if sizeof(qse_wchar_t) < sizeof(wchar_t), *wc may get truncated */
|
||||
return (qse_size_t)n;
|
||||
|
||||
#else
|
||||
@ -205,8 +177,7 @@ qse_size_t qse_slmbrtoslwc (
|
||||
#endif
|
||||
}
|
||||
|
||||
qse_size_t qse_slmbrlen (
|
||||
const qse_mchar_t* mb, qse_size_t mbl, qse_mbstate_t* state)
|
||||
qse_size_t qse_slmbrlen (const qse_mchar_t* mb, qse_size_t mbl, qse_mbstate_t* state)
|
||||
{
|
||||
#if defined(FORCE_UTF8)
|
||||
return qse_utf8len (mb, mbl);
|
||||
@ -267,7 +238,7 @@ qse_size_t qse_slmbrlen (
|
||||
QSE_ASSERT (mb != QSE_NULL);
|
||||
QSE_ASSERT (mbl > 0);
|
||||
|
||||
n = mbrlen (mb, mbl, (mbstate_t*)state);
|
||||
n = mbrlen(mb, mbl, (mbstate_t*)state);
|
||||
if (n == 0) return 1; /* a null character */
|
||||
|
||||
if (n == (size_t)-1) return 0; /* invalid sequence */
|
||||
@ -276,7 +247,7 @@ qse_size_t qse_slmbrlen (
|
||||
return (qse_size_t)n;
|
||||
|
||||
#if 0
|
||||
n = mblen (mb, mbl);
|
||||
n = mblen(mb, mbl);
|
||||
if (n == (size_t)-1) return 0; /* invalid or incomplete sequence */
|
||||
if (n == 0) return 1; /* a null character */
|
||||
return (qse_size_t)n;
|
||||
|
Reference in New Issue
Block a user