File less-429-shell.patch of Package less
Index: less-656/filename.c
===================================================================
--- less-656.orig/filename.c
+++ less-656/filename.c
@@ -553,7 +553,7 @@ static FILE * shellcmd(constant char *cm
#if HAVE_SHELL
constant char *shell;
- shell = lgetenv("SHELL");
+ shell = lgetenv("LESSSHELL");
if (!isnullenv(shell))
{
char *scmd;
Index: less-656/less.hlp
===================================================================
--- less-656.orig/less.hlp
+++ less-656/less.hlp
@@ -109,7 +109,7 @@
___<_n_a_m_e_> Display the setting of an option, by name.
+_c_m_d Execute the less cmd each time a new file is examined.
- !_c_o_m_m_a_n_d Execute the shell command with $SHELL.
+ !_c_o_m_m_a_n_d Execute the shell command with $LESSSHELL.
#_c_o_m_m_a_n_d Execute the shell command, expanded like a prompt.
|XX_c_o_m_m_a_n_d Pipe file between current pos & mark XX to shell command.
s _f_i_l_e Save input to a file.
Index: less-656/less.nro
===================================================================
--- less-656.orig/less.nro
+++ less-656/less.nro
@@ -468,7 +468,7 @@ A pound sign (#) is replaced by the name
"!" with no shell command simply invokes a shell.
If a \(haP (CONTROL-P) is entered immediately after the !,
no "done" message is printed after the shell command is executed.
-On Unix systems, the shell is taken from the environment variable SHELL,
+On Unix systems, the shell is taken from the environment variable LESSSHELL,
or defaults to "sh".
On MS-DOS, Windows, and OS/2 systems, the shell is the normal command processor.
.IP "# shell-command"
@@ -2493,7 +2493,7 @@ automatically when running in
.IP PATH
User's search path (used to find a lesskey file
on MS-DOS, Windows, and OS/2 systems).
-.IP SHELL
+.IP LESSSHELL
The shell used to execute the !\& command, as well as to expand filenames.
.IP TERM
The type of terminal on which
Index: less-656/lsystem.c
===================================================================
--- less-656.orig/lsystem.c
+++ less-656/lsystem.c
@@ -120,13 +120,13 @@ public void lsystem(constant char *cmd,
/*
* Pass the command to the system to be executed.
- * If we have a SHELL environment variable, use
+ * If we have a LESSSHELL environment variable, use
* <$SHELL -c "command"> instead of just <command>.
* If the command is empty, just invoke a shell.
*/
#if HAVE_SHELL
p = NULL;
- if ((shell = lgetenv("SHELL")) != NULL && *shell != '\0')
+ if ((shell = lgetenv("LESSSHELL")) != NULL && *shell != '\0')
{
if (*cmd == '\0')
p = save(shell);