[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ls-lisp and remote files
From: |
Lars Hansen |
Subject: |
ls-lisp and remote files |
Date: |
Thu, 30 Oct 2003 21:06:44 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020623 Debian/1.0.0-0.woody.1 |
I have been working on making ls-lisp work for remote files. To do
that I have made a Tramp implementation of
directory-files-and-attributes using perl on the remote machine. This
works fine except for the translation of UID's and GID's to names. To
make this translation, ls-lisp calls user-login-name which works in the
context of the local machine, and that is wrong for remote directories.
Of cource one could just let ls-lisp check if the directory is remote
and make no translation if it is. However, I sugest the following:
1. Add an optional parameter ID-NAMES to the lisp functions
file-attributes and directory-files-and-attributes. When ID-NAMES is
non-nil, UID and GID is returned as names if possible.
2. Let ls-lisp use this feature to obtain UID and GID names.
I have implemented these change on my own machine (dired.c, lisp.h,
ls-lisp.el, tramp.el) and it seems to work fine.
I want to ask people what you think about this suggestion.
----------------
One more related thing.
IFAICS it is a bug that the current implementation of ls-lisp calls
user-login-name to obtain group name. user-login-name calls getpwuid,
but getgrgid should be used for that, I think. It might work on
GNU/Linux systems but it fails on Sun systems, at least the one I have
access to. On the Sun system UID's and GID's are not disjoint.
With the changes I suggest above there is no need to make a lisp
interface to getgrgid since the translation may be done in dired.c.
- ls-lisp and remote files,
Lars Hansen <=