RE: command line arg expansion
Thanks Larry. I had seen that option, but nothing to indicate that it had changed between 1.5.12 and 1.5.23. Can anyone account for the difference between these two versions?What I'm actually seeing is a behavior change in a perl script that does something like: open(LS, ls -dF1 /c* | grep '/.*/' |); One way to fix this is wrap it with bash, but I'd like to understand exactly what changed.Replacing grep with the program below showed me a difference in the wild card expansion and that lead to the assumption that wild cards are expanded differently - maybe it's something else? thanks for any insight, jim -Original Message- From: Larry Hall (Cygwin) [mailto:[EMAIL PROTECTED] Sent: Thursday, January 11, 2007 12:37 PM To: cygwin@cygwin.com Subject: Re: command line arg expansion 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? See http://cygwin.com/cygwin-ug-net/using-cygwinenv.html. Look for the (no)glob explanation. -- Larry Hall http://www.rfk.com RFK Partners, Inc. (508) 893-9779 - RFK Office 216 Dalton Rd. (508) 893-9889 - FAX Holliston, MA 01746 _ A: Yes. Q: Are you sure? A: Because it reverses the logical flow of conversation. Q: Why is top posting annoying in email? -- 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/
Re: command line arg expansion
http://cygwin.com/acronyms/#TOFU. Reformatted. jim wrote: -Original Message- From: Larry Hall (Cygwin) [mailto:reply-to-list-only-lh AT cygwin DOT com] Sent: Thursday, January 11, 2007 12:37 PM To: cygwin AT cygwin DOT com ^^^ http://cygwin.com/acronyms/#PCYMTNQREAIYR. No one wants the spam. Thanks. Subject: Re: command line arg expansion 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? See http://cygwin.com/cygwin-ug-net/using-cygwinenv.html. Look for the (no)glob explanation. Thanks Larry. I had seen that option, but nothing to indicate that it had changed between 1.5.12 and 1.5.23. Can anyone account for the difference between these two versions?What I'm actually seeing is a behavior change in a perl script that does something like: open(LS, ls -dF1 /c* | grep '/.*/' |); One way to fix this is wrap it with bash, but I'd like to understand exactly what changed.Replacing grep with the program below showed me a difference in the wild card expansion and that lead to the assumption that wild cards are expanded differently - maybe it's something else? You may want to look at Perl too. Obviously, there's a difference between the command line and the operations in Perl but you may not be chasing the same problem by looking at the command line issue. Off-hand, I don't recall a conscious change here. The glob option has been there forever so if you see a difference in 1.5.12 vs now, I'd say it's fair to assume that the 1.5.12 behavior indicates a bug that has since been fixed. -- Larry Hall http://www.rfk.com RFK Partners, Inc. (508) 893-9779 - RFK Office 216 Dalton Rd. (508) 893-9889 - FAX Holliston, MA 01746 _ A: Yes. Q: Are you sure? A: Because it reverses the logical flow of conversation. Q: Why is top posting annoying in email? -- 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/
Re: command line arg expansion
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 jim wrote: Morgan, What do you mean by: isnt this because if the wildcard reading in 1.5.23? Is this something that has changed between 1.5.12 and 1.5.23?Maybe I'm connecting two unrelated datapoints, but I noticed the problem because of a perl script that looks like: open(LS, ls -dF1 /c* | grep '/.*/' |); This worked fine on older versions of Cygwin, but doesn't work any more. In trying to figure out what was going on, I replaced grep with the program to print out argv and noticed the difference. thanks, jim -Original Message- From: Morgan Gangwere [mailto:[EMAIL PROTECTED] Sent: Thursday, January 11, 2007 4:32 PM To: cygwin@cygwin.com Subject: Re: command line arg expansion 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, jim -- 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/ isnt this because if the wildcard reading in 1.5.23? i have seen this several times, especially in this kind of program. handle the argv[] as an array of real strings and you should be fine TTBOMK i may have been confused. what shell are you running this from? -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (MingW32) iD8DBQFFqDmlXIyDjlIx4voRArStAJ94hgvkDJRrtUIZGrYAuGfvVlqQEwCgkvBV Ik0DJFYJ6wLIuDifaOBTkKU= =5e2i -END PGP SIGNATURE- -- 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/
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/
Re: command line arg expansion
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? See http://cygwin.com/cygwin-ug-net/using-cygwinenv.html. Look for the (no)glob explanation. -- Larry Hall http://www.rfk.com RFK Partners, Inc. (508) 893-9779 - RFK Office 216 Dalton Rd. (508) 893-9889 - FAX Holliston, MA 01746 _ A: Yes. Q: Are you sure? A: Because it reverses the logical flow of conversation. Q: Why is top posting annoying in email? -- 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/
Re: command line arg expansion
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 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, jim -- 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/ isnt this because if the wildcard reading in 1.5.23? i have seen this several times, especially in this kind of program. handle the argv[] as an array of real strings and you should be fine TTBOMK -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (MingW32) iD8DBQFFptb+XIyDjlIx4voRAnu5AJwPXdyC48lDtDtid/gHCmF4gpu1OQCfa3MJ v3wayj3HBBmBgoMlY6B2Li0= =2xay -END PGP SIGNATURE- -- 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/