help-emacs-windows
[Top][All Lists]
Advanced

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

Re: [h-e-w] find-dired does not work on emacs24 + win + mingw


From: Eli Zaretskii
Subject: Re: [h-e-w] find-dired does not work on emacs24 + win + mingw
Date: Sat, 28 Jan 2012 10:07:01 +0200

> Date: Sat, 28 Jan 2012 14:12:12 +0800
> From: sthfrnth <address@hidden>
> Cc: address@hidden, address@hidden
> 
> The "find.exe" in this package
> http://sourceforge.net/projects/ezwinports/files/findutils-4.2.30-w32-bin.zip/download
> 
> produces:
> *
> *
> *C:\emacs\lisp>find . -name *find**
> *find: paths must precede expression*
> *Usage: find [-H] [-L] [-P] [path...] [expression]*
> *
> *
> *C:\emacs\lisp>find . -name "*find*"*
> *find: paths must precede expression*
> *Usage: find [-H] [-L] [-P] [path...] [expression]*

This works flawlessly for me, with the same binary.

There are half-confirmed rumors that Microsoft changed their
implementation of how quoted strings are handled when the arguments
passed to a C program are expanded.  You said you were on Windows 7,
so perhaps this is what causes this problem for you.  It is possible
that programs need to be linked in some special way to avoid these
very serious regressions.

To help find a workaround, can you run "depends find.exe" on find.exe
from the package

  
http://sourceforge.net/projects/ezwinports/files/findutils-4.2.30-w32-bin.zip/download

and see which version of MSVCRT.DLL is picked up by it?  Also, can you
tell which files matching the pattern "msvcr*.dll" (case-insensitively)
are present on your machine?

If you don't have depends.exe, you should be able to download it from
the Internet:

  http://support.microsoft.com/kb/256872

Can others on this list who have Windows 7 or Vista please see whether
quoted wildcards misbehave on those versions?  One way of doing this
is to type the following command:

  emacs -Q -batch --eval "(princ (directory-files \".\" nil \"?*\\.c\\'\"))"

If quoted arguments work "as I'd expect" (i.e. quotes are removed,
unless escaped by a backslash, in which case the backslash is removed
and the quote stays), then this command should display the list of all
*.c files in the directory where you invoke this command.  (Do it in a
directory where *.c files do exist.)  If quoted arguments don't work,
then the result will probably be the exact replica of the --eval
argument, or maybe some weird error message.

> The "find.exe" in this package
> http://unxutils.sourceforge.net/
> produces:
> 
> C:\emacs\lisp>find . -name *find*
> .\cedet\semantic\db-find.el
> .\cedet\semantic\db-find.elc
> .\cedet\semantic\find.el
> .\cedet\semantic\find.elc
> .\cedet\srecode\find.el
> ...
> C:\emacs\lisp>find . -name "*find*"
> .\cedet\semantic\db-find.el
> .\cedet\semantic\db-find.elc
> .\cedet\semantic\find.el
> .\cedet\semantic\find.elc
> .\cedet\srecode\find.el
> ...
> 
> I don't know why.
> I think the second "find.exe" is more powerful in my env..

Can you please run "depends find.exe" on this version of find.exe as
well, and see which DLLs it uses?



reply via email to

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