Subject: Re: [h-e-w] Re: new-style Cygwin symlinks, NTEmacs' dired mode, and ls-lisp.el
From: "Dr Francis J. Wright" <[email-masked]>
To: "Underwood, Jonathan" <[email-masked]>, "Matt Swift" <[email-masked]>
Cc: <[email-masked]>, <[email-masked]>
Date: Mon, 8 Jul 2002 12:04:01 +0100

From: "Underwood, Jonathan" <[email-masked]>
To: "'Dr Francis J. Wright'" <[email-masked]>; "Matt Swift"
<[email-masked]>
Cc: <[email-masked]>; <[email-masked]>
Sent: Thursday, July 04, 2002 11:47 PM
Subject: RE: [h-e-w] Re: new-style Cygwin symlinks, NTEmacs' dired mode, and
ls-lisp.el

> I've not really tried hard using it, but doesn't something like
>
> (setq ls-lisp-use-insert-directory-program t)
>
> make emacs use cygwin ls for dired, which by it's nature would understand
> cygwin symlinks?
> (as long as emacs knows where to find ls)
>
> No doubt i'm missing lots of subtelties with this though :)
>
> I have for some time thought that, given the large number of people using
> cygwin in conjunction with ntemacs, a package should be put together to
> seemlessly integrate the two, incorporating cygwin-mount.el and other
stuff.
> I've been putting some stuff together, but i'm sure i'm not the most
> qualified for the job. Anyway, if anyone is interested in this, i'd be
happy
> to help.
>
> jonathan.

I recommend using the ls-lisp customization group rather than directly
setting variables.  However, using Cygwin ls in dired does not fully support
Cygwin symlinks and does not support normal Windows shortcuts at all,
because Cygwin ls treats Cygwin and non-Cygwin shortcuts differently.  Also,
the dired S (make symlink) command will not work.

The symlink code that I originally added to ls-lisp was primarily intended
to parse Windows shortcuts generated by Windows.  At that time, Cygwin used
a different symlink format that was trivial to parse, so I added support for
that also.  The symlink code was excluded when my version of ls-lisp was
included in Emacs 21, but I left a hook (in the form of a function stub), so
that symlink support could be easily added.

When I have finished testing support for the new-style Cygwin shortcut files
I will release the separate symlink package.  It has proved tricky to make
the dired S command work properly because of the .lnk extension that Emacs
does not expect, but I think I have now fixed it.  The .lnk extension, which
Cygwin ls hides for Cygwin shortcuts only, is probably why dired cannot
follow Cygwin shortcuts even when using Cygwin ls (which I have only just
noticed).  So dired requires some hacking whichever ls is used.  I'll think
about adding support for Cygwin ls to my symlink package; the .lnk problems
are very similar to those with ls-lisp.

It would probably be better to do all this at the C level via the Microsoft
shortcut APIs, and I thought that such support was going to be added to
NTEmacs, but it doesn't seem to have happened.  So, for now, I'll try to
provide support in Lisp.

Francis

--
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/