help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: API for excess DOS file attributes??


From: Oleksandr Gavenko
Subject: Re: API for excess DOS file attributes??
Date: Fri, 30 Sep 2011 00:55:48 +0300
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.1) Gecko/20110830 Thunderbird/6.0.1

29.09.2011 23:23, Eli Zaretskii пишет:
From: Oleksandr Gavenko<gavenkoa@gmail.com>
Date: Thu, 29 Sep 2011 22:59:09 +0300

So I think that I can not excess to this data from Emacs
(native Windows build).

Not from Lisp, no.

I try rewrite 'follow-cygwin-symlink' from:

    http://www.emacswiki.org/emacs/setup-cygwin.el

for more strict conformance of definition of symbolic link
in Cygwin (from 'cygwin-ug-net-nochunks.html'):

    The file style symlinks are files containing a magic cookie
    followed by the path to which the link points. They are marked
    with the System DOS attribute so that only files with that
    attribute have to be read to determine whether or not the file is
    a symbolic link.

What's in setup-cygwin.el is about as good as you can get in Lisp.  A
better solution would be to add to file-symlink-p and
make-symbolic-link the ability to recognize and create Cygwin-style
symlink (and Windows 7 style symlink as well), but that requires
changes on the C level.

OK.

I get next new definition of 'follow-cygwin-symlink', which work with
new (to Cygwin 1.7) style of links:

(when (eq windows-system 'w32)

  (defun follow-cygwin-symlink ()
    "Follow new-style (and also UCS-16) Cygwin symlinks."
    (save-excursion
      (goto-char 0)
      (when (looking-at "!<symlink>\xff\xfe")
        (find-alternate-file
         (substring
          (decode-coding-string
           (buffer-substring (match-end 0) (point-max))
           'utf-16-le)
          0 -1)                           ; -1 for stripping final \0.
         ))))
  (add-hook 'find-file-hooks 'follow-cygwin-symlink)

 )

I don't incorporate it back to emacswiki as don't understand some part
of old code.

Maintainer of this file is Drew Adams, but I don't know how contact
with him.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]