mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
* 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.
This commit is contained in:
parent
a1bd37ee66
commit
d037d50168
4 changed files with 72 additions and 3 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -2087,6 +2087,49 @@ For definition of that list see `tramp-set-completion-function'."
|
|||
;; 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 @@ please ensure that the buffers are attached to your email.\n\n")
|
|||
;; 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.
|
||||
|
|
|
|||
|
|
@ -119,6 +119,12 @@ system, `file-name-shadow-properties' is used instead."
|
|||
: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 @@ The prompt and initial input should already have been inserted."
|
|||
(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 @@ been set up by `rfn-eshadow-setup-minibuffer'."
|
|||
(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)))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue