(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 ""
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))
"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))
(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)))))))
\f
;;; Converting process modes to use comint mode
;;; ===========================================================================