#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>
{
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++;
¤t_x, ¤t_y,
_efl_gfx_shape_append_move_to,
EINA_FALSE))
- return ;
+ goto error;
break;
case 'm':
if (!_efl_gfx_path_parse_pair_to(&content[1],
¤t_x, ¤t_y,
_efl_gfx_shape_append_move_to,
EINA_TRUE))
- return ;
+ goto error;
break;
case 'z':
case 'Z':
¤t_x, ¤t_y,
_efl_gfx_shape_append_line_to,
EINA_FALSE))
- return ;
+ goto error;
break;
case 'l':
if (!_efl_gfx_path_parse_pair_to(&content[1],
¤t_x, ¤t_y,
_efl_gfx_shape_append_line_to,
EINA_TRUE))
- return ;
+ goto error;
break;
case 'H':
if (!_efl_gfx_path_parse_double_to(&content[1],
¤t_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],
¤t_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],
¤t_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],
¤t_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],
¤t_x, ¤t_y,
_efl_gfx_shape_append_cubic_to,
EINA_FALSE))
- return ;
+ goto error;
break;
case 'c':
if (!_efl_gfx_path_parse_six_to(&content[1],
¤t_x, ¤t_y,
_efl_gfx_shape_append_cubic_to,
EINA_TRUE))
- return ;
+ goto error;
break;
case 'S':
if (!_efl_gfx_path_parse_quad_to(&content[1],
¤t_x, ¤t_y,
_efl_gfx_shape_append_scubic_to,
EINA_FALSE))
- return ;
+ goto error;
break;
case 's':
if (!_efl_gfx_path_parse_quad_to(&content[1],
¤t_x, ¤t_y,
_efl_gfx_shape_append_scubic_to,
EINA_TRUE))
- return ;
+ goto error;
break;
case 'Q':
if (!_efl_gfx_path_parse_quad_to(&content[1],
¤t_x, ¤t_y,
_efl_gfx_shape_append_quadratic_to,
EINA_FALSE))
- return ;
+ goto error;
break;
case 'q':
if (!_efl_gfx_path_parse_quad_to(&content[1],
¤t_x, ¤t_y,
_efl_gfx_shape_append_quadratic_to,
EINA_TRUE))
- return ;
+ goto error;
break;
case 'T':
if (!_efl_gfx_path_parse_pair_to(&content[1],
¤t_x, ¤t_y,
_efl_gfx_shape_append_squadratic_to,
EINA_FALSE))
- return ;
+ goto error;
break;
case 't':
if (!_efl_gfx_path_parse_pair_to(&content[1],
¤t_x, ¤t_y,
_efl_gfx_shape_append_squadratic_to,
EINA_TRUE))
- return ;
+ goto error;
break;
case 'A':
if (!_efl_gfx_path_parse_arc_to(&content[1],
¤t_x, ¤t_y,
_efl_gfx_shape_append_arc_to,
EINA_FALSE))
- return ;
+ goto error;
break;
case 'a':
if (!_efl_gfx_path_parse_arc_to(&content[1],
¤t_x, ¤t_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"