GNU bug report logs -
#34343
[PATCH] Make project--find-regexp-in-files work with remote files
Previous Next
Full log
View this message in rfc822 format
Dmitry Gutov <dgutov <at> yandex.ru> writes:
> (defun file-local-name (file)
> "Return the local name component of FILE.
> This function removes from FILE the specification of the remote host
> and the method of accessing the host, leaving only the part that
> identifies FILE locally on the remote system.
> The returned file name can be used directly as argument of
> `process-file', `start-file-process', or `shell-command'."
> (let ((handler (find-file-name-handler file 'file-local-name)))
> (if handler
> (funcall handler 'file-local-name file)
> ;; Until all the implementations switch over,
> ;; not sure how long to keep the compatibility here.
> (or (file-remote-p file 'localname) file))))
handler would be tramp-file-name-handler, so I don't see how it helps.
> Well, if you like the following piece of code, I guess we could live
> with that.
>
> (setq files (mapcar
> (if (tramp-tramp-file-p dir)
> #'tramp-file-local-name
> #'file-local-name)
> files)))
That would work. If you are sure that you will handle only Tramp based
remote files, you could simplify this to
(setq files (mapcar #'tramp-file-local-name files))
> By the way, I have no idea what to do about having tramp-tramp-file-p
> called twice.
Take the tramp-tramp-file-p call out of mapcar, like
(let ((fun (if (tramp-tramp-file-p dir)
#'tramp-file-local-name #'file-local-name)))
(setq files (mapcar fun files)))
Best regards, Michael.
This bug report was last modified 3 years and 303 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.