Mail Archives: cygwin/2004/09/03/10:27:59
Igor Pechtchanski wrote:
> On Fri, 3 Sep 2004, Christopher Cobb wrote:
>
>
>>I get different results than you do. It seems to work as expected:
>>
>>chcobb AT CHCOBB-054009 /c/Documents and Settings 09:45:46
>>511$ cat test.bat
>>echo %1
>>
>>chcobb AT CHCOBB-054009 /c/Documents and Settings 09:45:48
>>511$ ./test.bat
>>
>>C:\Documents and Settings>echo
>>ECHO is on.
>
>
> I believe you're missing the point. Try
>
> ../test.bat "hello world"
>
> and you'll get the error.
>
> I've come across this when writing a pure Windows loader for another
> program. The above is actually an idiosyncrasy of the way spawn() works
> in Cygwin (and, incidentally, in Windows' own MSVCRT) -- it calls
> CreateProcess, which expects all arguments combined into one command
> string (which, in turn, is later parsed for separate arguments - yes,
> retarded, I know). The fact is that, if any argument contains spaces, it
> has to be quoted before CreateProcess() is invoked. Cygwin apparently
> doesn't do this properly to the first argument, so the above breaks. See
> spawn_guts() in winsup/cygwin/spawn.cc (warning: a 590!-line function).
> <http://cygwin.com/acronyms/#PTC>.
> Igor
You get the same "odd evaluation behavior" when doing
echo "Hello World" | ./test.bat
(in any directory).
-- Mark
--
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/
- Raw text -