subckt.c, introduce translate_mod_name()
This commit is contained in:
parent
83943e7cd6
commit
bd46195d43
|
|
@ -1641,6 +1641,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)
|
||||
{
|
||||
|
|
@ -1708,18 +1725,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, ' ');
|
||||
|
||||
|
|
@ -1750,24 +1756,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, ' ');
|
||||
}
|
||||
|
|
@ -1789,12 +1785,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, ' ');
|
||||
|
|
@ -1822,13 +1813,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);
|
||||
|
|
@ -1861,13 +1846,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);
|
||||
|
|
@ -1961,12 +1940,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, ' ');
|
||||
|
||||
|
|
@ -1997,13 +1971,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