aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Warmerdam <warmerdam@pobox.com>2009-09-24 02:14:06 +0000
committerFrank Warmerdam <warmerdam@pobox.com>2009-09-24 02:14:06 +0000
commita26eeddef9022ffdcdcc6bc5b301346d2da22f7a (patch)
tree3b1c2f7bcc85eed0ff8f7df426547dde3f8f08d6
parent84d22b2a85c5f0b4aab0fcd8be9202e603ad0f73 (diff)
downloadPROJ-a26eeddef9022ffdcdcc6bc5b301346d2da22f7a.tar.gz
PROJ-a26eeddef9022ffdcdcc6bc5b301346d2da22f7a.zip
temporarily set locale to C to avoid locale numeric issues (#49)
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@1630 4e78687f-474d-0410-85f9-8d5e500ac6b2
-rw-r--r--ChangeLog3
-rw-r--r--src/pj_init.c7
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 240bbc41..c43d062c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2009-09-23 Frank Warmerdam <warmerdam@pobox.com>
+ * src/pj_init.c: Temporarily set locale to "C" to avoid locale
+ specific number parsing (#49).
+
* src/pj_rho.c: move rho out of structure, threadsafety issue (#41).
* nmake.opt: improve comments (#50).
diff --git a/src/pj_init.c b/src/pj_init.c
index 6b70d62b..2d84ef3f 100644
--- a/src/pj_init.c
+++ b/src/pj_init.c
@@ -34,6 +34,7 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <locale.h>
PJ_CVSID("$Id$");
@@ -225,10 +226,14 @@ pj_init(int argc, char **argv) {
paralist *curr;
int i;
PJ *PIN = 0;
+ const char *old_locale;
errno = pj_errno = 0;
start = NULL;
+ old_locale = setlocale(LC_NUMERIC, NULL);
+ setlocale(LC_NUMERIC,"C");
+
/* put arguments into internal linked list */
if (argc <= 0) { pj_errno = -1; goto bum_call; }
for (i = 0; i < argc; ++i)
@@ -377,6 +382,8 @@ bum_call: /* cleanup error return */
}
PIN = 0;
}
+ setlocale(LC_NUMERIC,old_locale);
+
return PIN;
}