*** empty log message ***
This commit is contained in:
parent
f764b53571
commit
c71d350312
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: awk.c,v 1.113 2007-03-04 06:26:45 bacon Exp $
|
* $Id: awk.c,v 1.114 2007-03-04 14:55:55 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -168,6 +168,8 @@ static void __free_afn (void* owner, void* afn)
|
|||||||
|
|
||||||
int ase_awk_close (ase_awk_t* awk)
|
int ase_awk_close (ase_awk_t* awk)
|
||||||
{
|
{
|
||||||
|
ase_size_t i;
|
||||||
|
|
||||||
if (ase_awk_clear (awk) == -1) return -1;
|
if (ase_awk_clear (awk) == -1) return -1;
|
||||||
ase_awk_clrbfn (awk);
|
ase_awk_clrbfn (awk);
|
||||||
|
|
||||||
@ -177,6 +179,15 @@ int ase_awk_close (ase_awk_t* awk)
|
|||||||
ase_awk_tab_close (&awk->parse.params);
|
ase_awk_tab_close (&awk->parse.params);
|
||||||
ase_str_close (&awk->token.name);
|
ase_str_close (&awk->token.name);
|
||||||
|
|
||||||
|
for (i = 0; i < ASE_COUNTOF(awk->errstr); i++)
|
||||||
|
{
|
||||||
|
if (awk->errstr[i] != ASE_NULL)
|
||||||
|
{
|
||||||
|
ASE_AWK_FREE (awk, awk->errstr[i]);
|
||||||
|
awk->errstr[i] = ASE_NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ASE_AWK_ALLOC, ASE_AWK_FREE, etc can not be used
|
/* ASE_AWK_ALLOC, ASE_AWK_FREE, etc can not be used
|
||||||
* from the next line onwards */
|
* from the next line onwards */
|
||||||
ASE_AWK_FREE (awk, awk);
|
ASE_AWK_FREE (awk, awk);
|
||||||
@ -185,15 +196,6 @@ int ase_awk_close (ase_awk_t* awk)
|
|||||||
|
|
||||||
int ase_awk_clear (ase_awk_t* awk)
|
int ase_awk_clear (ase_awk_t* awk)
|
||||||
{
|
{
|
||||||
/* you should stop all running instances beforehand */
|
|
||||||
/*
|
|
||||||
if (awk->run.ptr != ASE_NULL)
|
|
||||||
{
|
|
||||||
awk->errnum = ASE_AWK_ERUNNING;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
ase_memset (&awk->src.ios, 0, ASE_SIZEOF(awk->src.ios));
|
ase_memset (&awk->src.ios, 0, ASE_SIZEOF(awk->src.ios));
|
||||||
awk->src.lex.curc = ASE_CHAR_EOF;
|
awk->src.lex.curc = ASE_CHAR_EOF;
|
||||||
awk->src.lex.ungotc_count = 0;
|
awk->src.lex.ungotc_count = 0;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: awk.h,v 1.199 2007-03-04 06:26:45 bacon Exp $
|
* $Id: awk.h,v 1.200 2007-03-04 14:55:55 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -327,7 +327,10 @@ enum
|
|||||||
ASE_AWK_EREXCCLASS, /* invalid character class */
|
ASE_AWK_EREXCCLASS, /* invalid character class */
|
||||||
ASE_AWK_EREXBRANGE, /* invalid boundary range */
|
ASE_AWK_EREXBRANGE, /* invalid boundary range */
|
||||||
ASE_AWK_EREXEND, /* unexpected end of the pattern */
|
ASE_AWK_EREXEND, /* unexpected end of the pattern */
|
||||||
ASE_AWK_EREXGARBAGE /* garbage after the pattern */
|
ASE_AWK_EREXGARBAGE, /* garbage after the pattern */
|
||||||
|
|
||||||
|
/* the number of error numbers, internal use only */
|
||||||
|
ASE_AWK_NUMERRNUM
|
||||||
};
|
};
|
||||||
|
|
||||||
/* depth types */
|
/* depth types */
|
||||||
@ -394,6 +397,10 @@ int ase_awk_close (ase_awk_t* awk);
|
|||||||
int ase_awk_clear (ase_awk_t* awk);
|
int ase_awk_clear (ase_awk_t* awk);
|
||||||
|
|
||||||
void* ase_awk_getcustomdata (ase_awk_t* awk);
|
void* ase_awk_getcustomdata (ase_awk_t* awk);
|
||||||
|
|
||||||
|
const ase_char_t* ase_awk_geterrstr (ase_awk_t* awk, int num);
|
||||||
|
int ase_awk_seterrstr (ase_awk_t* awk, int num, const ase_char_t* str);
|
||||||
|
|
||||||
int ase_awk_geterrnum (ase_awk_t* awk);
|
int ase_awk_geterrnum (ase_awk_t* awk);
|
||||||
ase_size_t ase_awk_geterrlin (ase_awk_t* awk);
|
ase_size_t ase_awk_geterrlin (ase_awk_t* awk);
|
||||||
const ase_char_t* ase_awk_geterrmsg (ase_awk_t* awk);
|
const ase_char_t* ase_awk_geterrmsg (ase_awk_t* awk);
|
||||||
@ -509,8 +516,6 @@ int ase_awk_assertfail (ase_awk_t* awk,
|
|||||||
const ase_char_t* expr, const ase_char_t* desc,
|
const ase_char_t* expr, const ase_char_t* desc,
|
||||||
const ase_char_t* file, int line);
|
const ase_char_t* file, int line);
|
||||||
|
|
||||||
/* utility functions to convert an error number ot a string */
|
|
||||||
const ase_char_t* ase_awk_geterrstr (int errnum);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: awk_i.h,v 1.109 2007-03-04 06:26:45 bacon Exp $
|
* $Id: awk_i.h,v 1.110 2007-03-04 14:55:55 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -202,6 +202,8 @@ struct ase_awk_t
|
|||||||
int errnum;
|
int errnum;
|
||||||
ase_size_t errlin;
|
ase_size_t errlin;
|
||||||
ase_char_t errmsg[256];
|
ase_char_t errmsg[256];
|
||||||
|
|
||||||
|
ase_char_t* errstr[ASE_AWK_NUMERRNUM];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ase_awk_chain_t
|
struct ase_awk_chain_t
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: err.c,v 1.82 2007-03-04 06:56:16 bacon Exp $
|
* $Id: err.c,v 1.83 2007-03-04 14:55:55 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -149,17 +149,29 @@ static const ase_char_t* __geterrstr (int errnum)
|
|||||||
return ASE_T("unknown error");
|
return ASE_T("unknown error");
|
||||||
}
|
}
|
||||||
|
|
||||||
const ase_char_t* ase_awk_geterrstr (int errnum)
|
const ase_char_t* ase_awk_geterrstr (ase_awk_t* awk, int num)
|
||||||
{
|
{
|
||||||
return __geterrstr (errnum);
|
if (awk != ASE_NULL &&
|
||||||
|
awk->errstr[num] != ASE_NULL) return awk->errstr[num];
|
||||||
|
return __geterrstr (num);
|
||||||
}
|
}
|
||||||
|
|
||||||
ase_char_t* ase_awk_seterrstr (
|
int ase_awk_seterrstr (ase_awk_t* awk, int num, const ase_char_t* str)
|
||||||
ase_awk_t* awk, int errnum, const ase_char_t* errstr)
|
|
||||||
{
|
{
|
||||||
ase_char_t* dup = ase_strdup (errstr, awk);
|
ase_char_t* dup;
|
||||||
if (dup == ASE_NULL) return ASE_NULL;
|
|
||||||
awk->errstr[errnum] = dup;
|
if (str == ASE_NULL) dup = ASE_NULL;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dup = ase_strdup (str, &awk->prmfns.mmgr);
|
||||||
|
if (dup == ASE_NULL) return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (awk->errstr[num] != ASE_NULL)
|
||||||
|
ASE_AWK_FREE (awk, awk->errstr[num]);
|
||||||
|
|
||||||
|
else awk->errstr[num] = dup;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ase_awk_geterrnum (ase_awk_t* awk)
|
int ase_awk_geterrnum (ase_awk_t* awk)
|
||||||
@ -175,7 +187,7 @@ ase_size_t ase_awk_geterrlin (ase_awk_t* awk)
|
|||||||
const ase_char_t* ase_awk_geterrmsg (ase_awk_t* awk)
|
const ase_char_t* ase_awk_geterrmsg (ase_awk_t* awk)
|
||||||
{
|
{
|
||||||
if (awk->errmsg[0] == ASE_T('\0'))
|
if (awk->errmsg[0] == ASE_T('\0'))
|
||||||
return ase_awk_geterrstr (awk->errnum);
|
return ase_awk_geterrstr (awk, awk->errnum);
|
||||||
return awk->errmsg;
|
return awk->errmsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,7 +200,7 @@ void ase_awk_geterror (
|
|||||||
if (errmsg != ASE_NULL)
|
if (errmsg != ASE_NULL)
|
||||||
{
|
{
|
||||||
if (awk->errmsg[0] == ASE_T('\0'))
|
if (awk->errmsg[0] == ASE_T('\0'))
|
||||||
*errmsg = ase_awk_geterrstr (awk->errnum);
|
*errmsg = ase_awk_geterrstr (awk, awk->errnum);
|
||||||
else
|
else
|
||||||
*errmsg = awk->errmsg;
|
*errmsg = awk->errmsg;
|
||||||
}
|
}
|
||||||
@ -206,7 +218,7 @@ void ase_awk_seterror (
|
|||||||
awk->errnum = errnum;
|
awk->errnum = errnum;
|
||||||
awk->errlin = errlin;
|
awk->errlin = errlin;
|
||||||
|
|
||||||
errfmt = __geterrstr (errnum);
|
errfmt = ase_awk_geterrstr (awk, errnum);
|
||||||
fmtlen = ase_strlen(errfmt);
|
fmtlen = ase_strlen(errfmt);
|
||||||
|
|
||||||
switch (argcnt)
|
switch (argcnt)
|
||||||
@ -324,7 +336,7 @@ ase_size_t ase_awk_getrunerrlin (ase_awk_run_t* run)
|
|||||||
const ase_char_t* ase_awk_getrunerrmsg (ase_awk_run_t* run)
|
const ase_char_t* ase_awk_getrunerrmsg (ase_awk_run_t* run)
|
||||||
{
|
{
|
||||||
if (run->errmsg[0] == ASE_T('\0'))
|
if (run->errmsg[0] == ASE_T('\0'))
|
||||||
return ase_awk_geterrstr (run->errnum);
|
return ase_awk_geterrstr (run->awk, run->errnum);
|
||||||
|
|
||||||
return run->errmsg;
|
return run->errmsg;
|
||||||
}
|
}
|
||||||
@ -345,7 +357,7 @@ void ase_awk_getrunerror (
|
|||||||
if (errmsg != ASE_NULL)
|
if (errmsg != ASE_NULL)
|
||||||
{
|
{
|
||||||
if (run->errmsg[0] == ASE_T('\0'))
|
if (run->errmsg[0] == ASE_T('\0'))
|
||||||
*errmsg = ase_awk_geterrstr (run->errnum);
|
*errmsg = ase_awk_geterrstr (run->awk, run->errnum);
|
||||||
else
|
else
|
||||||
*errmsg = run->errmsg;
|
*errmsg = run->errmsg;
|
||||||
}
|
}
|
||||||
@ -363,7 +375,7 @@ void ase_awk_setrunerror (
|
|||||||
run->errnum = errnum;
|
run->errnum = errnum;
|
||||||
run->errlin = errlin;
|
run->errlin = errlin;
|
||||||
|
|
||||||
errfmt = __geterrstr (errnum);
|
errfmt = ase_awk_geterrstr (run->awk, errnum);
|
||||||
fmtlen = ase_strlen (errfmt);
|
fmtlen = ase_strlen (errfmt);
|
||||||
|
|
||||||
switch (argcnt)
|
switch (argcnt)
|
||||||
|
Loading…
Reference in New Issue
Block a user