Mercurial > emacs
changeset 84739:ed643c57fe39
* rfn-eshadow.el (rfn-eshadow-setup-minibuffer-hook)
(rfn-eshadow-update-overlay-hook): New defvars.
(rfn-eshadow-setup-minibuffer, rfn-eshadow-update-overlay): Run
the hooks.
* net/tramp.el (tramp-rfn-eshadow-overlay): New defvar.
(tramp-rfn-eshadow-setup-minibuffer)
(tramp-rfn-eshadow-update-overlay): New defuns. Hook into
rfn-eshadow.el.
* net/tramp-smb.el (tramp-smb-errors): Add error message for call
timeout.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Fri, 21 Sep 2007 05:24:06 +0000 |
parents | c98c5f510060 |
children | 275cddd2a0da |
files | lisp/ChangeLog lisp/net/tramp-smb.el lisp/net/tramp.el lisp/rfn-eshadow.el |
diffstat | 4 files changed, 72 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Sep 21 04:30:50 2007 +0000 +++ b/lisp/ChangeLog Fri Sep 21 05:24:06 2007 +0000 @@ -1,3 +1,18 @@ +2007-09-21 Michael Albinus <michael.albinus@gmx.de> + + * rfn-eshadow.el (rfn-eshadow-setup-minibuffer-hook) + (rfn-eshadow-update-overlay-hook): New defvars. + (rfn-eshadow-setup-minibuffer, rfn-eshadow-update-overlay): Run + the hooks. + + * net/tramp.el (tramp-rfn-eshadow-overlay): New defvar. + (tramp-rfn-eshadow-setup-minibuffer) + (tramp-rfn-eshadow-update-overlay): New defuns. Hook into + rfn-eshadow.el. + + * net/tramp-smb.el (tramp-smb-errors): Add error message for call + timeout. + 2007-09-21 Markus Triska <markus.triska@gmx.at> * emacs-lisp/bytecomp.el (byte-compile-normal-call): Warn when
--- a/lisp/net/tramp-smb.el Fri Sep 21 04:30:50 2007 +0000 +++ b/lisp/net/tramp-smb.el Fri Sep 21 05:24:06 2007 +0000 @@ -79,6 +79,7 @@ '(;; Connection error / timeout "Connection to \\S-+ failed" "Read from server failed, maybe it closed the connection" + "Call timed out: server did not respond" ;; Samba "ERRDOS" "ERRSRV"
--- a/lisp/net/tramp.el Fri Sep 21 04:30:50 2007 +0000 +++ b/lisp/net/tramp.el Fri Sep 21 05:24:06 2007 +0000 @@ -2087,6 +2087,49 @@ ;; The method related defaults. (cdr (assoc method tramp-completion-function-alist)))) + +;;; Fontification of `read-file-name'. + +;; rfn-eshadow.el is part of Emacs 22. Its is autoloaded. +(defvar tramp-rfn-eshadow-overlay) +(make-variable-buffer-local 'tramp-rfn-eshadow-overlay) + +(defun tramp-rfn-eshadow-setup-minibuffer () + "Set up a minibuffer for `file-name-shadow-mode'. +Adds another overlay hiding filename parts according to Tramp's +special handling of `substitute-in-file-name'." + (when minibuffer-completing-file-name + (setq tramp-rfn-eshadow-overlay + (make-overlay (minibuffer-prompt-end) (minibuffer-prompt-end))) + ;; Copy rfn-eshadow-overlay properties. + (let ((props (overlay-properties rfn-eshadow-overlay))) + (while props + (overlay-put tramp-rfn-eshadow-overlay (pop props) (pop props)))))) + +(when (boundp 'rfn-eshadow-setup-minibuffer-hook) + (add-hook 'rfn-eshadow-setup-minibuffer-hook + 'tramp-rfn-eshadow-setup-minibuffer)) + +(defun tramp-rfn-eshadow-update-overlay () + "Update `rfn-eshadow-overlay' to cover shadowed part of minibuffer input. +This is intended to be used as a minibuffer `post-command-hook' for +`file-name-shadow-mode'; the minibuffer should have already +been set up by `rfn-eshadow-setup-minibuffer'." + ;; In remote files name, there is a shadowing just for the local part. + (let ((end (or (overlay-end rfn-eshadow-overlay) (minibuffer-prompt-end)))) + (when (file-remote-p (buffer-substring-no-properties end (point-max))) + (narrow-to-region + (1+ (or (string-match "/" (buffer-string) end) end)) (point-max)) + (let ((rfn-eshadow-overlay tramp-rfn-eshadow-overlay) + (rfn-eshadow-update-overlay-hook nil)) + (rfn-eshadow-update-overlay)) + (widen)))) + +(when (boundp 'rfn-eshadow-update-overlay-hook) + (add-hook 'rfn-eshadow-update-overlay-hook + 'tramp-rfn-eshadow-update-overlay)) + + ;;; File Name Handler Functions: (defun tramp-handle-make-symbolic-link @@ -7467,7 +7510,7 @@ ;; indefinitely blocking piece of code. In this case it would be ;; within Tramp around one of its calls to accept-process-output (or ;; around one of the loops that calls accept-process-output) -;; (Stefann Monnier). +;; (Stefan Monnier). ;; * Autodetect if remote `ls' groks the "--dired" switch. ;; * Add fallback for inline encodings. This should be used ;; if the remote end doesn't support mimencode or a similar program.
--- a/lisp/rfn-eshadow.el Fri Sep 21 04:30:50 2007 +0000 +++ b/lisp/rfn-eshadow.el Fri Sep 21 05:24:06 2007 +0000 @@ -119,6 +119,12 @@ :group 'minibuffer :version "22.1") +(defvar rfn-eshadow-setup-minibuffer-hook nil + "Minibuffer setup functions from other packages.") + +(defvar rfn-eshadow-update-overlay-hook nil + "Customer overlay functions from other packages") + ;;; Internal variables @@ -153,7 +159,9 @@ (overlay-put rfn-eshadow-overlay 'evaporate t) ;; Add our post-command hook, and make sure can remove it later. (add-to-list 'rfn-eshadow-frobbed-minibufs (current-buffer)) - (add-hook 'post-command-hook #'rfn-eshadow-update-overlay nil t))) + (add-hook 'post-command-hook #'rfn-eshadow-update-overlay nil t) + ;; Run custom hook + (run-hooks 'rfn-eshadow-setup-minibuffer-hook))) (defsubst rfn-eshadow-sifn-equal (goal pos) (equal goal (condition-case nil @@ -193,7 +201,9 @@ (if (rfn-eshadow-sifn-equal goal mid) (setq start mid) (setq end mid))) - (move-overlay rfn-eshadow-overlay (minibuffer-prompt-end) start))) + (move-overlay rfn-eshadow-overlay (minibuffer-prompt-end) start)) + ;; Run custom hook + (run-hooks 'rfn-eshadow-update-overlay-hook)) ;; `substitute-in-file-name' can fail on partial input. (error nil)))