Importing Pterodactyl Gnus v0.95.
[elisp/gnus.git-] / lisp / gnus-cus.el
index b71e2a9..8127d65 100644 (file)
@@ -1,6 +1,6 @@
 ;;; gnus-cus.el --- customization commands for Gnus
 ;;
-;; Copyright (C) 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1996,1999 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: news
@@ -56,7 +56,7 @@ if that value is non-nil."
 
 ;;; Group Customization:
 
-(defconst gnus-group-parameters
+(defcustom gnus-group-parameters
   '((to-address (gnus-email-address :tag "To Address") "\
 This will be used when doing followups and posts.
 
@@ -71,14 +71,63 @@ not.  Let's say there's a group on the server that is called
 `fa.4ad-l'.  This is a real newsgroup, but the server has gotten the
 articles from a mail-to-news gateway.  Posting directly to this group
 is therefore impossible--you have to send mail to the mailing list
-address instead.")
+address instead.
+
+The gnus-group-split mail splitting mechanism will behave as if this
+address was listed in gnus-group-split Addresses (see below).")
 
     (to-list (gnus-email-address :tag "To List") "\
 This address will be used when doing a `a' in the group.
 
 It is totally ignored when doing a followup--except that if it is
 present in a news group, you'll get mail group semantics when doing
-`f'.")
+`f'.
+
+The gnus-group-split mail splitting mechanism will behave as if this
+address was listed in gnus-group-split Addresses (see below).")
+
+    (extra-aliases (choice
+                   :tag "Extra Aliases"
+                   (list
+                    :tag "List"
+                    (editable-list
+                     :inline t
+                     (gnus-email-address :tag "Address")))
+                   (gnus-email-address :tag "Address")) "\
+Store messages posted from or to this address in this group.
+
+You must be using gnus-group-split for this to work.  The VALUE of the
+nnmail-split-fancy SPLIT generated for this group will match these
+addresses.")
+
+    (split-regexp (regexp :tag "gnus-group-split Regular Expression") "\
+Like gnus-group-split Address, but expects a regular expression.")
+
+    (split-exclude (list :tag "gnus-group-split Restricts"
+                        (editable-list
+                         :inline t (regexp :tag "Restrict"))) "\
+Regular expression that cancels gnus-group-split matches.
+
+Each entry is added to the nnmail-split-fancy SPLIT as a separate
+RESTRICT clause.")
+
+    (split-spec (choice :tag "gnus-group-split Overrider"
+                       (sexp :tag "Fancy Split")
+                       (const :tag "Catch All" catch-all)
+                       (const :tag "Ignore" nil)) "\
+Override all other gnus-group-split fields.
+
+In `Fancy Split', you can enter any nnmail-split-fancy SPLIT.  Note
+that the name of this group won't be automatically assumed, you have
+to add it to the SPLITs yourself.  This means you can use such splits
+to split messages to other groups too.
+
+If you select `Catch All', this group will get postings for any
+messages not matched in any other group.  It overrides the variable
+gnus-group-split-default-catch-all-group.
+
+Selecting `Ignore' forces no SPLIT to be generated for this group,
+disabling all other gnus-group-split fields.")
 
     (broken-reply-to (const :tag "Broken Reply To" t) "\
 Ignore `Reply-To' headers in this group.
@@ -104,6 +153,11 @@ is present and a string, this string will be inserted literally as a
 `gcc' header (this symbol takes precedence over any default `Gcc'
 rules as described later).")
 
+    (banner (choice :tag "Banner"
+                   (const signature)
+                   string ) "\
+Banner to be removed from articles.")
+
     (auto-expire (const :tag "Automatic Expire" t) "\
 All articles that are read will be marked as expirable.")
 
@@ -162,9 +216,28 @@ An arbitrary comment on the group.")
 Always display this group, even when there are no unread articles
 in it..")
 
-    (charset (string :tag "Charset") "\
-The default charset to use in the group.") 
-)
+    (charset (symbol :tag "Charset") "\
+The default charset to use in the group.")
+            
+    (ignored-charsets 
+     (choice :tag "Ignored charsets" 
+            :value nil
+            (repeat (symbol))) "\
+List of charsets that should be ignored.
+
+When these charsets are used in the \"charset\" parameter, the
+default charset will be used instead.")
+            
+    (highlight-words 
+     (choice :tag "Highlight words"
+            :value nil
+            (repeat (list (regexp :tag "Highlight regexp")
+                          (number :tag "Group for entire word" 0)
+                          (number :tag "Group for displayed part" 0)
+                          (symbol :tag "Face" 
+                                  gnus-emphasis-highlight-words))))
+  "highlight regexps.
+See gnus-emphasis-alist."))
   "Alist of valid group parameters.
 
 Each entry has the form (NAME TYPE DOC), where NAME is the parameter
@@ -176,8 +249,8 @@ DOC is a documentation string for the parameter.")
 (defvar gnus-custom-group)
 (defvar gnus-custom-topic)
 
-(defun gnus-group-customize (group topic)
-  "Edit the group or topicon the current line."
+(defun gnus-group-customize (group &optional topic)
+  "Edit the group or topic on the current line."
   (interactive (list (gnus-group-group-name) (gnus-group-topic-name)))
   (let (info
        (types (mapcar (lambda (entry)
@@ -201,7 +274,7 @@ DOC is a documentation string for the parameter.")
     (make-local-variable 'gnus-custom-topic)
     (setq gnus-custom-topic topic)
     (widget-insert "Customize the ")
-    (if group 
+    (if group
        (widget-create 'info-link
                       :help-echo "Push me to learn more."
                       :tag "group parameters"
@@ -221,7 +294,7 @@ DOC is a documentation string for the parameter.")
     (make-local-variable 'gnus-custom-params)
     (setq gnus-custom-params
          (widget-create 'group
-                        :value (if group 
+                        :value (if group
                                    (gnus-info-params info)
                                  (gnus-topic-parameters topic))
                         `(set :inline t
@@ -269,13 +342,14 @@ form, but who cares?"
                           :tag "Method"
                           :value (gnus-info-method info))))
     (use-local-map widget-keymap)
-    (widget-setup)))
+    (widget-setup)
+    (goto-char (point-min))))
 
 (defun gnus-group-customize-done (&rest ignore)
   "Apply changes and bury the buffer."
   (interactive)
   (if gnus-custom-topic
-      (gnus-topic-set-parameters gnus-custom-topic 
+      (gnus-topic-set-parameters gnus-custom-topic
                                 (widget-value gnus-custom-params))
     (gnus-group-edit-group-done 'params gnus-custom-group
                                (widget-value gnus-custom-params))