diff --git a/src/frontend/ftesopt.c b/src/frontend/ftesopt.c index ac711596d..b58f500f3 100644 --- a/src/frontend/ftesopt.c +++ b/src/frontend/ftesopt.c @@ -52,18 +52,13 @@ ft_getstat(struct circ *ci, char *name) static struct variable * getFTEstat(struct FTEparm *p, FTESTATistics *stat, struct variable *next) { - struct variable *v; - switch (p->id) { case FTEOPT_NLDECK: - v = var_alloc_num(copy(p->description), stat->FTESTATdeckNumLines, next); - return v; + return var_alloc_num(copy(p->description), stat->FTESTATdeckNumLines, next); case FTEOPT_NLT: - v = var_alloc_real(copy(p->description), stat->FTESTATnetLoadTime, next); - return v; + return var_alloc_real(copy(p->description), stat->FTESTATnetLoadTime, next); case FTEOPT_NPT: - v = var_alloc_real(copy(p->description), stat->FTESTATnetParseTime, next); - return v; + return var_alloc_real(copy(p->description), stat->FTESTATnetParseTime, next); default: return NULL; } diff --git a/src/frontend/options.c b/src/frontend/options.c index 05cc8e2c0..a64cf5849 100644 --- a/src/frontend/options.c +++ b/src/frontend/options.c @@ -48,11 +48,15 @@ cp_enqvar(char *word) if (!d) return (NULL); + if (d->v_link2) + fprintf(cp_err, + "Warning: only one vector may be accessed with the $& notation.\n"); + if (d->v_length == 1) { double value = isreal(d) ? d->v_realdata[0] : realpart(d->v_compdata[0]); - vv = var_alloc_real(copy(word), value, NULL); + return var_alloc_real(copy(word), value, NULL); } else { struct variable *list = NULL; int i; @@ -62,38 +66,30 @@ cp_enqvar(char *word) : realpart(d->v_compdata[i]); list = var_alloc_real(NULL, value, list); } - vv = var_alloc_vlist(copy(word), list, NULL); + return var_alloc_vlist(copy(word), list, NULL); } - - if (d->v_link2) - fprintf(cp_err, - "Warning: only one vector may be accessed with the $& notation.\n"); - return (vv); - } if (plot_cur) { for (vv = plot_cur->pl_env; vv; vv = vv->va_next) if (eq(vv->va_name, word)) return (vv); - if (eq(word, "curplotname")) { - vv = var_alloc_string(copy(word), copy(plot_cur->pl_name), NULL); - } else if (eq(word, "curplottitle")) { - vv = var_alloc_string(copy(word), copy(plot_cur->pl_title), NULL); - } else if (eq(word, "curplotdate")) { - vv = var_alloc_string(copy(word), copy(plot_cur->pl_date), NULL); - } else if (eq(word, "curplot")) { - vv = var_alloc_string(copy(word), copy(plot_cur->pl_typename), NULL); - } else if (eq(word, "plots")) { + if (eq(word, "curplotname")) + return var_alloc_string(copy(word), copy(plot_cur->pl_name), NULL); + if (eq(word, "curplottitle")) + return var_alloc_string(copy(word), copy(plot_cur->pl_title), NULL); + if (eq(word, "curplotdate")) + return var_alloc_string(copy(word), copy(plot_cur->pl_date), NULL); + if (eq(word, "curplot")) + return var_alloc_string(copy(word), copy(plot_cur->pl_typename), NULL); + if (eq(word, "plots")) { struct variable *list = NULL; struct plot *pl; for (pl = plot_list; pl; pl = pl->pl_next) { list = var_alloc_string(NULL, copy(pl->pl_typename), list); } - vv = var_alloc_vlist(copy(word), list, NULL); + return var_alloc_vlist(copy(word), list, NULL); } - if (vv) - return (vv); } if (ft_curckt) diff --git a/src/frontend/spiceif.c b/src/frontend/spiceif.c index d13a123d1..021b2915e 100644 --- a/src/frontend/spiceif.c +++ b/src/frontend/spiceif.c @@ -960,30 +960,24 @@ parmtovar(IFvalue *pv, IFparm *opt) { /* It is not clear whether we want to name the variable * by `keyword' or by `description' */ - struct variable *vv; switch (opt->dataType & IF_VARTYPES) { case IF_INTEGER: - vv = var_alloc_num(copy(opt->description), pv->iValue, NULL); - return vv; + return var_alloc_num(copy(opt->description), pv->iValue, NULL); case IF_REAL: case IF_COMPLEX: - vv = var_alloc_real(copy(opt->description), pv->rValue, NULL); - return vv; + return var_alloc_real(copy(opt->description), pv->rValue, NULL); case IF_STRING: - vv = var_alloc_string(copy(opt->description), pv->sValue, NULL); - return vv; + return var_alloc_string(copy(opt->description), pv->sValue, NULL); case IF_FLAG: - vv = var_alloc_bool(copy(opt->description), pv->iValue ? TRUE : FALSE, NULL); - return vv; + return var_alloc_bool(copy(opt->description), pv->iValue ? TRUE : FALSE, NULL); case IF_REALVEC: { struct variable *list = NULL; int i; for (i = pv->v.numValue; --i >= 0;) { list = var_alloc_real(NULL, pv->v.vec.rVec[i], list); } - vv = var_alloc_vlist(copy(opt->description), list, NULL); - return vv; + return var_alloc_vlist(copy(opt->description), list, NULL); /* It is a linked list where the first node is a variable * pointing to the different values of the variables. * diff --git a/src/frontend/variable.c b/src/frontend/variable.c index 241012a32..f1d7bccfe 100644 --- a/src/frontend/variable.c +++ b/src/frontend/variable.c @@ -278,8 +278,7 @@ cp_setparse(wordlist *wl) wl = wl->wl_next; if ((!wl || (*wl->wl_word != '=')) && !strchr(name, '=')) { - vv = var_alloc_bool(copy(name), TRUE, vars); - vars = vv; + vars = var_alloc_bool(copy(name), TRUE, vars); tfree(name); /*DG: cp_unquote Memory leak*/ continue; } @@ -362,8 +361,7 @@ cp_setparse(wordlist *wl) return (NULL); } - vv = var_alloc_vlist(copy(name), listv, vars); - vars = vv; + vars = var_alloc_vlist(copy(name), listv, vars); wl = wl->wl_next; continue; @@ -373,11 +371,9 @@ cp_setparse(wordlist *wl) td = ft_numparse(&ss, FALSE); if (td) { /*** We should try to get CP_NUM's... */ - vv = var_alloc_real(copy(name), *td, vars); - vars = vv; + vars = var_alloc_real(copy(name), *td, vars); } else { - vv = var_alloc_string(copy(name), copy(val), vars); - vars = vv; + vars = var_alloc_string(copy(name), copy(val), vars); } tfree(copyval); /*DG: must free ss any way to avoid cp_unquote memory leak */ tfree(name); /* va: cp_unquote memory leak: free name for every loop */