diff --git a/src/frontend/numparam/spicenum.c b/src/frontend/numparam/spicenum.c index b1e9b2b53..5b96ec2e0 100644 --- a/src/frontend/numparam/spicenum.c +++ b/src/frontend/numparam/spicenum.c @@ -73,25 +73,21 @@ static void stripsomespace(SPICE_DSTRINGPTR dstr_p, unsigned char incontrol) { /* if s starts with one of some markers, strip leading space */ - int i, ls; - char *sstr; /* string contained in s */ - SPICE_DSTRING markers; - spice_dstring_init(&markers); - scopys(&markers, "*.&+#$"); + const char *markers = + incontrol + ? "*.&+#$" + : "*.&+#$" "xX"; - if (!incontrol) - sadd(&markers, "xX"); + char *s = spice_dstring_value(dstr_p); + int ls = spice_dstring_length(dstr_p); - sstr = spice_dstring_value(dstr_p); - ls = spice_dstring_length(dstr_p); - - i = 0; - while ((i < ls) && (sstr[i] <= ' ')) + int i = 0; + while ((i < ls) && (s[i] <= ' ')) i++; - if ((i > 0) && (i < ls) && (cpos(sstr[i], spice_dstring_value(&markers)) >= 0)) - pscopy(dstr_p, sstr, i, ls); + if ((i > 0) && (i < ls) && strchr(markers, s[i])) + pscopy(dstr_p, s, i, ls); } @@ -293,7 +289,7 @@ modernizeex(SPICE_DSTRINGPTR dstr_p) static char -transform(dico_t *dico, SPICE_DSTRINGPTR dstr_p, unsigned char nostripping, +transform(dico_t *dico, SPICE_DSTRINGPTR dstr_p, unsigned char incontrol, SPICE_DSTRINGPTR u_p) /* line s is categorized and crippled down to basic Spice * returns in u control word following dot, if any @@ -327,7 +323,7 @@ transform(dico_t *dico, SPICE_DSTRINGPTR dstr_p, unsigned char nostripping, spice_dstring_init(&tstr); spice_dstring_reinit(u_p); - stripsomespace(dstr_p, nostripping); + stripsomespace(dstr_p, incontrol); modernizeex(dstr_p); /* required for stripbraces count */ s = spice_dstring_value(dstr_p);