Mercurial > emacs
diff lisp/comint.el @ 105601:68686d39c93a
Replace completion-base-size by completion-base-position to fix bugs
such as (bug#4699).
* simple.el (completion-base-position): New var.
(completion-base-size): Mark as obsolete.
(choose-completion): Make it work for mouse events as well.
Pass the new base-position to choose-completion-string.
(choose-completion-guess-base-position): New function, extracted from
choose-completion-delete-max-match.
(choose-completion-delete-max-match): Use it. Make obsolete.
(choose-completion-string): Use the new base-position info.
(completion-root-regexp): Delete.
(completion-setup-function): Preserve completion-base-position.
Eliminate obsolete base-size manipulation.
* minibuffer.el (display-completion-list): Don't mess with base-size.
(minibuffer-completion-help): Set completion-base-position instead.
* mouse.el (mouse-choose-completion): Redefine as a mere alias to
choose-completion.
* textmodes/bibtex.el (bibtex-complete):
* emacs-lisp/crm.el (crm--choose-completion-string):
Adjust to new calling convention.
* complete.el (partial-completion-mode): Use minibufferp to avoid
bumping into incompatible change to choose-completion-string-functions.
* ido.el (ido-choose-completion-string): Make its calling convention
more permissive.
* comint.el (comint-dynamic-list-input-ring-select): Remove obsolete
base-size manipulation.
(comint-dynamic-list-input-ring): Use dotimes and push.
* iswitchb.el (iswitchb-completion-help): Remove dead-code call to
fundamental-mode. Use `or'.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 15 Oct 2009 01:50:17 +0000 |
parents | bd2966850aac |
children | 56a197ab757c |
line wrap: on
line diff
--- a/lisp/comint.el Wed Oct 14 21:56:37 2009 +0000 +++ b/lisp/comint.el Thu Oct 15 01:50:17 2009 +0000 @@ -968,7 +968,6 @@ "Choose the input history entry that point is in or next to." (interactive) (let ((buffer completion-reference-buffer) - (base-size completion-base-size) beg end completion) (if (and (not (eobp)) (get-text-property (point) 'mouse-face)) (setq end (point) beg (1+ (point)))) @@ -980,7 +979,7 @@ (setq end (or (next-single-property-change end 'mouse-face) (point-max))) (setq completion (buffer-substring beg end)) (set-window-configuration comint-dynamic-list-input-ring-window-conf) - (choose-completion-string completion buffer base-size))) + (choose-completion-string completion buffer))) (defun comint-dynamic-list-input-ring () "List in help buffer the buffer's input history." @@ -993,9 +992,10 @@ (index (1- (ring-length comint-input-ring))) (conf (current-window-configuration))) ;; We have to build up a list ourselves from the ring vector. - (while (>= index 0) - (setq history (cons (ring-ref comint-input-ring index) history) - index (1- index))) + (dotimes (index (ring-length comint-input-ring)) + (push (ring-ref comint-input-ring index) history)) + ;; Show them most-recent-first. + (setq history (nreverse history)) ;; Change "completion" to "history reference" ;; to make the display accurate. (with-output-to-temp-buffer history-buffer