emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Using `call-process-shell-command' in `process-lines'


From: Eli Zaretskii
Subject: Re: Using `call-process-shell-command' in `process-lines'
Date: Mon, 26 Nov 2007 23:49:06 +0200

> Date: Mon, 26 Nov 2007 22:23:18 +0100
> From: "Lennart Borgman (gmail)" <address@hidden>
> CC: address@hidden, address@hidden, address@hidden
> 
>    (apply #'call-process "find.exe" nil
>           (get-buffer-create "output")
>           nil
>           (list "c:/emacs-lisp/old/"
>                 "-name"
>                 (shell-quote-argument "*.el" )
>                 ))
> 
> gives nothing in the "output" buffer and returns 0.

Well, ``return 0'' and ``fails'' are not exactly the same.  The
original complaint by Juanma was that a non-zero status was returned.

Anyway, I see now that I missed something important: we already have a
wrapper for spawnve (w32proc.c:sys_spawnve), and it already tries to
quote arguments.  In addition, it invokes the command thru cmdproxy.
So somewhere between the quoting code and cmdproxy there's a bug that
causes `find' to not find anything.  AFAICS, quoting *.el with
shell-quote-argument causes it to wind up quoted in `find's argv[]
array, which explains why it finds nothing.  Someone(tm) needs to
debug this.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]