ft_find_analysis_parm(), change signature

This commit is contained in:
rlar 2013-07-28 14:39:35 +02:00
parent 4d65fb908d
commit 23d0f41e66
6 changed files with 17 additions and 35 deletions

View File

@ -39,7 +39,6 @@ if_sens_run(CKTcircuit *ckt, wordlist *args, INPtables *tab)
char *name;
char *line;
card deck;
int i;
int error;
int save;
int flag = 0;
@ -325,9 +324,9 @@ next:
else
flag = 1;
i = ft_find_analysis_parm(save, token);
if_parm = ft_find_analysis_parm(save, token);
if (i < 0) {
if (!if_parm) {
/* didn't find it! */
current->error = INPerrCat
(current->error,
@ -335,8 +334,6 @@ next:
continue;
}
if_parm = &(ft_sim->analyses[save]->analysisParms[i]);
/* found it, analysis which, parameter i */
if (if_parm->dataType & IF_FLAG) {
/* one of the keywords! */

View File

@ -390,7 +390,7 @@ int
if_option(CKTcircuit *ckt, char *name, enum cp_types type, void *value)
{
IFvalue pval;
int err, i;
int err;
char **vv;
int which = -1;
IFparm *if_parm;
@ -428,8 +428,7 @@ if_option(CKTcircuit *ckt, char *name, enum cp_types type, void *value)
return 0;
}
i = ft_find_analysis_parm(which, name);
if_parm = (i >= 0) ? &(ft_sim->analyses[which]->analysisParms[i]) : NULL;
if_parm = ft_find_analysis_parm(which, name);
if (!if_parm || !(if_parm->dataType & IF_SET)) {
/* See if this is unsupported or obsolete. */
@ -1211,14 +1210,11 @@ finddev(CKTcircuit *ckt, char *name, GENinstance **devptr, GENmodel **modptr)
int
if_analQbyName(CKTcircuit *ckt, int which, JOB *anal, char *name, IFvalue *parm)
{
int i;
IFparm *if_parm;
i = ft_find_analysis_parm(which, name);
if (i < 0)
if_parm = ft_find_analysis_parm(which, name);
if (!if_parm)
return (E_BADPARM);
if_parm = &(ft_sim->analyses[which]->analysisParms[i]);
return (ft_sim->askAnalysisQuest
(ckt, anal, if_parm->id, parm, NULL));
}
@ -1298,13 +1294,11 @@ if_getstat(CKTcircuit *ckt, char *name)
if (name) {
i = ft_find_analysis_parm(options_idx, name);
if_parm = ft_find_analysis_parm(options_idx, name);
if (i < 0)
if (!if_parm)
return (NULL);
if_parm = &(options->analysisParms[i]);
if (ft_sim->askAnalysisQuest (ckt,
&(ft_curckt->ci_curTask->taskOptions),
if_parm->id, &parm,
@ -1746,12 +1740,12 @@ ft_find_analysis(char *name)
}
int
IFparm *
ft_find_analysis_parm(int which, char *name)
{
int i;
for (i = 0; i < ft_sim->analyses[which]->numParms; i++)
if (!strcmp(ft_sim->analyses[which]->analysisParms[i].keyword, name))
return i;
return -1;
return &(ft_sim->analyses[which]->analysisParms[i]);
return NULL;
}

View File

@ -307,7 +307,7 @@ extern void if_setparam_model(CKTcircuit *ckt, char **name, char *val );
extern void if_setparam(CKTcircuit *ckt, char **name, char *param, struct dvec *val, int do_model);
extern struct variable *if_getstat(CKTcircuit *ckt, char *name);
extern int ft_find_analysis(char *name);
extern int ft_find_analysis_parm(int which, char *name);
extern IFparm * ft_find_analysis_parm(int which, char *name);
/* typesdef.c */

View File

@ -501,7 +501,6 @@ dot_sens2(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
IFvalue ptemp; /* a value structure to package resistance into */
IFvalue *parm; /* a pointer to a value struct for function returns */
int which; /* which analysis we are performing */
int i; /* generic loop variable */
char *token; /* a token from the line */
NG_IGNORE(gnode);
@ -517,15 +516,13 @@ dot_sens2(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
IFparm *if_parm;
/* read the entire line */
INPgetTok(&line, &token, 1);
i = ft_find_analysis_parm(which, token);
if (i < 0) {
if_parm = ft_find_analysis_parm(which, token);
if (!if_parm) {
/* didn't find it! */
LITERR(" Error: unknown parameter on .sens-ignored \n");
continue;
}
if_parm = &(ft_sim->analyses[which]->analysisParms[i]);
/* found it, analysis which, parameter i */
if (if_parm->dataType & IF_FLAG) {
/* one of the keywords! */

View File

@ -15,7 +15,6 @@ int
INPapName(CKTcircuit *ckt, int type, JOB *analPtr, char *parmname,
IFvalue * value)
{
int i;
IFparm *if_parm;
if (!parmname)
@ -24,12 +23,11 @@ INPapName(CKTcircuit *ckt, int type, JOB *analPtr, char *parmname,
if (!ft_sim->analyses[type])
return (E_BADPARM);
i = ft_find_analysis_parm(type, parmname);
if_parm = ft_find_analysis_parm(type, parmname);
if (i < 0)
if (!if_parm)
return (E_BADPARM);
if_parm = &(ft_sim->analyses[type]->analysisParms[i]);
return ft_sim->setAnalysisParm (ckt, analPtr,
if_parm->id,
value,

View File

@ -29,9 +29,7 @@ INPdoOpts(
char *errmsg;
IFvalue *val;
int error;
int i;
int which;
IFanalysis *prm = NULL;
which = ft_find_analysis("options");
if(which == -1) {
@ -39,14 +37,12 @@ INPdoOpts(
"error: analysis options table not found\n"));
return;
}
prm = ft_sim->analyses[which];
line = optCard->line;
INPgetTok(&line,&token,1); /* throw away '.option' */
while (*line) {
IFparm *if_parm;
INPgetTok(&line,&token,1);
i = ft_find_analysis_parm(which, token);
if_parm = (i >= 0) ? &(prm->analysisParms[i]) : NULL;
if_parm = ft_find_analysis_parm(which, token);
if(if_parm && !(if_parm->dataType & IF_UNIMP_MASK)) {
errmsg = TMALLOC(char, 45 + strlen(token));
(void) sprintf(errmsg,