From 3cc99199295f6d292fa999713f007106815b5a73 Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Mon, 23 Mar 2026 18:18:03 +0100 Subject: [PATCH] add: [Settings2]CopyMultiSelectionSeparator= config --- Build/Notepad3.ini | 1 + src/Config/Config.cpp | 3 +++ src/Edit.c | 16 +++++++++++++--- src/TypeDefs.h | 2 ++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Build/Notepad3.ini b/Build/Notepad3.ini index 8b902ce6f..c7b555462 100644 --- a/Build/Notepad3.ini +++ b/Build/Notepad3.ini @@ -24,6 +24,7 @@ SettingsVersion=5 ;NoCGIGuess=0 ;NoCopyLineOnEmptySelection=0 ;NoCutLineOnEmptySelection=0 +;CopyMultiSelectionSeparator= ;(-> ) {use empty value for no separator} ;NoFadeHidden=0 ;NoFileVariables=0 ;NoHTMLGuess=0 diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp index 78c3e10a6..f329e6ba6 100644 --- a/src/Config/Config.cpp +++ b/src/Config/Config.cpp @@ -1457,6 +1457,9 @@ void LoadSettings() } } + IniSectionGetString(IniSecSettings2, L"CopyMultiSelectionSeparator", L"\x01", + Settings2.CopyMultiSelectionSeparator, COUNTOF(Settings2.CopyMultiSelectionSeparator)); + for (int i = 0; i < COUNTOF(Settings2.CodeFontPrefPrioList); ++i) { if (i < COUNTOF(g_CodeFontPrioList)) Settings2.CodeFontPrefPrioList[i] = g_CodeFontPrioList[i]; diff --git a/src/Edit.c b/src/Edit.c index d584d141c..6c9106b13 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -3322,9 +3322,19 @@ void EditCopyMultiSelection(HWND hwnd) return; } if (Sci_IsMultiSelection()) { - char pchSep[3] = { '\0' }; - Sci_GetCurrentEOL_A(pchSep); - SciCall_SetCopySeparator(pchSep); + if (Settings2.CopyMultiSelectionSeparator[0] == L'\x01') { + // not set → use current EOL + char pchSep[3] = { '\0' }; + Sci_GetCurrentEOL_A(pchSep); + SciCall_SetCopySeparator(pchSep); + } else { + // use configured separator (may be empty) + char chSep[MICRO_BUFFER * 2] = { '\0' }; + WideCharToMultiByte(Encoding_SciCP, 0, + Settings2.CopyMultiSelectionSeparator, -1, + chSep, COUNTOF(chSep), NULL, NULL); + SciCall_SetCopySeparator(chSep); + } } SciCall_Copy(); } diff --git a/src/TypeDefs.h b/src/TypeDefs.h index 420596482..51fa4ac67 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -832,6 +832,8 @@ typedef struct SETTINGS2_T { WCHAR HyperlinkFileProtocolVerb[MICRO_BUFFER]; + WCHAR CopyMultiSelectionSeparator[MICRO_BUFFER]; + const WCHAR* CodeFontPrefPrioList[MICRO_BUFFER]; const WCHAR* TextFontPrefPrioList[MICRO_BUFFER];