diff --git a/doc/html/macro.html b/doc/html/macro.html index ea790a3d..e12e96e0 100644 --- a/doc/html/macro.html +++ b/doc/html/macro.html @@ -68,7 +68,7 @@ Define or print a macro called char Buttons are treated just like keys for the purpose of defining macros. While the official names for buttons - in keysymdef.h are "XK_Pointer_Button_1", + in keysymdef.h are "XK_Pointer_Button1", etc., the macro command accepts the abbreviated forms Button1, and so forth.

diff --git a/ext2spice/ext2spice.c b/ext2spice/ext2spice.c index 65eb7326..b51215ce 100644 --- a/ext2spice/ext2spice.c +++ b/ext2spice/ext2spice.c @@ -1501,9 +1501,7 @@ subcktVisit(use, hierName, is_top) { nodeName = nodeList[portidx]; - if (nodeName == NULL) - TxError("No port connection on port %d; need to resolve.\n", portidx); - else + if (nodeName != NULL) { if (tchars > 80) { @@ -1513,6 +1511,12 @@ subcktVisit(use, hierName, is_top) tchars += spcdevOutNode(hierName, nodeName->efnn_hier, "subcircuit", esSpiceF); } + else + { + // As port indexes do not have to be contiguous, this does not + // necessarily indicate an error condition. No need to report? + // TxError("No port connection on port %d; need to resolve.\n", portidx); + } } freeMagic(nodeList); @@ -1717,6 +1721,7 @@ topVisit(def, doStub) HashStartSearch(&hs); while (he = HashNext(&def->def_nodes, &hs)) { + char stmp[MAX_STR_SIZE]; int portidx; EFNodeName *unnumbered; @@ -1737,7 +1742,17 @@ topVisit(def, doStub) fprintf(esSpiceF, "\n+"); tchars = 1; } - pname = nodeSpiceName(snode->efnode_name->efnn_hier, NULL); + // If view is abstract, rely on the given port name, not + // the node. Otherwise, artifacts of the abstract view + // may cause nodes to be merged and the names lost. + + if (def->def_flags & DEF_ABSTRACT) + { + EFHNSprintf(stmp, nodeName->efnn_hier); + pname = stmp; + } + else + pname = nodeSpiceName(snode->efnode_name->efnn_hier, NULL); fprintf(esSpiceF, " %s", pname); tchars += strlen(pname) + 1; break; diff --git a/extflat/EFread.c b/extflat/EFread.c index 5cc53d43..96158edb 100644 --- a/extflat/EFread.c +++ b/extflat/EFread.c @@ -728,11 +728,15 @@ start: } } - if (*get == '\\') /* Process quoted characters literally */ - { - get++; - if (*get == '\0') break; - } + /* Process backslash characters literally unless they */ + /* are followed by the end-of-line. */ + + if (*get == '\\') + if (*(get + 1) == '\0') + { + get++; + break; + } /* Copy into token receiving area */ *put++ = *get++;