1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00

(message-completion-in-region): New compatibility function.

(message-expand-group): Use it.
This commit is contained in:
Stefan Monnier 2009-12-02 03:11:38 +00:00
parent 60f2013c9e
commit 96bdcdc44e
2 changed files with 43 additions and 31 deletions

View File

@ -1,3 +1,8 @@
2009-12-02 Stefan Monnier <monnier@iro.umontreal.ca>
* message.el (message-completion-in-region): New compatibility function.
(message-expand-group): Use it.
2009-12-02 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-group.el (gnus-group-prepare-flat): Check also whether groups

View File

@ -7712,37 +7712,44 @@ those headers."
(point))
(skip-chars-backward "^, \t\n") (point))))
(completion-ignore-case t)
(string (buffer-substring b (progn (skip-chars-forward "^,\t\n ")
(point))))
(hashtb (and (boundp 'gnus-active-hashtb) gnus-active-hashtb))
(completions (all-completions string hashtb))
comp)
(delete-region b (point))
(cond
((= (length completions) 1)
(if (string= (car completions) string)
(progn
(insert string)
(message "Only matching group"))
(insert (car completions))))
((and (setq comp (try-completion string hashtb))
(not (string= comp string)))
(insert comp))
(t
(insert string)
(if (not comp)
(message "No matching groups")
(save-selected-window
(pop-to-buffer "*Completions*")
(buffer-disable-undo)
(let ((buffer-read-only nil))
(erase-buffer)
(let ((standard-output (current-buffer)))
(message-display-completion-list (sort completions 'string<)
string))
(setq buffer-read-only nil)
(goto-char (point-min))
(delete-region (point) (progn (forward-line 3) (point))))))))))
(e (progn (skip-chars-forward "^,\t\n ") (point)))
(hashtb (and (boundp 'gnus-active-hashtb) gnus-active-hashtb)))
(message-completion-in-region e b hashtb)))
(defalias 'message-completion-in-region
(if (fboundp 'completion-in-region)
'completion-in-region
(lambda (e b hashtb)
(let* ((string (buffer-substring b e))
(completions (all-completions string hashtb))
comp)
(delete-region b (point))
(cond
((= (length completions) 1)
(if (string= (car completions) string)
(progn
(insert string)
(message "Only matching group"))
(insert (car completions))))
((and (setq comp (try-completion string hashtb))
(not (string= comp string)))
(insert comp))
(t
(insert string)
(if (not comp)
(message "No matching groups")
(save-selected-window
(pop-to-buffer "*Completions*")
(buffer-disable-undo)
(let ((buffer-read-only nil))
(erase-buffer)
(let ((standard-output (current-buffer)))
(message-display-completion-list (sort completions 'string<)
string))
(setq buffer-read-only nil)
(goto-char (point-min))
(delete-region (point)
(progn (forward-line 3) (point))))))))))))
(defun message-expand-name ()
(cond ((and (memq 'eudc message-expand-name-databases)