Subject: bug#2607: 23.0.90; `system-type' test in `shell-quote-wildcard-pattern'

From: Stefan Monnier <[email-masked]>
Date: Mon, 09 Mar 2009 21:14:30 -0400

>> The code of `shell-quote-wildcard-pattern' has this test:
>> (memq system-type '(ms-dos windows-nt cygwin)).  Looking at that
>> code, the inclusion of `cygwin' here seems suspect to me.
>> 
>> The Elisp manual says only that a `system-type' of `cygwin' means
>> Emacs running on Cygwin ("type of operating system Emacs is operating
>> on"). Dunno what that means, really, but I'm guessing that such a
>> system would use a shell, such as `bash', that treats characters in
>> file names similarly to how `bash' treats them for GNU/Linux or UNIX.

> Cygwin is in the same list because Cygwin runs on Windows, and Windows
> does not allow the `"' character in file names.  It's true that Cygwin
> uses Bash as the shell, but no shell can fix what the underlying
> filesystem does not support.

BTW, Reading the docstring makes me wonder what this function is really
intended to do.  Especially the last sentence:

   Existing quote characters in PATTERN are left alone, so you can pass
   PATTERN that already quotes some of the special characters.

I see what it corresponds to in the DOS part of the code, but I don't
see anything equivalent in the Unix side.  And furthermore, even seeing
the code, I don't understand what is this special case supposed to be
used for.

        Stefan