Using "Filtered View" gives error "Cannot create pipe streams"

Ben Woods woodsb02 at gmail.com
Sun Apr 12 03:59:58 UTC 2015


Never mind, I have found the reason for the error. The Filtered View
command does not currently use the PATH environment variable to find the
executable provided.

I have submitted a pull request for this:
https://github.com/MidnightCommander/mc/pull/59

Is someone able to have a look for me?

To replicate the problem:
1. In mc, open the "File" menu and select "Filtered View"
2. In the displayed Filtered View command and arguments field, type "grep
PATTERN FILENAME"

Expected result: display output of grep command in mcview
Actual result: Error is displayed "Cannot create pipe streams"

Reason: The grep command is not in the current directory, and the PATH
environment variable is not used to search for the executable.

Regards,
Ben

On Sun, Apr 12, 2015 at 2:18 AM Ben Woods <woodsb02 at gmail.com> wrote:

> Hi,
>
> I am maintaining the midnight commander port for FreeBSD, and I am seeing
> an error with v4.8.14.
>
> When I use the "Filtered View" option from the File menu, and enter any
> filter (e.g. "*.c"), it gives me an error message "Cannot create pipe
> streams".
>
> This error appears to be from the function mc_popen in file lib/utilunix.c
> (excerpt below). Any ideas how I can troubleshoot this further?
>
> Thanks in advance,
> Ben
>
> /**
>  * Create pipe and run child process.
>  *
>  * @parameter command command line of child process
>  * @paremeter error contains pointer to object to handle error code and
> message
>  *
>  * @return newly created object of mc_pipe_t class in success, NULL
> otherwise
>  */
>
> mc_pipe_t *
> mc_popen (const char *command, GError ** error)
> {
>     mc_pipe_t *p;
>     char **argv;
>
>     p = g_try_new (mc_pipe_t, 1);
>     if (p == NULL)
>     {
>         mc_replace_error (error, MC_PIPE_ERROR_CREATE_PIPE, "%s",
>                           _("Cannot create pipe descriptor"));
>         goto ret_err;
>     }
>
>     if (!g_shell_parse_argv (command, NULL, &argv, error))
>     {
>         mc_replace_error (error, MC_PIPE_ERROR_PARSE_COMMAND, "%s",
>                           _("Cannot parse command for pipe"));
>         goto ret_err;
>     }
>
>     if (!g_spawn_async_with_pipes (NULL, argv, NULL,
> G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL,
>                                    &p->child_pid, NULL, &p->out.fd,
> &p->err.fd, error))
>     {
>         mc_replace_error (error, MC_PIPE_ERROR_CREATE_PIPE_STREAM, "%s",
>                           _("Cannot create pipe streams"));
>         goto ret_err;
>     }
> ...
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.midnight-commander.org/pipermail/mc-devel/attachments/20150412/3d0e4cf8/attachment.html>


More information about the mc-devel mailing list