Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
const char *s;
static char buf[16];
- int pos, pos2, ch;
+ int pos, pos2, i;
if (!c) return NULL;
s = evas_textblock_node_format_text_get(evas_textblock_cursor_format_get(c));
if (s) return s;
s = evas_textblock_cursor_paragraph_text_get(c);
if (!s) return NULL;
pos = evas_textblock_cursor_pos_get(c);
- pos2 = evas_string_char_next_get(s, pos, &ch);
- strncpy(buf, s + pos, pos2 - pos);
- buf[pos2 - pos] = 0;
+ /* Get the actual utf8 pos */
+ for (i = 0 ; pos > 0 ; pos--)
+ {
+ i = evas_string_char_next_get(s, i, NULL);
+ }
+ pos2 = evas_string_char_next_get(s, i, NULL);
+ strncpy(buf, s + i, pos2 - i);
+ buf[pos2 - i] = 0;
return buf;
}