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. */