diff --git a/src/frontend/numparam/xpressn.c b/src/frontend/numparam/xpressn.c index b71e6606d..0b15e5081 100644 --- a/src/frontend/numparam/xpressn.c +++ b/src/frontend/numparam/xpressn.c @@ -547,24 +547,26 @@ findsubckt(dico_t *dico, const char * const s) /* input: s is a subcircuit invocation line. returns 0 if not found, else the stored definition line number value */ { + const char *k_ptr; + entry_t *entry; /* symbol table entry */ SPICE_DSTRING ustr; /* u= subckt name is last token in string s */ - int j, k; + int j; int line; /* stored line number */ spice_dstring_init(&ustr); - k = (int) strlen(s); + (k_ptr - s) = (int) strlen(s); - while ((k >= 0) && (s[k] <= ' ')) - k--; + while (((k_ptr - s) >= 0) && (s[(k_ptr - s)] <= ' ')) + (k_ptr - s)--; - j = k; + j = (int) (k_ptr - s); - while ((k >= 0) && (s[k] > ' ')) - k--; + while (((k_ptr - s) >= 0) && (s[(k_ptr - s)] > ' ')) + (k_ptr - s)--; - pscopy_up(&ustr, s, k + 1, j - k); + pscopy_up(&ustr, s, (int) (k_ptr - s) + 1, j - (int) (k_ptr - s)); entry = entrynb(dico, spice_dstring_value(&ustr)); if (entry && (entry->tp == NUPA_SUBCKT)) {