*** empty log message ***
This commit is contained in:
parent
f25d2f88d5
commit
2a4e4341bf
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: awk.h,v 1.211 2007-03-19 15:25:50 bacon Exp $
|
* $Id: awk.h,v 1.212 2007-03-20 10:44:44 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -229,16 +229,6 @@ enum
|
|||||||
ASE_AWK_ESOUTCL,
|
ASE_AWK_ESOUTCL,
|
||||||
ASE_AWK_ESOUTWR,
|
ASE_AWK_ESOUTWR,
|
||||||
|
|
||||||
ASE_AWK_ECINOP,
|
|
||||||
ASE_AWK_ECINCL,
|
|
||||||
ASE_AWK_ECINNX,
|
|
||||||
ASE_AWK_ECINRD,
|
|
||||||
|
|
||||||
ASE_AWK_ECOUTOP,
|
|
||||||
ASE_AWK_ECOUTCL,
|
|
||||||
ASE_AWK_ECOUTNX,
|
|
||||||
ASE_AWK_ECOUTWR,
|
|
||||||
|
|
||||||
ASE_AWK_ELXCHR, /* lexer came accross an wrong character */
|
ASE_AWK_ELXCHR, /* lexer came accross an wrong character */
|
||||||
ASE_AWK_ELXUNG, /* lexer failed to unget a character */
|
ASE_AWK_ELXUNG, /* lexer failed to unget a character */
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: err.c,v 1.95 2007-03-19 15:25:50 bacon Exp $
|
* $Id: err.c,v 1.96 2007-03-20 10:44:44 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -46,16 +46,6 @@ static const ase_char_t* __geterrstr (int errnum)
|
|||||||
ASE_T("cannot close source output"),
|
ASE_T("cannot close source output"),
|
||||||
ASE_T("cannot write source output"),
|
ASE_T("cannot write source output"),
|
||||||
|
|
||||||
ASE_T("cannot open console for read"),
|
|
||||||
ASE_T("cannot close console for read"),
|
|
||||||
ASE_T("cannot switch to next console for read"),
|
|
||||||
ASE_T("cannot read from console"),
|
|
||||||
|
|
||||||
ASE_T("cannot open console for write"),
|
|
||||||
ASE_T("cannot close console for write"),
|
|
||||||
ASE_T("cannot switch to next console for write"),
|
|
||||||
ASE_T("cannot write to console"),
|
|
||||||
|
|
||||||
ASE_T("invalid character '%.*s'"),
|
ASE_T("invalid character '%.*s'"),
|
||||||
ASE_T("cannot unget character"),
|
ASE_T("cannot unget character"),
|
||||||
|
|
||||||
|
116
ase/awk/extio.c
116
ase/awk/extio.c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: extio.c,v 1.77 2007-03-19 15:25:50 bacon Exp $
|
* $Id: extio.c,v 1.78 2007-03-20 10:44:44 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -100,7 +100,7 @@ int ase_awk_readextio (
|
|||||||
if (handler == ASE_NULL)
|
if (handler == ASE_NULL)
|
||||||
{
|
{
|
||||||
/* no io handler provided */
|
/* no io handler provided */
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOUSER);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,7 +144,7 @@ int ase_awk_readextio (
|
|||||||
p->in.eof = ase_false;
|
p->in.eof = ase_false;
|
||||||
p->in.eos = ase_false;
|
p->in.eos = ase_false;
|
||||||
|
|
||||||
run->errnum = ASE_AWK_ENOERR;
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOERR);
|
||||||
|
|
||||||
n = handler (ASE_AWK_IO_OPEN, p, ASE_NULL, 0);
|
n = handler (ASE_AWK_IO_OPEN, p, ASE_NULL, 0);
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
@ -152,12 +152,12 @@ run->errnum = ASE_AWK_ENOERR;
|
|||||||
ASE_AWK_FREE (run->awk, p->name);
|
ASE_AWK_FREE (run->awk, p->name);
|
||||||
ASE_AWK_FREE (run->awk, p);
|
ASE_AWK_FREE (run->awk, p);
|
||||||
|
|
||||||
if (run->errnum == ASE_AWK_ENOERR)
|
if (run->errnum == ASE_AWK_ENOERR)
|
||||||
{
|
{
|
||||||
/* if the error number has not been set by the user */
|
/* if the error number has not been
|
||||||
ase_awk_setrunerror (
|
* set by the user handler */
|
||||||
run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOIMPL);
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -227,16 +227,19 @@ if (run->errnum == ASE_AWK_ENOERR)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
run->errnum = ASE_AWK_ENOERR;
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOERR);
|
||||||
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)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
/* handler error. getline should return -1 */
|
if (run->errnum == ASE_AWK_ENOERR)
|
||||||
if (run->errnum == ASE_AWK_ENOERR)
|
{
|
||||||
{
|
/* if the error number has not been
|
||||||
ase_awk_setrunerror (
|
* set by the user handler */
|
||||||
run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOIMPL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = -1;
|
ret = -1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -434,7 +437,7 @@ int ase_awk_writeextio_str (
|
|||||||
if (handler == ASE_NULL)
|
if (handler == ASE_NULL)
|
||||||
{
|
{
|
||||||
/* no io handler provided */
|
/* no io handler provided */
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOUSER);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -487,13 +490,16 @@ int ase_awk_writeextio_str (
|
|||||||
p->out.eof = ase_false;
|
p->out.eof = ase_false;
|
||||||
p->out.eos = ase_false;
|
p->out.eos = ase_false;
|
||||||
|
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOERR);
|
||||||
n = handler (ASE_AWK_IO_OPEN, p, ASE_NULL, 0);
|
n = handler (ASE_AWK_IO_OPEN, p, ASE_NULL, 0);
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
ASE_AWK_FREE (run->awk, p->name);
|
ASE_AWK_FREE (run->awk, p->name);
|
||||||
ASE_AWK_FREE (run->awk, p);
|
ASE_AWK_FREE (run->awk, p);
|
||||||
ase_awk_setrunerror (
|
|
||||||
run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
if (run->errnum == ASE_AWK_ENOERR)
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOIMPL);
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -528,12 +534,13 @@ int ase_awk_writeextio_str (
|
|||||||
|
|
||||||
while (len > 0)
|
while (len > 0)
|
||||||
{
|
{
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOERR);
|
||||||
n = handler (ASE_AWK_IO_WRITE, p, str, len);
|
n = handler (ASE_AWK_IO_WRITE, p, str, len);
|
||||||
|
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror (
|
if (run->errnum == ASE_AWK_ENOERR)
|
||||||
run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOIMPL);
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -571,7 +578,7 @@ int ase_awk_flushextio (
|
|||||||
if (handler == ASE_NULL)
|
if (handler == ASE_NULL)
|
||||||
{
|
{
|
||||||
/* no io handler provided */
|
/* no io handler provided */
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOUSER);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -579,14 +586,15 @@ int ase_awk_flushextio (
|
|||||||
while (p != ASE_NULL)
|
while (p != ASE_NULL)
|
||||||
{
|
{
|
||||||
if (p->type == (extio_type | extio_mask) &&
|
if (p->type == (extio_type | extio_mask) &&
|
||||||
(name == ASE_NULL || ase_strcmp (p->name, name) == 0))
|
(name == ASE_NULL || ase_strcmp(p->name,name) == 0))
|
||||||
{
|
{
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOERR);
|
||||||
n = handler (ASE_AWK_IO_FLUSH, p, ASE_NULL, 0);
|
n = handler (ASE_AWK_IO_FLUSH, p, ASE_NULL, 0);
|
||||||
|
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror (
|
if (run->errnum == ASE_AWK_ENOERR)
|
||||||
run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -599,7 +607,7 @@ int ase_awk_flushextio (
|
|||||||
if (ok) return 0;
|
if (ok) return 0;
|
||||||
|
|
||||||
/* there is no corresponding extio for name */
|
/* there is no corresponding extio for name */
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIONONE, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIONONE);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -623,7 +631,7 @@ int ase_awk_nextextio_read (
|
|||||||
if (handler == ASE_NULL)
|
if (handler == ASE_NULL)
|
||||||
{
|
{
|
||||||
/* no io handler provided */
|
/* no io handler provided */
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOUSER);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -649,10 +657,12 @@ int ase_awk_nextextio_read (
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOERR);
|
||||||
n = handler (ASE_AWK_IO_NEXT, p, ASE_NULL, 0);
|
n = handler (ASE_AWK_IO_NEXT, p, ASE_NULL, 0);
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
if (run->errnum == ASE_AWK_ENOERR)
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -697,7 +707,7 @@ int ase_awk_nextextio_write (
|
|||||||
if (handler == ASE_NULL)
|
if (handler == ASE_NULL)
|
||||||
{
|
{
|
||||||
/* no io handler provided */
|
/* no io handler provided */
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOUSER);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -723,23 +733,12 @@ int ase_awk_nextextio_write (
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOERR);
|
||||||
n = handler (ASE_AWK_IO_NEXT, p, ASE_NULL, 0);
|
n = handler (ASE_AWK_IO_NEXT, p, ASE_NULL, 0);
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
if (run->errnum == ASE_AWK_ENOERR)
|
||||||
return -1;
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOIMPL);
|
||||||
}
|
|
||||||
|
|
||||||
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, 0);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -780,7 +779,7 @@ int ase_awk_closeextio_read (
|
|||||||
if (handler == ASE_NULL)
|
if (handler == ASE_NULL)
|
||||||
{
|
{
|
||||||
/* no io handler provided */
|
/* no io handler provided */
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOUSER, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOUSER);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -814,8 +813,8 @@ int ase_awk_closeextio_read (
|
|||||||
p = p->next;
|
p = p->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this is not a run-time error */
|
/* the name given is not found */
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIONONE);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -853,10 +852,11 @@ int ase_awk_closeextio_write (
|
|||||||
handler = run->extio.handler[p->type & __MASK_CLEAR];
|
handler = run->extio.handler[p->type & __MASK_CLEAR];
|
||||||
if (handler != ASE_NULL)
|
if (handler != ASE_NULL)
|
||||||
{
|
{
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOERR);
|
||||||
if (handler (ASE_AWK_IO_CLOSE, p, ASE_NULL, 0) <= -1)
|
if (handler (ASE_AWK_IO_CLOSE, p, ASE_NULL, 0) <= -1)
|
||||||
{
|
{
|
||||||
/* this is not a run-time error.*/
|
if (run->errnum == ASE_AWK_ENOERR)
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -873,8 +873,7 @@ int ase_awk_closeextio_write (
|
|||||||
p = p->next;
|
p = p->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this is not a run-time error */
|
ase_awk_setrunerrnum (run, ASE_AWK_EIONONE);
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -893,10 +892,12 @@ int ase_awk_closeextio (ase_awk_run_t* run, const ase_char_t* name)
|
|||||||
handler = run->extio.handler[p->type & __MASK_CLEAR];
|
handler = run->extio.handler[p->type & __MASK_CLEAR];
|
||||||
if (handler != ASE_NULL)
|
if (handler != ASE_NULL)
|
||||||
{
|
{
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOERR);
|
||||||
if (handler (ASE_AWK_IO_CLOSE, p, ASE_NULL, 0) <= -1)
|
if (handler (ASE_AWK_IO_CLOSE, p, ASE_NULL, 0) <= -1)
|
||||||
{
|
{
|
||||||
/* this is not a run-time error.*/
|
/* this is not a run-time error.*/
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
if (run->errnum == ASE_AWK_ENOERR)
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOIMPL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -906,6 +907,7 @@ int ase_awk_closeextio (ase_awk_run_t* run, const ase_char_t* name)
|
|||||||
|
|
||||||
ASE_AWK_FREE (run->awk, p->name);
|
ASE_AWK_FREE (run->awk, p->name);
|
||||||
ASE_AWK_FREE (run->awk, p);
|
ASE_AWK_FREE (run->awk, p);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -913,8 +915,7 @@ int ase_awk_closeextio (ase_awk_run_t* run, const ase_char_t* name)
|
|||||||
p = p->next;
|
p = p->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this is not a run-time error */
|
ase_awk_setrunerrnum (run, ASE_AWK_EIONONE);
|
||||||
ase_awk_setrunerror (run, ASE_AWK_EIOIMPL, 0, ASE_NULL, 0);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -932,10 +933,13 @@ void ase_awk_clearextio (ase_awk_run_t* run)
|
|||||||
|
|
||||||
if (handler != ASE_NULL)
|
if (handler != ASE_NULL)
|
||||||
{
|
{
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOERR);
|
||||||
n = handler (ASE_AWK_IO_CLOSE, run->extio.chain, ASE_NULL, 0);
|
n = handler (ASE_AWK_IO_CLOSE, run->extio.chain, ASE_NULL, 0);
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
/* TODO: some warnings needs to be shown */
|
if (run->errnum == ASE_AWK_ENOERR)
|
||||||
|
ase_awk_setrunerrnum (run, ASE_AWK_EIOIMPL);
|
||||||
|
/* TODO: some warnings need to be shown??? */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: func.c,v 1.101 2007-03-10 11:58:35 bacon Exp $
|
* $Id: func.c,v 1.102 2007-03-20 10:44:44 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -234,17 +234,19 @@ static int __bfn_close (
|
|||||||
}
|
}
|
||||||
|
|
||||||
n = ase_awk_closeextio (run, name);
|
n = ase_awk_closeextio (run, name);
|
||||||
if (n == -1 && run->errnum != ASE_AWK_EIOIMPL)
|
/*
|
||||||
|
if (n == -1 && run->errnum != ASE_AWK_EIONONE)
|
||||||
{
|
{
|
||||||
if (a0->type != ASE_AWK_VAL_STR)
|
if (a0->type != ASE_AWK_VAL_STR)
|
||||||
ASE_AWK_FREE (run->awk, name);
|
ASE_AWK_FREE (run->awk, name);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if (a0->type != ASE_AWK_VAL_STR) ASE_AWK_FREE (run->awk, name);
|
if (a0->type != ASE_AWK_VAL_STR) ASE_AWK_FREE (run->awk, name);
|
||||||
|
|
||||||
skip_close:
|
skip_close:
|
||||||
v = ase_awk_makeintval (run, n);
|
v = ase_awk_makeintval (run, (ase_long_t)n);
|
||||||
if (v == ASE_NULL)
|
if (v == ASE_NULL)
|
||||||
{
|
{
|
||||||
ase_awk_setrunerrnum (run, ASE_AWK_ENOMEM);
|
ase_awk_setrunerrnum (run, ASE_AWK_ENOMEM);
|
||||||
@ -265,12 +267,19 @@ static int __flush_extio (
|
|||||||
n2 = ase_awk_flushextio (run, extio, name);
|
n2 = ase_awk_flushextio (run, extio, name);
|
||||||
if (n2 == -1)
|
if (n2 == -1)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
if (run->errnum == ASE_AWK_EIOIMPL) n = -1;
|
if (run->errnum == ASE_AWK_EIOIMPL) n = -1;
|
||||||
else if (run->errnum == ASE_AWK_EIONONE)
|
else if (run->errnum == ASE_AWK_EIONONE)
|
||||||
{
|
{
|
||||||
if (n != 0) n = -2;
|
if (n != 0) n = -2;
|
||||||
}
|
}
|
||||||
else n = -99;
|
else n = -99;
|
||||||
|
*/
|
||||||
|
if (run->errnum == ASE_AWK_EIONONE)
|
||||||
|
{
|
||||||
|
if (n != 0) n = -2;
|
||||||
|
}
|
||||||
|
else n = -1;
|
||||||
}
|
}
|
||||||
else if (n != -1) n = 0;
|
else if (n != -1) n = 0;
|
||||||
}
|
}
|
||||||
@ -292,16 +301,9 @@ static int __bfn_fflush (
|
|||||||
|
|
||||||
if (nargs == 0)
|
if (nargs == 0)
|
||||||
{
|
{
|
||||||
/* flush the console output */
|
/* flush the console output.
|
||||||
|
* fflush() should return -1 on errors */
|
||||||
n = ase_awk_flushextio (run, ASE_AWK_OUT_CONSOLE, ASE_T(""));
|
n = ase_awk_flushextio (run, ASE_AWK_OUT_CONSOLE, ASE_T(""));
|
||||||
if (n == -1 &&
|
|
||||||
run->errnum != ASE_AWK_EIOIMPL &&
|
|
||||||
run->errnum != ASE_AWK_EIONONE)
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* fflush() should return -1 on EIOIMPL and EIONONE */
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -341,15 +343,15 @@ static int __bfn_fflush (
|
|||||||
n = __flush_extio (
|
n = __flush_extio (
|
||||||
run, ASE_AWK_EXTIO_FILE,
|
run, ASE_AWK_EXTIO_FILE,
|
||||||
((len0 == 0)? ASE_NULL: str0), 1);
|
((len0 == 0)? ASE_NULL: str0), 1);
|
||||||
if (n == -99) return -1;
|
/*if (n == -99) return -1;*/
|
||||||
n = __flush_extio (
|
n = __flush_extio (
|
||||||
run, ASE_AWK_EXTIO_PIPE,
|
run, ASE_AWK_EXTIO_PIPE,
|
||||||
((len0 == 0)? ASE_NULL: str0), n);
|
((len0 == 0)? ASE_NULL: str0), n);
|
||||||
if (n == -99) return -1;
|
/*if (n == -99) return -1;*/
|
||||||
n = __flush_extio (
|
n = __flush_extio (
|
||||||
run, ASE_AWK_EXTIO_COPROC,
|
run, ASE_AWK_EXTIO_COPROC,
|
||||||
((len0 == 0)? ASE_NULL: str0), n);
|
((len0 == 0)? ASE_NULL: str0), n);
|
||||||
if (n == -99) return -1;
|
/*if (n == -99) return -1;*/
|
||||||
|
|
||||||
/* if n remains 1, no ip handlers have been defined for
|
/* if n remains 1, no ip handlers have been defined for
|
||||||
* file, pipe, and coproc. so make fflush return -1.
|
* file, pipe, and coproc. so make fflush return -1.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: run.c,v 1.346 2007-03-19 15:25:51 bacon Exp $
|
* $Id: run.c,v 1.347 2007-03-20 10:44:44 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -1626,12 +1626,9 @@ static int __run_block0 (ase_awk_run_t* run, ase_awk_nde_blk_t* nde)
|
|||||||
{
|
{
|
||||||
ase_awk_refdownval (run, run->inrec.d0);
|
ase_awk_refdownval (run, run->inrec.d0);
|
||||||
|
|
||||||
if (run->errnum == ASE_AWK_EIOIMPL)
|
/* adjust the error line */
|
||||||
{
|
run->errlin = nde->line;
|
||||||
ase_awk_setrunerror (
|
|
||||||
run, ASE_AWK_ECOUTWR, nde->line,
|
|
||||||
ASE_NULL, 0);
|
|
||||||
}
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1642,17 +1639,8 @@ static int __run_block0 (ase_awk_run_t* run, ase_awk_nde_blk_t* nde)
|
|||||||
{
|
{
|
||||||
ase_awk_refdownval (run, run->inrec.d0);
|
ase_awk_refdownval (run, run->inrec.d0);
|
||||||
|
|
||||||
if (run->errnum == ASE_AWK_EIOIMPL)
|
/* adjust the error line */
|
||||||
{
|
run->errlin = nde->line;
|
||||||
ase_awk_setrunerror (
|
|
||||||
run, ASE_AWK_ECOUTWR, nde->line,
|
|
||||||
ASE_NULL, 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* adjust the error line */
|
|
||||||
run->errlin = nde->line;
|
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -2212,18 +2200,8 @@ 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(""));
|
n = ase_awk_nextextio_read (run, ASE_AWK_IN_CONSOLE, ASE_T(""));
|
||||||
if (n == -1)
|
if (n == -1)
|
||||||
{
|
{
|
||||||
if (run->errnum == ASE_AWK_EIOIMPL)
|
/* adjust the error line */
|
||||||
{
|
run->errlin = nde->line;
|
||||||
/* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2252,17 +2230,8 @@ 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(""));
|
n = ase_awk_nextextio_write (run, ASE_AWK_OUT_CONSOLE, ASE_T(""));
|
||||||
if (n == -1)
|
if (n == -1)
|
||||||
{
|
{
|
||||||
if (run->errnum == ASE_AWK_EIOIMPL)
|
/* adjust the error line */
|
||||||
{
|
run->errlin = nde->line;
|
||||||
ase_awk_setrunerror (
|
|
||||||
run, ASE_AWK_ECOUTNX, nde->line, ASE_NULL, 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* adjust the error line */
|
|
||||||
run->errlin = nde->line;
|
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2787,7 +2756,7 @@ 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);
|
if (out != ASE_NULL) ASE_AWK_FREE (run->awk, out);
|
||||||
ase_awk_refdownval (run, v);
|
ase_awk_refdownval (run, v);
|
||||||
|
|
||||||
/* change the error line */
|
/* adjust the error line */
|
||||||
run->errlin = nde->line;
|
run->errlin = nde->line;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -2835,7 +2804,8 @@ static ase_awk_val_t* __eval_expression (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
/* the record has never been read.
|
/* the record has never been read.
|
||||||
* probably, this functions has been triggered
|
* probably, this functions has been triggered
|
||||||
* by the statements in the BEGIN block */
|
* by the statements in the BEGIN block */
|
||||||
n = ase_awk_isemptyrex (run->awk, ((ase_awk_val_rex_t*)v)->code)? 1: 0;
|
n = ase_awk_isemptyrex (
|
||||||
|
run->awk, ((ase_awk_val_rex_t*)v)->code)? 1: 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -6026,16 +5996,7 @@ static ase_awk_val_t* __eval_getline (ase_awk_run_t* run, ase_awk_nde_t* nde)
|
|||||||
|
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
if (run->errnum != ASE_AWK_EIOIMPL)
|
/* make getline return -1 */
|
||||||
{
|
|
||||||
ase_str_close (&buf);
|
|
||||||
/* adjust the line number */
|
|
||||||
run->errlin = nde->line;
|
|
||||||
return ASE_NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if run->errnum == ASE_AWK_EIOIMPL,
|
|
||||||
* make getline return -1 */
|
|
||||||
n = -1;
|
n = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6150,20 +6111,7 @@ static int __read_record (ase_awk_run_t* run)
|
|||||||
run, ASE_AWK_IN_CONSOLE, ASE_T(""), &run->inrec.line);
|
run, ASE_AWK_IN_CONSOLE, ASE_T(""), &run->inrec.line);
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
/* save the error number first as the error number can
|
|
||||||
* be changed by ase_awk_clrrec if it fails */
|
|
||||||
/*
|
|
||||||
int saved = run->errnum;
|
|
||||||
*/
|
|
||||||
|
|
||||||
ase_awk_clrrec (run, ase_false);
|
ase_awk_clrrec (run, ase_false);
|
||||||
/*
|
|
||||||
if (saved == ASE_AWK_EIOIMPL)
|
|
||||||
{
|
|
||||||
ase_awk_setrunerror (
|
|
||||||
run, ASE_AWK_ECINRD, 0, ASE_NULL, 0);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: awk.c,v 1.191 2007-03-19 15:25:51 bacon Exp $
|
* $Id: awk.c,v 1.192 2007-03-20 10:44:45 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ase/awk/awk.h>
|
#include <ase/awk/awk.h>
|
||||||
@ -376,7 +376,17 @@ static ase_ssize_t awk_extio_file (
|
|||||||
|
|
||||||
dprintf (ASE_T("opening %s of type %d (file)\n"), epa->name, epa->type);
|
dprintf (ASE_T("opening %s of type %d (file)\n"), epa->name, epa->type);
|
||||||
handle = ase_fopen (epa->name, mode);
|
handle = ase_fopen (epa->name, mode);
|
||||||
if (handle == NULL) return -1;
|
if (handle == NULL)
|
||||||
|
{
|
||||||
|
ase_cstr_t errarg;
|
||||||
|
|
||||||
|
errarg.ptr = epa->name;
|
||||||
|
errarg.len = ase_strlen(epa->name);
|
||||||
|
|
||||||
|
|
||||||
|
ase_awk_setrunerror (epa->run, ASE_AWK_EOPEN, 0, &errarg, 1);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
epa->handle = (void*)handle;
|
epa->handle = (void*)handle;
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [34] LINE [2] invalid character ''
|
PARSE ERROR: CODE [30] LINE [2] invalid character ''
|
||||||
|
@ -5,4 +5,4 @@ BEGIN {
|
|||||||
abc = 10;
|
abc = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [98] LINE [5] map 'abc' not assignable with a scalar
|
RUN ERROR: CODE [94] LINE [5] map 'abc' not assignable with a scalar
|
||||||
|
@ -2,4 +2,4 @@ BEGIN {
|
|||||||
delete ARGC;
|
delete ARGC;
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [90] LINE [2] variable 'ARGC' not deletable
|
RUN ERROR: CODE [86] LINE [2] variable 'ARGC' not deletable
|
||||||
|
@ -3,4 +3,4 @@ BEGIN {
|
|||||||
delete iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiix;
|
delete iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiix;
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [90] LINE [3] variable 'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii...' not deletable
|
RUN ERROR: CODE [86] LINE [3] variable 'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii...' not deletable
|
||||||
|
@ -2,4 +2,4 @@ BEGIN {
|
|||||||
helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhelphelp ();
|
helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhelphelp ();
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [88] LINE [2] function 'helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhel...' not found
|
RUN ERROR: CODE [84] LINE [2] function 'helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhel...' not found
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [59] LINE [2] built-in function 'substr' redefined
|
PARSE ERROR: CODE [55] LINE [2] built-in function 'substr' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [59] LINE [3] built-in function 'substr' redefined
|
PARSE ERROR: CODE [55] LINE [3] built-in function 'substr' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [60] LINE [9] function 'abc' redefined
|
PARSE ERROR: CODE [56] LINE [9] function 'abc' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [61] LINE [4] global variable 'abc' redefined
|
PARSE ERROR: CODE [57] LINE [4] global variable 'abc' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [62] LINE [4] parameter 'x' redefined
|
PARSE ERROR: CODE [58] LINE [4] parameter 'x' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [60] LINE [11] function 'abc' redefined
|
PARSE ERROR: CODE [56] LINE [11] function 'abc' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [60] LINE [1] function 'abc' redefined
|
PARSE ERROR: CODE [56] LINE [1] function 'abc' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [46] LINE [5] a colon expected in place of ';'
|
PARSE ERROR: CODE [42] LINE [5] a colon expected in place of ';'
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [41] LINE [2] a left parenthesis expected in place of '='
|
PARSE ERROR: CODE [37] LINE [2] a left parenthesis expected in place of '='
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [55] LINE [2] BEGIN not followed by a left bracket on the same line
|
PARSE ERROR: CODE [51] LINE [2] BEGIN not followed by a left bracket on the same line
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [66] LINE [1] '+' not a valid parameter name
|
PARSE ERROR: CODE [62] LINE [1] '+' not a valid parameter name
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [67] LINE [1] '+' not a valid variable name
|
PARSE ERROR: CODE [63] LINE [1] '+' not a valid variable name
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [67] LINE [3] '+' not a valid variable name
|
PARSE ERROR: CODE [63] LINE [3] '+' not a valid variable name
|
||||||
|
@ -2,4 +2,4 @@ BEGIN {
|
|||||||
print abc > "123\0abc";
|
print abc > "123\0abc";
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [113] LINE [2] i/o name containing a null character
|
RUN ERROR: CODE [109] LINE [2] i/o name containing a null character
|
||||||
|
@ -3,4 +3,4 @@ BEGIN {
|
|||||||
split ("a b c",xx);
|
split ("a b c",xx);
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [99] LINE [3] cannot change a scalar value to a map
|
RUN ERROR: CODE [95] LINE [3] cannot change a scalar value to a map
|
||||||
|
Loading…
x
Reference in New Issue
Block a user