Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Thu, 1 Aug 2002 17:01:48 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: bug: hard links to soft links do not work Message-ID: <20020801210148.GB29167@redhat.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <5 DOT 1 DOT 0 DOT 14 DOT 2 DOT 20020801123520 DOT 01f97010 AT pop3 DOT cris DOT com> <20020801200325 DOT GC27689 AT redhat DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.23.1i On Thu, Aug 01, 2002 at 04:21:43PM -0400, Sam Steingold wrote: >> * In message <20020801200325 DOT GC27689 AT redhat DOT com> >> * On the subject of "Re: bug: hard links to soft links do not work" >> * Sent on Thu, 1 Aug 2002 16:03:25 -0400 >> * Honorable Christopher Faylor writes: >> >> I don't think this is a 'ln' problem. It's a cygwin problem. If >> cygwin is doing the wrong thing then it should, as Sam said, either be >> made to work or fail, not provide binary gobbledegook. >> >> If this was to be made to work correctly, it would be pretty low level >> in cygwin in the path_conv and symlink_check methods. >> >> It would be much easier to fail in this scenario rather than make it >> work correctly, I think. > >actually, this is very easy: > >(defmethod hard-link :around (from to) > (if (symbolic-link-p to) > (symbolic-link from (resolve-symbolic-link to)) > (call-next-method))) > >i.e., when the target is a symlink, you symlink to its target. Is that *lisp* code? This makes it easy because...? I don't quite follow. Obviously anyone can conceive of some logic to make this fail but without looking at the actual code in question it isn't going to be too useful. Just to make it clear again, this is a cygwin dll problem. Modifying ln fixes ln. It doesn't fix perl or python or any C program that uses link(). Anyway, I will take a look at this. No need for a patch. I'll fix it, where "fix" means make it work sensibly. cgf >think of a symlink as if it had no inode (like it is on a real FS), >i.e., just a special dirent pointing to the target. >Then the hardlink of a symlink is another symlink pointing to the same >place, since the nature of hardlink is to create a file which is >indistinguishable from the target. > >-- >Sam Steingold (http://www.podval.org/~sds) running RedHat7.3 GNU/Linux > > >Of course, I haven't tried it. But it will work. - Isaak Asimov > > > >-- >Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple >Bug reporting: http://cygwin.com/bugs.html >Documentation: http://cygwin.com/docs.html >FAQ: http://cygwin.com/faq/ -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/