From 654fd5f8cc5693b7cd7c47c9a485ff0eb98a71bb Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 17 Apr 2024 13:43:23 +0300 Subject: [PATCH] =?UTF-8?q?fixes=20#4348=20(NewStory:=20=D1=82=D0=B0=D0=B1?= =?UTF-8?q?=D1=83=D0=BB=D1=8F=D1=86=D0=B8=D1=8F=20=D0=B2=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B6=D0=B8=D0=BC=D0=B5=20=D0=BF=D1=80=D0=BE=D1=81=D0=BC=D0=BE?= =?UTF-8?q?=D1=82=D1=80=D0=B0=20=D1=81=D1=8A=D0=B5=D0=B4=D0=B0=D0=B5=D1=82?= =?UTF-8?q?=D1=81=D1=8F,=20=D0=B0=20=D0=B2=20=D1=80=D0=B5=D0=B6=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5=20=D1=80=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=B5=D1=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/NewStory/src/templates.cpp | 9 +++++++++ protocols/Telegram/src/utils.cpp | 15 +++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/plugins/NewStory/src/templates.cpp b/plugins/NewStory/src/templates.cpp index 4172521496f..d6c0472836b 100644 --- a/plugins/NewStory/src/templates.cpp +++ b/plugins/NewStory/src/templates.cpp @@ -175,6 +175,15 @@ static void AppendString(CMStringW &buf, const wchar_t *p, ItemData *pItem) p = p1 + 5; } } + else if (!wcsncmp(p, L"code]", 5)) { + p += 5; + + if (auto *p1 = wcsstr(p, L"[/code]")) { + CMStringW wszUrl(p, int(p1 - p)); + buf.AppendFormat(L"
%s
", wszUrl.c_str()); + p = p1 + 6; + } + } else { buf.AppendChar('['); if (*pEnd == '/') diff --git a/protocols/Telegram/src/utils.cpp b/protocols/Telegram/src/utils.cpp index faf52c94d08..34201b930d5 100644 --- a/protocols/Telegram/src/utils.cpp +++ b/protocols/Telegram/src/utils.cpp @@ -19,7 +19,7 @@ along with this program. If not, see . enum class BBCODE { - BOLD, ITALIC, STRIKE, UNDERLINE, URL + BOLD, ITALIC, STRIKE, UNDERLINE, URL, CODE }; struct @@ -30,11 +30,12 @@ struct } static bbCodes[] = { - { BBCODE::BOLD, L"[b]", L"[/b]", 3, 4 }, - { BBCODE::ITALIC, L"[i]", L"[/i]", 3, 4 }, - { BBCODE::STRIKE, L"[s]", L"[/s]", 3, 4 }, - { BBCODE::UNDERLINE, L"[u]", L"[/u]", 3, 4 }, - { BBCODE::URL, L"[url]", L"[/url]", 5, 6 }, + { BBCODE::BOLD, L"[b]", L"[/b]", 3, 4 }, + { BBCODE::ITALIC, L"[i]", L"[/i]", 3, 4 }, + { BBCODE::STRIKE, L"[s]", L"[/s]", 3, 4 }, + { BBCODE::UNDERLINE, L"[u]", L"[/u]", 3, 4 }, + { BBCODE::URL, L"[url]", L"[/url]", 5, 6 }, + { BBCODE::CODE, L"[code]", L"[/code]", 6, 7 }, }; TD::object_ptr formatBbcodes(const char *pszText) @@ -65,6 +66,7 @@ TD::object_ptr formatBbcodes(const char *pszText) TD::object_ptr pNew; switch (it.type) { case BBCODE::URL: pNew = TD::make_object(); break; + case BBCODE::CODE: pNew = TD::make_object(); break; case BBCODE::BOLD: pNew = TD::make_object(); break; case BBCODE::ITALIC: pNew = TD::make_object(); break; case BBCODE::STRIKE: pNew = TD::make_object(); break; @@ -94,6 +96,7 @@ static CMStringA getFormattedText(TD::object_ptr &pText) case TD::textEntityTypeStrikethrough::ID: iCode = 2; break; case TD::textEntityTypeUnderline::ID: iCode = 3; break; case TD::textEntityTypeUrl::ID: iCode = 4; break; + case TD::textEntityTypeCode::ID: iCode = 5; break; default: continue; }