GNU bug report logs - #34343
[PATCH] Make project--find-regexp-in-files work with remote files

Previous Next

Package: emacs;

Reported by: Felicián Németh <felician.nemeth <at> gmail.com>

Date: Wed, 6 Feb 2019 08:19:01 UTC

Severity: normal

Tags: moreinfo, patch

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 34343 <at> debbugs.gnu.org, Felicián Németh <felician.nemeth <at> gmail.com>
Subject: bug#34343: [PATCH] Make project--find-regexp-in-files work with remote files
Date: Tue, 07 Jan 2020 15:29:30 +0100
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.