Mercurial > emacs
annotate lisp/gnus-cus.el @ 20399:04ce86b23ffa
(rmail-decode-quoted-printable): New function
mostly copied from gnus-art.el.
(rmail-hex-string-to-integer): New fn, copied from hexl.el.
(rmail-hex-char-to-integer): Likewise.
(rmail-convert-to-babyl-format): Use rmail-decode-quoted-printable.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Thu, 04 Dec 1997 04:32:03 +0000 |
parents | 14de14552296 |
children |
rev | line source |
---|---|
13401 | 1 ;;; gnus-cus.el --- User friendly customization of Gnus |
15511 | 2 ;; Copyright (C) 1995,96 Free Software Foundation, Inc. |
3 ;; | |
13401 | 4 ;; Author: Per Abrahamsen <abraham@iesd.auc.dk> |
5 ;; Keywords: help, news | |
6 ;; Version: 0.1 | |
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 | |
14169 | 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. | |
13401 | 24 |
25 ;;; Commentary: | |
26 | |
27 ;;; Code: | |
28 | |
29 (require 'custom) | |
30 (require 'gnus-ems) | |
15511 | 31 (require 'browse-url) |
32 (eval-when-compile (require 'cl)) | |
13401 | 33 |
15511 | 34 ;; The following is just helper functions and data, not meant to be set |
13401 | 35 ;; by the user. |
36 (defun gnus-make-face (color) | |
37 ;; Create entry for face with COLOR. | |
15511 | 38 (custom-face-lookup color nil nil nil nil nil)) |
13401 | 39 |
40 (defvar gnus-face-light-name-list | |
41 '("light blue" "light cyan" "light yellow" "light pink" | |
42 "pale green" "beige" "orange" "magenta" "violet" "medium purple" | |
43 "turquoise")) | |
44 | |
45 (defvar gnus-face-dark-name-list | |
15729
612faf2943db
If no dark magenta, use maroon.
Karl Heuer <kwzh@gnu.org>
parents:
15608
diff
changeset
|
46 (list |
612faf2943db
If no dark magenta, use maroon.
Karl Heuer <kwzh@gnu.org>
parents:
15608
diff
changeset
|
47 ;; Not all servers have dark blue in rgb.txt. |
15735
14de14552296
Don't test X colors unless using X.
Karl Heuer <kwzh@gnu.org>
parents:
15729
diff
changeset
|
48 (if (and (eq window-system 'x) (x-color-defined-p "dark blue")) |
14de14552296
Don't test X colors unless using X.
Karl Heuer <kwzh@gnu.org>
parents:
15729
diff
changeset
|
49 "dark blue" |
14de14552296
Don't test X colors unless using X.
Karl Heuer <kwzh@gnu.org>
parents:
15729
diff
changeset
|
50 "royal blue") |
15729
612faf2943db
If no dark magenta, use maroon.
Karl Heuer <kwzh@gnu.org>
parents:
15608
diff
changeset
|
51 "firebrick" "dark green" "OrangeRed" |
612faf2943db
If no dark magenta, use maroon.
Karl Heuer <kwzh@gnu.org>
parents:
15608
diff
changeset
|
52 "dark khaki" "dark violet" "SteelBlue4")) |
13401 | 53 ; CornflowerBlue SeaGreen OrangeRed SteelBlue4 DeepPink3 |
54 ; DarkOlviveGreen4 | |
55 | |
56 (custom-declare '() | |
15511 | 57 '((tag . "Gnus") |
13401 | 58 (doc . "\ |
13985 | 59 The coffee-brewing, all singing, all dancing, kitchen sink newsreader.") |
13401 | 60 (type . group) |
15511 | 61 (data |
62 ((tag . "Visual") | |
63 (doc . "\ | |
64 Gnus can be made colorful and fun or grey and dull as you wish.") | |
65 (type . group) | |
66 (data | |
67 ((tag . "Visual") | |
68 (doc . "Enable visual features. | |
13401 | 69 If `visual' is disabled, there will be no menus and few faces. Most of |
15511 | 70 the visual customization options below will be ignored. Gnus will use |
13401 | 71 less space and be faster as a result.") |
15511 | 72 (default . |
73 (summary-highlight group-highlight | |
74 article-highlight | |
75 mouse-face | |
76 summary-menu group-menu article-menu | |
77 tree-highlight menu highlight | |
78 browse-menu server-menu | |
79 page-marker tree-menu binary-menu pick-menu | |
80 grouplens-menu)) | |
81 (name . gnus-visual) | |
82 (type . sexp)) | |
83 ((tag . "WWW Browser") | |
84 (doc . "\ | |
13401 | 85 WWW Browser to call when clicking on an URL button in the article buffer. |
86 | |
87 You can choose between one of the predefined browsers, or `Other'.") | |
15511 | 88 (name . browse-url-browser-function) |
89 (calculate . (cond ((boundp 'browse-url-browser-function) | |
90 browse-url-browser-function) | |
91 ((fboundp 'w3-fetch) | |
92 'w3-fetch) | |
93 ((eq window-system 'x) | |
94 'gnus-netscape-open-url))) | |
95 (type . choice) | |
96 (data | |
97 ((tag . "W3") | |
98 (type . const) | |
99 (default . w3-fetch)) | |
100 ((tag . "Netscape") | |
101 (type . const) | |
102 (default . browse-url-netscape)) | |
103 ((prompt . "Other") | |
104 (doc . "\ | |
13401 | 105 You must specify the name of a Lisp function here. The lisp function |
106 should open a WWW browser when called with an URL (a string). | |
107 ") | |
15511 | 108 (default . __uninitialized__) |
109 (type . symbol)))) | |
110 ((tag . "Mouse Face") | |
111 (doc . "\ | |
13401 | 112 Face used for group or summary buffer mouse highlighting. |
113 The line beneath the mouse pointer will be highlighted with this | |
114 face.") | |
15511 | 115 (name . gnus-mouse-face) |
15607
b59b140655ee
* gnus-cus.el (()): Make sure that calling `gnus-visual-p' during
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
15511
diff
changeset
|
116 (calculate . (condition-case () |
b59b140655ee
* gnus-cus.el (()): Make sure that calling `gnus-visual-p' during
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
15511
diff
changeset
|
117 (if (gnus-visual-p 'mouse-face 'highlight) |
b59b140655ee
* gnus-cus.el (()): Make sure that calling `gnus-visual-p' during
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
15511
diff
changeset
|
118 (if (boundp 'gnus-mouse-face) |
b59b140655ee
* gnus-cus.el (()): Make sure that calling `gnus-visual-p' during
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
15511
diff
changeset
|
119 gnus-mouse-face |
b59b140655ee
* gnus-cus.el (()): Make sure that calling `gnus-visual-p' during
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
15511
diff
changeset
|
120 'highlight) |
15608
ab9554d34cb3
Wrongly places parens.
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
15607
diff
changeset
|
121 'default) |
ab9554d34cb3
Wrongly places parens.
Lars Magne Ingebrigtsen <larsi@gnus.org>
parents:
15607
diff
changeset
|
122 (error 'default))) |
15511 | 123 (type . face)) |
124 ((tag . "Article Display") | |
125 (doc . "Controls how the article buffer will look. | |
13401 | 126 |
15511 | 127 If you leave the list empty, the article will appear exactly as it is |
128 stored on the disk. The list entries will hide or highlight various | |
129 parts of the article, making it easier to find the information you | |
130 want.") | |
131 (name . gnus-article-display-hook) | |
132 (type . list) | |
133 (calculate | |
134 . (if (and (string-match "xemacs" emacs-version) | |
135 (featurep 'xface)) | |
136 '(gnus-article-hide-headers-if-wanted | |
137 gnus-article-hide-boring-headers | |
138 gnus-article-treat-overstrike | |
139 gnus-article-maybe-highlight | |
140 gnus-article-display-x-face) | |
141 '(gnus-article-hide-headers-if-wanted | |
142 gnus-article-hide-boring-headers | |
143 gnus-article-treat-overstrike | |
144 gnus-article-maybe-highlight))) | |
145 (data | |
146 ((type . repeat) | |
147 (header . nil) | |
148 (data | |
149 (tag . "Filter") | |
150 (type . choice) | |
151 (data | |
152 ((tag . "Treat Overstrike") | |
153 (doc . "\ | |
13401 | 154 Convert use of overstrike into bold and underline. |
155 | |
156 Two identical letters separated by a backspace are displayed as a | |
157 single bold letter, while a letter followed by a backspace and an | |
158 underscore will be displayed as a single underlined letter. This | |
159 technique was developed for old line printers (think about it), and is | |
160 still in use on some newsgroups, in particular the ClariNet | |
13985 | 161 hierarchy. |
13401 | 162 ") |
15511 | 163 (type . const) |
164 (default . | |
165 gnus-article-treat-overstrike)) | |
166 ((tag . "Word Wrap") | |
167 (doc . "\ | |
13401 | 168 Format too long lines. |
169 ") | |
15511 | 170 (type . const) |
171 (default . gnus-article-word-wrap)) | |
172 ((tag . "Remove CR") | |
173 (doc . "\ | |
13401 | 174 Remove carriage returns from an article. |
175 ") | |
15511 | 176 (type . const) |
177 (default . gnus-article-remove-cr)) | |
178 ((tag . "Display X-Face") | |
179 (doc . "\ | |
13401 | 180 Look for an X-Face header and display it if present. |
181 | |
182 See also `X Face Command' for a definition of the external command | |
183 used for decoding and displaying the face. | |
184 ") | |
15511 | 185 (type . const) |
186 (default . gnus-article-display-x-face)) | |
187 ((tag . "Unquote Printable") | |
188 (doc . "\ | |
13985 | 189 Transform MIME quoted printable into 8-bit characters. |
13401 | 190 |
191 Quoted printable is often seen by strings like `=EF' where you would | |
192 expect a non-English letter. | |
193 ") | |
15511 | 194 (type . const) |
195 (default . | |
196 gnus-article-de-quoted-unreadable)) | |
197 ((tag . "Universal Time") | |
198 (doc . "\ | |
13401 | 199 Convert date header to universal time. |
200 ") | |
15511 | 201 (type . const) |
202 (default . gnus-article-date-ut)) | |
203 ((tag . "Local Time") | |
204 (doc . "\ | |
13401 | 205 Convert date header to local timezone. |
206 ") | |
15511 | 207 (type . const) |
208 (default . gnus-article-date-local)) | |
209 ((tag . "Lapsed Time") | |
210 (doc . "\ | |
13401 | 211 Replace date header with a header showing the articles age. |
212 ") | |
15511 | 213 (type . const) |
214 (default . gnus-article-date-lapsed)) | |
215 ((tag . "Highlight") | |
216 (doc . "\ | |
13401 | 217 Highlight headers, citations, signature, and buttons. |
218 ") | |
15511 | 219 (type . const) |
220 (default . gnus-article-highlight)) | |
221 ((tag . "Maybe Highlight") | |
222 (doc . "\ | |
13401 | 223 Highlight headers, signature, and buttons if `Visual' is turned on. |
224 ") | |
15511 | 225 (type . const) |
226 (default . | |
227 gnus-article-maybe-highlight)) | |
228 ((tag . "Highlight Some") | |
229 (doc . "\ | |
13401 | 230 Highlight headers, signature, and buttons. |
231 ") | |
15511 | 232 (type . const) |
233 (default . gnus-article-highlight-some)) | |
234 ((tag . "Highlight Headers") | |
235 (doc . "\ | |
13985 | 236 Highlight headers as specified by `Article Header Highlighting'. |
13401 | 237 ") |
15511 | 238 (type . const) |
239 (default . | |
240 gnus-article-highlight-headers)) | |
241 ((tag . "Highlight Signature") | |
242 (doc . "\ | |
13401 | 243 Highlight the signature as specified by `Article Signature Face'. |
244 ") | |
15511 | 245 (type . const) |
246 (default . | |
247 gnus-article-highlight-signature)) | |
248 ((tag . "Citation") | |
249 (doc . "\ | |
13401 | 250 Highlight the citations as specified by `Citation Faces'. |
251 ") | |
15511 | 252 (type . const) |
253 (default . | |
254 gnus-article-highlight-citation)) | |
255 ((tag . "Hide") | |
256 (doc . "\ | |
13401 | 257 Hide unwanted headers, excess citation, and the signature. |
258 ") | |
15511 | 259 (type . const) |
260 (default . gnus-article-hide)) | |
261 ((tag . "Hide Headers If Wanted") | |
262 (doc . "\ | |
13401 | 263 Hide headers, but allow user to display them with `t' or `v'. |
264 ") | |
15511 | 265 (type . const) |
266 (default . | |
267 gnus-article-hide-headers-if-wanted)) | |
268 ((tag . "Hide Headers") | |
269 (doc . "\ | |
13401 | 270 Hide unwanted headers and possibly sort them as well. |
271 Most likely you want to use `Hide Headers If Wanted' instead. | |
272 ") | |
15511 | 273 (type . const) |
274 (default . gnus-article-hide-headers)) | |
275 ((tag . "Hide Signature") | |
276 (doc . "\ | |
13401 | 277 Hide the signature. |
278 ") | |
15511 | 279 (type . const) |
280 (default . gnus-article-hide-signature)) | |
281 ((tag . "Hide Excess Citations") | |
282 (doc . "\ | |
13401 | 283 Hide excess citation. |
284 | |
285 Excess is defined by `Citation Hide Percentage' and `Citation Hide Absolute'. | |
286 ") | |
15511 | 287 (type . const) |
288 (default . | |
289 gnus-article-hide-citation-maybe)) | |
290 ((tag . "Hide Citations") | |
291 (doc . "\ | |
13401 | 292 Hide all cited text. |
293 ") | |
15511 | 294 (type . const) |
295 (default . gnus-article-hide-citation)) | |
296 ((tag . "Add Buttons") | |
297 (doc . "\ | |
13401 | 298 Make URL's into clickable buttons. |
299 ") | |
15511 | 300 (type . const) |
301 (default . gnus-article-add-buttons)) | |
302 ((prompt . "Other") | |
303 (doc . "\ | |
13401 | 304 Name of Lisp function to call. |
305 | |
306 Push the `Filter' button to select one of the predefined filters. | |
307 ") | |
15511 | 308 (type . symbol))))))) |
309 ((tag . "Article Button Face") | |
310 (doc . "\ | |
13401 | 311 Face used for highlighting buttons in the article buffer. |
312 | |
313 An article button is a piece of text that you can activate by pressing | |
314 `RET' or `mouse-2' above it.") | |
15511 | 315 (name . gnus-article-button-face) |
316 (default . bold) | |
317 (type . face)) | |
318 ((tag . "Article Mouse Face") | |
319 (doc . "\ | |
13401 | 320 Face used for mouse highlighting in the article buffer. |
321 | |
322 Article buttons will be displayed in this face when the cursor is | |
323 above them.") | |
15511 | 324 (name . gnus-article-mouse-face) |
325 (default . highlight) | |
326 (type . face)) | |
327 ((tag . "Article Signature Face") | |
328 (doc . "\ | |
13401 | 329 Face used for highlighting a signature in the article buffer.") |
15511 | 330 (name . gnus-signature-face) |
331 (default . italic) | |
332 (type . face)) | |
333 ((tag . "Article Header Highlighting") | |
334 (doc . "\ | |
13401 | 335 Controls highlighting of article header. |
336 | |
337 Below is a list of article header names, and the faces used for | |
338 displaying the name and content of the header. The `Header' field | |
339 should contain the name of the header. The field actually contains a | |
340 regular expression that should match the beginning of the header line, | |
341 but if you don't know what a regular expression is, just write the | |
342 name of the header. The second field is the `Name' field, which | |
343 determines how the the header name (i.e. the part of the header left | |
344 of the `:') is displayed. The third field is the `Content' field, | |
345 which determines how the content (i.e. the part of the header right of | |
346 the `:') is displayed. | |
347 | |
348 If you leave the last `Header' field in the list empty, the `Name' and | |
349 `Content' fields will determine how headers not listed above are | |
350 displayed. | |
351 | |
352 If you only want to change the display of the name part for a specific | |
353 header, specify `None' in the `Content' field. Similarly, specify | |
354 `None' in the `Name' field if you only want to leave the name part | |
355 alone.") | |
15511 | 356 (name . gnus-header-face-alist) |
357 (type . list) | |
358 (calculate | |
359 . (cond | |
360 ((not (eq gnus-display-type 'color)) | |
361 '(("" bold italic))) | |
362 ((eq gnus-background-mode 'dark) | |
363 (list | |
364 (list "From" nil | |
365 (custom-face-lookup "light blue" nil nil t t nil)) | |
366 (list "Subject" nil | |
367 (custom-face-lookup "pink" nil nil t t nil)) | |
368 (list "Newsgroups:.*," nil | |
369 (custom-face-lookup "yellow" nil nil t t nil)) | |
370 (list | |
371 "" | |
372 (custom-face-lookup "cyan" nil nil t nil nil) | |
373 (custom-face-lookup "forestgreen" nil nil nil t | |
374 nil)))) | |
375 (t | |
376 (list | |
377 (list "From" nil | |
378 (custom-face-lookup "MidnightBlue" nil nil t t nil)) | |
379 (list "Subject" nil | |
380 (custom-face-lookup "firebrick" nil nil t t nil)) | |
381 (list "Newsgroups:.*," nil | |
382 (custom-face-lookup "indianred" nil nil t t nil)) | |
383 (list "" | |
384 (custom-face-lookup | |
385 "DarkGreen" nil nil t nil nil) | |
386 (custom-face-lookup "DarkGreen" nil nil | |
387 nil t nil)))))) | |
388 (data | |
389 ((type . repeat) | |
390 (header . nil) | |
391 (data | |
392 (type . list) | |
393 (compact . t) | |
394 (data | |
395 ((type . string) | |
396 (prompt . "Header") | |
397 (tag . "Header ")) | |
398 "\n " | |
399 ((type . face) | |
400 (prompt . "Name") | |
401 (tag . "Name ")) | |
402 "\n " | |
403 ((type . face) | |
404 (tag . "Content")) | |
405 "\n"))))) | |
406 ((tag . "Attribution Face") | |
407 (doc . "\ | |
13401 | 408 Face used for attribution lines. |
409 It is merged with the face for the cited text belonging to the attribution.") | |
15511 | 410 (name . gnus-cite-attribution-face) |
411 (default . underline) | |
412 (type . face)) | |
413 ((tag . "Citation Faces") | |
414 (doc . "\ | |
13401 | 415 List of faces used for highlighting citations. |
416 | |
417 When there are citations from multiple articles in the same message, | |
418 Gnus will try to give each citation from each article its own face. | |
419 This should make it easier to see who wrote what.") | |
15511 | 420 (name . gnus-cite-face-list) |
421 (import . gnus-custom-import-cite-face-list) | |
422 (type . list) | |
423 (calculate . (cond ((not (eq gnus-display-type 'color)) | |
424 '(italic)) | |
425 ((eq gnus-background-mode 'dark) | |
426 (mapcar 'gnus-make-face | |
427 gnus-face-light-name-list)) | |
428 (t | |
429 (mapcar 'gnus-make-face | |
430 gnus-face-dark-name-list)))) | |
431 (data | |
432 ((type . repeat) | |
433 (header . nil) | |
434 (data (type . face) | |
435 (tag . "Face"))))) | |
436 ((tag . "Citation Hide Percentage") | |
437 (doc . "\ | |
13401 | 438 Only hide excess citation if above this percentage of the body.") |
15511 | 439 (name . gnus-cite-hide-percentage) |
440 (default . 50) | |
441 (type . integer)) | |
442 ((tag . "Citation Hide Absolute") | |
443 (doc . "\ | |
13401 | 444 Only hide excess citation if above this number of lines in the body.") |
15511 | 445 (name . gnus-cite-hide-absolute) |
446 (default . 10) | |
447 (type . integer)) | |
448 ((tag . "Summary Selected Face") | |
449 (doc . "\ | |
13401 | 450 Face used for highlighting the current article in the summary buffer.") |
15511 | 451 (name . gnus-summary-selected-face) |
452 (default . underline) | |
453 (type . face)) | |
454 ((tag . "Summary Line Highlighting") | |
455 (doc . "\ | |
13985 | 456 Controls the highlighting of summary buffer lines. |
13401 | 457 |
458 Below is a list of `Form'/`Face' pairs. When deciding how a a | |
459 particular summary line should be displayed, each form is | |
460 evaluated. The content of the face field after the first true form is | |
461 used. You can change how those summary lines are displayed, by | |
462 editing the face field. | |
463 | |
464 It is also possible to change and add form fields, but currently that | |
465 requires an understanding of Lisp expressions. Hopefully this will | |
466 change in a future release. For now, you can use the following | |
467 variables in the Lisp expression: | |
468 | |
469 score: The article's score | |
470 default: The default article score. | |
471 below: The score below which articles are automatically marked as read. | |
472 mark: The article's mark.") | |
15511 | 473 (name . gnus-summary-highlight) |
474 (type . list) | |
475 (calculate | |
476 . (cond | |
477 ((not (eq gnus-display-type 'color)) | |
478 '(((> score default) . bold) | |
479 ((< score default) . italic))) | |
480 ((eq gnus-background-mode 'dark) | |
481 (list | |
482 (cons | |
483 '(= mark gnus-canceled-mark) | |
484 (custom-face-lookup "yellow" "black" nil | |
485 nil nil nil)) | |
486 (cons '(and (> score default) | |
487 (or (= mark gnus-dormant-mark) | |
488 (= mark gnus-ticked-mark))) | |
489 (custom-face-lookup | |
490 "pink" nil nil t nil nil)) | |
491 (cons '(and (< score default) | |
492 (or (= mark gnus-dormant-mark) | |
493 (= mark gnus-ticked-mark))) | |
494 (custom-face-lookup "pink" nil nil | |
495 nil t nil)) | |
496 (cons '(or (= mark gnus-dormant-mark) | |
497 (= mark gnus-ticked-mark)) | |
498 (custom-face-lookup | |
499 "pink" nil nil nil nil nil)) | |
13401 | 500 |
15511 | 501 (cons |
502 '(and (> score default) (= mark gnus-ancient-mark)) | |
503 (custom-face-lookup "medium blue" nil nil t | |
504 nil nil)) | |
505 (cons | |
506 '(and (< score default) (= mark gnus-ancient-mark)) | |
507 (custom-face-lookup "SkyBlue" nil nil | |
508 nil t nil)) | |
509 (cons | |
510 '(= mark gnus-ancient-mark) | |
511 (custom-face-lookup "SkyBlue" nil nil | |
512 nil nil nil)) | |
513 (cons '(and (> score default) (= mark gnus-unread-mark)) | |
514 (custom-face-lookup "white" nil nil t | |
515 nil nil)) | |
516 (cons '(and (< score default) (= mark gnus-unread-mark)) | |
517 (custom-face-lookup "white" nil nil | |
518 nil t nil)) | |
519 (cons '(= mark gnus-unread-mark) | |
520 (custom-face-lookup | |
521 "white" nil nil nil nil nil)) | |
13401 | 522 |
15511 | 523 (cons '(> score default) 'bold) |
524 (cons '(< score default) 'italic))) | |
525 (t | |
526 (list | |
527 (cons | |
528 '(= mark gnus-canceled-mark) | |
529 (custom-face-lookup | |
530 "yellow" "black" nil nil nil nil)) | |
531 (cons '(and (> score default) | |
532 (or (= mark gnus-dormant-mark) | |
533 (= mark gnus-ticked-mark))) | |
534 (custom-face-lookup "firebrick" nil nil | |
535 t nil nil)) | |
536 (cons '(and (< score default) | |
537 (or (= mark gnus-dormant-mark) | |
538 (= mark gnus-ticked-mark))) | |
539 (custom-face-lookup "firebrick" nil nil | |
540 nil t nil)) | |
541 (cons | |
542 '(or (= mark gnus-dormant-mark) | |
543 (= mark gnus-ticked-mark)) | |
544 (custom-face-lookup | |
545 "firebrick" nil nil nil nil nil)) | |
546 | |
547 (cons '(and (> score default) (= mark gnus-ancient-mark)) | |
548 (custom-face-lookup "RoyalBlue" nil nil | |
549 t nil nil)) | |
550 (cons '(and (< score default) (= mark gnus-ancient-mark)) | |
551 (custom-face-lookup "RoyalBlue" nil nil | |
552 nil t nil)) | |
553 (cons | |
554 '(= mark gnus-ancient-mark) | |
555 (custom-face-lookup | |
556 "RoyalBlue" nil nil nil nil nil)) | |
557 | |
558 (cons '(and (> score default) (/= mark gnus-unread-mark)) | |
559 (custom-face-lookup "DarkGreen" nil nil | |
560 t nil nil)) | |
561 (cons '(and (< score default) (/= mark gnus-unread-mark)) | |
562 (custom-face-lookup "DarkGreen" nil nil | |
563 nil t nil)) | |
564 (cons | |
565 '(/= mark gnus-unread-mark) | |
566 (custom-face-lookup "DarkGreen" nil nil | |
567 nil nil nil)) | |
13401 | 568 |
15511 | 569 (cons '(> score default) 'bold) |
570 (cons '(< score default) 'italic))))) | |
571 (data | |
572 ((type . repeat) | |
573 (header . nil) | |
574 (data (type . pair) | |
575 (compact . t) | |
576 (data ((type . sexp) | |
577 (width . 60) | |
578 (tag . "Form")) | |
579 "\n " | |
580 ((type . face) | |
581 (tag . "Face")) | |
582 "\n"))))) | |
13401 | 583 |
15511 | 584 ((tag . "Group Line Highlighting") |
585 (doc . "\ | |
586 Controls the highlighting of group buffer lines. | |
587 | |
588 Below is a list of `Form'/`Face' pairs. When deciding how a a | |
589 particular group line should be displayed, each form is | |
590 evaluated. The content of the face field after the first true form is | |
591 used. You can change how those group lines are displayed by | |
592 editing the face field. | |
593 | |
594 It is also possible to change and add form fields, but currently that | |
595 requires an understanding of Lisp expressions. Hopefully this will | |
596 change in a future release. For now, you can use the following | |
597 variables in the Lisp expression: | |
13401 | 598 |
15511 | 599 group: The name of the group. |
600 unread: The number of unread articles in the group. | |
601 method: The select method used. | |
602 mailp: Whether it's a mail group or not. | |
603 level: The level of the group. | |
604 score: The score of the group. | |
605 ticked: The number of ticked articles.") | |
606 (name . gnus-group-highlight) | |
607 (type . list) | |
608 (calculate | |
609 . (cond | |
610 ((not (eq gnus-display-type 'color)) | |
611 '((mailp . bold) | |
612 ((= unread 0) . italic))) | |
613 ((eq gnus-background-mode 'dark) | |
614 `(((and (not mailp) (eq level 1)) . | |
615 ,(custom-face-lookup "PaleTurquoise" nil nil t)) | |
616 ((and (not mailp) (eq level 2)) . | |
617 ,(custom-face-lookup "turquoise" nil nil t)) | |
618 ((and (not mailp) (eq level 3)) . | |
619 ,(custom-face-lookup "MediumTurquoise" nil nil t)) | |
620 ((and (not mailp) (>= level 4)) . | |
621 ,(custom-face-lookup "DarkTurquoise" nil nil t)) | |
622 ((and mailp (eq level 1)) . | |
623 ,(custom-face-lookup "aquamarine1" nil nil t)) | |
624 ((and mailp (eq level 2)) . | |
625 ,(custom-face-lookup "aquamarine2" nil nil t)) | |
626 ((and mailp (eq level 3)) . | |
627 ,(custom-face-lookup "aquamarine3" nil nil t)) | |
628 ((and mailp (>= level 4)) . | |
629 ,(custom-face-lookup "aquamarine4" nil nil t)) | |
630 )) | |
631 (t | |
632 `(((and (not mailp) (<= level 3)) . | |
633 ,(custom-face-lookup "ForestGreen" nil nil t)) | |
634 ((and (not mailp) (eq level 4)) . | |
635 ,(custom-face-lookup "DarkGreen" nil nil t)) | |
636 ((and (not mailp) (eq level 5)) . | |
637 ,(custom-face-lookup "CadetBlue4" nil nil t)) | |
638 ((and mailp (eq level 1)) . | |
639 ,(custom-face-lookup "DeepPink3" nil nil t)) | |
640 ((and mailp (eq level 2)) . | |
641 ,(custom-face-lookup "HotPink3" nil nil t)) | |
642 ((and mailp (eq level 3)) . | |
15729
612faf2943db
If no dark magenta, use maroon.
Karl Heuer <kwzh@gnu.org>
parents:
15608
diff
changeset
|
643 ,(custom-face-lookup |
612faf2943db
If no dark magenta, use maroon.
Karl Heuer <kwzh@gnu.org>
parents:
15608
diff
changeset
|
644 ;; Not all servers have dark magenta in rgb.txt. |
15735
14de14552296
Don't test X colors unless using X.
Karl Heuer <kwzh@gnu.org>
parents:
15729
diff
changeset
|
645 (if (and (eq window-system 'x) |
14de14552296
Don't test X colors unless using X.
Karl Heuer <kwzh@gnu.org>
parents:
15729
diff
changeset
|
646 (x-color-defined-p "dark magenta")) |
15729
612faf2943db
If no dark magenta, use maroon.
Karl Heuer <kwzh@gnu.org>
parents:
15608
diff
changeset
|
647 "dark magenta" |
612faf2943db
If no dark magenta, use maroon.
Karl Heuer <kwzh@gnu.org>
parents:
15608
diff
changeset
|
648 "maroon") |
612faf2943db
If no dark magenta, use maroon.
Karl Heuer <kwzh@gnu.org>
parents:
15608
diff
changeset
|
649 nil nil t)) |
15511 | 650 ((and mailp (eq level 4)) . |
651 ,(custom-face-lookup "DeepPink4" nil nil t)) | |
652 ((and mailp (> level 4)) . | |
653 ,(custom-face-lookup "DarkOrchid4" nil nil t)) | |
654 )))) | |
655 (data | |
656 ((type . repeat) | |
657 (header . nil) | |
658 (data (type . pair) | |
659 (compact . t) | |
660 (data ((type . sexp) | |
661 (width . 60) | |
662 (tag . "Form")) | |
663 "\n " | |
664 ((type . face) | |
665 (tag . "Face")) | |
666 "\n"))))) | |
667 | |
668 ;; Do not define `gnus-button-alist' before we have | |
669 ;; some `complexity' attribute so we can hide it from | |
670 ;; beginners. | |
671 ))))) | |
13401 | 672 |
673 (defun gnus-custom-import-cite-face-list (custom alist) | |
13985 | 674 ;; Backward compatible grokking of light and dark. |
13401 | 675 (cond ((eq alist 'light) |
676 (setq alist (mapcar 'gnus-make-face gnus-face-light-name-list))) | |
677 ((eq alist 'dark) | |
678 (setq alist (mapcar 'gnus-make-face gnus-face-dark-name-list)))) | |
679 (funcall (custom-super custom 'import) custom alist)) | |
680 | |
681 (provide 'gnus-cus) | |
682 | |
683 ;;; gnus-cus.el ends here |