changeset 77014:7f75e6af1a34

(ffap-file-at-point): Lower the priority of the ffap-ftp-sans-slash-regexp check.
author Glenn Morris <rgm@gnu.org>
date Sat, 07 Apr 2007 02:58:53 +0000
parents fc6ffa9be4f6
children 7ce4823434db
files lisp/ffap.el
diffstat 1 files changed, 11 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ffap.el	Sat Apr 07 02:58:33 2007 +0000
+++ b/lisp/ffap.el	Sat Apr 07 02:58:53 2007 +0000
@@ -1147,7 +1147,8 @@
 		(error nil))
 	      string))
 	 (abs (file-name-absolute-p name))
-	 (default-directory default-directory))
+	 (default-directory default-directory)
+         (oname name))
     (unwind-protect
 	(cond
 	 ;; Immediate rejects (/ and // and /* are too common in C/C++):
@@ -1164,13 +1165,7 @@
 	       (not abs) (string-match ffap-shell-prompt-regexp name)
                (ffap-file-exists-string (substring name (match-end 0)))))
 	 ;; Accept remote names without actual checking (too slow):
-	 ((if abs
-	      (ffap-file-remote-p name)
-	    ;; Try adding a leading "/" (common omission in ftp file names):
-	    (and
-	     ffap-ftp-sans-slash-regexp
-	     (string-match ffap-ftp-sans-slash-regexp name)
-	     (ffap-file-remote-p (concat "/" name)))))
+	 ((and abs (ffap-file-remote-p name)))
 	 ;; Ok, not remote, try the existence test even if it is absolute:
 	 ((and abs (ffap-file-exists-string name)))
 	 ;; If it contains a colon, get rid of it (and return if exists)
@@ -1193,6 +1188,14 @@
 				  (ffap-file-remote-p try)
 				  (ffap-file-exists-string try))))))
 	    try))
+         ;; Try adding a leading "/" (common omission in ftp file names).
+         ;; Note that this uses oname, which still has any colon part.
+         ;; This should have a lower priority than the alist stuff,
+         ;; else it matches things like "ffap.el:1234:56:Warning".
+         ((and (not abs)
+               ffap-ftp-sans-slash-regexp
+               (string-match ffap-ftp-sans-slash-regexp oname)
+               (ffap-file-remote-p (concat "/" oname))))
 	 ;; Alist failed?  Try to guess an active remote connection
 	 ;; from buffer variables, and try once more, both as an
 	 ;; absolute and relative file name on that remote host.