From 19dfaf03f369d89c2a2b3fc42358469ba5f06809 Mon Sep 17 00:00:00 2001 From: rlar Date: Thu, 26 Oct 2017 20:34:49 +0200 Subject: [PATCH] numparam, #1/2, nupa_eval(), use struct card * argument --- src/frontend/measure.c | 2 +- src/frontend/numparam/numpaif.h | 4 +++- src/frontend/numparam/spicenum.c | 6 +++++- src/frontend/subckt.c | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/frontend/measure.c b/src/frontend/measure.c index edc4ca81f..94b300cfc 100644 --- a/src/frontend/measure.c +++ b/src/frontend/measure.c @@ -403,7 +403,7 @@ do_measure( fprintf(stdout, "%-20s=", resname); if (!chk_only) { - ok = nupa_eval(meas_card->line, meas_card->linenum, meas_card->linenum_orig); + ok = nupa_eval(meas_card); if (ok) { str_ptr = strstr(meas_card->line, meastype); diff --git a/src/frontend/numparam/numpaif.h b/src/frontend/numparam/numpaif.h index 706034368..9cf8222c3 100644 --- a/src/frontend/numparam/numpaif.h +++ b/src/frontend/numparam/numpaif.h @@ -11,8 +11,10 @@ #define NUPASUBDONE 2 #define NUPAEVALDONE 3 +struct card; + extern char *nupa_copy(char *s, int linenum); -extern int nupa_eval(char *s, int linenum, int orig_linenum); +extern int nupa_eval(struct card *card); extern int nupa_signal(int sig, char *info); extern void nupa_scan(char * s, int linenum, int is_subckt); extern void nupa_list_params(FILE *cp_out); diff --git a/src/frontend/numparam/spicenum.c b/src/frontend/numparam/spicenum.c index b6879ab79..ff21a85ca 100644 --- a/src/frontend/numparam/spicenum.c +++ b/src/frontend/numparam/spicenum.c @@ -798,7 +798,7 @@ nupa_copy(char *s, int linenum) int -nupa_eval(char *s, int linenum, int orig_linenum) +nupa_eval(struct card *card) /* s points to a partially transformed line. compute variables if linenum points to a & or .param line. if ( the original is an X line, compute actual params.; @@ -806,6 +806,10 @@ nupa_eval(char *s, int linenum, int orig_linenum) All the X lines are preserved (commented out) in the expanded circuit. */ { + char *s = card->line; + int linenum = card->linenum; + int orig_linenum = card->linenum_orig; + int idef; /* subckt definition line */ char c, keep, *ptr; SPICE_DSTRING subname; /* dynamic string for subcircuit name */ diff --git a/src/frontend/subckt.c b/src/frontend/subckt.c index 5f04f5d87..e1b81ba89 100644 --- a/src/frontend/subckt.c +++ b/src/frontend/subckt.c @@ -372,7 +372,7 @@ inp_subcktexpand(struct card *deck) { if (ciprefix(".meas", c->line) && strstr(c->line, "param")) { ; } else { - nupa_eval(c->line, c->linenum, c->linenum_orig); + nupa_eval(c); } #ifdef TRACE