Mercurial > emacs
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.