subckt.c, #1/5 cleanup modtranslate() signature
This commit is contained in:
parent
609c246b95
commit
cb25ce757e
|
|
@ -93,7 +93,7 @@ static int settrans(char *formal, char *actual, char *subname);
|
|||
static char *gettrans(const char *name, const char *name_end);
|
||||
static int numnodes(char *name, struct subs *subs, wordlist const *modnames);
|
||||
static int numdevs(char *s);
|
||||
static bool modtranslate(struct line *deck, char *subname, wordlist **submod, wordlist **const modnames);
|
||||
static wordlist *modtranslate(struct line *deck, char *subname, wordlist **const modnames);
|
||||
static void devmodtranslate(struct line *deck, char *subname, wordlist * const submod);
|
||||
static int inp_numnodes(char c);
|
||||
|
||||
|
|
@ -397,7 +397,7 @@ doit(struct line *deck, wordlist *modnames) {
|
|||
|
||||
/* Save all the old stuff... */
|
||||
struct subs *subs = NULL;
|
||||
wordlist *submod = NULL;
|
||||
wordlist *submod;
|
||||
wordlist *xmodnames = modnames;
|
||||
|
||||
#ifdef TRACE
|
||||
|
|
@ -607,8 +607,9 @@ doit(struct line *deck, wordlist *modnames) {
|
|||
lcc = inp_deckcopy(sss->su_def);
|
||||
|
||||
/* Change the names of .models found in .subckts . . . */
|
||||
submod = NULL;
|
||||
if (modtranslate(lcc, scname, &submod, &modnames)) /* this translates the model name in the .model line */
|
||||
/* this translates the model name in the .model line */
|
||||
submod = modtranslate(lcc, scname, &modnames);
|
||||
if (submod)
|
||||
devmodtranslate(lcc, scname, submod); /* This translates the model name on all components in the deck */
|
||||
wl_free(submod);
|
||||
|
||||
|
|
@ -1660,15 +1661,14 @@ numdevs(char *s)
|
|||
/*----------------------------------------------------------------------*
|
||||
* modtranslate -- translates .model lines found in subckt definitions.
|
||||
* Calling arguments are:
|
||||
* *deck = pointer to the .subckt definition (linked list)
|
||||
* *c = pointer to the .subckt definition (linked list)
|
||||
* *subname = pointer to the subcircuit name used at the subcircuit invocation (string)
|
||||
* Modtranslate returns TRUE if it translated a model name, FALSE
|
||||
* otherwise.
|
||||
* modtranslate returns the list of model names which have been translated
|
||||
*----------------------------------------------------------------------*/
|
||||
static bool
|
||||
modtranslate(struct line *c, char *subname, wordlist **submod, wordlist ** const modnames)
|
||||
static wordlist *
|
||||
modtranslate(struct line *c, char *subname, wordlist ** const modnames)
|
||||
{
|
||||
bool gotone = FALSE;
|
||||
wordlist *submod = NULL;
|
||||
|
||||
for (; c; c = c->li_next)
|
||||
if (ciprefix(".model", c->li_line)) {
|
||||
|
|
@ -1688,7 +1688,7 @@ modtranslate(struct line *c, char *subname, wordlist **submod, wordlist ** const
|
|||
translated_model_name = tprintf("%s:%s", subname, model_name);
|
||||
|
||||
/* remember the translation */
|
||||
*submod = wl_cons(model_name, *submod);
|
||||
submod = wl_cons(model_name, submod);
|
||||
*modnames = wl_cons(translated_model_name, *modnames);
|
||||
|
||||
/* perform the actual translation of this .model line */
|
||||
|
|
@ -1702,10 +1702,9 @@ modtranslate(struct line *c, char *subname, wordlist **submod, wordlist ** const
|
|||
model_name, translated_model_name);
|
||||
#endif
|
||||
|
||||
gotone = TRUE;
|
||||
}
|
||||
|
||||
return gotone;
|
||||
return submod;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue