1
0
mirror of https://git.zap.org.au/git/trader.git synced 2024-12-04 14:46:45 -05: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 // Remove thousands separators if required
while ((p = strstr(buf_copy, lc->thousands_sep)) != NULL) { if (strcmp(lc->thousands_sep, "") != 0) {
int len = strlen(lc->thousands_sep); while ((p = strstr(buf_copy, lc->thousands_sep)) != NULL) {
memmove(p, p + len, strlen(p) - len + 1); int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
}
} }
while ((p = strstr(buf_copy, lc->mon_thousands_sep)) != NULL) { if (strcmp(lc->mon_thousands_sep, "") != 0) {
int len = strlen(lc->thousands_sep); while ((p = strstr(buf_copy, lc->mon_thousands_sep)) != NULL) {
memmove(p, p + len, strlen(p) - len + 1); int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
}
} }
val = strtod(buf_copy, &p); 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); strncpy(buf_copy, buf, BUFSIZE - 1);
buf_copy[BUFSIZE - 1] = '\0'; buf_copy[BUFSIZE - 1] = '\0';
// Remove thousands separators // Remove thousands separators if required
while ((p = strstr(buf_copy, lc->thousands_sep)) != NULL) { if (strcmp(lc->thousands_sep, "") != 0) {
int len = strlen(lc->thousands_sep); while ((p = strstr(buf_copy, lc->thousands_sep)) != NULL) {
memmove(p, p + len, strlen(p) - len + 1); int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
}
} }
while ((p = strstr(buf_copy, lc->mon_thousands_sep)) != NULL) { if (strcmp(lc->mon_thousands_sep, "") != 0) {
int len = strlen(lc->thousands_sep); while ((p = strstr(buf_copy, lc->mon_thousands_sep)) != NULL) {
memmove(p, p + len, strlen(p) - len + 1); int len = strlen(lc->thousands_sep);
memmove(p, p + len, strlen(p) - len + 1);
}
} }
val = strtol(buf_copy, &p, 10); val = strtol(buf_copy, &p, 10);