From 2f1d3df8c79056af35f87ba1c560bea0cb024e3e Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Thu, 10 Sep 2020 23:21:34 +0200 Subject: [PATCH] add a Spectre compatibility mode --- src/frontend/inpcom.c | 7 ++++++- src/include/ngspice/compatmode.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index 9bacc2f0f..2274abd99 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -525,7 +525,7 @@ char *find_back_assignment(const char *p, const char *start) /* Set a compatibility flag. Currently available are flags for: -- LTSPICE, HSPICE, Spice3, PSPICE, KiCad +- LTSPICE, HSPICE, Spice3, PSPICE, KiCad, Spectre */ struct compat newcompat; static void new_compat_mode(void) @@ -536,6 +536,7 @@ static void new_compat_mode(void) newcompat.lt = FALSE; newcompat.ki = FALSE; newcompat.a = FALSE; + newcompat.spe = FALSE; if (cp_getvar("ngbehavior", CP_STRING, behaviour, sizeof(behaviour))) { if (strstr(behaviour, "hs")) newcompat.hs = TRUE; @@ -547,6 +548,10 @@ static void new_compat_mode(void) newcompat.ki = TRUE; if (strstr(behaviour, "a")) newcompat.a = TRUE; + if (strstr(behaviour, "spe")) { + newcompat.spe = TRUE; + newcompat.ps = newcompat.lt = newcompat.ki = newcompat.a = FALSE; + } } if (newcompat.hs && newcompat.ps) { fprintf(stderr, "Warning: hs and ps compatibility are mutually exclusive, switch to ps!\n"); diff --git a/src/include/ngspice/compatmode.h b/src/include/ngspice/compatmode.h index 5ba1fb5ff..1d4caafaf 100644 --- a/src/include/ngspice/compatmode.h +++ b/src/include/ngspice/compatmode.h @@ -12,6 +12,7 @@ struct compat bool lt; bool ki; bool a; + bool spe; }; extern struct compat newcompat;