Mercurial > emacs
annotate lisp/gnus/gnus-cus.el @ 42355:6a1a8da1ad47
(widget-toggle-value-create): Don't eval actual images (which are lists too).
author | Miles Bader <miles@gnu.org> |
---|---|
date | Thu, 27 Dec 2001 15:07:21 +0000 |
parents | f04f551e94ce |
children | a2299d46da2a |
rev | line source |
---|---|
17493 | 1 ;;; gnus-cus.el --- customization commands for Gnus |
2 ;; | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
3 ;; Copyright (C) 1996,1999, 2000 Free Software Foundation, Inc. |
17493 | 4 |
5 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> | |
6 ;; Keywords: news | |
7 | |
8 ;; This file is part of GNU Emacs. | |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
24 | |
25 ;;; Commentary: | |
26 | |
27 ;;; Code: | |
28 | |
29 (require 'wid-edit) | |
30 (require 'gnus-score) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
31 (require 'gnus-topic) |
17493 | 32 |
33 ;;; Widgets: | |
34 | |
35 ;; There should be special validation for this. | |
36 (define-widget 'gnus-email-address 'string | |
37 "An email address") | |
38 | |
39 (defun gnus-custom-mode () | |
40 "Major mode for editing Gnus customization buffers. | |
41 | |
42 The following commands are available: | |
43 | |
44 \\[widget-forward] Move to next button or editable field. | |
45 \\[widget-backward] Move to previous button or editable field. | |
46 \\[widget-button-click] Activate button under the mouse pointer. | |
47 \\[widget-button-press] Activate button under point. | |
48 | |
49 Entry to this mode calls the value of `gnus-custom-mode-hook' | |
50 if that value is non-nil." | |
51 (kill-all-local-variables) | |
52 (setq major-mode 'gnus-custom-mode | |
53 mode-name "Gnus Customize") | |
54 (use-local-map widget-keymap) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
55 ;; Emacs 21 stuff: |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
56 (when (and (facep 'custom-button-face) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
57 (facep 'custom-button-pressed-face)) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
58 (set (make-local-variable 'widget-button-face) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
59 'custom-button-face) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
60 (set (make-local-variable 'widget-button-pressed-face) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
61 'custom-button-pressed-face) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
62 (set (make-local-variable 'widget-mouse-face) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
63 'custom-button-pressed-face)) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
64 (when (and (boundp 'custom-raised-buttons) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
65 (symbol-value 'custom-raised-buttons)) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
66 (set (make-local-variable 'widget-push-button-prefix) "") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
67 (set (make-local-variable 'widget-push-button-suffix) "") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
68 (set (make-local-variable 'widget-link-prefix) "") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
69 (set (make-local-variable 'widget-link-suffix) "")) |
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
70 (gnus-run-hooks 'gnus-custom-mode-hook)) |
17493 | 71 |
72 ;;; Group Customization: | |
73 | |
74 (defconst gnus-group-parameters | |
75 '((to-address (gnus-email-address :tag "To Address") "\ | |
76 This will be used when doing followups and posts. | |
77 | |
78 This is primarily useful in mail groups that represent closed | |
79 mailing lists--mailing lists where it's expected that everybody that | |
80 writes to the mailing list is subscribed to it. Since using this | |
81 parameter ensures that the mail only goes to the mailing list itself, | |
82 it means that members won't receive two copies of your followups. | |
83 | |
84 Using `to-address' will actually work whether the group is foreign or | |
85 not. Let's say there's a group on the server that is called | |
86 `fa.4ad-l'. This is a real newsgroup, but the server has gotten the | |
87 articles from a mail-to-news gateway. Posting directly to this group | |
88 is therefore impossible--you have to send mail to the mailing list | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
89 address instead. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
90 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
91 The gnus-group-split mail splitting mechanism will behave as if this |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
92 address was listed in gnus-group-split Addresses (see below).") |
17493 | 93 |
94 (to-list (gnus-email-address :tag "To List") "\ | |
95 This address will be used when doing a `a' in the group. | |
96 | |
97 It is totally ignored when doing a followup--except that if it is | |
98 present in a news group, you'll get mail group semantics when doing | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
99 `f'. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
100 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
101 The gnus-group-split mail splitting mechanism will behave as if this |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
102 address was listed in gnus-group-split Addresses (see below).") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
103 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
104 (extra-aliases (choice |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
105 :tag "Extra Aliases" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
106 (list |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
107 :tag "List" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
108 (editable-list |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
109 :inline t |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
110 (gnus-email-address :tag "Address"))) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
111 (gnus-email-address :tag "Address")) "\ |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
112 Store messages posted from or to this address in this group. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
113 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
114 You must be using gnus-group-split for this to work. The VALUE of the |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
115 nnmail-split-fancy SPLIT generated for this group will match these |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
116 addresses.") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
117 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
118 (split-regexp (regexp :tag "gnus-group-split Regular Expression") "\ |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
119 Like gnus-group-split Address, but expects a regular expression.") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
120 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
121 (split-exclude (list :tag "gnus-group-split Restricts" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
122 (editable-list |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
123 :inline t (regexp :tag "Restrict"))) "\ |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
124 Regular expression that cancels gnus-group-split matches. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
125 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
126 Each entry is added to the nnmail-split-fancy SPLIT as a separate |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
127 RESTRICT clause.") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
128 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
129 (split-spec (choice :tag "gnus-group-split Overrider" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
130 (sexp :tag "Fancy Split") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
131 (const :tag "Catch All" catch-all) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
132 (const :tag "Ignore" nil)) "\ |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
133 Override all other gnus-group-split fields. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
134 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
135 In `Fancy Split', you can enter any nnmail-split-fancy SPLIT. Note |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
136 that the name of this group won't be automatically assumed, you have |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
137 to add it to the SPLITs yourself. This means you can use such splits |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
138 to split messages to other groups too. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
139 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
140 If you select `Catch All', this group will get postings for any |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
141 messages not matched in any other group. It overrides the variable |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
142 gnus-group-split-default-catch-all-group. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
143 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
144 Selecting `Ignore' forces no SPLIT to be generated for this group, |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
145 disabling all other gnus-group-split fields.") |
17493 | 146 |
147 (broken-reply-to (const :tag "Broken Reply To" t) "\ | |
148 Ignore `Reply-To' headers in this group. | |
149 | |
150 That can be useful if you're reading a mailing list group where the | |
151 listserv has inserted `Reply-To' headers that point back to the | |
152 listserv itself. This is broken behavior. So there!") | |
153 | |
154 (to-group (string :tag "To Group") "\ | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
155 All posts will be sent to the specified group.") |
17493 | 156 |
157 (gcc-self (choice :tag "GCC" | |
158 :value t | |
33173
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
159 (const :tag "To current group" t) |
17493 | 160 (const none) |
161 (string :format "%v" :hide-front-space t)) "\ | |
162 Specify default value for GCC header. | |
163 | |
164 If this symbol is present in the group parameter list and set to `t', | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
165 new composed messages will be `Gcc''d to the current group. If it is |
17493 | 166 present and set to `none', no `Gcc:' header will be generated, if it |
167 is present and a string, this string will be inserted literally as a | |
168 `gcc' header (this symbol takes precedence over any default `Gcc' | |
169 rules as described later).") | |
170 | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
171 (banner (choice :tag "Banner" |
33173
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
172 :value nil |
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
173 (const :tag "Remove signature" signature) |
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
174 (symbol :tag "Item in `gnus-article-banner-alist'" none) |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
175 regexp |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
176 (const :tag "None" nil)) "\ |
33173
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
177 If non-nil, specify how to remove `banners' from articles. |
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
178 |
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
179 Symbol `signature' means to remove signatures delimited by |
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
180 `gnus-signature-separator'. Any other symbol is used to look up a |
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
181 regular expression to match the banner in `gnus-article-banner-alist'. |
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
182 A string is used as a regular expression to match the banner |
141bc3acdfbc
(gnus-group-parameters) <gcc-self>: Fix custom type.
Dave Love <fx@gnu.org>
parents:
31716
diff
changeset
|
183 directly.") |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
184 |
17493 | 185 (auto-expire (const :tag "Automatic Expire" t) "\ |
186 All articles that are read will be marked as expirable.") | |
187 | |
188 (total-expire (const :tag "Total Expire" t) "\ | |
189 All read articles will be put through the expiry process | |
190 | |
191 This happens even if they are not marked as expirable. | |
192 Use with caution.") | |
193 | |
194 (expiry-wait (choice :tag "Expire Wait" | |
195 :value never | |
196 (const never) | |
197 (const immediate) | |
198 (number :hide-front-space t | |
199 :format "%v")) "\ | |
200 When to expire. | |
201 | |
202 Overrides any `nnmail-expiry-wait' and `nnmail-expiry-wait-function' | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
203 when expiring expirable messages. The value can either be a number of |
17493 | 204 days (not necessarily an integer) or the symbols `never' or |
205 `immediate'.") | |
206 | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
207 (expiry-target (choice :tag "Expiry Target" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
208 :value delete |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
209 (const delete) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
210 (function :format "%v" nnmail-) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
211 string) "\ |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
212 Where expired messages end up. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
213 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
214 Overrides `nnmail-expiry-target', which see.") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
215 |
17493 | 216 (score-file (file :tag "Score File") "\ |
217 Make the specified file into the current score file. | |
218 This means that all score commands you issue will end up in this file.") | |
219 | |
220 (adapt-file (file :tag "Adapt File") "\ | |
221 Make the specified file into the current adaptive file. | |
222 All adaptive score entries will be put into this file.") | |
223 | |
224 (admin-address (gnus-email-address :tag "Admin Address") "\ | |
225 Administration address for a mailing list. | |
226 | |
227 When unsubscribing to a mailing list you should never send the | |
228 unsubscription notice to the mailing list itself. Instead, you'd | |
229 send messages to the administrative address. This parameter allows | |
230 you to put the admin address somewhere convenient.") | |
231 | |
232 (display (choice :tag "Display" | |
233 :value default | |
234 (const all) | |
235 (const default)) "\ | |
236 Which articles to display on entering the group. | |
237 | |
238 `all' | |
239 Display all articles, both read and unread. | |
240 | |
241 `default' | |
242 Display the default visible articles, which normally includes | |
243 unread and ticked articles.") | |
244 | |
245 (comment (string :tag "Comment") "\ | |
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
246 An arbitrary comment on the group.") |
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
247 |
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
248 (visible (const :tag "Permanently visible" t) "\ |
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
249 Always display this group, even when there are no unread articles |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
250 in it..") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
251 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
252 (charset (symbol :tag "Charset") "\ |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
253 The default charset to use in the group.") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
254 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
255 (ignored-charsets |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
256 (choice :tag "Ignored charsets" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
257 :value nil |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
258 (repeat (symbol))) "\ |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
259 List of charsets that should be ignored. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
260 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
261 When these charsets are used in the \"charset\" parameter, the |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
262 default charset will be used instead.") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
263 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
264 (highlight-words |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
265 (choice :tag "Highlight words" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
266 :value nil |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
267 (repeat (list (regexp :tag "Highlight regexp") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
268 (number :tag "Group for entire word" 0) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
269 (number :tag "Group for displayed part" 0) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
270 (symbol :tag "Face" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
271 gnus-emphasis-highlight-words)))) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
272 "highlight regexps. |
34752
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
273 See gnus-emphasis-alist.") |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
274 |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
275 (posting-style |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
276 (choice :tag "Posting style" |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
277 :value nil |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
278 (repeat (list |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
279 (choice :tag "Type" |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
280 :value nil |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
281 (const signature) |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
282 (const signature-file) |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
283 (const organization) |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
284 (const address) |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
285 (const name) |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
286 (const body)) |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
287 (string :format "%v")))) |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
288 "post style. |
f04f551e94ce
* message.el (message-narrow-to-head-1): New function.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents:
33342
diff
changeset
|
289 See gnus-posting-styles.")) |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
290 "Alist of valid group or topic parameters. |
17493 | 291 |
292 Each entry has the form (NAME TYPE DOC), where NAME is the parameter | |
293 itself (a symbol), TYPE is the parameters type (a sexp widget), and | |
294 DOC is a documentation string for the parameter.") | |
295 | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
296 (defconst gnus-extra-topic-parameters |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
297 '((subscribe (regexp :tag "Subscribe") "\ |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
298 If `gnus-subscribe-newsgroup-method' is set to |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
299 `gnus-subscribe-topics', new groups that matches this regexp will |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
300 automatically be subscribed to this topic")) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
301 "Alist of topic parameters that are not also group parameters. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
302 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
303 Each entry has the form (NAME TYPE DOC), where NAME is the parameter |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
304 itself (a symbol), TYPE is the parameters type (a sexp widget), and |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
305 DOC is a documentation string for the parameter.") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
306 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
307 (defconst gnus-extra-group-parameters |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
308 '((uidvalidity (string :tag "IMAP uidvalidity") "\ |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
309 Server-assigned value attached to IMAP groups, used to maintain consistency.")) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
310 "Alist of group parameters that are not also topic parameters. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
311 |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
312 Each entry has the form (NAME TYPE DOC), where NAME is the parameter |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
313 itself (a symbol), TYPE is the parameters type (a sexp widget), and |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
314 DOC is a documentation string for the parameter.") |
17493 | 315 (defvar gnus-custom-params) |
316 (defvar gnus-custom-method) | |
317 (defvar gnus-custom-group) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
318 (defvar gnus-custom-topic) |
17493 | 319 |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
320 (defun gnus-group-customize (group &optional topic) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
321 "Edit the group or topic on the current line." |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
322 (interactive (list (gnus-group-group-name) (gnus-group-topic-name))) |
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
323 (let (info |
17493 | 324 (types (mapcar (lambda (entry) |
325 `(cons :format "%v%h\n" | |
326 :doc ,(nth 2 entry) | |
327 (const :format "" ,(nth 0 entry)) | |
328 ,(nth 1 entry))) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
329 (append gnus-group-parameters |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
330 (if group |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
331 gnus-extra-group-parameters |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
332 gnus-extra-topic-parameters))))) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
333 (unless (or group topic) |
17493 | 334 (error "No group on current line")) |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
335 (when (and group topic) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
336 (error "Both a group an topic on current line")) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
337 (unless (or topic (setq info (gnus-get-info group))) |
17493 | 338 (error "Killed group; can't be edited")) |
339 ;; Ready. | |
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
340 (kill-buffer (gnus-get-buffer-create "*Gnus Customize*")) |
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
341 (switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*")) |
17493 | 342 (gnus-custom-mode) |
343 (make-local-variable 'gnus-custom-group) | |
344 (setq gnus-custom-group group) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
345 (make-local-variable 'gnus-custom-topic) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
346 (setq gnus-custom-topic topic) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
347 (buffer-disable-undo) |
17493 | 348 (widget-insert "Customize the ") |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
349 (if group |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
350 (widget-create 'info-link |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
351 :help-echo "Push me to learn more." |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
352 :tag "group parameters" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
353 "(gnus)Group Parameters") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
354 (widget-create 'info-link |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
355 :help-echo "Push me to learn more." |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
356 :tag "topic parameters" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
357 "(gnus)Topic Parameters")) |
17493 | 358 (widget-insert " for <") |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
359 (widget-insert (gnus-group-decoded-name (or group topic))) |
17493 | 360 (widget-insert "> and press ") |
361 (widget-create 'push-button | |
362 :tag "done" | |
363 :help-echo "Push me when done customizing." | |
364 :action 'gnus-group-customize-done) | |
365 (widget-insert ".\n\n") | |
366 (make-local-variable 'gnus-custom-params) | |
367 (setq gnus-custom-params | |
368 (widget-create 'group | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
369 :value (if group |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
370 (gnus-info-params info) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
371 (gnus-topic-parameters topic)) |
17493 | 372 `(set :inline t |
373 :greedy t | |
374 :tag "Parameters" | |
375 :format "%t:\n%h%v" | |
376 :doc "\ | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
377 These special parameters are recognized by Gnus. |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
378 Check the [ ] for the parameters you want to apply to this group or |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
379 to the groups in this topic, then edit the value to suit your taste." |
17493 | 380 ,@types) |
381 '(repeat :inline t | |
382 :tag "Variables" | |
383 :format "%t:\n%h%v%i\n\n" | |
384 :doc "\ | |
385 Set variables local to the group you are entering. | |
386 | |
387 If you want to turn threading off in `news.answers', you could put | |
388 `(gnus-show-threads nil)' in the group parameters of that group. | |
389 `gnus-show-threads' will be made into a local variable in the summary | |
390 buffer you enter, and the form `nil' will be `eval'ed there. | |
391 | |
392 This can also be used as a group-specific hook function, if you'd | |
393 like. If you want to hear a beep when you enter a group, you could | |
394 put something like `(dummy-variable (ding))' in the parameters of that | |
395 group. `dummy-variable' will be set to the result of the `(ding)' | |
396 form, but who cares?" | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
397 (list :format "%v" :value (nil nil) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
398 (symbol :tag "Variable") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
399 (sexp :tag |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
400 "Value"))) |
17493 | 401 |
402 '(repeat :inline t | |
403 :tag "Unknown entries" | |
404 sexp))) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
405 (when group |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
406 (widget-insert "\n\nYou can also edit the ") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
407 (widget-create 'info-link |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
408 :tag "select method" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
409 :help-echo "Push me to learn more about select methods." |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
410 "(gnus)Select Methods") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
411 (widget-insert " for the group.\n") |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
412 (setq gnus-custom-method |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
413 (widget-create 'sexp |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
414 :tag "Method" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
415 :value (gnus-info-method info)))) |
17493 | 416 (use-local-map widget-keymap) |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
417 (widget-setup) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
418 (buffer-enable-undo) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
419 (goto-char (point-min)))) |
17493 | 420 |
421 (defun gnus-group-customize-done (&rest ignore) | |
422 "Apply changes and bury the buffer." | |
423 (interactive) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
424 (if gnus-custom-topic |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
425 (gnus-topic-set-parameters gnus-custom-topic |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
426 (widget-value gnus-custom-params)) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
427 (gnus-group-edit-group-done 'params gnus-custom-group |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
428 (widget-value gnus-custom-params)) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
429 (gnus-group-edit-group-done 'method gnus-custom-group |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
430 (widget-value gnus-custom-method))) |
17493 | 431 (bury-buffer)) |
432 | |
433 ;;; Score Customization: | |
434 | |
435 (defconst gnus-score-parameters | |
436 '((mark (number :tag "Mark") "\ | |
437 The value of this entry should be a number. | |
438 Any articles with a score lower than this number will be marked as read.") | |
439 | |
440 (expunge (number :tag "Expunge") "\ | |
441 The value of this entry should be a number. | |
442 Any articles with a score lower than this number will be removed from | |
443 the summary buffer.") | |
444 | |
445 (mark-and-expunge (number :tag "Mark-and-expunge") "\ | |
446 The value of this entry should be a number. | |
447 Any articles with a score lower than this number will be marked as | |
448 read and removed from the summary buffer.") | |
449 | |
450 (thread-mark-and-expunge (number :tag "Thread-mark-and-expunge") "\ | |
451 The value of this entry should be a number. | |
452 All articles that belong to a thread that has a total score below this | |
453 number will be marked as read and removed from the summary buffer. | |
454 `gnus-thread-score-function' says how to compute the total score | |
455 for a thread.") | |
456 | |
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
457 (files (repeat :inline t :tag "Files" file) "\ |
17493 | 458 The value of this entry should be any number of file names. |
459 These files are assumed to be score files as well, and will be loaded | |
460 the same way this one was.") | |
461 | |
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
462 (exclude-files (repeat :inline t :tag "Exclude-files" file) "\ |
17493 | 463 The clue of this entry should be any number of files. |
464 These files will not be loaded, even though they would normally be so, | |
465 for some reason or other.") | |
466 | |
467 (eval (sexp :tag "Eval" :value nil) "\ | |
468 The value of this entry will be `eval'el. | |
469 This element will be ignored when handling global score files.") | |
470 | |
471 (read-only (boolean :tag "Read-only" :value t) "\ | |
472 Read-only score files will not be updated or saved. | |
473 Global score files should feature this atom.") | |
474 | |
475 (orphan (number :tag "Orphan") "\ | |
476 The value of this entry should be a number. | |
477 Articles that do not have parents will get this number added to their | |
478 scores. Imagine you follow some high-volume newsgroup, like | |
479 `comp.lang.c'. Most likely you will only follow a few of the threads, | |
480 also want to see any new threads. | |
481 | |
482 You can do this with the following two score file entries: | |
483 | |
484 (orphan -500) | |
485 (mark-and-expunge -100) | |
486 | |
487 When you enter the group the first time, you will only see the new | |
488 threads. You then raise the score of the threads that you find | |
489 interesting (with `I T' or `I S'), and ignore (`C y') the rest. | |
490 Next time you enter the group, you will see new articles in the | |
491 interesting threads, plus any new threads. | |
492 | |
493 I.e.---the orphan score atom is for high-volume groups where there | |
494 exist a few interesting threads which can't be found automatically | |
495 by ordinary scoring rules.") | |
496 | |
497 (adapt (choice :tag "Adapt" | |
498 (const t) | |
499 (const ignore) | |
500 (sexp :format "%v" | |
501 :hide-front-space t)) "\ | |
502 This entry controls the adaptive scoring. | |
503 If it is `t', the default adaptive scoring rules will be used. If it | |
504 is `ignore', no adaptive scoring will be performed on this group. If | |
505 it is a list, this list will be used as the adaptive scoring rules. | |
506 If it isn't present, or is something other than `t' or `ignore', the | |
507 default adaptive scoring rules will be used. If you want to use | |
508 adaptive scoring on most groups, you'd set `gnus-use-adaptive-scoring' | |
509 to `t', and insert an `(adapt ignore)' in the groups where you do not | |
510 want adaptive scoring. If you only want adaptive scoring in a few | |
511 groups, you'd set `gnus-use-adaptive-scoring' to `nil', and insert | |
512 `(adapt t)' in the score files of the groups where you want it.") | |
513 | |
514 (adapt-file (file :tag "Adapt-file") "\ | |
515 All adaptive score entries will go to the file named by this entry. | |
516 It will also be applied when entering the group. This atom might | |
517 be handy if you want to adapt on several groups at once, using the | |
518 same adaptive file for a number of groups.") | |
519 | |
520 (local (repeat :tag "Local" | |
521 (group :value (nil nil) | |
522 (symbol :tag "Variable") | |
523 (sexp :tag "Value"))) "\ | |
524 The value of this entry should be a list of `(VAR VALUE)' pairs. | |
525 Each VAR will be made buffer-local to the current summary buffer, | |
526 and set to the value specified. This is a convenient, if somewhat | |
527 strange, way of setting variables in some groups if you don't like | |
528 hooks much.") | |
529 (touched (sexp :format "Touched\n") "Internal variable.")) | |
530 "Alist of valid symbolic score parameters. | |
531 | |
532 Each entry has the form (NAME TYPE DOC), where NAME is the parameter | |
533 itself (a symbol), TYPE is the parameters type (a sexp widget), and DOC is a | |
534 documentation string for the parameter.") | |
535 | |
536 (define-widget 'gnus-score-string 'group | |
537 "Edit score entries for string-valued headers." | |
538 :convert-widget 'gnus-score-string-convert) | |
539 | |
540 (defun gnus-score-string-convert (widget) | |
541 ;; Set args appropriately. | |
542 (let* ((tag (widget-get widget :tag)) | |
543 (item `(const :format "" :value ,(downcase tag))) | |
544 (match '(string :tag "Match")) | |
545 (score '(choice :tag "Score" | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
546 (const :tag "default" nil) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
547 (integer :format "%v" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
548 :hide-front-space t))) |
17493 | 549 (expire '(choice :tag "Expire" |
550 (const :tag "off" nil) | |
551 (integer :format "%v" | |
552 :hide-front-space t))) | |
553 (type '(choice :tag "Type" | |
554 :value s | |
555 ;; I should really create a forgiving :match | |
556 ;; function for each type below, that only | |
557 ;; looked at the first letter. | |
558 (const :tag "Regexp" r) | |
559 (const :tag "Regexp (fixed case)" R) | |
560 (const :tag "Substring" s) | |
561 (const :tag "Substring (fixed case)" S) | |
562 (const :tag "Exact" e) | |
563 (const :tag "Exact (fixed case)" E) | |
564 (const :tag "Word" w) | |
565 (const :tag "Word (fixed case)" W) | |
566 (const :tag "default" nil))) | |
567 (group `(group ,match ,score ,expire ,type)) | |
568 (doc (concat (or (widget-get widget :doc) | |
569 (concat "Change score based on the " tag | |
570 " header.\n")) | |
571 " | |
572 You can have an arbitrary number of score entries for this header, | |
573 each score entry has four elements: | |
574 | |
575 1. The \"match element\". This should be the string to look for in the | |
576 header. | |
577 | |
578 2. The \"score element\". This number should be an integer in the | |
579 neginf to posinf interval. This number is added to the score | |
580 of the article if the match is successful. If this element is | |
581 not present, the `gnus-score-interactive-default-score' number | |
582 will be used instead. This is 1000 by default. | |
583 | |
584 3. The \"date element\". This date says when the last time this score | |
585 entry matched, which provides a mechanism for expiring the | |
586 score entries. It this element is not present, the score | |
587 entry is permanent. The date is represented by the number of | |
588 days since December 31, 1 ce. | |
589 | |
590 4. The \"type element\". This element specifies what function should | |
591 be used to see whether this score entry matches the article. | |
592 | |
593 There are the regexp, as well as substring types, and exact match, | |
594 and word match types. If this element is not present, Gnus will | |
595 assume that substring matching should be used. There is case | |
596 sensitive variants of all match types."))) | |
597 (widget-put widget :args `(,item | |
598 (repeat :inline t | |
599 :indent 0 | |
600 :tag ,tag | |
601 :doc ,doc | |
602 :format "%t:\n%h%v%i\n\n" | |
603 (choice :format "%v" | |
604 :value ("" nil nil s) | |
605 ,group | |
606 sexp))))) | |
607 widget) | |
608 | |
609 (define-widget 'gnus-score-integer 'group | |
610 "Edit score entries for integer-valued headers." | |
611 :convert-widget 'gnus-score-integer-convert) | |
612 | |
613 (defun gnus-score-integer-convert (widget) | |
614 ;; Set args appropriately. | |
615 (let* ((tag (widget-get widget :tag)) | |
616 (item `(const :format "" :value ,(downcase tag))) | |
617 (match '(integer :tag "Match")) | |
618 (score '(choice :tag "Score" | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
619 (const :tag "default" nil) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
620 (integer :format "%v" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
621 :hide-front-space t))) |
17493 | 622 (expire '(choice :tag "Expire" |
623 (const :tag "off" nil) | |
624 (integer :format "%v" | |
625 :hide-front-space t))) | |
626 (type '(choice :tag "Type" | |
627 :value < | |
628 (const <) | |
629 (const >) | |
630 (const =) | |
631 (const >=) | |
632 (const <=))) | |
633 (group `(group ,match ,score ,expire ,type)) | |
634 (doc (concat (or (widget-get widget :doc) | |
635 (concat "Change score based on the " tag | |
636 " header."))))) | |
637 (widget-put widget :args `(,item | |
638 (repeat :inline t | |
639 :indent 0 | |
640 :tag ,tag | |
641 :doc ,doc | |
642 :format "%t:\n%h%v%i\n\n" | |
643 ,group)))) | |
644 widget) | |
645 | |
646 (define-widget 'gnus-score-date 'group | |
647 "Edit score entries for date-valued headers." | |
648 :convert-widget 'gnus-score-date-convert) | |
649 | |
650 (defun gnus-score-date-convert (widget) | |
651 ;; Set args appropriately. | |
652 (let* ((tag (widget-get widget :tag)) | |
653 (item `(const :format "" :value ,(downcase tag))) | |
654 (match '(string :tag "Match")) | |
655 (score '(choice :tag "Score" | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
656 (const :tag "default" nil) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
657 (integer :format "%v" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
658 :hide-front-space t))) |
17493 | 659 (expire '(choice :tag "Expire" |
660 (const :tag "off" nil) | |
661 (integer :format "%v" | |
662 :hide-front-space t))) | |
663 (type '(choice :tag "Type" | |
664 :value regexp | |
665 (const regexp) | |
666 (const before) | |
667 (const at) | |
668 (const after))) | |
669 (group `(group ,match ,score ,expire ,type)) | |
670 (doc (concat (or (widget-get widget :doc) | |
671 (concat "Change score based on the " tag | |
672 " header.")) | |
673 " | |
674 For the Date header we have three kinda silly match types: `before', | |
675 `at' and `after'. I can't really imagine this ever being useful, but, | |
676 like, it would feel kinda silly not to provide this function. Just in | |
677 case. You never know. Better safe than sorry. Once burnt, twice | |
678 shy. Don't judge a book by its cover. Never not have sex on a first | |
679 date. (I have been told that at least one person, and I quote, | |
680 \"found this function indispensable\", however.) | |
681 | |
682 A more useful match type is `regexp'. With it, you can match the date | |
683 string using a regular expression. The date is normalized to ISO8601 | |
684 compact format first---`YYYYMMDDTHHMMSS'. If you want to match all | |
685 articles that have been posted on April 1st in every year, you could | |
686 use `....0401.........' as a match string, for instance. (Note that | |
687 the date is kept in its original time zone, so this will match | |
688 articles that were posted when it was April 1st where the article was | |
689 posted from. Time zones are such wholesome fun for the whole family, | |
690 eh?"))) | |
691 (widget-put widget :args `(,item | |
692 (repeat :inline t | |
693 :indent 0 | |
694 :tag ,tag | |
695 :doc ,doc | |
696 :format "%t:\n%h%v%i\n\n" | |
697 ,group)))) | |
698 widget) | |
699 | |
700 (defvar gnus-custom-scores) | |
701 (defvar gnus-custom-score-alist) | |
702 | |
703 (defun gnus-score-customize (file) | |
704 "Customize score file FILE." | |
705 (interactive (list gnus-current-score-file)) | |
706 (let ((scores (gnus-score-load file)) | |
707 (types (mapcar (lambda (entry) | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
708 `(group :format "%v%h\n" |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
709 :doc ,(nth 2 entry) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
710 (const :format "" ,(nth 0 entry)) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
711 ,(nth 1 entry))) |
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
712 gnus-score-parameters))) |
17493 | 713 ;; Ready. |
24357
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
714 (kill-buffer (gnus-get-buffer-create "*Gnus Customize*")) |
15fc6acbae7a
Upgrading to Gnus 5.7; see ChangeLog
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
17493
diff
changeset
|
715 (switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*")) |
17493 | 716 (gnus-custom-mode) |
717 (make-local-variable 'gnus-custom-score-alist) | |
718 (setq gnus-custom-score-alist scores) | |
719 (widget-insert "Customize the ") | |
720 (widget-create 'info-link | |
721 :help-echo "Push me to learn more." | |
722 :tag "score entries" | |
723 "(gnus)Score File Format") | |
724 (widget-insert " for\n\t") | |
725 (widget-insert file) | |
726 (widget-insert "\nand press ") | |
727 (widget-create 'push-button | |
728 :tag "done" | |
729 :help-echo "Push me when done customizing." | |
730 :action 'gnus-score-customize-done) | |
731 (widget-insert ".\n | |
732 Check the [ ] for the entries you want to apply to this score file, then | |
733 edit the value to suit your taste. Don't forget to mark the checkbox, | |
734 if you do all your changes will be lost. ") | |
735 (widget-create 'push-button | |
736 :action (lambda (&rest ignore) | |
737 (require 'gnus-audio) | |
738 (gnus-audio-play "Evil_Laugh.au")) | |
739 "Bhahahah!") | |
740 (widget-insert "\n\n") | |
741 (make-local-variable 'gnus-custom-scores) | |
742 (setq gnus-custom-scores | |
743 (widget-create 'group | |
744 :value scores | |
745 `(checklist :inline t | |
746 :greedy t | |
747 (gnus-score-string :tag "From") | |
748 (gnus-score-string :tag "Subject") | |
749 (gnus-score-string :tag "References") | |
750 (gnus-score-string :tag "Xref") | |
31716
9968f55ad26e
Update to emacs-21-branch of the Gnus CVS repository.
Gerd Moellmann <gerd@gnu.org>
parents:
24357
diff
changeset
|
751 (gnus-score-string :tag "Extra") |
17493 | 752 (gnus-score-string :tag "Message-ID") |
753 (gnus-score-integer :tag "Lines") | |
754 (gnus-score-integer :tag "Chars") | |
755 (gnus-score-date :tag "Date") | |
756 (gnus-score-string :tag "Head" | |
757 :doc "\ | |
758 Match all headers in the article. | |
759 | |
760 Using one of `Head', `Body', `All' will slow down scoring considerable. | |
761 ") | |
762 (gnus-score-string :tag "Body" | |
763 :doc "\ | |
764 Match the body sans header of the article. | |
765 | |
766 Using one of `Head', `Body', `All' will slow down scoring considerable. | |
767 ") | |
768 (gnus-score-string :tag "All" | |
769 :doc "\ | |
770 Match the entire article, including both headers and body. | |
771 | |
772 Using one of `Head', `Body', `All' will slow down scoring | |
773 considerable. | |
774 ") | |
775 (gnus-score-string :tag | |
776 "Followup" | |
777 :doc "\ | |
778 Score all followups to the specified authors. | |
779 | |
780 This entry is somewhat special, in that it will match the `From:' | |
781 header, and affect the score of not only the matching articles, but | |
782 also all followups to the matching articles. This allows you | |
783 e.g. increase the score of followups to your own articles, or decrease | |
784 the score of followups to the articles of some known trouble-maker. | |
785 ") | |
786 (gnus-score-string :tag "Thread" | |
787 :doc "\ | |
788 Add a score entry on all articles that are part of a thread. | |
789 | |
790 This match key works along the same lines as the `Followup' match key. | |
791 If you say that you want to score on a (sub-)thread that is started by | |
792 an article with a `Message-ID' X, then you add a `thread' match. This | |
793 will add a new `thread' match for each article that has X in its | |
794 `References' header. (These new `thread' matches will use the | |
795 `Message-ID's of these matching articles.) This will ensure that you | |
796 can raise/lower the score of an entire thread, even though some | |
797 articles in the thread may not have complete `References' headers. | |
798 Note that using this may lead to undeterministic scores of the | |
799 articles in the thread. | |
800 ") | |
801 ,@types) | |
802 '(repeat :inline t | |
803 :tag "Unknown entries" | |
804 sexp))) | |
805 (use-local-map widget-keymap) | |
806 (widget-setup))) | |
807 | |
808 (defun gnus-score-customize-done (&rest ignore) | |
809 "Reset the score alist with the present value." | |
810 (let ((alist gnus-custom-score-alist) | |
811 (value (widget-value gnus-custom-scores))) | |
812 (setcar alist (car value)) | |
813 (setcdr alist (cdr value)) | |
814 (gnus-score-set 'touched '(t) alist)) | |
815 (bury-buffer)) | |
816 | |
817 ;;; The End: | |
818 | |
819 (provide 'gnus-cus) | |
820 | |
821 ;;; gnus-cus.el ends here |