* lisp/ido.el: Revert Óscar's.
(ido-kill-buffer-at-head): Exit the minibuffer with ido-exit=refresh.
Remember the buffers at head, rather than their name.
* lisp/iswitchb.el (iswitchb-kill-buffer): Re-make the list.
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'.
the virtual-buffers, use the name of the buffer specified by
find-file-noselect, as the match may be a symlink. (This was a
problem if the target and the symlink had differet names.)
(iswitchb-define-mode-map, iswitchb-default-keybindings):
Add obsolescence declaration and remove redundant info from docstring.
(iswitchb-set-common-completion, iswitchb-set-matches,
iswitchb-get-matched-buffers, iswitchb-visit-buffer): Use `let'.
(recentf-list, most-len, most-is-exact):
Don't wrap defvars within `eval-when-compile'.
* progmodes/ada-mode.el (comment-region):
* calendar/todo-mode.el (todo-insert-item):
* bookmark.el (bookmark-buffer-name): Test major-mode rather than mode-name.
(C-a). The author said it had been disabled much earlier due to a
possible incompatibility, but after many months of usage I have
encountered no problems (and it is a rather useful option, especially
for switching to " *temp*").
(iswitchb-current-match-face, iswitchb-virtual-matches-face)
(iswitchb-invalid-regexp-face): New faces.
(iswitchb-completions): Use them.
(iswitchb-use-faces): Renamed from iswitchb-use-fonts, which is
now marked as an obsolete alias.
(iswitchb-read-buffer): Remove check for bound font variables.
(iswitchb-invalid-regexp): New free variable.
(iswitchb-get-matched-buffers): Catch invalid-regexp errors and
set iswitchb-invalid-regexp.
(iswitchb, iswitchb-complete, iswitchb-completions): Deal with invalid regexps.
(iswitchb-completions): Add check for complete match when entering a regexp.
(iswitchb-completions): Remove require-match argument.
(iswitchb-exhibit): Fix caller.
(iswitchb-common-match-inserted): New variable.
(iswitchb-complete, iswitchb-completion-help): Use it.
* iswitchb.el (iswitchb-use-virtual-buffers): Added support for
"virtual buffers" (off by default), which makes it possible to
switch to the buffers of recently files. When a buffer name
search fails, and this option is on, iswitchb will look at the
list of recently visited files, and permit matching against those
names. When the user hits RET on a match, it will revisit that
file.
(iswitchb-read-buffer): Added two optional arguments, which makes
isearchb.el possible.
(iswitchb-completions, iswitchb-set-matches, iswitchb-prev-match,
iswitchb-next-match): Added support for virtual buffers.
* iswitchb.el (iswitchb-max-to-show): Added a new config variable
which optionally limits the number of names shown in the
minibuffer. Off by default.
(iswitchb-completions): Use `iswitchb-max-to-show'. This speeds
up iswitchb for users with a multitude of open buffers, by showing
only the first and last N/2 buffers in the completion list (which
is enough for C-s/C-r, and to know that more characters need to be
typed to refine the completion list).
when user presses RETURN to select buffer) before running:
;; This happens for example if the buffer was chosen with the mouse.
(setq iswitchb-matches (list iswitchb-final-text)))
iswitchb-exit-minibuffer: set iswitchb-exit to 'usefirst.
These changes were made to fix the following bug reported by Markus
Rost and John Wiegley:
Evaluate:
(progn
(iswitchb-mode 1)
(get-buffer-create "12")
(get-buffer-create "1")
(iswitchb-buffer))
You get prompted in the minibuffer. Type "1". The minibuffer shows
iswitch 1{12,1}
Hit RET. You find yourself in buffer "1" instead of "12", as you
would expect from the documentation.
This bug was introduced when iswitchb-read-buffer was updated to allow
user to select items from the *Completions* buffer with the mouse.
iswitchb-prepost-hooks. Remove iswitchb-xemacs variable and use
(featurep 'xemacs) and fboundp instead. (From Stefan Monnier).
(iswitchb-completions): Remove two redundant arguments and local
variables. (From Stefan Monnier).
Commentary fix (from Markus Rost).