On 1/11/2023 5:59 AM, Michael Albinus wrote: > Michael Albinus writes: > > Hi Jim, > >> We shouldn't do this. user-uid-for-file would return the *local* uid, >> which is wrong. So please, for all handlers apply >> >>> + (user-uid-for-file . tramp-handle-user-uid-for-file) >> >> Except in tramp-archive.el, where ignore as handler seems to be appropriate. > > Thinking about, I believe we need an own function for > tramp-archive.el. Something like (untested) > > --8<---------------cut here---------------start------------->8--- > (defun tramp-archive-user-uid-for-file (filename) > "Like `user-uid-for-file' for file archives." > (user-uid-for-file (tramp-archive-gvfs-file-name filename))) > --8<---------------cut here---------------end--------------->8--- > > This should return the local uid for local archives, and the remote uid > for remote archives. Thanks. See attached. I also updated the base implementation of 'tramp-handle-user-uid-for-file' to return -1 even if 'tramp-get-remote-uid' returns nil (some Tramp methods set the latter handler to be 'ignore'). I also added a new Eshell special variable, '$UID', which does about what you'd expect. This makes Eshell work like other shells, which also have a special '$UID' variable. Finally, I added documentation to the manuals. I didn't add any Tramp regression tests though, since I wasn't sure of the right way to test this.