# HG changeset patch # User Gerd Moellmann # Date 952346810 0 # Node ID b8291d86b5fd99203b5577547210638366877f23 # Parent 9c8bcd7e4a4fc28f2f8436578ae74c44c52b9575 (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. diff -r 9c8bcd7e4a4f -r b8291d86b5fd lisp/bookmark.el --- 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