From 062785319a081abf44e367d7d8ba64c3ac5fce12 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Fri, 24 Mar 2023 18:23:24 +0100 Subject: [PATCH] When '.probe alli' is set, disable auto bridging and set a flag --- src/frontend/inpcom.c | 13 +++++++++++++ src/xspice/evt/evtcheck_nodes.c | 7 ++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index 9c6d67a07..2536fad8a 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -9822,6 +9822,19 @@ static void inp_check_syntax(struct card *deck) controlled_exit(EXIT_BAD); } + + /* When '.probe alli' is set, disable auto bridging and set a flag */ + for (card = deck; card; card = card->nextcard) { + char* cut_line = card->line; + if (ciprefix(".probe", cut_line) && search_plain_identifier(cut_line, "alli")) { + int i = 0; + bool bi = TRUE; + cp_vset("auto_bridge", CP_NUM, &i); + cp_vset("probe_alli_given", CP_BOOL, &bi); + break; + } + } + for (ii = 0; ii < 10; ii++) subs[ii] = NULL; diff --git a/src/xspice/evt/evtcheck_nodes.c b/src/xspice/evt/evtcheck_nodes.c index a95e0e82a..ade9dbe28 100644 --- a/src/xspice/evt/evtcheck_nodes.c +++ b/src/xspice/evt/evtcheck_nodes.c @@ -667,8 +667,13 @@ bool Evtcheck_nodes( int nl; if (strcmp(event_node->name, analog_node->name) == 0) { - if (show == AB_OFF) + if (show == AB_OFF) { + if (cp_getvar("probe_alli_given", CP_BOOL, NULL, 0)) + fprintf(stderr, "\nDot command '.probe alli' and digital nodes are not compatible.\n"); + FREE(errMsg); + errMsg = copy("Auto bridging is switched off"); return FALSE; // Auto-bridge disabled + } bridge = find_bridge(event_node, ckt, &bridge_list); if (!bridge) { /* Fatal, circuit cannot run. */