diff lisp/emacs-lisp/find-func.el @ 51097:37a69a2f1992

(find-function-on-key): Move the call to find-function-other-window outside the save-excursion.
author Richard M. Stallman <rms@gnu.org>
date Mon, 19 May 2003 14:47:46 +0000
parents 0d8b17d428b5
children 695cf19ef79e
line wrap: on
line diff
--- a/lisp/emacs-lisp/find-func.el	Mon May 19 14:46:49 2003 +0000
+++ b/lisp/emacs-lisp/find-func.el	Mon May 19 14:47:46 2003 +0000
@@ -352,26 +352,27 @@
   "Find the function that KEY invokes.  KEY is a string.
 Point is saved if FUNCTION is in the current buffer."
   (interactive "kFind function on key: ")
-  (save-excursion
-    (let* ((event (and (eventp key) (aref key 0))) ; Null event OK below.
-	   (start (event-start event))
-	   (modifiers (event-modifiers event))
-	   (window (and (or (memq 'click modifiers) (memq 'down modifiers)
-			    (memq 'drag modifiers))
-			(posn-window start))))
-      ;; For a mouse button event, go to the button it applies to
-      ;; to get the right key bindings.  And go to the right place
-      ;; in case the keymap depends on where you clicked.
-      (when (windowp window)
-	(set-buffer (window-buffer window))
-	(goto-char (posn-point start)))
-      (let ((defn (key-binding key))
-	    (key-desc (key-description key)))
-	(if (or (null defn) (integerp defn))
-	    (message "%s is unbound" key-desc)
-	  (if (consp defn)
-	      (message "%s runs %s" key-desc (prin1-to-string defn))
-	    (find-function-other-window defn)))))))
+  (let (defn)
+    (save-excursion
+      (let* ((event (and (eventp key) (aref key 0))) ; Null event OK below.
+	     (start (event-start event))
+	     (modifiers (event-modifiers event))
+	     (window (and (or (memq 'click modifiers) (memq 'down modifiers)
+			      (memq 'drag modifiers))
+			  (posn-window start))))
+	;; For a mouse button event, go to the button it applies to
+	;; to get the right key bindings.  And go to the right place
+	;; in case the keymap depends on where you clicked.
+	(when (windowp window)
+	  (set-buffer (window-buffer window))
+	  (goto-char (posn-point start)))
+	(setq defn (key-binding key))))
+    (let ((key-desc (key-description key)))
+      (if (or (null defn) (integerp defn))
+	  (message "%s is unbound" key-desc)
+	(if (consp defn)
+	    (message "%s runs %s" key-desc (prin1-to-string defn))
+	  (find-function-other-window defn))))))
 
 ;;;###autoload
 (defun find-function-at-point ()