Mail Archives: cygwin/1997/07/14/02:56:14
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 AT cygnus DOT com" with one line of text: "help".
- Raw text -