summaryrefslogtreecommitdiff
path: root/lisp/net
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2007-09-21 05:24:06 +0000
committerMichael Albinus <michael.albinus@gmx.de>2007-09-21 05:24:06 +0000
commitd037d5016819bf00d84fafdfd228729949ba645f (patch)
treeb3c5f9bb13db1dd5f1e59db5cfca4b380e88a2a1 /lisp/net
parenta1bd37ee66f78db6b882863c4b0bd88c43ca3a9a (diff)
downloademacs-d037d5016819bf00d84fafdfd228729949ba645f.tar.gz
* 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.
Diffstat (limited to 'lisp/net')
-rw-r--r--lisp/net/tramp-smb.el1
-rw-r--r--lisp/net/tramp.el45
2 files changed, 45 insertions, 1 deletions
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 5dbf12955d7..c7ea3a12163 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -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"
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index bcab2b9cf52..a102a9f19c0 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -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.