Html/Markdown: prune entities of length=0 (fix wiz0u/WTelegramBot#6)

This commit is contained in:
Wizou 2025-03-23 03:10:04 +01:00
parent 0867c044fa
commit e6a4b802e7

View file

@ -458,11 +458,13 @@ namespace TL
{ {
int newlen = sb.Length; int newlen = sb.Length;
while (--newlen >= 0 && char.IsWhiteSpace(sb[newlen])); while (--newlen >= 0 && char.IsWhiteSpace(sb[newlen]));
if (++newlen == sb.Length) return; if (++newlen != sb.Length) sb.Length = newlen;
sb.Length = newlen; for (int i = 0; i < entities.Count; i++)
foreach (var entity in entities) {
if (entity.offset + entity.length > newlen) var entity = entities[i];
entity.length = newlen - entity.offset; if (entity.offset + entity.length > newlen) entity.length = newlen - entity.offset;
if (entity.length == 0) entities.RemoveAt(i--);
}
} }
/// <summary>Converts the (plain text + entities) format used by Telegram messages into an <a href="https://core.telegram.org/bots/api/#html-style">HTML-formatted text</a></summary> /// <summary>Converts the (plain text + entities) format used by Telegram messages into an <a href="https://core.telegram.org/bots/api/#html-style">HTML-formatted text</a></summary>