Subject: bug#23006: 25.0.92; Loading Tramp breaks pcomplete in eshell-mode

From: Michael Albinus <[email-masked]>
Date: Mon, 14 Mar 2016 08:34:00 +0100

Stefan Monnier <[email-masked]> writes:

>> As mentioned in a recent discussion:
>> 1. M-x eshell
>> 2. type 'cd /'
>> 3. M-: (require 'tramp) ;; New step!
>> 4. M-x pcomplete
>
>> I'm getting the error 'tramp-file-name-handler: Host name must not match
>> method "adb"'.
>
> I can reproduce it this time (also in 24.5), yes, thank you.
> But I can't get a backtrace.  Even debug-on-signal doesn't give me
> one :-(

Set a breakpoint in `tramp-check-proper-method-and-host'. Then you see

  (if (edebug-after (edebug-before 32) 57 (and (edebug-after (edebug-before 33) 35 (equal (edebug-after 0 34 tramp-syntax) (quote ftp))) (ede$
  (let ((method (edebug-after (edebug-before 1) 3 (tramp-file-name-method (edebug-after 0 2 vec)))) (user (edebug-after (edebug-before 4) 6 ($
  tramp-check-proper-method-and-host([#("scp" 0 3 (tramp-default t)) nil "davs" "" nil])
  tramp-maybe-open-connection([#("scp" 0 3 (tramp-default t)) nil "davs" "" nil])
  tramp-send-command([#("scp" 0 3 (tramp-default t)) nil "davs" "" nil] "cd ~ && pwd")
  tramp-sh-handle-expand-file-name("/davs:" nil)
  apply(tramp-sh-handle-expand-file-name ("/davs:" nil))
  tramp-sh-file-name-handler(expand-file-name "/davs:" nil)
  apply(tramp-sh-file-name-handler expand-file-name ("/davs:" nil))
  tramp-file-name-handler(expand-file-name "/davs:" nil)
  expand-file-name("/davs:" nil)
  apply(expand-file-name ("/davs:" nil))
  tramp-completion-run-real-handler(expand-file-name ("/davs:" nil))
  tramp-completion-file-name-handler(expand-file-name "/davs:" nil)
  file-name-all-completions("" "/davs:")
  completion-file-name-table("/davs:" #[257 "\302\203\n^@\302^A!\205^\^@\301\203^T^@\301^A!\205^\^@\300?\206^\^@\300^A!\207" [file-executable$
  comint-completion-file-name-table("/davs:" #[257 "\302\203\n^@\302^A!\205^\^@\301\203^T^@\301^A!\205^\^@\300?\206^\^@\300^A!\207" [file-exe$
  complete-with-action(t comint-completion-file-name-table "/davs:" #[257 "\302\203\n^@\302^A!\205^\^@\301\203^T^@\301^A!\205^\^@\300?\206^\^$
  completion-table-with-predicate(comint-completion-file-name-table #[257 "\302\203\n^@\302^A!\205^\^@\301\203^T^@\301^A!\205^\^@\300?\206^\^$
  #[771 "\211\305=\203^W^@      \203^W^@\305\306\307B\310^E^E^E#ABB\207\311\n^[^\\312\313\300\314^F^F^F^F^F^F&^F*\207" [#[257 "\302\203\n^@\3$
  complete-with-action(t #[771 "\211\305=\203^W^@       \203^W^@\305\306\307B\310^E^E^E#ABB\207\311\n^[^\\312\313\300\314^F^F^F^F^F^F&^F*\207$
  #[771 "\302^CG\303    ^F^F\"\203)^@^D\304\305\224O^BB\262^B\306\307\310^F^G\"!^BB\262^B^D\305\225\302O\262^E\202^C^@^A\203:^@^B\311=\204O^@$
  all-completions("/davs:" #[771 "\302^CG\303   ^F^F\"\203)^@^D\304\305\224O^BB\262^B\306\307\310^F^G\"!^BB\262^B^D\305\225\302O\262^E\202^C^$
  pcomplete-stub("/davs:" #[771 "\302^CG\303    ^F^F\"\203)^@^D\304\305\224O^BB\262^B\306\307\310^F^G\"!^BB\262^B^D\305\225\302O\262^E\202^C^$
  pcomplete-do-complete("/davs:" #[771 "\302^CG\303     ^F^F\"\203)^@^D\304\305\224O^BB\262^B\306\307\310^F^G\"!^BB\262^B^D\305\225\302O\262^$
  pcomplete(1)
  funcall-interactively(pcomplete 1)
  call-interactively(pcomplete record nil)
  command-execute(pcomplete record)
  execute-extended-command(nil "pcomplete" nil)
  funcall-interactively(execute-extended-command nil "pcomplete" nil)
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)

> Hard to know where to fix the problem, because it surely needs to be
> somewhere along that backtrace.
>
>         Stefan

Best regards, Michael.