Subject: bug#7785: rgrep is broken on woe32

From: Sam Steingold <[email-masked]>
Date: Thu, 6 Jan 2011 11:51:05 -0500

thanks for the explanations.

On Thu, Jan 6, 2011 at 11:02 AM, Eli Zaretskii <[email-masked]> wrote:
>> Date: Thu, 6 Jan 2011 10:17:17 -0500
>> From: Sam Steingold <[email-masked]>
>> Cc: [email-masked], [email-masked]
>>
>> > I suggest to fix PATH outside Emacs instead.  I wrote in bug#7793 why.
>>
>> is it safe to prepend gnuwin path before the system windows paths
>> globally for all programs?
>
> Yes, in my experience.

thanks, I will keep that in mind.
I will not do that for now since so far my tweaking of exec-path +
setenv seems to produce the same results.
however, I will keep in mind both your deprecation of this practice
and your experience above
and will follow your suggestion if my method breaks.
thanks.

> It looks like now nothing works, is that right?  Then what was this
> about:
>
>> this works just fine, like on linux:
>> PATH=/cygdrive/c/gnu/gnuwin32/bin:$PATH emacs -q
>>
>> moreover,
>> emacs -q
>> and moving gnuwin dir to the beginning of exec-path with
>> (let ((gw "c:/gnu/gnuwin32/bin"))
>>   (setq exec-path (cons gw (delete gw exec-path))))
>> also works fine.
>
> ?  What is different between these 2 "working" instances and what you
> tried now?

OOPS. these no longer work. both produce this:

-*- mode: grep; default-directory: "~/" -*-
Grep started at Thu Jan 06 11:45:35

find . "(" -path "*/SCCS" -o -path "*/RCS"/..... -o -name "*.pyo" ")"
-prune -o  -type f "(" -iname "*" -o -iname ".*" ")" -print0 | xargs
-0 -e grep -i -nH "exec-path"
xargs: grep: No such file or directory
grep: ./src/clisp/c: No such file or directory
find: write error: Invalid argument

Grep finished (matches found) at Thu Jan 06 11:45:37

I am totally lost...

> I suspect that the shell picks up xargs from Cygwin or something.
> Could you try forcing it to use the GnuWin32 binary, or at least
> verifying that a GnuWin32 binaries of all the 3 programs get invoked?

all 3 programs live in the same dir, whether gnuwin or cygwin.
I don't see how they can come from different places.

>> 4. emacs started from desktop with my full huge .emacs but without PATH tweaking
>> 'c:' is not recognized as an internal or external command,
>> operable program or batch file.
>
> This is because "c:/gnu/gnuwin32/bin/xargs", which is after the pipe
> symbol, is not quoted.  So this is something I do understand.

yes, that other cmdproxy issue - any change it will be addressed any time soon?

>> FIND: Parameter format not correct
> Also, understood: it picks find.exe from C:/WINDOWS/system32, which is
> first on PATH.

sure. I omitted all the other details because this one was obvious :-)

>> 6. emacs started from desktop with my full huge .emacs with PATH
>> tweaking without setting find-program et al:
>> find . \( -path  -o -path \*/attic -o -path .....-iname \*.in -o
>> find: paths must precede expression
>
> This somehow uses the wrong quoting style.  Can you look into
> shell-quote-argument and see why?

I sent you the patch in another message in this bug.

thanks again for your time and compassion...
-- 
Sam Steingold <http://sds.podval.org>