diff --git a/base/netfile.c b/base/netfile.c index cf299a9..9413148 100644 --- a/base/netfile.c +++ b/base/netfile.c @@ -673,6 +673,7 @@ char *strdtok(char *pstring, char *delim1, char *delim2) /* accordingly (needs to be done). */ if (*s == '\\') { + s++; while (*s != '\0') { if ((*s == ' ') || (*s == '\\')) { s++; diff --git a/base/query.c b/base/query.c index f59b7f0..8517d80 100644 --- a/base/query.c +++ b/base/query.c @@ -801,9 +801,12 @@ void DescribeInstance(char *name, int file) { if (ob->node > nodemax) nodemax = ob->node; else if ((ob->node == -1) && (ob->model.port != PROXY)) { - if (disconnectednodes == 0) Fprintf(stderr, "\n"); - disconnectednodes++; - Fprintf(stderr, "Cell %s disconnected node: %s\n", tp->name, ob->name); + if (!(tp->flags & CELL_PLACEHOLDER)) + { + if (disconnectednodes == 0) Fprintf(stderr, "\n"); + disconnectednodes++; + Fprintf(stderr, "Cell %s disconnected node: %s\n", tp->name, ob->name); + } } } instlist = (unsigned char *) CALLOC((nodemax + 1), sizeof(unsigned char)); diff --git a/base/verilog.c b/base/verilog.c index fe4c979..ccecf45 100644 --- a/base/verilog.c +++ b/base/verilog.c @@ -283,7 +283,7 @@ int GetBusTok(struct bus *wb) int GetBus(char *astr, struct bus *wb) { - char *colonptr, *brackstart, *brackend, *sigend, sdelim; + char *colonptr, *brackstart, *brackend, *sigend, sdelim, *aastr; int result, start, end; if (wb == NULL) return 0; @@ -325,15 +325,22 @@ int GetBus(char *astr, struct bus *wb) return 0; } - brackstart = strchr(astr, '['); + // Delimiters may appear in backslash-escaped names. . . ignore these. + aastr = astr; + if (*aastr == '\\') { + aastr++; + while (*aastr != ' ' && *aastr != '\\' && *aastr != '\0') aastr++; + } + + brackstart = strchr(aastr, '['); if (brackstart != NULL) { - brackend = strchr(astr, ']'); + brackend = strchr(aastr, ']'); if (brackend == NULL) { Printf("Badly formed array notation \"%s\"\n", astr); return 1; } *brackend = '\0'; - colonptr = strchr(astr, ':'); + colonptr = strchr(aastr, ':'); if (colonptr) *colonptr = '\0'; result = sscanf(brackstart + 1, "%d", &start); if (colonptr) *colonptr = ':';