Subject: Re: bug#11808: IDO fails with tramp /ftp:

From: Vitalie Spinu <[email-masked]>
Date: Thu, 28 Jun 2012 18:01:32 +0200

I cannot apply to my local emacs git repo 

   $ patch --verbose -p5 < patch
   Hmm...  Looks like a new-style context diff to me...
   The text leading up to this was:
   --------------------------
   |*** /usr/local/src/emacs/lisp/net/ange-ftp.el.~108784~   2012-06-28 16:41:24.871729482 +0200
   |--- /usr/local/src/emacs/lisp/net/ange-ftp.el          2012-06-28 16:40:38.101623909 +0200
   --------------------------
   Patching file lisp/net/ange-ftp.el using Plan A...
   Hunk #1 FAILED at 3969.
   1 out of 1 hunk FAILED -- saving rejects to file lisp/net/ange-ftp.el.rej
   done

??

Vitalie.
 
  >> Michael Albinus <[email-masked]>
  >> on Thu, 28 Jun 2012 16:46:51 +0200 wrote:

  > Vitalie Spinu <[email-masked]> writes:

  >> Hi, 

  > Hi,

  >> How to reproduce:
  >> 
  >> M-x ido-mode
  >> 
  >> C-x f /ftp:[email-masked]:
  >> 
  >> This doesn't happen with emacs 23. It also works fine without IDO on
  >> emacs 24.
  >> 
  >> Any ideas?

  > Does the following patch helps?

  > *** /usr/local/src/emacs/lisp/net/ange-ftp.el.~108784~   2012-06-28 16:41:24.871729482 +0200
  > --- /usr/local/src/emacs/lisp/net/ange-ftp.el          2012-06-28 16:40:38.101623909 +0200
  > ***************
  > *** 3969,3978 ****
  >        (string-match "\\`[a-zA-Z]:[/\\]\\'" dir))
  >         (string-equal "/" dir)))

  >   (defun ange-ftp-file-name-all-completions (file dir)
  >     (let ((ange-ftp-this-dir (expand-file-name dir)))
  >       (if (ange-ftp-ftp-name ange-ftp-this-dir)
  > !     (progn
  >         (ange-ftp-barf-if-not-directory ange-ftp-this-dir)
  >           (setq ange-ftp-this-dir
  >                 (ange-ftp-real-file-name-as-directory ange-ftp-this-dir))
  > --- 3969,3983 ----
  >        (string-match "\\`[a-zA-Z]:[/\\]\\'" dir))
  >         (string-equal "/" dir)))

  > + (defmacro ange-ftp-ignore-errors-if-non-essential (&rest body)
  > +   `(if non-essential
  > +        (ignore-errors ,@body)
  > +      (progn ,@body)))
  > + 
  >   (defun ange-ftp-file-name-all-completions (file dir)
  >     (let ((ange-ftp-this-dir (expand-file-name dir)))
  >       (if (ange-ftp-ftp-name ange-ftp-this-dir)
  > !     (ange-ftp-ignore-errors-if-non-essential
  >         (ange-ftp-barf-if-not-directory ange-ftp-this-dir)
  >           (setq ange-ftp-this-dir
  >                 (ange-ftp-real-file-name-as-directory ange-ftp-this-dir))

  >> Vitalie.

  > Best regards, Michael.