unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#24889: 25.1; tramp-dissect-file-name signals a user-error for some invalid files
@ 2016-11-06 19:54 Alex
  2016-11-08 19:47 ` Michael Albinus
  0 siblings, 1 reply; 4+ messages in thread
From: Alex @ 2016-11-06 19:54 UTC (permalink / raw)
  To: 24889


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.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#24889: 25.1; tramp-dissect-file-name signals a user-error for some invalid files
  2016-11-06 19:54 bug#24889: 25.1; tramp-dissect-file-name signals a user-error for some invalid files Alex
@ 2016-11-08 19:47 ` Michael Albinus
  2016-11-08 20:18   ` Alex
  0 siblings, 1 reply; 4+ messages in thread
From: Michael Albinus @ 2016-11-08 19:47 UTC (permalink / raw)
  To: Alex; +Cc: 24889, Thierry Volpiatto

Alex <agrambot@gmail.com> writes:

Hi Alex,

> 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}":

Thanks for the report. I could reproduce it also with Emacs 24.5.

I've committed the following patch to the master branch, could you pls
check whether this fixes the problem for you?

--8<---------------cut here---------------start------------->8---
*** /home/albinus/src/emacs/lisp/net/tramp.el.~3424c27abb7c8ea64c32eaf54cf53fc58323e5ce~	2016-11-08 20:22:58.382424617 +0100
--- /home/albinus/src/emacs/lisp/net/tramp.el	2016-11-08 20:21:39.625098305 +0100
***************
*** 867,890 ****
  See `tramp-file-name-structure' for more explanations.")

  ;;;###autoload
! (defconst tramp-file-name-regexp
    (cond ((equal tramp-syntax 'ftp) tramp-file-name-regexp-unified)
  	((equal tramp-syntax 'sep) tramp-file-name-regexp-separate)
  	(t (error "Wrong `tramp-syntax' defined")))
    "Regular expression matching file names handled by Tramp.
! This regexp should match Tramp file names but no other file names.
! When tramp.el is loaded, this regular expression is prepended to
! `file-name-handler-alist', and that is searched sequentially.  Thus,
! if the Tramp entry appears rather early in the `file-name-handler-alist'
! and is a bit too general, then some files might be considered Tramp
! files which are not really Tramp files.
!
! Please note that the entry in `file-name-handler-alist' is made when
! this file \(tramp.el) is loaded.  This means that this variable must be set
! before loading tramp.el.  Alternatively, `file-name-handler-alist' can be
! updated after changing this variable.
!
! Also see `tramp-file-name-structure'.")

  ;;;###autoload
  (defconst tramp-completion-file-name-regexp-unified
--- 867,880 ----
  See `tramp-file-name-structure' for more explanations.")

  ;;;###autoload
! (defvar tramp-file-name-regexp
    (cond ((equal tramp-syntax 'ftp) tramp-file-name-regexp-unified)
  	((equal tramp-syntax 'sep) tramp-file-name-regexp-separate)
  	(t (error "Wrong `tramp-syntax' defined")))
    "Regular expression matching file names handled by Tramp.
! This regexp should match Tramp file names but no other file
! names.  When calling `tramp-register-file-name-handlers', the
! initial value is overwritten by the car of `tramp-file-name-structure'.")

  ;;;###autoload
  (defconst tramp-completion-file-name-regexp-unified
***************
*** 1055,1063 ****
       . tramp-completion-handle-file-name-all-completions)
      (file-name-completion . tramp-completion-handle-file-name-completion))
    "Alist of completion handler functions.
! Used for file names matching `tramp-file-name-regexp'. Operations
! not mentioned here will be handled by Tramp's file name handler
! functions, or the normal Emacs functions.")

  ;; Handlers for foreign methods, like FTP or SMB, shall be plugged here.
  ;;;###tramp-autoload
--- 1045,1053 ----
       . tramp-completion-handle-file-name-all-completions)
      (file-name-completion . tramp-completion-handle-file-name-completion))
    "Alist of completion handler functions.
! Used for file names matching `tramp-completion-file-name-regexp'.
! Operations not mentioned here will be handled by Tramp's file
! name handler functions, or the normal Emacs functions.")

  ;; Handlers for foreign methods, like FTP or SMB, shall be plugged here.
  ;;;###tramp-autoload
***************
*** 2192,2197 ****
--- 2182,2191 ----
  		 tramp-autoload-file-name-handler))
      (let ((a1 (rassq fnh file-name-handler-alist)))
        (setq file-name-handler-alist (delq a1 file-name-handler-alist))))
+   ;; The initial value of `tramp-file-name-regexp' is too simple
+   ;; minded, but we cannot give it the real value in the autoload
+   ;; pattern.  See Bug#24889.
+   (setq tramp-file-name-regexp (car tramp-file-name-structure))
    ;; Add the handlers.
    (add-to-list 'file-name-handler-alist
  	       (cons tramp-file-name-regexp 'tramp-file-name-handler))
--8<---------------cut here---------------end--------------->8---

Best regards, Michael.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#24889: 25.1; tramp-dissect-file-name signals a user-error for some invalid files
  2016-11-08 19:47 ` Michael Albinus
@ 2016-11-08 20:18   ` Alex
  2016-11-08 20:22     ` Michael Albinus
  0 siblings, 1 reply; 4+ messages in thread
From: Alex @ 2016-11-08 20:18 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 24889, Thierry Volpiatto

Michael Albinus <michael.albinus@gmx.de> writes:

> Alex <agrambot@gmail.com> writes:
>
> Hi Alex,
>
>> 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}":
>
> Thanks for the report. I could reproduce it also with Emacs 24.5.
>
> I've committed the following patch to the master branch, could you pls
> check whether this fixes the problem for you?

With the latest master it seems to have fixed the problem, thanks.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#24889: 25.1; tramp-dissect-file-name signals a user-error for some invalid files
  2016-11-08 20:18   ` Alex
@ 2016-11-08 20:22     ` Michael Albinus
  0 siblings, 0 replies; 4+ messages in thread
From: Michael Albinus @ 2016-11-08 20:22 UTC (permalink / raw)
  To: Alex; +Cc: 24889-done, Thierry Volpiatto

Version: 26.1

Alex <agrambot@gmail.com> writes:

Hi Alex,

>> I've committed the following patch to the master branch, could you pls
>> check whether this fixes the problem for you?
>
> With the latest master it seems to have fixed the problem, thanks.

Thanks for checking. I'm closing the bug.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-11-08 20:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-06 19:54 bug#24889: 25.1; tramp-dissect-file-name signals a user-error for some invalid files Alex
2016-11-08 19:47 ` Michael Albinus
2016-11-08 20:18   ` Alex
2016-11-08 20:22     ` Michael Albinus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).