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: command line arg expansion


On Thu, Jan 11, 2007 at 11:38:18AM -0800, jim wrote:
>I have recently upgraded from 1.5.12 to 1.5.23 and noticed something that
>has me wondering.    I compiled this on 1.5.23 and have run it under cmd.exe
>on on 1.5.12 and 1.5.23:
>
>#include <stdio.h>
>
>int main(int argc, char *argv[])
>{
>   int i, c;
>
>   for (i = 0; i < argc; i++)
>      printf("arg[%d]: '%s'\n", i, argv[i]);
>}
>
>On 1.5.12:
>C:\>e '/.*/'
>arg[0]: 'e'
>arg[1]: '/.*/'
>
>On 1.5.23:
>C:\>e '/.*/'
>arg[0]: 'e'
>arg[1]: '/../'
>arg[2]: '/./'
>arg[3]: '/.other/'
>
>It appears that the runtime initialization on 1.5.23 is doing command line
>expansion - is this correct?   If so, is this change documented somewhere so
>I get the full explanation?
>
>thanks for any insight,

This problem was introduced when we upgraded to a newer version of
glob().  We're using a fairly recent version of this routine from
FreeBSD bug, AFAICT, it has a bug which disallows quoting characters.

I've checked in a very simple fix for this and am generating a new
snapshot.

Thanks for the test case.  You actually can see the failing behavior by
running cygwin's echo from a windows command line.

cgf

--
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/


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