mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-08-31 22:46:10 +00:00
@@ -57,7 +57,7 @@ Replace Replaces[] = {
|
||||
{ { 0xD83DDE22U }, ":'(" },
|
||||
{ { 0xD83DDE2DU }, ":_(" },
|
||||
{ { 0xD83DDE29U }, ":((" },
|
||||
{ { 0xD83DDE28U }, ":o" },
|
||||
// { { 0xD83DDE28U }, ":o" }, // Conflicts with typing :ok...
|
||||
{ { 0xD83DDE10U }, ":|" },
|
||||
{ { 0xD83DDE0CU }, "3-)" },
|
||||
{ { 0xD83DDE20U }, ">(" },
|
||||
|
@@ -335,6 +335,10 @@ EmojiPtr FindReplace(const QChar *start, const QChar *end, int *outLength) {\n\
|
||||
return index ? &Items[index - 1] : nullptr;\n\
|
||||
}\n\
|
||||
\n\
|
||||
const std::vector<std::pair<QString, int>> GetReplacementPairs() {\n\
|
||||
return ReplacementPairs;\n\
|
||||
}\n\
|
||||
\n\
|
||||
EmojiPtr Find(const QChar *start, const QChar *end, int *outLength) {\n\
|
||||
auto index = FindIndex(start, end, outLength);\n\
|
||||
return index ? &Items[index - 1] : nullptr;\n\
|
||||
@@ -389,6 +393,7 @@ inline bool IsReplaceEdge(const QChar *ch) {\n\
|
||||
// return false;\n\
|
||||
}\n\
|
||||
\n\
|
||||
const std::vector<std::pair<QString, int>> GetReplacementPairs();\n\
|
||||
EmojiPtr FindReplace(const QChar *ch, const QChar *end, int *outLength = nullptr);\n\
|
||||
\n";
|
||||
header->popNamespace().stream() << "\
|
||||
@@ -591,6 +596,14 @@ EmojiPack GetSection(Section section) {\n\
|
||||
bool Generator::writeFindReplace() {
|
||||
source_->stream() << "\
|
||||
\n\
|
||||
const std::vector<std::pair<QString, int>> ReplacementPairs = {\n";
|
||||
for (const auto &[what, index] : data_.replaces) {
|
||||
source_->stream() << "\
|
||||
{ qsl(\"" << what << "\"), " << index << " },\n";
|
||||
}
|
||||
source_->stream() << "\
|
||||
};\n\
|
||||
\n\
|
||||
int FindReplaceIndex(const QChar *start, const QChar *end, int *outLength) {\n\
|
||||
auto ch = start;\n\
|
||||
\n";
|
||||
@@ -783,6 +796,7 @@ struct Replacement {\n\
|
||||
constexpr auto kReplacementMaxLength = " << maxLength << ";\n\
|
||||
\n\
|
||||
void InitReplacements();\n\
|
||||
const std::vector<Replacement> &GetAllReplacements();\n\
|
||||
const std::vector<const Replacement*> *GetReplacements(utf16char first);\n\
|
||||
utf16string GetReplacementEmoji(utf16string replacement);\n\
|
||||
\n";
|
||||
@@ -923,6 +937,10 @@ const std::vector<const Replacement*> *GetReplacements(utf16char first) {\n\
|
||||
return (it == ReplacementsMap.cend()) ? nullptr : &it->second;\n\
|
||||
}\n\
|
||||
\n\
|
||||
const std::vector<Replacement> &GetAllReplacements() {\n\
|
||||
return Replacements;\n\
|
||||
}\n\
|
||||
\n\
|
||||
utf16string GetReplacementEmoji(utf16string replacement) {\n\
|
||||
auto code = internal::countChecksum(replacement.data(), replacement.size() * sizeof(utf16char));\n\
|
||||
auto it = ReplacementsHash.find(code);\n\
|
||||
|
Reference in New Issue
Block a user