aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2018-09-04 12:03:52 -0400
committerStefan Monnier2018-09-04 12:03:52 -0400
commit9618e16efa5607664b794795fb80bdf5862fbe4b (patch)
tree6679468f70f569b296187c871b02cb6466bd1aac
parent30d94e4b926fb62c4cb0d2635c7bb6b580c68c4a (diff)
downloademacs-9618e16efa5607664b794795fb80bdf5862fbe4b.tar.gz
emacs-9618e16efa5607664b794795fb80bdf5862fbe4b.zip
Better fix for bug#32550
* lisp/rfn-eshadow.el (rfn-eshadow-overlay): Give it a global default. * lisp/net/tramp.el (rfn-eshadow-overlay): Declare it as dynamically scoped. (tramp-rfn-eshadow-update-overlay): Revert the corresponding part of last change.
-rw-r--r--lisp/net/tramp.el12
-rw-r--r--lisp/rfn-eshadow.el4
2 files changed, 11 insertions, 5 deletions
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 22fcccb8b65..452e70ec353 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1923,6 +1923,13 @@ special handling of `substitute-in-file-name'."
1923(defun tramp-rfn-eshadow-update-overlay-regexp () 1923(defun tramp-rfn-eshadow-update-overlay-regexp ()
1924 (format "[^%s/~]*\\(/\\|~\\)" tramp-postfix-host-format)) 1924 (format "[^%s/~]*\\(/\\|~\\)" tramp-postfix-host-format))
1925 1925
1926;; Package rfn-eshadow is preloaded in Emacs, but for some reason,
1927;; it only did (defvar rfn-eshadow-overlay) without giving it a global
1928;; value, so it was only declared as dynamically-scoped within the
1929;; rfn-eshadow.el file. This is now fixed in Emacs>26.1 but we still need
1930;; this defvar here for older releases.
1931(defvar rfn-eshadow-overlay)
1932
1926(defun tramp-rfn-eshadow-update-overlay () 1933(defun tramp-rfn-eshadow-update-overlay ()
1927 "Update `rfn-eshadow-overlay' to cover shadowed part of minibuffer input. 1934 "Update `rfn-eshadow-overlay' to cover shadowed part of minibuffer input.
1928This is intended to be used as a minibuffer `post-command-hook' for 1935This is intended to be used as a minibuffer `post-command-hook' for
@@ -1944,8 +1951,9 @@ been set up by `rfn-eshadow-setup-minibuffer'."
1944 (buffer-string) end) 1951 (buffer-string) end)
1945 end)) 1952 end))
1946 (point-max)) 1953 (point-max))
1947 (setq rfn-eshadow-overlay tramp-rfn-eshadow-overlay) 1954 (let ((rfn-eshadow-overlay tramp-rfn-eshadow-overlay)
1948 (let (rfn-eshadow-update-overlay-hook file-name-handler-alist) 1955 (rfn-eshadow-update-overlay-hook nil)
1956 file-name-handler-alist)
1949 (move-overlay rfn-eshadow-overlay (point-max) (point-max)) 1957 (move-overlay rfn-eshadow-overlay (point-max) (point-max))
1950 (rfn-eshadow-update-overlay))))))) 1958 (rfn-eshadow-update-overlay)))))))
1951 1959
diff --git a/lisp/rfn-eshadow.el b/lisp/rfn-eshadow.el
index 847db68a776..cf719966605 100644
--- a/lisp/rfn-eshadow.el
+++ b/lisp/rfn-eshadow.el
@@ -132,9 +132,7 @@ system, `file-name-shadow-properties' is used instead."
132 132
133;; An overlay covering the shadowed part of the filename (local to the 133;; An overlay covering the shadowed part of the filename (local to the
134;; minibuffer). 134;; minibuffer).
135(defvar rfn-eshadow-overlay) 135(defvar-local rfn-eshadow-overlay nil)
136(make-variable-buffer-local 'rfn-eshadow-overlay)
137
138 136
139;;; Hook functions 137;;; Hook functions
140 138