fixed a few minor bugs

This commit is contained in:
2009-06-27 07:05:19 +00:00
parent 06d3d78abf
commit e337e01d46
105 changed files with 164 additions and 703 deletions

View File

@ -1,5 +1,5 @@
/*
* $Id: err.c 212 2009-06-25 07:39:27Z hyunghwan.chung $
* $Id: err.c 213 2009-06-26 13:05:19Z hyunghwan.chung $
*
Copyright 2006-2009 Chung, Hyung-Hwan.
@ -39,7 +39,7 @@ const qse_char_t* qse_awk_dflerrstr (qse_awk_t* awk, qse_awk_errnum_t errnum)
QSE_T("file or data too big"),
QSE_T("system too busy"),
QSE_T("is a directory"),
QSE_T("i/o error"),
QSE_T("IO error"),
QSE_T("cannot open '${0}'"),
QSE_T("cannot read '${0}'"),
@ -143,10 +143,10 @@ const qse_char_t* qse_awk_dflerrstr (qse_awk_t* awk, qse_awk_errnum_t errnum)
QSE_T("wrong implementation of intrinsic function handler"),
QSE_T("intrinsic function handler returned an error"),
QSE_T("wrong implementation of user-defined io handler"),
QSE_T("no such io name found"),
QSE_T("i/o handler returned an error"),
QSE_T("i/o name empty"),
QSE_T("i/o name '${0}' containing a null character"),
QSE_T("IO handler returned an error"),
QSE_T("no such IO name found"),
QSE_T("IO name empty"),
QSE_T("IO name '${0}' containing a null character"),
QSE_T("not sufficient arguments to formatting sequence"),
QSE_T("recursion detected in format conversion"),
QSE_T("invalid character in CONVFMT"),

View File

@ -1,5 +1,5 @@
/*
* $Id: fnc.c 211 2009-06-24 09:50:10Z hyunghwan.chung $
* $Id: fnc.c 213 2009-06-26 13:05:19Z hyunghwan.chung $
*
Copyright 2006-2009 Chung, Hyung-Hwan.
@ -282,7 +282,7 @@ static int fnc_close (
n = qse_awk_rtx_closeio (run, name);
/*
if (n == -1 && run->errinf.num != QSE_AWK_EIONONE)
if (n == -1 && run->errinf.num != QSE_AWK_EIONMNF)
{
if (a0->type != QSE_AWK_VAL_STR)
QSE_AWK_FREE (run->awk, name);
@ -316,13 +316,13 @@ static int flush_io (
{
/*
if (run->errinf.num == QSE_AWK_EIOIMPL) n = -1;
else if (run->errinf.num == QSE_AWK_EIONONE)
else if (run->errinf.num == QSE_AWK_EIONMNF)
{
if (n != 0) n = -2;
}
else n = -99;
*/
if (run->errinf.num == QSE_AWK_EIONONE)
if (run->errinf.num == QSE_AWK_EIONMNF)
{
if (n != 0) n = -2;
}

View File

@ -1,5 +1,5 @@
/*
* $Id: parse.c 212 2009-06-25 07:39:27Z hyunghwan.chung $
* $Id: parse.c 213 2009-06-26 13:05:19Z hyunghwan.chung $
*
Copyright 2006-2009 Chung, Hyung-Hwan.
@ -3039,11 +3039,15 @@ static qse_awk_nde_t* parse_primary (qse_awk_t* awk, qse_size_t line)
{
qse_awk_nde_t* tmp;
if (get_token(awk) <= -1)
do
{
qse_awk_clrpt (awk, nde);
return QSE_NULL;
}
if (get_token(awk) <= -1)
{
qse_awk_clrpt (awk, nde);
return QSE_NULL;
}
}
while (MATCH(awk,TOKEN_NEWLINE));
tmp = parse_expression (awk, awk->token.line);
if (tmp == QSE_NULL)
@ -4635,7 +4639,8 @@ static int get_token (qse_awk_t* awk)
}
else if (c == QSE_T('\n'))
{
ADD_TOKEN_CHAR (awk, QSE_T('\n'));
/*ADD_TOKEN_CHAR (awk, QSE_T('\n'));*/
ADD_TOKEN_STR (awk, QSE_T("<NL>"), 4);
SET_TOKEN_TYPE (awk, TOKEN_NEWLINE);
GET_CHAR (awk);
}

View File

@ -1,5 +1,5 @@
/*
* $Id: rio.c 207 2009-06-22 13:01:28Z hyunghwan.chung $
* $Id: rio.c 213 2009-06-26 13:05:19Z hyunghwan.chung $
*
Copyright 2006-2009 Chung, Hyung-Hwan.
@ -634,7 +634,7 @@ int qse_awk_rtx_flushio (
if (ok) return 0;
/* there is no corresponding rio for name */
qse_awk_rtx_seterrnum (run, QSE_AWK_EIONONE);
qse_awk_rtx_seterrnum (run, QSE_AWK_EIONMNF);
return -1;
}
@ -844,7 +844,7 @@ int qse_awk_rtx_closio_read (
}
/* the name given is not found */
qse_awk_rtx_seterrnum (run, QSE_AWK_EIONONE);
qse_awk_rtx_seterrnum (run, QSE_AWK_EIONMNF);
return -1;
}
@ -903,7 +903,7 @@ int qse_awk_rtx_closio_write (
p = p->next;
}
qse_awk_rtx_seterrnum (run, QSE_AWK_EIONONE);
qse_awk_rtx_seterrnum (run, QSE_AWK_EIONMNF);
return -1;
}
@ -945,7 +945,7 @@ int qse_awk_rtx_closeio (qse_awk_rtx_t* run, const qse_char_t* name)
p = p->next;
}
qse_awk_rtx_seterrnum (run, QSE_AWK_EIONONE);
qse_awk_rtx_seterrnum (run, QSE_AWK_EIONMNF);
return -1;
}

View File

@ -1,5 +1,5 @@
/*
* $Id: run.c 210 2009-06-24 08:29:33Z hyunghwan.chung $
* $Id: run.c 213 2009-06-26 13:05:19Z hyunghwan.chung $
*
Copyright 2006-2009 Chung, Hyung-Hwan.
@ -2934,6 +2934,9 @@ static int run_print (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde)
return -1;
}
/* unlike printf, flushio() is not needed here as print
* inserts <NL> that triggers auto-flush */
if (out != QSE_NULL) QSE_AWK_FREE (run->awk, out);
/*skip_write:*/
@ -3069,10 +3072,13 @@ static int run_printf (qse_awk_rtx_t* run, qse_awk_nde_print_t* nde)
}
qse_awk_rtx_refdownval (run, v);
if (out != QSE_NULL) QSE_AWK_FREE (run->awk, out);
/*skip_write:*/
return qse_awk_rtx_flushio (run, nde->out_type, dst);
n = qse_awk_rtx_flushio (run, nde->out_type, dst);
if (out != QSE_NULL) QSE_AWK_FREE (run->awk, out);
return n;
}
static int output_formatted (
@ -4045,7 +4051,7 @@ static int __cmp_int_str (
qse_awk_rtx_valtostr_out_t out;
int n;
if (rtx->awk->option & QSE_AWK_NCMPONSTR)
if (rtx->awk->option & QSE_AWK_NCMPONSTR || right->nstr > 0)
{
qse_long_t ll;
qse_real_t rr;
@ -4131,7 +4137,7 @@ static int __cmp_real_str (
qse_awk_rtx_valtostr_out_t out;
int n;
if (rtx->awk->option & QSE_AWK_NCMPONSTR)
if (rtx->awk->option & QSE_AWK_NCMPONSTR || right->nstr > 0)
{
const qse_char_t* end;
qse_real_t rr;