* gnus-group.el (gnus-group-make-group): Doc fix.
[gnus] / lisp / gnus-group.el
index 5e261cc..a700b5e 100644 (file)
 (autoload 'gnus-agent-total-fetched-for "gnus-agent")
 (autoload 'gnus-cache-total-fetched-for "gnus-cache")
 
-(defcustom gnus-group-archive-directory
-  "/ftp@ftp.hpc.uh.edu:/pub/emacs/ding-list/"
-  "*The address of the (ding) archives."
-  :group 'gnus-group-foreign
-  :type 'directory)
-
-(defcustom gnus-group-recent-archive-directory
-  "/ftp@ftp.hpc.uh.edu:/pub/emacs/ding-list-recent/"
-  "*The address of the most recent (ding) articles."
-  :group 'gnus-group-foreign
-  :type 'directory)
-
 (defcustom gnus-no-groups-message "No Gnus is good news"
   "*Message displayed by Gnus when no groups are available."
   :group 'gnus-start
@@ -295,6 +283,7 @@ If you want to modify the group buffer, you can use this hook."
 (defcustom gnus-group-update-hook nil
   "Hook called when a group line is changed."
   :group 'gnus-group-visual
+  :version "24.1"
   :type 'hook)
 
 (defcustom gnus-useful-groups
@@ -559,8 +548,6 @@ simple manner.")
 (defvar gnus-group-list-mode nil)
 
 
-(defvar gnus-group-icon-cache nil)
-
 (defvar gnus-group-listed-groups nil)
 (defvar gnus-group-list-option nil)
 
@@ -656,7 +643,6 @@ simple manner.")
   "d" gnus-group-make-directory-group
   "h" gnus-group-make-help-group
   "u" gnus-group-make-useful-group
-  "a" gnus-group-make-archive-group
   "l" gnus-group-nnimap-edit-acl
   "m" gnus-group-make-group
   "E" gnus-group-edit-group
@@ -751,10 +737,8 @@ simple manner.")
   "e" gnus-score-edit-all-score)
 
 (gnus-define-keys (gnus-group-help-map "H" gnus-group-mode-map)
-  "c" gnus-group-fetch-charter
   "C" gnus-group-fetch-control
   "d" gnus-group-describe-group
-  "f" gnus-group-fetch-faq
   "v" gnus-version)
 
 (gnus-define-keys (gnus-group-sub-map "S" gnus-group-mode-map)
@@ -820,11 +804,6 @@ simple manner.")
        ["Describe" gnus-group-describe-group :active (gnus-group-group-name)
        ,@(if (featurep 'xemacs) nil
            '(:help "Display description of the current group"))]
-       ["Fetch FAQ" gnus-group-fetch-faq (gnus-group-group-name)]
-       ["Fetch charter" gnus-group-fetch-charter
-       :active (gnus-group-group-name)
-       ,@(if (featurep 'xemacs) nil
-           '(:help "Display the charter of the current group"))]
        ["Fetch control message" gnus-group-fetch-control
        :active (gnus-group-group-name)
        ,@(if (featurep 'xemacs) nil
@@ -924,7 +903,6 @@ simple manner.")
        ["Make a foreign group..." gnus-group-make-group t]
        ["Add a directory group..." gnus-group-make-directory-group t]
        ["Add the help group" gnus-group-make-help-group t]
-       ["Add the archive group" gnus-group-make-archive-group t]
        ["Make a doc group..." gnus-group-make-doc-group t]
        ["Make a web group..." gnus-group-make-web-group t]
        ["Make a virtual group..." gnus-group-make-empty-virtual t]
@@ -1208,9 +1186,7 @@ The following commands are available:
 (defun gnus-group-setup-buffer ()
   (set-buffer (gnus-get-buffer-create gnus-group-buffer))
   (unless (eq major-mode 'gnus-group-mode)
-    (gnus-group-mode)
-    (when gnus-carpal
-      (gnus-carpal-setup-buffer 'group))))
+    (gnus-group-mode)))
 
 (defun gnus-group-name-charset (method group)
   (if (null method)
@@ -1514,7 +1490,7 @@ if it is a string, only list groups matching REGEXP."
   (and (not (featurep 'xemacs))
        (boundp 'tool-bar-mode)
        tool-bar-mode
-       ;; Using `redraw-frame' (see `gnus-tool-bar-update') in Emacs 21 might
+       ;; Using `redraw-frame' (see `gnus-tool-bar-update') in Emacs might
        ;; be confusing, so maybe we shouldn't call it by default.
        (fboundp 'force-window-update))
   "Force updating the group buffer tool bar."
@@ -1619,7 +1595,7 @@ if it is a string, only list groups matching REGEXP."
                              'gnus-tool-bar-update))
     (forward-line -1)
     (when (inline (gnus-visual-p 'group-highlight 'highlight))
-      (gnus-group-highlight-line gnus-tmp-qualified-group beg end))
+      (gnus-group-highlight-line gnus-tmp-group beg end))
     (gnus-run-hooks 'gnus-group-update-hook)
     (forward-line)
     ;; Allow XEmacs to remove front-sticky text properties.
@@ -1671,9 +1647,9 @@ Some value are bound so the form can use them."
         (setq list (cdr list)))
       list)))
 
-(defun gnus-group-highlight-line (group start end)
+(defun gnus-group-highlight-line (group beg end)
   "Highlight the current line according to `gnus-group-highlight'.
-GROUP is current group, and the line to highlight starts at START
+GROUP is current group, and the line to highlight starts at BEG
 and ends at END."
   (let ((face (cdar (gnus-group-update-eval-form
                       group
@@ -1681,9 +1657,9 @@ and ends at END."
     (unless (eq face (get-text-property beg 'face))
       (let ((inhibit-read-only t))
         (gnus-put-text-property-excluding-characters-with-faces
-         start end 'face
+         beg end 'face
          (if (boundp face) (symbol-value face) face)))
-      (gnus-extent-start-open start))))
+      (gnus-extent-start-open beg))))
 
 (defun gnus-group-get-icon (group)
   "Return an icon for GROUP according to `gnus-group-icon-list'."
@@ -2186,44 +2162,35 @@ be permanent."
                group)))
        (goto-char start)))))
 
-(defun gnus-group-completing-read (prompt &optional collection predicate
-                                         require-match initial-input hist def
-                                         &rest args)
+(defun gnus-group-completing-read (&optional prompt collection
+                                             require-match initial-input hist def)
   "Read a group name with completion.  Non-ASCII group names are allowed.
 The arguments are the same as `completing-read' except that COLLECTION
 and HIST default to `gnus-active-hashtb' and `gnus-group-history'
 respectively if they are omitted."
-  (let ((completion-styles (and (boundp 'completion-styles)
-                               completion-styles))
-       group)
-    (push 'substring completion-styles)
-    (mapatoms (lambda (symbol)
-               (setq group (symbol-name symbol))
-               (set (intern (if (string-match "[^\000-\177]" group)
-                                (gnus-group-decoded-name group)
-                              group)
-                            collection)
-                    group))
-             (prog1
-                 (or collection
-                     (setq collection (or gnus-active-hashtb [0])))
-               (setq collection (gnus-make-hashtable (length collection)))))
-    (setq group (apply 'completing-read prompt collection predicate
-                      require-match initial-input
-                      (or hist 'gnus-group-history)
-                      def args))
-    (or (prog1
-           (symbol-value (intern-soft group collection))
-         (setq collection nil))
-       (mm-encode-coding-string group (gnus-group-name-charset nil group)))))
+  (let* ((collection (or collection (or gnus-active-hashtb [0])))
+        (choices (mapcar (lambda (symbol)
+                            (let ((group (symbol-name symbol)))
+                              (if (string-match "[^\000-\177]" group)
+                                  (gnus-group-decoded-name group)
+                                group)))
+                          (remove-if-not 'symbolp collection)))
+         (group
+          (gnus-completing-read (or prompt "Group") choices
+                                require-match initial-input
+                                (or hist 'gnus-group-history)
+                                def)))
+    (if (symbol-value (intern-soft group collection))
+       group
+      (mm-encode-coding-string group (gnus-group-name-charset nil group)))))
 
 ;;;###autoload
 (defun gnus-fetch-group (group &optional articles)
   "Start Gnus if necessary and enter GROUP.
 If ARTICLES, display those articles.
 Returns whether the fetching was successful or not."
-  (interactive (list (gnus-group-completing-read "Group name: "
-                                                nil nil nil
+  (interactive (list (gnus-group-completing-read nil
+                                                nil nil
                                                 (gnus-group-name-at-point))))
   (unless (gnus-alive-p)
     (gnus-no-server))
@@ -2242,8 +2209,6 @@ Returns whether the fetching was successful or not."
           (other-frame 1))))
   (gnus-fetch-group group))
 
-(defvar gnus-ephemeral-group-server 0)
-
 (defcustom gnus-large-ephemeral-newsgroup 200
   "The number of articles which indicates a large ephemeral newsgroup.
 Same as `gnus-large-newsgroup', but only used for ephemeral newsgroups.
@@ -2285,7 +2250,7 @@ Return the name of the group if selection was successful."
   (interactive
    (list
     ;; (gnus-read-group "Group name: ")
-    (gnus-group-completing-read "Group: ")
+    (gnus-group-completing-read)
     (gnus-read-method "From method: ")))
   ;; Transform the select method into a unique server.
   (when (stringp method)
@@ -2352,7 +2317,7 @@ specified by `gnus-gmane-group-download-format'."
   ;; See <http://gmane.org/export.php> for more information.
   (interactive
    (list
-    (gnus-group-completing-read "Gmane group")
+    (gnus-group-completing-read "Gmane group")
     (read-number "Start article number: ")
     (read-number "How many articles: ")))
   (unless range (setq range 500))
@@ -2386,7 +2351,7 @@ Valid input formats include:
   ;;   prompt the user to decide: "View via `browse-url' or in Gnus? "
   ;;   (`gnus-read-ephemeral-gmane-group-url')
   (interactive
-   (list (gnus-group-completing-read "Gmane URL")))
+   (list (gnus-group-completing-read "Gmane URL")))
   (let (group start range)
     (cond
      ;; URLs providing `group', `start' and `range':
@@ -2442,6 +2407,14 @@ the bug number, and browsing the URL must return mbox output."
   (let ((tmpfile (mm-make-temp-file "gnus-temp-group-")))
     (with-temp-file tmpfile
       (url-insert-file-contents (format mbox-url number))
+      (goto-char (point-min))
+      ;; Add the debbugs address so that we can respond to reports easily.
+      (while (re-search-forward "^To: " nil t)
+       (end-of-line)
+       (insert (format ", %s@%s" number
+                       (replace-regexp-in-string
+                        "/.*$" ""
+                        (replace-regexp-in-string "^http://" "" mbox-url)))))
       (write-region (point-min) (point-max) tmpfile)
       (gnus-group-read-ephemeral-group
        "gnus-read-ephemeral-bug"
@@ -2472,13 +2445,13 @@ If PROMPT (the prefix) is a number, u