summaryrefslogtreecommitdiff
path: root/Src/math.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/math.c')
-rw-r--r--Src/math.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Src/math.c b/Src/math.c
index bc0669b7e..dc75a8143 100644
--- a/Src/math.c
+++ b/Src/math.c
@@ -399,12 +399,12 @@ zzlex(void)
/* it's a float */
yyval.type = MN_FLOAT;
#ifdef USE_LOCALE
- prev_locale = setlocale(LC_NUMERIC, NULL);
+ prev_locale = dupstring(setlocale(LC_NUMERIC, NULL));
setlocale(LC_NUMERIC, "POSIX");
#endif
yyval.u.d = strtod(ptr, &nptr);
#ifdef USE_LOCALE
- setlocale(LC_NUMERIC, prev_locale);
+ if (prev_locale) setlocale(LC_NUMERIC, prev_locale);
#endif
if (ptr == nptr || *nptr == '.') {
zerr("bad floating point constant", NULL, 0);