changeset 106372:9baad4abae40

(message-completion-in-region): New compatibility function. (message-expand-group): Use it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 02 Dec 2009 03:11:38 +0000
parents 089e310803a4
children 52460c9b040f
files lisp/gnus/ChangeLog lisp/gnus/message.el
diffstat 2 files changed, 43 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Wed Dec 02 03:05:14 2009 +0000
+++ b/lisp/gnus/ChangeLog	Wed Dec 02 03:11:38 2009 +0000
@@ -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
--- a/lisp/gnus/message.el	Wed Dec 02 03:05:14 2009 +0000
+++ b/lisp/gnus/message.el	Wed Dec 02 03:11:38 2009 +0000
@@ -7712,37 +7712,44 @@
 		 (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)