This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: `find' command broken.


Fergus Henderson writes:
 > >> The relevent source is winsup/dcrt0.cc,
 > >> which contains the startup code for cygwin.dll:
 > >> 
 > >>           /* Expand *.c, etc.  */
 > >>           if (! u->self->cygwin_parent_p)
 > >>             globify (&argc, &argv);
 > >> 
 > >> So, the problem with `zsh' commands being doubly-globbed could
 > >> presumably be fixed by recompiling zsh with gnu-win32.

Great, the mystery seems to be explained...

 > >This code doen't check for any escapes.  It just checks for 
 > >globbing characters.  Couldn't this be made to ignore args 
 > >with ' or " as the first char, by inserting this code.
 > >
 > >    if (av[i][0] == '\'' || av[i][0] == '"')
 > >      {
 > >        /* strip quotes off arg here (front and back) and adjust arg ptr */
 > >      }
 > 
 > Yep, that would be a good idea.
 > 
 > But if zsh was not compiled with cygwin, then you would still need
 > to do some gnarly quoting to get it right, e.g.
 > 
 > 	find . -name '"*.c"' -print
 > or
 > 	find . -name "'*.c'" -print
 > 
 > You would need two levels of quotes, because one would get stripped
 > away by zsh, and one by cygwin.dll.


How about introducing an environment variable that means "don't have cygwin
glob", and modify the above code as follows:

 > >>           /* Expand *.c, etc.  */
 > >>           if (! u->self->cygwin_parent_p && !getenv("CYGWIN_DONT_GLOB"))
 > >>             globify (&argc, &argv);

Then I could just set CYGWIN_DONT_GLOB in my .zshrc and find, etc would
behave the same as bash.

It's a bit of a hack, but if the quoting problem is too gnarly, perhaps it
would suffice (at least as a short-term solution).

Thanks,

    --- John

-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]