1
0
mirror of https://git.zap.org.au/git/trader.git synced 2024-09-01 17:14:15 -04:00

Bug fix: only remove thousands separators if present in the locale

This commit is contained in:
John Zaitseff 2011-07-19 14:54:38 +10:00
parent ef83258e2b
commit 5e15e2a197

View File

@ -1365,14 +1365,18 @@ int gettxdouble (WINDOW *win, double *result, double min, double max,
}
}
// Remove thousands separators
while ((p = strstr(buf_copy, lc->thousands_sep)) != NULL) {
int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
// Remove thousands separators if required
if (strcmp(lc->thousands_sep, "") != 0) {
while ((p = strstr(buf_copy, lc->thousands_sep)) != NULL) {
int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
}
}
while ((p = strstr(buf_copy, lc->mon_thousands_sep)) != NULL) {
int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
if (strcmp(lc->mon_thousands_sep, "") != 0) {
while ((p = strstr(buf_copy, lc->mon_thousands_sep)) != NULL) {
int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
}
}
val = strtod(buf_copy, &p);
@ -1482,14 +1486,18 @@ int gettxlong (WINDOW *win, long *result, long min, long max, long emptyval,
strncpy(buf_copy, buf, BUFSIZE - 1);
buf_copy[BUFSIZE - 1] = '\0';
// Remove thousands separators
while ((p = strstr(buf_copy, lc->thousands_sep)) != NULL) {
int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
// Remove thousands separators if required
if (strcmp(lc->thousands_sep, "") != 0) {
while ((p = strstr(buf_copy, lc->thousands_sep)) != NULL) {
int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
}
}
while ((p = strstr(buf_copy, lc->mon_thousands_sep)) != NULL) {
int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
if (strcmp(lc->mon_thousands_sep, "") != 0) {
while ((p = strstr(buf_copy, lc->mon_thousands_sep)) != NULL) {
int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
}
}
val = strtol(buf_copy, &p, 10);