RE: command line arg expansion

2007-01-12 Thread jim
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

2007-01-12 Thread Larry Hall (Cygwin)

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

2007-01-12 Thread Morgan Gangwere
-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

2007-01-12 Thread Christopher Faylor
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

2007-01-11 Thread Larry Hall (Cygwin)

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

2007-01-11 Thread Morgan Gangwere
-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/