diff --git a/legacy/evas/src/lib/canvas/evas_object_text.c b/legacy/evas/src/lib/canvas/evas_object_text.c index 554234299a..3e8b00fe04 100644 --- a/legacy/evas/src/lib/canvas/evas_object_text.c +++ b/legacy/evas/src/lib/canvas/evas_object_text.c @@ -643,7 +643,7 @@ _evas_object_text_layout(Evas_Object *obj, Evas_Object_Text *o, const Eina_Unico cutoff = evas_common_language_script_end_of_run_get( text, o->bidi_par_props, - pos, len); + pos, len - pos); if (cutoff > 0) { #ifdef BIDI_SUPPORT diff --git a/legacy/evas/src/lib/canvas/evas_object_textblock.c b/legacy/evas/src/lib/canvas/evas_object_textblock.c index 4eff07ce48..d75653adff 100644 --- a/legacy/evas/src/lib/canvas/evas_object_textblock.c +++ b/legacy/evas/src/lib/canvas/evas_object_textblock.c @@ -2589,14 +2589,14 @@ skip: while (str && *str) { /* if this is the first line item and it starts with spaces - remove them */ - int tmp_len = 0; + int tmp_len; wrap = 0; white_stripped = 0; ti = _layout_text_item_new(c, fmt, str); ti->parent.text_node = n; ti->parent.text_pos = start + str - tbase; - tmp_len = eina_unicode_strlen(ti->text); + tmp_len = off - (str - tbase); if (ti->parent.text_node) { int tmp_cut; diff --git a/legacy/evas/src/lib/engines/common/language/evas_language_utils.c b/legacy/evas/src/lib/engines/common/language/evas_language_utils.c index 385ddf41b1..8cdf709502 100644 --- a/legacy/evas/src/lib/engines/common/language/evas_language_utils.c +++ b/legacy/evas/src/lib/engines/common/language/evas_language_utils.c @@ -59,7 +59,7 @@ evas_common_language_script_end_of_run_get(const Eina_Unicode *str, { Evas_Script_Type first = EVAS_SCRIPT_UNKNOWN; int i; - for (i = start, str += start ; (i < len) ; i++, str++) + for (i = 0 ; i < len ; i++, str++) { Evas_Script_Type tmp; tmp = _get_script(*str); @@ -75,11 +75,11 @@ evas_common_language_script_end_of_run_get(const Eina_Unicode *str, break; } } - i = i - start; #ifdef BIDI_SUPPORT { int bidi_end; - bidi_end = evas_bidi_end_of_run_get(bidi_props, start, len); + bidi_end = evas_bidi_end_of_run_get(bidi_props, start, + start + len); if (bidi_end > 0) { i = (i < bidi_end) ? i : bidi_end; @@ -94,7 +94,7 @@ evas_common_language_script_end_of_run_get(const Eina_Unicode *str, else { #ifdef BIDI_SUPPORT - return evas_bidi_end_of_run_get(bidi_props, start, len); + return evas_bidi_end_of_run_get(bidi_props, start, start + len); #endif } return 0;