Introduce gnus-completing-read
authorFlorian Ragwitz <rafl@debian.org>
Fri, 1 Oct 2010 01:01:24 +0000 (03:01 +0200)
committerLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Fri, 1 Oct 2010 09:37:18 +0000 (11:37 +0200)
--=-=-=
Content-Type: text/plain

Lars Magne Ingebrigtsen <larsi@gnus.org> writes:

> Florian Ragwitz <rafl@debian.org> writes:
>
>> If I made such a patch, which I'll be happy to do, will you be allowed
>> to apply it?
>
> Yes.  :-)

Here it is.

From 4f911174b2956ee532502a6139cb0d450a3564ef Mon Sep 17 00:00:00 2001
From: Florian Ragwitz <rafl@debian.org>
Date: Fri, 1 Oct 2010 02:48:42 +0200
Subject: [PATCH] Revert changes by Florian Ragwitz

He didn't do the required paperwork.

This reverts the commits 7dc2bb6839a47d8054c732b607e8affca0e9fc68,

  "Decode URL entities to avoid broken links"

fc8a05bb16b15558e896c1723684aa5e0b8d06c9,

  "(sieve-manage-default-stream): Make default stream customizable."

defbfad6913b5077f97df1382534d5b48edbd5b8,

  "Add requires and fix history for iswitchb"

and 29395112826e19380dccb5270c7b5f3b471ecaa9.

  "Make completing-read function configurable"

Conflicts:

lisp/ChangeLog

lisp/gnus-html.el
lisp/gnus-util.el
lisp/sieve-manage.el

index 4bac528..587c28e 100644 (file)
@@ -286,7 +286,7 @@ Use ALT-TEXT for the image string."
          (setq url (match-string 1 parameters))
           (gnus-message 8 "gnus-html-wash-tags: fetching link URL %s" url)
          (gnus-article-add-button start end
-                                  'browse-url (mm-url-decode-entities-string url)
+                                  'browse-url url
                                   url)
          (let ((overlay (gnus-make-overlay start end)))
            (gnus-overlay-put overlay 'evaporate t)
index 2f9bdd6..d188eba 100644 (file)
     (defmacro with-no-warnings (&rest body)
       `(progn ,@body))))
 
-(defcustom gnus-completing-read-function
-  #'gnus-std-completing-read
-  "Function to do a completing read."
+(defcustom gnus-use-ido nil
+  "Whether to use `ido' for `completing-read'."
+  :version "24.1"
   :group 'gnus-meta
-  :type '(radio (function-item
-                 :doc "Use Emacs' standard `completing-read' function."
-                 gnus-std-completing-read)
-                (function-item :doc "Use iswitchb's completing-read function."
-                               gnus-icompleting-read)
-                (function-item :doc "Use ido's completing-read function."
-                               gnus-ido-completing-read)
-                (function)))
+  :type 'boolean)
 
 (defcustom gnus-completion-styles
   (if (and (boundp 'completion-styles-alist)
@@ -1590,50 +1583,19 @@ SPEC is a predicate specifier that contains stuff like `or', `and',
        `(,(car spec) ,@(mapcar 'gnus-make-predicate-1 (cdr spec)))
       (error "Invalid predicate specifier: %s" spec)))))
 
-(defun gnus-std-completing-read (prompt collection &optional require-match
-                                        initial-input history def)
-  (completing-read prompt collection nil require-match
-                   initial-input history def))
-
-(defun gnus-icompleting-read (prompt collection &optional require-match
-                                     initial-input history def)
-  (require 'iswitchb)
-  (let ((iswitchb-make-buflist-hook
-         (lambda ()
-           (setq iswitchb-temp-buflist
-                 (let ((choices (append (list)
-                                        (when initial-input (list initial-input))
-                                        (symbol-value history) collection))
-                       filtered-choices)
-                   (while choices
-                     (when (and (car choices) (not (member (car choices) filtered-choices)))
-                       (setq filtered-choices (cons (car choices) filtered-choices)))
-                     (setq choices (cdr choices)))
-                   (nreverse filtered-choices))))))
-    (unwind-protect
-        (progn
-          (when (not iswitchb-mode)
-            (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup))
-          (iswitchb-read-buffer prompt def require-match))
-      (when (not iswitchb-mode)
-        (remove-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup)))))
-
-(defun gnus-ido-completing-read (prompt collection &optional require-match
-                                        initial-input history def)
-  (require 'ido)
-  (ido-completing-read prompt collection nil require-match
-                       initial-input history def))
-
 (defun gnus-completing-read (prompt collection &optional require-match
                                     initial-input history def)
-  "Do a completing read with the configured `gnus-completing-read-function'."
+  "Call `completing-read' or `ido-completing-read'.
+Depends on `gnus-use-ido'."
   (let ((completion-styles gnus-completion-styles))
     (funcall
-     gnus-completing-read-function
+     (if gnus-use-ido
+         'ido-completing-read
+       'completing-read)
      (concat prompt (when def
                       (concat " (default " def ")"))
              ": ")
-     collection require-match initial-input history def)))
+     collection nil require-match initial-input history def)))
 
 (defun gnus-graphic-display-p ()
   (if (featurep 'xemacs)
index 8749864..0f16444 100644 (file)
@@ -162,12 +162,6 @@ for doing the actual authentication."
   :type 'integer
   :group 'sieve-manage)
 
-(defcustom sieve-manage-default-stream 'network
-  "Default stream type to use for `sieve-manage'.
-Must be a name of a stream in `sieve-manage-stream-alist'."
-  :type 'symbol
-  :group 'sieve-manage)
-
 ;; Internal variables:
 
 (defconst sieve-manage-local-variables '(sieve-manage-server
@@ -180,6 +174,7 @@ Must be a name of a stream in `sieve-manage-stream-alist'."
                                         sieve-manage-client-eol
                                         sieve-manage-server-eol
                                         sieve-manage-capability))
+(defconst sieve-manage-default-stream 'network)
 (defconst sieve-manage-coding-system-for-read 'binary)
 (defconst sieve-manage-coding-system-for-write 'binary)
 (defvar sieve-manage-stream nil)