diff options
Diffstat (limited to 'src/platform/macos.rs')
| -rw-r--r-- | src/platform/macos.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/platform/macos.rs b/src/platform/macos.rs index e72d32fe..f2441f06 100644 --- a/src/platform/macos.rs +++ b/src/platform/macos.rs @@ -16,6 +16,23 @@ const PROC_PGRP_ONLY: u32 = 2; const SERVER_NOFILE_LIMIT_TARGET: libc::rlim_t = 8192; const CF_STRING_ENCODING_UTF8: u32 = 0x0800_0100; +fn raw_command_argv(command: &str, flag: &str) -> Vec<std::ffi::OsString> { + vec!["/bin/sh".into(), flag.into(), command.into()] +} + +pub(crate) fn detached_custom_command_process_platform(command: &str) -> std::process::Command { + let argv = raw_command_argv(command, "-lc"); + let mut command = std::process::Command::new(&argv[0]); + command.args(&argv[1..]); + command +} + +pub(crate) fn pane_custom_command_pty_builder_platform( + command: &str, +) -> portable_pty::CommandBuilder { + portable_pty::CommandBuilder::from_argv(raw_command_argv(command, "-c")) +} + pub(crate) fn scrollback_editor_argv(path: &Path) -> std::io::Result<Vec<String>> { let quoted_path = shell_quote(&path.display().to_string()); let command = format!( |
