Mercurial > emacs
changeset 28013:b8291d86b5fd
(bookmark-file-or-variation-thereof): New func, for
code abstracted out of `bookmark-jump-noselect'. Now tries info
extensions as well as compression extensions.
(bookmark-jump-noselect): Use above new func.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Mon, 06 Mar 2000 12:46:50 +0000 |
parents | 9c8bcd7e4a4f |
children | 19422c062ade |
files | lisp/bookmark.el |
diffstat | 1 files changed, 17 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/bookmark.el Mon Mar 06 12:41:53 2000 +0000 +++ b/lisp/bookmark.el Mon Mar 06 12:46:50 2000 +0000 @@ -1077,6 +1077,22 @@ (bookmark-show-annotation bookmark))))) +(defun bookmark-file-or-variation-thereof (file) + "Return FILE (a string) if it exists in any reasonable variation, else nil. +Reasonable variations are FILE.gz, FILE.Z, FILE.info, FILE.info.gz, etc." + (cond + ((file-exists-p file) file) + ((file-exists-p (concat file ".Z")) (concat file ".Z")) + ((file-exists-p (concat file ".gz")) (concat file ".gz")) + ((file-exists-p (concat file ".z")) (concat file ".z")) + ((file-exists-p (concat file ".info")) (concat file ".info")) + ((file-exists-p (concat file ".info.gz")) (concat file ".info.gz")) + ((file-exists-p (concat file ".info.Z")) (concat file ".info.Z")) + ((file-exists-p (concat file ".info.z")) (concat file ".info.z")) + ((vc-backend file) file) ; maybe VC has it? + (t nil))) + + (defun bookmark-jump-noselect (str) ;; a leetle helper for bookmark-jump :-) ;; returns (BUFFER . POINT) @@ -1088,23 +1104,7 @@ (info-node (bookmark-get-info-node str)) (orig-file file) ) - (if (or - (file-exists-p file) - ;; Else try some common compression extensions, which Emacs - ;; usually handles right. I hope. - (setq file - (or - (let ((altname (concat file ".Z"))) - (and (file-exists-p altname) - altname)) - (let ((altname (concat file ".gz"))) - (and (file-exists-p altname) - altname)) - (let ((altname (concat file ".z"))) - (and (file-exists-p altname) - altname)) - ;; Check VC incarnations, preparatory to checkout - (if (vc-backend file) file nil)))) + (if (setq file (bookmark-file-or-variation-thereof file)) (save-excursion (save-window-excursion (if info-node