This is the mail archive of the
cygwin-patches@cygwin.com
mailing list for the Cygwin project.
Re: [PATCH] Problem with filenames ending in "." with check_case:strict
- From: Christopher Faylor <cgf-no-personal-reply-please at cygwin dot com>
- To: cygwin-patches at cygwin dot com
- Date: Wed, 30 Mar 2005 14:13:10 -0500
- Subject: Re: [PATCH] Problem with filenames ending in "." with check_case:strict
- References: <Pine.GSO.4.61.0503211850270.8708@slinky.cs.nyu.edu>
- Reply-to: cygwin-patches at cygwin dot com
On Wed, Mar 30, 2005 at 01:51:36PM -0500, Igor Pechtchanski wrote:
>ChangeLog:
>2005-03-21 Igor Pechtchanski <pechtcha@cs.nyu.edu>
>
> * path.cc (symlink_info::case_check): Ignore trailing characters
> in paths when comparing case.
Doesn't this ignore all trailing characters so that "foo" could match "foobbbbb"?
cgf
>Index: winsup/cygwin/path.cc
>===================================================================
>RCS file: /cvs/src/src/winsup/cygwin/path.cc,v
>retrieving revision 1.355
>diff -u -p -r1.355 path.cc
>--- winsup/cygwin/path.cc 12 Mar 2005 02:32:59 -0000 1.355
>+++ winsup/cygwin/path.cc 22 Mar 2005 00:46:23 -0000
>@@ -3217,6 +3217,7 @@ symlink_info::case_check (char *path)
> WIN32_FIND_DATA data;
> HANDLE h;
> char *c;
>+ int len;
>
> /* Set a pointer to the beginning of the last component. */
> if (!(c = strrchr (path, '\\')))
>@@ -3230,7 +3231,8 @@ symlink_info::case_check (char *path)
> FindClose (h);
>
> /* If that part of the component exists, check the case. */
>- if (strcmp (c, data.cFileName))
>+ len = strlen(data.cFileName);
>+ if (strncmp (c, data.cFileName, len))
> {
> case_clash = true;
>