Merge branch 'master' into netgen-1.5

This commit is contained in:
Tim Edwards 2026-02-03 02:00:02 -05:00
commit b76c9a1712
6 changed files with 18 additions and 10 deletions

View File

@ -1 +1 @@
1.5.315 1.5.316

View File

@ -91,7 +91,7 @@ char *ActelName(char *Name)
/* strip physical-pin information, if it exists */ /* strip physical-pin information, if it exists */
if ((nm = strrchr(name,PHYSICALPIN[0])) != NULL) *nm = '\0'; if ((nm = strrchr(name,PHYSICALPIN[0])) != NULL) *nm = '\0';
if (strlen(name) > 13) { if (strlen(name) > 13) {
ActelIndex = (++ActelIndex) % ACTELNAMESIZE; ActelIndex = (ActelIndex + 1) % ACTELNAMESIZE;
/* format the value of the hashed value of the string */ /* format the value of the hashed value of the string */
sprintf(ActelNames[ActelIndex], "$%lX", ActelNameHash(name)); sprintf(ActelNames[ActelIndex], "$%lX", ActelNameHash(name));
if (Debug) if (Debug)
@ -102,7 +102,7 @@ Printf("ActelNameHash returns %s on name %s\n",ActelNames[ActelIndex], name);
NeedsQuoting = 0; NeedsQuoting = 0;
if (NULL != strpbrk(name, ".,:; \t\"'\n\r")) NeedsQuoting = 1; if (NULL != strpbrk(name, ".,:; \t\"'\n\r")) NeedsQuoting = 1;
ActelIndex = (++ActelIndex) % ACTELNAMESIZE; ActelIndex = (ActelIndex + 1) % ACTELNAMESIZE;
if (!NeedsQuoting) { if (!NeedsQuoting) {
strcpy(ActelNames[ActelIndex], name); strcpy(ActelNames[ActelIndex], name);
return(ActelNames[ActelIndex]); return(ActelNames[ActelIndex]);

View File

@ -685,6 +685,7 @@ void SpiceSkipNewLine(void)
ungetc(contline, infile); ungetc(contline, infile);
} }
#if 0 /* Commented with "#if 0" due to comment characters in the comment */
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
/* Function similar to strtok() for token parsing. The difference is */ /* Function similar to strtok() for token parsing. The difference is */
/* that it takes two sets of delimiters. The first is whitespace */ /* that it takes two sets of delimiters. The first is whitespace */
@ -705,6 +706,7 @@ void SpiceSkipNewLine(void)
/* the first character of the delimiter string in addition to marking */ /* the first character of the delimiter string in addition to marking */
/* the boundary between two-character and one-character delimiters. */ /* the boundary between two-character and one-character delimiters. */
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
#endif
char *strdtok0(char *pstring, char *delim1, char *delim2, char isverilog) char *strdtok0(char *pstring, char *delim1, char *delim2, char isverilog)
{ {

View File

@ -449,6 +449,7 @@ int removeshorted(struct hashlist *p, int file)
ob = nob; ob = nob;
} }
} }
return 1;
} }
/* Remove shorted instances of class "class" from the database */ /* Remove shorted instances of class "class" from the database */
@ -539,6 +540,7 @@ int deleteclass(struct hashlist *p, int file)
} }
} }
FREE(checknodes); FREE(checknodes);
return 1;
} }
/* Remove all instances of class "class" from the database */ /* Remove all instances of class "class" from the database */
@ -576,6 +578,7 @@ int renameinstances(struct hashlist *p, int file)
} }
} }
} }
return 1;
} }
void InstanceRename(char *from, char *to, int file) void InstanceRename(char *from, char *to, int file)
@ -598,9 +601,10 @@ int freeprop(struct hashlist *p)
struct property *prop; struct property *prop;
prop = (struct property *)(p->ptr); prop = (struct property *)(p->ptr);
if (prop->type == PROP_STRING) if (prop->type == PROP_STRING) {
if (prop->pdefault.string != NULL) if (prop->pdefault.string != NULL)
FREE(prop->pdefault.string); FREE(prop->pdefault.string);
}
else if (prop->type == PROP_EXPRESSION) { else if (prop->type == PROP_EXPRESSION) {
struct tokstack *stackptr, *nptr; struct tokstack *stackptr, *nptr;
stackptr = prop->pdefault.stack; stackptr = prop->pdefault.stack;

View File

@ -319,7 +319,7 @@ void Fanout(char *cell, char *node, int filter)
while (ob != NULL) { while (ob != NULL) {
char *obname = ob->name; char *obname = ob->name;
if (*obname == '/') obname++; if (*obname == '/') obname++;
if (ob->node == nodenum) if (ob->node == nodenum) {
if (filter == ALLOBJECTS) { if (filter == ALLOBJECTS) {
Printf(" %s (", obname); Printf(" %s (", obname);
PrintObjectType(ob->type); PrintObjectType(ob->type);
@ -331,6 +331,7 @@ void Fanout(char *cell, char *node, int filter)
else if (ob->type == filter) { else if (ob->type == filter) {
Printf(" %s\n", obname); Printf(" %s\n", obname);
} }
}
ob = ob->next; ob = ob->next;
} }
} }
@ -933,7 +934,7 @@ static int PrintLeavesInCellHash(struct hashlist *p)
struct nlist *ptr; struct nlist *ptr;
ptr = (struct nlist *)(p->ptr); ptr = (struct nlist *)(p->ptr);
if ((ptr->class == CLASS_SUBCKT)) PrintLeavesInCell(ptr->name, ptr->file); if (ptr->class == CLASS_SUBCKT) PrintLeavesInCell(ptr->name, ptr->file);
return(0); return(0);
} }

View File

@ -196,7 +196,7 @@ void SpiceSubCell(struct nlist *tp, int IsSubCell)
if (ob->type == PROPERTY) { if (ob->type == PROPERTY) {
struct valuelist *vl; struct valuelist *vl;
int i; int i;
for (i == 0;; i++) { for (i = 0;; i++) {
vl = &(ob->instance.props[i]); vl = &(ob->instance.props[i]);
if (vl->type == PROP_ENDLIST) break; if (vl->type == PROP_ENDLIST) break;
else if (vl->type == PROP_VALUE) { else if (vl->type == PROP_VALUE) {
@ -216,7 +216,7 @@ void SpiceSubCell(struct nlist *tp, int IsSubCell)
if (ob->type == PROPERTY) { if (ob->type == PROPERTY) {
struct valuelist *vl; struct valuelist *vl;
int i; int i;
for (i == 0;; i++) { for (i = 0;; i++) {
vl = &(ob->instance.props[i]); vl = &(ob->instance.props[i]);
if (vl->type == PROP_ENDLIST) break; if (vl->type == PROP_ENDLIST) break;
else if (vl->type == PROP_VALUE) { else if (vl->type == PROP_VALUE) {
@ -236,7 +236,7 @@ void SpiceSubCell(struct nlist *tp, int IsSubCell)
if (ob->type == PROPERTY) { if (ob->type == PROPERTY) {
struct valuelist *vl; struct valuelist *vl;
int i; int i;
for (i == 0;; i++) { for (i = 0;; i++) {
vl = &(ob->instance.props[i]); vl = &(ob->instance.props[i]);
if (vl->type == PROP_ENDLIST) break; if (vl->type == PROP_ENDLIST) break;
else if (vl->type == PROP_VALUE) { else if (vl->type == PROP_VALUE) {
@ -399,7 +399,7 @@ int renamepins(struct hashlist *p, int file)
ptr = (struct nlist *)(p->ptr); ptr = (struct nlist *)(p->ptr);
if (ptr->file != file) if (ptr->file != file)
return 1; return 0;
for (ob = ptr->cell; ob != NULL; ob = ob->next) { for (ob = ptr->cell; ob != NULL; ob = ob->next) {
if (ob->type == FIRSTPIN) { if (ob->type == FIRSTPIN) {
@ -426,6 +426,7 @@ int renamepins(struct hashlist *p, int file)
} }
} }
} }
return 1;
} }
/* If any pins are marked unconnected, see if there are */ /* If any pins are marked unconnected, see if there are */