From 444a4a54745a33980b8d5bbe156cffaa3981f2ad Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 22 Mar 2024 20:49:10 +0300 Subject: fix for the multiple emoji drawing --- plugins/NewStory/src/templates.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'plugins/NewStory/src/templates.cpp') diff --git a/plugins/NewStory/src/templates.cpp b/plugins/NewStory/src/templates.cpp index 3c7b01eb4b..298141b943 100644 --- a/plugins/NewStory/src/templates.cpp +++ b/plugins/NewStory/src/templates.cpp @@ -156,19 +156,22 @@ CMStringW ItemData::formatHtml(const wchar_t *pwszStr) AppendString(szBody, wszOrigText); UrlAutodetect(szBody); if (spRes) { + int iOffset = 0; for (int i = 0; i < (int)sp.numSmileys; i++) { auto &smiley = spRes[i]; if (!mir_wstrlen(smiley.filepath)) continue; CMStringW wszFound(wszOrigText.Mid(smiley.startChar, smiley.size)); - int idx = szBody.Find(wszFound); + int idx = szBody.Find(wszFound, iOffset); if (idx == -1) continue; szBody.Delete(idx, smiley.size); - szBody.Insert(idx, CMStringW(FORMAT, L"\"%s\"", - smiley.filepath, wszFound.c_str(), wszFound.c_str())); + + CMStringW wszNew(FORMAT, L"\"%s\"", smiley.filepath, wszFound.c_str(), wszFound.c_str()); + szBody.Insert(idx, wszNew); + iOffset = idx + wszNew.GetLength(); } CallService(MS_SMILEYADD_BATCHFREE, 0, (LPARAM)spRes); -- cgit v1.2.3