Subject: 24.0.50; rgrep does not work on Windows

From: Christoph <[email-masked]>
Date: Sun, 18 Jul 2010 08:32:56 -0600

rgrep does not work on Windows. I am using the GnuWin32 versions of
find and grep and find returns an error when used by Emacs' rgrep.

Start Emacs with `emacs -Q'. 

In *scratch* buffer evaluate the following to point to GNU find and grep executables:
(setq find-program "\"C:/Program Files (x86)/GnuWin32/bin/find.exe\"")
(setq grep-program "\"C:/Program Files (x86)/GnuWin32/bin/grep.exe\"")

Run `M-x rgrep'. Search for "emacs" in files "all" in base dir
"d:/devel/emacs/emacs-bzr/trunk/src/oo-spd/i386/" (or something similar).

*grep* buffer output:
-*- mode: grep; default-directory: "d:/devel/emacs/emacs-bzr/trunk/src/oo-spd/i386/" -*-
Grep started at Sat Jul 17 23:15:55

"C:/Program Files (x86)/GnuWin32/bin/find.exe" . "(" -path "*/SCCS" -o -path "*/RCS" -o -path "*/CVS" -o -path "*/MCVS" -o -path "*/.svn" -o -path "*/.git" -o -path "*/.hg" -o -path "*/.bzr" -o -path "*/_MTN" -o -path "*/_darcs" -o -path "*/{arch}" ")" -prune -o "(" -name ".#*" -o -name "*.o" -o -name "*~" -o -name "*.bin" -o -name "*.bak" -o -name "*.obj" -o -name "*.map" -o -name "*.ico" -o -name "*.pif" -o -name "*.lnk" -o -name "*.a" -o -name "*.ln" -o -name "*.blg" -o -name "*.bbl" -o -name "*.dll" -o -name "*.drv" -o -name "*.vxd" -o -name "*.386" -o -name "*.elc" -o -name "*.lof" -o -name "*.glo" -o -name "*.idx" -o -name "*.lot" -o -name "*.fmt" -o -name "*.tfm" -o -name "*.class" -o -name "*.fas" -o -name "*.lib" -o -name "*.mem" -o -name "*.x86f" -o -name "*.sparcf" -o -name "*.fasl" -o -name "*.ufsl" -o -name "*.fsl" -o -name "*.dxl" -o -name "*.pfsl" -o -name "*.dfsl" -o -name "*.p64fsl" -o -name "*.d64fsl" -o -name "*.dx64fsl" -o -name "*.lo" -o -name "*.la" -o -name "*.gmo" -o -name "*.mo" -o -name "*.toc" -o -name "*.aux" -o -name "*.cp" -o -name "*.fn" -o -name "*.ky" -o -name "*.pg" -o -name "*.tp" -o -name "*.vr" -o -name "*.cps" -o -name "*.fns" -o -name "*.kys" -o -name "*.pgs" -o -name "*.tps" -o -name "*.vrs" -o -name "*.pyc" -o -name "*.pyo" ")" -prune -o  -type f "(" -iname "*" -o -iname ".*" ")" -exec "C:/Program Files (x86)/GnuWin32/bin/grep.exe" -i -n "emacs" {} NUL ";"
C:/Program Files (x86)/GnuWin32/bin/find.exe: paths must precede expression
Usage: C:/Program Files (x86)/GnuWin32/bin/find.exe [-H] [-L] [-P] [path...] [expression]

Grep finished with no matches found at Sat Jul 17 23:15:55

`M-x grep' and `M-x lgrep', as well as `M-x grep-find' work fine.

http://linux.die.net/man/1/find talks about this particular error in section
"Non-bugs", but as far as I can tell the files are enclosed in quotes correctly.

In GNU Emacs 24.0.50.1 (i386-mingw-nt6.1.7600)
 of 2010-07-17 on MARVIN
Windowing system distributor `Microsoft Corp.', version 6.1.7600
configured using `configure --with-gcc (3.4) --cflags -IC:/Progra~2/GnuWin32/include -ID:/devel/emacs/libXpm-3.5.8/include -ID:/devel/emacs/libXpm-3.5.8/src'

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ENU
  value of $XMODIFIERS: nil
  locale-coding-system: cp1252
  default enable-multibyte-characters: t

Major mode: Grep

Minor modes in effect:
  ido-everywhere: t
  yas/global-mode: t
  global-auto-revert-mode: t
  delete-selection-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t

Recent input:
C-x RET r g r e p <return> <return> <return> <return> 
C-x RET <up> <return> t e s t <return> <return> <return> 
C-x RET <up> <return> <up> <return> <return> <return> 
<down-mouse-1> <mouse-1> q C-x k <return> C-x k <return> 
<up> <up> <up> <up> <down-mouse-1> <mouse-1> <help-echo> 
<backspace> <down-mouse-1> <mouse-1> C-x RET g r e 
p - f i n d <return> s e t q SPC * e <backspace> . 
e l <return> C-x k <return> y e s <return> C-x RET 
r g r e p <return> <return> <return> <return> C-x o 
C-SPC C-SPC C-n C-n C-n C-n C-n C-n C-n M-w C-x RET 
r e p o r t <tab> <return>

Recent messages:
call-interactively: Beginning of buffer
Quit
Grep finished with no matches found
Mark set
Mark activated

Load-path shadows:
None found.

Features:
(shadow sort gnus-cite mail-extr gnus-msg gnus-art mm-uu mml2015 pgg
pgg-parse pgg-def epg-config mm-view smime password-cache dig mailcap
gnus-sum nnoo gnus-group time-date gnus-undo nnmail mail-source
format-spec gnus-start gnus-spec gnus-int gnus-range gnus-win message
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus gnus-ems
nnheader gnus-util mail-utils mm-util mail-prsvr emacsbug find-dired
server package re-builder ack-emacs ibuffer nav nav-tags python-21
python nav-bufs xcscope anything-config warnings semantic/util-modes
semantic/util semantic semantic/tag semantic/lex semantic/fw loaddefs
eieio byte-opt bytecomp byte-compile mode-local cedet imenu bookmark pp
ffap dired rx thingatpt anything woman man cc-mode cc-fonts cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs grep-o-matic grep
compile comint browse-kill-ring+ browse-kill-ring second-sel ido
yasnippet dropdown-list derived easy-mmode assoc etags-table etags ring
remember zenburn color-theme edmacro kmacro wid-edit cl cl-19 sendmail
regexp-opt reporter easymenu uniquify advice help-fns advice-preload
autorevert delsel tooltip ediff-hook vc-hooks lisp-float-type mwheel
dos-w32 disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image
fringe lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev button minibuffer faces cus-face files text-properties
overlay md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process multi-tty emacs)