const Eina_Unicode *tbase;
Evas_Object_Textblock_Text_Item *ti;
size_t cur_len = 0;
+ Eina_Unicode urepch = 0;
/* prepare a working copy of the string, either filled by the repch or
* filled with the true values */
{
int i, ind;
Eina_Unicode *ptr;
- Eina_Unicode urepch;
tbase = str = ptr = alloca((off + 1) * sizeof(Eina_Unicode));
ind = 0;
c->par->bidi_props, ti->parent.text_pos, tmp_len);
}
}
+ ti->text_props.repch = urepch;
str += tmp_len;
cur_len -= tmp_len;
#else
/* FIXME: Should be removed once we split according to script without
* the use of harfbuzz */
- index =
- evas_common_font_glyph_search(fn, &fi, text[EVAS_FONT_WALK_POS]);
+ if (text_props->repch)
+ index =
+ evas_common_font_glyph_search(fn, &fi, text_props->repch);
+ else
+ index =
+ evas_common_font_glyph_search(fn, &fi, text[EVAS_FONT_WALK_POS]);
if (index == 0)
{
#else
/* FIXME: Should be removed once we split according to script without
* the use of harfbuzz */
- index =
- evas_common_font_glyph_search(fn, &fi, text[EVAS_FONT_WALK_POS]);
+ if (text_props->repch)
+ index =
+ evas_common_font_glyph_search(fn, &fi, text_props->repch);
+ else
+ index =
+ evas_common_font_glyph_search(fn, &fi, text[EVAS_FONT_WALK_POS]);
if (fi->src->current_size != fi->size)
{
Evas_BiDi_Props bidi;
Evas_Script_Type script;
Evas_Text_Props_Info *info;
+
+ /* FIXME: just a hack in the meanwhile, remove when I can finally cache
+ * fi and split to scripts without harfbuzz */
+ Eina_Unicode repch;
};
struct _Evas_Text_Props_Info