From: Stefan Monnier Date: Sun, 30 Aug 2009 05:10:22 +0000 (+0000) Subject: (comint-insert-input): Be careful to only set point if we X-Git-Tag: emacs-pretest-23.1.90~1586 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0aeb71a7e277bcf766f1c45bb0d26d6115482d9d;p=emacs.git (comint-insert-input): Be careful to only set point if we don't delegate to some other command. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c67c63953f5..8bfd1dfa019 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2009-08-30 Stefan Monnier + * comint.el (comint-insert-input): Be careful to only set point if we + don't delegate to some other command. + * proced.el (proced-signal-list): Make it an alist. (proced-grammar-alist): Capitalize names. (proced-send-signal): Use a non-hidden buffer (since it's displayed). diff --git a/lisp/comint.el b/lisp/comint.el index 4fa9f7c3ced..69fd32d9b3b 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -816,7 +816,9 @@ buffer. The hook `comint-exec-hook' is run after each exec." If there is no previous input at point, run the command specified by the global keymap (usually `mouse-yank-at-click')." (interactive "e") - (mouse-set-point event) + ;; Don't set the mouse here, since it may otherwise change the behavior + ;; of the command on which we fallback if there's no field at point. + ;; (mouse-set-point event) (let ((pos (posn-point (event-end event))) field input) (with-selected-window (posn-window (event-end event)) @@ -833,15 +835,16 @@ by the global keymap (usually `mouse-yank-at-click')." (fun (and last-key (lookup-key global-map (vector last-key))))) (and fun (not (eq fun 'comint-insert-input)) (call-interactively fun))) - ;; Otherwise, insert the previous input. - (goto-char (point-max)) - ;; First delete any old unsent input at the end - (delete-region - (or (marker-position comint-accum-marker) - (process-mark (get-buffer-process (current-buffer)))) - (point)) - ;; Insert the input at point - (insert input)))) + (with-selected-window (posn-window (event-end event)) + ;; Otherwise, insert the previous input. + (goto-char (point-max)) + ;; First delete any old unsent input at the end + (delete-region + (or (marker-position comint-accum-marker) + (process-mark (get-buffer-process (current-buffer)))) + (point)) + ;; Insert the input at point + (insert input))))) ;; Input history processing in a buffer ;; ===========================================================================