*** empty log message ***
This commit is contained in:
parent
a34b8dd9e7
commit
a460e95750
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: awk.h,v 1.197 2007-03-03 13:22:00 bacon Exp $
|
* $Id: awk.h,v 1.198 2007-03-03 14:44:31 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -401,8 +401,6 @@ void ase_awk_geterror (
|
|||||||
ase_awk_t* awk, int* errnum,
|
ase_awk_t* awk, int* errnum,
|
||||||
ase_size_t* errlin, const ase_char_t** errmsg);
|
ase_size_t* errlin, const ase_char_t** errmsg);
|
||||||
|
|
||||||
void ase_awk_seterrnum (ase_awk_t* awk, int errnum);
|
|
||||||
|
|
||||||
void ase_awk_seterror (
|
void ase_awk_seterror (
|
||||||
ase_awk_t* awk, int errnum, ase_size_t errlin,
|
ase_awk_t* awk, int errnum, ase_size_t errlin,
|
||||||
const ase_cstr_t* errarg, ase_size_t argcnt);
|
const ase_cstr_t* errarg, ase_size_t argcnt);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: awk_i.h,v 1.107 2007-03-02 14:41:30 bacon Exp $
|
* $Id: awk_i.h,v 1.108 2007-03-03 14:44:31 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -297,8 +297,8 @@ struct ase_awk_run_t
|
|||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ase_char_t* ptr;
|
ase_char_t* ptr;
|
||||||
ase_size_t len;
|
ase_size_t len; /* length */
|
||||||
ase_size_t inc;
|
ase_size_t inc; /* increment */
|
||||||
} tmp;
|
} tmp;
|
||||||
} format;
|
} format;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: err.c,v 1.78 2007-03-03 13:22:00 bacon Exp $
|
* $Id: err.c,v 1.79 2007-03-03 14:44:31 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -186,13 +186,6 @@ void ase_awk_geterror (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ase_awk_seterrnum (ase_awk_t* awk, int errnum)
|
|
||||||
{
|
|
||||||
awk->errnum = errnum;
|
|
||||||
awk->errlin = 0;
|
|
||||||
awk->errmsg[0] = ASE_T('\0');
|
|
||||||
}
|
|
||||||
|
|
||||||
void ase_awk_seterror (
|
void ase_awk_seterror (
|
||||||
ase_awk_t* awk, int errnum, ase_size_t errlin,
|
ase_awk_t* awk, int errnum, ase_size_t errlin,
|
||||||
const ase_cstr_t* errarg, ase_size_t argcnt)
|
const ase_cstr_t* errarg, ase_size_t argcnt)
|
||||||
|
325
ase/awk/run.c
325
ase/awk/run.c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: run.c,v 1.337 2007-03-03 13:22:01 bacon Exp $
|
* $Id: run.c,v 1.338 2007-03-03 14:44:31 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -57,7 +57,7 @@ static int __set_global (
|
|||||||
|
|
||||||
static int __init_run (
|
static int __init_run (
|
||||||
ase_awk_run_t* run, ase_awk_t* awk,
|
ase_awk_run_t* run, ase_awk_t* awk,
|
||||||
ase_awk_runios_t* runios, void* custom_data, int* errnum);
|
ase_awk_runios_t* runios, void* custom_data);
|
||||||
static void __deinit_run (ase_awk_run_t* run);
|
static void __deinit_run (ase_awk_run_t* run);
|
||||||
|
|
||||||
static int __build_runarg (
|
static int __build_runarg (
|
||||||
@ -264,7 +264,7 @@ static int __set_global (
|
|||||||
errarg.ptr = ase_awk_getglobalname (
|
errarg.ptr = ase_awk_getglobalname (
|
||||||
run->awk, idx, &errarg.len);
|
run->awk, idx, &errarg.len);
|
||||||
ase_awk_setrunerror (run,
|
ase_awk_setrunerror (run,
|
||||||
ASE_AWK_EMAPTOSCALAR, var->line, &errarg, 1);
|
ASE_AWK_EMAPTOSCALAR, 0, &errarg, 1);
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -376,7 +376,12 @@ static int __set_global (
|
|||||||
|
|
||||||
if (lv < run->inrec.nflds)
|
if (lv < run->inrec.nflds)
|
||||||
{
|
{
|
||||||
if (__shorten_record (run, (ase_size_t)lv) == -1) return -1;
|
if (__shorten_record (run, (ase_size_t)lv) == -1)
|
||||||
|
{
|
||||||
|
/* adjust the error line */
|
||||||
|
if (var != ASE_NULL) run->errlin = var->line;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (idx == ASE_AWK_GLOBAL_OFMT)
|
else if (idx == ASE_AWK_GLOBAL_OFMT)
|
||||||
@ -614,13 +619,8 @@ int ase_awk_run (ase_awk_t* awk,
|
|||||||
ase_memset (run, 0, ASE_SIZEOF(ase_awk_run_t));
|
ase_memset (run, 0, ASE_SIZEOF(ase_awk_run_t));
|
||||||
|
|
||||||
/* initialize the run object */
|
/* initialize the run object */
|
||||||
if (__init_run (run, awk, runios, custom_data, &errnum) == -1)
|
if (__init_run (run, awk, runios, custom_data) == -1)
|
||||||
{
|
{
|
||||||
/* if it fails, the failure is still reported thru
|
|
||||||
* the awk object */
|
|
||||||
ase_awk_seterror_old (awk, errnum, 0, ASE_NULL);
|
|
||||||
|
|
||||||
/*__del_run (awk, run);*/
|
|
||||||
ASE_AWK_FREE (awk, run);
|
ASE_AWK_FREE (awk, run);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -671,9 +671,6 @@ int ase_awk_run (ase_awk_t* awk,
|
|||||||
/* uninitialize the run object */
|
/* uninitialize the run object */
|
||||||
__deinit_run (run);
|
__deinit_run (run);
|
||||||
|
|
||||||
/* unregister the run object */
|
|
||||||
/*__del_run (awk, run);*/
|
|
||||||
|
|
||||||
ASE_AWK_FREE (awk, run);
|
ASE_AWK_FREE (awk, run);
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
@ -691,7 +688,7 @@ static void __free_namedval (void* run, void* val)
|
|||||||
|
|
||||||
static int __init_run (
|
static int __init_run (
|
||||||
ase_awk_run_t* run, ase_awk_t* awk,
|
ase_awk_run_t* run, ase_awk_t* awk,
|
||||||
ase_awk_runios_t* runios, void* custom_data, int* errnum)
|
ase_awk_runios_t* runios, void* custom_data)
|
||||||
{
|
{
|
||||||
run->awk = awk;
|
run->awk = awk;
|
||||||
run->custom_data = custom_data;
|
run->custom_data = custom_data;
|
||||||
@ -721,7 +718,7 @@ static int __init_run (
|
|||||||
&run->inrec.line,
|
&run->inrec.line,
|
||||||
DEF_BUF_CAPA, &run->awk->prmfns.mmgr) == ASE_NULL)
|
DEF_BUF_CAPA, &run->awk->prmfns.mmgr) == ASE_NULL)
|
||||||
{
|
{
|
||||||
*errnum = ASE_AWK_ENOMEM;
|
ase_awk_seterror (awk, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -729,7 +726,7 @@ static int __init_run (
|
|||||||
&run->format.out, 256, &run->awk->prmfns.mmgr) == ASE_NULL)
|
&run->format.out, 256, &run->awk->prmfns.mmgr) == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_str_close (&run->inrec.line);
|
ase_str_close (&run->inrec.line);
|
||||||
*errnum = ASE_AWK_ENOMEM;
|
ase_awk_seterror (awk, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -738,7 +735,7 @@ static int __init_run (
|
|||||||
{
|
{
|
||||||
ase_str_close (&run->format.out);
|
ase_str_close (&run->format.out);
|
||||||
ase_str_close (&run->inrec.line);
|
ase_str_close (&run->inrec.line);
|
||||||
*errnum = ASE_AWK_ENOMEM;
|
ase_awk_seterror (awk, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -748,7 +745,7 @@ static int __init_run (
|
|||||||
ase_str_close (&run->format.fmt);
|
ase_str_close (&run->format.fmt);
|
||||||
ase_str_close (&run->format.out);
|
ase_str_close (&run->format.out);
|
||||||
ase_str_close (&run->inrec.line);
|
ase_str_close (&run->inrec.line);
|
||||||
*errnum = ASE_AWK_ENOMEM;
|
ase_awk_seterror (awk, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -760,11 +757,11 @@ static int __init_run (
|
|||||||
ase_str_close (&run->format.fmt);
|
ase_str_close (&run->format.fmt);
|
||||||
ase_str_close (&run->format.out);
|
ase_str_close (&run->format.out);
|
||||||
ase_str_close (&run->inrec.line);
|
ase_str_close (&run->inrec.line);
|
||||||
*errnum = ASE_AWK_ENOMEM;
|
ase_awk_seterror (awk, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
run->format.tmp.len = 4096;
|
run->format.tmp.len = 4096;
|
||||||
run->format.tmp.inc = 40960;
|
run->format.tmp.inc = 4096*2;
|
||||||
|
|
||||||
if (run->awk->tree.chain_size > 0)
|
if (run->awk->tree.chain_size > 0)
|
||||||
{
|
{
|
||||||
@ -777,7 +774,7 @@ static int __init_run (
|
|||||||
ase_str_close (&run->format.fmt);
|
ase_str_close (&run->format.fmt);
|
||||||
ase_str_close (&run->format.out);
|
ase_str_close (&run->format.out);
|
||||||
ase_str_close (&run->inrec.line);
|
ase_str_close (&run->inrec.line);
|
||||||
*errnum = ASE_AWK_ENOMEM;
|
ase_awk_seterror (awk, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -814,7 +811,7 @@ static void __deinit_run (ase_awk_run_t* run)
|
|||||||
if (run->pattern_range_state != ASE_NULL)
|
if (run->pattern_range_state != ASE_NULL)
|
||||||
ASE_AWK_FREE (run->awk, run->pattern_range_state);
|
ASE_AWK_FREE (run->awk, run->pattern_range_state);
|
||||||
|
|
||||||
/* close all pending eio's */
|
/* close all pending extio's */
|
||||||
/* TODO: what if this operation fails? */
|
/* TODO: what if this operation fails? */
|
||||||
ase_awk_clearextio (run);
|
ase_awk_clearextio (run);
|
||||||
ASE_AWK_ASSERT (run->awk, run->extio.chain == ASE_NULL);
|
ASE_AWK_ASSERT (run->awk, run->extio.chain == ASE_NULL);
|
||||||
@ -1424,6 +1421,19 @@ static int __run_pattern_blocks (ase_awk_run_t* run)
|
|||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
#define ADJUST_ERROR_LINE(run) \
|
||||||
|
if (run->awk->tree.chain != ASE_NULL) \
|
||||||
|
{ \
|
||||||
|
if (run->awk->tree.chain->pattern != ASE_NULL) \
|
||||||
|
run->errlin = run->awk->tree.chain->pattern->line; \
|
||||||
|
else if (run->awk->tree.chain->action != ASE_NULL) \
|
||||||
|
run->errlin = run->awk->tree.chain->action->line; \
|
||||||
|
} \
|
||||||
|
else if (run->awk->tree.end != ASE_NULL) \
|
||||||
|
{ \
|
||||||
|
run->errlin = run->awk->tree.end->line; \
|
||||||
|
}
|
||||||
|
|
||||||
run->inrec.buf_pos = 0;
|
run->inrec.buf_pos = 0;
|
||||||
run->inrec.buf_len = 0;
|
run->inrec.buf_len = 0;
|
||||||
run->inrec.eof = ase_false;
|
run->inrec.eof = ase_false;
|
||||||
@ -1435,10 +1445,18 @@ static int __run_pattern_blocks (ase_awk_run_t* run)
|
|||||||
run->exit_level = EXIT_NONE;
|
run->exit_level = EXIT_NONE;
|
||||||
|
|
||||||
n = __read_record (run);
|
n = __read_record (run);
|
||||||
if (n == -1) return -1; /* error */
|
if (n == -1)
|
||||||
|
{
|
||||||
|
ADJUST_ERROR_LINE (run);
|
||||||
|
return -1; /* error */
|
||||||
|
}
|
||||||
if (n == 0) break; /* end of input */
|
if (n == 0) break; /* end of input */
|
||||||
|
|
||||||
__update_fnr (run, run->global.fnr + 1);
|
if (__update_fnr (run, run->global.fnr+1) == -1)
|
||||||
|
{
|
||||||
|
ADJUST_ERROR_LINE (run);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (run->awk->tree.chain != ASE_NULL)
|
if (run->awk->tree.chain != ASE_NULL)
|
||||||
{
|
{
|
||||||
@ -1447,6 +1465,7 @@ static int __run_pattern_blocks (ase_awk_run_t* run)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef ADJUST_ERROR_LINE
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2022,8 +2041,8 @@ static int __walk_foreach (ase_awk_pair_t* pair, void* arg)
|
|||||||
w->run, pair->key, ase_strlen(pair->key));
|
w->run, pair->key, ase_strlen(pair->key));
|
||||||
if (str == ASE_NULL)
|
if (str == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
w->run, ASE_AWK_ENOMEM, w->var->line, ASE_NULL);
|
w->run, ASE_AWK_ENOMEM, w->var->line, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2190,10 +2209,17 @@ static int __run_nextinfile (ase_awk_run_t* run, ase_awk_nde_nextfile_t* nde)
|
|||||||
if (n == -1)
|
if (n == -1)
|
||||||
{
|
{
|
||||||
if (run->errnum == ASE_AWK_EIOIMPL)
|
if (run->errnum == ASE_AWK_EIOIMPL)
|
||||||
run->errnum = ASE_AWK_ECINNX;
|
{
|
||||||
|
/* replace the error by ECINNX */
|
||||||
|
ase_awk_setrunerror (
|
||||||
|
run, ASE_AWK_ECINNX, nde->line, ASE_NULL, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* adjust the error line */
|
||||||
|
run->errlin = nde->line;
|
||||||
|
}
|
||||||
|
|
||||||
ase_awk_setrunerror_old (
|
|
||||||
run, run->errnum, nde->line, ASE_NULL);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2206,8 +2232,7 @@ static int __run_nextinfile (ase_awk_run_t* run, ase_awk_nde_nextfile_t* nde)
|
|||||||
|
|
||||||
if (__update_fnr (run, 0) == -1)
|
if (__update_fnr (run, 0) == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
run->errlin = nde->line;
|
||||||
run, run->errnum, nde->line, ASE_NULL);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2224,10 +2249,15 @@ static int __run_nextoutfile (ase_awk_run_t* run, ase_awk_nde_nextfile_t* nde)
|
|||||||
if (n == -1)
|
if (n == -1)
|
||||||
{
|
{
|
||||||
if (run->errnum == ASE_AWK_EIOIMPL)
|
if (run->errnum == ASE_AWK_EIOIMPL)
|
||||||
run->errnum = ASE_AWK_ECOUTNX;
|
{
|
||||||
|
ase_awk_setrunerror (
|
||||||
|
run, ASE_AWK_ECOUTNX, nde->line, ASE_NULL, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
run->errlin = nde->line;
|
||||||
|
}
|
||||||
|
|
||||||
ase_awk_setrunerror_old (
|
|
||||||
run, run->errnum, nde->line, ASE_NULL);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2277,8 +2307,9 @@ static int __run_delete (ase_awk_run_t* run, ase_awk_nde_delete_t* nde)
|
|||||||
tmp = ase_awk_makemapval (run);
|
tmp = ase_awk_makemapval (run);
|
||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run,
|
ase_awk_setrunerror (
|
||||||
ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line,
|
||||||
|
ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2288,8 +2319,9 @@ static int __run_delete (ase_awk_run_t* run, ase_awk_nde_delete_t* nde)
|
|||||||
ase_awk_refupval (run, tmp);
|
ase_awk_refupval (run, tmp);
|
||||||
ase_awk_refdownval (run, tmp);
|
ase_awk_refdownval (run, tmp);
|
||||||
|
|
||||||
ase_awk_setrunerror_old (run,
|
ase_awk_setrunerror (
|
||||||
ASE_AWK_ENOMEM, var->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, var->line,
|
||||||
|
ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2379,8 +2411,9 @@ static int __run_delete (ase_awk_run_t* run, ase_awk_nde_delete_t* nde)
|
|||||||
tmp = ase_awk_makemapval (run);
|
tmp = ase_awk_makemapval (run);
|
||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run,
|
ase_awk_setrunerror (
|
||||||
ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line,
|
||||||
|
ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2804,7 +2837,12 @@ static ase_awk_val_t* __eval_expression (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
{
|
{
|
||||||
ase_awk_refdownval (run, v);
|
ase_awk_refdownval (run, v);
|
||||||
|
|
||||||
ase_awk_setrunerror_old (run, errnum, nde->line, ASE_NULL);
|
/* matchrex should never set the error number
|
||||||
|
* whose message contains a formatting
|
||||||
|
* character. otherwise, the following way of
|
||||||
|
* setting the error information may not work */
|
||||||
|
ase_awk_setrunerror (
|
||||||
|
run, errnum, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2814,7 +2852,8 @@ static ase_awk_val_t* __eval_expression (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
v = ase_awk_makeintval (run, (n != 0));
|
v = ase_awk_makeintval (run, (n != 0));
|
||||||
if (v == ASE_NULL)
|
if (v == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
ase_awk_setrunerror (
|
||||||
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3182,7 +3221,7 @@ static ase_awk_val_t* __do_assignment_map (
|
|||||||
if (n < 0)
|
if (n < 0)
|
||||||
{
|
{
|
||||||
ASE_AWK_FREE (run->awk, str);
|
ASE_AWK_FREE (run->awk, str);
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, var->line, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, var->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3355,7 +3394,7 @@ static ase_awk_val_t* __eval_binop_lor (
|
|||||||
ase_awk_valtobool(run left) || ase_awk_valtobool(run,right));
|
ase_awk_valtobool(run left) || ase_awk_valtobool(run,right));
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, left->line, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, left->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3404,7 +3443,7 @@ static ase_awk_val_t* __eval_binop_land (
|
|||||||
ase_awk_valtobool(run,left) && ase_awk_valtobool(run,right));
|
ase_awk_valtobool(run,left) && ase_awk_valtobool(run,right));
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, left->line, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, left->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3492,17 +3531,6 @@ static ase_awk_val_t* __eval_binop_in (
|
|||||||
ase_awk_map_t* map;
|
ase_awk_map_t* map;
|
||||||
|
|
||||||
map = ((ase_awk_val_map_t*)rv)->map;
|
map = ((ase_awk_val_map_t*)rv)->map;
|
||||||
|
|
||||||
/*r = (ase_long_t)(ase_awk_map_get (map, str, len) != ASE_NULL);
|
|
||||||
res = ase_awk_makeintval (run, r);
|
|
||||||
if (res == ASE_NULL)
|
|
||||||
{
|
|
||||||
ASE_AWK_FREE (run->awk, str);
|
|
||||||
ase_awk_refdownval (run, rv);
|
|
||||||
ase_awk_setrunerror_old (
|
|
||||||
run, ASE_AWK_ENOMEM, right->line, ASE_NULL);
|
|
||||||
return ASE_NULL;
|
|
||||||
}*/
|
|
||||||
res = (ase_awk_map_get (map, str, len) == ASE_NULL)?
|
res = (ase_awk_map_get (map, str, len) == ASE_NULL)?
|
||||||
ase_awk_val_zero: ase_awk_val_one;
|
ase_awk_val_zero: ase_awk_val_one;
|
||||||
|
|
||||||
@ -3534,7 +3562,7 @@ static ase_awk_val_t* __eval_binop_bor (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3547,7 +3575,7 @@ static ase_awk_val_t* __eval_binop_bor (
|
|||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -3566,7 +3594,7 @@ static ase_awk_val_t* __eval_binop_bxor (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3579,7 +3607,7 @@ static ase_awk_val_t* __eval_binop_bxor (
|
|||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -3598,7 +3626,7 @@ static ase_awk_val_t* __eval_binop_band (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3611,7 +3639,7 @@ static ase_awk_val_t* __eval_binop_band (
|
|||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -3864,7 +3892,7 @@ static int __cmp_val (
|
|||||||
if (left->type == ASE_AWK_VAL_MAP || right->type == ASE_AWK_VAL_MAP)
|
if (left->type == ASE_AWK_VAL_MAP || right->type == ASE_AWK_VAL_MAP)
|
||||||
{
|
{
|
||||||
/* a map can't be compared againt other values */
|
/* a map can't be compared againt other values */
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return CMP_ERROR;
|
return CMP_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3939,7 +3967,7 @@ static ase_awk_val_t* __eval_binop_lshift (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3951,13 +3979,13 @@ static ase_awk_val_t* __eval_binop_lshift (
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -3976,7 +4004,7 @@ static ase_awk_val_t* __eval_binop_rshift (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3988,13 +4016,13 @@ static ase_awk_val_t* __eval_binop_rshift (
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -4013,7 +4041,7 @@ static ase_awk_val_t* __eval_binop_plus (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
@ -4032,7 +4060,7 @@ static ase_awk_val_t* __eval_binop_plus (
|
|||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -4051,7 +4079,7 @@ static ase_awk_val_t* __eval_binop_minus (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4064,7 +4092,7 @@ static ase_awk_val_t* __eval_binop_minus (
|
|||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -4083,7 +4111,7 @@ static ase_awk_val_t* __eval_binop_mul (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4096,7 +4124,7 @@ static ase_awk_val_t* __eval_binop_mul (
|
|||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -4115,7 +4143,7 @@ static ase_awk_val_t* __eval_binop_div (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4158,7 +4186,7 @@ static ase_awk_val_t* __eval_binop_div (
|
|||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -4177,7 +4205,7 @@ static ase_awk_val_t* __eval_binop_idiv (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4212,7 +4240,7 @@ static ase_awk_val_t* __eval_binop_idiv (
|
|||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -4231,7 +4259,7 @@ static ase_awk_val_t* __eval_binop_mod (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4240,7 +4268,7 @@ static ase_awk_val_t* __eval_binop_mod (
|
|||||||
{
|
{
|
||||||
if (l2 == 0)
|
if (l2 == 0)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EDIVBY0, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EDIVBY0, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
res = ase_awk_makeintval (
|
res = ase_awk_makeintval (
|
||||||
@ -4248,13 +4276,13 @@ static ase_awk_val_t* __eval_binop_mod (
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
@ -4276,7 +4304,7 @@ static ase_awk_val_t* __eval_binop_exp (
|
|||||||
|
|
||||||
if (n1 == -1 || n2 == -1)
|
if (n1 == -1 || n2 == -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_EOPERAND, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_EOPERAND, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4345,7 +4373,7 @@ static ase_awk_val_t* __eval_binop_exp (
|
|||||||
|
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4377,7 +4405,7 @@ static ase_awk_val_t* __eval_binop_concat (
|
|||||||
ASE_AWK_FREE (run->awk, strl);
|
ASE_AWK_FREE (run->awk, strl);
|
||||||
ASE_AWK_FREE (run->awk, strr);
|
ASE_AWK_FREE (run->awk, strr);
|
||||||
|
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4679,8 +4707,8 @@ static ase_awk_val_t* __eval_incpre (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
if (exp->left->type < ASE_AWK_NDE_NAMED ||
|
if (exp->left->type < ASE_AWK_NDE_NAMED ||
|
||||||
exp->left->type > ASE_AWK_NDE_ARGIDX)
|
exp->left->type > ASE_AWK_NDE_ARGIDX)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL);
|
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4726,8 +4754,8 @@ static ase_awk_val_t* __eval_incpre (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
if (n == -1)
|
if (n == -1)
|
||||||
{
|
{
|
||||||
ase_awk_refdownval (run, left);
|
ase_awk_refdownval (run, left);
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL);
|
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4786,8 +4814,8 @@ static ase_awk_val_t* __eval_incpre (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
if (n == -1)
|
if (n == -1)
|
||||||
{
|
{
|
||||||
ase_awk_refdownval (run, left);
|
ase_awk_refdownval (run, left);
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL);
|
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4847,8 +4875,8 @@ static ase_awk_val_t* __eval_incpst (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
if (exp->left->type < ASE_AWK_NDE_NAMED ||
|
if (exp->left->type < ASE_AWK_NDE_NAMED ||
|
||||||
exp->left->type > ASE_AWK_NDE_ARGIDX)
|
exp->left->type > ASE_AWK_NDE_ARGIDX)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL);
|
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4914,8 +4942,8 @@ static ase_awk_val_t* __eval_incpst (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
if (n == -1)
|
if (n == -1)
|
||||||
{
|
{
|
||||||
ase_awk_refdownval (run, left);
|
ase_awk_refdownval (run, left);
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL);
|
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4925,8 +4953,8 @@ static ase_awk_val_t* __eval_incpst (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_refdownval (run, left);
|
ase_awk_refdownval (run, left);
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5005,8 +5033,8 @@ static ase_awk_val_t* __eval_incpst (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
{
|
{
|
||||||
ase_awk_refdownval (run, left);
|
ase_awk_refdownval (run, left);
|
||||||
ase_awk_freeval (run, res, ase_true);
|
ase_awk_freeval (run, res, ase_true);
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5020,8 +5048,8 @@ static ase_awk_val_t* __eval_incpst (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
if (n == -1)
|
if (n == -1)
|
||||||
{
|
{
|
||||||
ase_awk_refdownval (run, left);
|
ase_awk_refdownval (run, left);
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL);
|
run, ASE_AWK_EOPERAND, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5031,8 +5059,8 @@ static ase_awk_val_t* __eval_incpst (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_refdownval (run, left);
|
ase_awk_refdownval (run, left);
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5645,8 +5673,8 @@ static ase_awk_val_t* __eval_int (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
val = ase_awk_makeintval (run, ((ase_awk_nde_int_t*)nde)->val);
|
val = ase_awk_makeintval (run, ((ase_awk_nde_int_t*)nde)->val);
|
||||||
if (val == ASE_NULL)
|
if (val == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
((ase_awk_val_int_t*)val)->nde = (ase_awk_nde_int_t*)nde;
|
((ase_awk_val_int_t*)val)->nde = (ase_awk_nde_int_t*)nde;
|
||||||
@ -5661,8 +5689,8 @@ static ase_awk_val_t* __eval_real (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
val = ase_awk_makerealval (run, ((ase_awk_nde_real_t*)nde)->val);
|
val = ase_awk_makerealval (run, ((ase_awk_nde_real_t*)nde)->val);
|
||||||
if (val == ASE_NULL)
|
if (val == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
((ase_awk_val_real_t*)val)->nde = (ase_awk_nde_real_t*)nde;
|
((ase_awk_val_real_t*)val)->nde = (ase_awk_nde_real_t*)nde;
|
||||||
@ -5679,8 +5707,8 @@ static ase_awk_val_t* __eval_str (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
((ase_awk_nde_str_t*)nde)->len);
|
((ase_awk_nde_str_t*)nde)->len);
|
||||||
if (val == ASE_NULL)
|
if (val == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5697,8 +5725,8 @@ static ase_awk_val_t* __eval_rex (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
((ase_awk_nde_rex_t*)nde)->code);
|
((ase_awk_nde_rex_t*)nde)->code);
|
||||||
if (val == ASE_NULL)
|
if (val == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5747,8 +5775,8 @@ static ase_awk_val_t* __eval_indexed (
|
|||||||
tmp = ase_awk_makemapval (run);
|
tmp = ase_awk_makemapval (run);
|
||||||
if (tmp == ASE_NULL)
|
if (tmp == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5786,8 +5814,8 @@ static ase_awk_val_t* __eval_namedidx (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
tgt->id.name, tgt->id.name_len, ase_awk_val_nil);
|
tgt->id.name, tgt->id.name_len, ase_awk_val_nil);
|
||||||
if (pair == ASE_NULL)
|
if (pair == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5918,8 +5946,8 @@ static ase_awk_val_t* __eval_getline (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
if (ase_str_open (&buf, DEF_BUF_CAPA, &run->awk->prmfns.mmgr) == ASE_NULL)
|
if (ase_str_open (&buf, DEF_BUF_CAPA, &run->awk->prmfns.mmgr) == ASE_NULL)
|
||||||
{
|
{
|
||||||
if (in != ASE_NULL) ASE_AWK_FREE (run->awk, in);
|
if (in != ASE_NULL) ASE_AWK_FREE (run->awk, in);
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5931,8 +5959,8 @@ static ase_awk_val_t* __eval_getline (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
if (run->errnum != ASE_AWK_EIOIMPL)
|
if (run->errnum != ASE_AWK_EIOIMPL)
|
||||||
{
|
{
|
||||||
ase_str_close (&buf);
|
ase_str_close (&buf);
|
||||||
ase_awk_setrunerror_old (
|
/* adjust the line number */
|
||||||
run, run->errnum, nde->line, ASE_NULL);
|
run->errlin = nde->line;
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5965,8 +5993,9 @@ static ase_awk_val_t* __eval_getline (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
ase_str_close (&buf);
|
ase_str_close (&buf);
|
||||||
if (v == ASE_NULL)
|
if (v == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line,
|
||||||
|
ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5988,8 +6017,8 @@ skip_read:
|
|||||||
res = ase_awk_makeintval (run, n);
|
res = ase_awk_makeintval (run, n);
|
||||||
if (res == ASE_NULL)
|
if (res == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6104,7 +6133,8 @@ static int __shorten_record (ase_awk_run_t* run, ase_size_t nflds)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ofs = ase_awk_valtostr (
|
ofs = ase_awk_valtostr (
|
||||||
run, v, ASE_AWK_VALTOSTR_CLEAR, ASE_NULL, &ofs_len);
|
run, v, ASE_AWK_VALTOSTR_CLEAR,
|
||||||
|
ASE_NULL, &ofs_len);
|
||||||
if (ofs == ASE_NULL) return -1;
|
if (ofs == ASE_NULL) return -1;
|
||||||
|
|
||||||
ofs_free = ofs;
|
ofs_free = ofs;
|
||||||
@ -6112,22 +6142,22 @@ static int __shorten_record (ase_awk_run_t* run, ase_size_t nflds)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ase_str_open (
|
if (ase_str_open (
|
||||||
&tmp,
|
&tmp, ASE_STR_LEN(&run->inrec.line),
|
||||||
ASE_STR_LEN(&run->inrec.line),
|
|
||||||
&run->awk->prmfns.mmgr) == ASE_NULL)
|
&run->awk->prmfns.mmgr) == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < nflds; i++)
|
for (i = 0; i < nflds; i++)
|
||||||
{
|
{
|
||||||
if (i > 0 && ase_str_ncat (&tmp, ofs, ofs_len) == (ase_size_t)-1)
|
if (i > 0 && ase_str_ncat(&tmp,ofs,ofs_len) == (ase_size_t)-1)
|
||||||
{
|
{
|
||||||
if (ofs_free != ASE_NULL)
|
if (ofs_free != ASE_NULL)
|
||||||
ASE_AWK_FREE (run->awk, ofs_free);
|
ASE_AWK_FREE (run->awk, ofs_free);
|
||||||
if (nflds > 1) ase_awk_refdownval (run, v);
|
if (nflds > 1) ase_awk_refdownval (run, v);
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (
|
||||||
|
run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6138,7 +6168,9 @@ static int __shorten_record (ase_awk_run_t* run, ase_size_t nflds)
|
|||||||
if (ofs_free != ASE_NULL)
|
if (ofs_free != ASE_NULL)
|
||||||
ASE_AWK_FREE (run->awk, ofs_free);
|
ASE_AWK_FREE (run->awk, ofs_free);
|
||||||
if (nflds > 1) ase_awk_refdownval (run, v);
|
if (nflds > 1) ase_awk_refdownval (run, v);
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
|
||||||
|
ase_awk_setrunerror (
|
||||||
|
run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -6150,7 +6182,7 @@ static int __shorten_record (ase_awk_run_t* run, ase_size_t nflds)
|
|||||||
run, ASE_STR_BUF(&tmp), ASE_STR_LEN(&tmp));
|
run, ASE_STR_BUF(&tmp), ASE_STR_LEN(&tmp));
|
||||||
if (v == ASE_NULL)
|
if (v == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6208,8 +6240,8 @@ static ase_char_t* __idxnde_to_str (
|
|||||||
DEF_BUF_CAPA,
|
DEF_BUF_CAPA,
|
||||||
&run->awk->prmfns.mmgr) == ASE_NULL)
|
&run->awk->prmfns.mmgr) == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (
|
ase_awk_setrunerror (
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6231,8 +6263,11 @@ static ase_char_t* __idxnde_to_str (
|
|||||||
{
|
{
|
||||||
ase_awk_refdownval (run, idx);
|
ase_awk_refdownval (run, idx);
|
||||||
ase_str_close (&idxstr);
|
ase_str_close (&idxstr);
|
||||||
ase_awk_setrunerror_old (
|
|
||||||
run, ASE_AWK_ENOMEM, nde->line, ASE_NULL);
|
ase_awk_setrunerror (
|
||||||
|
run, ASE_AWK_ENOMEM, nde->line,
|
||||||
|
ASE_NULL, 0);
|
||||||
|
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6241,8 +6276,6 @@ static ase_char_t* __idxnde_to_str (
|
|||||||
{
|
{
|
||||||
ase_awk_refdownval (run, idx);
|
ase_awk_refdownval (run, idx);
|
||||||
ase_str_close (&idxstr);
|
ase_str_close (&idxstr);
|
||||||
ase_awk_setrunerror_old (
|
|
||||||
run, run->errnum, nde->line, ASE_NULL);
|
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6271,7 +6304,7 @@ ase_char_t* ase_awk_format (
|
|||||||
do { \
|
do { \
|
||||||
if (ase_str_ccat (out, (c)) == -1) \
|
if (ase_str_ccat (out, (c)) == -1) \
|
||||||
{ \
|
{ \
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL); \
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0); \
|
||||||
return ASE_NULL; \
|
return ASE_NULL; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
@ -6280,7 +6313,7 @@ ase_char_t* ase_awk_format (
|
|||||||
do { \
|
do { \
|
||||||
if (ase_str_ccat (fbu, (c)) == -1) \
|
if (ase_str_ccat (fbu, (c)) == -1) \
|
||||||
{ \
|
{ \
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL); \
|
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0); \
|
||||||
return ASE_NULL; \
|
return ASE_NULL; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
@ -6402,7 +6435,9 @@ ase_char_t* ase_awk_format (
|
|||||||
GROW (&run->format.tmp);
|
GROW (&run->format.tmp);
|
||||||
if (run->format.tmp.ptr == ASE_NULL)
|
if (run->format.tmp.ptr == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (
|
||||||
|
run, ASE_AWK_ENOMEM, 0,
|
||||||
|
ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6506,7 +6541,9 @@ ase_char_t* ase_awk_format (
|
|||||||
GROW (&run->format.tmp);
|
GROW (&run->format.tmp);
|
||||||
if (run->format.tmp.ptr == ASE_NULL)
|
if (run->format.tmp.ptr == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (
|
||||||
|
run, ASE_AWK_ENOMEM, 0,
|
||||||
|
ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6629,7 +6666,9 @@ ase_char_t* ase_awk_format (
|
|||||||
GROW (&run->format.tmp);
|
GROW (&run->format.tmp);
|
||||||
if (run->format.tmp.ptr == ASE_NULL)
|
if (run->format.tmp.ptr == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
ase_awk_setrunerror (
|
||||||
|
run, ASE_AWK_ENOMEM, 0,
|
||||||
|
ASE_NULL, 0);
|
||||||
return ASE_NULL;
|
return ASE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user