*** empty log message ***
This commit is contained in:
parent
d2feccde0f
commit
fad47e1027
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: awk.h,v 1.176 2007-01-01 15:07:25 bacon Exp $
|
||||
* $Id: awk.h,v 1.177 2007-01-02 12:25:18 bacon Exp $
|
||||
*/
|
||||
|
||||
#ifndef _ASE_AWK_AWK_H_
|
||||
@ -308,7 +308,7 @@ enum
|
||||
ASE_AWK_EPOSIDX, /* wrong position index */
|
||||
ASE_AWK_EARGTF, /* too few arguments */
|
||||
ASE_AWK_EARGTM, /* too many arguments */
|
||||
ASE_AWK_ENOSUCHFN, /* no such function */
|
||||
ASE_AWK_EFNNONE, /* no such function */
|
||||
ASE_AWK_ENOTIDX, /* variable not indexable */
|
||||
ASE_AWK_ENOTDEL, /* variable not deletable */
|
||||
ASE_AWK_ENOTMAP, /* value not a map */
|
||||
@ -322,14 +322,14 @@ enum
|
||||
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_EIOIMPL, /* wrong user io handler implementation */
|
||||
ASE_AWK_EBFNIMPL, /* wrong builtin function implementation */
|
||||
ASE_AWK_EBFNFAIL, /* builtin function handler failed */
|
||||
ASE_AWK_ENOSUCHIO, /* no such io name found */
|
||||
ASE_AWK_EIOHANDLER, /* i/o callback returned an error */
|
||||
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_EFMTARG, /* arguments to format string not sufficient */
|
||||
ASE_AWK_EFMTCONV, /* recursion detected in format conversion */
|
||||
ASE_AWK_EFMTCNV, /* recursion detected in format conversion */
|
||||
ASE_AWK_ECONVFMTCHAR, /* an invalid character found in CONVFMT */
|
||||
ASE_AWK_EOFMTCHAR, /* an invalid character found in OFMT */
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: err.c,v 1.67 2006-12-30 08:54:43 bacon Exp $
|
||||
* $Id: err.c,v 1.68 2007-01-02 12:25:18 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <ase/awk/awk_i.h>
|
||||
@ -156,9 +156,9 @@ const ase_char_t* ase_awk_geterrstr (int errnum)
|
||||
ASE_T("wrong 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("wrong implementation of user-defined io handler"),
|
||||
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"),
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: extio.c,v 1.68 2006-12-30 08:54:43 bacon Exp $
|
||||
* $Id: extio.c,v 1.69 2007-01-02 12:25:18 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <ase/awk/awk_i.h>
|
||||
@ -100,7 +100,7 @@ int ase_awk_readextio (
|
||||
if (handler == ASE_NULL)
|
||||
{
|
||||
/* no io handler provided */
|
||||
run->errnum = ASE_AWK_EIOIMPL; /* TODO: change the error code */
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -117,7 +117,7 @@ int ase_awk_readextio (
|
||||
run->awk, ASE_SIZEOF(ase_awk_extio_t));
|
||||
if (p == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -125,7 +125,7 @@ int ase_awk_readextio (
|
||||
if (p->name == ASE_NULL)
|
||||
{
|
||||
ASE_AWK_FREE (run->awk, p);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -147,7 +147,7 @@ int ase_awk_readextio (
|
||||
{
|
||||
ASE_AWK_FREE (run->awk, p->name);
|
||||
ASE_AWK_FREE (run->awk, p);
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -218,12 +218,11 @@ int ase_awk_readextio (
|
||||
break;
|
||||
}
|
||||
|
||||
n = handler (ASE_AWK_IO_READ, p,
|
||||
p->in.buf, ASE_COUNTOF(p->in.buf));
|
||||
n = handler (ASE_AWK_IO_READ, p, p->in.buf, ASE_COUNTOF(p->in.buf));
|
||||
if (n <= -1)
|
||||
{
|
||||
/* handler error. getline should return -1 */
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
@ -309,7 +308,7 @@ int ase_awk_readextio (
|
||||
|
||||
if (ase_awk_str_ccat (buf, c) == (ase_size_t)-1)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
@ -343,7 +342,7 @@ int ase_awk_readextio (
|
||||
nr = ase_awk_makeintval (run, lv + 1);
|
||||
if (nr == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
ret = -1;
|
||||
}
|
||||
else
|
||||
@ -409,7 +408,7 @@ int ase_awk_writeextio_str (
|
||||
if (handler == ASE_NULL)
|
||||
{
|
||||
/* no io handler provided */
|
||||
run->errnum = ASE_AWK_EIOIMPL; /* TODO: change the error code */
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -438,7 +437,7 @@ int ase_awk_writeextio_str (
|
||||
run->awk, ASE_SIZEOF(ase_awk_extio_t));
|
||||
if (p == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -446,7 +445,7 @@ int ase_awk_writeextio_str (
|
||||
if (p->name == ASE_NULL)
|
||||
{
|
||||
ASE_AWK_FREE (run->awk, p);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -465,7 +464,7 @@ int ase_awk_writeextio_str (
|
||||
{
|
||||
ASE_AWK_FREE (run->awk, p->name);
|
||||
ASE_AWK_FREE (run->awk, p);
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -504,7 +503,7 @@ int ase_awk_writeextio_str (
|
||||
|
||||
if (n <= -1)
|
||||
{
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -545,7 +544,7 @@ int ase_awk_flushextio (
|
||||
if (handler == ASE_NULL)
|
||||
{
|
||||
/* no io handler provided */
|
||||
run->errnum = ASE_AWK_EIOIMPL; /* TODO: change the error code */
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -559,7 +558,7 @@ int ase_awk_flushextio (
|
||||
|
||||
if (n <= -1)
|
||||
{
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -572,7 +571,7 @@ int ase_awk_flushextio (
|
||||
if (ok) return 0;
|
||||
|
||||
/* there is no corresponding extio for name */
|
||||
run->errnum = ASE_AWK_ENOSUCHIO;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIONONE, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -599,7 +598,7 @@ int ase_awk_nextextio_read (
|
||||
if (handler == ASE_NULL)
|
||||
{
|
||||
/* no io handler provided */
|
||||
run->errnum = ASE_AWK_EIOIMPL; /* TODO: change the error code */
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -615,7 +614,7 @@ int ase_awk_nextextio_read (
|
||||
/* something is totally wrong */
|
||||
ASE_AWK_ASSERT (run->awk,
|
||||
!"should never happen - cannot find the relevant extio entry");
|
||||
run->errnum = ASE_AWK_EINTERN;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EINTERN, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -628,8 +627,7 @@ int ase_awk_nextextio_read (
|
||||
n = handler (ASE_AWK_IO_NEXT, p, ASE_NULL, 0);
|
||||
if (n <= -1)
|
||||
{
|
||||
/* TODO: is this errnum correct? */
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -677,7 +675,7 @@ int ase_awk_nextextio_write (
|
||||
if (handler == ASE_NULL)
|
||||
{
|
||||
/* no io handler provided */
|
||||
run->errnum = ASE_AWK_EIOIMPL; /* TODO: change the error code */
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -694,7 +692,7 @@ int ase_awk_nextextio_write (
|
||||
ASE_AWK_ASSERT (run->awk,
|
||||
!"should never happen - cannot find the relevant extio entry");
|
||||
|
||||
run->errnum = ASE_AWK_EINTERN;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EINTERN, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -707,8 +705,20 @@ int ase_awk_nextextio_write (
|
||||
n = handler (ASE_AWK_IO_NEXT, p, ASE_NULL, 0);
|
||||
if (n <= -1)
|
||||
{
|
||||
/* TODO: is this errnum correct? */
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (p->out.eos)
|
||||
{
|
||||
/* no more streams. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
n = handler (ASE_AWK_IO_NEXT, p, ASE_NULL, 0);
|
||||
if (n <= -1)
|
||||
{
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -752,7 +762,7 @@ int ase_awk_closeextio_read (
|
||||
if (handler == ASE_NULL)
|
||||
{
|
||||
/* no io handler provided */
|
||||
run->errnum = ASE_AWK_EIOIMPL; /* TODO: change the error code */
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -769,7 +779,7 @@ int ase_awk_closeextio_read (
|
||||
if (handler (ASE_AWK_IO_CLOSE, p, ASE_NULL, 0) <= -1)
|
||||
{
|
||||
/* this is not a run-time error.*/
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -787,7 +797,7 @@ int ase_awk_closeextio_read (
|
||||
}
|
||||
|
||||
/* this is not a run-time error */
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -814,7 +824,7 @@ int ase_awk_closeextio_write (
|
||||
if (handler == ASE_NULL)
|
||||
{
|
||||
/* no io handler provided */
|
||||
run->errnum = ASE_AWK_EIOIMPL; /* TODO: change the error code */
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -831,7 +841,7 @@ int ase_awk_closeextio_write (
|
||||
if (handler (ASE_AWK_IO_CLOSE, p, ASE_NULL, 0) <= -1)
|
||||
{
|
||||
/* this is not a run-time error.*/
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -849,7 +859,7 @@ int ase_awk_closeextio_write (
|
||||
}
|
||||
|
||||
/* this is not a run-time error */
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -871,7 +881,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.*/
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -889,7 +899,7 @@ int ase_awk_closeextio (ase_awk_run_t* run, const ase_char_t* name)
|
||||
}
|
||||
|
||||
/* this is not a run-time error */
|
||||
run->errnum = ASE_AWK_EIOHANDLER;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: func.c,v 1.85 2006-12-17 14:56:06 bacon Exp $
|
||||
* $Id: func.c,v 1.86 2007-01-02 12:25:18 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <ase/awk/awk_i.h>
|
||||
@ -51,14 +51,14 @@ void* ase_awk_addbfn (
|
||||
|
||||
if (ase_awk_getbfn (awk, name, name_len) != ASE_NULL)
|
||||
{
|
||||
awk->errnum = ASE_AWK_EEXIST;
|
||||
ase_awk_seterror (awk, ASE_AWK_EEXIST, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
p = (ase_awk_bfn_t*) ASE_AWK_MALLOC (awk, ASE_SIZEOF(ase_awk_bfn_t));
|
||||
if (p == ASE_NULL)
|
||||
{
|
||||
awk->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_seterror (awk, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ void* ase_awk_addbfn (
|
||||
if (p->name.ptr == ASE_NULL)
|
||||
{
|
||||
ASE_AWK_FREE (awk, p);
|
||||
awk->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_seterror (awk, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -82,7 +82,7 @@ void* ase_awk_addbfn (
|
||||
{
|
||||
ASE_AWK_FREE (awk, p->name.ptr);
|
||||
ASE_AWK_FREE (awk, p);
|
||||
awk->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_seterror (awk, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
}
|
||||
@ -117,7 +117,7 @@ int ase_awk_delbfn (ase_awk_t* awk, const ase_char_t* name, ase_size_t name_len)
|
||||
pp = p;
|
||||
}
|
||||
|
||||
awk->errnum = ASE_AWK_ENOENT;
|
||||
ase_awk_seterror (awk, ASE_AWK_ENOENT, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -223,7 +223,7 @@ static int __bfn_close (
|
||||
}
|
||||
|
||||
n = ase_awk_closeextio (run, name);
|
||||
if (n == -1 && run->errnum != ASE_AWK_EIOHANDLER)
|
||||
if (n == -1 && run->errnum != ASE_AWK_EIOIMPL)
|
||||
{
|
||||
if (a0->type != ASE_AWK_VAL_STR)
|
||||
ASE_AWK_FREE (run->awk, name);
|
||||
@ -254,8 +254,8 @@ static int __flush_extio (
|
||||
n2 = ase_awk_flushextio (run, extio, name);
|
||||
if (n2 == -1)
|
||||
{
|
||||
if (run->errnum == ASE_AWK_EIOHANDLER) n = -1;
|
||||
else if (run->errnum == ASE_AWK_ENOSUCHIO)
|
||||
if (run->errnum == ASE_AWK_EIOIMPL) n = -1;
|
||||
else if (run->errnum == ASE_AWK_EIONONE)
|
||||
{
|
||||
if (n != 0) n = -2;
|
||||
}
|
||||
@ -284,13 +284,13 @@ static int __bfn_fflush (
|
||||
/* flush the console output */
|
||||
n = ase_awk_flushextio (run, ASE_AWK_OUT_CONSOLE, ASE_T(""));
|
||||
if (n == -1 &&
|
||||
run->errnum != ASE_AWK_EIOHANDLER &&
|
||||
run->errnum != ASE_AWK_ENOSUCHIO)
|
||||
run->errnum != ASE_AWK_EIOIMPL &&
|
||||
run->errnum != ASE_AWK_EIONONE)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* fflush() should return -1 on EIOHANDLER and ENOSUCHIO */
|
||||
/* fflush() should return -1 on EIOIMPL and EIONONE */
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: jni.c,v 1.43 2006-12-19 14:20:30 bacon Exp $
|
||||
* $Id: jni.c,v 1.44 2007-01-02 12:25:18 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
@ -1013,7 +1013,7 @@ static int __handle_bfn (
|
||||
* so clear it to prevent it from being thrown */
|
||||
if ((*env)->ExceptionOccurred (env))
|
||||
(*env)->ExceptionClear (env);
|
||||
ase_awk_setrunerrnum (run, ASE_AWK_EBFNIMPL);
|
||||
ase_awk_setrunerrnum (run, ASE_AWK_EBFNUSER);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1074,10 +1074,10 @@ static int __handle_bfn (
|
||||
(*env)->ExceptionDescribe (env);
|
||||
(*env)->ExceptionClear (env);
|
||||
(*env)->DeleteLocalRef (env, args);
|
||||
ase_awk_setrunerrnum (run, ASE_AWK_EBFNFAIL);
|
||||
ase_awk_setrunerrnum (run, ASE_AWK_EBFNIMPL);
|
||||
|
||||
// TODO:
|
||||
//ase_awk_setrunerror (run, ASE_AWK_EBFNFAIL, "EXCEPTION:....");
|
||||
//ase_awk_setrunerror (run, ASE_AWK_EBFNIMPL, "EXCEPTION:....");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1195,7 +1195,7 @@ static int __handle_bfn (
|
||||
else
|
||||
{
|
||||
(*env)->DeleteLocalRef (env, ret);
|
||||
ase_awk_setrunerrnum (run, ASE_AWK_EBFNIMPL);
|
||||
ase_awk_setrunerrnum (run, ASE_AWK_EBFNUSER);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: rec.c,v 1.11 2006-12-13 14:16:12 bacon Exp $
|
||||
* $Id: rec.c,v 1.12 2007-01-02 12:25:18 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <ase/awk/awk_i.h>
|
||||
@ -30,7 +30,8 @@ int ase_awk_setrec (
|
||||
if (ase_awk_str_ncpy (&run->inrec.line, str, len) == (ase_size_t)-1)
|
||||
{
|
||||
ase_awk_clrrec (run, ase_false);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -39,7 +40,7 @@ int ase_awk_setrec (
|
||||
if (v == ASE_NULL)
|
||||
{
|
||||
ase_awk_clrrec (run, ase_false);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -53,7 +54,7 @@ int ase_awk_setrec (
|
||||
{
|
||||
errnum = run->errnum;
|
||||
ase_awk_clrrec (run, ase_false);
|
||||
run->errnum = errnum;
|
||||
ase_awk_setrunerror (run, errnum, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -63,7 +64,7 @@ int ase_awk_setrec (
|
||||
{
|
||||
errnum = run->errnum;
|
||||
ase_awk_clrrec (run, ase_false);
|
||||
run->errnum = errnum;
|
||||
ase_awk_setrunerror (run, errnum, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -74,7 +75,7 @@ int ase_awk_setrec (
|
||||
if (v == ASE_NULL)
|
||||
{
|
||||
ase_awk_clrrec (run, ase_false);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -140,7 +141,7 @@ static int __split_record (ase_awk_run_t* run)
|
||||
{
|
||||
if (fs_free != ASE_NULL)
|
||||
ASE_AWK_FREE (run->awk, fs_free);
|
||||
run->errnum = errnum;
|
||||
ase_awk_setrunerror (run, errnum, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -169,7 +170,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);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -198,7 +199,7 @@ static int __split_record (ase_awk_run_t* run)
|
||||
{
|
||||
if (fs_free != ASE_NULL)
|
||||
ASE_AWK_FREE (run->awk, fs_free);
|
||||
run->errnum = errnum;
|
||||
ase_awk_setrunerror (run, errnum, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -214,7 +215,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);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -231,7 +232,7 @@ static int __split_record (ase_awk_run_t* run)
|
||||
v = ase_awk_makeintval (run, (ase_long_t)nflds);
|
||||
if (v == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -309,7 +310,8 @@ static int __recomp_record_fields (
|
||||
ASE_SIZEOF(*run->inrec.flds) * max);
|
||||
if (tmp == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -319,7 +321,8 @@ static int __recomp_record_fields (
|
||||
run->awk, ASE_SIZEOF(*run->inrec.flds) * max);
|
||||
if (tmp == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
if (run->inrec.flds != ASE_NULL)
|
||||
@ -347,7 +350,8 @@ static int __recomp_record_fields (
|
||||
run->global.ofs.ptr,
|
||||
run->global.ofs.len) == (ase_size_t)-1)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -364,14 +368,16 @@ static int __recomp_record_fields (
|
||||
if (ase_awk_str_ncat (
|
||||
&run->inrec.line, str, len) == (ase_size_t)-1)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
tmp = ase_awk_makestrval (run, str,len);
|
||||
if (tmp == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -392,7 +398,8 @@ static int __recomp_record_fields (
|
||||
if (ase_awk_str_cat (
|
||||
&run->inrec.line, ASE_T("")) == (ase_size_t)-1)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -418,7 +425,8 @@ static int __recomp_record_fields (
|
||||
if (ase_awk_str_ncat (&run->inrec.line,
|
||||
tmp->buf, tmp->len) == (ase_size_t)-1)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -431,7 +439,7 @@ static int __recomp_record_fields (
|
||||
v = ase_awk_makeintval (run, (ase_long_t)max);
|
||||
if (v == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
249
ase/awk/run.c
249
ase/awk/run.c
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: run.c,v 1.315 2007-01-01 15:10:37 bacon Exp $
|
||||
* $Id: run.c,v 1.316 2007-01-02 12:24:45 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <ase/awk/awk_i.h>
|
||||
@ -27,12 +27,6 @@ enum exit_level_t
|
||||
EXIT_ABORT
|
||||
};
|
||||
|
||||
#define PANIC(run,code) \
|
||||
do { (run)->errnum = (code); return ASE_NULL; } while (0)
|
||||
|
||||
#define PANIC_I(run,code) \
|
||||
do { (run)->errnum = (code); return -1; } while (0)
|
||||
|
||||
#define DEFAULT_CONVFMT ASE_T("%.6g")
|
||||
#define DEFAULT_OFMT ASE_T("%.6g")
|
||||
#define DEFAULT_OFS ASE_T(" ")
|
||||
@ -279,7 +273,7 @@ static int __set_global (
|
||||
idx != ASE_AWK_GLOBAL_ARGV)
|
||||
{
|
||||
/* TODO: better error code */
|
||||
run->errnum = ASE_AWK_ESCALARTOMAP;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ESCALARTOMAP, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -297,7 +291,7 @@ static int __set_global (
|
||||
if (convfmt_ptr[i] == ASE_T('\0'))
|
||||
{
|
||||
ASE_AWK_FREE (run->awk, convfmt_ptr);
|
||||
run->errnum = ASE_AWK_ECONVFMTCHAR;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ECONVFMTCHAR, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -397,7 +391,7 @@ static int __set_global (
|
||||
if (ofmt_ptr[i] == ASE_T('\0'))
|
||||
{
|
||||
ASE_AWK_FREE (run->awk, ofmt_ptr);
|
||||
run->errnum = ASE_AWK_ECONVFMTCHAR;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ECONVFMTCHAR, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -522,7 +516,7 @@ int ase_awk_setfilename (
|
||||
tmp = ase_awk_makestrval (run, name, len);
|
||||
if (tmp == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -548,7 +542,7 @@ int ase_awk_setofilename (
|
||||
tmp = ase_awk_makestrval (run, name, len);
|
||||
if (tmp == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -827,6 +821,8 @@ static int __init_run (
|
||||
run->fcache_count = 0;
|
||||
|
||||
run->errnum = ASE_AWK_ENOERR;
|
||||
run->errlin = 0;
|
||||
run->errmsg[0] = ASE_T('\0');
|
||||
|
||||
run->inrec.buf_pos = 0;
|
||||
run->inrec.buf_len = 0;
|
||||
@ -1050,7 +1046,7 @@ static int __build_runarg (
|
||||
v_argv = ase_awk_makemapval (run);
|
||||
if (v_argv == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
ase_awk_refupval (run, v_argv);
|
||||
@ -1064,7 +1060,7 @@ static int __build_runarg (
|
||||
if (v_tmp == ASE_NULL)
|
||||
{
|
||||
ase_awk_refdownval (run, v_argv);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1088,7 +1084,7 @@ static int __build_runarg (
|
||||
* map will be freeed when v_argv is freed */
|
||||
ase_awk_refdownval (run, v_argv);
|
||||
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -1098,7 +1094,7 @@ static int __build_runarg (
|
||||
if (v_argc == ASE_NULL)
|
||||
{
|
||||
ase_awk_refdownval (run, v_argv);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1153,7 +1149,7 @@ static int __update_fnr (ase_awk_run_t* run, ase_size_t fnr)
|
||||
tmp = ase_awk_makeintval (run, fnr);
|
||||
if (tmp == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1202,7 +1198,7 @@ static int __set_globals_to_default (ase_awk_run_t* run)
|
||||
tmp = ase_awk_makestrval0 (run, gtab[i].str);
|
||||
if (tmp == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -1255,7 +1251,8 @@ static int __run_main (
|
||||
* the successful __raw_push. it is ok because
|
||||
* the values pushed so far are all ase_awk_val_nil */
|
||||
run->stack_top = saved_stack_top;
|
||||
PANIC_I (run, ASE_AWK_ENOMEM);
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1328,7 +1325,10 @@ static int __run_main (
|
||||
}
|
||||
__cleanup_globals (run);
|
||||
run->stack_top = saved_stack_top;
|
||||
PANIC_I (run, ASE_AWK_ENOMEM);
|
||||
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
tmp->type = ASE_AWK_NDE_STR;
|
||||
@ -1347,7 +1347,10 @@ static int __run_main (
|
||||
}
|
||||
__cleanup_globals (run);
|
||||
run->stack_top = saved_stack_top;
|
||||
PANIC_I (run, ASE_AWK_ENOMEM);
|
||||
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
tmp->len = runarg[i].len;
|
||||
@ -1388,7 +1391,10 @@ static int __run_main (
|
||||
/* pops off global variables in a decent way */
|
||||
__cleanup_globals (run);
|
||||
__raw_pop_times (run, run->awk->tree.nglobals);
|
||||
PANIC_I (run, ASE_AWK_ENOMEM);
|
||||
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (__raw_push(run,(void*)saved_stack_top) == -1)
|
||||
@ -1396,7 +1402,10 @@ static int __run_main (
|
||||
run->stack_top = saved_stack_top;
|
||||
__cleanup_globals (run);
|
||||
__raw_pop_times (run, run->awk->tree.nglobals);
|
||||
PANIC_I (run, ASE_AWK_ENOMEM);
|
||||
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* secure space for a return value */
|
||||
@ -1405,7 +1414,10 @@ static int __run_main (
|
||||
run->stack_top = saved_stack_top;
|
||||
__cleanup_globals (run);
|
||||
__raw_pop_times (run, run->awk->tree.nglobals);
|
||||
PANIC_I (run, ASE_AWK_ENOMEM);
|
||||
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* secure space for nargs */
|
||||
@ -1414,7 +1426,10 @@ static int __run_main (
|
||||
run->stack_top = saved_stack_top;
|
||||
__cleanup_globals (run);
|
||||
__raw_pop_times (run, run->awk->tree.nglobals);
|
||||
PANIC_I (run, ASE_AWK_ENOMEM);
|
||||
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
run->stack_base = saved_stack_top;
|
||||
@ -1510,8 +1525,7 @@ static int __run_main (
|
||||
|
||||
static int __run_pattern_blocks (ase_awk_run_t* run)
|
||||
{
|
||||
// ase_ssize_t n;
|
||||
ase_bool_t need_to_close = ase_false;
|
||||
int n;
|
||||
|
||||
run->inrec.buf_pos = 0;
|
||||
run->inrec.buf_len = 0;
|
||||
@ -1521,65 +1535,21 @@ static int __run_pattern_blocks (ase_awk_run_t* run)
|
||||
while (run->exit_level != EXIT_GLOBAL &&
|
||||
run->exit_level != EXIT_ABORT)
|
||||
{
|
||||
int x;
|
||||
|
||||
run->exit_level = EXIT_NONE;
|
||||
|
||||
x = __read_record (run);
|
||||
if (x == -1)
|
||||
{
|
||||
int saved = run->errnum;
|
||||
|
||||
/* don't care about the result of input close */
|
||||
// ase_awk_closeextio_read (
|
||||
// run, ASE_AWK_IN_CONSOLE, ASE_T(""));
|
||||
|
||||
run->errnum = saved;
|
||||
return -1;
|
||||
}
|
||||
|
||||
need_to_close = ase_true;
|
||||
if (x == 0) break; /* end of input */
|
||||
n = __read_record (run);
|
||||
if (n == -1) return -1; /* error */
|
||||
if (n == 0) break; /* end of input */
|
||||
|
||||
__update_fnr (run, run->global.fnr + 1);
|
||||
|
||||
if (run->awk->tree.chain != ASE_NULL)
|
||||
{
|
||||
if (__run_pattern_block_chain (
|
||||
run, run->awk->tree.chain) == -1)
|
||||
{
|
||||
int saved = run->errnum;
|
||||
|
||||
// ase_awk_closeextio_read (
|
||||
// run, ASE_AWK_IN_CONSOLE, ASE_T(""));
|
||||
|
||||
run->errnum = saved;
|
||||
return -1;
|
||||
}
|
||||
run, run->awk->tree.chain) == -1) return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* In case of getline, the code would make getline return -1,
|
||||
* and make this function return 0 after having checked
|
||||
* if closextio has returned -1 and errnum has been set to
|
||||
* ASE_AWK_EIOHANDLER. But this part of the code ends the input for
|
||||
* the implicit pattern-block loop, which is totally different
|
||||
* from getline. so it returns -1 as long as closeextio returns
|
||||
* -1 regardless of the value of errnum. */
|
||||
if (need_to_close)
|
||||
{
|
||||
/* TODO: do i have to close exito here...
|
||||
n = ase_awk_closeextio_read (
|
||||
run, ASE_AWK_IN_CONSOLE, ASE_T(""));
|
||||
if (n == -1)
|
||||
{
|
||||
if (run->errnum == ASE_AWK_EIOHANDLER)
|
||||
PANIC_I (run, ASE_AWK_ECINCL);
|
||||
else return -1;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1705,7 +1675,7 @@ static int __run_block (ase_awk_run_t* run, ase_awk_nde_blk_t* nde)
|
||||
if (run->depth.max.block > 0 &&
|
||||
run->depth.cur.block >= run->depth.max.block)
|
||||
{
|
||||
run->errnum = ASE_AWK_ERECUR;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ERECUR, nde->line, ASE_NULL);
|
||||
return -1;;
|
||||
}
|
||||
|
||||
@ -1738,7 +1708,7 @@ static int __run_block0 (ase_awk_run_t* run, ase_awk_nde_blk_t* nde)
|
||||
{
|
||||
ase_awk_refdownval (run, run->inrec.d0);
|
||||
|
||||
if (run->errnum == ASE_AWK_EIOHANDLER)
|
||||
if (run->errnum == ASE_AWK_EIOIMPL)
|
||||
{
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ECOUTDT, nde->line, ASE_NULL);
|
||||
@ -1753,7 +1723,7 @@ static int __run_block0 (ase_awk_run_t* run, ase_awk_nde_blk_t* nde)
|
||||
{
|
||||
ase_awk_refdownval (run, run->inrec.d0);
|
||||
|
||||
if (run->errnum == ASE_AWK_EIOHANDLER)
|
||||
if (run->errnum == ASE_AWK_EIOIMPL)
|
||||
{
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ECOUTDT, nde->line, ASE_NULL);
|
||||
@ -2308,8 +2278,9 @@ static int __run_nextinfile (ase_awk_run_t* run, ase_awk_nde_nextfile_t* nde)
|
||||
n = ase_awk_nextextio_read (run, ASE_AWK_IN_CONSOLE, ASE_T(""));
|
||||
if (n == -1)
|
||||
{
|
||||
if (run->errnum == ASE_AWK_EIOHANDLER)
|
||||
if (run->errnum == ASE_AWK_EIOIMPL)
|
||||
run->errnum = ASE_AWK_ECINNX;
|
||||
|
||||
ase_awk_setrunerror (
|
||||
run, run->errnum, nde->line, ASE_NULL);
|
||||
return -1;
|
||||
@ -2341,8 +2312,9 @@ static int __run_nextoutfile (ase_awk_run_t* run, ase_awk_nde_nextfile_t* nde)
|
||||
n = ase_awk_nextextio_write (run, ASE_AWK_OUT_CONSOLE, ASE_T(""));
|
||||
if (n == -1)
|
||||
{
|
||||
if (run->errnum == ASE_AWK_EIOHANDLER)
|
||||
if (run->errnum == ASE_AWK_EIOIMPL)
|
||||
run->errnum = ASE_AWK_ECOUTNX;
|
||||
|
||||
ase_awk_setrunerror (
|
||||
run, run->errnum, nde->line, ASE_NULL);
|
||||
return -1;
|
||||
@ -2683,7 +2655,7 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde)
|
||||
run, nde->out_type, dst,
|
||||
ASE_AWK_STR_BUF(&run->inrec.line),
|
||||
ASE_AWK_STR_LEN(&run->inrec.line));
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOHANDLER*/)
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOIMPL*/)
|
||||
{
|
||||
if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out);
|
||||
ase_awk_setrunerror (
|
||||
@ -2713,7 +2685,7 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde)
|
||||
run, nde->out_type, dst,
|
||||
run->global.ofs.ptr,
|
||||
run->global.ofs.len);
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOHANDLER*/)
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOIMPL*/)
|
||||
{
|
||||
if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out);
|
||||
ase_awk_setrunerror (
|
||||
@ -2733,7 +2705,7 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde)
|
||||
ase_awk_refupval (run, v);
|
||||
|
||||
n = ase_awk_writeextio_val (run, nde->out_type, dst, v);
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOHANDLER*/)
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOIMPL*/)
|
||||
{
|
||||
if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out);
|
||||
ase_awk_refdownval (run, v);
|
||||
@ -2750,7 +2722,7 @@ static int __run_print (ase_awk_run_t* run, ase_awk_nde_print_t* nde)
|
||||
n = ase_awk_writeextio_str (
|
||||
run, nde->out_type, dst,
|
||||
run->global.ors.ptr, run->global.ors.len);
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOHANDLER*/)
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOIMPL*/)
|
||||
{
|
||||
if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out);
|
||||
ase_awk_setrunerror (run, run->errnum, nde->line, ASE_NULL);
|
||||
@ -2857,7 +2829,7 @@ static int __run_printf (ase_awk_run_t* run, ase_awk_nde_print_t* nde)
|
||||
/* the remaining arguments are ignored as the format cannot
|
||||
* contain any % characters */
|
||||
n = ase_awk_writeextio_val (run, nde->out_type, dst, v);
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOHANDLER*/)
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOIMPL*/)
|
||||
{
|
||||
if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out);
|
||||
ase_awk_refdownval (run, v);
|
||||
@ -2903,7 +2875,7 @@ static int __formatted_output (
|
||||
if (ptr == ASE_NULL) return -1;
|
||||
|
||||
n = ase_awk_writeextio_str (run, out_type, dst, ptr, len);
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOHANDLER*/) return -1;
|
||||
if (n < 0 /*&& run->errnum != ASE_AWK_EIOIMPL*/) return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -3280,6 +3252,7 @@ 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 (run, run->errnum, var->line, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
ase_awk_refdownval (run, tmp);
|
||||
@ -3363,7 +3336,12 @@ static ase_awk_val_t* __do_assignment_pos (
|
||||
{
|
||||
str = ase_awk_valtostr (
|
||||
run, val, ASE_AWK_VALTOSTR_CLEAR, ASE_NULL, &len);
|
||||
if (str == ASE_NULL) return ASE_NULL;
|
||||
if (str == ASE_NULL)
|
||||
{
|
||||
ase_awk_setrunerror (
|
||||
run, run->errnum, pos->line, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
}
|
||||
|
||||
n = ase_awk_setrec (run, (ase_size_t)lv, str, len);
|
||||
@ -3836,12 +3814,9 @@ static int __cmp_int_str (
|
||||
}
|
||||
}
|
||||
|
||||
str = ase_awk_valtostr (run, left, ASE_AWK_VALTOSTR_CLEAR, ASE_NULL, &len);
|
||||
if (str == ASE_NULL)
|
||||
{
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return CMP_ERROR;
|
||||
}
|
||||
str = ase_awk_valtostr (
|
||||
run, left, ASE_AWK_VALTOSTR_CLEAR, ASE_NULL, &len);
|
||||
if (str == ASE_NULL) return CMP_ERROR;
|
||||
|
||||
if (run->global.ignorecase)
|
||||
{
|
||||
@ -3910,12 +3885,9 @@ static int __cmp_real_str (
|
||||
return 0;
|
||||
}
|
||||
|
||||
str = ase_awk_valtostr (run, left, ASE_AWK_VALTOSTR_CLEAR, ASE_NULL, &len);
|
||||
if (str == ASE_NULL)
|
||||
{
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return CMP_ERROR;
|
||||
}
|
||||
str = ase_awk_valtostr (
|
||||
run, left, ASE_AWK_VALTOSTR_CLEAR, ASE_NULL, &len);
|
||||
if (str == ASE_NULL) return CMP_ERROR;
|
||||
|
||||
if (run->global.ignorecase)
|
||||
{
|
||||
@ -5275,7 +5247,7 @@ static ase_awk_val_t* __eval_afn (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
||||
if (pair == ASE_NULL)
|
||||
{
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOSUCHFN, nde->line, ASE_NULL);
|
||||
run, ASE_AWK_EFNNONE, nde->line, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -6038,13 +6010,15 @@ static ase_awk_val_t* __eval_getline (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
||||
|
||||
if (n < 0)
|
||||
{
|
||||
if (run->errnum != ASE_AWK_EIOHANDLER)
|
||||
if (run->errnum != ASE_AWK_EIOIMPL)
|
||||
{
|
||||
ase_awk_str_close (&buf);
|
||||
ase_awk_setrunerror (
|
||||
run, run->errnum, nde->line, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
/* if run->errnum == ASE_AWK_EIOHANDLER,
|
||||
/* if run->errnum == ASE_AWK_EIOIMPL,
|
||||
* make getline return -1 */
|
||||
n = -1;
|
||||
}
|
||||
@ -6158,11 +6132,10 @@ static int __read_record (ase_awk_run_t* run)
|
||||
run, ASE_AWK_IN_CONSOLE, ASE_T(""), &run->inrec.line);
|
||||
if (n < 0)
|
||||
{
|
||||
int errnum = run->errnum;
|
||||
int saved = run->errnum;
|
||||
ase_awk_clrrec (run, ase_false);
|
||||
run->errnum =
|
||||
(errnum == ASE_AWK_EIOHANDLER)?
|
||||
ASE_AWK_ECINDT: errnum;
|
||||
if (saved == ASE_AWK_EIOIMPL) saved = ASE_AWK_ECINDT;
|
||||
ase_awk_setrunerror (run, saved, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
/*
|
||||
@ -6221,7 +6194,7 @@ static int __shorten_record (ase_awk_run_t* run, ase_size_t nflds)
|
||||
if (ase_awk_str_open (&tmp,
|
||||
ASE_AWK_STR_LEN(&run->inrec.line), run->awk) == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -6232,7 +6205,7 @@ static int __shorten_record (ase_awk_run_t* run, ase_size_t nflds)
|
||||
if (ofs_free != ASE_NULL)
|
||||
ASE_AWK_FREE (run->awk, ofs_free);
|
||||
if (nflds > 1) ase_awk_refdownval (run, v);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -6243,7 +6216,7 @@ static int __shorten_record (ase_awk_run_t* run, ase_size_t nflds)
|
||||
if (ofs_free != ASE_NULL)
|
||||
ASE_AWK_FREE (run->awk, ofs_free);
|
||||
if (nflds > 1) ase_awk_refdownval (run, v);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -6255,7 +6228,7 @@ static int __shorten_record (ase_awk_run_t* run, ase_size_t nflds)
|
||||
run, ASE_AWK_STR_BUF(&tmp), ASE_AWK_STR_LEN(&tmp));
|
||||
if (v == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -6296,6 +6269,8 @@ static ase_char_t* __idxnde_to_str (
|
||||
if (str == ASE_NULL)
|
||||
{
|
||||
ase_awk_refdownval (run, idx);
|
||||
ase_awk_setrunerror (
|
||||
run, run->errnum, nde->line, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -6342,6 +6317,8 @@ static ase_char_t* __idxnde_to_str (
|
||||
{
|
||||
ase_awk_refdownval (run, idx);
|
||||
ase_awk_str_close (&idxstr);
|
||||
ase_awk_setrunerror (
|
||||
run, run->errnum, nde->line, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -6370,7 +6347,7 @@ ase_char_t* ase_awk_format (
|
||||
do { \
|
||||
if (ase_awk_str_ccat (out, (c)) == -1) \
|
||||
{ \
|
||||
run->errnum = ASE_AWK_ENOMEM; \
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL); \
|
||||
return ASE_NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
@ -6379,7 +6356,7 @@ ase_char_t* ase_awk_format (
|
||||
do { \
|
||||
if (ase_awk_str_ccat (fbu, (c)) == -1) \
|
||||
{ \
|
||||
run->errnum = ASE_AWK_ENOMEM; \
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL); \
|
||||
return ASE_NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
@ -6448,7 +6425,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = ase_awk_getarg (run, stack_arg_idx);
|
||||
@ -6459,7 +6436,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = val;
|
||||
@ -6498,7 +6475,7 @@ ase_char_t* ase_awk_format (
|
||||
GROW (&run->format.tmp);
|
||||
if (run->format.tmp.ptr == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -6551,7 +6528,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = ase_awk_getarg (run, stack_arg_idx);
|
||||
@ -6562,7 +6539,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = val;
|
||||
@ -6601,7 +6578,7 @@ ase_char_t* ase_awk_format (
|
||||
GROW (&run->format.tmp);
|
||||
if (run->format.tmp.ptr == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -6671,7 +6648,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = ase_awk_getarg (run, stack_arg_idx);
|
||||
@ -6682,7 +6659,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = val;
|
||||
@ -6723,7 +6700,7 @@ ase_char_t* ase_awk_format (
|
||||
GROW (&run->format.tmp);
|
||||
if (run->format.tmp.ptr == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -6758,7 +6735,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = ase_awk_getarg (run, stack_arg_idx);
|
||||
@ -6769,7 +6746,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = val;
|
||||
@ -6801,7 +6778,7 @@ ase_char_t* ase_awk_format (
|
||||
GROW (&run->format.tmp);
|
||||
if (run->format.tmp.ptr == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -6829,7 +6806,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = ase_awk_getarg (run, stack_arg_idx);
|
||||
@ -6840,7 +6817,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = val;
|
||||
@ -6881,7 +6858,7 @@ ase_char_t* ase_awk_format (
|
||||
else
|
||||
{
|
||||
ase_awk_refdownval (run, v);
|
||||
run->errnum = ASE_AWK_EVALTYPE;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EVALTYPE, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -6895,7 +6872,7 @@ ase_char_t* ase_awk_format (
|
||||
if (ase_awk_str_ccat (out, ASE_T(' ')) == -1)
|
||||
{
|
||||
ase_awk_refdownval (run, v);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
width--;
|
||||
@ -6907,7 +6884,7 @@ ase_char_t* ase_awk_format (
|
||||
if (ase_awk_str_ccat (out, ch) == -1)
|
||||
{
|
||||
ase_awk_refdownval (run, v);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
}
|
||||
@ -6919,7 +6896,7 @@ ase_char_t* ase_awk_format (
|
||||
if (ase_awk_str_ccat (out, ASE_T(' ')) == -1)
|
||||
{
|
||||
ase_awk_refdownval (run, v);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
width--;
|
||||
@ -6938,7 +6915,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = ase_awk_getarg (run, stack_arg_idx);
|
||||
@ -6949,7 +6926,7 @@ ase_char_t* ase_awk_format (
|
||||
{
|
||||
if (stack_arg_idx >= nargs_on_stack)
|
||||
{
|
||||
run->errnum = ASE_AWK_EFMTARG;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTARG, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
v = val;
|
||||
@ -6977,7 +6954,7 @@ ase_char_t* ase_awk_format (
|
||||
if (v == val)
|
||||
{
|
||||
ase_awk_refdownval (run, v);
|
||||
run->errnum = ASE_AWK_EFMTCONV;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EFMTCNV, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -7004,7 +6981,7 @@ ase_char_t* ase_awk_format (
|
||||
if (str_free != ASE_NULL)
|
||||
ASE_AWK_FREE (run->awk, str_free);
|
||||
ase_awk_refdownval (run, v);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
width--;
|
||||
@ -7018,7 +6995,7 @@ ase_char_t* ase_awk_format (
|
||||
if (str_free != ASE_NULL)
|
||||
ASE_AWK_FREE (run->awk, str_free);
|
||||
ase_awk_refdownval (run, v);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
}
|
||||
@ -7032,7 +7009,7 @@ ase_char_t* ase_awk_format (
|
||||
if (ase_awk_str_ccat (out, ASE_T(' ')) == -1)
|
||||
{
|
||||
ase_awk_refdownval (run, v);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
width--;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: val.c,v 1.101 2006-12-24 17:21:24 bacon Exp $
|
||||
* $Id: val.c,v 1.102 2007-01-02 12:25:18 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <ase/awk/awk_i.h>
|
||||
@ -470,7 +470,7 @@ ase_char_t* ase_awk_valtostr (
|
||||
ASE_T("ERROR: WRONG VALUE TYPE [%d] in ase_awk_valtostr\n"),
|
||||
v->type);
|
||||
|
||||
run->errnum = ASE_AWK_EVALTYPE;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EVALTYPE, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -484,7 +484,7 @@ static ase_char_t* __str_to_str (
|
||||
tmp = ase_awk_strxdup (run->awk, str, str_len);
|
||||
if (tmp == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -499,7 +499,7 @@ static ase_char_t* __str_to_str (
|
||||
n = ase_awk_str_ncat (buf, str, str_len);
|
||||
if (n == (ase_size_t)-1)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -526,7 +526,8 @@ static ase_char_t* __val_int_to_str (
|
||||
run->awk, 2 * ASE_SIZEOF(ase_char_t));
|
||||
if (tmp == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -540,7 +541,8 @@ static ase_char_t* __val_int_to_str (
|
||||
if (opt & ASE_AWK_VALTOSTR_CLEAR) ase_awk_str_clear (buf);
|
||||
if (ase_awk_str_cat (buf, ASE_T("0")) == (ase_size_t)-1)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (
|
||||
run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -559,7 +561,7 @@ static ase_char_t* __val_int_to_str (
|
||||
run->awk, (l + 1) * ASE_SIZEOF(ase_char_t));
|
||||
if (tmp == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -577,7 +579,7 @@ static ase_char_t* __val_int_to_str (
|
||||
if (ase_awk_str_nccat (
|
||||
buf, ASE_T(' '), l) == (ase_size_t)-1)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
}
|
||||
@ -623,14 +625,14 @@ static ase_char_t* __val_real_to_str (
|
||||
|
||||
if (ase_awk_str_open (&out, 256, run->awk) == ASE_NULL)
|
||||
{
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
if (ase_awk_str_open (&fbu, 256, run->awk) == ASE_NULL)
|
||||
{
|
||||
ase_awk_str_close (&out);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -657,7 +659,7 @@ static ase_char_t* __val_real_to_str (
|
||||
{
|
||||
ase_awk_str_close (&fbu);
|
||||
ase_awk_str_close (&out);
|
||||
run->errnum = ASE_AWK_ENOMEM;
|
||||
ase_awk_setrunerror (run, ASE_AWK_ENOMEM, 0, ASE_NULL);
|
||||
return ASE_NULL;
|
||||
}
|
||||
|
||||
@ -725,7 +727,7 @@ int ase_awk_valtonum (
|
||||
v->type);
|
||||
#endif
|
||||
|
||||
run->errnum = ASE_AWK_EVALTYPE;
|
||||
ase_awk_setrunerror (run, ASE_AWK_EVALTYPE, 0, ASE_NULL);
|
||||
return -1; /* error */
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user