;;; gnus-cus.el --- customization commands for Gnus
;;
-;; Copyright (C) 1996,1999 Free Software Foundation, Inc.
+;; Copyright (C) 1996 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: news
(require 'wid-edit)
(require 'gnus-score)
-(require 'gnus-topic)
;;; Widgets:
;;; Group Customization:
-(defcustom gnus-group-parameters
+(defconst gnus-group-parameters
'((to-address (gnus-email-address :tag "To Address") "\
This will be used when doing followups and posts.
`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.
-
-The gnus-group-split mail splitting mechanism will behave as if this
-address was listed in gnus-group-split Addresses (see below).")
+address instead.")
(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'.
-
-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.")
+`f'.")
(broken-reply-to (const :tag "Broken Reply To" t) "\
Ignore `Reply-To' headers in this group.
`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.")
(visible (const :tag "Permanently visible" t) "\
Always display this group, even when there are no unread articles
-in it..")
-
- (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."))
+in it.."))
"Alist of valid group parameters.
Each entry has the form (NAME TYPE DOC), where NAME is the parameter
(defvar gnus-custom-params)
(defvar gnus-custom-method)
(defvar gnus-custom-group)
-(defvar gnus-custom-topic)
-(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)))
+(defun gnus-group-customize (group)
+ "Edit the group on the current line."
+ (interactive (list (gnus-group-group-name)))
(let (info
(types (mapcar (lambda (entry)
`(cons :format "%v%h\n"
(const :format "" ,(nth 0 entry))
,(nth 1 entry)))
gnus-group-parameters)))
- (unless (or group topic)
+ (unless group
(error "No group on current line"))
- (when (and group topic)
- (error "Both a group an topic on current line"))
- (unless (or topic (setq info (gnus-get-info group)))
+ (unless (setq info (gnus-get-info group))
(error "Killed group; can't be edited"))
;; Ready.
(kill-buffer (gnus-get-buffer-create "*Gnus Customize*"))
(gnus-custom-mode)
(make-local-variable 'gnus-custom-group)
(setq gnus-custom-group group)
- (make-local-variable 'gnus-custom-topic)
- (setq gnus-custom-topic topic)
(widget-insert "Customize the ")
- (if group
- (widget-create 'info-link
- :help-echo "Push me to learn more."
- :tag "group parameters"
- "(gnus)Group Parameters")
- (widget-create 'info-link
- :help-echo "Push me to learn more."
- :tag "topic parameters"
- "(gnus)Topic Parameters"))
+ (widget-create 'info-link
+ :help-echo "Push me to learn more."
+ :tag "group parameters"
+ "(gnus)Group Parameters")
(widget-insert " for <")
- (widget-insert (or group topic))
+ (widget-insert group)
(widget-insert "> and press ")
(widget-create 'push-button
:tag "done"
(make-local-variable 'gnus-custom-params)
(setq gnus-custom-params
(widget-create 'group
- :value (if group
- (gnus-info-params info)
- (gnus-topic-parameters topic))
+ :value (gnus-info-params info)
`(set :inline t
:greedy t
:tag "Parameters"
:format "%t:\n%h%v"
:doc "\
These special paramerters are recognized by Gnus.
-Check the [ ] for the parameters you want to apply to this group or
-to the groups in this topic, then edit the value to suit your taste."
+Check the [ ] for the parameters you want to apply to this group, then
+edit the value to suit your taste."
,@types)
'(repeat :inline t
:tag "Variables"
put something like `(dummy-variable (ding))' in the parameters of that
group. `dummy-variable' will be set to the result of the `(ding)'
form, but who cares?"
- (cons :format "%v" :value (nil . nil)
+ (group :value (nil nil)
(symbol :tag "Variable")
(sexp :tag
"Value")))
'(repeat :inline t
:tag "Unknown entries"
sexp)))
- (when group
- (widget-insert "\n\nYou can also edit the ")
- (widget-create 'info-link
- :tag "select method"
- :help-echo "Push me to learn more about select methods."
- "(gnus)Select Methods")
- (widget-insert " for the group.\n")
- (setq gnus-custom-method
- (widget-create 'sexp
- :tag "Method"
- :value (gnus-info-method info))))
+ (widget-insert "\n\nYou can also edit the ")
+ (widget-create 'info-link
+ :tag "select method"
+ :help-echo "Push me to learn more about select methods."
+ "(gnus)Select Methods")
+ (widget-insert " for the group.\n")
+ (setq gnus-custom-method
+ (widget-create 'sexp
+ :tag "Method"
+ :value (gnus-info-method info)))
(use-local-map widget-keymap)
- (widget-setup)
- (goto-char (point-min))))
+ (widget-setup)))
(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
- (widget-value gnus-custom-params))
- (gnus-group-edit-group-done 'params gnus-custom-group
- (widget-value gnus-custom-params))
- (gnus-group-edit-group-done 'method gnus-custom-group
- (widget-value gnus-custom-method)))
+ (gnus-group-edit-group-done 'params gnus-custom-group
+ (widget-value gnus-custom-params))
+ (gnus-group-edit-group-done 'method gnus-custom-group
+ (widget-value gnus-custom-method))
(bury-buffer))
;;; Score Customization:
(gnus-score-string :tag "Subject")
(gnus-score-string :tag "References")
(gnus-score-string :tag "Xref")
- (gnus-score-string :tag "Extra")
(gnus-score-string :tag "Message-ID")
(gnus-score-integer :tag "Lines")
(gnus-score-integer :tag "Chars")