diff options
| author | Stefan Monnier | 2018-09-04 12:03:52 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2018-09-04 12:03:52 -0400 |
| commit | 9618e16efa5607664b794795fb80bdf5862fbe4b (patch) | |
| tree | 6679468f70f569b296187c871b02cb6466bd1aac | |
| parent | 30d94e4b926fb62c4cb0d2635c7bb6b580c68c4a (diff) | |
| download | emacs-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.el | 12 | ||||
| -rw-r--r-- | lisp/rfn-eshadow.el | 4 |
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. |
| 1928 | This is intended to be used as a minibuffer `post-command-hook' for | 1935 | This 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 | ||