subckt.c, introduce translate_mod_name()
This commit is contained in:
parent
db213fd8d2
commit
405c6f6f02
|
|
@ -1605,6 +1605,23 @@ modtranslate(struct line *c, char *subname, wordlist *new_modnames)
|
|||
* Q1 c b e 2N3904
|
||||
* after: Q1 c b e U1:2N3904
|
||||
*-------------------------------------------------------------------*/
|
||||
|
||||
static void
|
||||
translate_mod_name(struct bxx_buffer *buffer, char *modname, char *subname, struct wordlist *orig_modnames)
|
||||
{
|
||||
/*
|
||||
* Note that we compare against orig_modnames,
|
||||
* which is the list of untranslated names of models.
|
||||
*/
|
||||
wordlist *wlsub = wl_find(modname, orig_modnames);
|
||||
|
||||
if (!wlsub)
|
||||
bxx_printf(buffer, "%s", modname);
|
||||
else
|
||||
bxx_printf(buffer, "%s:%s", subname, modname);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
devmodtranslate(struct line *s, char *subname, wordlist * const orig_modnames)
|
||||
{
|
||||
|
|
@ -1672,18 +1689,7 @@ devmodtranslate(struct line *s, char *subname, wordlist * const orig_modnames)
|
|||
}
|
||||
} /* while */
|
||||
|
||||
|
||||
/*
|
||||
* Note that we compare against orig_modnames,
|
||||
* which is the list of untranslated names of models.
|
||||
*/
|
||||
wlsub = wl_find(name, orig_modnames);
|
||||
|
||||
if (!wlsub)
|
||||
bxx_printf(&buffer, "%s", name);
|
||||
else
|
||||
bxx_printf(&buffer, "%s:%s", subname, name);
|
||||
|
||||
translate_mod_name(&buffer, name, subname, orig_modnames);
|
||||
tfree(name);
|
||||
bxx_putc(&buffer, ' ');
|
||||
|
||||
|
|
@ -1714,24 +1720,14 @@ devmodtranslate(struct line *s, char *subname, wordlist * const orig_modnames)
|
|||
|
||||
if (*t) { /* if there is a model, process it. . . . */
|
||||
name = gettok(&t);
|
||||
wlsub = wl_find(name, orig_modnames);
|
||||
|
||||
if (!wlsub)
|
||||
bxx_printf(&buffer, "%s", name);
|
||||
else
|
||||
bxx_printf(&buffer, "%s:%s", subname, name);
|
||||
translate_mod_name(&buffer, name, subname, orig_modnames);
|
||||
tfree(name);
|
||||
bxx_putc(&buffer, ' ');
|
||||
}
|
||||
|
||||
if (*t) {
|
||||
name = gettok(&t);
|
||||
wlsub = wl_find(name, orig_modnames);
|
||||
|
||||
if (!wlsub)
|
||||
bxx_printf(&buffer, "%s", name);
|
||||
else
|
||||
bxx_printf(&buffer, "%s:%s", subname, name);
|
||||
translate_mod_name(&buffer, name, subname, orig_modnames);
|
||||
tfree(name);
|
||||
bxx_putc(&buffer, ' ');
|
||||
}
|
||||
|
|
@ -1753,12 +1749,7 @@ devmodtranslate(struct line *s, char *subname, wordlist * const orig_modnames)
|
|||
tfree(name);
|
||||
name = gettok(&t);
|
||||
|
||||
wlsub = wl_find(name, orig_modnames);
|
||||
|
||||
if (!wlsub)
|
||||
bxx_printf(&buffer, "%s", name);
|
||||
else
|
||||
bxx_printf(&buffer, "%s:%s", subname, name);
|
||||
translate_mod_name(&buffer, name, subname, orig_modnames);
|
||||
|
||||
tfree(name);
|
||||
bxx_putc(&buffer, ' ');
|
||||
|
|
@ -1786,13 +1777,7 @@ devmodtranslate(struct line *s, char *subname, wordlist * const orig_modnames)
|
|||
tfree(name);
|
||||
name = gettok(&t);
|
||||
|
||||
wlsub = wl_find(name, orig_modnames);
|
||||
|
||||
if (!wlsub)
|
||||
bxx_printf(&buffer, "%s", name);
|
||||
else
|
||||
bxx_printf(&buffer, "%s:%s", subname, name);
|
||||
|
||||
translate_mod_name(&buffer, name, subname, orig_modnames);
|
||||
tfree(name);
|
||||
bxx_putc(&buffer, ' ');
|
||||
bxx_put_cstring(&buffer, t);
|
||||
|
|
@ -1825,13 +1810,7 @@ devmodtranslate(struct line *s, char *subname, wordlist * const orig_modnames)
|
|||
tfree(name);
|
||||
name = gettok(&t);
|
||||
|
||||
wlsub = wl_find(name, orig_modnames);
|
||||
|
||||
if (!wlsub)
|
||||
bxx_printf(&buffer, "%s", name);
|
||||
else
|
||||
bxx_printf(&buffer, "%s:%s", subname, name);
|
||||
|
||||
translate_mod_name(&buffer, name, subname, orig_modnames);
|
||||
bxx_putc(&buffer, ' ');
|
||||
bxx_put_cstring(&buffer, t);
|
||||
tfree(s->li_line);
|
||||
|
|
@ -1924,12 +1903,7 @@ devmodtranslate(struct line *s, char *subname, wordlist * const orig_modnames)
|
|||
}
|
||||
#endif
|
||||
|
||||
wlsub = wl_find(name, orig_modnames);
|
||||
if (!wlsub) /* Fallback w/o subckt name before */
|
||||
bxx_printf(&buffer, "%s", name);
|
||||
else
|
||||
bxx_printf(&buffer, "%s:%s", subname, name);
|
||||
|
||||
translate_mod_name(&buffer, name, subname, orig_modnames);
|
||||
tfree(name);
|
||||
bxx_putc(&buffer, ' ');
|
||||
|
||||
|
|
@ -1960,13 +1934,7 @@ devmodtranslate(struct line *s, char *subname, wordlist * const orig_modnames)
|
|||
}
|
||||
} /* while */
|
||||
|
||||
wlsub = wl_find(name, orig_modnames);
|
||||
|
||||
if (!wlsub)
|
||||
bxx_printf(&buffer, "%s", name);
|
||||
else
|
||||
bxx_printf(&buffer, "%s:%s", subname, name);
|
||||
|
||||
translate_mod_name(&buffer, name, subname, orig_modnames);
|
||||
tfree(name);
|
||||
bxx_putc(&buffer, ' ');
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue