Subject: Re: bug#29680: another grep-find anomalous behaviour

From: Donald H Locker <[email-masked]>
Date: Mon, 18 Dec 2017 07:35:22 -0500

It would appear that quoting of the '*.log' part of the command is at 
fault.  Changing the line from

   -name '*.log'
to

   -name \\*.log

allows the find to proceed normally. There are several files with .log 
extensions in the directory from which the find-grep fails.

To answer the other comments, televant customisations (all in 
(custom-set-variables ...)) are:

;; ignore line-wraps, please, in the following. in my .emacs, each is
;; really all on one line and I haven't figured out all of Thunderbird's
;; options yet

'(explicit-shell-file-name "c:/cygwin64/bin/bash")

'(exec-path
    (quote
     ("C:/cygwin64/bin" "C:/Program Files/Common Files/Microsoft 
Shared/Microsoft Online Services" "C:/Program Files (x86)/Common 
Files/Microsoft Shared/Microsoft Online Services" "C:/Windows/system32" 
"C:/Windows" "C:/Windows/System32/Wbem" 
"C:/Windows/System32/WindowsPowerShell/v1.0/" "C:/Program 
Files/Intel/WiFi/bin/" "C:/Program Files/Common 
Files/Intel/WirelessCommon/" "C:/Program Files/TortoiseSVN/bin" 
"c:/Users/dlocker/AppData/Roaming/local/bin/emacs-24.5-bin-i686-mingw32/libexec/emacs/24.5/i686-pc-mingw32" 
"c:/ProgramData/Oracle/Java/javapath")))

'(grep-command "grep -nHE ")

'(grep-find-command (quote ("find . -type f -exec grep -nHE  {} \\;" . 32)))

-- 
*Plain Text* email -- it's an accessibility issue
() no proprietary attachments; no html mail
/\ <http://www.georgedillon.com/web/html_email_is_evil.shtml>

On 15-Dec-2017 15:42, Eli Zaretskii wrote:
>> Cc: [email-masked]
>> From: Donald H Locker <[email-masked]>
>> Date: Fri, 15 Dec 2017 13:46:32 -0500
>>
>> The underlying "unixy" environment is cygwin; updated a few weeks ago.
> 
> What customizations do you have to go with that setup?  Any
> customizations of shell-file-name or similar variables?
> 
>> The behaviour is very repeatable, though - at one level in the directory
>> hierarchy, the command fails to even execute find; at one higher level
>> in the directory hierarchy, the command succeeds and finds the sought
>> strings in the file.
> 
> It's hard to reason about your case without knowing which files are
> present in each directory.  Would you mind to concoct a small test
> case, where all directories and files in the tree to be searched by
> 'find' are explicitly spelled out?
> 
>> Note that in the Model_withEVSE directory, "find ."  doesn't seem to
>> think that '.' is a directory
> 
> I think your interpretation of the error message is mistaken.  It says
> "paths must precede expression", but that's because somehow '*.log' is
> expanded into more than a single argument.  I suspect that the command
> works in a directory with no files whose names match *.log, and
> doesn't work where there are such files.  So I'd suggest to continue
> looking into the quoting issue.  One possibility is to replace 'find'
> with a program or a batch file which will just echo its command-line
> arguments, and then see how Emacs invokes it.
>