From 23d0f41e66fd003193c639e2dfefd78f4e22ed7f Mon Sep 17 00:00:00 2001 From: rlar Date: Sun, 28 Jul 2013 14:39:35 +0200 Subject: [PATCH] ft_find_analysis_parm(), change signature --- src/frontend/shyu.c | 7 ++----- src/frontend/spiceif.c | 24 +++++++++--------------- src/include/ngspice/fteext.h | 2 +- src/spicelib/parser/inp2dot.c | 7 ++----- src/spicelib/parser/inpapnam.c | 6 ++---- src/spicelib/parser/inpdoopt.c | 6 +----- 6 files changed, 17 insertions(+), 35 deletions(-) diff --git a/src/frontend/shyu.c b/src/frontend/shyu.c index 6b9164b01..69ad909ea 100644 --- a/src/frontend/shyu.c +++ b/src/frontend/shyu.c @@ -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! */ diff --git a/src/frontend/spiceif.c b/src/frontend/spiceif.c index 4927a9e4b..0b720cd68 100644 --- a/src/frontend/spiceif.c +++ b/src/frontend/spiceif.c @@ -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; } diff --git a/src/include/ngspice/fteext.h b/src/include/ngspice/fteext.h index 6747f6881..3b9fba9a7 100644 --- a/src/include/ngspice/fteext.h +++ b/src/include/ngspice/fteext.h @@ -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 */ diff --git a/src/spicelib/parser/inp2dot.c b/src/spicelib/parser/inp2dot.c index d76544e4c..fcf0a2885 100644 --- a/src/spicelib/parser/inp2dot.c +++ b/src/spicelib/parser/inp2dot.c @@ -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! */ diff --git a/src/spicelib/parser/inpapnam.c b/src/spicelib/parser/inpapnam.c index f96aa4ab4..64c47b180 100644 --- a/src/spicelib/parser/inpapnam.c +++ b/src/spicelib/parser/inpapnam.c @@ -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, diff --git a/src/spicelib/parser/inpdoopt.c b/src/spicelib/parser/inpdoopt.c index c44a5c34e..977282630 100644 --- a/src/spicelib/parser/inpdoopt.c +++ b/src/spicelib/parser/inpdoopt.c @@ -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,