diff -Nur mc-4.7.5.1.old/po/ru.po mc-4.7.5.1/po/ru.po --- mc-4.7.5.1.old/po/ru.po 2011-02-07 15:27:47.000000000 +0300 +++ mc-4.7.5.1/po/ru.po 2011-02-12 14:14:54.887355167 +0300 @@ -1783,6 +1783,9 @@ msgid "Load syntax file" msgstr "Загрузить файл синтаксиса" +msgid "Force subshell execution" +msgstr "Принудительное выполнение во встроенной командной оболочке" + #, c-format msgid "" "Cannot open file %s\n" diff -Nur mc-4.7.5.1.old/src/args.c mc-4.7.5.1/src/args.c --- mc-4.7.5.1.old/src/args.c 2011-02-07 15:27:47.000000000 +0300 +++ mc-4.7.5.1/src/args.c 2011-02-12 14:14:54.888355221 +0300 @@ -46,6 +46,7 @@ #include "src/args.h" /*** external variables **************************************************************************/ +extern int force_subshell_execution; /*** global variables ****************************************************************************/ @@ -144,6 +145,13 @@ N_("Disables subshell support"), NULL }, + + { + "forceexec", 'r', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, + &force_subshell_execution, + N_("Force subshell execution"), + NULL + }, #endif /* debug options */ diff -Nur mc-4.7.5.1.old/src/execute.c mc-4.7.5.1/src/execute.c --- mc-4.7.5.1.old/src/execute.c 2011-02-07 15:27:47.000000000 +0300 +++ mc-4.7.5.1/src/execute.c 2011-02-12 14:17:26.747354994 +0300 @@ -55,6 +55,8 @@ /*** file scope functions ************************************************************************/ /* --------------------------------------------------------------------------------------------- */ +int force_subshell_execution = 0; + static void edition_post_exec (void) { @@ -278,7 +280,7 @@ #ifdef HAVE_SUBSHELL_SUPPORT if (use_subshell) - if (subshell_state == INACTIVE) + if (subshell_state == INACTIVE || force_subshell_execution) do_execute (shell, cmd ? cmd : command, flags | EXECUTE_AS_SHELL); else message (D_ERROR, MSG_ERROR, _("The shell is already running a command")); diff -Nur mc-4.7.5.1.old/src/execute.h mc-4.7.5.1/src/execute.h --- mc-4.7.5.1.old/src/execute.h 2011-02-07 15:27:47.000000000 +0300 +++ mc-4.7.5.1/src/execute.h 2011-02-12 14:14:54.909352973 +0300 @@ -30,6 +30,9 @@ /*** declarations of public functions ************************************************************/ +/* If true message "The shell is already running a command" never */ +extern int force_subshell_execution; + /* Execute functions that use the shell to execute */ void shell_execute (const char *command, int flags);