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;
}