--- mc/po/ru.po.orig 2007-09-11 20:35:10 +0600 +++ mc/po/ru.po 2008-02-24 15:52:15 +0500 @@ -247,6 +247,9 @@ msgstr " Осуществлено подстановок: %ld " msgid " Search string not found " msgstr " Искомая строка не найдена " +msgid "Force subshell execution" +msgstr "Принудительное выполнение во встроенной командной оболочке" + #, c-format msgid " %d items found, %d bookmarks added " msgstr " %d найдено, %d закладок добавлено " --- mc/src/execute.c.orig 2005-09-17 18:08:19 +0600 +++ mc/src/execute.c 2008-02-24 15:51:22 +0500 @@ -31,6 +31,7 @@ #include "wtools.h" #include "execute.h" +int force_subshell_execution = 0; static void edition_post_exec (void) @@ -186,7 +187,7 @@ shell_execute (const char *command, int #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 (1, MSG_ERROR, --- mc/src/execute.h.orig 2005-02-08 11:57:14 +0500 +++ mc/src/execute.h 2008-02-24 15:51:22 +0500 @@ -6,6 +6,9 @@ #define EXECUTE_AS_SHELL (1 << 2) #define EXECUTE_HIDE (1 << 3) +/* 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); --- mc/src/main.c.orig 2006-09-22 21:14:58 +0600 +++ mc/src/main.c 2008-02-24 15:51:22 +0500 @@ -1934,6 +1934,10 @@ process_args (poptContext ctx, int c, co case 'u': use_subshell = 0; break; + + case 'r': + force_subshell_execution = 1; + break; #endif /* HAVE_SUBSHELL_SUPPORT */ case 'H': @@ -2002,6 +2006,8 @@ static const struct poptOption argument_ N_("Enables subshell support (default)"), NULL}, {"nosubshell", 'u', POPT_ARG_NONE, NULL, 'u', N_("Disables subshell support"), NULL}, + {"forceexec", 'r', POPT_ARG_NONE, &force_subshell_execution, 0, + N_("Force subshell execution")}, #endif /* single file operations */