aboutsummaryrefslogtreecommitdiff
path: root/src/pj_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pj_init.c')
-rw-r--r--src/pj_init.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/pj_init.c b/src/pj_init.c
index bffbf786..26f32d1a 100644
--- a/src/pj_init.c
+++ b/src/pj_init.c
@@ -241,8 +241,9 @@ pj_init_ctx(projCtx ctx, int argc, char **argv) {
ctx->last_errno = 0;
start = NULL;
- old_locale = setlocale(LC_NUMERIC, NULL);
- setlocale(LC_NUMERIC,"C");
+ old_locale = strdup(setlocale(LC_NUMERIC, NULL));
+ if( strcmp(old_locale,"C") != 0 )
+ setlocale(LC_NUMERIC,"C");
/* put arguments into internal linked list */
if (argc <= 0) { pj_ctx_set_errno( ctx, -1 ); goto bum_call; }
@@ -433,7 +434,10 @@ pj_init_ctx(projCtx ctx, int argc, char **argv) {
}
PIN = 0;
}
- setlocale(LC_NUMERIC,old_locale);
+
+ if( strcmp(old_locale,"C") != 0 )
+ setlocale(LC_NUMERIC,old_locale);
+ free( old_locale );
return PIN;
}