1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 04:10:54 -08:00

* net/tramp-cache.el (tramp-flush-file-function): Wrap the code

with `save-match-data'.

Fixes: debbugs:18095
This commit is contained in:
Michael Albinus 2014-07-24 09:30:36 +02:00
parent d6a393dd19
commit 934eeab5ff
2 changed files with 15 additions and 8 deletions

View file

@ -1,3 +1,8 @@
2014-07-24 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-cache.el (tramp-flush-file-function): Wrap the code
with `save-match-data'. (Bug#18095)
2014-07-21 Vincent Belaïche <vincentb1@users.sourceforge.net>
* ses.el (ses-truncate-cell): Use cl-progv instead of eval in

View file

@ -201,17 +201,19 @@ Remove also properties of all files in subdirectories."
;; Reverting or killing a buffer should also flush file properties.
;; They could have been changed outside Tramp. In eshell, "ls" would
;; not show proper directory contents when a file has been copied or
;; deleted before.
;; deleted before. We must apply `save-match-data', because it would
;; corrupt other packages otherwise (reported from org).
(defun tramp-flush-file-function ()
"Flush all Tramp cache properties from `buffer-file-name'.
This is suppressed for temporary buffers."
(unless (string-match "^ \\*temp\\*" (or (buffer-name) ""))
(let ((bfn (if (stringp (buffer-file-name))
(buffer-file-name)
default-directory)))
(when (tramp-tramp-file-p bfn)
(with-parsed-tramp-file-name bfn nil
(tramp-flush-file-property v localname))))))
(save-match-data
(unless (string-match "^ \\*temp\\*" (or (buffer-name) ""))
(let ((bfn (if (stringp (buffer-file-name))
(buffer-file-name)
default-directory)))
(when (tramp-tramp-file-p bfn)
(with-parsed-tramp-file-name bfn nil
(tramp-flush-file-property v localname)))))))
(add-hook 'before-revert-hook 'tramp-flush-file-function)
(add-hook 'eshell-pre-command-hook 'tramp-flush-file-function)