Mercurial > emacs
changeset 5424:51eecae04837
(comint-last-output-start): Add defvar.
(comint-dynamic-list-completions): Use read-key-sequence.
Special handling for mouse-choose-completion.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 03 Jan 1994 10:46:53 +0000 |
parents | 8213b45445a6 |
children | 3dd5ff54e1cd |
files | lisp/comint.el |
diffstat | 1 files changed, 22 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/comint.el Mon Jan 03 10:43:37 1994 +0000 +++ b/lisp/comint.el Mon Jan 03 10:46:53 1994 +0000 @@ -302,6 +302,7 @@ (defvar comint-input-ring nil) (defvar comint-last-input-start) (defvar comint-last-input-end) +(defvar comint-last-output-start) (defvar comint-input-ring-index nil "Index of last matched history element.") (defvar comint-matching-input-from-input-string "" @@ -1838,6 +1839,8 @@ dependent on the value of `comint-completion-autolist'." (interactive) (let* ((completion-ignore-case nil) + ;; For shell completion, treat all files as equally interesting. + (completion-ignored-extensions nil) (filename (comint-match-partial-filename)) (pathdir (file-name-directory filename)) (pathnondir (file-name-nondirectory filename)) @@ -1990,6 +1993,8 @@ "List in help buffer possible completions of the filename at point." (interactive) (let* ((completion-ignore-case nil) + ;; For shell completion, treat all files as equally interesting. + (completion-ignored-extensions nil) (filename (comint-match-partial-filename)) (pathdir (file-name-directory filename)) (pathnondir (file-name-nondirectory filename)) @@ -2007,12 +2012,24 @@ (let ((conf (current-window-configuration))) (with-output-to-temp-buffer " *Completions*" (display-completion-list (sort completions 'string-lessp))) - (sit-for 0) (message "Hit space to flush") - (let ((ch (read-event))) - (if (eq ch ?\ ) - (set-window-configuration conf) - (setq unread-command-events (list ch)))))) + (let (key first) + (if (save-excursion + (set-buffer (get-buffer " *Completions*")) + (setq key (read-key-sequence nil) + first (aref key 0)) + (and (consp first) + (eq (window-buffer (posn-window (event-start first))) + (get-buffer " *Completions*")) + (eq (key-binding key) 'mouse-choose-completion))) + ;; If the user does mouse-choose-completion with the mouse, + ;; execute the command, then delete the completion window. + (progn + (mouse-choose-completion first) + (set-window-configuration conf)) + (if (eq first ?\ ) + (set-window-configuration conf) + (setq unread-command-events (append key nil))))))) ;;; Converting process modes to use comint mode ;;; ===========================================================================