From 43cf5af62142e1f9e81997c30ba91b7bd67504ec Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 26 Jan 2016 12:28:00 -0600 Subject: [PATCH] dbQuietMacroWarnings control --- documentation/RELEASE_NOTES.html | 27 ++++++++++++++++++++++++--- src/ioc/dbStatic/dbLexRoutines.c | 11 +++++++---- src/ioc/misc/dbCore.dbd | 1 + 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index 5e39e2680..5655c5d91 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -3,17 +3,36 @@ - EPICS Base R3.15.3 Release Notes + EPICS Base R3.15.4 Release Notes -

EPICS Base Release 3.15.3

+

EPICS Base Release 3.15.4

This version of EPICS Base has not been released yet.

-

Changes between 3.15.2 and 3.15.3

+

Changes between 3.15.3 and 3.15.4

+

Added dbQuietMacroWarnings control

+ +

When loading database files, macros get expanded even on comment lines. If a +comment contains an undefined macro, the load still continues but an error +message gets printed. For this release the error message has been changed to a +warning, but even this warning can be made less verbose by setting this new +variable to a non-zero value before loading the file, like this:

+ +
+var dbQuietMacroWarnings 1      iocsh
+dbQuietMacroWarnings=1          VxWorks
+
+ +

This was Launchpad bug +541119.

+ + +

Changes between 3.15.2 and 3.15.3

+

Make the NTP Time provider optional on VxWorks

Recent versions of VxWorks (sometime after VxWorks 6) provide facilities for @@ -52,6 +71,7 @@ time, but there was still one implementation left in the event record support code, and a structure definition for one of the original arguments to that routine was defined in recGbl.h. Both of these have now been removed.

+

Changes between 3.15.1 and 3.15.2

Raised limit on link field length in database files

@@ -170,6 +190,7 @@ use a modified version of msi must provide support for both the -D and -o outfile options, and should then point the MSI3_15 variable in their applications' CONFIG_SITE files to that updated executable.

+

Changes between 3.15.0.2 and 3.15.1

epicsStrnEscapedFromRaw() and epicsStrnRawFromEscaped()

diff --git a/src/ioc/dbStatic/dbLexRoutines.c b/src/ioc/dbStatic/dbLexRoutines.c index f5ead7a7b..16e553f86 100644 --- a/src/ioc/dbStatic/dbLexRoutines.c +++ b/src/ioc/dbStatic/dbLexRoutines.c @@ -49,6 +49,9 @@ epicsExportAddress(int,dbRecordsOnceOnly); epicsShareDef int dbBptNotMonotonic=0; epicsExportAddress(int,dbBptNotMonotonic); +epicsShareDef int dbQuietMacroWarnings=0; +epicsExportAddress(int,dbQuietMacroWarnings); + /*private routines */ static void yyerrorAbort(char *str); static void allocTemp(void *pvoid); @@ -230,6 +233,7 @@ static long dbReadCOM(DBBASE **ppdbbase,const char *filename, FILE *fp, free((void *)macPairs); mac_input_buffer = dbCalloc(MY_BUFFER_SIZE,sizeof(char)); } + macSuppressWarning(macHandle,dbQuietMacroWarnings); } pinputFile = dbCalloc(1,sizeof(inputFile)); if(filename) { @@ -320,10 +324,9 @@ static int db_yyinput(char *buf, int max_size) if(fgetsRtn) { int exp = macExpandString(macHandle,mac_input_buffer, my_buffer,MY_BUFFER_SIZE); - if(exp < 0) { - errPrintf(0,__FILE__, __LINE__, - "macExpandString failed for file %s", - pinputFileNow->filename); + if (exp < 0) { + fprintf(stderr, "Warning: '%s' line %d has undefined macros\n", + pinputFileNow->filename, pinputFileNow->line_num+1); } } } else { diff --git a/src/ioc/misc/dbCore.dbd b/src/ioc/misc/dbCore.dbd index b383efeb6..1fec39eca 100644 --- a/src/ioc/misc/dbCore.dbd +++ b/src/ioc/misc/dbCore.dbd @@ -14,6 +14,7 @@ variable(asCaDebug,int) # Static database access variables variable(dbRecordsOnceOnly,int) variable(dbBptNotMonotonic,int) +variable(dbQuietMacroWarnings,int) # dbLoadTemplate settings variable(dbTemplateMaxVars,int)