From d5fc6d87c36add3db2888aa02ef8d91c6d8386a6 Mon Sep 17 00:00:00 2001 From: akruphi <92621645+akruphi@users.noreply.github.com> Date: Sat, 4 Jan 2025 11:33:44 +0300 Subject: [PATCH] new function ExMessager::AddMultiline() & tuning after #2576 --- far2l/src/main.cpp | 14 +++++--------- far2l/src/message.cpp | 10 ++++++++++ far2l/src/message.hpp | 3 +++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/far2l/src/main.cpp b/far2l/src/main.cpp index 2c4ff2acc..cbf6239f0 100644 --- a/far2l/src/main.cpp +++ b/far2l/src/main.cpp @@ -312,22 +312,18 @@ static int MainProcess(FARString strEditViewArg, FARString strDestName1, FARStri if (tweaks & TWEAK_STATUS_SUPPORT_OSC52CLIP_SET) { SetMessageHelp(L"Far2lGettingStarted"); - std::wstring source_str = Msg::OSC52Confirm.CPtr(); - std::vector lines; ExMessager em; - StrExplode(lines, source_str, L"\n", false); - for (const auto ¤t_line : lines) { - em.AddDup(current_line.c_str()); - } + em.AddMultiline(Msg::OSC52Confirm); em.AddDup(L"Yes"); em.AddDup(L"No"); if (em.Show(0, 2)) { - Opt.OSC52ClipSet = 0; + if (Opt.OSC52ClipSet != 0) + { Opt.OSC52ClipSet = 0; cfgNeedSave = true; } } else { - Opt.OSC52ClipSet = 1; + if (Opt.OSC52ClipSet != 1) + { Opt.OSC52ClipSet = 1; cfgNeedSave = true; } } - cfgNeedSave = true; } } diff --git a/far2l/src/message.cpp b/far2l/src/message.cpp index 1169d2abe..f5760a462 100644 --- a/far2l/src/message.cpp +++ b/far2l/src/message.cpp @@ -566,6 +566,16 @@ Messager &FN_NOINLINE ExMessager::AddDup(const wchar_t *v) return *this; } +Messager &FN_NOINLINE ExMessager::AddMultiline(const wchar_t *v, const wchar_t *divs) +{ + std::wstring source_str = v; + std::vector lines; + StrExplode(lines, source_str, divs, false); + for (const auto ¤t_line : lines) + AddDup(current_line.c_str()); + return *this; +} + /////////////////////////////////// void GetMessagePosition(int &X1, int &Y1, int &X2, int &Y2) diff --git a/far2l/src/message.hpp b/far2l/src/message.hpp index 97737f0e7..6ed95810e 100644 --- a/far2l/src/message.hpp +++ b/far2l/src/message.hpp @@ -89,6 +89,9 @@ struct ExMessager : Messager Messager &AddFormat(FarLangMsg fmt, ...); Messager &AddFormat(const wchar_t *fmt, ...); Messager &AddDup(const wchar_t *v); + Messager &AddMultiline(const wchar_t *v, const wchar_t *divs = L"\n"); + inline Messager &AddMultiline(FarLangMsg v, const wchar_t *divs = L"\n") + { return AddMultiline(v.CPtr(), divs); }; private: std::vector _owneds;