CYGWIN=noglob remove double quotes from args.

Oleksandr Gavenko gavenko@bifit.com.ua
Thu Sep 30 19:55:00 GMT 2010


As I understand docs if I set CYGWIN=noglob then command line arguments
passed to Cygwin app WITHOUT changes.

I use native Emacs build so worry about stop Cygwin damage passed arguments.

And seems this is not true.

With CYGWIN=noglob all double quotes removed from args!

Originally I discaver this when I call Cygwin application from NT Emacs by:

   (call-process "bash" nil t nil "-c" "  echo \"a    b\"  ")

I get: a b (ONE space!)

I wrote simple app that print its args quoted:

(call-process "printarg" nil t nil "-c" "echo \"a  \"\"\"\"  b\"\"\"\"\"")

"/cygdrive/d/home/usr/bin/printarg"
"-c"
"echo a    b"

If compile printarg.c with MSVC all quotes printed:

(call-process "printarg" nil t nil "-c" "echo \"a  \"\"\"\"  b\"\"\"\"\"")

"/cygdrive/d/home/usr/bin/printarg"
"-c"
"echo "a  """"  b""""""

Same happen with cmd.exe:

cmd# printarg-msvc  "a \" b"
"printarg-msvc.exe"
"a " b"

cmd# set CYGWIN=glob
cmd# printarg-cygwin  "a \" b"
"printarg"
"a " b"

cmd# set CYGWIN=noglob
cmd# printarg-cygwin  "a \" b"
"printarg"
"a \"
"b"


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list