# HG changeset patch # User Glenn Morris # Date 1175914733 0 # Node ID 7f75e6af1a34752067f0762f9d5dbf43b7dede7a # Parent fc6ffa9be4f6ca42096c1fb126680b608ade59dd (ffap-file-at-point): Lower the priority of the ffap-ftp-sans-slash-regexp check. diff -r fc6ffa9be4f6 -r 7f75e6af1a34 lisp/ffap.el --- 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.