breakp2.c: allow v(12) and i(vdd) in 'save' command
This commit is contained in:
parent
503333632e
commit
0e0fc4807f
|
|
@ -22,6 +22,7 @@ struct dbcomm *dbs = NULL; /* export for iplot */
|
|||
/* used in breakp.c and breakp2.c */
|
||||
int debugnumber = 1;
|
||||
|
||||
static char *copynode(char* s);
|
||||
|
||||
/* Analyse the data given by the .save card or 'save' command.
|
||||
Store the data in the global dbs struct.
|
||||
|
|
@ -82,7 +83,8 @@ settrace(wordlist *wl, int what, char *name)
|
|||
d->db_type = DB_SAVE;
|
||||
break;
|
||||
}
|
||||
d->db_nodename1 = copy(s);
|
||||
/* v(2) --> 2, i(vds) --> vds#branch */
|
||||
d->db_nodename1 = copynode(s);
|
||||
/* wrd_chtrace(s, TRUE, what); */
|
||||
}
|
||||
|
||||
|
|
@ -131,3 +133,32 @@ ft_getSaves(struct save_info **savesp)
|
|||
|
||||
return (count);
|
||||
}
|
||||
|
||||
/* v(2) --> 2, i(vds) --> vds#branch, 3 --> 3, @mn1[vth0] --> @mn1[vth0]
|
||||
( derived from wordlist *gettoks(char *s) )
|
||||
*/
|
||||
static char* copynode(char *s)
|
||||
{
|
||||
char *l, *r;
|
||||
char *ret = NULL;
|
||||
|
||||
if (strstr(s, "("))
|
||||
s = stripWhiteSpacesInsideParens(s);
|
||||
|
||||
l = strrchr(s, '('/*)*/);
|
||||
if (!l) {
|
||||
ret = copy(s);
|
||||
return ret;
|
||||
}
|
||||
|
||||
r = strchr(s, /*(*/')');
|
||||
*r = '\0';
|
||||
if (*(l - 1) == 'i' || *(l - 1) == 'I') {
|
||||
char buf[513];
|
||||
sprintf(buf, "%s#branch", l + 1);
|
||||
ret = copy(buf);
|
||||
} else
|
||||
ret = copy(l + 1);
|
||||
|
||||
return ret;
|
||||
}
|
||||
Loading…
Reference in New Issue