(gnus-summary-from-or-to-or-newsgroups): Check
[gnus] / lisp / gnus.el
index 6bc48ca..036d479 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus.el --- a newsreader for GNU Emacs
 
-;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997,
-;; 1998, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -21,8 +21,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
 (require 'mm-util)
 (require 'nnheader)
 
+;; These are defined afterwards with gnus-define-group-parameter
+(defvar gnus-ham-process-destinations)
+(defvar gnus-parameter-ham-marks-alist)
+(defvar gnus-parameter-spam-marks-alist)
+(defvar gnus-spam-autodetect)
+(defvar gnus-spam-autodetect-methods)
+(defvar gnus-spam-newsgroup-contents)
+(defvar gnus-spam-process-destinations)
+(defvar gnus-spam-process-newsgroups)
+
+
 (defgroup gnus nil
   "The coffee-brewing, all singing, all dancing, kitchen sink newsreader."
   :group 'news
@@ -273,7 +284,7 @@ is restarted, and sometimes reloaded."
   :group 'gnus)
 
 (defgroup gnus-exit nil
-  "Exiting gnus."
+  "Exiting Gnus."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
@@ -919,7 +930,7 @@ be set in `.emacs' instead."
     (t
      ()))
   "Face for the splash screen."
-  :group 'gnus)
+  :group 'gnus-start)
 ;; backward-compatibility alias
 (put 'gnus-splash-face 'face-alias 'gnus-splash)
 
@@ -991,6 +1002,11 @@ be set in `.emacs' instead."
      (fboundp 'find-image)
      (display-graphic-p)
      (let* ((data-directory (nnheader-find-etc-directory "images/gnus"))
+           (image-load-path (cond (data-directory
+                                   (list data-directory))
+                                  ((boundp 'image-load-path)
+                                   (symbol-value 'image-load-path))
+                                  (t load-path)))
            (image (find-image
                    `((:type xpm :file "gnus.xpm"
                             :color-symbols
@@ -1084,6 +1100,17 @@ For example:
   :type '(repeat (cons regexp
                       (repeat sexp))))
 
+(defcustom gnus-parameters-case-fold-search 'default
+  "If it is t, ignore case of group names specified in `gnus-parameters'.
+If it is nil, don't ignore case.  If it is `default', which is for the
+backward compatibility, use the value of `case-fold-search'."
+  :version "22.1"
+  :group 'gnus-group-various
+  :type '(choice :format "%{%t%}:\n %[Value Menu%] %v"
+                (const :tag "Use `case-fold-search'" default)
+                (const nil)
+                (const t)))
+
 (defvar gnus-group-parameters-more nil)
 
 (defmacro gnus-define-group-parameter (param &rest rest)
@@ -1544,9 +1571,23 @@ articles.  This is not a good idea."
                       :value t)))
 
 (defcustom gnus-use-nocem nil
-  "*If non-nil, Gnus will read NoCeM cancel messages."
+  "*If non-nil, Gnus will read NoCeM cancel messages.
+You can also set this variable to a positive number as a group level.
+In that case, Gnus scans NoCeM messages when checking new news if this
+value is not exceeding a group level that you specify as the prefix
+argument to some commands, e.g. `gnus', `gnus-group-get-new-news', etc.
+Otherwise, Gnus does not scan NoCeM messages if you specify a group
+level to those commands."
   :group 'gnus-meta
-  :type 'boolean)
+  :type '(choice
+         (const :tag "off" nil)
+         (const :tag "on" t)
+         (list :convert-widget
+               (lambda (widget)
+                 (list 'integer :tag "group level"
+                       :value (if (boundp 'gnus-level-default-subscribed)
+                                  gnus-level-default-subscribed
+                                3))))))
 
 (defcustom gnus-suppress-duplicates nil
   "*If non-nil, Gnus will mark duplicate copies of the same article as read."
@@ -2387,7 +2428,8 @@ following hook:
   "Function run when a group level is changed.
 It is called with three parameters -- GROUP, LEVEL and OLDLEVEL."
   :group 'gnus-group-levels
-  :type 'function)
+  :type '(choice (const nil)
+                function))
 
 ;;; Face thingies.
 
@@ -3473,11 +3515,8 @@ that that variable is buffer-local to the summary buffers."
                    (push name-method gnus-server-method-cache))
                  (throw 'server-name (car name-method))))
              server-alist))
-     (let ((alists (list gnus-server-alist
-                         gnus-predefined-server-alist)))
-       (if gnus-select-method
-           (push (list (cons "native" gnus-select-method)) alists))
-       alists))
+     (list gnus-server-alist
+          gnus-predefined-server-alist))
 
     (let* ((name (if (member (cadr method) '(nil ""))
                      (format "%s" (car method))
@@ -3752,7 +3791,10 @@ You should probably use `gnus-find-method-for-group' instead."
 
 (defun gnus-parameters-get-parameter (group)
   "Return the group parameters for GROUP from `gnus-parameters'."
-  (let (params-list)
+  (let ((case-fold-search (if (eq gnus-parameters-case-fold-search 'default)
+                             case-fold-search
+                           gnus-parameters-case-fold-search))
+       params-list)
     (dolist (elem gnus-parameters)
       (when (string-match (car elem) group)
        (setq params-list
@@ -3836,6 +3878,7 @@ If you call this function inside a loop, consider using the faster
 (defun gnus-group-get-parameter (group &optional symbol allow-list)
   "Return the group parameters for GROUP.
 If SYMBOL, return the value of that symbol in the group parameters.
+If ALLOW-LIST, also allow list as a result.
 Most functions should use `gnus-group-find-parameter', which
 also examines the topic parameters."
   (let ((params (gnus-info-params (gnus-get-info group))))
@@ -3845,7 +3888,8 @@ also examines the topic parameters."
 
 (defun gnus-group-parameter-value (params symbol &optional
                                          allow-list present-p)
-  "Return the value of SYMBOL in group PARAMS."
+  "Return the value of SYMBOL in group PARAMS.
+If ALLOW-LIST, also allow list as a result."
   ;; We only wish to return group parameters (dotted lists) and
   ;; not local variables, which may have the same names.
   ;; But first we handle single elements...
@@ -4271,9 +4315,6 @@ current display is used."
                       (delete-frame gnus-other-frame-object))
                     (setq gnus-other-frame-object nil)))))))
 
-;;(setq thing ?                                ; this is a comment
-;;      more 'yes)
-
 ;;;###autoload
 (defun gnus (&optional arg dont-connect slave)
   "Read network news.