Browse Source

numparam, #2/2, nupa_copy(), use struct card * argument

pre-master-46
rlar 9 years ago
parent
commit
77da3c6f26
  1. 2
      src/frontend/numparam/numpaif.h
  2. 7
      src/frontend/numparam/spicenum.c
  3. 2
      src/frontend/subckt.c

2
src/frontend/numparam/numpaif.h

@ -13,7 +13,7 @@
struct card; struct card;
extern char *nupa_copy(char *s, int linenum);
extern char *nupa_copy(struct card *c);
extern int nupa_eval(struct card *card); extern int nupa_eval(struct card *card);
extern int nupa_signal(int sig, char *info); extern int nupa_signal(int sig, char *info);
extern void nupa_scan(char * s, int linenum, int is_subckt); extern void nupa_scan(char * s, int linenum, int is_subckt);

7
src/frontend/numparam/spicenum.c

@ -730,7 +730,7 @@ nupa_copy_inst_dico(void)
char * char *
nupa_copy(char *s, int linenum)
nupa_copy(struct card *deck)
/* returns a copy (not quite) of s in freshly allocated memory. /* returns a copy (not quite) of s in freshly allocated memory.
linenum, for info only, is the source line number. linenum, for info only, is the source line number.
origin pointer s is kept, memory is freed later in nupa_done. origin pointer s is kept, memory is freed later in nupa_done.
@ -744,6 +744,9 @@ nupa_copy(char *s, int linenum)
- substitute placeholders for all {..} --> 10-digit numeric values. - substitute placeholders for all {..} --> 10-digit numeric values.
*/ */
{ {
char * const s = deck->line;
const int linenum = deck->linenum;
char *t; char *t;
int ls; int ls;
char c, d; char c, d;
@ -762,7 +765,7 @@ nupa_copy(char *s, int linenum)
if ((!inexpansionS) && (linenum >= 0) && (linenum <= dynmaxline)) { if ((!inexpansionS) && (linenum >= 0) && (linenum <= dynmaxline)) {
linecountS++; linecountS++;
dicoS->dynrefptr[linenum] = s;
dicoS->dynrefptr[linenum] = deck->line;
c = transform(dicoS, &u, incontrolS, &keywd); c = transform(dicoS, &u, incontrolS, &keywd);
if (c == 'C') if (c == 'C')
incontrolS = 1; incontrolS = 1;

2
src/frontend/subckt.c

@ -242,7 +242,7 @@ inp_subcktexpand(struct card *deck) {
} }
/* now copy instances */ /* now copy instances */
for (c = deck; c; c = c->nextcard) /* first Numparam pass */ for (c = deck; c; c = c->nextcard) /* first Numparam pass */
c->line = nupa_copy(c->line, c->linenum);
c->line = nupa_copy(c);
#ifdef TRACE #ifdef TRACE
fprintf(stderr, "Numparams transformed deck:\n"); fprintf(stderr, "Numparams transformed deck:\n");

Loading…
Cancel
Save