From dd71baa7d60ea28081d17b85970c3219ab999fee Mon Sep 17 00:00:00 2001 From: Maximus5 Date: Fri, 1 Apr 2016 11:42:21 +0300 Subject: [PATCH] Don't run the command started by Shift-Enter from Far Manager via ConEmuC.exe. If one needs the command to be started in new ConEmu tab, than install the Macro: `ConEmu/Far3_lua/ConEmu.ShiftEnter.lua`. --- src/ConEmuHk/ShellProcessor.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/ConEmuHk/ShellProcessor.cpp b/src/ConEmuHk/ShellProcessor.cpp index 0711355800..d34a395644 100644 --- a/src/ConEmuHk/ShellProcessor.cpp +++ b/src/ConEmuHk/ShellProcessor.cpp @@ -2229,20 +2229,23 @@ int CShellProc::PrepareExecuteParms( } else { - bGoChangeParm = ((bLongConsoleOutput) - || (lbGuiApp && (NewConsoleFlags || bForceNewConsole)) // хотят GUI прицепить к новой вкладке в ConEmu, или новую консоль из GUI - // eCreateProcess перехватывать не нужно (сами сделаем InjectHooks после CreateProcess) - || ((mn_ImageBits != 16) && (m_SrvMapping.bUseInjects & 1) - && (NewConsoleFlags - || (bLongConsoleOutput && (aCmd == eShellExecute)) + // хотят GUI прицепить к новой вкладке в ConEmu, или новую консоль из GUI + if (lbGuiApp && (NewConsoleFlags || bForceNewConsole)) + bGoChangeParm = true; + // eCreateProcess перехватывать не нужно (сами сделаем InjectHooks после CreateProcess) + else if ((mn_ImageBits != 16) && (m_SrvMapping.bUseInjects & 1) + && (NewConsoleFlags // CEF_NEWCON_SWITCH | CEF_NEWCON_PREPEND + || (bLongConsoleOutput && (aCmd == eShellExecute) && (anShellFlags && (*anShellFlags & SEE_MASK_NO_CONSOLE)) && (anShowCmd && *anShowCmd)) || (bCurConsoleArg && (m_Args.LongOutputDisable != crb_On)) #ifdef _DEBUG || lbAlwaysAddConEmuC #endif )) - // если это Дос-приложение - то если включен DosBox, вставляем ConEmuC.exe /DOSBOX - || ((mn_ImageBits == 16) && (mn_ImageSubsystem == IMAGE_SUBSYSTEM_DOS_EXECUTABLE) - && m_SrvMapping.cbSize && (m_SrvMapping.Flags & CECF_DosBox))); + bGoChangeParm = true; + // если это Дос-приложение - то если включен DosBox, вставляем ConEmuC.exe /DOSBOX + else if ((mn_ImageBits == 16) && (mn_ImageSubsystem == IMAGE_SUBSYSTEM_DOS_EXECUTABLE) + && m_SrvMapping.cbSize && (m_SrvMapping.Flags & CECF_DosBox)) + bGoChangeParm = true; } if (bGoChangeParm)