summaryrefslogtreecommitdiff
path: root/libre/mc/mc-mksh-subshell-v2.patch
diff options
context:
space:
mode:
authorOmar Vega Ramos <ovruni@gnu.org.pe>2020-04-11 10:28:38 -0500
committerOmar Vega Ramos <ovruni@gnu.org.pe>2020-04-11 10:28:38 -0500
commita349f5531481c2f0fdf95ce7a7f1189c8678ad39 (patch)
tree891a0b21f27f40cf5476f92215e1153940e48992 /libre/mc/mc-mksh-subshell-v2.patch
parentb6cfecdd5f0ebb64eff423f33227a96d78c77acf (diff)
downloadabslibre-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.patch74
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.