mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
FIX: Terminal settings has wrong default path to Terminal.app (fixes #1595)
(cherry picked from commit 68a12f8e7a)
This commit is contained in:
parent
66a86a84e5
commit
9a08ba81a9
4 changed files with 20 additions and 57 deletions
|
|
@ -57,7 +57,7 @@ const
|
|||
faFolder = S_IFDIR;
|
||||
ReversePathDelim = '\';
|
||||
{$IF DEFINED(DARWIN)}
|
||||
RunTermCmd = '/Applications/Utilities/Terminal.app'; // default terminal
|
||||
RunTermCmd: String = '/Applications/Utilities/Terminal.app'; // default terminal
|
||||
RunTermParams = '%D';
|
||||
RunInTermStayOpenCmd = '%COMMANDER_PATH%/scripts/terminal.sh'; // default run in terminal command AND Stay open after command
|
||||
RunInTermStayOpenParams = '''{command}''';
|
||||
|
|
|
|||
|
|
@ -30,6 +30,21 @@ uses
|
|||
|
||||
implementation
|
||||
|
||||
{$IF DEFINED(DARWIN)}
|
||||
uses
|
||||
uOSUtils, uMyDarwin;
|
||||
|
||||
procedure Initialize;
|
||||
var
|
||||
Cmd: String;
|
||||
begin
|
||||
Cmd:= getMacOSDefaultTerminal;
|
||||
if Length(Cmd) > 0 then
|
||||
begin
|
||||
RunTermCmd:= Cmd;
|
||||
end;
|
||||
end;
|
||||
{$ELSE}
|
||||
uses
|
||||
DCOSUtils, DCClassesUtf8, uMyUnix, uGio, uOSUtils, uSysFolders;
|
||||
|
||||
|
|
@ -206,6 +221,7 @@ begin
|
|||
end;
|
||||
end;
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
initialization
|
||||
Initialize;
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ uses
|
|||
{$ENDIF}
|
||||
{$IF DEFINED(DARWIN)}
|
||||
, BaseUnix, Errors, fFileProperties
|
||||
, uQuickLook, uOpenDocThumb, uMyDarwin
|
||||
, uQuickLook, uOpenDocThumb, uMyDarwin, uDefaultTerminal
|
||||
{$ELSEIF DEFINED(UNIX)}
|
||||
, BaseUnix, Errors, fFileProperties, uJpegThumb, uOpenDocThumb
|
||||
{$IF NOT DEFINED(HAIKU)}
|
||||
|
|
|
|||
|
|
@ -743,9 +743,6 @@ uses
|
|||
{$IF DEFINED(MSWINDOWS)}
|
||||
, ShlObj
|
||||
{$ENDIF}
|
||||
{$IF DEFINED(DARWIN)}
|
||||
, uMyDarwin
|
||||
{$ENDIF}
|
||||
{$if lcl_fullversion >= 2010000}
|
||||
, SynEditMiscClasses
|
||||
{$endif}
|
||||
|
|
@ -2607,62 +2604,12 @@ begin
|
|||
gShowCurDirTitleBar := GetValue(Node, 'ShowCurDirTitleBar', gShowCurDirTitleBar);
|
||||
gActiveRight := GetValue(Node, 'ActiveRight', gActiveRight);
|
||||
|
||||
//Trick to split initial legacy command for terminal
|
||||
// Initial name in config was "RunInTerminal".
|
||||
// If it is still present in config, it means we're running from an older version.
|
||||
// So if it's different than our setting, let's split it to get actual "cmd" and "params".
|
||||
// New version uses "RunInTerminalCloseCmd" from now on.
|
||||
// ALSO, in the case of Windows, installation default was "cmd.exe /K ..." which means Run-and-stayopen
|
||||
// in the case of Unix, installation default was "xterm -e sh -c ..." which means Run-and-close
|
||||
// So because of these two different behavior, transition is done slightly differently.
|
||||
{$IF DEFINED(MSWINDOWS)}
|
||||
gRunInTermStayOpenCmd := GetValue(Node, 'RunInTerminal', gRunInTermStayOpenCmd);
|
||||
if gRunInTermStayOpenCmd<>RunInTermCloseCmd then
|
||||
begin
|
||||
SplitCmdLineToCmdParams(gRunInTermStayOpenCmd, gRunInTermStayOpenCmd, gRunInTermStayOpenParams);
|
||||
if gRunInTermStayOpenParams<>'' then gRunInTermStayOpenParams:=gRunInTermStayOpenParams+' {command}' else gRunInTermStayOpenParams:='{command}';
|
||||
end
|
||||
else
|
||||
begin
|
||||
gRunInTermStayOpenCmd := GetValue(Node, 'RunInTerminalStayOpenCmd', RunInTermStayOpenCmd);
|
||||
gRunInTermStayOpenParams := GetValue(Node, 'RunInTerminalStayOpenParams', RunInTermStayOpenParams);
|
||||
end;
|
||||
gRunTermCmd := GetValue(Node, 'JustRunTerminal', RunTermCmd);
|
||||
gRunTermParams := GetValue(Node, 'JustRunTermParams', RunTermParams);
|
||||
gRunInTermCloseCmd := GetValue(Node, 'RunInTerminalCloseCmd', RunInTermCloseCmd);
|
||||
gRunInTermCloseParams := GetValue(Node, 'RunInTerminalCloseParams', RunInTermCloseParams);
|
||||
{$ELSE}
|
||||
gRunInTermCloseCmd := GetValue(Node, 'RunInTerminal', gRunInTermCloseCmd);
|
||||
if gRunInTermCloseCmd<>RunInTermCloseCmd then
|
||||
begin
|
||||
SplitCmdLineToCmdParams(gRunInTermCloseCmd, gRunInTermCloseCmd, gRunInTermCloseParams);
|
||||
if gRunInTermCloseParams<>'' then gRunInTermCloseParams:=gRunInTermCloseParams+' {command}' else gRunInTermStayOpenParams:='{command}';
|
||||
end
|
||||
else
|
||||
begin
|
||||
gRunInTermCloseCmd := GetValue(Node, 'RunInTerminalCloseCmd', RunInTermCloseCmd);
|
||||
gRunInTermCloseParams := GetValue(Node, 'RunInTerminalCloseParams', RunInTermCloseParams);
|
||||
end;
|
||||
gRunInTermStayOpenCmd := GetValue(Node, 'RunInTerminalStayOpenCmd', RunInTermStayOpenCmd);
|
||||
gRunInTermStayOpenParams := GetValue(Node, 'RunInTerminalStayOpenParams', RunInTermStayOpenParams);
|
||||
{$ENDIF}
|
||||
|
||||
// Let's try to be backward comptible and re-load possible old values for terminal launch command
|
||||
gRunTermCmd := GetValue(Node, 'JustRunTerminal', '');
|
||||
if gRunTermCmd <> '' then begin
|
||||
gRunTermParams := GetValue(Node, 'JustRunTermParams', RunTermParams);
|
||||
end else begin
|
||||
gRunTermCmd := GetValue(Node, 'RunTerminal', '' );
|
||||
if gRunTermCmd <> '' then begin
|
||||
SplitCmdLineToCmdParams(gRunTermCmd, gRunTermCmd, gRunTermParams);
|
||||
end else begin
|
||||
{$IF DEFINED(DARWIN)}
|
||||
gRunTermCmd:= getMacOSDefaultTerminal;
|
||||
if gRunTermCmd = '' then gRunTermCmd := RunTermCmd;
|
||||
{$ELSE}
|
||||
gRunTermCmd := RunTermCmd;
|
||||
{$ENDIF}
|
||||
gRunTermParams := RunTermParams;
|
||||
end;
|
||||
end;
|
||||
|
||||
gOnlyOneAppInstance := GetValue(Node, 'OnlyOneAppInstance', gOnlyOneAppInstance);
|
||||
gLynxLike := GetValue(Node, 'LynxLike', gLynxLike);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue