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)