added hawk_rtx_makenumormbsvalwithuchars(), hawk_rtx_makenumormbsvalwithbchars(), hawk_rtx_makenumorstrvalwithuchars(), hawk_rtx_makenumorstrvalwithbchars()
This commit is contained in:
parent
52dea401f8
commit
4bd494d07b
@ -2688,6 +2688,20 @@ HAWK_EXPORT hawk_val_t* hawk_rtx_makestrvalwithbchars2 (
|
|||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
HAWK_EXPORT hawk_val_t* hawk_rtx_makenumorstrvalwithuchars (
|
||||||
|
hawk_rtx_t* rtx,
|
||||||
|
const hawk_uch_t* ptr,
|
||||||
|
hawk_oow_t len
|
||||||
|
);
|
||||||
|
|
||||||
|
HAWK_EXPORT hawk_val_t* hawk_rtx_makenumorstrvalwithbchars (
|
||||||
|
hawk_rtx_t* rtx,
|
||||||
|
const hawk_bch_t* ptr,
|
||||||
|
hawk_oow_t len
|
||||||
|
);
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
HAWK_EXPORT hawk_val_t* hawk_rtx_makenstrvalwithuchars (
|
HAWK_EXPORT hawk_val_t* hawk_rtx_makenstrvalwithuchars (
|
||||||
hawk_rtx_t* rtx,
|
hawk_rtx_t* rtx,
|
||||||
const hawk_uch_t* ptr,
|
const hawk_uch_t* ptr,
|
||||||
@ -2738,6 +2752,9 @@ HAWK_EXPORT hawk_val_t* hawk_rtx_makenstrvalwithbcs (
|
|||||||
# define hawk_rtx_makestrvalwithoocs hawk_rtx_makestrvalwithucs
|
# define hawk_rtx_makestrvalwithoocs hawk_rtx_makestrvalwithucs
|
||||||
# define hawk_rtx_makestrvalwithoochars2 hawk_rtx_makestrvalwithuchars2
|
# define hawk_rtx_makestrvalwithoochars2 hawk_rtx_makestrvalwithuchars2
|
||||||
|
|
||||||
|
# define hawk_rtx_makenumorstrvalwithoochars hawk_rtx_makenumorstrvalwithuchars
|
||||||
|
|
||||||
|
# define hawk_rtx_makenstrvalwithoochars hawk_rtx_makenstrvalwithuchars
|
||||||
# define hawk_rtx_makenstrvalwithoocstr hawk_rtx_makenstrvalwithucstr
|
# define hawk_rtx_makenstrvalwithoocstr hawk_rtx_makenstrvalwithucstr
|
||||||
# define hawk_rtx_makenstrvalwithoocs hawk_rtx_makenstrvalwithucs
|
# define hawk_rtx_makenstrvalwithoocs hawk_rtx_makenstrvalwithucs
|
||||||
#else
|
#else
|
||||||
@ -2746,6 +2763,9 @@ HAWK_EXPORT hawk_val_t* hawk_rtx_makenstrvalwithbcs (
|
|||||||
# define hawk_rtx_makestrvalwithoocs hawk_rtx_makestrvalwithbcs
|
# define hawk_rtx_makestrvalwithoocs hawk_rtx_makestrvalwithbcs
|
||||||
# define hawk_rtx_makestrvalwithoochars2 hawk_rtx_makestrvalwithbchars2
|
# define hawk_rtx_makestrvalwithoochars2 hawk_rtx_makestrvalwithbchars2
|
||||||
|
|
||||||
|
# define hawk_rtx_makenumorstrvalwithoochars hawk_rtx_makenumorstrvalwithbchars
|
||||||
|
|
||||||
|
# define hawk_rtx_makenstrvalwithoochars hawk_rtx_makenstrvalwithbchars
|
||||||
# define hawk_rtx_makenstrvalwithoocstr hawk_rtx_makenstrvalwithbcstr
|
# define hawk_rtx_makenstrvalwithoocstr hawk_rtx_makenstrvalwithbcstr
|
||||||
# define hawk_rtx_makenstrvalwithoocs hawk_rtx_makenstrvalwithbcs
|
# define hawk_rtx_makenstrvalwithoocs hawk_rtx_makenstrvalwithbcs
|
||||||
#endif
|
#endif
|
||||||
@ -2762,17 +2782,17 @@ hawk_val_t* hawk_rtx_makembsvalwithbchars (
|
|||||||
hawk_oow_t len
|
hawk_oow_t len
|
||||||
);
|
);
|
||||||
|
|
||||||
hawk_val_t* hawk_rtx_makembsvalwithbcs (
|
|
||||||
hawk_rtx_t* rtx,
|
|
||||||
const hawk_bcs_t* bcs
|
|
||||||
);
|
|
||||||
|
|
||||||
hawk_val_t* hawk_rtx_makembsvalwithuchars (
|
hawk_val_t* hawk_rtx_makembsvalwithuchars (
|
||||||
hawk_rtx_t* rtx,
|
hawk_rtx_t* rtx,
|
||||||
const hawk_uch_t* ptr,
|
const hawk_uch_t* ptr,
|
||||||
hawk_oow_t len
|
hawk_oow_t len
|
||||||
);
|
);
|
||||||
|
|
||||||
|
hawk_val_t* hawk_rtx_makembsvalwithbcs (
|
||||||
|
hawk_rtx_t* rtx,
|
||||||
|
const hawk_bcs_t* bcs
|
||||||
|
);
|
||||||
|
|
||||||
hawk_val_t* hawk_rtx_makembsvalwithucs (
|
hawk_val_t* hawk_rtx_makembsvalwithucs (
|
||||||
hawk_rtx_t* rtx,
|
hawk_rtx_t* rtx,
|
||||||
const hawk_ucs_t* ucs
|
const hawk_ucs_t* ucs
|
||||||
|
@ -52,7 +52,7 @@ int hawk_rtx_setrec (hawk_rtx_t* rtx, hawk_oow_t idx, const hawk_oocs_t* str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
v = hawk_rtx_makenstrvalwithoocs(rtx, str);
|
v = hawk_rtx_makenstrvalwithoocs(rtx, str);
|
||||||
if (v == HAWK_NULL)
|
if (HAWK_UNLIKELY(!v))
|
||||||
{
|
{
|
||||||
hawk_rtx_clrrec (rtx, 0);
|
hawk_rtx_clrrec (rtx, 0);
|
||||||
return -1;
|
return -1;
|
||||||
@ -79,8 +79,8 @@ int hawk_rtx_setrec (hawk_rtx_t* rtx, hawk_oow_t idx, const hawk_oocs_t* str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* recompose $0 */
|
/* recompose $0 */
|
||||||
v = hawk_rtx_makestrvalwithoocs (rtx, HAWK_OOECS_OOCS(&rtx->inrec.line));
|
v = hawk_rtx_makestrvalwithoocs(rtx, HAWK_OOECS_OOCS(&rtx->inrec.line));
|
||||||
if (v == HAWK_NULL)
|
if (HAWK_UNLIKELY(!v))
|
||||||
{
|
{
|
||||||
hawk_rtx_clrrec (rtx, 0);
|
hawk_rtx_clrrec (rtx, 0);
|
||||||
return -1;
|
return -1;
|
||||||
@ -109,7 +109,7 @@ static int split_record (hawk_rtx_t* rtx)
|
|||||||
HAWK_ASSERT (rtx->inrec.nflds == 0);
|
HAWK_ASSERT (rtx->inrec.nflds == 0);
|
||||||
|
|
||||||
/* get FS */
|
/* get FS */
|
||||||
fs = hawk_rtx_getgbl (rtx, HAWK_GBL_FS);
|
fs = hawk_rtx_getgbl(rtx, HAWK_GBL_FS);
|
||||||
fsvtype = HAWK_RTX_GETVALTYPE (rtx, fs);
|
fsvtype = HAWK_RTX_GETVALTYPE (rtx, fs);
|
||||||
if (fsvtype == HAWK_VAL_NIL)
|
if (fsvtype == HAWK_VAL_NIL)
|
||||||
{
|
{
|
||||||
@ -126,7 +126,7 @@ static int split_record (hawk_rtx_t* rtx)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
fs_ptr = hawk_rtx_valtooocstrdup(rtx, fs, &fs_len);
|
fs_ptr = hawk_rtx_valtooocstrdup(rtx, fs, &fs_len);
|
||||||
if (fs_ptr == HAWK_NULL) return -1;
|
if (HAWK_UNLIKELY(!fs_ptr)) return -1;
|
||||||
fs_free = fs_ptr;
|
fs_free = fs_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,7 +227,7 @@ static int split_record (hawk_rtx_t* rtx)
|
|||||||
len = HAWK_OOECS_LEN(&rtx->inrec.line);
|
len = HAWK_OOECS_LEN(&rtx->inrec.line);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
while (p != HAWK_NULL)
|
while (p)
|
||||||
{
|
{
|
||||||
switch (how)
|
switch (how)
|
||||||
{
|
{
|
||||||
|
@ -4461,7 +4461,7 @@ static HAWK_INLINE int __cmp_flt_str (hawk_rtx_t* rtx, hawk_val_t* left, hawk_va
|
|||||||
int n;
|
int n;
|
||||||
|
|
||||||
/* SCO CC doesn't seem to handle right->nstr > 0 properly */
|
/* SCO CC doesn't seem to handle right->nstr > 0 properly */
|
||||||
if (hawk->opt.trait & HAWK_NCMPONSTR || right->nstr /*> 0*/)
|
if ((hawk->opt.trait & HAWK_NCMPONSTR) || right->nstr /*> 0*/)
|
||||||
{
|
{
|
||||||
const hawk_ooch_t* end;
|
const hawk_ooch_t* end;
|
||||||
hawk_flt_t rr;
|
hawk_flt_t rr;
|
||||||
@ -4489,7 +4489,7 @@ static HAWK_INLINE int __cmp_flt_mbs (hawk_rtx_t* rtx, hawk_val_t* left, hawk_va
|
|||||||
hawk_oow_t len0;
|
hawk_oow_t len0;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
if (hawk->opt.trait & HAWK_NCMPONSTR || right->nstr /*> 0*/)
|
if ((hawk->opt.trait & HAWK_NCMPONSTR) || right->nstr /*> 0*/)
|
||||||
{
|
{
|
||||||
const hawk_bch_t* end;
|
const hawk_bch_t* end;
|
||||||
hawk_flt_t rr;
|
hawk_flt_t rr;
|
||||||
@ -6796,8 +6796,10 @@ read_console_again:
|
|||||||
{
|
{
|
||||||
hawk_val_t* v;
|
hawk_val_t* v;
|
||||||
|
|
||||||
|
/* treat external input numerically if it can compose a number. */
|
||||||
v = hawk_rtx_makestrvalwithoocs(rtx, HAWK_OOECS_OOCS(buf));
|
v = hawk_rtx_makestrvalwithoocs(rtx, HAWK_OOECS_OOCS(buf));
|
||||||
if (v == HAWK_NULL)
|
/*v = hawk_rtx_makenumorstrvalwithoochars(rtx, HAWK_OOECS_PTR(buf), HAWK_OOECS_LEN(buf));*/
|
||||||
|
if (HAWK_UNLIKELY(!v))
|
||||||
{
|
{
|
||||||
ADJERR_LOC (rtx, &nde->loc);
|
ADJERR_LOC (rtx, &nde->loc);
|
||||||
return HAWK_NULL;
|
return HAWK_NULL;
|
||||||
@ -6904,7 +6906,9 @@ read_console_again:
|
|||||||
{
|
{
|
||||||
hawk_val_t* v;
|
hawk_val_t* v;
|
||||||
|
|
||||||
|
/* treat external input numerically if it can compose a number. */
|
||||||
v = hawk_rtx_makembsvalwithbcs(rtx, HAWK_BECS_BCS(buf));
|
v = hawk_rtx_makembsvalwithbcs(rtx, HAWK_BECS_BCS(buf));
|
||||||
|
/*v = hawk_rtx_makenumormbsvalwithbchars(rtx, HAWK_BECS_PTR(buf), HAWK_BECS_LEN(buf));*/
|
||||||
if (v == HAWK_NULL)
|
if (v == HAWK_NULL)
|
||||||
{
|
{
|
||||||
ADJERR_LOC (rtx, &nde->loc);
|
ADJERR_LOC (rtx, &nde->loc);
|
||||||
|
@ -298,6 +298,39 @@ hawk_val_t* hawk_rtx_makestrvalwithbchars2 (hawk_rtx_t* rtx, const hawk_bch_t* b
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
hawk_val_t* hawk_rtx_makenumorstrvalwithuchars (hawk_rtx_t* rtx, const hawk_uch_t* ptr, hawk_oow_t len)
|
||||||
|
{
|
||||||
|
hawk_t* hawk = hawk_rtx_gethawk(rtx);
|
||||||
|
int x;
|
||||||
|
hawk_int_t l;
|
||||||
|
hawk_flt_t r;
|
||||||
|
|
||||||
|
x = hawk_uchars_to_num(HAWK_OOCHARS_TO_NUM_MAKE_OPTION(1, (hawk->opt.trait & HAWK_STRIPSTRSPC), 0), ptr, len, &l, &r);
|
||||||
|
if (x == 0) return hawk_rtx_makeintval(rtx, l);
|
||||||
|
else if (x >= 1) return hawk_rtx_makefltval(rtx, r);
|
||||||
|
|
||||||
|
return hawk_rtx_makestrvalwithuchars(rtx, ptr, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
hawk_val_t* hawk_rtx_makenumorstrvalwithbchars (hawk_rtx_t* rtx, const hawk_bch_t* ptr, hawk_oow_t len)
|
||||||
|
{
|
||||||
|
hawk_t* hawk = hawk_rtx_gethawk(rtx);
|
||||||
|
int x;
|
||||||
|
hawk_int_t l;
|
||||||
|
hawk_flt_t r;
|
||||||
|
|
||||||
|
x = hawk_bchars_to_num(HAWK_OOCHARS_TO_NUM_MAKE_OPTION(1, (hawk->opt.trait & HAWK_STRIPSTRSPC), 0), ptr, len, &l, &r);
|
||||||
|
if (x == 0) return hawk_rtx_makeintval(rtx, l);
|
||||||
|
else if (x >= 1) return hawk_rtx_makefltval(rtx, r);
|
||||||
|
|
||||||
|
return hawk_rtx_makestrvalwithbchars(rtx, ptr, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------- */
|
||||||
|
|
||||||
hawk_val_t* hawk_rtx_makenstrvalwithuchars (hawk_rtx_t* rtx, const hawk_uch_t* ptr, hawk_oow_t len)
|
hawk_val_t* hawk_rtx_makenstrvalwithuchars (hawk_rtx_t* rtx, const hawk_uch_t* ptr, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
hawk_t* hawk = hawk_rtx_gethawk(rtx);
|
hawk_t* hawk = hawk_rtx_gethawk(rtx);
|
||||||
@ -322,7 +355,6 @@ hawk_val_t* hawk_rtx_makenstrvalwithuchars (hawk_rtx_t* rtx, const hawk_uch_t* p
|
|||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
hawk_val_t* hawk_rtx_makenstrvalwithbchars (hawk_rtx_t* rtx, const hawk_bch_t* ptr, hawk_oow_t len)
|
hawk_val_t* hawk_rtx_makenstrvalwithbchars (hawk_rtx_t* rtx, const hawk_bch_t* ptr, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
hawk_t* hawk = hawk_rtx_gethawk(rtx);
|
hawk_t* hawk = hawk_rtx_gethawk(rtx);
|
||||||
@ -368,6 +400,8 @@ hawk_val_t* hawk_rtx_makenstrvalwithbcs (hawk_rtx_t* rtx, const hawk_bcs_t* str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------- */
|
||||||
|
|
||||||
hawk_val_t* hawk_rtx_makembsvalwithbchars (hawk_rtx_t* rtx, const hawk_bch_t* ptr, hawk_oow_t len)
|
hawk_val_t* hawk_rtx_makembsvalwithbchars (hawk_rtx_t* rtx, const hawk_bch_t* ptr, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
hawk_val_mbs_t* val = HAWK_NULL;
|
hawk_val_mbs_t* val = HAWK_NULL;
|
||||||
@ -393,10 +427,6 @@ hawk_val_t* hawk_rtx_makembsvalwithbchars (hawk_rtx_t* rtx, const hawk_bch_t* pt
|
|||||||
return (hawk_val_t*)val;
|
return (hawk_val_t*)val;
|
||||||
}
|
}
|
||||||
|
|
||||||
hawk_val_t* hawk_rtx_makembsvalwithbcs (hawk_rtx_t* rtx, const hawk_bcs_t* bcs)
|
|
||||||
{
|
|
||||||
return hawk_rtx_makembsvalwithbchars(rtx, bcs->ptr, bcs->len);
|
|
||||||
}
|
|
||||||
|
|
||||||
hawk_val_t* hawk_rtx_makembsvalwithuchars (hawk_rtx_t* rtx, const hawk_uch_t* ucs, hawk_oow_t len)
|
hawk_val_t* hawk_rtx_makembsvalwithuchars (hawk_rtx_t* rtx, const hawk_uch_t* ucs, hawk_oow_t len)
|
||||||
{
|
{
|
||||||
@ -416,11 +446,48 @@ hawk_val_t* hawk_rtx_makembsvalwithuchars (hawk_rtx_t* rtx, const hawk_uch_t* uc
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hawk_val_t* hawk_rtx_makembsvalwithbcs (hawk_rtx_t* rtx, const hawk_bcs_t* bcs)
|
||||||
|
{
|
||||||
|
return hawk_rtx_makembsvalwithbchars(rtx, bcs->ptr, bcs->len);
|
||||||
|
}
|
||||||
|
|
||||||
hawk_val_t* hawk_rtx_makembsvalwithucs (hawk_rtx_t* rtx, const hawk_ucs_t* ucs)
|
hawk_val_t* hawk_rtx_makembsvalwithucs (hawk_rtx_t* rtx, const hawk_ucs_t* ucs)
|
||||||
{
|
{
|
||||||
return hawk_rtx_makembsvalwithuchars(rtx, ucs->ptr, ucs->len);
|
return hawk_rtx_makembsvalwithuchars(rtx, ucs->ptr, ucs->len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
hawk_val_t* hawk_rtx_makenumormbsvalwithuchars (hawk_rtx_t* rtx, const hawk_uch_t* ptr, hawk_oow_t len)
|
||||||
|
{
|
||||||
|
hawk_t* hawk = hawk_rtx_gethawk(rtx);
|
||||||
|
int x;
|
||||||
|
hawk_int_t l;
|
||||||
|
hawk_flt_t r;
|
||||||
|
|
||||||
|
x = hawk_uchars_to_num(HAWK_OOCHARS_TO_NUM_MAKE_OPTION(1, (hawk->opt.trait & HAWK_STRIPSTRSPC), 0), ptr, len, &l, &r);
|
||||||
|
if (x == 0) return hawk_rtx_makeintval(rtx, l);
|
||||||
|
else if (x >= 1) return hawk_rtx_makefltval(rtx, r);
|
||||||
|
|
||||||
|
return hawk_rtx_makembsvalwithuchars(rtx, ptr, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
hawk_val_t* hawk_rtx_makenumormbsvalwithbchars (hawk_rtx_t* rtx, const hawk_bch_t* ptr, hawk_oow_t len)
|
||||||
|
{
|
||||||
|
hawk_t* hawk = hawk_rtx_gethawk(rtx);
|
||||||
|
int x;
|
||||||
|
hawk_int_t l;
|
||||||
|
hawk_flt_t r;
|
||||||
|
|
||||||
|
x = hawk_bchars_to_num(HAWK_OOCHARS_TO_NUM_MAKE_OPTION(1, (hawk->opt.trait & HAWK_STRIPSTRSPC), 0), ptr, len, &l, &r);
|
||||||
|
if (x == 0) return hawk_rtx_makeintval(rtx, l);
|
||||||
|
else if (x >= 1) return hawk_rtx_makefltval(rtx, r);
|
||||||
|
|
||||||
|
return hawk_rtx_makembsvalwithbchars(rtx, ptr, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------- */
|
||||||
|
|
||||||
hawk_val_t* hawk_rtx_makerexval (hawk_rtx_t* rtx, const hawk_oocs_t* str, hawk_tre_t* code[2])
|
hawk_val_t* hawk_rtx_makerexval (hawk_rtx_t* rtx, const hawk_oocs_t* str, hawk_tre_t* code[2])
|
||||||
{
|
{
|
||||||
hawk_val_rex_t* val;
|
hawk_val_rex_t* val;
|
||||||
|
Loading…
Reference in New Issue
Block a user