This is the mail archive of the cygwin 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]
Other format: [Raw text]

Re: cygwin passes argv with preserved (") quote. and it is undesired result.

On Thu, Dec 31, 2009 at 10:00 AM, jojelino  wrote:
> hi
> here is testcase to reproduce the problem
> #include <stdio.h>
> #include <assert.h>
> int main(int argc, char**argv)
> {
> printf("argv %s",argv[1]);
> open(argv[1],"r");
> assert(fp);
> return 0;
> }
> build
> make け.txt in directory.
> and run in cmd.exe
> type,
> a "け.txt"
> and it complains file can't be opened.
> and you can see argv[1]  is passed with preserved quote (") although it is
> invoked in winshell
> it must be eliminted when it is transduced to cygwin environment.
> but when parent process is cygwin, it gives no complaint
>>strace a "け.txt"
> in result, is it designed to do so?

Yes. "parent process is cygwin" probably means that a.exe was started
from bash. The quote character is special for bash; see for example

This means that when started from bash, a.exe gets what's inside the
quotes, without the quotes themselves. cmd.exe may behave differently.

Hope this helps,
Life is complex, with real and imaginary parts

Problem reports:
Unsubscribe info:

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