version 1.13, 2002/03/28 10:53:48 |
version 1.13.2.4, 2003/06/02 15:01:14 |
Line 202 _FUNCNAME(mbtowc_priv)(_ENCODING_INFO * |
|
Line 202 _FUNCNAME(mbtowc_priv)(_ENCODING_INFO * |
|
} |
} |
|
|
state = *psenc; |
state = *psenc; |
err = _FUNCNAME(mbrtowc_priv)(ei, pwc, &s, n, psenc, &nr); |
err = _FUNCNAME(mbrtowc_priv)(ei, pwc, (const char **)&s, n, psenc, &nr); |
if (err) { |
if (err) { |
*nresult = -1; |
*nresult = -1; |
return (err); |
return (err); |
Line 233 _FUNCNAME(mbsrtowcs_priv)(_ENCODING_INFO |
|
Line 233 _FUNCNAME(mbsrtowcs_priv)(_ENCODING_INFO |
|
_DIAGASSERT(nresult != 0); |
_DIAGASSERT(nresult != 0); |
_DIAGASSERT(ei != NULL); |
_DIAGASSERT(ei != NULL); |
_DIAGASSERT(psenc != NULL); |
_DIAGASSERT(psenc != NULL); |
|
_DIAGASSERT(s == NULL); |
|
_DIAGASSERT(*s == NULL); |
|
|
if (s == NULL || *s == NULL || n==0) { |
/* if pwcs is NULL, ignore n */ |
*nresult = (size_t)-1; |
if (pwcs == NULL) |
return EILSEQ; |
n = 1; /* arbitrary >0 value */ |
} |
|
|
|
if (!pwcs) |
|
n = 1; |
|
|
|
cnt = 0; |
cnt = 0; |
s0 = *s; /* to keep *s unchanged for now, use copy instead. */ |
s0 = *s; /* to keep *s unchanged for now, use copy instead. */ |
|
|
_pse_ = &_CEI_TO_STATE(_cei_, _func_); \ |
_pse_ = &_CEI_TO_STATE(_cei_, _func_); \ |
if (_STATE_NEEDS_EXPLICIT_INIT(_pse_)) \ |
if (_STATE_NEEDS_EXPLICIT_INIT(_pse_)) \ |
_FUNCNAME(init_state)(_CEI_TO_EI(_cei_), \ |
_FUNCNAME(init_state)(_CEI_TO_EI(_cei_), \ |
psenc); \ |
(_pse_)); \ |
} else { \ |
} else { \ |
_pse_ = &_state; \ |
_pse_ = &_state; \ |
_FUNCNAME(unpack_state)(_CEI_TO_EI(_cei_), \ |
_FUNCNAME(unpack_state)(_CEI_TO_EI(_cei_), \ |
Line 445 _FUNCNAME(ctype_mbrlen)(void * __restric |
|
Line 443 _FUNCNAME(ctype_mbrlen)(void * __restric |
|
*nresult = 0; |
*nresult = 0; |
} else { |
} else { |
err = _FUNCNAME(mbrtowc_priv)( |
err = _FUNCNAME(mbrtowc_priv)( |
cl, NULL, &s, n, (void *)psenc, nresult); |
cl, NULL, (const char **)&s, n, (void *)psenc, nresult); |
} |
} |
_RESTART_END(mbrlen, _TO_CEI(cl), pspriv, psenc); |
_RESTART_END(mbrlen, _TO_CEI(cl), pspriv, psenc); |
|
|
Line 468 _FUNCNAME(ctype_mbrtowc)(void * __restri |
|
Line 466 _FUNCNAME(ctype_mbrtowc)(void * __restri |
|
*nresult = 0; |
*nresult = 0; |
} else { |
} else { |
err = _FUNCNAME(mbrtowc_priv)( |
err = _FUNCNAME(mbrtowc_priv)( |
cl, pwc, &s, n, (void *)psenc, nresult); |
cl, pwc, (const char **)&s, n, (void *)psenc, nresult); |
} |
} |
_RESTART_END(mbrtowc, _TO_CEI(cl), pspriv, psenc); |
_RESTART_END(mbrtowc, _TO_CEI(cl), pspriv, psenc); |
|
|
Line 523 _FUNCNAME(ctype_mbstowcs)(void * __restr |
|
Line 521 _FUNCNAME(ctype_mbstowcs)(void * __restr |
|
_DIAGASSERT(cl != NULL); |
_DIAGASSERT(cl != NULL); |
|
|
_FUNCNAME(init_state)(_CEI_TO_EI(_TO_CEI(cl)), &state); |
_FUNCNAME(init_state)(_CEI_TO_EI(_TO_CEI(cl)), &state); |
err = _FUNCNAME(mbsrtowcs_priv)(cl, pwcs, &s, n, &state, nresult); |
err = _FUNCNAME(mbsrtowcs_priv)(cl, pwcs, (const char **)&s, n, &state, nresult); |
if (*nresult == (size_t)-2) { |
if (*nresult == (size_t)-2) { |
err = EILSEQ; |
err = EILSEQ; |
*nresult = (size_t)-1; |
*nresult = (size_t)-1; |
Line 594 _FUNCNAME(ctype_wcstombs)(void * __restr |
|
Line 592 _FUNCNAME(ctype_wcstombs)(void * __restr |
|
_DIAGASSERT(cl != NULL); |
_DIAGASSERT(cl != NULL); |
|
|
_FUNCNAME(init_state)(_CEI_TO_EI(_TO_CEI(cl)), &state); |
_FUNCNAME(init_state)(_CEI_TO_EI(_TO_CEI(cl)), &state); |
err = _FUNCNAME(wcsrtombs_priv)(cl, s, &pwcs, n, |
err = _FUNCNAME(wcsrtombs_priv)(cl, s, (const wchar_t **)&pwcs, n, |
&state, nresult); |
&state, nresult); |
|
|
return err; |
return err; |
|
|
_FUNCNAME(ctype_wctomb)(void * __restrict cl, char * __restrict s, wchar_t wc, |
_FUNCNAME(ctype_wctomb)(void * __restrict cl, char * __restrict s, wchar_t wc, |
int * __restrict nresult) |
int * __restrict nresult) |
{ |
{ |
|
_ENCODING_STATE *psenc; |
size_t nr; |
size_t nr; |
int err = 0; |
int err = 0; |
char s0[MB_LEN_MAX]; |
|
|
|
_DIAGASSERT(cl != NULL); |
_DIAGASSERT(cl != NULL); |
|
|
if (s==NULL) |
psenc = &_CEI_TO_STATE(_TO_CEI(cl), wctomb); |
s = s0; |
if (s == NULL) { |
|
_FUNCNAME(init_state)(_CEI_TO_EI(_TO_CEI(cl)), psenc); |
|
*nresult = _ENCODING_IS_STATE_DEPENDENT; |
|
return 0; |
|
} |
|
|
err = _FUNCNAME(wcrtomb_priv)(cl, s, |
err = _FUNCNAME(wcrtomb_priv)(cl, s, |
_ENCODING_MB_CUR_MAX(_CEI_TO_EI(_TO_CEI(cl))), |
_ENCODING_MB_CUR_MAX(_CEI_TO_EI(_TO_CEI(cl))), |
wc, &_CEI_TO_STATE(_TO_CEI(cl), wctomb), &nr); |
wc, psenc, &nr); |
*nresult = (int)nr; |
*nresult = (int)nr; |
|
|
return 0; |
return 0; |