X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/dde4a5bbcae6f6a83605d4c6009cad9505f09d04..8248b7cace199410e36858d26436266b2bbd59a5:/lisp/finder.el diff --git a/lisp/finder.el b/lisp/finder.el index 40629cab6a..737bb676a1 100644 --- a/lisp/finder.el +++ b/lisp/finder.el @@ -1,6 +1,7 @@ ;;; finder.el --- topic & keyword-based code finder -;; Copyright (C) 1992, 1997, 1998, 1999, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1992, 1997, 1998, 1999, 2001, 2002, 2003, +;; 2004, 2005 Free Software Foundation, Inc. ;; Author: Eric S. Raymond ;; Created: 16 Jun 1992 @@ -21,8 +22,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -95,17 +96,16 @@ (wp . "word processing") )) -(defvar finder-mode-map nil) -(or finder-mode-map - (let ((map (make-sparse-keymap))) - (define-key map " " 'finder-select) - (define-key map "f" 'finder-select) - (define-key map [mouse-2] 'finder-mouse-select) - (define-key map "\C-m" 'finder-select) - (define-key map "?" 'finder-summary) - (define-key map "q" 'finder-exit) - (define-key map "d" 'finder-list-keywords) - (setq finder-mode-map map))) +(defvar finder-mode-map + (let ((map (make-sparse-keymap))) + (define-key map " " 'finder-select) + (define-key map "f" 'finder-select) + (define-key map [mouse-2] 'finder-mouse-select) + (define-key map "\C-m" 'finder-select) + (define-key map "?" 'finder-summary) + (define-key map "q" 'finder-exit) + (define-key map "d" 'finder-list-keywords) + map)) ;;; Code for regenerating the keyword list. @@ -183,7 +183,7 @@ no arguments compiles from `load-path'." ;;; End: ;;; " (file-name-nondirectory generated-finder-keywords-file) " ends here\n") (kill-buffer "*finder-scratch*") - (eval-current-buffer) ;; So we get the new keyword list immediately + (eval-buffer) ;; So we get the new keyword list immediately (basic-save-buffer)))) (defun finder-compile-keywords-make-dist () @@ -302,11 +302,13 @@ FILE should be in a form suitable for passing to `locate-library'." (finder-summary))) (defun finder-current-item () - (if (and finder-headmark (< (point) finder-headmark)) - (error "No keyword or filename on this line") - (save-excursion - (beginning-of-line) - (current-word)))) + (let ((key (save-excursion + (beginning-of-line) + (current-word)))) + (if (or (and finder-headmark (< (point) finder-headmark)) + (= (length key) 0)) + (error "No keyword or filename on this line") + key))) (defun finder-select () "Select item on current line in a finder buffer." @@ -336,13 +338,13 @@ FILE should be in a form suitable for passing to `locate-library'." \\[finder-select] more help for the item on the current line \\[finder-exit] exit Finder mode and kill the Finder buffer." (interactive) + (kill-all-local-variables) (use-local-map finder-mode-map) (set-syntax-table emacs-lisp-mode-syntax-table) (setq mode-name "Finder") (setq major-mode 'finder-mode) - (make-local-variable 'finder-headmark) - (setq finder-headmark nil) - (run-hooks 'finder-mode-hook)) + (set (make-local-variable 'finder-headmark) nil) + (run-mode-hooks 'finder-mode-hook)) (defun finder-summary () "Summarize basic Finder commands."