Subject: 25.1; tramp-dissect-file-name signals a user-error for some invalid files

From: Alex <[email-masked]>
Date: Sun, 06 Nov 2016 13:54:30 -0600

This user-error affects commands such as file-remote-p and ffap. I
believe that these should just return nil or no valid file instead of
signalling an error.

Backtrace of (file-remote-p "/uref{http://test.com}":

Debugger entered--Lisp error: (user-error "Not a Tramp file name: \"/uref{http://www.doc.ic.ac.uk/lab/cplus/c++.rules/}\"")
  signal(user-error ("Not a Tramp file name: \"/uref{http://www.doc.ic.ac.uk/lab/cplus/c++.rules/}\""))
  tramp-error(nil user-error "Not a Tramp file name: \"%s\"" "/uref{http://www.doc.ic.ac.uk/lab/cplus/c++.rules/}")
  apply(tramp-error nil user-error "Not a Tramp file name: \"%s\"" "/uref{http://www.doc.ic.ac.uk/lab/cplus/c++.rules/}")
  tramp-dissect-file-name("/uref{http://www.doc.ic.ac.uk/lab/cplus/c++.rules/}" t)
  tramp-find-foreign-file-name-handler("/uref{http://www.doc.ic.ac.uk/lab/cplus/c++.rules/}")
  tramp-file-name-handler(file-remote-p "/uref{http://www.doc.ic.ac.uk/lab/cplus/c++.rules/}" nil nil)
  file-remote-p("/uref{http://www.doc.ic.ac.uk/lab/cplus/c++.rules/}")

Note that when the point is in @uref in the following:

  @uref{http://test.com}

then in Emacs 25.1+ ffap will signal the user-error as well.