From 57df9d5bcede9bde1a058c0a276fbe2b7078d852 Mon Sep 17 00:00:00 2001 From: mdankov Date: Wed, 4 Jul 2012 11:42:17 +0000 Subject: [PATCH] Fix:gui_internal:Use sscanf instead of strtold. The latter seems to be unsupported on WinCE (doesnt build) and Android (doesnt load gui). git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@5176 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/navit/gui/internal/gui_internal.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/navit/navit/gui/internal/gui_internal.c b/navit/navit/gui/internal/gui_internal.c index 8bca01c..222abfb 100644 --- a/navit/navit/gui/internal/gui_internal.c +++ b/navit/navit/gui/internal/gui_internal.c @@ -6493,6 +6493,7 @@ gui_internal_coordinate_parse(char *s, char plus, char minus, double *x) { int sign=0; char *degree, *minute, *second; + double tmp; if(!s) return 0; @@ -6514,7 +6515,7 @@ gui_internal_coordinate_parse(char *s, char plus, char minus, double *x) minute+=strlen("°"); } - *x = strtold(degree, NULL); + sscanf(degree, "%lf", x); if(strchr(degree, plus) || strchr(degree, minus)) { dbg(3,"degree %c/%c found\n",plus,minus); @@ -6522,14 +6523,16 @@ gui_internal_coordinate_parse(char *s, char plus, char minus, double *x) if(!minute) return 0; minute = strtok(minute,"'"); - *x+=strtold(minute, NULL)/60; + sscanf(minute, "%lf", &tmp); + *x+=tmp/60; if(strchr(minute, plus) || strchr(minute, minus)) { dbg(3,"minute %c/%c found\n",plus,minus); } else { /* DEGREES_MINUTES_SECONDS */ second=strtok(NULL,""); if(!second) return 0; - *x+=strtold(second, NULL)/3600; + sscanf(second, "%lf", &tmp); + *x+=tmp/3600; } } *x *= sign; -- 2.7.4