From 6b1ed8104ac1d601798eb6109e0cba66dfe3ce87 Mon Sep 17 00:00:00 2001 From: hyung-hwan Date: Sat, 10 Mar 2007 15:02:31 +0000 Subject: [PATCH] *** empty log message *** --- ase/awk/awk.h | 12 +++-- ase/awk/err.c | 12 +++-- ase/awk/extio.c | 55 +++++++++++--------- ase/awk/rec.c | 48 ++++++++--------- ase/awk/run.c | 135 ++++++++++++++++++++++++------------------------ 5 files changed, 136 insertions(+), 126 deletions(-) diff --git a/ase/awk/awk.h b/ase/awk/awk.h index 2247848e..f26928d8 100644 --- a/ase/awk/awk.h +++ b/ase/awk/awk.h @@ -1,5 +1,5 @@ /* - * $Id: awk.h,v 1.206 2007-03-10 11:58:34 bacon Exp $ + * $Id: awk.h,v 1.207 2007-03-10 15:02:30 bacon Exp $ * * {License} */ @@ -305,14 +305,18 @@ enum ASE_AWK_ESCALARTOMAP, /* cannot change a scalar value to a map */ ASE_AWK_EMAPNOTALLOWED, /* a map is not allowed */ ASE_AWK_EVALTYPE, /* wrong value type */ - ASE_AWK_ENEXTCALL, /* next called from BEGIN or END */ - ASE_AWK_ENEXTFILECALL, /* nextfile called from BEGIN or END */ + ASE_AWK_ERDELETE, /* delete called with a wrong target */ + ASE_AWK_ERNEXTBEG, /* next called from BEGIN */ + ASE_AWK_ERNEXTEND, /* next called from END */ + ASE_AWK_ERNEXTFBEG, /* nextfile called from BEGIN */ + ASE_AWK_ERNEXTFEND, /* nextfile called from END */ ASE_AWK_EBFNUSER, /* wrong builtin function implementation */ ASE_AWK_EBFNIMPL, /* builtin function handler failed */ ASE_AWK_EIOUSER, /* wrong user io handler implementation */ ASE_AWK_EIONONE, /* no such io name found */ ASE_AWK_EIOIMPL, /* i/o callback returned an error */ - ASE_AWK_EIONAME, /* invalid i/o name */ + ASE_AWK_EIONMEM, /* i/o name empty */ + ASE_AWK_EIONMNL, /* i/o name contains '\0' */ ASE_AWK_EFMTARG, /* arguments to format string not sufficient */ ASE_AWK_EFMTCNV, /* recursion detected in format conversion */ ASE_AWK_ECONVFMTCHAR, /* an invalid character found in CONVFMT */ diff --git a/ase/awk/err.c b/ase/awk/err.c index 99cb11c0..668ced15 100644 --- a/ase/awk/err.c +++ b/ase/awk/err.c @@ -1,5 +1,5 @@ /* - * $Id: err.c,v 1.90 2007-03-10 11:58:35 bacon Exp $ + * $Id: err.c,v 1.91 2007-03-10 15:02:30 bacon Exp $ * * {License} */ @@ -120,14 +120,18 @@ static const ase_char_t* __geterrstr (int errnum) ASE_T("cannot change a scalar value to a map"), ASE_T("a map is not allowed"), ASE_T("invalid value type"), - ASE_T("next cannot be called from the BEGIN or END block"), - ASE_T("nextfile cannot be called from the BEGIN or END block"), + ASE_T("delete statement called with a wrong target"), + ASE_T("next statement called from the BEGIN block"), + ASE_T("next statement called from the END block"), + ASE_T("nextfile statement called from the BEGIN block"), + ASE_T("nextfile statement called from the END block"), ASE_T("wrong implementation of built-in function handler"), ASE_T("built-in function handler returned an error"), ASE_T("wrong implementation of user-defined io handler"), ASE_T("no such io name found"), ASE_T("i/o handler returned an error"), - ASE_T("invalid i/o name"), + ASE_T("i/o name empty"), + ASE_T("i/o name containing a null character"), ASE_T("not sufficient arguments to formatting sequence"), ASE_T("recursion detected in format conversion"), ASE_T("invalid character in CONVFMT"), diff --git a/ase/awk/extio.c b/ase/awk/extio.c index bac3ba6f..f753517d 100644 --- a/ase/awk/extio.c +++ b/ase/awk/extio.c @@ -1,5 +1,5 @@ /* - * $Id: extio.c,v 1.75 2007-03-10 11:58:35 bacon Exp $ + * $Id: extio.c,v 1.76 2007-03-10 15:02:30 bacon Exp $ * * {License} */ @@ -100,7 +100,7 @@ int ase_awk_readextio ( if (handler == ASE_NULL) { /* no io handler provided */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOUSER, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0); return -1; } @@ -149,7 +149,8 @@ int ase_awk_readextio ( { ASE_AWK_FREE (run->awk, p->name); ASE_AWK_FREE (run->awk, p); - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } @@ -222,7 +223,8 @@ int ase_awk_readextio ( if (n <= -1) { /* handler error. getline should return -1 */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); ret = -1; break; } @@ -420,7 +422,7 @@ int ase_awk_writeextio_str ( if (handler == ASE_NULL) { /* no io handler provided */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOUSER, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0); return -1; } @@ -478,7 +480,8 @@ int ase_awk_writeextio_str ( { ASE_AWK_FREE (run->awk, p->name); ASE_AWK_FREE (run->awk, p); - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } @@ -517,7 +520,8 @@ int ase_awk_writeextio_str ( if (n <= -1) { - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } @@ -555,7 +559,7 @@ int ase_awk_flushextio ( if (handler == ASE_NULL) { /* no io handler provided */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOUSER, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0); return -1; } @@ -569,7 +573,8 @@ int ase_awk_flushextio ( if (n <= -1) { - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } @@ -582,7 +587,7 @@ int ase_awk_flushextio ( if (ok) return 0; /* there is no corresponding extio for name */ - ase_awk_setrunerror_old (run, ASE_AWK_EIONONE, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIONONE, 0, ASE_NULL, 0); return -1; } @@ -606,7 +611,7 @@ int ase_awk_nextextio_read ( if (handler == ASE_NULL) { /* no io handler provided */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOUSER, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0); return -1; } @@ -622,7 +627,7 @@ int ase_awk_nextextio_read ( /* something is totally wrong */ ASE_ASSERT ( !"should never happen - cannot find the relevant extio entry"); - ase_awk_setrunerror_old (run, ASE_AWK_EINTERN, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EINTERN, 0, ASE_NULL, 0); return -1; } @@ -635,7 +640,7 @@ int ase_awk_nextextio_read ( n = handler (ASE_AWK_IO_NEXT, p, ASE_NULL, 0); if (n <= -1) { - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } @@ -680,7 +685,7 @@ int ase_awk_nextextio_write ( if (handler == ASE_NULL) { /* no io handler provided */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOUSER, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0); return -1; } @@ -696,7 +701,7 @@ int ase_awk_nextextio_write ( /* something is totally wrong */ ASE_ASSERT (!"should never happen - cannot find the relevant extio entry"); - ase_awk_setrunerror_old (run, ASE_AWK_EINTERN, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EINTERN, 0, ASE_NULL, 0); return -1; } @@ -709,7 +714,7 @@ int ase_awk_nextextio_write ( n = handler (ASE_AWK_IO_NEXT, p, ASE_NULL, 0); if (n <= -1) { - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } @@ -722,7 +727,7 @@ int ase_awk_nextextio_write ( n = handler (ASE_AWK_IO_NEXT, p, ASE_NULL, 0); if (n <= -1) { - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } @@ -763,7 +768,7 @@ int ase_awk_closeextio_read ( if (handler == ASE_NULL) { /* no io handler provided */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOUSER, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0); return -1; } @@ -780,7 +785,7 @@ int ase_awk_closeextio_read ( if (handler (ASE_AWK_IO_CLOSE, p, ASE_NULL, 0) <= -1) { /* this is not a run-time error.*/ - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } } @@ -798,7 +803,7 @@ int ase_awk_closeextio_read ( } /* this is not a run-time error */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } @@ -822,7 +827,7 @@ int ase_awk_closeextio_write ( if (handler == ASE_NULL) { /* no io handler provided */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOUSER, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0); return -1; } @@ -839,7 +844,7 @@ int ase_awk_closeextio_write ( if (handler (ASE_AWK_IO_CLOSE, p, ASE_NULL, 0) <= -1) { /* this is not a run-time error.*/ - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } } @@ -857,7 +862,7 @@ int ase_awk_closeextio_write ( } /* this is not a run-time error */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } @@ -879,7 +884,7 @@ int ase_awk_closeextio (ase_awk_run_t* run, const ase_char_t* name) if (handler (ASE_AWK_IO_CLOSE, p, ASE_NULL, 0) <= -1) { /* this is not a run-time error.*/ - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } } @@ -897,7 +902,7 @@ int ase_awk_closeextio (ase_awk_run_t* run, const ase_char_t* name) } /* this is not a run-time error */ - ase_awk_setrunerror_old (run, ASE_AWK_EIOIMPL, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0); return -1; } diff --git a/ase/awk/rec.c b/ase/awk/rec.c index 9ebb8c74..f3716666 100644 --- a/ase/awk/rec.c +++ b/ase/awk/rec.c @@ -1,5 +1,5 @@ /* - * $Id: rec.c,v 1.17 2007-03-06 14:51:53 bacon Exp $ + * $Id: rec.c,v 1.18 2007-03-10 15:02:31 bacon Exp $ * * {License} */ @@ -32,8 +32,8 @@ int ase_awk_setrec ( if (ase_str_ncpy (&run->inrec.line, str, len) == (ase_size_t)-1) { ase_awk_clrrec (run, ase_false); - ase_awk_setrunerror_old ( - run, ASE_AWK_ENOMEM, 0, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0); return -1; } } @@ -42,7 +42,7 @@ int ase_awk_setrec ( if (v == ASE_NULL) { ase_awk_clrrec (run, ase_false); - ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0); return -1; } @@ -54,9 +54,7 @@ int ase_awk_setrec ( if (__split_record (run) == -1) { - errnum = run->errnum; ase_awk_clrrec (run, ase_false); - ase_awk_setrunerror_old (run, errnum, 0, ASE_NULL); return -1; } } @@ -64,9 +62,7 @@ int ase_awk_setrec ( { if (__recomp_record_fields (run, idx, str, len) == -1) { - errnum = run->errnum; ase_awk_clrrec (run, ase_false); - ase_awk_setrunerror_old (run, errnum, 0, ASE_NULL); return -1; } @@ -77,7 +73,7 @@ int ase_awk_setrec ( if (v == ASE_NULL) { ase_awk_clrrec (run, ase_false); - ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0); return -1; } @@ -143,7 +139,7 @@ static int __split_record (ase_awk_run_t* run) { if (fs_free != ASE_NULL) ASE_AWK_FREE (run->awk, fs_free); - ase_awk_setrunerror_old (run, errnum, 0, ASE_NULL); + ase_awk_setrunerror (run, errnum, 0, ASE_NULL, 0); return -1; } } @@ -171,7 +167,7 @@ static int __split_record (ase_awk_run_t* run) if (tmp == ASE_NULL) { if (fs_free != ASE_NULL) ASE_AWK_FREE (run->awk, fs_free); - ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0); return -1; } @@ -200,7 +196,7 @@ static int __split_record (ase_awk_run_t* run) { if (fs_free != ASE_NULL) ASE_AWK_FREE (run->awk, fs_free); - ase_awk_setrunerror_old (run, errnum, 0, ASE_NULL); + ase_awk_setrunerror (run, errnum, 0, ASE_NULL, 0); return -1; } } @@ -215,7 +211,7 @@ static int __split_record (ase_awk_run_t* run) if (run->inrec.flds[run->inrec.nflds].val == ASE_NULL) { if (fs_free != ASE_NULL) ASE_AWK_FREE (run->awk, fs_free); - ase_awk_setrunerror_old (run, ASE_AWK_ENOMEM, 0, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0); return -1; } @@ -232,7 +228,7 @@ static int __split_record (ase_awk_run_t* run) v = ase_awk_makeintval (run, (ase_long_t)nflds); 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; } @@ -309,8 +305,8 @@ static int __recomp_record_fields ( ASE_SIZEOF(*run->inrec.flds) * max); if (tmp == 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; } } @@ -320,8 +316,8 @@ static int __recomp_record_fields ( run->awk, ASE_SIZEOF(*run->inrec.flds) * max); if (tmp == 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; } if (run->inrec.flds != ASE_NULL) @@ -349,8 +345,8 @@ static int __recomp_record_fields ( run->global.ofs.ptr, run->global.ofs.len) == (ase_size_t)-1) { - ase_awk_setrunerror_old ( - run, ASE_AWK_ENOMEM, 0, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0); return -1; } } @@ -367,16 +363,16 @@ static int __recomp_record_fields ( if (ase_str_ncat ( &run->inrec.line, str, len) == (ase_size_t)-1) { - ase_awk_setrunerror_old ( - run, ASE_AWK_ENOMEM, 0, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0); return -1; } tmp = ase_awk_makestrval (run, str,len); if (tmp == 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; } @@ -397,8 +393,8 @@ static int __recomp_record_fields ( if (ase_str_cat ( &run->inrec.line, ASE_T("")) == (ase_size_t)-1) { - ase_awk_setrunerror_old ( - run, ASE_AWK_ENOMEM, 0, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_ENOMEM, 0, ASE_NULL, 0); return -1; } diff --git a/ase/awk/run.c b/ase/awk/run.c index 0120329d..769e25f4 100644 --- a/ase/awk/run.c +++ b/ase/awk/run.c @@ -1,5 +1,5 @@ /* - * $Id: run.c,v 1.342 2007-03-10 11:58:35 bacon Exp $ + * $Id: run.c,v 1.343 2007-03-10 15:02:31 bacon Exp $ * * {License} */ @@ -2171,16 +2171,14 @@ static int __run_next (ase_awk_run_t* run, ase_awk_nde_next_t* nde) * check that explicitly */ if (run->active_block == (ase_awk_nde_blk_t*)run->awk->tree.begin) { - ase_awk_setrunerror_old ( - run, ASE_AWK_ENEXTCALL, nde->line, - ASE_T("next called from the BEGIN block")); + ase_awk_setrunerror ( + run, ASE_AWK_ERNEXTBEG, nde->line, ASE_NULL, 0); return -1; } else if (run->active_block == (ase_awk_nde_blk_t*)run->awk->tree.end) { - ase_awk_setrunerror_old ( - run, ASE_AWK_ENEXTCALL, nde->line, - ASE_T("next called from the END block")); + ase_awk_setrunerror ( + run, ASE_AWK_ERNEXTEND, nde->line, ASE_NULL, 0); return -1; } @@ -2195,16 +2193,14 @@ static int __run_nextinfile (ase_awk_run_t* run, ase_awk_nde_nextfile_t* nde) /* normal nextfile statement */ if (run->active_block == (ase_awk_nde_blk_t*)run->awk->tree.begin) { - ase_awk_setrunerror_old ( - run, ASE_AWK_ENEXTCALL, nde->line, - ASE_T("nextfile called from the BEGIN block")); + ase_awk_setrunerror ( + run, ASE_AWK_ERNEXTFBEG, nde->line, ASE_NULL, 0); return -1; } else if (run->active_block == (ase_awk_nde_blk_t*)run->awk->tree.end) { - ase_awk_setrunerror_old ( - run, ASE_AWK_ENEXTCALL, nde->line, - ASE_T("nextfile called from the END block")); + ase_awk_setrunerror ( + run, ASE_AWK_ERNEXTFEND, nde->line, ASE_NULL, 0); return -1; } @@ -2372,8 +2368,8 @@ static int __run_delete (ase_awk_run_t* run, ase_awk_nde_delete_t* nde) if (key == ASE_NULL) { - ase_awk_setrunerror_old (run, - run->errnum, var->line, ASE_NULL); + /* change the error line */ + run->errlin = var->line; return -1; } @@ -2431,8 +2427,8 @@ static int __run_delete (ase_awk_run_t* run, ase_awk_nde_delete_t* nde) { ase_awk_refupval (run, tmp); ase_awk_refdownval (run, tmp); - ase_awk_setrunerror_old (run, - run->errnum, var->line, ASE_NULL); + + run->errlin = var->line; return -1; } } @@ -2486,8 +2482,7 @@ static int __run_delete (ase_awk_run_t* run, ase_awk_nde_delete_t* nde) if (key == ASE_NULL) { - ase_awk_setrunerror_old (run, - run->errnum, var->line, ASE_NULL); + run->errlin = var->line; return -1; } @@ -2505,9 +2500,9 @@ static int __run_delete (ase_awk_run_t* run, ase_awk_nde_delete_t* nde) ASE_ASSERTX ( !"should never happen - wrong target for delete", "the delete statement cannot be called with other nodes than the variables such as a named variable, a named indexed variable, etc"); - ase_awk_setrunerror_old ( - run, ASE_AWK_EINTERN, var->line, - ASE_T("delete statement called with a wrong target")); + + ase_awk_setrunerror ( + run, ASE_AWK_ERDELETE, var->line, ASE_NULL, 0); return -1; } @@ -2543,8 +2538,9 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde) if (out == ASE_NULL) { ase_awk_refdownval (run, v); - ase_awk_setrunerror_old ( - run, run->errnum, nde->line, ASE_NULL); + + /* change the error line */ + run->errlin = nde->line; return -1; } ase_awk_refdownval (run, v); @@ -2553,9 +2549,8 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde) { /* the destination name is empty */ ASE_AWK_FREE (run->awk, out); - ase_awk_setrunerror_old ( - run, ASE_AWK_EIONAME, nde->line, - ASE_T("destination name empty in print")); + ase_awk_setrunerror ( + run, ASE_AWK_EIONMEM, nde->line, ASE_NULL, 0); return -1; } @@ -2567,9 +2562,9 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde) { /* if so, it skips writing */ ASE_AWK_FREE (run->awk, out); - ase_awk_setrunerror_old ( - run, ASE_AWK_EIONAME, nde->line, - ASE_T("destination name containing a null character in print")); + ase_awk_setrunerror ( + run, ASE_AWK_EIONMNL, nde->line, + ASE_NULL, 0); return -1; } } @@ -2590,8 +2585,8 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde) if (n <= -1 /*&& run->errnum != ASE_AWK_EIOIMPL*/) { if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out); - ase_awk_setrunerror_old ( - run, run->errnum, nde->line, ASE_NULL); + /* change the error line */ + run->errlin = nde->line; return -1; } } @@ -2620,8 +2615,8 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde) if (n <= -1 /*&& run->errnum != ASE_AWK_EIOIMPL*/) { if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out); - ase_awk_setrunerror_old ( - run, run->errnum, nde->line, ASE_NULL); + /* change the error line */ + run->errlin = nde->line; return -1; } } @@ -2639,8 +2634,8 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde) { if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out); ase_awk_refdownval (run, v); - ase_awk_setrunerror_old ( - run, run->errnum, nde->line, ASE_NULL); + /* change the error line */ + run->errlin = nde->line; return -1; } @@ -2655,7 +2650,9 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde) if (n <= -1 /*&& run->errnum != ASE_AWK_EIOIMPL*/) { if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out); - ase_awk_setrunerror_old (run, run->errnum, nde->line, ASE_NULL); + + /* change the error line */ + run->errlin = nde->line; return -1; } @@ -2693,8 +2690,9 @@ static int __run_printf (ase_awk_run_t* run, ase_awk_nde_print_t* nde) if (out == ASE_NULL) { ase_awk_refdownval (run, v); - ase_awk_setrunerror_old ( - run, run->errnum, nde->line, ASE_NULL); + + /* change the error line */ + run->errlin = nde->line; return -1; } ase_awk_refdownval (run, v); @@ -2703,9 +2701,8 @@ static int __run_printf (ase_awk_run_t* run, ase_awk_nde_print_t* nde) { /* the output destination name is empty. */ ASE_AWK_FREE (run->awk, out); - ase_awk_setrunerror_old ( - run, ASE_AWK_EIONAME, nde->line, - ASE_T("destination name empty in printf")); + ase_awk_setrunerror ( + run, ASE_AWK_EIONMEM, nde->line, ASE_NULL, 0); return -1; } @@ -2716,9 +2713,9 @@ static int __run_printf (ase_awk_run_t* run, ase_awk_nde_print_t* nde) /* the output destination name contains a null * character. */ ASE_AWK_FREE (run->awk, out); - ase_awk_setrunerror_old ( - run, ASE_AWK_EIONAME, nde->line, - ASE_T("destination name containing a null character in printf")); + ase_awk_setrunerror ( + run, ASE_AWK_EIONMNL, nde->line, + ASE_NULL, 0); return -1; } } @@ -2757,8 +2754,9 @@ static int __run_printf (ase_awk_run_t* run, ase_awk_nde_print_t* nde) { if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out); ase_awk_refdownval (run, v); - ase_awk_setrunerror_old ( - run, run->errnum, nde->line, ASE_NULL); + + /* change the error line */ + run->errlin = nde->line; return -1; } } @@ -2773,8 +2771,9 @@ static int __run_printf (ase_awk_run_t* run, ase_awk_nde_print_t* nde) { if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out); ase_awk_refdownval (run, v); - ase_awk_setrunerror_old ( - run, run->errnum, nde->line, ASE_NULL); + + /* change the error line */ + run->errlin = nde->line; return -1; } } @@ -2907,7 +2906,7 @@ static ase_awk_val_t* __eval_group (ase_awk_run_t* run, ase_awk_nde_t* nde) /* __eval_binop_in evaluates the ASE_AWK_NDE_GRP specially. * so this function should never be reached. */ ASE_ASSERT (!"should never happen - NDE_GRP only for in"); - ase_awk_setrunerror_old (run, ASE_AWK_EINTERN, nde->line, ASE_NULL); + ase_awk_setrunerror (run, ASE_AWK_EINTERN, nde->line, ASE_NULL, 0); return ASE_NULL; } @@ -3010,8 +3009,8 @@ static ase_awk_val_t* __do_assignment ( { ASE_ASSERT ( !"should never happen - invalid variable type"); - ase_awk_setrunerror_old ( - run, ASE_AWK_EINTERN, var->line, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_EINTERN, var->line, ASE_NULL, 0); return ASE_NULL; } @@ -3055,8 +3054,8 @@ static ase_awk_val_t* __do_assignment_scalar ( var->id.name, var->id.name_len, val, ASE_NULL); if (n < 0) { - ase_awk_setrunerror_old ( - run, ASE_AWK_ENOMEM, var->line, run->errmsg); + ase_awk_setrunerror ( + run, ASE_AWK_ENOMEM, var->line, ASE_NULL, 0); return ASE_NULL; } @@ -3156,8 +3155,8 @@ static ase_awk_val_t* __do_assignment_map ( tmp = ase_awk_makemapval (run); if (tmp == ASE_NULL) { - 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; } @@ -3172,8 +3171,8 @@ static ase_awk_val_t* __do_assignment_map ( ase_awk_refupval (run, tmp); ase_awk_refdownval (run, tmp); - 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; } @@ -3185,7 +3184,9 @@ static ase_awk_val_t* __do_assignment_map ( if (ase_awk_setglobal (run, var->id.idxa, tmp) == -1) { ase_awk_refdownval (run, tmp); - ase_awk_setrunerror_old (run, run->errnum, var->line, ASE_NULL); + + /* change error line */ + run->errlin = var->line; return ASE_NULL; } ase_awk_refdownval (run, tmp); @@ -3275,8 +3276,8 @@ static ase_awk_val_t* __do_assignment_pos ( run, val, ASE_AWK_VALTOSTR_CLEAR, ASE_NULL, &len); if (str == ASE_NULL) { - ase_awk_setrunerror_old ( - run, run->errnum, pos->line, ASE_NULL); + /* change error line */ + run->errlin = pos->line; return ASE_NULL; } } @@ -4860,8 +4861,8 @@ static ase_awk_val_t* __eval_incpre (ase_awk_run_t* run, ase_awk_nde_t* nde) !"should never happen - invalid opcode"); ase_awk_refdownval (run, left); - ase_awk_setrunerror_old ( - run, ASE_AWK_EINTERN, nde->line, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_EINTERN, nde->line, ASE_NULL, 0); return ASE_NULL; } @@ -5139,8 +5140,8 @@ static ase_awk_val_t* __eval_incpst (ase_awk_run_t* run, ase_awk_nde_t* nde) !"should never happen - invalid opcode"); ase_awk_refdownval (run, left); - ase_awk_setrunerror_old ( - run, ASE_AWK_EINTERN, nde->line, ASE_NULL); + ase_awk_setrunerror ( + run, ASE_AWK_EINTERN, nde->line, ASE_NULL, 0); return ASE_NULL; } @@ -6260,8 +6261,8 @@ static ase_char_t* __idxnde_to_str ( if (str == ASE_NULL) { ase_awk_refdownval (run, idx); - ase_awk_setrunerror_old ( - run, run->errnum, nde->line, ASE_NULL); + /* change error line */ + run->errlin = nde->line; return ASE_NULL; }