This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository efl.

View the commit online.

commit 601b32ffa6dd36437342fb35bb2e943f21bc3243
Author: Carsten Haitzler <ras...@rasterman.com>
AuthorDate: Wed Oct 23 17:06:46 2024 +0100

    atof general - fix to use eina n0on locale variant atof
    
    somehow we never noticed ... if your locale uses , not . for float
    seps.. efl won't be happy - luckily we have eina_convert_strtod_c()
    that does . as a separator and will thus not care about locale and
    do floats the . way as we expect. use it all over.
    
    @fix
---
 src/bin/edje/edje_cc_parse.c                        |  2 +-
 src/bin/edje/edje_player.c                          | 10 +++++-----
 src/bin/elementary/config.c                         |  2 +-
 src/bin/elementary/elm_prefs_cc_parse.c             |  2 +-
 src/bin/elementary/perf.c                           |  4 ++--
 src/bin/elementary/test_efl_gfx_vg_value_provider.c |  2 +-
 src/bin/exactness/player.c                          |  2 +-
 src/examples/ecore/ecore_audio_playback.c           |  2 +-
 src/examples/eet/eet-data-file_descriptor_02.c      |  6 +++---
 src/lib/edje/edje_program.c                         |  2 +-
 src/lib/edje/edje_textblock_styles.c                |  2 +-
 src/lib/edje/edje_var.c                             |  4 ++--
 src/lib/efreet/efreet_ini.c                         |  2 +-
 src/lib/elementary/elm_config.c                     |  6 +++---
 src/lib/elementary/elm_flipselector.c               |  4 ++--
 src/lib/elementary/elm_util.c                       | 12 +-----------
 src/lib/embryo/embryo_float.c                       |  2 +-
 src/lib/evas/canvas/evas_object_textblock.c         |  2 +-
 18 files changed, 29 insertions(+), 39 deletions(-)

diff --git a/src/bin/edje/edje_cc_parse.c b/src/bin/edje/edje_cc_parse.c
index 32d06350e3..af8a552c3e 100644
--- a/src/bin/edje/edje_cc_parse.c
+++ b/src/bin/edje/edje_cc_parse.c
@@ -1891,7 +1891,7 @@ _get_numf(char *s, double *val)
         pos++;
      }
    buf[pos] = '\0';
-   (*val) = atof(buf);
+   (*val) = eina_convert_strtod_c(buf, NULL);
    return s + pos;
 }
 
diff --git a/src/bin/edje/edje_player.c b/src/bin/edje/edje_player.c
index 7d79ec0d7a..b4363de152 100644
--- a/src/bin/edje/edje_player.c
+++ b/src/bin/edje/edje_player.c
@@ -123,7 +123,7 @@ static void
 _slave_mode_message_int(Evas_Object *edje, int id, char *arg)
 {
    Edje_Message_Int msg;
-   msg.val = atoi(arg);
+   msg.val =atoi(arg);
    edje_object_message_send(edje, EDJE_MESSAGE_INT, id, &msg);
 }
 
@@ -131,7 +131,7 @@ static void
 _slave_mode_message_float(Evas_Object *edje, int id, char *arg)
 {
    Edje_Message_Float msg;
-   msg.val = atof(arg);
+   msg.val = eina_convert_strtod_c(arg, NULL);
    edje_object_message_send(edje, EDJE_MESSAGE_FLOAT, id, &msg);
 }
 
@@ -205,7 +205,7 @@ _slave_mode_message_float_set(Evas_Object *edje, int id, char *arg,
              fputs("ERROR: Message missing arg.\n", stderr);
              return;
           }
-        msg->val[i] = atof(extra_args);
+        msg->val[i] = eina_convert_strtod_c(extra_args, NULL);
         extra_args = next;
      }
 
@@ -246,7 +246,7 @@ _slave_mode_message_string_float(Evas_Object *edje, int id, char *arg,
    _slave_mode_tok(&extra_args);
 
    msg.str = arg;
-   msg.val = atof(extra_args);
+   msg.val = eina_convert_strtod_c(extra_args, NULL);
 
    edje_object_message_send(edje, EDJE_MESSAGE_STRING_FLOAT, id, &msg);
 }
@@ -314,7 +314,7 @@ _slave_mode_message_string_float_set(Evas_Object *edje, int id, char *arg,
              fputs("ERROR: Message missing arg.\n", stderr);
              return;
           }
-        msg->val[i] = atof(val);
+        msg->val[i] = eina_convert_strtod_c(val, NULL);
         val = next;
      }
 
diff --git a/src/bin/elementary/config.c b/src/bin/elementary/config.c
index 2cfc3c8841..845b1b25df 100644
--- a/src/bin/elementary/config.c
+++ b/src/bin/elementary/config.c
@@ -4538,7 +4538,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev)
      {
         if (theme_set) elm_theme_set(NULL, theme_set);
         if (finger_size_set) elm_config_finger_size_set(atoi(finger_size_set));
-        if (scale_set) elm_config_scale_set(atof(scale_set));
+        if (scale_set) elm_config_scale_set(eina_convert_strtod_c(scale_set, NULL));
         if (web_backend) elm_config_web_backend_set(web_backend);
 
         elm_config_all_flush();
diff --git a/src/bin/elementary/elm_prefs_cc_parse.c b/src/bin/elementary/elm_prefs_cc_parse.c
index fa960ac326..54b27b2f8b 100644
--- a/src/bin/elementary/elm_prefs_cc_parse.c
+++ b/src/bin/elementary/elm_prefs_cc_parse.c
@@ -1276,7 +1276,7 @@ _get_numf(char *s, double *val)
         pos++;
      }
    buf[pos] = '\0';
-   (*val) = atof(buf);
+   (*val) = eina_convert_strtod_c(buf, NULL);
    return s + pos;
 }
 
diff --git a/src/bin/elementary/perf.c b/src/bin/elementary/perf.c
index 5f5b9b822d..2b2666311e 100644
--- a/src/bin/elementary/perf.c
+++ b/src/bin/elementary/perf.c
@@ -242,12 +242,12 @@ elm_main(int argc, char **argv)
         else if ((!strcmp(argv[i], "-r")) && (i < (argc - 1)))
           {
              i++;
-             run_time = atof(argv[i]);
+             run_time = eina_convert_strtod_c(argv[i], NULL);
           }
         else if ((!strcmp(argv[i], "-d")) && (i < (argc - 1)))
           {
              i++;
-             spin_up_delay = atof(argv[i]);
+             spin_up_delay = eina_convert_strtod_c(argv[i], NULL);
           }
      }
    if (!tests_to_do)
diff --git a/src/bin/elementary/test_efl_gfx_vg_value_provider.c b/src/bin/elementary/test_efl_gfx_vg_value_provider.c
index 991c5c4e9d..5f32ef63a4 100644
--- a/src/bin/elementary/test_efl_gfx_vg_value_provider.c
+++ b/src/bin/elementary/test_efl_gfx_vg_value_provider.c
@@ -82,7 +82,7 @@ add_value_provider(char* new_path, char* new_type, char* new_values)
         for( int i = 0; i < value_cnt; i++)
           {
              char* v = (char*)efl_text_get(values[i]);
-             if (v) value[i] = atof(v);
+             if (v) value[i] = eina_convert_strtod_c(v, NULL);
           }
 
         eina_matrix4_identity(&m);
diff --git a/src/bin/exactness/player.c b/src/bin/exactness/player.c
index 796c385d47..6802c72efe 100644
--- a/src/bin/exactness/player.c
+++ b/src/bin/exactness/player.c
@@ -1074,7 +1074,7 @@ eina_init(void)
         _stabilize_shots = !!getenv("EXACTNESS_STABILIZE_SHOTS");
         _verbose = !!getenv("EXACTNESS_VERBOSE");
         if (speed)
-          _speed = atof(speed);
+          _speed = eina_convert_strtod_c(speed, NULL);
 
         _log_domain = eina_log_domain_register("exactness_player", NULL);
         if (!_setup_dest_type(dest, !!external_injection))
diff --git a/src/examples/ecore/ecore_audio_playback.c b/src/examples/ecore/ecore_audio_playback.c
index 09a7325d7d..dc08a924a8 100644
--- a/src/examples/ecore/ecore_audio_playback.c
+++ b/src/examples/ecore/ecore_audio_playback.c
@@ -271,7 +271,7 @@ main(int argc, const char *argv[])
                    freq = atoi(&val[5]);
                    efl_key_data_set(in, ECORE_AUDIO_ATTR_TONE_FREQ, &freq);
                  } else if (!strncmp(val, "duration=", 9)) {
-                   ecore_audio_obj_in_length_set(in, atof(&val[9]));
+                   ecore_audio_obj_in_length_set(in, eina_convert_strtod_c(&val[9], NULL));
                  }
               }
             free(tmp);
diff --git a/src/examples/eet/eet-data-file_descriptor_02.c b/src/examples/eet/eet-data-file_descriptor_02.c
index e0ca00d6fd..b36cad6f51 100644
--- a/src/examples/eet/eet-data-file_descriptor_02.c
+++ b/src/examples/eet/eet-data-file_descriptor_02.c
@@ -374,7 +374,7 @@ _union_1_new(const char *v1,
      }
 
    un->type = EET_STRUCT1;
-   _st1_set(&(un->u.st1), atof(v1), atoi(v2), eina_stringshare_add(v3));
+   _st1_set(&(un->u.st1), eina_convert_strtod_c(v1, NULL), atoi(v2), eina_stringshare_add(v3));
 
    return un;
 }
@@ -426,7 +426,7 @@ _union_float_new(const char *v1)
      }
 
    un->type = EET_BASIC_FLOAT;
-   un->u.f = atof(v1);
+   un->u.f = eina_convert_strtod_c(v1, NULL);
 
    return un;
 }
@@ -464,7 +464,7 @@ _variant_1_new(const char *v1,
 
    va->t.type = eet_mapping[0].name;
    st1 = calloc(1, sizeof (Example_Struct1));
-   _st1_set(st1, atof(v1), atoi(v2), eina_stringshare_add(v3));
+   _st1_set(st1, eina_convert_strtod_c(v1, NULL), atoi(v2), eina_stringshare_add(v3));
    va->data = ""
 
    return va;
diff --git a/src/lib/edje/edje_program.c b/src/lib/edje/edje_program.c
index 2ee0c22204..a91d034347 100644
--- a/src/lib/edje/edje_program.c
+++ b/src/lib/edje/edje_program.c
@@ -2287,7 +2287,7 @@ _edje_param_convert(Edje_External_Param *param, const Edje_External_Param_Info *
 
             case EDJE_EXTERNAL_PARAM_TYPE_STRING:
             case EDJE_EXTERNAL_PARAM_TYPE_CHOICE:
-              d = (param->s) ? atof(param->s) : 0.0;
+              d = (param->s) ? eina_convert_strtod_c(param->s, NULL) : 0.0;
               break;
 
             case EDJE_EXTERNAL_PARAM_TYPE_BOOL:
diff --git a/src/lib/edje/edje_textblock_styles.c b/src/lib/edje/edje_textblock_styles.c
index f1461c5890..b0de089fbb 100644
--- a/src/lib/edje/edje_textblock_styles.c
+++ b/src/lib/edje/edje_textblock_styles.c
@@ -167,7 +167,7 @@ _edje_format_reparse(Edje_File *edf, const char *str, Edje_Style_Tag *tag_ret, E
              else if (_IS_STRINGS_EQUAL(key, key_len, "font_size", 9))
                {
                   if (tag_ret)
-                    tag_ret->font_size = atof(val);
+                    tag_ret->font_size = eina_convert_strtod_c(val, NULL);
                }
              else if (_IS_STRINGS_EQUAL(key, key_len, "font", 4)) /* Fix fonts */
                {
diff --git a/src/lib/edje/edje_var.c b/src/lib/edje/edje_var.c
index ab92e61fb7..0211a32449 100644
--- a/src/lib/edje/edje_var.c
+++ b/src/lib/edje/edje_var.c
@@ -297,7 +297,7 @@ _edje_var_var_int_get(Edje *ed EINA_UNUSED, Edje_Var *var)
           {
              double f;
 
-             f = atof(var->data.s.v);
+             f = eina_convert_strtod_c(var->data.s.v, NULL);
              free(var->data.s.v);
              var->data.s.v = NULL;
              var->data.i.v = (int)f;
@@ -367,7 +367,7 @@ _edje_var_var_float_get(Edje *ed EINA_UNUSED, Edje_Var *var)
           {
              double f;
 
-             f = atof(var->data.s.v);
+             f = eina_convert_strtod_c(var->data.s.v, NULL);
              free(var->data.s.v);
              var->data.s.v = NULL;
              var->data.f.v = f;
diff --git a/src/lib/efreet/efreet_ini.c b/src/lib/efreet/efreet_ini.c
index dc35d8550b..ef1266867f 100644
--- a/src/lib/efreet/efreet_ini.c
+++ b/src/lib/efreet/efreet_ini.c
@@ -351,7 +351,7 @@ efreet_ini_double_get(Efreet_Ini *ini, const char *key)
     EINA_SAFETY_ON_NULL_RETURN_VAL(key, -1);
 
     str = efreet_ini_string_get(ini, key);
-    if (str) return atof(str);
+    if (str) return eina_convert_strtod_c(str, NULL);
 
     return -1;
 }
diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c
index b54b0d076c..4ca53ad1f1 100644
--- a/src/lib/elementary/elm_config.c
+++ b/src/lib/elementary/elm_config.c
@@ -3024,9 +3024,9 @@ _env_get(void)
    s = _getenv_once("ELM_SCROLL_ANIMATION_DISABLE");
    if (s) _elm_config->scroll_animation_disable = !!atoi(s);
    s = _getenv_once("ELM_SCROLL_ACCEL_FACTOR");
-   if (s) _elm_config->scroll_accel_factor = atof(s);
+   if (s) _elm_config->scroll_accel_factor = _elm_atof(s);
 //   s = _getenv_once("ELM_SCROLL_SMOOTH_TIME_INTERVAL"); // not used anymore
-//   if (s) _elm_config->scroll_smooth_time_interval = atof(s); // not used anymore
+//   if (s) _elm_config->scroll_smooth_time_interval = _elm_atof(s); // not used anymore
    s = _getenv_once("ELM_SCROLL_SMOOTH_AMOUNT");
    if (s) _elm_config->scroll_smooth_amount = _elm_atof(s);
 //   s = _getenv_once("ELM_SCROLL_SMOOTH_HISTORY_WEIGHT"); // not used anymore
@@ -3237,7 +3237,7 @@ _env_get(void)
    if (s) _elm_config->spinner_min_max_filter_enable = !!atoi(s);
 
    s = _getenv_once("ELM_TRANSITION_DURATION_FACTOR");
-   if (s) _elm_config->transition_duration_factor = atof(s);
+   if (s) _elm_config->transition_duration_factor = _elm_atof(s);
 
    s = _getenv_once("ELM_POPUP_HORIZONTAL_ALIGN");
    if (s) _elm_config->popup_horizontal_align = _elm_atof(s);
diff --git a/src/lib/elementary/elm_flipselector.c b/src/lib/elementary/elm_flipselector.c
index 51481a9ad0..c7acf8bd6b 100644
--- a/src/lib/elementary/elm_flipselector.c
+++ b/src/lib/elementary/elm_flipselector.c
@@ -518,7 +518,7 @@ _elm_flipselector_efl_ui_range_display_range_value_get(const Eo *obj EINA_UNUSED
         return 0;
      }
    ELM_FLIPSELECTOR_ITEM_DATA_GET(sd->current->data, item);
-   return atof(item->label);
+   return eina_convert_strtod_c(item->label, NULL);
 }
 
 EOLIAN static void
@@ -529,7 +529,7 @@ _elm_flipselector_efl_ui_range_display_range_value_set(Eo *obj EINA_UNUSED, Elm_
 
    EINA_LIST_FOREACH(sd->items, l, it)
      {
-        if (atof(elm_object_item_text_get(it)) >= val)
+        if (eina_convert_strtod_c(elm_object_item_text_get(it), NULL) >= val)
           break;
      }
    elm_flipselector_item_selected_set(it, EINA_TRUE);
diff --git a/src/lib/elementary/elm_util.c b/src/lib/elementary/elm_util.c
index 101afe9bb3..49559502cd 100644
--- a/src/lib/elementary/elm_util.c
+++ b/src/lib/elementary/elm_util.c
@@ -54,16 +54,6 @@ _elm_util_text_to_mkup(const char *text)
 double
 _elm_atof(const char *s)
 {
-   char *cradix, *buf, *p;
-
    if ((!s) || (!s[0])) return 0.0;
-   cradix = nl_langinfo(RADIXCHAR);
-   if (!cradix) return atof(s);
-   buf = alloca(strlen(s) + 1);
-   strcpy(buf, s);
-   for (p = buf; *p; p++)
-     {
-        if (*p == '.') *p = *cradix;
-     }
-   return atof(buf);
+   return eina_convert_strtod_c(s, NULL);
 }
diff --git a/src/lib/embryo/embryo_float.c b/src/lib/embryo/embryo_float.c
index f1e51df96d..2aaeffbdb1 100644
--- a/src/lib/embryo/embryo_float.c
+++ b/src/lib/embryo/embryo_float.c
@@ -99,7 +99,7 @@ _embryo_fp_str(Embryo_Program *ep, Embryo_Cell *params)
    len = embryo_data_string_length_get(ep, str);
    if ((len == 0) || (len >= (int)sizeof(buf))) return 0;
    embryo_data_string_get(ep, str, buf);
-   f = (float)atof(buf);
+   f = (float)eina_convert_strtod_c(buf, NULL);
    return EMBRYO_FLOAT_TO_CELL(f);
 }
 
diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c
index ab9363d357..f1bd552cb3 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -2984,7 +2984,7 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch
          * underline_height=<floatingnumber>
          * @endcode
          */
-        fmt->underline_height = atof(param);
+        fmt->underline_height = eina_convert_strtod_c(param, NULL);
         if (fmt->underline_height <= 0.0) fmt->underline_height = 1.0;
      }
    else if (cmd == gfx_filterstr)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to