Hi Cygwin 1.7 developers,
I think I've encountered bug in cygwin 1.7.0-48 on WinXP 32-bit. It
seems that passing a character on the command line (from either ash.exe
or bash.exe) that is greater than 127 to a native win32 process results
in arguments being truncated.
Hopefully you can reproduce and fix. Steps to reproduce outlined below.
$ cat bug.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for (i = 0; i < argc; i++)
printf("%d: %s\n", i, argv[i]);
return 0;
}
$ xxd copyright.txt
0000000: a9 .
$ $TOOLROOT/bin/cl -I$TOOLROOT/include bug.c /link
/libpath:$TOOLROOT/lib /libpath:$TOOLROOT/PlatformSDK/lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
bug.c
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/out:bug.exe
/libpath:e:/msdev7/vc7/lib
/libpath:e:/msdev7/vc7/PlatformSDK/lib
bug.obj
$ ./bug "before `cat copyright.txt` after"
0: E:\cygwin1.7\tmp\bug.exe
1: before
Notice that for argument 1, we never see the contents of copyright.txt
and the text after it, "after" is never passed to the win32 native
application.