dbStatic: More commands accept "" or "*" to mean 'all'

dbDumpRecordType, dbDumpMenu and dbDumpRecord commands improved.
This commit is contained in:
Andrew Johnson
2013-05-09 15:48:49 -05:00
parent 34744264e1
commit 593e313fab
2 changed files with 25 additions and 2 deletions

View File

@@ -13,6 +13,14 @@
<!-- Insert new items immediately below here ... -->
<h4>More dbStatic commands accept "" or "*" to mean 'all'</h4>
<p>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.</p>
<h4>VxWorks sysAtReboot Registration</h4>
<p>The increasing intelligence of the GNU compiler and linker broke the method

View File

@@ -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");