* TRAMP: Host name must not match method ... @ 2013-08-14 13:06 Matt McClure 2013-08-16 13:15 ` Michael Albinus 0 siblings, 1 reply; 9+ messages in thread From: Matt McClure @ 2013-08-14 13:06 UTC (permalink / raw) To: emacs-devel, tramp-devel Hi, In recent nightly builds of Emacs, I'm struggling to use TRAMP file paths as I've usually done. I'm getting an error message "Host name must not match method `ssh'". Here's a minimal test case: $ open -a Emacs --args -Q --no-site-file Then: C-x C-f /ssh:vagrant@192.168.33.2:/ RET Here's what *Messages* says: For information about GNU Emacs and the GNU system, type C-h C-a. Tramp: Opening connection for vagrant@192.168.33.2 using ssh... Tramp: Sending command `exec ssh -l vagrant -o ControlPath=/var/folders/_d/5p0jtv397qs73qr_frd6bw180000gn/T/tramp.9409723.%r@%h:%p -o ControlMaster=auto -o ControlPersist=no -e none 192.168.33.2' Tramp: Waiting for prompts from remote shell...done Tramp: Found remote shell prompt on `192.168.33.2' Tramp: Opening connection for vagrant@192.168.33.2 using ssh...done completion--some: Host name must not match method `ssh' Here's what M-x view-lossage says: C-x C-f C-a C-k / s s h : v a g r a n t @ 1 9 2 . 1 6 8 . 3 3 . 2 : / <return> <f1> l I tried to reproduce more succinctly with: $ open -a Emacs --args -Q --no-site-file --eval '(find-file "/ssh:vagrant@192.168.33.2:/")' To my surprise, it worked as intended rather than failing. So maybe that's a clue. I found conversations on tramp-devel[1] and bug-gnu-emacs[2] that look related, but I haven't found the right combination of keystrokes to make it work for me. Is this a defect, or am I doing something wrong? If the latter, what should I do instead? [1]: http://thread.gmane.org/gmane.emacs.tramp/8323/focus=8327 [2]: http://thread.gmane.org/gmane.emacs.bugs/72217/focus=72255 -- Matt McClure http://matthewlmcclure.com http://www.mapmyfitness.com/profile/matthewlmcclure ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: TRAMP: Host name must not match method ... 2013-08-14 13:06 TRAMP: Host name must not match method Matt McClure @ 2013-08-16 13:15 ` Michael Albinus 2013-08-17 17:18 ` Matt McClure 0 siblings, 1 reply; 9+ messages in thread From: Michael Albinus @ 2013-08-16 13:15 UTC (permalink / raw) To: Matt McClure; +Cc: tramp-devel, emacs-devel Matt McClure <matthewlmcclure@gmail.com> writes: > Hi, Hi Matt, > In recent nightly builds of Emacs, I'm struggling to use TRAMP file > paths as I've usually done. I'm getting an error message "Host name > must not match method `ssh'". > > Here's a minimal test case: > > $ open -a Emacs --args -Q --no-site-file > > Then: > > C-x C-f /ssh:vagrant@192.168.33.2:/ RET I'm not able to reproduce it. Trying with other IP address and user name of course, but it works locally (as every single day) for me. > Here's what *Messages* says: > > For information about GNU Emacs and the GNU system, type C-h C-a. > Tramp: Opening connection for vagrant@192.168.33.2 using ssh... > Tramp: Sending command `exec ssh -l vagrant -o > ControlPath=/var/folders/_d/5p0jtv397qs73qr_frd6bw180000gn/T/tramp.9409723.%r@%h:%p > -o ControlMaster=auto -o ControlPersist=no -e none 192.168.33.2' > Tramp: Waiting for prompts from remote shell...done > Tramp: Found remote shell prompt on `192.168.33.2' > Tramp: Opening connection for vagrant@192.168.33.2 using ssh...done > completion--some: Host name must not match method `ssh' It is unclear where the error comes from. Could you, please, perform (setq debug-on-error t tramp-verbose 6) and rerun the test. There might be a backtrace, and there will be a Tramp debug buffer. Both might show us what's up. > I tried to reproduce more succinctly with: > > $ open -a Emacs --args -Q --no-site-file --eval '(find-file > "/ssh:vagrant@192.168.33.2:/")' > > To my surprise, it worked as intended rather than failing. So maybe > that's a clue. No, this doesn't help. The test in Tramp is not performed when you are not in interactive mode. So it is normal that it works for you this way. Best regards, Michael. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: TRAMP: Host name must not match method ... 2013-08-16 13:15 ` Michael Albinus @ 2013-08-17 17:18 ` Matt McClure 2013-08-17 17:41 ` Matt McClure 2013-08-19 12:07 ` Michael Albinus 0 siblings, 2 replies; 9+ messages in thread From: Matt McClure @ 2013-08-17 17:18 UTC (permalink / raw) To: Michael Albinus; +Cc: tramp-devel, emacs-devel On Fri, Aug 16, 2013 at 9:15 AM, Michael Albinus <michael.albinus@gmx.de> wrote: > Matt McClure <matthewlmcclure@gmail.com> writes: > > I'm not able to reproduce it. Trying with other IP address and user name > of course, but it works locally (as every single day) for me. Weird. FWIW, I'm using: GNU Emacs 24.3.50.1 (x86_64-apple-darwin, NS apple-appkit-1038.36) of 2013-08-14 on bob.porkrind.org > It is unclear where the error comes from. Could you, please, perform > > (setq debug-on-error t tramp-verbose 6) > > and rerun the test. There might be a backtrace, and there will be a > Tramp debug buffer. Both might show us what's up. That wasn't enough to get Emacs to show me a backtrace, but still a good lead. I put a breakpoint in tramp-dissect-file-name at: (tramp-compat-user-error "Host name must not match method `%s'" host))) I see it stop at the breakpoint while I'm typing the file path. The first time, it stops after I type the colon in "/ssh:". Something must trap the signal from inside tramp-compat-user-error before it leaks back to me as the user, because I never get a (visual) bell. Here's the backtrace the first time it stops: (progn (edebug-after (edebug-before 91) 93 (tramp-compat-user-error "Host name must not match method `%s'" (edebug-after 0 92 host)))) (if (edebug-after (edebug-before 70) 90 (and (edebug-after (edebug-before 71) 73 (equal (edebug-after 0 72 tramp-syntax) (quote ftp))) (edebug-after (edebug-before 74) 76 (null (edebug-after 0 75 method))) (edebug-after (edebug-before 77) 79 (null (edebug-after 0 78 user))) (edebug-after (edebug-before 80) 85 (member (edebug-after 0 81 host) (edebug-after (edebug-before 82) 84 (mapcar (quote car) (edebug-after 0 83 tramp-methods))))) (edebug-after (edebug-before 86) 89 (not (edebug-after (edebug-before 87) 88 (tramp-completion-mode-p)))))) (progn (edebug-after (edebug-before 91) 93 (tramp-compat-user-error "Host name must not match method `%s'" (edebug-after 0 92 host))))) (progn (edebug-after (edebug-before 47) 57 (if (edebug-after (edebug-before 48) 51 (string-match (edebug-after 0 49 tramp-prefix-ipv6-regexp) (edebug-after 0 50 host))) (progn (edebug-after (edebug-before 52) 56 (setq host (edebug-after (edebug-before 53) 55 (replace-match "" nil t ...))))))) (edebug-after (edebug-before 58) 68 (if (edebug-after (edebug-before 59) 62 (string-match (edebug-after 0 60 tramp-postfix-ipv6-regexp) (edebug-after 0 61 host))) (progn (edebug-after (edebug-before 63) 67 (setq host (edebug-after (edebug-before 64) 66 (replace-match "" nil t ...))))))) (edebug-after (edebug-before 69) 94 (if (edebug-after (edebug-before 70) 90 (and (edebug-after (edebug-before 71) 73 (equal (edebug-after 0 72 tramp-syntax) (quote ftp))) (edebug-after (edebug-before 74) 76 (null (edebug-after 0 75 method))) (edebug-after (edebug-before 77) 79 (null (edebug-after 0 78 user))) (edebug-after (edebug-before 80) 85 (member (edebug-after 0 81 host) (edebug-after ... 84 ...))) (edebug-after (edebug-before 86) 89 (not (edebug-after ... 88 ...))))) (progn (edebug-after (edebug-before 91) 93 (tramp-compat-user-error "Host name must not match method `%s'" (edebug-after 0 92 host))))))) (if (edebug-after 0 46 host) (progn (edebug-after (edebug-before 47) 57 (if (edebug-after (edebug-before 48) 51 (string-match (edebug-after 0 49 tramp-prefix-ipv6-regexp) (edebug-after 0 50 host))) (progn (edebug-after (edebug-before 52) 56 (setq host (edebug-after ... 55 ...)))))) (edebug-after (edebug-before 58) 68 (if (edebug-after (edebug-before 59) 62 (string-match (edebug-after 0 60 tramp-postfix-ipv6-regexp) (edebug-after 0 61 host))) (progn (edebug-after (edebug-before 63) 67 (setq host (edebug-after ... 66 ...)))))) (edebug-after (edebug-before 69) 94 (if (edebug-after (edebug-before 70) 90 (and (edebug-after (edebug-before 71) 73 (equal ... ...)) (edebug-after (edebug-before 74) 76 (null ...)) (edebug-after (edebug-before 77) 79 (null ...)) (edebug-after (edebug-before 80) 85 (member ... ...)) (edebug-after (edebug-before 86) 89 (not ...)))) (progn (edebug-after (edebug-before 91) 93 (tramp-compat-user-error "Host name must not match method `%s'" (edebug-after 0 92 host)))))))) (let ((method (edebug-after (edebug-before 15) 20 (match-string (edebug-after (edebug-before 16) 18 (nth 1 (edebug-after 0 17 tramp-file-name-structure))) (edebug-after 0 19 name)))) (user (edebug-after (edebug-before 21) 26 (match-string (edebug-after (edebug-before 22) 24 (nth 2 (edebug-after 0 23 tramp-file-name-structure))) (edebug-after 0 25 name)))) (host (edebug-after (edebug-before 27) 32 (match-string (edebug-after (edebug-before 28) 30 (nth 3 (edebug-after 0 29 tramp-file-name-structure))) (edebug-after 0 31 name)))) (localname (edebug-after (edebug-before 33) 38 (match-string (edebug-after (edebug-before 34) 36 (nth 4 (edebug-after 0 35 tramp-file-name-structure))) (edebug-after 0 37 name)))) (hop (edebug-after (edebug-before 39) 44 (match-string (edebug-after (edebug-before 40) 42 (nth 5 (edebug-after 0 41 tramp-file-name-structure))) (edebug-after 0 43 name))))) (edebug-after (edebug-before 45) 95 (if (edebug-after 0 46 host) (progn (edebug-after (edebug-before 47) 57 (if (edebug-after (edebug-before 48) 51 (string-match ... ...)) (progn (edebug-after ... 56 ...)))) (edebug-after (edebug-before 58) 68 (if (edebug-after (edebug-before 59) 62 (string-match ... ...)) (progn (edebug-after ... 67 ...)))) (edebug-after (edebug-before 69) 94 (if (edebug-after (edebug-before 70) 90 (and ... ... ... ... ...)) (progn (edebug-after ... 93 ...))))))) (edebug-after (edebug-before 96) 124 (if (edebug-after 0 97 nodefault) (edebug-after (edebug-before 98) 104 (vector (edebug-after 0 99 method) (edebug-after 0 100 user) (edebug-after 0 101 host) (edebug-after 0 102 localname) (edebug-after 0 103 hop))) (edebug-after (edebug-before 105) 123 (vector (edebug-after (edebug-before 106) 110 (tramp-find-method (edebug-after 0 107 method) (edebug-after 0 108 user) (edebug-after 0 109 host))) (edebug-after (edebug-before 111) 115 (tramp-find-user (edebug-after 0 112 method) (edebug-after 0 113 user) (edebug-after 0 114 host))) (edebug-after (edebug-before 116) 120 (tramp-find-host (edebug-after 0 117 method) (edebug-after 0 118 user) (edebug-after 0 119 host))) (edebug-after 0 121 localname) (edebug-after 0 122 hop)))))) (let ((match (edebug-after (edebug-before 2) 7 (string-match (edebug-after (edebug-before 3) 5 (nth 0 (edebug-after 0 4 tramp-file-name-structure))) (edebug-after 0 6 name))))) (edebug-after (edebug-before 8) 13 (if (edebug-after 0 9 match) nil (edebug-after (edebug-before 10) 12 (tramp-compat-user-error "Not a Tramp file name: %s" (edebug-after 0 11 name))))) (edebug-after (edebug-before 14) 125 (let ((method (edebug-after (edebug-before 15) 20 (match-string (edebug-after ... 18 ...) (edebug-after 0 19 name)))) (user (edebug-after (edebug-before 21) 26 (match-string (edebug-after ... 24 ...) (edebug-after 0 25 name)))) (host (edebug-after (edebug-before 27) 32 (match-string (edebug-after ... 30 ...) (edebug-after 0 31 name)))) (localname (edebug-after (edebug-before 33) 38 (match-string (edebug-after ... 36 ...) (edebug-after 0 37 name)))) (hop (edebug-after (edebug-before 39) 44 (match-string (edebug-after ... 42 ...) (edebug-after 0 43 name))))) (edebug-after (edebug-before 45) 95 (if (edebug-after 0 46 host) (progn (edebug-after (edebug-before 47) 57 (if ... ...)) (edebug-after (edebug-before 58) 68 (if ... ...)) (edebug-after (edebug-before 69) 94 (if ... ...))))) (edebug-after (edebug-before 96) 124 (if (edebug-after 0 97 nodefault) (edebug-after (edebug-before 98) 104 (vector (edebug-after 0 99 method) (edebug-after 0 100 user) (edebug-after 0 101 host) (edebug-after 0 102 localname) (edebug-after 0 103 hop))) (edebug-after (edebug-before 105) 123 (vector (edebug-after ... 110 ...) (edebug-after ... 115 ...) (edebug-after ... 120 ...) (edebug-after 0 121 localname) (edebug-after 0 122 hop)))))))) (progn (edebug-after (edebug-before 1) 126 (let ((match (edebug-after (edebug-before 2) 7 (string-match (edebug-after ... 5 ...) (edebug-after 0 6 name))))) (edebug-after (edebug-before 8) 13 (if (edebug-after 0 9 match) nil (edebug-after (edebug-before 10) 12 (tramp-compat-user-error "Not a Tramp file name: %s" (edebug-after 0 11 name))))) (edebug-after (edebug-before 14) 125 (let ((method (edebug-after ... 20 ...)) (user (edebug-after ... 26 ...)) (host (edebug-after ... 32 ...)) (localname (edebug-after ... 38 ...)) (hop (edebug-after ... 44 ...))) (edebug-after (edebug-before 45) 95 (if (edebug-after 0 46 host) (progn ... ... ...))) (edebug-after (edebug-before 96) 124 (if (edebug-after 0 97 nodefault) (edebug-after ... 104 ...) (edebug-after ... 123 ...)))))))) (unwind-protect (progn (edebug-after (edebug-before 1) 126 (let ((match (edebug-after (edebug-before 2) 7 (string-match ... ...)))) (edebug-after (edebug-before 8) 13 (if (edebug-after 0 9 match) nil (edebug-after (edebug-before 10) 12 (tramp-compat-user-error "Not a Tramp file name: %s" ...)))) (edebug-after (edebug-before 14) 125 (let ((method ...) (user ...) (host ...) (localname ...) (hop ...)) (edebug-after (edebug-before 45) 95 (if ... ...)) (edebug-after (edebug-before 96) 124 (if ... ... ...))))))) (set-match-data save-match-data-internal (quote evaporate))) (let ((save-match-data-internal (match-data))) (unwind-protect (progn (edebug-after (edebug-before 1) 126 (let ((match (edebug-after ... 7 ...))) (edebug-after (edebug-before 8) 13 (if (edebug-after 0 9 match) nil (edebug-after ... 12 ...))) (edebug-after (edebug-before 14) 125 (let (... ... ... ... ...) (edebug-after ... 95 ...) (edebug-after ... 124 ...)))))) (set-match-data save-match-data-internal (quote evaporate)))) tramp-dissect-file-name("/ssh:" t) tramp-find-foreign-file-name-handler("/ssh:") tramp-file-name-handler(substitute-in-file-name "/ssh:") substitute-in-file-name("/ssh:") apply(substitute-in-file-name "/ssh:") tramp-completion-run-real-handler(substitute-in-file-name ("/ssh:")) tramp-completion-file-name-handler(substitute-in-file-name "/ssh:") substitute-in-file-name("/ssh:") byte-code("\306\307 !\310\b!\311 d\312\x19\x1a^[\x1c\x1d\f\203?\f\n=\204* \fT\x1e\x12\211\x1d\313\314\315\217\232*\204?\f\v=\204\215 \f\x1e\x12\211\x1d\313\314\315\217\232*\204\215\vT\nW\204f\nTdW\203\206 \nT\x1e\x12\211\x1d\313\314\315\217\232*\203\206\nT\x13d\211\x12\203\206\v\n\\\316\245\x14 \f\x1e\x12\211\x1d\313\314\315\217\232*\203\201\f\211\x13\202@\f\x12\202?\317\b\311 \v#\210\320\321!-\207" [rfn-eshadow-overlay non-essential end start mid goal substitute-in-file-name minibuffer-contents overlay-end minibuffer-prompt-end t nil (byte-code "\301\302\bd\"!\207" [pos substitute-in-file-name buffer-substring-no-properties] 4) ((error)) 2 move-overlay run-hooks rfn-eshadow-update-overlay-hook pos] 6) rfn-eshadow-update-overlay() read-from-minibuffer("Find file: " "/Applications/Emacs.app/Contents/Resources/lisp/net/" (keymap (keymap (32)) keymap (10 . minibuffer-complete-and-exit) (13 . minibuffer-complete-and-exit) keymap (menu-bar keymap (minibuf "Minibuf" keymap (tab menu-item "Complete" minibuffer-complete :help "Complete as far as possible") (space menu-item "Complete Word" minibuffer-complete-word :help "Complete at most one word") (63 menu-item "List Completions" minibuffer-completion-help :help "Display all possible completions") "Minibuf")) (27 keymap (118 . switch-to-completions)) (prior . switch-to-completions) (63 . minibuffer-completion-help) (32 . minibuffer-complete-word) (9 . minibuffer-complete) keymap (menu-bar keymap (minibuf "Minibuf" keymap (previous menu-item "Previous History Item" previous-history-element :help "Put previous minibuffer history element in the minibuffer") (next menu-item "Next History Item" next-history-element :help "Put next minibuffer history element in the minibuffer") (isearch-backward menu-item "Isearch History Backward" isearch-backward :help "Incrementally search minibuffer history backward") (isearch-forward menu-item "Isearch History Forward" isearch-forward :help "Incrementally search minibuffer history forward") (return menu-item "Enter" exit-minibuffer :key-sequence " " :help "Terminate input and exit minibuffer") (quit menu-item "Quit" abort-recursive-edit :help "Abort input and exit minibuffer") "Minibuf")) (10 . exit-minibuffer) (13 . exit-minibuffer) (7 . abort-recursive-edit) (C-tab . file-cache-minibuffer-complete) (9 . self-insert-command) (XF86Back . previous-history-element) (up . previous-history-element) (prior . previous-history-element) (XF86Forward . next-history-element) (down . next-history-element) (next . next-history-element) (27 keymap (114 . previous-matching-history-element) (115 . next-matching-history-element) (112 . previous-history-element) (110 . next-history-element))) nil file-name-history "/Applications/Emacs.app/Contents/Resources/lisp/net/" nil) completing-read-default("Find file: " read-file-name-internal file-exists-p confirm-after-completion "/Applications/Emacs.app/Contents/Resources/lisp/net/" file-name-history "/Applications/Emacs.app/Contents/Resources/lisp/net/" nil) completing-read("Find file: " read-file-name-internal file-exists-p confirm-after-completion "/Applications/Emacs.app/Contents/Resources/lisp/net/" file-name-history "/Applications/Emacs.app/Contents/Resources/lisp/net/") read-file-name-default("Find file: " nil "/Applications/Emacs.app/Contents/Resources/lisp/net/" confirm-after-completion nil nil) read-file-name("Find file: " nil "/Applications/Emacs.app/Contents/Resources/lisp/net/" confirm-after-completion) find-file-read-args("Find file: " confirm-after-completion) byte-code("\300\301\302 \"\207" [find-file-read-args "Find file: " confirm-nonexistent-file-or-buffer] 3) call-interactively(find-file nil nil) command-execute(find-file) After I continue, it stops at the breakpoint after each character I type in: C-x C-f /ssh:vagrant@192.168.33.2 When I type the subsequent colon (:), tramp-dissect-file-name no longer stops at the breakpoint. It stops at the breakpoint again after I type RET in: C-x C-f /ssh:vagrant@192.168.33.2:/ RET This time the backtrace looks different. I notice these two stack frames that look suspicious: substitute-in-file-name("/ssh:vagrant@192.168.10.") completion--sifn-requote(27 "/ssh:vagrant@192.168.10.2:/") Here's the complete backtrace: Debugger entered: nil apply(debug nil nil) edebug() (progn (edebug) (tramp-compat-user-error "Host name must not match method `%s'" host)) (progn (progn (edebug) (tramp-compat-user-error "Host name must not match method `%s'" host))) (if (and (equal tramp-syntax (quote ftp)) (null method) (null user) (member host (mapcar (quote car) tramp-methods)) (not (tramp-completion-mode-p))) (progn (progn (edebug) (tramp-compat-user-error "Host name must not match method `%s'" host)))) (progn (if (string-match tramp-prefix-ipv6-regexp host) (progn (setq host (replace-match "" nil t host)))) (if (string-match tramp-postfix-ipv6-regexp host) (progn (setq host (replace-match "" nil t host)))) (if (and (equal tramp-syntax (quote ftp)) (null method) (null user) (member host (mapcar (quote car) tramp-methods)) (not (tramp-completion-mode-p))) (progn (progn (edebug) (tramp-compat-user-error "Host name must not match method `%s'" host))))) (if host (progn (if (string-match tramp-prefix-ipv6-regexp host) (progn (setq host (replace-match "" nil t host)))) (if (string-match tramp-postfix-ipv6-regexp host) (progn (setq host (replace-match "" nil t host)))) (if (and (equal tramp-syntax (quote ftp)) (null method) (null user) (member host (mapcar (quote car) tramp-methods)) (not (tramp-completion-mode-p))) (progn (progn (edebug) (tramp-compat-user-error "Host name must not match method `%s'" host)))))) (let ((method (match-string (nth 1 tramp-file-name-structure) name)) (user (match-string (nth 2 tramp-file-name-structure) name)) (host (match-string (nth 3 tramp-file-name-structure) name)) (localname (match-string (nth 4 tramp-file-name-structure) name)) (hop (match-string (nth 5 tramp-file-name-structure) name))) (if host (progn (if (string-match tramp-prefix-ipv6-regexp host) (progn (setq host (replace-match "" nil t host)))) (if (string-match tramp-postfix-ipv6-regexp host) (progn (setq host (replace-match "" nil t host)))) (if (and (equal tramp-syntax (quote ftp)) (null method) (null user) (member host (mapcar (quote car) tramp-methods)) (not (tramp-completion-mode-p))) (progn (progn (edebug) (tramp-compat-user-error "Host name must not match method `%s'" host)))))) (if nodefault (vector method user host localname hop) (vector (tramp-find-method method user host) (tramp-find-user method user host) (tramp-find-host method user host) localname hop))) (let ((match (string-match (nth 0 tramp-file-name-structure) name))) (if match nil (tramp-compat-user-error "Not a Tramp file name: %s" name)) (let ((method (match-string (nth 1 tramp-file-name-structure) name)) (user (match-string (nth 2 tramp-file-name-structure) name)) (host (match-string (nth 3 tramp-file-name-structure) name)) (localname (match-string (nth 4 tramp-file-name-structure) name)) (hop (match-string (nth 5 tramp-file-name-structure) name))) (if host (progn (if (string-match tramp-prefix-ipv6-regexp host) (progn (setq host (replace-match "" nil t host)))) (if (string-match tramp-postfix-ipv6-regexp host) (progn (setq host (replace-match "" nil t host)))) (if (and (equal tramp-syntax (quote ftp)) (null method) (null user) (member host (mapcar ... tramp-methods)) (not (tramp-completion-mode-p))) (progn (progn (edebug) (tramp-compat-user-error "Host name must not match method `%s'" host)))))) (if nodefault (vector method user host localname hop) (vector (tramp-find-method method user host) (tramp-find-user method user host) (tramp-find-host method user host) localname hop)))) (progn (let ((match (string-match (nth 0 tramp-file-name-structure) name))) (if match nil (tramp-compat-user-error "Not a Tramp file name: %s" name)) (let ((method (match-string (nth 1 tramp-file-name-structure) name)) (user (match-string (nth 2 tramp-file-name-structure) name)) (host (match-string (nth 3 tramp-file-name-structure) name)) (localname (match-string (nth 4 tramp-file-name-structure) name)) (hop (match-string (nth 5 tramp-file-name-structure) name))) (if host (progn (if (string-match tramp-prefix-ipv6-regexp host) (progn (setq host ...))) (if (string-match tramp-postfix-ipv6-regexp host) (progn (setq host ...))) (if (and (equal tramp-syntax ...) (null method) (null user) (member host ...) (not ...)) (progn (progn ... ...))))) (if nodefault (vector method user host localname hop) (vector (tramp-find-method method user host) (tramp-find-user method user host) (tramp-find-host method user host) localname hop))))) (unwind-protect (progn (let ((match (string-match (nth 0 tramp-file-name-structure) name))) (if match nil (tramp-compat-user-error "Not a Tramp file name: %s" name)) (let ((method (match-string (nth 1 tramp-file-name-structure) name)) (user (match-string (nth 2 tramp-file-name-structure) name)) (host (match-string (nth 3 tramp-file-name-structure) name)) (localname (match-string (nth 4 tramp-file-name-structure) name)) (hop (match-string (nth 5 tramp-file-name-structure) name))) (if host (progn (if (string-match tramp-prefix-ipv6-regexp host) (progn ...)) (if (string-match tramp-postfix-ipv6-regexp host) (progn ...)) (if (and ... ... ... ... ...) (progn ...)))) (if nodefault (vector method user host localname hop) (vector (tramp-find-method method user host) (tramp-find-user method user host) (tramp-find-host method user host) localname hop))))) (set-match-data save-match-data-internal (quote evaporate))) (let ((save-match-data-internal (match-data))) (unwind-protect (progn (let ((match (string-match (nth 0 tramp-file-name-structure) name))) (if match nil (tramp-compat-user-error "Not a Tramp file name: %s" name)) (let ((method (match-string ... name)) (user (match-string ... name)) (host (match-string ... name)) (localname (match-string ... name)) (hop (match-string ... name))) (if host (progn (if ... ...) (if ... ...) (if ... ...))) (if nodefault (vector method user host localname hop) (vector (tramp-find-method method user host) (tramp-find-user method user host) (tramp-find-host method user host) localname hop))))) (set-match-data save-match-data-internal (quote evaporate)))) tramp-dissect-file-name("/ssh:vagrant@192.168.10." t) tramp-find-foreign-file-name-handler("/ssh:vagrant@192.168.10.") tramp-file-name-handler(substitute-in-file-name "/ssh:vagrant@192.168.10.") substitute-in-file-name("/ssh:vagrant@192.168.10.") apply(substitute-in-file-name "/ssh:vagrant@192.168.10.") tramp-completion-run-real-handler(substitute-in-file-name ("/ssh:vagrant@192.168.10.")) tramp-completion-file-name-handler(substitute-in-file-name "/ssh:vagrant@192.168.10.") substitute-in-file-name("/ssh:vagrant@192.168.10.") completion--sifn-requote(27 "/ssh:vagrant@192.168.10.2:/") completion--twq-try("/ssh:vagrant@192.168.10.2:/" "/ssh:vagrant@192.168.10.2:/" "/ssh:vagrant@192.168.10.2:/" 0 substitute-in-file-name completion--sifn-requote) completion--file-name-table("/ssh:vagrant@192.168.10.2:/" file-exists-p nil) complete-with-action(nil completion--file-name-table "/ssh:vagrant@192.168.10.2:/" file-exists-p) #[257 "\303\302\x02\300\301$\207" ["/ssh:vagrant@192.168.10.2:/" file-exists-p nil complete-with-action] 6 "\n\n(fn TABLE)"](completion--file-name-table) funcall(#[257 "\303\302\x02\300\301$\207" ["/ssh:vagrant@192.168.10.2:/" file-exists-p nil complete-with-action] 6 "\n\n(fn TABLE)"] completion--file-name-table) (setq res (funcall fun (car (prog1 xs (setq xs (cdr xs)))))) (condition-case err (setq res (funcall fun (car (prog1 xs (setq xs (cdr xs)))))) (error (if firsterror nil (setq firsterror err)) nil)) (while (and (not res) xs) (condition-case err (setq res (funcall fun (car (prog1 xs (setq xs (cdr xs)))))) (error (if firsterror nil (setq firsterror err)) nil))) (let ((firsterror nil) res) (while (and (not res) xs) (condition-case err (setq res (funcall fun (car (prog1 xs (setq xs ...))))) (error (if firsterror nil (setq firsterror err)) nil))) (or res (if firsterror (signal (car firsterror) (cdr firsterror))))) completion--some(#[257 "\303\302\x02\300\301$\207" ["/ssh:vagrant@192.168.10.2:/" file-exists-p nil complete-with-action] 6 "\n\n(fn TABLE)"] (completion--embedded-envvar-table completion--file-name-table)) read-file-name-internal("/ssh:vagrant@192.168.10.2:/" file-exists-p nil) try-completion("/ssh:vagrant@192.168.10.2:/" read-file-name-internal file-exists-p) minibuffer--complete-and-exit(#[0 "\301\302\303D\304\302\305\301EDC\217\211\306>\203\x17\307 \202/\211\310=\203.\b\204&\307 \202/\311\312!\210\313\202/\313\207" [minibuffer-completion-confirm err funcall #[0 "\300\301\302\"\207" [completion--do-completion nil expect-exact] 3 "\n\n(fn)"] error #[257 "\300\207" [1] 2 "\n\n(fn IGNORED)"] (1 3) exit-minibuffer 7 minibuffer-message "Confirm" nil] 6 "\n\n(fn)"]) minibuffer-complete-and-exit() call-interactively(minibuffer-complete-and-exit nil nil) command-execute(minibuffer-complete-and-exit) read-from-minibuffer("Find file: " "/Applications/Emacs.app/Contents/Resources/lisp/net/" (keymap (keymap (32)) keymap (10 . minibuffer-complete-and-exit) (13 . minibuffer-complete-and-exit) keymap (menu-bar keymap (minibuf "Minibuf" keymap (tab menu-item "Complete" minibuffer-complete :help "Complete as far as possible") (space menu-item "Complete Word" minibuffer-complete-word :help "Complete at most one word") (63 menu-item "List Completions" minibuffer-completion-help :help "Display all possible completions") "Minibuf")) (27 keymap (118 . switch-to-completions)) (prior . switch-to-completions) (63 . minibuffer-completion-help) (32 . minibuffer-complete-word) (9 . minibuffer-complete) keymap (menu-bar keymap (minibuf "Minibuf" keymap (previous menu-item "Previous History Item" previous-history-element :help "Put previous minibuffer history element in the minibuffer") (next menu-item "Next History Item" next-history-element :help "Put next minibuffer history element in the minibuffer") (isearch-backward menu-item "Isearch History Backward" isearch-backward :help "Incrementally search minibuffer history backward") (isearch-forward menu-item "Isearch History Forward" isearch-forward :help "Incrementally search minibuffer history forward") (return menu-item "Enter" exit-minibuffer :key-sequence " " :help "Terminate input and exit minibuffer") (quit menu-item "Quit" abort-recursive-edit :help "Abort input and exit minibuffer") "Minibuf")) (10 . exit-minibuffer) (13 . exit-minibuffer) (7 . abort-recursive-edit) (C-tab . file-cache-minibuffer-complete) (9 . self-insert-command) (XF86Back . previous-history-element) (up . previous-history-element) (prior . previous-history-element) (XF86Forward . next-history-element) (down . next-history-element) (next . next-history-element) (27 keymap (114 . previous-matching-history-element) (115 . next-matching-history-element) (112 . previous-history-element) (110 . next-history-element))) nil file-name-history "/Applications/Emacs.app/Contents/Resources/lisp/net/" nil) completing-read-default("Find file: " read-file-name-internal file-exists-p confirm-after-completion "/Applications/Emacs.app/Contents/Resources/lisp/net/" file-name-history "/Applications/Emacs.app/Contents/Resources/lisp/net/" nil) completing-read("Find file: " read-file-name-internal file-exists-p confirm-after-completion "/Applications/Emacs.app/Contents/Resources/lisp/net/" file-name-history "/Applications/Emacs.app/Contents/Resources/lisp/net/") read-file-name-default("Find file: " nil "/Applications/Emacs.app/Contents/Resources/lisp/net/" confirm-after-completion nil nil) read-file-name("Find file: " nil "/Applications/Emacs.app/Contents/Resources/lisp/net/" confirm-after-completion) find-file-read-args("Find file: " confirm-after-completion) byte-code("\300\301\302 \"\207" [find-file-read-args "Find file: " confirm-nonexistent-file-or-buffer] 3) call-interactively(find-file nil nil) command-execute(find-file) -- Matt McClure http://matthewlmcclure.com http://www.mapmyfitness.com/profile/matthewlmcclure ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: TRAMP: Host name must not match method ... 2013-08-17 17:18 ` Matt McClure @ 2013-08-17 17:41 ` Matt McClure 2013-08-19 10:25 ` Michael Albinus 2013-08-19 12:07 ` Michael Albinus 1 sibling, 1 reply; 9+ messages in thread From: Matt McClure @ 2013-08-17 17:41 UTC (permalink / raw) To: Michael Albinus; +Cc: tramp-devel, emacs-devel I can work around the problem by commenting out the tramp-compat-user-error, FWIW. diff -u --label /Applications/Emacs.app/Contents/Resources/lisp/net/tramp.el.gz\~ --label /Applications/Emacs.app/Contents/Resources/lisp/net/tramp.el.gz /var/folders/_d/5p0jtv397qs73qr_frd6bw180000gn/T/jka-com16088D-O /var/folders/_d/5p0jtv397qs73qr_frd6bw180000gn/T/jka-com16088dSb --- /Applications/Emacs.app/Contents/Resources/lisp/net/tramp.el.gz~ +++ /Applications/Emacs.app/Contents/Resources/lisp/net/tramp.el.gz @@ -1283,11 +1283,12 @@ (setq host (replace-match "" nil t host))) (when (string-match tramp-postfix-ipv6-regexp host) (setq host (replace-match "" nil t host))) - (when (and (equal tramp-syntax 'ftp) (null method) (null user) - (member host (mapcar 'car tramp-methods)) - (not (tramp-completion-mode-p))) - (tramp-compat-user-error - "Host name must not match method `%s'" host))) + ;; (when (and (equal tramp-syntax 'ftp) (null method) (null user) + ;; (member host (mapcar 'car tramp-methods)) + ;; (not (tramp-completion-mode-p))) + ;; (tramp-compat-user-error + ;; "Host name must not match method `%s'" host))) + ) (if nodefault (vector method user host localname hop) (vector Diff finished. Sat Aug 17 13:39:30 2013 -- Matt McClure http://matthewlmcclure.com http://www.mapmyfitness.com/profile/matthewlmcclure ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: TRAMP: Host name must not match method ... 2013-08-17 17:41 ` Matt McClure @ 2013-08-19 10:25 ` Michael Albinus 0 siblings, 0 replies; 9+ messages in thread From: Michael Albinus @ 2013-08-19 10:25 UTC (permalink / raw) To: Matt McClure; +Cc: tramp-devel, emacs-devel Matt McClure <matthewlmcclure@gmail.com> writes: > I can work around the problem by commenting out the > tramp-compat-user-error, FWIW. For sure. But this error message was added by intention, see <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13900#15> for discussion. Best regards, Michael. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: TRAMP: Host name must not match method ... 2013-08-17 17:18 ` Matt McClure 2013-08-17 17:41 ` Matt McClure @ 2013-08-19 12:07 ` Michael Albinus 2013-08-20 2:38 ` Matt McClure 1 sibling, 1 reply; 9+ messages in thread From: Michael Albinus @ 2013-08-19 12:07 UTC (permalink / raw) To: Matt McClure; +Cc: tramp-devel, emacs-devel Matt McClure <matthewlmcclure@gmail.com> writes: Hi Matt, > Here's the backtrace the first time it stops: [...] > tramp-dissect-file-name("/ssh:" t) > tramp-find-foreign-file-name-handler("/ssh:") > tramp-file-name-handler(substitute-in-file-name "/ssh:") > substitute-in-file-name("/ssh:") > apply(substitute-in-file-name "/ssh:") > tramp-completion-run-real-handler(substitute-in-file-name ("/ssh:")) > tramp-completion-file-name-handler(substitute-in-file-name "/ssh:") > substitute-in-file-name("/ssh:") [...] > rfn-eshadow-update-overlay() Strange. The user error in `tramp-dissect-file-name' is raised only when `tramp-completion-mode-p' returns nil. That function checks (beside other things) the variable `non-essential', which is bound to t inside `rfn-eshadow-update-overlay'. So there shouldn't be any problem. Could you, please, check whether you might have shadow lisp files? Try "M-x list-load-path-shadows". In the debugger, you might also check the value of `non-essential', when you pass `rfn-eshadow-update-overlay' and the break point. > C-x C-f /ssh:vagrant@192.168.33.2:/ RET > > This time the backtrace looks different. I notice these two stack > frames that look suspicious: > > substitute-in-file-name("/ssh:vagrant@192.168.10.") > completion--sifn-requote(27 "/ssh:vagrant@192.168.10.2:/") Here I don't see exactly what happens; I'm not so familiar with the completion code in minibuffer.el. But maybe this is caused by the same reason as the first break, let's see. Best regards, Michael. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: TRAMP: Host name must not match method ... 2013-08-19 12:07 ` Michael Albinus @ 2013-08-20 2:38 ` Matt McClure 2013-08-20 10:06 ` Michael Albinus 0 siblings, 1 reply; 9+ messages in thread From: Matt McClure @ 2013-08-20 2:38 UTC (permalink / raw) To: Michael Albinus; +Cc: tramp-devel, emacs-devel On Mon, Aug 19, 2013 at 8:07 AM, Michael Albinus <michael.albinus@gmx.de> wrote: > Matt McClure <matthewlmcclure@gmail.com> writes: > >> Here's the backtrace the first time it stops: > > [...] > >> rfn-eshadow-update-overlay() > > Strange. The user error in `tramp-dissect-file-name' is raised only when > `tramp-completion-mode-p' returns nil. That function checks (beside > other things) the variable `non-essential', which is bound to t inside > `rfn-eshadow-update-overlay'. So there shouldn't be any problem. True. The first backtrace from my previous message is in a scenario where the error doesn't surface to the user. The second backtrace, which does not include `rfn-eshadow-update-overlay', is the failure case. > Could you, please, check whether you might have shadow lisp files? Try > "M-x list-load-path-shadows". No Emacs Lisp load-path shadowings were found > In the debugger, you might also check the value of `non-essential', when > you pass `rfn-eshadow-update-overlay' and the break point. At the breakpoint in the failure case, and actually in the success cases also: non-essential is a variable defined in `simple.el'. Its value is nil >> C-x C-f /ssh:vagrant@192.168.33.2:/ RET >> >> This time the backtrace looks different. I notice these two stack >> frames that look suspicious: >> >> substitute-in-file-name("/ssh:vagrant@192.168.10.") >> completion--sifn-requote(27 "/ssh:vagrant@192.168.10.2:/") > > Here I don't see exactly what happens; I'm not so familiar with the > completion code in minibuffer.el. But maybe this is caused by the same > reason as the first break, let's see. Comparing rfn-eshadow-update-overlay to completion--sifn-requote, I notice that the former wraps its call to substitute-in-file-name with condition-case, whereas the latter does not. I believe the user-error is signaled in both cases, but in the former it's handled by condition-case, whereas in the latter nothing handles it. I'm able to work around the problem with: diff -u --label /Applications/Emacs.app/Contents/Resources/lisp/minibuffer.el.gz\~ --label /Applications/Emacs.app/Contents/Resources/lisp/minibuffer.el.gz /var/folders/_d/5p0jtv397qs73qr_frd6bw180000gn/T/jka-com874eUK /var/folders/_d/5p0jtv397qs73qr_frd6bw180000gn/T/jka-com8744oW --- /Applications/Emacs.app/Contents/Resources/lisp/minibuffer.el.gz~ +++ /Applications/Emacs.app/Contents/Resources/lisp/minibuffer.el.gz @@ -2256,13 +2256,15 @@ ;; Second assumptions: If qpos is far from the end this can be a bit slow, ;; so we speed it up by doing a first loop that skips a word at a time. ;; This word-sized loop is careful not to cut in the middle of env-vars. - (while (let ((boundary (string-match "\\(\\$+{?\\)?\\w+\\W*\\'" qstr))) - (and boundary - (progn - (setq qprefix (substring qstr 0 boundary)) - (string-prefix-p uprefix - (substitute-in-file-name qprefix))))) - (setq qstr qprefix)) + (condition-case nil + (while (let ((boundary (string-match "\\(\\$+{?\\)?\\w+\\W*\\'" qstr))) + (and boundary + (progn + (setq qprefix (substring qstr 0 boundary)) + (string-prefix-p uprefix + (substitute-in-file-name qprefix))))) + (setq qstr qprefix)) + (error nil)) (let ((qpos (length qstr))) (while (and (> qpos 0) (string-prefix-p uprefix Diff finished. Mon Aug 19 22:29:17 2013 But it seems that there must be a copy of minibuffer.el compiled into the executable (?). Even though the completion--sifn-requote is already defined, before my copy becomes active, I have to explicitly (load-library "minibuffer"). -- Matt McClure http://matthewlmcclure.com http://www.mapmyfitness.com/profile/matthewlmcclure ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: TRAMP: Host name must not match method ... 2013-08-20 2:38 ` Matt McClure @ 2013-08-20 10:06 ` Michael Albinus 2013-08-27 20:01 ` Matt McClure 0 siblings, 1 reply; 9+ messages in thread From: Michael Albinus @ 2013-08-20 10:06 UTC (permalink / raw) To: Matt McClure; +Cc: tramp-devel, emacs-devel Matt McClure <matthewlmcclure@gmail.com> writes: Hi Matt, >> Strange. The user error in `tramp-dissect-file-name' is raised only when >> `tramp-completion-mode-p' returns nil. That function checks (beside >> other things) the variable `non-essential', which is bound to t inside >> `rfn-eshadow-update-overlay'. So there shouldn't be any problem. > > True. The first backtrace from my previous message is in a scenario > where the error doesn't surface to the user. The second backtrace, > which does not include `rfn-eshadow-update-overlay', is the failure > case. For the first backtrace, I could fix it (binding of `non-essential' was too late). The second problem you have shown is still not reproducible locally. Anyway, the patch in `completion--sifn-requote' below uses the same logic as in `rfn-eshadow-update-overlay', and should fix it for you as well. > Comparing rfn-eshadow-update-overlay to completion--sifn-requote, I > notice that the former wraps its call to substitute-in-file-name with > condition-case, whereas the latter does not. I believe the user-error > is signaled in both cases, but in the former it's handled by > condition-case, whereas in the latter nothing handles it. Right. Except that the second case does not happen to me. > But it seems that there must be a copy of minibuffer.el compiled into > the executable (?). Even though the completion--sifn-requote is > already defined, before my copy becomes active, I have to explicitly > (load-library "minibuffer"). Yes. Some of the most used lisp packages are dumped into the Emacs binary. You must recompile Emacs (or reload minibuffer.el, as you do). The following patch is submitted to Emacs trunk. Please check, whether it fixes the problem for you, especially in `completion--sifn-requote'. --8<---------------cut here---------------start------------->8--- === modified file 'lisp/ChangeLog' *** lisp/ChangeLog 2013-08-17 10:20:15 +0000 --- lisp/ChangeLog 2013-08-20 09:50:38 +0000 *************** *** 1,3 **** --- 1,10 ---- + 2013-08-20 Michael Albinus <michael.albinus@gmx.de> + + * minibuffer.el (completion--sifn-requote): Bind `non-essential'. + + * rfn-eshadow.el (rfn-eshadow-update-overlay): Move binding of + `non-essential' up. + 2013-08-17 Michael Albinus <michael.albinus@gmx.de> * net/tramp.el: === modified file 'lisp/minibuffer.el' *** lisp/minibuffer.el 2013-07-30 20:42:15 +0000 --- lisp/minibuffer.el 2013-08-20 09:29:27 +0000 *************** *** 2246,2252 **** ;; - Cygwin (substitute-in-file-name "C:\bin") => "/usr/bin" ;; (substitute-in-file-name "C:\") => "/" ;; (substitute-in-file-name "C:\bi") => "/bi" ! (let* ((ustr (substitute-in-file-name qstr)) (uprefix (substring ustr 0 upos)) qprefix) ;; Main assumption: nothing after qpos should affect the text before upos, --- 2246,2253 ---- ;; - Cygwin (substitute-in-file-name "C:\bin") => "/usr/bin" ;; (substitute-in-file-name "C:\") => "/" ;; (substitute-in-file-name "C:\bi") => "/bi" ! (let* ((non-essential t) ! (ustr (substitute-in-file-name qstr)) (uprefix (substring ustr 0 upos)) qprefix) ;; Main assumption: nothing after qpos should affect the text before upos, === modified file 'lisp/rfn-eshadow.el' *** lisp/rfn-eshadow.el 2013-01-01 09:11:05 +0000 --- lisp/rfn-eshadow.el 2013-08-20 08:57:50 +0000 *************** *** 176,186 **** `file-name-shadow-mode'; the minibuffer should have already been set up by `rfn-eshadow-setup-minibuffer'." (condition-case nil ! (let ((goal (substitute-in-file-name (minibuffer-contents))) ! (mid (overlay-end rfn-eshadow-overlay)) ! (start (minibuffer-prompt-end)) ! (end (point-max)) ! (non-essential t)) (unless ;; Catch the common case where the shadow does not need to move. (and mid --- 176,186 ---- `file-name-shadow-mode'; the minibuffer should have already been set up by `rfn-eshadow-setup-minibuffer'." (condition-case nil ! (let* ((non-essential t) ! (goal (substitute-in-file-name (minibuffer-contents))) ! (mid (overlay-end rfn-eshadow-overlay)) ! (start (minibuffer-prompt-end)) ! (end (point-max))) (unless ;; Catch the common case where the shadow does not need to move. (and mid --8<---------------cut here---------------end--------------->8--- Best regards, Michael. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: TRAMP: Host name must not match method ... 2013-08-20 10:06 ` Michael Albinus @ 2013-08-27 20:01 ` Matt McClure 0 siblings, 0 replies; 9+ messages in thread From: Matt McClure @ 2013-08-27 20:01 UTC (permalink / raw) To: Michael Albinus; +Cc: tramp-devel, emacs-devel [-- Attachment #1.1: Type: text/plain, Size: 5174 bytes --] Hi Michael, I see your changes in http://bzr.savannah.gnu.org/lh/emacs/trunk/revision/113958 And Emacs-2013-08-27-114019-universal-10.6.8.dmg from emacsformacosx.comworks for me. Thanks! Matt On Tue, Aug 20, 2013 at 6:06 AM, Michael Albinus <michael.albinus@gmx.de>wrote: > Matt McClure <matthewlmcclure@gmail.com> writes: > > Hi Matt, > > >> Strange. The user error in `tramp-dissect-file-name' is raised only when > >> `tramp-completion-mode-p' returns nil. That function checks (beside > >> other things) the variable `non-essential', which is bound to t inside > >> `rfn-eshadow-update-overlay'. So there shouldn't be any problem. > > > > True. The first backtrace from my previous message is in a scenario > > where the error doesn't surface to the user. The second backtrace, > > which does not include `rfn-eshadow-update-overlay', is the failure > > case. > > For the first backtrace, I could fix it (binding of `non-essential' was > too late). > > The second problem you have shown is still not reproducible > locally. Anyway, the patch in `completion--sifn-requote' below uses the > same logic as in `rfn-eshadow-update-overlay', and should fix it for you > as well. > > > Comparing rfn-eshadow-update-overlay to completion--sifn-requote, I > > notice that the former wraps its call to substitute-in-file-name with > > condition-case, whereas the latter does not. I believe the user-error > > is signaled in both cases, but in the former it's handled by > > condition-case, whereas in the latter nothing handles it. > > Right. Except that the second case does not happen to me. > > > But it seems that there must be a copy of minibuffer.el compiled into > > the executable (?). Even though the completion--sifn-requote is > > already defined, before my copy becomes active, I have to explicitly > > (load-library "minibuffer"). > > Yes. Some of the most used lisp packages are dumped into the Emacs > binary. You must recompile Emacs (or reload minibuffer.el, as you do). > > The following patch is submitted to Emacs trunk. Please check, whether > it fixes the problem for you, especially in `completion--sifn-requote'. > > --8<---------------cut here---------------start------------->8--- > === modified file 'lisp/ChangeLog' > *** lisp/ChangeLog 2013-08-17 10:20:15 +0000 > --- lisp/ChangeLog 2013-08-20 09:50:38 +0000 > *************** > *** 1,3 **** > --- 1,10 ---- > + 2013-08-20 Michael Albinus <michael.albinus@gmx.de> > + > + * minibuffer.el (completion--sifn-requote): Bind `non-essential'. > + > + * rfn-eshadow.el (rfn-eshadow-update-overlay): Move binding of > + `non-essential' up. > + > 2013-08-17 Michael Albinus <michael.albinus@gmx.de> > > * net/tramp.el: > > === modified file 'lisp/minibuffer.el' > *** lisp/minibuffer.el 2013-07-30 20:42:15 +0000 > --- lisp/minibuffer.el 2013-08-20 09:29:27 +0000 > *************** > *** 2246,2252 **** > ;; - Cygwin (substitute-in-file-name "C:\bin") => "/usr/bin" > ;; (substitute-in-file-name "C:\") => "/" > ;; (substitute-in-file-name "C:\bi") => "/bi" > ! (let* ((ustr (substitute-in-file-name qstr)) > (uprefix (substring ustr 0 upos)) > qprefix) > ;; Main assumption: nothing after qpos should affect the text before > upos, > --- 2246,2253 ---- > ;; - Cygwin (substitute-in-file-name "C:\bin") => "/usr/bin" > ;; (substitute-in-file-name "C:\") => "/" > ;; (substitute-in-file-name "C:\bi") => "/bi" > ! (let* ((non-essential t) > ! (ustr (substitute-in-file-name qstr)) > (uprefix (substring ustr 0 upos)) > qprefix) > ;; Main assumption: nothing after qpos should affect the text before > upos, > > === modified file 'lisp/rfn-eshadow.el' > *** lisp/rfn-eshadow.el 2013-01-01 09:11:05 +0000 > --- lisp/rfn-eshadow.el 2013-08-20 08:57:50 +0000 > *************** > *** 176,186 **** > `file-name-shadow-mode'; the minibuffer should have already > been set up by `rfn-eshadow-setup-minibuffer'." > (condition-case nil > ! (let ((goal (substitute-in-file-name (minibuffer-contents))) > ! (mid (overlay-end rfn-eshadow-overlay)) > ! (start (minibuffer-prompt-end)) > ! (end (point-max)) > ! (non-essential t)) > (unless > ;; Catch the common case where the shadow does not need to > move. > (and mid > --- 176,186 ---- > `file-name-shadow-mode'; the minibuffer should have already > been set up by `rfn-eshadow-setup-minibuffer'." > (condition-case nil > ! (let* ((non-essential t) > ! (goal (substitute-in-file-name (minibuffer-contents))) > ! (mid (overlay-end rfn-eshadow-overlay)) > ! (start (minibuffer-prompt-end)) > ! (end (point-max))) > (unless > ;; Catch the common case where the shadow does not need to > move. > (and mid > > --8<---------------cut here---------------end--------------->8--- > > Best regards, Michael. > -- Matt McClure http://matthewlmcclure.com http://www.mapmyfitness.com/profile/matthewlmcclure [-- Attachment #1.2: Type: text/html, Size: 6802 bytes --] [-- Attachment #2: Type: text/plain, Size: 144 bytes --] _______________________________________________ Tramp-devel mailing list Tramp-devel@gnu.org https://lists.gnu.org/mailman/listinfo/tramp-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-08-27 20:01 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-08-14 13:06 TRAMP: Host name must not match method Matt McClure 2013-08-16 13:15 ` Michael Albinus 2013-08-17 17:18 ` Matt McClure 2013-08-17 17:41 ` Matt McClure 2013-08-19 10:25 ` Michael Albinus 2013-08-19 12:07 ` Michael Albinus 2013-08-20 2:38 ` Matt McClure 2013-08-20 10:06 ` Michael Albinus 2013-08-27 20:01 ` Matt McClure
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.