diff options
author | Omar Vega Ramos <ovruni@gnu.org.pe> | 2020-04-11 10:28:38 -0500 |
---|---|---|
committer | Omar Vega Ramos <ovruni@gnu.org.pe> | 2020-04-11 10:28:38 -0500 |
commit | a349f5531481c2f0fdf95ce7a7f1189c8678ad39 (patch) | |
tree | 891a0b21f27f40cf5476f92215e1153940e48992 /libre/mc/mc-mksh-subshell-v2.patch | |
parent | b6cfecdd5f0ebb64eff423f33227a96d78c77acf (diff) | |
download | abslibre-a349f5531481c2f0fdf95ce7a7f1189c8678ad39.tar.gz abslibre-a349f5531481c2f0fdf95ce7a7f1189c8678ad39.tar.bz2 abslibre-a349f5531481c2f0fdf95ce7a7f1189c8678ad39.zip |
mc-4.8.24-2.parabola1: updating version
Diffstat (limited to 'libre/mc/mc-mksh-subshell-v2.patch')
-rw-r--r-- | libre/mc/mc-mksh-subshell-v2.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/libre/mc/mc-mksh-subshell-v2.patch b/libre/mc/mc-mksh-subshell-v2.patch new file mode 100644 index 000000000..e701d15f2 --- /dev/null +++ b/libre/mc/mc-mksh-subshell-v2.patch @@ -0,0 +1,74 @@ +# Support mksh for mc subshell +# https://midnight-commander.org/ticket/3748 +diff -Naur mc-4.8.18.orig/lib/shell.c mc-4.8.18/lib/shell.c +--- mc-4.8.18.orig/lib/shell.c 2016-09-22 18:24:12.000000000 +0000 ++++ mc-4.8.18/lib/shell.c 2017-02-16 13:47:34.933939000 +0000 +@@ -66,6 +66,8 @@ + /* 3rd choice: look for existing shells supported as MC subshells. */ + if (access ("/bin/bash", X_OK) == 0) + mc_shell->path = g_strdup ("/bin/bash"); ++ else if (access ("/bin/mksh", X_OK) == 0) ++ mc_shell->path = g_strdup ("/bin/mksh"); + else if (access ("/bin/ash", X_OK) == 0) + mc_shell->path = g_strdup ("/bin/ash"); + else if (access ("/bin/dash", X_OK) == 0) +@@ -149,6 +153,12 @@ + mc_shell->type = SHELL_ZSH; + mc_shell->name = "zsh"; + } ++ else if (strstr (mc_shell->path, "/mksh") != NULL ++ || strstr (mc_shell->real_path, "/mksh") != NULL) ++ { ++ mc_shell->type = SHELL_MKSH; ++ mc_shell->name = "mksh"; ++ } + else if (strstr (mc_shell->path, "/tcsh") != NULL + || strstr (mc_shell->real_path, "/tcsh") != NULL) + { +diff -Naur mc-4.8.18.orig/lib/shell.h mc-4.8.18/lib/shell.h +--- mc-4.8.18.orig/lib/shell.h 2016-03-12 15:45:47.000000000 +0000 ++++ mc-4.8.18/lib/shell.h 2017-02-15 21:57:39.000000000 +0000 +@@ -12,6 +12,7 @@ + typedef enum + { + SHELL_NONE, ++ SHELL_MKSH, + SHELL_SH, + SHELL_BASH, + SHELL_ASH_BUSYBOX, /* BusyBox default shell (ash) */ +diff -Naur mc-4.8.18.orig/src/subshell/common.c mc-4.8.18/src/subshell/common.c +--- mc-4.8.18.orig/src/subshell/common.c 2016-09-22 18:24:12.000000000 +0000 ++++ mc-4.8.18/src/subshell/common.c 2017-02-20 18:48:22.681514000 +0000 +@@ -320,6 +320,12 @@ + + break; + ++ case SHELL_MKSH: ++ init_file = g_strdup (".shrc"); ++ putenv_str = g_strconcat ("ENV=", init_file, (char *) NULL); ++ putenv (putenv_str); ++ break; ++ + /* TODO: Find a way to pass initfile to TCSH, ZSH and FISH */ + case SHELL_TCSH: + case SHELL_ZSH: +@@ -367,6 +373,7 @@ + + case SHELL_ASH_BUSYBOX: + case SHELL_DASH: ++ case SHELL_MKSH: + case SHELL_TCSH: + case SHELL_FISH: + execl (mc_global.shell->path, mc_global.shell->path, (char *) NULL); +@@ -801,6 +808,11 @@ + "PS1='\\u@\\h:\\w\\$ '\n", subshell_pipe[WRITE]); + break; + ++ case SHELL_MKSH: ++ g_snprintf (precmd, buff_size, ++ "PS1='$(pwd>&%d; kill -STOP $$)'\"$((( USER_ID )) && print '$ ' || print '# ')\"\n", subshell_pipe[WRITE]); ++ break; ++ + case SHELL_ASH_BUSYBOX: + /* BusyBox ash needs a somewhat complicated precmd emulation via PS1, and it is vital + * that BB be built with active CONFIG_ASH_EXPAND_PRMT, but this is the default anyway. |