int first = 1;
int update_format_node;
size_t pos = 0;
+ int orig_end;
itr = n->format_node;
if (!itr || (itr->text_node != n)) return EINA_FALSE;
+ orig_end = end;
if ((end < 0) || ((size_t) end == eina_ustrbuf_length_get(n->unicode)))
{
use_end = 0;
}
+ else if (end > 0)
+ {
+ /* We don't want the last one */
+ end--;
+ }
/* If we are not removing the text node, all should stay in this text
* node, otherwise, everything should move to the previous node */
}
update_format_node = ((itr == n->format_node) && (new_node != n));
- delta = end - pos;
+ delta = orig_end - pos;
itr->offset -= pos - start;
while (itr && (itr->text_node == n))
break;
}
- delta = end - pos;
+ delta = orig_end - pos;
if (!first)
{
last_node->offset = 0;
int tmp_offset = 0;
/* start is negative when this gets relevant */
- if ((offset + start <= 0) && use_end)
+ if ((offset + start < 0) && use_end)
{
break;
}