This is the mail archive of the cygwin-developers@cygwin.com 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]

Re: difficult problem with symbolic link handling


On Sun, Apr 29, 2001 at 08:17:00PM -0400, Christopher Faylor wrote:
> On Mon, Apr 30, 2001 at 12:18:45AM +0200, Corinna Vinschen wrote:
> >Somehow your latest changes to path.cc break check_case.
> >
> >Try to start a shell with CYGWIN=... check_case=adjust
> >
> >and call `ls -ld .'
> >
> >Result:
> >ls: .: No such file or directory.
> 
> Works fine for me, but that is somewhat besides the point.
> 
> I was asking for feedback on whether this was a worthwhile path to follow
> not whether my particular implementation had bugs or not.  I actually
> marked the previous revision of path.cc so that I could revert to the
> old way of doing things if people had problems.

>From your description I think it is actually a worthwhile path to
go. Even if it slows down Cygwin since correctness is more important
than speed.

> I assume that since you didn't object to the words that you've moved on
> to debugging the implementation.

Actually I have to debug my own changes to the security stuff.
Unfortunately your changes break the chance to test them in the
current CVS version. For that reason I send you another bug
report now. If I can fix them, I will send you patches, too,
of course.

The bug report:

Real directories:

	C:/cygwin       <root>
	C:/cygwin/home  <empty, just mount point>
	C:/cygwin/src   <empty, just mount point>
	D:/home/corinna	<real home directory>
	D:/src		<real source directory>

Mount points:

	mount -s -b C:/cygwin /
	mount -s -b D:/home /home
	mount -s -b D:/src /src

Symlinks:

	ln -s /src /home/corinna/src

If check_case is relaxed that symlink is printed as symlink,
as a normal file otherwise:

HOME=/home/corinna bash --login
$ CYGWIN="$CYGWIN check_case=relaxed" ls -l src
lrwxrwxrwx   1 corinna  root           15 Mar 19 14:02 src -> /src
$ CYGWIN="$CYGWIN check_case=adjust" ls -l src
-rwxrwxrwx   1 corinna  root           15 Mar 19 14:02 src

Further behaviour is related to "check_case=relaxed".
I think that's actually the same bug but just for
clearness I send both problems:

- TAB-completion doesn't work correctly. Example
	$ cd src/openssh/<TAB>
  shows the contents of src/, not of src/openssh/.

- chdir doesn't work correctly.
  Example bash:
	$ cd src/openssh/src
	$ pwd
	/home/corinna/src/openssh/src
	$ ls
	<Output for ~/src, not for ~/src/openssh/src>
  Example tcsh:
  	$ cd src/openssh/src
	$ pwd
	/src

	$ cd src
	$ cd openssh
	$ cd src
	$ pwd
	/src/openssh/src
	$ cd ..
	$ pwd
	/src

Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:cygwin@cygwin.com
Red Hat, Inc.


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