diff options
| author | Frank Warmerdam <warmerdam@pobox.com> | 2011-02-21 22:40:05 +0000 |
|---|---|---|
| committer | Frank Warmerdam <warmerdam@pobox.com> | 2011-02-21 22:40:05 +0000 |
| commit | c174749873eaa0143e96d89138b47fc1e3a15a6d (patch) | |
| tree | b25a4bc5b86adec876181d00bb5aabe3a26098e7 /src/pj_init.c | |
| parent | 818f6a9c153cd924d02ea9fc693a661ebc9b99ea (diff) | |
| download | PROJ-c174749873eaa0143e96d89138b47fc1e3a15a6d.tar.gz PROJ-c174749873eaa0143e96d89138b47fc1e3a15a6d.zip | |
fix locale handling, we need to copy the old locale. Avoid too much altering of locale.
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@1977 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src/pj_init.c')
| -rw-r--r-- | src/pj_init.c | 10 |
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; } |
