efl/interface: update locale before parsing svg path 26/66626/2
authorJee-Yong Um <jc9.um@samsung.com>
Wed, 20 Apr 2016 03:09:24 +0000 (12:09 +0900)
committerSungtaek Hong <sth253.hong@samsung.com>
Wed, 20 Apr 2016 03:12:20 +0000 (20:12 -0700)
Change-Id: I4fb8c8ad78d8122c8a549c15cd335709cd5fd7ed
Signed-Off-By: Jee-Yong Um <jc9.um@samsung.com>
src/lib/efl/interfaces/efl_gfx_shape.c

index 741e819..184f39e 100644 (file)
@@ -5,6 +5,9 @@
 #include <math.h>
 #include <float.h>
 #include <ctype.h>
+// TIZEN_ONLY(20160420): efl/interface: update locale before parsing svg path
+#include <locale.h>
+//
 
 #include <Efl.h>
 
@@ -1548,9 +1551,14 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
 {
    double current_x = 0, current_y = 0;
    char *content = (char*) svg_path_data;
-
+   char *cur_locale;
    if (!content) return ;
 
+// TIZEN_ONLY(20160420): efl/interface: update locale before parsing svg path
+   cur_locale = setlocale(LC_NUMERIC, NULL);
+   setlocale(LC_NUMERIC, "POSIX");
+//
+
    while (content[0] != '\0')
      {
         while (isspace(content[0])) content++;
@@ -1564,7 +1572,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                &current_x, &current_y,
                                                _efl_gfx_shape_append_move_to,
                                                EINA_FALSE))
-                return ;
+                goto error;
               break;
            case 'm':
               if (!_efl_gfx_path_parse_pair_to(&content[1],
@@ -1573,7 +1581,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                &current_x, &current_y,
                                                _efl_gfx_shape_append_move_to,
                                                EINA_TRUE))
-                return ;
+                goto error;
               break;
            case 'z':
            case 'Z':
@@ -1587,7 +1595,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                &current_x, &current_y,
                                                _efl_gfx_shape_append_line_to,
                                                EINA_FALSE))
-                return ;
+                goto error;
               break;
            case 'l':
               if (!_efl_gfx_path_parse_pair_to(&content[1],
@@ -1596,7 +1604,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                &current_x, &current_y,
                                                _efl_gfx_shape_append_line_to,
                                                EINA_TRUE))
-                return ;
+                goto error;
               break;
            case 'H':
               if (!_efl_gfx_path_parse_double_to(&content[1],
@@ -1605,7 +1613,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                  &current_x, current_x, current_y,
                                                  _efl_gfx_path_append_horizontal_to,
                                                  EINA_FALSE))
-                return ;
+                goto error;
               break;
            case 'h':
               if (!_efl_gfx_path_parse_double_to(&content[1],
@@ -1614,7 +1622,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                  &current_x, current_x, current_y,
                                                  _efl_gfx_path_append_horizontal_to,
                                                  EINA_TRUE))
-                return ;
+                goto error;
               break;
            case 'V':
               if (!_efl_gfx_path_parse_double_to(&content[1],
@@ -1623,7 +1631,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                  &current_y, current_x, current_y,
                                                  _efl_gfx_path_append_vertical_to,
                                                  EINA_FALSE))
-                return ;
+                goto error;
               break;
            case 'v':
               if (!_efl_gfx_path_parse_double_to(&content[1],
@@ -1632,7 +1640,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                  &current_y, current_x, current_y,
                                                  _efl_gfx_path_append_vertical_to,
                                                  EINA_TRUE))
-                return ;
+                goto error;
               break;
            case 'C':
               if (!_efl_gfx_path_parse_six_to(&content[1],
@@ -1641,7 +1649,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                               &current_x, &current_y,
                                               _efl_gfx_shape_append_cubic_to,
                                               EINA_FALSE))
-                return ;
+                goto error;
               break;
            case 'c':
               if (!_efl_gfx_path_parse_six_to(&content[1],
@@ -1650,7 +1658,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                               &current_x, &current_y,
                                               _efl_gfx_shape_append_cubic_to,
                                               EINA_TRUE))
-                return ;
+                goto error;
               break;
            case 'S':
               if (!_efl_gfx_path_parse_quad_to(&content[1],
@@ -1659,7 +1667,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                &current_x, &current_y,
                                                _efl_gfx_shape_append_scubic_to,
                                                EINA_FALSE))
-                return ;
+                goto error;
               break;
            case 's':
               if (!_efl_gfx_path_parse_quad_to(&content[1],
@@ -1668,7 +1676,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                &current_x, &current_y,
                                                _efl_gfx_shape_append_scubic_to,
                                                EINA_TRUE))
-                return ;
+                goto error;
               break;
            case 'Q':
               if (!_efl_gfx_path_parse_quad_to(&content[1],
@@ -1677,7 +1685,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                &current_x, &current_y,
                                                _efl_gfx_shape_append_quadratic_to,
                                                EINA_FALSE))
-                return ;
+                goto error;
               break;
            case 'q':
               if (!_efl_gfx_path_parse_quad_to(&content[1],
@@ -1686,7 +1694,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                &current_x, &current_y,
                                                _efl_gfx_shape_append_quadratic_to,
                                                EINA_TRUE))
-                return ;
+                goto error;
               break;
            case 'T':
               if (!_efl_gfx_path_parse_pair_to(&content[1],
@@ -1695,7 +1703,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                &current_x, &current_y,
                                                _efl_gfx_shape_append_squadratic_to,
                                                EINA_FALSE))
-                return ;
+                goto error;
               break;
            case 't':
               if (!_efl_gfx_path_parse_pair_to(&content[1],
@@ -1704,7 +1712,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                                &current_x, &current_y,
                                                _efl_gfx_shape_append_squadratic_to,
                                                EINA_TRUE))
-                return ;
+                goto error;
               break;
            case 'A':
               if (!_efl_gfx_path_parse_arc_to(&content[1],
@@ -1713,7 +1721,7 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                               &current_x, &current_y,
                                               _efl_gfx_shape_append_arc_to,
                                               EINA_FALSE))
-                return ;
+                goto error;
               break;
            case 'a':
               if (!_efl_gfx_path_parse_arc_to(&content[1],
@@ -1722,12 +1730,16 @@ _efl_gfx_shape_append_svg_path(Eo *obj, Efl_Gfx_Shape_Data *pd,
                                               &current_x, &current_y,
                                               _efl_gfx_shape_append_arc_to,
                                               EINA_TRUE))
-                return ;
+                goto error;
               break;
            default:
-              return;
+              goto error;
           }
      }
+// TIZEN_ONLY(20160420): efl/interface: update locale before parsing svg path
+error:
+   setlocale(LC_NUMERIC, cur_locale);
+//
 }
 
 #include "interfaces/efl_gfx_shape.eo.c"