summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2003-05-19 14:47:46 +0000
committerRichard M. Stallman <rms@gnu.org>2003-05-19 14:47:46 +0000
commitcb4f3fc8a86eec1ea0fef06963b71c9cbe43fdbb (patch)
tree74076eece58e7af86d86833c43c969e3da214c33 /lisp/emacs-lisp
parentfbf2dd6136e97f2d933753689609568c46ef005f (diff)
downloademacs-cb4f3fc8a86eec1ea0fef06963b71c9cbe43fdbb.tar.gz
emacs-cb4f3fc8a86eec1ea0fef06963b71c9cbe43fdbb.tar.bz2
emacs-cb4f3fc8a86eec1ea0fef06963b71c9cbe43fdbb.zip
(find-function-on-key): Move the call to find-function-other-window
outside the save-excursion.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/find-func.el41
1 files changed, 21 insertions, 20 deletions
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index 74afa4a4a64..c4ae7f12b38 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -352,26 +352,27 @@ See `find-variable' for more details."
"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 ()