git » sdk » commit 22db517

Sort fallbacks last-to-first

author Stephen Paul Weber
2024-10-08 15:44:54 UTC
committer Stephen Paul Weber
2024-10-08 15:44:54 UTC
parent a2949dc95edad169f55bb67bcc860d28b002a632

Sort fallbacks last-to-first

Otherwise removing them doesn't work right

snikket/ChatMessage.hx +1 -1

diff --git a/snikket/ChatMessage.hx b/snikket/ChatMessage.hx
index 03ee468..a4015c1 100644
--- a/snikket/ChatMessage.hx
+++ b/snikket/ChatMessage.hx
@@ -213,7 +213,7 @@ class ChatMessage {
 		final fallbacks: Array<{start: Int, end: Int}> = cast payloads.filter(
 			(p) -> p.attr.get("xmlns") == "urn:xmpp:fallback:0" && (p.attr.get("for") == "jabber:x:oob" || p.attr.get("for") == "urn:xmpp:sims:1" || (replyToMessage != null && p.attr.get("for") == "urn:xmpp:reply:0") || p.attr.get("for") == "http://jabber.org/protocol/address")
 		).map((p) -> p.getChild("body")).map((b) -> b == null ? null : { start: Std.parseInt(b.attr.get("start") ?? "0") ?? 0, end: Std.parseInt(b.attr.get("end") ?? Std.string(codepoints.length)) ?? codepoints.length }).filter((b) -> b != null);
-		fallbacks.sort((x, y) -> x.start - y.start);
+		fallbacks.sort((x, y) -> y.start - x.start);
 		for (fallback in fallbacks) {
 			codepoints.splice(fallback.start, (fallback.end - fallback.start));
 		}