This is the mail archive of the
cygwin
mailing list for the Cygwin project.
glob/noglob and backslashes on cmdline
- From: Ralf Fassel <ralf at akutech dot de>
- To: cygwin at cygwin dot com
- Date: Wed, 6 Aug 2008 17:08:52 +0200
- Subject: glob/noglob and backslashes on cmdline
In the following ./t is a program which simply echoes the command line
arguments if there are any, or calls itself via CreateProcess() and
the cmdline given.
When 'noglob' is set, things work as expected:
in the course of "sh -c", two backslashes are collapsed into ONE:
$ CYGWIN=noglob ./t
cmdline {sh -c "t 1\1 2\\2 3\\\3 4\\\\4"}
0: l:\ralf\t.exe
1: 11
2: 2\2
3: 3\3
4: 4\\4
However, when 'glob' is set, two backslashes are collapsed into NONE
where I still would have expected ONE (argument labelled "2:")
$ CYGWIN=glob ./t
cmdline {sh -c "t 1\1 2\\2 3\\\3 4\\\\4"}
0: l:\ralf\t.exe
1: 11
2: 22
3: 3\3
4: 4\4
Is there any deeper reason for this?
Second question regarding 'glob': the docs say
"This is applicable only to programs running from a DOS command line prompt. "
I just wanted to make sure that this indeed means that glob/noglob
does not affect glob-style-expansion in sh itself (* in bash/sh
commandline and scripts expands even with noglob).
R'
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/