fixed a bug handling -v in bin/main.c
This commit is contained in:
parent
7980e12999
commit
e8e5aa7935
@ -356,7 +356,7 @@ static hawk_htb_walk_t print_awk_value (hawk_htb_t* map, hawk_htb_pair_t* pair,
|
||||
return HAWK_HTB_WALK_FORWARD;
|
||||
}
|
||||
|
||||
static int add_gvs_to_awk (hawk_t* awk, arg_t* arg)
|
||||
static int add_gvs_to_awk (hawk_t* hawk, arg_t* arg)
|
||||
{
|
||||
if (arg->gvm.size > 0)
|
||||
{
|
||||
@ -364,7 +364,8 @@ static int add_gvs_to_awk (hawk_t* awk, arg_t* arg)
|
||||
|
||||
for (i = 0; i < arg->gvm.size; i++)
|
||||
{
|
||||
arg->gvm.ptr[i].idx = hawk_addgbl(awk, arg->gvm.ptr[i].name);
|
||||
arg->gvm.ptr[i].idx = arg->gvm.ptr[i].uc? hawk_addgblwithucstr(hawk, arg->gvm.ptr[i].name):
|
||||
hawk_addgblwithbcstr(hawk, arg->gvm.ptr[i].name);
|
||||
}
|
||||
}
|
||||
|
||||
@ -398,7 +399,7 @@ static int apply_fs_and_gvs_to_rtx (hawk_rtx_t* rtx, arg_t* arg)
|
||||
for (i = 0; i < arg->gvm.size; i++)
|
||||
{
|
||||
hawk_val_t* v;
|
||||
|
||||
|
||||
v = (arg->gvm.ptr[i].uc)? hawk_rtx_makenstrvalwithuchars(rtx, arg->gvm.ptr[i].value.ptr, arg->gvm.ptr[i].value.len):
|
||||
hawk_rtx_makenstrvalwithbchars(rtx, arg->gvm.ptr[i].value.ptr, arg->gvm.ptr[i].value.len);
|
||||
if (!v) return -1;
|
||||
@ -1012,20 +1013,6 @@ static void print_hawk_rtx_error (hawk_rtx_t* rtx)
|
||||
);
|
||||
}
|
||||
|
||||
hawk_htb_walk_t add_global (hawk_htb_t* map, hawk_htb_pair_t* pair, void* arg)
|
||||
{
|
||||
hawk_t* awk = (hawk_t*)arg;
|
||||
struct gv_t* gvmv = (struct gv_t*)HAWK_HTB_VPTR(pair);
|
||||
|
||||
/* the key was inserted to the table with a null at the end
|
||||
* and the key length was even incremetned for that.
|
||||
* so i can pass the pointer without other adjustments. */
|
||||
gvmv->idx = hawk_addgbl(awk, HAWK_HTB_KPTR(pair));
|
||||
if (gvmv->idx <= -1) return HAWK_HTB_WALK_STOP;
|
||||
return HAWK_HTB_WALK_FORWARD;
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
static void* xma_alloc (hawk_mmgr_t* mmgr, hawk_oow_t size)
|
||||
{
|
||||
|
@ -1737,13 +1737,13 @@ HAWK_EXPORT int hawk_findgblwithucstr (
|
||||
);
|
||||
|
||||
#if defined(HAWK_OOCH_IS_BCH)
|
||||
# define hawk_addgbl hawk_addgblwithbcstr
|
||||
# define hawk_delgbl hawk_delgblwithbcstr
|
||||
# define hawk_findgbl hawk_findgblwithbcstr
|
||||
# define hawk_addgblwithoocstr hawk_addgblwithbcstr
|
||||
# define hawk_delgblwithoocstr hawk_delgblwithbcstr
|
||||
# define hawk_findgblwithoocstr hawk_findgblwithbcstr
|
||||
#else
|
||||
# define hawk_addgbl hawk_addgblwithucstr
|
||||
# define hawk_delgbl hawk_delgblwithucstr
|
||||
# define hawk_findgbl hawk_findgblwithucstr
|
||||
# define hawk_addgblwithoocstr hawk_addgblwithucstr
|
||||
# define hawk_delgblwithoocstr hawk_delgblwithucstr
|
||||
# define hawk_findgblwithoocstr hawk_findgblwithucstr
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -4174,8 +4174,8 @@ static hawk_nde_t* parse_concat (hawk_t* awk, const hawk_loc_t* xloc)
|
||||
hawk_nde_t* right = HAWK_NULL;
|
||||
hawk_loc_t rloc;
|
||||
|
||||
left = parse_additive (awk, xloc);
|
||||
if (left == HAWK_NULL) goto oops;
|
||||
left = parse_additive(awk, xloc);
|
||||
if (HAWK_UNLIKELY(!left)) goto oops;
|
||||
|
||||
do
|
||||
{
|
||||
@ -4187,10 +4187,17 @@ static hawk_nde_t* parse_concat (hawk_t* awk, const hawk_loc_t* xloc)
|
||||
}
|
||||
else if (awk->opt.trait & HAWK_BLANKCONCAT)
|
||||
{
|
||||
/*
|
||||
* [NOTE]
|
||||
* TOK_TILDE has been commented out in the if condition below because
|
||||
* BINOP_MA has lower precedence than concatenation and it is not certain
|
||||
* the tilde is an unary bitwise negation operator at this phase.
|
||||
* You may use (~10) rather than ~10 after concatenation to avoid confusion.
|
||||
*/
|
||||
if (MATCH(awk,TOK_LPAREN) || MATCH(awk,TOK_DOLLAR) ||
|
||||
/* unary operators */
|
||||
MATCH(awk,TOK_PLUS) || MATCH(awk,TOK_MINUS) ||
|
||||
MATCH(awk,TOK_LNOT) ||/* MATCH(awk,TOK_TILDE) ||*/
|
||||
MATCH(awk,TOK_LNOT) ||/* MATCH(awk,TOK_TILDE) ||*/
|
||||
/* increment operators */
|
||||
MATCH(awk,TOK_PLUSPLUS) || MATCH(awk,TOK_MINUSMINUS) ||
|
||||
((awk->opt.trait & HAWK_TOLERANT) &&
|
||||
@ -4205,11 +4212,11 @@ static hawk_nde_t* parse_concat (hawk_t* awk, const hawk_loc_t* xloc)
|
||||
else break;
|
||||
|
||||
rloc = awk->tok.loc;
|
||||
right = parse_additive (awk, &rloc);
|
||||
if (right == HAWK_NULL) goto oops;
|
||||
right = parse_additive(awk, &rloc);
|
||||
if (HAWK_UNLIKELY(!right)) goto oops;
|
||||
|
||||
tmp = new_exp_bin_node (awk, xloc, HAWK_BINOP_CONCAT, left, right);
|
||||
if (tmp == HAWK_NULL) goto oops;
|
||||
tmp = new_exp_bin_node(awk, xloc, HAWK_BINOP_CONCAT, left, right);
|
||||
if (HAWK_UNLIKELY(!tmp)) goto oops;
|
||||
left = tmp; right = HAWK_NULL;
|
||||
}
|
||||
while (1);
|
||||
@ -4262,8 +4269,8 @@ static hawk_nde_t* parse_unary (hawk_t* awk, const hawk_loc_t* xloc)
|
||||
(MATCH(awk,TOK_LNOT))? HAWK_UNROP_LNOT:
|
||||
(MATCH(awk,TOK_TILDE))? HAWK_UNROP_BNOT: -1;
|
||||
|
||||
/*if (opcode <= -1) return parse_increment (awk);*/
|
||||
if (opcode <= -1) return parse_exponent (awk, xloc);
|
||||
/*if (opcode <= -1) return parse_increment(awk);*/
|
||||
if (opcode <= -1) return parse_exponent(awk, xloc);
|
||||
|
||||
if (awk->opt.depth.s.expr_parse > 0 &&
|
||||
awk->parse.depth.expr >= awk->opt.depth.s.expr_parse)
|
||||
|
@ -3081,13 +3081,11 @@ static int add_globals (hawk_t* awk)
|
||||
{
|
||||
xtn_t* xtn = GET_XTN(awk);
|
||||
|
||||
xtn->gbl_argc = hawk_addgbl(awk, HAWK_T("ARGC"));
|
||||
xtn->gbl_argv = hawk_addgbl(awk, HAWK_T("ARGV"));
|
||||
xtn->gbl_environ = hawk_addgbl(awk, HAWK_T("ENVIRON"));
|
||||
xtn->gbl_argc = hawk_addgblwithoocstr(awk, HAWK_T("ARGC"));
|
||||
xtn->gbl_argv = hawk_addgblwithoocstr(awk, HAWK_T("ARGV"));
|
||||
xtn->gbl_environ = hawk_addgblwithoocstr(awk, HAWK_T("ENVIRON"));
|
||||
|
||||
return (xtn->gbl_argc <= -1 ||
|
||||
xtn->gbl_argv <= -1 ||
|
||||
xtn->gbl_environ <= -1)? -1: 0;
|
||||
return (HAWK_UNLIKELY(xtn->gbl_argc <= -1 || xtn->gbl_argv <= -1 || xtn->gbl_environ <= -1))? -1: 0;
|
||||
}
|
||||
|
||||
struct fnctab_t
|
||||
|
Loading…
Reference in New Issue
Block a user