diff --git a/src/frontend/inpc_probe.c b/src/frontend/inpc_probe.c index 74a759e07..42ecf871c 100644 --- a/src/frontend/inpc_probe.c +++ b/src/frontend/inpc_probe.c @@ -1242,7 +1242,7 @@ static int setallvsources(struct card *tmpcard, NGHASHPTR instances, char *instn sadd(&BVrefline, "Vref "); sadd(&BVrefline, instname); sadd(&BVrefline, "Vref 0 V = 1/"); - sadd(&BVrefline, _itoa(numnodes, numbuf, 10)); + sadd(&BVrefline, itoa10(numnodes, numbuf)); sadd(&BVrefline, "*("); /* For example: Bq1power q1:power 0 V = */ cadd(&Bpowerline, 'B'); @@ -1278,7 +1278,7 @@ static int setallvsources(struct card *tmpcard, NGHASHPTR instances, char *instn char* strnode1 = gettok(&instline); char* newnode = tprintf("int_%s_%s_%d", strnode1, instname, nodenum); char nodenumstr[3]; - char *nodename1 = get_terminal_name(instname, _itoa(nodenum, nodenumstr, 10), instances); + char *nodename1 = get_terminal_name(instname, itoa10(nodenum, nodenumstr), instances); newline = tprintf("%s %s %s", begstr, newnode, instline); diff --git a/src/include/ngspice/stringutil.h b/src/include/ngspice/stringutil.h index 3ee188ab8..a78cb558e 100644 --- a/src/include/ngspice/stringutil.h +++ b/src/include/ngspice/stringutil.h @@ -75,7 +75,7 @@ int substring_n(size_t n_char_pattern, const char *p_pattern, size_t n_char_str, const char *p_str); char *tprintf(const char *fmt, ...) ATTR_TPRINTF; char *tvprintf(const char *fmt, va_list args); - +char* itoa10(int val, char* buf); /* Allocate and create a copy of a string if the argument is not null or diff --git a/src/misc/string.c b/src/misc/string.c index b9dfa3f7b..4001c1335 100644 --- a/src/misc/string.c +++ b/src/misc/string.c @@ -1403,3 +1403,29 @@ bool has_escape_or_quote(size_t n, const char *str) return FALSE; } /* end of function may_have_eq */ +/* Converts integer to string. + Return the result string. + Only 10 radix is supported */ +char *itoa10(int n, char s[]) +{ + int i, j, sign; + char c; + + if ((sign = n) < 0) /* record sign */ + n = -n; /* make n positive */ + i = 0; + do { /* generate digits in reverse order */ + s[i++] = n % 10 + '0'; /* get next digit */ + } while ((n /= 10) > 0); /* delete it */ + if (sign < 0) + s[i++] = '-'; + s[i] = '\0'; + /* revert string */ + for (i = 0, j = (int)strlen(s) - 1; i < j; i++, j--) { + c = s[i]; + s[i] = s[j]; + s[j] = c; + } + return s; +} +