diff --git a/libdino/src/service/message_processor.vala b/libdino/src/service/message_processor.vala index 04c7d1a5..01687083 100644 --- a/libdino/src/service/message_processor.vala +++ b/libdino/src/service/message_processor.vala @@ -472,8 +472,7 @@ public class MessageProcessor : StreamInteractionModule, Object { string fallback = FallbackBody.get_quoted_fallback_body(content_item); - long fallback_length = fallback.length; - var fallback_location = new Xep.FallbackIndication.FallbackLocation(0, (int)fallback_length); + var fallback_location = new Xep.FallbackIndication.FallbackLocation(0, (int)fallback.char_count()); Xep.FallbackIndication.set_fallback(new_stanza, new Xep.FallbackIndication.Fallback(Xep.Replies.NS_URI, new Xep.FallbackIndication.FallbackLocation[] { fallback_location })); return fallback; diff --git a/libdino/src/service/replies.vala b/libdino/src/service/replies.vala index 2bb10e0b..58d44b37 100644 --- a/libdino/src/service/replies.vala +++ b/libdino/src/service/replies.vala @@ -105,7 +105,8 @@ namespace Dino { string body = message.body; foreach (var fallback in message.get_fallbacks()) { if (fallback.ns_uri == Xep.Replies.NS_URI && message.quoted_item_id > 0) { - body = body[0:fallback.locations[0].from_char] + body[fallback.locations[0].to_char:body.length]; + body = body[0:body.index_of_nth_char(fallback.locations[0].from_char)] + + body[body.index_of_nth_char(fallback.locations[0].to_char):body.length]; } } return body;