a weird behavior on a command prompt.

Chris Faylor cgf@cygnus.com
Wed Sep 13 11:29:00 GMT 2000


On Thu, Sep 14, 2000 at 12:57:44AM +0900, Kazuhiro Fujieda wrote:
>Cygwin commands invoked with quotation marks on a command prompt
>ignore the first argument as the following:
>
>Microsoft(R) Windows NT(R)
>(C) Copyright 1985-1996 Microsoft Corp.
>
>C:\Home\fujieda>ls --version
>ls (GNU fileutils) 3.16
>
>C:\Home\fujieda>"ls" --version
>bin        doc        lib        tmp
>cygwin     gdbtk.ini  mp3        work

If I'm reading your patch correctly, the only thing that really needed
to be done was to

return p;

rather than

return p + 1;

That is the change that I've made.

Thanks,
cgf


>ChangeLog:
>Thu Sep 14 00:37:46 2000  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
>
>	*  dcrt0.cc (quoted): Handle quoted first argument properly.
>
>Index: dcrt0.cc
>===================================================================
>RCS file: /cvs/src/src/winsup/cygwin/dcrt0.cc,v
>retrieving revision 1.55
>diff -u -p -r1.55 dcrt0.cc
>--- dcrt0.cc	2000/09/10 16:43:47	1.55
>+++ dcrt0.cc	2000/09/13 15:26:46
>@@ -303,11 +303,16 @@ quoted (char *cmd, int winshell)
> 
>   if (!winshell)
>     {
>-      char *p;
>-      strcpy (cmd, cmd + 1);
>-      if ((p = strchr (cmd, quote)) != NULL)
>-	strcpy (p, p + 1);
>-      return p + 1;
>+      size_t len = strlen (cmd);
>+      memmove (cmd, cmd + 1, len);
>+      p = strchr (cmd, quote);
>+      if (!p)
>+	return cmd;
>+      else
>+	{
>+	  memmove (p, p + 1, len - 1 - (p - cmd));
>+	  return p;
>+	}
>     }
> 
>   /* This must have been run from a Windows shell, so preserve


More information about the Cygwin-patches mailing list