diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index 8f15fb77c..d2464baaa 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -13,6 +13,14 @@ +
The IOC commands dbDumpRecordType, dbDumpMenu and dbDumpRecord will now +accept either an empty string or any string beginning with an asterisk '*' to +mean all record types or menus. Previously the 'all' option for these commands +required passing in a NULL value, which could be done from the vxWorks shell but +was not possible from iocsh.
+The increasing intelligence of the GNU compiler and linker broke the method diff --git a/src/dbStatic/dbStaticLib.c b/src/dbStatic/dbStaticLib.c index 247240f25..56d54928c 100644 --- a/src/dbStatic/dbStaticLib.c +++ b/src/dbStatic/dbStaticLib.c @@ -901,6 +901,11 @@ long epicsShareAPI dbWriteRecordFP( dctonly = ((level>1) ? FALSE : TRUE); dbInitEntry(pdbbase,pdbentry); + if (precordTypename) { + if (*precordTypename == 0 || *precordTypename == '*') + precordTypename = 0; + } + if(!precordTypename) { status = dbFirstRecordType(pdbentry); if(status) { @@ -997,6 +1002,10 @@ long epicsShareAPI dbWriteMenuFP(DBBASE *pdbbase,FILE *fp,const char *menuName) fprintf(stderr,"pdbbase not specified\n"); return(-1); } + if (menuName) { + if (*menuName == 0 || *menuName == '*') + menuName = 0; + } pdbMenu = (dbMenu *)ellFirst(&pdbbase->menuList); while(pdbMenu) { if(menuName) { @@ -1042,6 +1051,11 @@ long epicsShareAPI dbWriteRecordTypeFP( fprintf(stderr,"pdbbase not specified\n"); return(-1); } + if (recordTypeName) { + if (*recordTypeName == 0 || *recordTypeName == '*') + recordTypeName = 0; + } + for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList); pdbRecordType; pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) { if(recordTypeName) { @@ -3962,8 +3976,9 @@ void epicsShareAPI dbDumpDevice(DBBASE *pdbbase,const char *recordTypeName) devSup *pdevSup; int gotMatch; - if(recordTypeName) { - if(recordTypeName[0]==0 || recordTypeName[0] == '*') recordTypeName = 0; + if (recordTypeName) { + if (*recordTypeName == 0 || *recordTypeName == '*') + recordTypeName = 0; } if(!pdbbase) { fprintf(stderr,"pdbbase not specified\n");