From 6ca51a8f523f8faaae288f508ec432642ee31a55 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 3 Apr 2006 21:47:34 +0000 Subject: [PATCH] Improve error messages for CALC expressions. --- src/dbStatic/dbStaticLib.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/dbStatic/dbStaticLib.c b/src/dbStatic/dbStaticLib.c index 767eefbdf..a04403d37 100644 --- a/src/dbStatic/dbStaticLib.c +++ b/src/dbStatic/dbStaticLib.c @@ -2009,10 +2009,13 @@ long epicsShareAPI dbPutString(DBENTRY *pdbentry,const char *pstring) strncpy((char *)pfield, pstring,pflddes->size); if((pflddes->special == SPC_CALC) && !stringHasMacro) { char rpcl[RPCL_LEN]; - short error_number; + short err; - status = postfix(pstring,rpcl,&error_number); - if(status) status = S_dbLib_badField; + if (postfix(pstring,rpcl,&err)) { + status = S_dbLib_badField; + errlogPrintf("%s in CALC expression '%s'\n", + calcErrorStr(err), pstring); + } } if((short)strlen(pstring) >= pflddes->size) status = S_dbLib_strLen; break; @@ -2384,12 +2387,13 @@ char * epicsShareAPI dbVerify(DBENTRY *pdbentry,const char *pstring) } if((pflddes->special == SPC_CALC) && !stringHasMacro) { char rpcl[RPCL_LEN]; - short error_number; + short err; long status; - status = postfix(pstring,rpcl,&error_number); + status = postfix(pstring,rpcl,&err); if(status) { - sprintf(message,"Illegal Calculation String"); + sprintf(message,"%s in CALC expression '%s'", + calcErrorStr(err), pstring); return(message); } }