Merge branch 'pre-master-45' of ssh://git.code.sf.net/p/ngspice/ngspice into pre-master-45

This commit is contained in:
dwarning 2025-07-28 00:27:15 +02:00
commit f7fd11692d
4 changed files with 32 additions and 20 deletions

View File

@ -92,10 +92,11 @@ settrace(wordlist *wl, int what, char *name)
continue;
}
/* Don't save a nodename more than once */
/* Don't save a nodename more than once, except for token 'all' */
if (db_type == DB_SAVE) {
for (dbcheck = dbs; dbcheck; dbcheck = dbcheck->db_next) {
if (dbcheck->db_type == DB_SAVE && eq(dbcheck->db_nodename1, db_nodename1)) {
if (dbcheck->db_type == DB_SAVE && eq(dbcheck->db_nodename1, db_nodename1) &&
!eq("all", db_nodename1)) {
tfree(db_nodename1);
goto loopend;
}

View File

@ -122,7 +122,7 @@ void
com_print(wordlist *wl)
{
struct dvec *v, *lv = NULL, *bv, *nv, *vecs = NULL;
int i, j, ll, width = DEF_WIDTH, height = DEF_HEIGHT, npoints, lineno;
int i, j, ll, width = DEF_WIDTH, height = DEF_HEIGHT, npoints, lineno, npages = 0;
struct pnode *pn, *names;
struct plot *p;
bool col = TRUE, nobreak = FALSE, noprintscale, plotnames = FALSE;
@ -292,6 +292,7 @@ com_print(wordlist *wl)
noprintscale = cp_getvar("noprintscale", CP_BOOL, NULL, 0);
bv = vecs;
nextpage:
npages++;
/* Make the first vector of every page be the scale... */
/* XXX But what if there is no scale? e.g. op, pz */
if (!noprintscale && bv->v_plot->pl_ndims)
@ -313,21 +314,24 @@ com_print(wordlist *wl)
break;
}
/* Print the header on the first page only. */
p = bv->v_plot;
j = (width - (int) strlen(p->pl_title)) / 2; /* Yes, keep "(int)" */
if (j < 0)
j = 0;
for (i = 0; i < j; i++)
buf2[i] = ' ';
buf2[j] = '\0';
out_send(buf2);
out_send(p->pl_title);
out_send("\n");
out_send(buf2);
(void) sprintf(buf, "%s %s", p->pl_name, p->pl_date);
out_send(buf);
out_send("\n");
/* Print the header on the first page only, if 'option nopage'. */
if (!ft_nopage || npages == 1) {
/* print the header */
p = bv->v_plot;
j = (width - (int)strlen(p->pl_title)) / 2; /* Yes, keep "(int)" */
if (j < 0)
j = 0;
for (i = 0; i < j; i++)
buf2[i] = ' ';
buf2[j] = '\0';
out_send(buf2);
out_send(p->pl_title);
out_send("\n");
out_send(buf2);
(void)sprintf(buf, "%s %s", p->pl_name, p->pl_date);
out_send(buf);
out_send("\n");
}
for (i = 0; i < width; i++)
buf2[i] = '-';
buf2[width] = '\n';
@ -403,7 +407,10 @@ com_print(wordlist *wl)
goto done;
if (j == npoints) { /* More vectors to print. */
bv = lv;
out_send("\f\n"); /* Form feed. */
if(nobreak)
out_send("\n"); /* return without form feed. */
else
out_send("\f\n"); /* Form feed. */
goto nextpage;
}

View File

@ -838,6 +838,10 @@ INP2dot(CKTcircuit *ckt, INPtables *tab, struct card *current, TSKtask *task, CK
/* don't have to do anything, since models were all done in
* pass 1 */
goto quit;
} else if (strcmp(token, ".param") == 0) {
/* don't have to do anything, since params were all done
* elsewhere */
goto quit;
} else if ((strcmp(token, ".width") == 0) ||
strcmp(token, ".print") == 0 || strcmp(token, ".plot") == 0) {
/* obsolete - ignore */

View File

@ -21,7 +21,7 @@ vdm 1 11 dc 0 sin(0 0.1 5meg) ac 1
vcc 8 0 12
vee 9 0 -12
.options noacct
.options noacct nopage
* Analyses:
.tf v(5) vcm