fixed bch mode issues and raised the version to 0.9.9
This commit is contained in:
@ -614,8 +614,8 @@ HAWK_EXPORT int hawk_fnmat_bchars_i (
|
||||
# define hawk_find_oochars_in_oochars hawk_find_bchars_in_bchars
|
||||
# define hawk_rfind_oochars_in_oochars hawk_rfind_bchars_in_bchars
|
||||
|
||||
# define hawk_compact_oochars hawk_compact_uchars
|
||||
# define hawk_rotate_oochars hawk_rotate_uchars
|
||||
# define hawk_compact_oochars hawk_compact_bchars
|
||||
# define hawk_rotate_oochars hawk_rotate_bchars
|
||||
# define hawk_tokenize_oochars hawk_tokenize_bchars
|
||||
# define hawk_trim_oochars hawk_trim_bchars
|
||||
# define hawk_split_oocstr hawk_split_bcstr
|
||||
|
@ -204,7 +204,7 @@ static int handle_string_value_char (hawk_json_t* json, hawk_ooci_t c)
|
||||
hawk_bch_t bcsbuf[HAWK_MBLEN_MAX];
|
||||
hawk_oow_t n;
|
||||
|
||||
n = json->_cmgr->wctomb(json->state_stack->u.sv.acc, bcsbuf, HAWK_COUNTOF(bcsbuf));
|
||||
n = json->_gem.cmgr->uctobc(json->state_stack->u.sv.acc, bcsbuf, HAWK_COUNTOF(bcsbuf));
|
||||
if (n == 0 || n > HAWK_COUNTOF(bcsbuf))
|
||||
{
|
||||
/* illegal character or buffer to small */
|
||||
|
20
lib/parse.c
20
lib/parse.c
@ -6942,6 +6942,26 @@ retry:
|
||||
if (HAWK_UNLIKELY(hawk_ooecs_fmt(tok->name, HAWK_T("%zu"), tok->loc.line) == (hawk_oow_t)-1)) return -1;
|
||||
SET_TOKEN_TYPE (hawk, tok, TOK_INT);
|
||||
}
|
||||
else if (hawk_comp_oochars_bcstr(HAWK_OOECS_PTR(tok->name), HAWK_OOECS_LEN(tok->name), "@UCH_ON", 0) == 0)
|
||||
{
|
||||
/* special parser-level word @SCRIPTLINE. subsitute an actual value for it */
|
||||
#if defined(HAWK_OOCH_IS_UCH)
|
||||
if (HAWK_UNLIKELY(hawk_ooecs_fmt(tok->name, HAWK_T("%zu"), 1) == (hawk_oow_t)-1)) return -1;
|
||||
#else
|
||||
if (HAWK_UNLIKELY(hawk_ooecs_fmt(tok->name, HAWK_T("%zu"), 0) == (hawk_oow_t)-1)) return -1;
|
||||
#endif
|
||||
SET_TOKEN_TYPE (hawk, tok, TOK_INT);
|
||||
}
|
||||
else if (hawk_comp_oochars_bcstr(HAWK_OOECS_PTR(tok->name), HAWK_OOECS_LEN(tok->name), "@BCH_ON", 0) == 0)
|
||||
{
|
||||
/* special parser-level word @SCRIPTLINE. subsitute an actual value for it */
|
||||
#if defined(HAWK_OOCH_IS_UCH)
|
||||
if (HAWK_UNLIKELY(hawk_ooecs_fmt(tok->name, HAWK_T("%zu"), 0) == (hawk_oow_t)-1)) return -1;
|
||||
#else
|
||||
if (HAWK_UNLIKELY(hawk_ooecs_fmt(tok->name, HAWK_T("%zu"), 1) == (hawk_oow_t)-1)) return -1;
|
||||
#endif
|
||||
SET_TOKEN_TYPE (hawk, tok, TOK_INT);
|
||||
}
|
||||
else
|
||||
{
|
||||
type = classify_ident(hawk, HAWK_OOECS_OOCS(tok->name));
|
||||
|
@ -1759,7 +1759,7 @@ static hawk_ooi_t sf_out (hawk_t* hawk, hawk_sio_cmd_t cmd, hawk_sio_arg_t* arg,
|
||||
if (hawk_convbtouchars(hawk, data, &mbslen, HAWK_NULL, &wcslen, 0) <= -1) return -1;
|
||||
if (wcslen > HAWK_TYPE_MAX(hawk_ooi_t)) wcslen = HAWK_TYPE_MAX(hawk_ooi_t);
|
||||
|
||||
orglen = hawk_becs_getlen(xtn->s.out.u.ucs.buf);
|
||||
orglen = hawk_uecs_getlen(xtn->s.out.u.ucs.buf);
|
||||
if (hawk_uecs_setlen(xtn->s.out.u.ucs.buf, orglen + wcslen) == (hawk_oow_t)-1) return -1;
|
||||
|
||||
mbslen = size;
|
||||
@ -3070,7 +3070,7 @@ hawk_rtx_t* hawk_rtx_openstdwithbcstr (
|
||||
#if defined(HAWK_OOCH_IS_UCH)
|
||||
xocf[i] = hawk_dupbtoucstr(hawk, ocf[i], &wcslen, 0);
|
||||
#else
|
||||
xocf[i] = hawk_dupucstr(hawk, ocf[i], HAWK_NULL);
|
||||
xocf[i] = hawk_dupbcstr(hawk, ocf[i], HAWK_NULL);
|
||||
#endif
|
||||
if (!xocf[i]) goto done;
|
||||
}
|
||||
@ -3149,7 +3149,7 @@ hawk_rtx_t* hawk_rtx_openstdwithucstr (
|
||||
for (i = 0; ocf[i]; i++)
|
||||
{
|
||||
#if defined(HAWK_OOCH_IS_BCH)
|
||||
xocf[i] = hawk_dupbtoucstr(hawk, ocf[i], &mbslen, 0);
|
||||
xocf[i] = hawk_duputobcstr(hawk, ocf[i], &mbslen);
|
||||
#else
|
||||
xocf[i] = hawk_dupucstr(hawk, ocf[i], HAWK_NULL);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user