dbRecordtypeFieldItem() avoid excess strcmp()

only one is going to match.
This commit is contained in:
Michael Davidsaver
2020-05-11 15:23:19 -07:00
parent 6c914d19c3
commit 48eb4ff4ac

View File

@@ -576,20 +576,16 @@ static void dbRecordtypeFieldItem(char *name,char *value)
yyerror("Illegal Access Security value: Must be ASL0 or ASL1");
}
return;
}
if(strcmp(name,"initial")==0) {
} else if(strcmp(name,"initial")==0) {
pdbFldDes->initial = epicsStrDup(value);
return;
}
if(strcmp(name,"promptgroup")==0) {
} else if(strcmp(name,"promptgroup")==0) {
pdbFldDes->promptgroup = findOrAddGuiGroup(value);
return;
}
if(strcmp(name,"prompt")==0) {
} else if(strcmp(name,"prompt")==0) {
pdbFldDes->prompt = epicsStrDup(value);
return;
}
if(strcmp(name,"special")==0) {
} else if(strcmp(name,"special")==0) {
int i;
for(i=0; i<SPC_NTYPES; i++) {
if(strcmp(value,pamapspcType[i].strvalue)==0) {
@@ -602,8 +598,7 @@ static void dbRecordtypeFieldItem(char *name,char *value)
}
yyerror("Illegal 'special' value.");
return;
}
if(strcmp(name,"pp")==0) {
} else if(strcmp(name,"pp")==0) {
if((strcmp(value,"YES")==0) || (strcmp(value,"TRUE")==0)) {
pdbFldDes->process_passive = TRUE;
} else if((strcmp(value,"NO")==0) || (strcmp(value,"FALSE")==0)) {
@@ -612,13 +607,11 @@ static void dbRecordtypeFieldItem(char *name,char *value)
yyerror("Illegal 'pp' value, must be YES/NO/TRUE/FALSE");
}
return;
}
if(strcmp(name,"interest")==0) {
} else if(strcmp(name,"interest")==0) {
if(sscanf(value,"%hd",&pdbFldDes->interest)!=1)
yyerror("Illegal 'interest' value, must be integer");
return;
}
if(strcmp(name,"base")==0) {
} else if(strcmp(name,"base")==0) {
if(strcmp(value,"DECIMAL")==0) {
pdbFldDes->base = CT_DECIMAL;
} else if(strcmp(value,"HEX")==0) {
@@ -627,23 +620,19 @@ static void dbRecordtypeFieldItem(char *name,char *value)
yyerror("Illegal 'base' value, must be DECIMAL/HEX");
}
return;
}
if(strcmp(name,"size")==0) {
} else if(strcmp(name,"size")==0) {
if(sscanf(value,"%hd",&pdbFldDes->size)!=1)
yyerror("Illegal 'size' value, must be integer");
return;
}
if(strcmp(name,"extra")==0) {
} else if(strcmp(name,"extra")==0) {
pdbFldDes->extra = epicsStrDup(value);
return;
}
if(strcmp(name,"menu")==0) {
} else if(strcmp(name,"menu")==0) {
pdbFldDes->ftPvt = (dbMenu *)dbFindMenu(pdbbase,value);
if(!pdbbase->ignoreMissingMenus && !pdbFldDes->ftPvt)
yyerrorAbort("menu not found");
return;
}
if(strcmp(name,"prop")==0) {
} else if(strcmp(name,"prop")==0) {
if(strcmp(value, "YES")==0)
pdbFldDes->prop = 1;
else