Mercurial > emacs
changeset 107870:973ae1d72536
* net/tramp.el (tramp-error-with-buffer): Don't show the
connection buffer when we are in completion mode.
(tramp-file-name-handler): Catch the error for some operations
when we are in completion mode. This gives the user the chance to
correct the file name in the minibuffer.
author | Michael Albinus <albinus@detlef> |
---|---|
date | Fri, 16 Apr 2010 00:19:01 +0200 |
parents | 852124e6110f |
children | d7b161b7a686 56ac0739b76d |
files | lisp/ChangeLog lisp/net/tramp.el |
diffstat | 2 files changed, 33 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Thu Apr 15 14:52:27 2010 -0700 +++ b/lisp/ChangeLog Fri Apr 16 00:19:01 2010 +0200 @@ -1,3 +1,11 @@ +2010-04-15 Michael Albinus <michael.albinus@gmx.de> + + * net/tramp.el (tramp-error-with-buffer): Don't show the + connection buffer when we are in completion mode. + (tramp-file-name-handler): Catch the error for some operations + when we are in completion mode. This gives the user the chance to + correct the file name in the minibuffer. + 2010-04-15 Glenn Morris <rgm@gnu.org> * progmodes/verilog-mode.el (verilog-forward-sexp): Avoid free variable.
--- a/lisp/net/tramp.el Thu Apr 15 14:52:27 2010 -0700 +++ b/lisp/net/tramp.el Fri Apr 16 00:19:01 2010 +0200 @@ -2170,7 +2170,9 @@ (save-window-excursion (unwind-protect (apply 'tramp-error vec-or-proc signal fmt-string args) - (when (and vec-or-proc (not (zerop tramp-verbose))) + (when (and vec-or-proc + (not (zerop tramp-verbose)) + (not (tramp-completion-mode-p))) (let ((enable-recursive-minibuffers t)) (pop-to-buffer (or (and (bufferp buffer) buffer) @@ -5425,19 +5427,28 @@ (completion (tramp-completion-mode-p)) (foreign (tramp-find-foreign-file-name-handler filename))) (with-parsed-tramp-file-name filename nil - (cond - ;; When we are in completion mode, some operations - ;; shouldn't be handled by backend. - ((and completion (zerop (length localname)) - (memq operation '(file-exists-p file-directory-p))) - t) - ((and completion (zerop (length localname)) - (memq operation '(file-name-as-directory))) - filename) - ;; Call the backend function. - (foreign (apply foreign operation args)) - ;; Nothing to do for us. - (t (tramp-run-real-handler operation args)))))) + ;; Call the backend function. + (if foreign + (condition-case err + (apply foreign operation args) + (error + (cond + ;; When we are in completion mode, some failed + ;; operations shall return at least a default + ;; value in order to give the user a chance to + ;; correct the file name in the minibuffer. + ((and completion (zerop (length localname)) + (memq operation '(file-exists-p file-directory-p))) + t) + ((and completion (zerop (length localname)) + (memq operation + '(expand-file-name file-name-as-directory))) + filename) + ;; Propagate the error. + (t (signal (car err) (cdr err)))))) + ;; Nothing to do for us. + (tramp-run-real-handler operation args))))) + ;; When `tramp-mode' is not enabled, we don't do anything. (tramp-run-real-handler operation args)))