1;;; wl-highlight.el --- Hilight modules for Wanderlust.  -*- lexical-binding: t -*-
2
3;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
4;;  Yuuichi Teranishi <teranisi@gohome.org>
5
6;; Author: Yuuichi Teranishi <teranisi@gohome.org>
7;; Keywords: mail, net news
8
9;; This file is part of Wanderlust (Yet Another Message Interface on Emacsen).
10
11;; This program is free software; you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation; either version 2, or (at your option)
14;; any later version.
15;;
16;; This program is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19;; GNU General Public License for more details.
20;;
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs; see the file COPYING.  If not, write to the
23;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24;; Boston, MA 02111-1307, USA.
25;;
26
27;;; Commentary:
28;;
29
30;;; Code:
31;;
32
33(require 'invisible)
34(require 'wl-vars)
35
36(provide 'wl-highlight)
37
38(defgroup wl-faces nil
39  "Wanderlust, Faces."
40  :prefix "wl-highlight-"
41  :group 'wl-highlight
42  :group 'wl)
43
44(defgroup wl-summary-faces nil
45  "Wanderlust, Faces of summary buffer."
46  :prefix "wl-highlight-"
47  :group 'wl-highlight
48  :group 'wl-summary)
49
50(defgroup wl-folder-faces nil
51  "Wanderlust, Faces of folder buffer."
52  :prefix "wl-highlight-"
53  :group 'wl-highlight
54  :group 'wl-folder)
55
56(defgroup wl-message-faces nil
57  "Wanderlust, Faces of message buffer."
58  :prefix "wl-highlight-"
59  :group 'wl-highlight)
60
61;; for message header and signature
62
63(defface wl-highlight-message-headers
64  '((((type graphic)
65      (background dark))
66     (:foreground "gray" :bold t))
67    (((type tty)
68      (min-colors 16777216)
69      (background dark))
70     (:foreground "gray" :bold t))
71    (((type tty)
72      (min-colors 256)
73      (background dark))
74     (:foreground "color-250" :bold t))
75    (((type tty)
76      (min-colors 88)
77      (background dark))
78     (:foreground "color-85" :bold t))
79    (((type tty)
80      (background dark))
81     (:foreground "white" :bold t))
82    (((type graphic)
83      (background light))
84     (:foreground "gray50" :bold t))
85    (((type tty)
86      (min-colors 16777216)
87      (background light))
88     (:foreground "gray50" :bold t))
89    (((type tty)
90      (min-colors 16)
91      (background light))
92     (:foreground "brightblack" :bold t))
93    (((type tty)
94      (background light))
95     (:bold t)))
96  "Face used for displaying header names."
97  :group 'wl-message-faces
98  :group 'wl-faces)
99
100(defface wl-highlight-message-header-contents
101  '((((type graphic)
102      (background dark))
103     (:foreground "LightSkyBlue" :bold t))
104    (((type tty)
105      (min-colors 16777216)
106      (background dark))
107     (:foreground "LightSkyBlue" :bold t))
108    (((type tty)
109      (min-colors 256)
110      (background dark))
111     (:foreground "color-117" :bold t))
112    (((type tty)
113      (min-colors 88)
114      (background dark))
115     (:foreground "color-43" :bold t))
116    (((type tty)
117      (background dark))
118     (:foreground "cyan" :bold t))
119    (((type graphic)
120      (background light))
121     (:foreground "purple" :bold t))
122    (((type tty)
123      (min-colors 16777216)
124      (background light))
125     (:foreground "purple" :bold t))
126    (((type tty)
127      (min-colors 256)
128      (background light))
129     (:foreground "color-129" :bold t))
130    (((type tty)
131      (min-colors 88)
132      (background light))
133     (:foreground "color-35" :bold t))
134    (((type tty)
135      (background light))
136     (:foreground "magenta" :bold t)))
137  "Face used for displaying header content."
138  :group 'wl-message-faces
139  :group 'wl-faces)
140
141(defface wl-highlight-message-important-header-contents
142  '((((type graphic)
143      (background dark))
144     (:foreground "yellow" :bold t))
145    (((type tty)
146      (min-colors 16)
147      (background dark))
148     (:foreground "brightyellow" :bold t))
149    (((type tty)
150      (background dark))
151     (:foreground "yellow" :bold t))
152    (((type graphic)
153      (background light))
154     (:foreground "brown" :bold t))
155    (((type tty)
156      (min-colors 16777216)
157      (background light))
158     (:foreground "brown" :bold t))
159    (((type tty)
160      (min-colors 256)
161      (background light))
162     (:foreground "color-124" :bold t))
163    (((type tty)
164      (min-colors 88)
165      (background light))
166     (:foreground "color-32" :bold t))
167    (((type tty)
168      (background light))
169     (:foreground "red" :bold t)))
170  "Face used for displaying contents of special headers."
171  :group 'wl-message-faces
172  :group 'wl-faces)
173
174(defface wl-highlight-message-important-header-contents2
175  '((((type graphic)
176      (background dark))
177     (:foreground "orange" :bold t))
178    (((type tty)
179      (min-colors 16777216)
180      (background dark))
181     (:foreground "orange" :bold t))
182    (((type tty)
183      (min-colors 256)
184      (background dark))
185     (:foreground "color-214" :bold t))
186    (((type tty)
187      (min-colors 88)
188      (background dark))
189     (:foreground "color-68" :bold t))
190    (((type tty)
191      (background dark))
192     (:foreground "yellow" :bold t))
193    (((type graphic)
194      (background light))
195     (:foreground "DarkSlateBlue" :bold t))
196    (((type tty)
197      (min-colors 16777216)
198      (background light))
199     (:foreground "DarkSlateBlue" :bold t))
200    (((type tty)
201      (min-colors 256)
202      (background light))
203     (:foreground "color-60" :bold t))
204    (((type tty)
205      (min-colors 88)
206      (background light))
207     (:foreground "color-81" :bold t))
208    (((type tty)
209      (background light))
210     (:foreground "blue" :bold t)))
211  "Face used for displaying contents of special headers."
212  :group 'wl-message-faces
213  :group 'wl-faces)
214
215(defface wl-highlight-message-citation-header
216  '((((type graphic)
217      (background dark))
218     (:foreground "SkyBlue"))
219    (((type tty)
220      (min-colors 16777216)
221      (background dark))
222     (:foreground "SkyBlue"))
223    (((type tty)
224      (min-colors 256)
225      (background dark))
226     (:foreground "color-117"))
227    (((type tty)
228      (min-colors 88)
229      (background dark))
230     (:foreground "color-43"))
231    (((type tty)
232      (background dark))
233     (:foreground "cyan"))
234    (((type graphic)
235      (background light))
236     (:foreground "DarkGreen"))
237    (((type tty)
238      (min-colors 16777216)
239      (background light))
240     (:foreground "DarkGreen"))
241    (((type tty)
242      (min-colors 256)
243      (background light))
244     (:foreground "color-22"))
245    (((type tty)
246      (min-colors 88)
247      (background light))
248     (:foreground "color-20"))
249    (((type tty)
250      (background light))
251     (:foreground "black")))
252  "Face used for displaying header of quoted texts."
253  :group 'wl-message-faces
254  :group 'wl-faces)
255
256(defface wl-highlight-message-unimportant-header-contents
257  '((((type graphic)
258      (background dark))
259     (:foreground "GreenYellow" :bold t))
260    (((type tty)
261      (min-colors 16777216)
262      (background dark))
263     (:foreground "GreenYellow" :bold t))
264    (((type tty)
265      (min-colors 256)
266      (background dark))
267     (:foreground "color-154" :bold t))
268    (((type tty)
269      (min-colors 88)
270      (background dark))
271     (:foreground "color-154" :bold t))
272    (((type tty)
273      (background dark))
274     (:foreground "green" :bold t))
275    (((type graphic)
276      (background light))
277     (:foreground "DarkGreen" :bold t))
278    (((type tty)
279      (min-colors 16777216)
280      (background light))
281     (:foreground "DarkGreen" :bold t))
282    (((type tty)
283      (min-colors 256)
284      (background light))
285     (:foreground "color-22" :bold t))
286    (((type tty)
287      (min-colors 88)
288      (background light))
289     (:foreground "color-20" :bold t))
290    (((type tty)
291      (background light))
292     (:foreground "black" :bold t)))
293  "Face used for displaying contents of unimportant headers."
294  :group 'wl-message-faces
295  :group 'wl-faces)
296
297(defface wl-highlight-message-signature
298  '((((type graphic)
299      (background dark))
300     (:foreground "khaki"))
301    (((type tty)
302      (min-colors 16777216)
303      (background dark))
304     (:foreground "khaki"))
305    (((type tty)
306      (min-colors 256)
307      (background dark))
308     (:foreground "color-222"))
309    (((type tty)
310      (min-colors 88)
311      (background dark))
312     (:foreground "color-77"))
313    (((type tty)
314      (background dark))
315     (:foreground "white"))
316    (((type graphic)
317      (background light))
318     (:foreground "DarkSlateBlue"))
319    (((type tty)
320      (min-colors 16777216)
321      (background light))
322     (:foreground "DarkSlateBlue"))
323    (((type tty)
324      (min-colors 256)
325      (background light))
326     (:foreground "color-60"))
327    (((type tty)
328      (min-colors 88)
329      (background light))
330     (:foreground "color-81"))
331    (((type tty)
332      (background light))
333     (:foreground "blue")))
334  "Face used for displaying signature."
335  :group 'wl-message-faces
336  :group 'wl-faces)
337
338;; for draft
339
340(defface wl-highlight-header-separator-face
341  '((((type graphic))
342     (:foreground "Black" :background "DarkKhaki"))
343    (((type tty)
344      (min-colors 16777216))
345     (:foreground "Black" :background "DarkKhaki"))
346    (((type tty)
347      (min-colors 256))
348     (:foreground "black" :background "color-143"))
349    (((type tty)
350      (min-colors 88))
351     (:foreground "black" :background "color-57"))
352    (((type tty)
353      (background dark))
354     (:foreground "black" :background "yellow")))
355  "Face used for displaying header separator."
356  :group 'wl-draft
357  :group 'wl-faces)
358
359;; important messages
360
361(defface wl-highlight-summary-flagged-face
362  '((((type graphic)
363      (background dark))
364     (:foreground "orange"))
365    (((type tty)
366      (min-colors 16777216)
367      (background dark))
368     (:foreground "orange"))
369    (((type tty)
370      (min-colors 256)
371      (background dark))
372     (:foreground "color-214"))
373    (((type tty)
374      (min-colors 88)
375      (background dark))
376     (:foreground "color-68"))
377    (((type tty)
378      (background dark))
379     (:foreground "yellow"))
380    (((type graphic)
381      (background light))
382     (:foreground "purple"))
383    (((type tty)
384      (min-colors 16777216)
385      (background light))
386     (:foreground "purple"))
387    (((type tty)
388      (min-colors 256)
389      (background light))
390     (:foreground "color-129"))
391    (((type tty)
392      (min-colors 88)
393      (background light))
394     (:foreground "color-35"))
395    (((type tty)
396      (background light))
397     (:foreground "magenta")))
398  "Face used for displaying flagged messages."
399  :group 'wl-summary-faces
400  :group 'wl-faces)
401
402(defface wl-highlight-summary-new-face
403  '((((type graphic))
404     (:foreground "tomato"))
405    (((type tty)
406      (min-colors 16777216))
407     (:foreground "tomato"))
408    (((type tty)
409      (min-colors 256))
410     (:foreground "color-203"))
411    (((type tty)
412      (min-colors 88))
413     (:foreground "color-69"))
414    (((type tty)
415      (min-colors 16))
416     (:foreground "brightred"))
417    (((type tty))
418     (:foreground "red")))
419  "Face used for displaying new messages."
420  :group 'wl-summary-faces
421  :group 'wl-faces)
422
423(defface wl-highlight-summary-killed-face
424  '((((type graphic)
425      (background dark))
426     (:foreground "gray"))
427    (((type tty)
428      (min-colors 16777216)
429      (background dark))
430     (:foreground "gray"))
431    (((type tty)
432      (min-colors 256)
433      (background dark))
434     (:foreground "color-250"))
435    (((type tty)
436      (min-colors 88)
437      (background dark))
438     (:foreground "color-285"))
439    (((type tty)
440      (background dark))
441     (:foreground "white"))
442    (((type graphic)
443      (background light))
444     (:foreground "LightSlateGray"))
445    (((type tty)
446      (min-colors 16777216)
447      (background light))
448     (:foreground "LightSlateGray"))
449    (((type tty)
450      (min-colors 256)
451      (background light))
452     (:foreground "color-102"))
453    (((type tty)
454      (min-colors 88)
455      (background light))
456     (:foreground "color-83"))
457    (((type tty)
458      (min-colors 16)
459      (background light))
460     (:foreground "brightblack"))
461    (((type tty)
462      (background light))
463     (:foreground "cyan")))
464  "Face used for displaying killed messages."
465  :group 'wl-summary-faces
466  :group 'wl-faces)
467
468(defface wl-highlight-summary-displaying-face
469  '((t
470     (:underline t :bold t)))
471  "Face used for displaying message."
472  :group 'wl-summary-faces
473  :group 'wl-faces)
474
475(defface wl-highlight-thread-indent-face
476  '((((type graphic))
477     (:foreground "gray40"))
478    (((type tty)
479      (min-colors 16777216))
480     (:foreground "gray40"))
481    (((type tty)
482      (min-colors 256))
483     (:foreground "color-241"))
484    (((type tty)
485      (min-colors 88))
486     (:foreground "color-81"))
487    (((type tty)
488      (min-colors 16))
489     (:foreground "brightblack"))
490    ;; (((type tty))
491    ;;  (:foreground "black"))
492    )
493  "Face used for displaying indented thread."
494  :group 'wl-summary-faces
495  :group 'wl-faces)
496
497;; unimportant messages
498
499(defface wl-highlight-summary-unread-face
500  '((((type graphic)
501      (background dark))
502     (:foreground "LightSkyBlue"))
503    (((type tty)
504      (min-colors 16777216)
505      (background dark))
506     (:foreground "LightSkyBlue"))
507    (((type tty)
508      (min-colors 256)
509      (background dark))
510     (:foreground "color-117"))
511    (((type tty)
512      (min-colors 88)
513      (background dark))
514     (:foreground "color-43"))
515    (((type tty)
516      (background dark))
517     (:foreground "cyan"))
518    (((type graphic)
519      (background light))
520     (:foreground "RoyalBlue"))
521    (((type tty)
522      (min-colors 16777216)
523      (background light))
524     (:foreground "RoyalBlue"))
525    (((type tty)
526      (min-colors 256)
527      (background light))
528     (:foreground "color-62"))
529    (((type tty)
530      (min-colors 16)
531      (background light))
532     (:foreground "brightblue"))
533    (((type tty)
534      (background light))
535     (:foreground "cyan")))
536  "Face used for displaying unread messages."
537  :group 'wl-summary-faces
538  :group 'wl-faces)
539
540(defface wl-highlight-summary-disposed-face
541  '((((type graphic)
542      (background dark))
543     (:foreground "gray"))
544    (((type tty)
545      (min-colors 16777216)
546      (background dark))
547     (:foreground "gray"))
548    (((type tty)
549      (min-colors 256)
550      (background dark))
551     (:foreground "color-250"))
552    (((type tty)
553      (min-colors 88)
554      (background dark))
555     (:foreground "color-285"))
556    (((type tty)
557      (background dark))
558     (:foreground "white"))
559    (((type graphic)
560      (background light))
561     (:foreground "DarkKhaki"))
562    (((type tty)
563      (min-colors 16777216)
564      (background light))
565     (:foreground "DarkKhaki"))
566    (((type tty)
567      (min-colors 256)
568      (background light))
569     (:foreground "color-143"))
570    (((type tty)
571      (min-colors 88)
572      (background light))
573     (:foreground "color-57"))
574    (((type tty)
575      (background light))
576     (:foreground "yellow")))
577  "Face used for displaying messages mark as disposed."
578  :group 'wl-summary-faces
579  :group 'wl-faces)
580
581(defface wl-highlight-summary-deleted-face
582  '((((type graphic)
583      (background dark))
584     (:foreground "SteelBlue"))
585    (((type tty)
586      (min-colors 16777216)
587      (background dark))
588     (:foreground "SteelBlue"))
589    (((type tty)
590      (min-colors 256)
591      (background dark))
592     (:foreground "color-67"))
593    (((type tty)
594      (min-colors 88)
595      (background dark))
596     (:foreground "color-38"))
597    (((type tty)
598      (min-colors 16)
599      (background dark))
600     (:foreground "brightblack"))
601    (((type tty)
602      (background dark))
603     (:foreground "cyan"))
604    (((type graphic)
605      (background light))
606     (:foreground "RoyalBlue4"))
607    (((type tty)
608      (min-colors 16777216)
609      (background light))
610     (:foreground "RoyalBlue4"))
611    (((type tty)
612      (min-colors 256)
613      (background light))
614     (:foreground "color-24"))
615    (((type tty)
616      (min-colors 88)
617      (background light))
618     (:foreground "color-17"))
619    (((type tty)
620      (min-colors 16)
621      (background light))
622     (:foreground "brightblack"))
623    (((type tty)
624      (background dark))
625     (:foreground "blue")))
626  "Face used for displaying messages mark as deleted."
627  :group 'wl-summary-faces
628  :group 'wl-faces)
629
630(defface wl-highlight-summary-prefetch-face
631  '((((type graphic)
632      (background dark))
633     (:foreground "DeepSkyBlue"))
634    (((type tty)
635      (min-colors 16777216)
636      (background dark))
637     (:foreground "DeepSkyBlue"))
638    (((type tty)
639      (min-colors 256)
640      (background dark))
641     (:foreground "color-39"))
642    (((type tty)
643      (min-colors 88)
644      (background dark))
645     (:foreground "color-27"))
646    (((type tty)
647      (background dark))
648     (:foreground "cyan"))
649    (((type graphic)
650      (background light))
651     (:foreground "brown"))
652    (((type tty)
653      (min-colors 16777216)
654      (background light))
655     (:foreground "brown"))
656    (((type tty)
657      (min-colors 256)
658      (background light))
659     (:foreground "color-124"))
660    (((type tty)
661      (min-colors 88)
662      (background light))
663     (:foreground "color-32"))
664    (((type tty)
665      (background light))
666     (:foreground "red")))
667  "Face used for displaying messages mark as deleted."
668  :group 'wl-summary-faces
669  :group 'wl-faces)
670
671(defface wl-highlight-summary-resend-face
672  '((((type graphic))
673     (:foreground "orange3"))
674    (((type tty)
675      (min-colors 16777216))
676     (:foreground "orange3"))
677    (((type tty)
678      (min-colors 256))
679     (:foreground "color-172"))
680    (((type tty)
681      (min-colors 88))
682     (:foreground "color-52"))
683    (((type tty))
684     (:foreground "yellow")))
685  "Face used for displaying messages mark as resend."
686  :group 'wl-summary-faces
687  :group 'wl-faces)
688
689(defface wl-highlight-summary-refiled-face
690  '((((type graphic)
691      (background dark))
692     (:foreground "blue"))
693    (((type tty)
694      (min-colors 16777216)
695      (background dark))
696     (:foreground "blue"))
697    (((type tty)
698      (min-colors 256)
699      (background dark))
700     (:foreground "color-21"))
701    (((type tty)
702      (min-colors 88)
703      (background dark))
704     (:foreground "color-19"))
705    (((type tty)
706      (min-colors 16)
707      (background dark))
708     (:foreground "brightblue"))
709    (((type tty)
710      (background dark))
711     ;; "blue" is too dark.
712     (:foreground "magenta"))
713    (((type graphic)
714      (background light))
715     (:foreground "firebrick"))
716    (((type tty)
717      (min-colors 16777216)
718      (background light))
719     (:foreground "firebrick"))
720    (((type tty)
721      (min-colors 256)
722      (background light))
723     (:foreground "color-124"))
724    (((type tty)
725      (min-colors 88)
726      (background light))
727     (:foreground "color-48"))
728    (((type tty)
729      (background light))
730     (:foreground "red")))
731  "Face used for displaying messages mark as refiled."
732  :group 'wl-summary-faces
733  :group 'wl-faces)
734
735(defface wl-highlight-summary-copied-face
736  '((((type graphic)
737      (background dark))
738     (:foreground "cyan"))
739    (((type tty)
740      (min-colors 16)
741      (background dark))
742     (:foreground "brightcyan"))
743    (((type tty)
744      (background dark))
745     (:foreground "cyan"))
746    (((type graphic)
747      (background light))
748     (:foreground "blue"))
749    (((type tty)
750      (min-colors 16777216)
751      (background light))
752     (:foreground "blue"))
753    (((type tty)
754      (min-colors 256)
755      (background light))
756     (:foreground "color-21"))
757    (((type tty)
758      (min-colors 88)
759      (background light))
760     (:foreground "color-19"))
761    (((type tty)
762      (background light))
763     (:foreground "blue")))
764  "Face used for displaying messages mark as copied."
765  :group 'wl-summary-faces
766  :group 'wl-faces)
767
768;; answered
769(defface wl-highlight-summary-answered-face
770  '((((type graphic)
771      (background dark))
772     (:foreground "khaki"))
773    (((type tty)
774      (min-colors 16777216)
775      (background dark))
776     (:foreground "khaki"))
777    (((type tty)
778      (min-colors 256)
779      (background dark))
780     (:foreground "color-222"))
781    (((type tty)
782      (min-colors 88)
783      (background dark))
784     (:foreground "color-73"))
785    (((type tty)
786      (background dark))
787     (:foreground "white"))
788    (((type graphic)
789      (background light))
790     (:foreground "khaki4"))
791    (((type tty)
792      (min-colors 16777216)
793      (background light))
794     (:foreground "khaki4"))
795    (((type tty)
796      (min-colors 256)
797      (background light))
798     (:foreground "color-101"))
799    (((type tty)
800      (min-colors 88)
801      (background light))
802     (:foreground "color-82"))
803    (((type tty)
804      (background light))
805     (:foreground "yellow")))
806  "Face used for displaying answered messages."
807  :group 'wl-summary-faces
808  :group 'wl-faces)
809
810;; forwarded
811(defface wl-highlight-summary-forwarded-face
812  '((((type graphic)
813      (background dark))
814     (:foreground "DarkOliveGreen2"))
815    (((type tty)
816      (min-colors 16777216)
817      (background dark))
818     (:foreground "DarkOliveGreen2"))
819    (((type tty)
820      (min-colors 256)
821      (background dark))
822     (:foreground "color-155"))
823    (((type tty)
824      (min-colors 88)
825      (background dark))
826     (:foreground "color-61"))
827    (((type tty)
828      (background dark))
829     (:foreground "green"))
830    (((type graphic)
831      (background light))
832     (:foreground "DarkOliveGreen4"))
833    (((type tty)
834      (min-colors 16777216)
835      (background light))
836     (:foreground "DarkOliveGreen4"))
837    (((type tty)
838      (min-colors 256)
839      (background light))
840     (:foreground "color-65"))
841    (((type tty)
842      (min-colors 88)
843      (background light))
844     (:foreground "color-81"))
845    (((type tty)
846      (background light))
847     (:foreground "yellow")))
848  "Face used for displaying forwarded messages."
849  :group 'wl-summary-faces
850  :group 'wl-faces)
851
852(defface wl-summary-persistent-mark-face
853  '((((type graphic)
854      (background dark))
855     (:foreground "SeaGreen4"))
856    (((type tty)
857      (min-colors 16777216)
858      (background dark))
859     (:foreground "SeaGreen4"))
860    (((type tty)
861      (min-colors 256)
862      (background dark))
863     (:foreground "color-29"))
864    (((type tty)
865      (min-colors 88)
866      (background dark))
867     (:foreground "color-81"))
868    (((type tty)
869      (min-colors 16)
870      (background dark))
871     (:foreground "brightblack"))
872    (((type tty)
873      (background dark))
874     (:foreground "green"))
875    (((type graphic)
876      (background light))
877     (:foreground "SeaGreen1"))
878    (((type tty)
879      (min-colors 16777216)
880      (background light))
881     (:foreground "SeaGreen1"))
882    (((type tty)
883      (min-colors 256)
884      (background light))
885     (:foreground "color-85"))
886    (((type tty)
887      (min-colors 88)
888      (background light))
889     (:foreground "color-45"))
890    (((type tty)
891      (background light))
892     (:foreground "cyan")))
893  "Dafault face used for displaying messages with persistent mark."
894  :group 'wl-summary-faces
895  :group 'wl-faces)
896
897;; obsolete.
898(defface wl-highlight-summary-temp-face
899  '((((type graphic))
900     (:foreground "HotPink1"))
901    (((type tty)
902      (min-colors 16777216))
903     (:foreground "HotPink1"))
904    (((type tty)
905      (min-colors 256))
906     (:foreground "color-205"))
907    (((type tty)
908      (min-colors 88))
909     (:foreground "color-70"))
910    (((type tty))
911     (:foreground "magenta")))
912  "Face used for displaying messages mark as temp."
913  :group 'wl-summary-faces
914  :group 'wl-faces)
915
916(defface wl-highlight-summary-target-face
917  '((((type graphic))
918     (:foreground "HotPink1"))
919    (((type tty)
920      (min-colors 16777216))
921     (:foreground "HotPink1"))
922    (((type tty)
923      (min-colors 256))
924     (:foreground "color-205"))
925    (((type tty)
926      (min-colors 88))
927     (:foreground "color-70"))
928    (((type tty))
929     (:foreground "magenta")))
930  "Face used for displaying messages mark as target."
931  :group 'wl-summary-faces
932  :group 'wl-faces)
933
934(defface wl-highlight-summary-low-read-face
935  '((((type graphic)
936      (background dark))
937     (:foreground "PaleGreen" :italic t))
938    (((type tty)
939      (min-colors 16777216)
940      (background dark))
941     (:foreground "PaleGreen" :italic t))
942    (((type tty)
943      (min-colors 256)
944      (background dark))
945     (:foreground "color-120" :italic t))
946    (((type tty)
947      (min-colors 88)
948      (background dark))
949     (:foreground "color-45" :italic t))
950    (((type tty)
951      (background dark))
952     (:foreground "green" :italic t))
953    (((type graphic)
954      (background light))
955     (:foreground "Green3" :italic t))
956    (((type tty)
957      (min-colors 16777216)
958      (background light))
959     (:foreground "Green3" :italic t))
960    (((type tty)
961      (background light))
962     (:foreground "green" :italic t)))
963  "Face used for displaying low interest read messages."
964  :group 'wl-summary-faces
965  :group 'wl-faces)
966
967(defface wl-highlight-summary-high-read-face
968  '((((type graphic)
969      (background dark))
970     (:foreground "PaleGreen" :bold t))
971    (((type tty)
972      (min-colors 16777216)
973      (background dark))
974     (:foreground "PaleGreen" :bold t))
975    (((type tty)
976      (min-colors 256)
977      (background dark))
978     (:foreground "color-120" :bold t))
979    (((type tty)
980      (min-colors 88)
981      (background dark))
982     (:foreground "color-45" :bold t))
983    (((type tty)
984      (background dark))
985     (:foreground "green" :bold t))
986    (((type graphic)
987      (background light))
988     (:foreground "SeaGreen" :bold t))
989    (((type tty)
990      (min-colors 16777216)
991      (background light))
992     (:foreground "SeaGreen" :bold t))
993    (((type tty)
994      (min-colors 256)
995      (background light))
996     (:foreground "color-29" :bold t))
997    (((type tty)
998      (min-colors 88)
999      (background light))
1000     (:foreground "color-81" :bold t))
1001    (((type tty)
1002      (background light))
1003     (:foreground "green" :bold t)))
1004  "Face used for displaying high interest read messages."
1005  :group 'wl-summary-faces
1006  :group 'wl-faces)
1007
1008(defface wl-highlight-summary-low-unread-face
1009  '((((type graphic)
1010      (background dark))
1011     (:foreground "LightSkyBlue" :italic t))
1012    (((type tty)
1013      (min-colors 16777216)
1014      (background dark))
1015     (:foreground "LightSkyBlue" :italic t))
1016    (((type tty)
1017      (min-colors 256)
1018      (background dark))
1019     (:foreground "color-117" :italic t))
1020    (((type tty)
1021      (min-colors 88)
1022      (background dark))
1023     (:foreground "color-43" :italic t))
1024    (((type tty)
1025      (background dark))
1026     (:foreground "cyan" :italic t))
1027    (((type graphic)
1028      (background light))
1029     (:foreground "RoyalBlue" :italic t))
1030    (((type tty)
1031      (min-colors 16777216)
1032      (background light))
1033     (:foreground "RoyalBlue" :italic t))
1034    (((type tty)
1035      (min-colors 256)
1036      (background light))
1037     (:foreground "color-62" :italic t))
1038    (((type tty)
1039      (min-colors 16)
1040      (background light))
1041     (:foreground "brightblue" :italic t))
1042    (((type tty)
1043      (background light))
1044     (:foreground "cyan" :italic t)))
1045  "Face used for displaying low interest unread messages."
1046  :group 'wl-summary-faces
1047  :group 'wl-faces)
1048
1049(defface wl-highlight-summary-high-unread-face
1050  '((((type graphic))
1051     (:foreground "tomato" :bold t))
1052    (((type tty)
1053      (min-colors 16777216))
1054     (:foreground "tomato" :bold t))
1055    (((type tty)
1056      (min-colors 256))
1057     (:foreground "color-203" :bold t))
1058    (((type tty)
1059      (min-colors 88))
1060     (:foreground "color-69" :bold t))
1061    (((type tty)
1062      (min-colors 16))
1063     (:foreground "brightred" :bold t))
1064    (((type tty))
1065     (:foreground "red" :bold t)))
1066  "Face used for displaying high interest unread messages."
1067  :group 'wl-summary-faces
1068  :group 'wl-faces)
1069
1070;; ordinary messages
1071
1072(defface wl-highlight-summary-thread-top-face
1073  '((((type graphic)
1074      (background dark))
1075     (:foreground "GreenYellow"))
1076    (((type tty)
1077      (min-colors 16777216)
1078      (background dark))
1079     (:foreground "GreenYellow"))
1080    (((type tty)
1081      (min-colors 256)
1082      (background dark))
1083     (:foreground "color-154"))
1084    (((type tty)
1085      (min-colors 88)
1086      (background dark))
1087     (:foreground "color-60"))
1088    (((type tty)
1089      (background dark))
1090     (:foreground "green"))
1091    (((type graphic)
1092      (background light))
1093     (:foreground "green4"))
1094    (((type tty)
1095      (min-colors 16777216)
1096      (background light))
1097     (:foreground "green4"))
1098    (((type tty)
1099      (min-colors 256)
1100      (background light))
1101     (:foreground "color-28"))
1102    (((type tty)
1103      (min-colors 88)
1104      (background light))
1105     (:foreground "color-20"))
1106    (((type tty)
1107      (background light))
1108     (:foreground "green")))
1109  "Face used for displaying top thread message."
1110  :group 'wl-summary-faces
1111  :group 'wl-faces)
1112
1113(defface wl-highlight-summary-normal-face
1114  '((((type graphic)
1115      (background dark))
1116     (:foreground "PaleGreen"))
1117    (((type tty)
1118      (min-colors 16777216)
1119      (background dark))
1120     (:foreground "PaleGreen"))
1121    (((type tty)
1122      (min-colors 256)
1123      (background dark))
1124     (:foreground "color-120"))
1125    (((type tty)
1126      (min-colors 88)
1127      (background dark))
1128     (:foreground "color-45"))
1129    (((type tty)
1130      (background dark))
1131     (:foreground "white"))
1132    (((type graphic)
1133      (background light))
1134     (:foreground "SeaGreen"))
1135    (((type tty)
1136      (min-colors 16777216)
1137      (background light))
1138     (:foreground "SeaGreen"))
1139    (((type tty)
1140      (min-colors 256)
1141      (background light))
1142     (:foreground "color-29"))
1143    (((type tty)
1144      (min-colors 88)
1145      (background light))
1146     (:foreground "color-81"))
1147    (((type tty)
1148      (background light))
1149     (:foreground "green")))
1150  "Face used for displaying normal message."
1151  :group 'wl-summary-faces
1152  :group 'wl-faces)
1153
1154;; folder
1155
1156(defface wl-highlight-folder-unknown-face
1157  '((((type graphic)
1158      (background dark))
1159     (:foreground "pink"))
1160    (((type tty)
1161      (min-colors 16777216)
1162      (background dark))
1163     (:foreground "pink"))
1164    (((type tty)
1165      (min-colors 256)
1166      (background dark))
1167     (:foreground "color-218"))
1168    (((type tty)
1169      (min-colors 88)
1170      (background dark))
1171     (:foreground "color-74"))
1172    (((type tty)
1173      (background dark))
1174     (:foreground "white"))
1175    (((type graphic)
1176      (background light))
1177     (:foreground "RoyalBlue"))
1178    (((type tty)
1179      (min-colors 16777216)
1180      (background light))
1181     (:foreground "RoyalBlue"))
1182    (((type tty)
1183      (min-colors 256)
1184      (background light))
1185     (:foreground "color-62"))
1186    (((type tty)
1187      (min-colors 16)
1188      (background light))
1189     (:foreground "brightblue"))
1190    (((type tty)
1191      (background light))
1192     (:foreground "cyan")))
1193  "Face used for displaying unread folder."
1194  :group 'wl-folder-faces
1195  :group 'wl-faces)
1196
1197(defface wl-highlight-folder-killed-face
1198  '((((type graphic))
1199     (:foreground "gray50"))
1200    (((type tty)
1201      (min-colors 16777216))
1202     (:foreground "gray50"))
1203    (((type tty)
1204      (min-colors 16)
1205      (background dark))
1206     (:foreground "brightblack")))
1207  "Face used for displaying killed folder."
1208  :group 'wl-folder-faces
1209  :group 'wl-faces)
1210
1211(defface wl-highlight-folder-zero-face
1212  '((((type graphic)
1213      (background dark))
1214     (:foreground "SkyBlue"))
1215    (((type tty)
1216      (min-colors 16777216)
1217      (background dark))
1218     (:foreground "SkyBlue"))
1219    (((type tty)
1220      (min-colors 256)
1221      (background dark))
1222     (:foreground "color-116"))
1223    (((type tty)
1224      (min-colors 88)
1225      (background dark))
1226     (:foreground "color-43"))
1227    (((type tty)
1228      (background dark))
1229     (:foreground "white"))
1230    (((type graphic)
1231      (background light))
1232     (:foreground "BlueViolet"))
1233    (((type tty)
1234      (min-colors 16777216)
1235      (background light))
1236     (:foreground "BlueViolet"))
1237    (((type tty)
1238      (min-colors 256)
1239      (background light))
1240     (:foreground "color-92"))
1241    (((type tty)
1242      (min-colors 88)
1243      (background light))
1244     (:foreground "color-34"))
1245    (((type tty)
1246      (min-colors 16)
1247      (background light))
1248     (:foreground "brightblue"))
1249    (((type tty)
1250      (background light))
1251     (:foreground "magenta")))
1252  "Face used for displaying folder needs no sync."
1253  :group 'wl-folder-faces
1254  :group 'wl-faces)
1255
1256(defface wl-highlight-folder-few-face
1257  '((((type graphic)
1258      (background dark))
1259     (:foreground "orange"))
1260    (((type tty)
1261      (min-colors 16777216)
1262      (background dark))
1263     (:foreground "orange"))
1264    (((type tty)
1265      (min-colors 256)
1266      (background dark))
1267     (:foreground "color-214"))
1268    (((type tty)
1269      (min-colors 88)
1270      (background dark))
1271     (:foreground "color-68"))
1272    (((type tty)
1273      (background dark))
1274     (:foreground "yellow"))
1275    (((type graphic)
1276      (background light))
1277     (:foreground "OrangeRed3"))
1278    (((type tty)
1279      (min-colors 16777216)
1280      (background light))
1281     (:foreground "OrangeRed3"))
1282    (((type tty)
1283      (min-colors 256)
1284      (background light))
1285     (:foreground "color-166"))
1286    (((type tty)
1287      (background light))
1288     (:foreground "red")))
1289  "Face used for displaying folder contains few unsync messages."
1290  :group 'wl-folder-faces
1291  :group 'wl-faces)
1292
1293(defface wl-highlight-folder-many-face
1294  '((((type graphic)
1295      (background dark))
1296     (:foreground "HotPink1"))
1297    (((type tty)
1298      (min-colors 16777216)
1299      (background dark))
1300     (:foreground "HotPink1"))
1301    (((type tty)
1302      (min-colors 256)
1303      (background dark))
1304     (:foreground "color-205"))
1305    (((type tty)
1306      (min-colors 88)
1307      (background dark))
1308     (:foreground "color-70"))
1309    (((type tty)
1310      (background dark))
1311     (:foreground "magenta"))
1312    (((type graphic)
1313      (background light))
1314     (:foreground "tomato"))
1315    (((type tty)
1316      (min-colors 16777216)
1317      (background light))
1318     (:foreground "tomato"))
1319    (((type tty)
1320      (min-colors 256)
1321      (background light))
1322     (:foreground "color-203"))
1323    (((type tty)
1324      (min-colors 88)
1325      (background light))
1326     (:foreground "color-69"))
1327    (((type tty)
1328      (min-colors 16)
1329      (background light))
1330     (:foreground "brightred"))
1331    (((type tty)
1332      (background light))
1333     (:foreground "red")))
1334  "Face used for displaying folder contains many unsync messages."
1335  :group 'wl-folder-faces
1336  :group 'wl-faces)
1337
1338(defface wl-highlight-folder-unread-face
1339  '((((type graphic)
1340      (background dark))
1341     (:foreground "gold"))
1342    (((type tty)
1343      (min-colors 16777216)
1344      (background dark))
1345     (:foreground "gold"))
1346    (((type tty)
1347      (min-colors 256)
1348      (background dark))
1349     (:foreground "color-220"))
1350    (((type tty)
1351      (min-colors 88)
1352      (background dark))
1353     (:foreground "color-72"))
1354    (((type tty)
1355      (min-colors 16)
1356      (background dark))
1357     (:foreground "brightyellow"))
1358    (((type tty)
1359      (background dark))
1360     (:foreground "yellow"))
1361    (((type graphic)
1362      (background light))
1363     (:foreground "MediumVioletRed"))
1364    (((type tty)
1365      (min-colors 16777216)
1366      (background light))
1367     (:foreground "MediumVioletRed"))
1368    (((type tty)
1369      (min-colors 256)
1370      (background light))
1371     (:foreground "color-162"))
1372    (((type tty)
1373      (min-colors 88)
1374      (background light))
1375     (:foreground "color-49"))
1376    (((type tty)
1377      (background light))
1378     (:foreground "magenta")))
1379  "Face used for displaying unread folder."
1380  :group 'wl-folder-faces
1381  :group 'wl-faces)
1382
1383(defface wl-highlight-folder-opened-face
1384  '((((type graphic)
1385      (background dark))
1386     (:foreground "PaleGreen"))
1387    (((type tty)
1388      (min-colors 16777216)
1389      (background dark))
1390     (:foreground "PaleGreen"))
1391    (((type tty)
1392      (min-colors 256)
1393      (background dark))
1394     (:foreground "color-120"))
1395    (((type tty)
1396      (min-colors 88)
1397      (background dark))
1398     (:foreground "color-45"))
1399        (((type tty)
1400      (background dark))
1401     (:foreground "green"))
1402    (((type graphic)
1403      (background light))
1404     (:foreground "ForestGreen"))
1405    (((type tty)
1406      (min-colors 16777216)
1407      (background light))
1408     (:foreground "ForestGreen"))
1409    (((type tty)
1410      (min-colors 256)
1411      (background light))
1412     (:foreground "color-28"))
1413    (((type tty)
1414      (min-colors 88)
1415      (background light))
1416     (:foreground "color-20"))
1417    (((type tty)
1418      (background light))
1419     (:foreground "green")))
1420  "Face used for displaying opened group folder."
1421  :group 'wl-folder-faces
1422  :group 'wl-faces)
1423
1424(defface wl-highlight-folder-closed-face
1425  '((((type graphic)
1426      (background dark))
1427     (:foreground "GreenYellow"))
1428    (((type tty)
1429      (min-colors 16777216)
1430      (background dark))
1431     (:foreground "GreenYellow"))
1432    (((type tty)
1433      (min-colors 256)
1434      (background dark))
1435     (:foreground "color-154"))
1436    (((type tty)
1437      (min-colors 88)
1438      (background dark))
1439     (:foreground "color-60"))
1440    (((type tty)
1441      (background dark))
1442     (:foreground "green"))
1443    (((type graphic)
1444      (background light))
1445     (:foreground "DarkOliveGreen4"))
1446    (((type tty)
1447      (min-colors 16777216)
1448      (background light))
1449     (:foreground "DarkOliveGreen4"))
1450    (((type tty)
1451      (min-colors 256)
1452      (background light))
1453     (:foreground "color-65"))
1454    (((type tty)
1455      (min-colors 88)
1456      (background light))
1457     (:foreground "color-81"))
1458    (((type tty)
1459      (background light))
1460     (:foreground "yellow")))
1461  "Face used for displaying closed group folder."
1462  :group 'wl-folder-faces
1463  :group 'wl-faces)
1464
1465(defface wl-highlight-folder-path-face
1466  '((t
1467     (:bold t :underline t)))
1468  "Face used for displaying path."
1469  :group 'wl-folder-faces
1470  :group 'wl-faces)
1471
1472(defface wl-highlight-demo-face
1473  '((((type graphic)
1474      (background dark))
1475     (:foreground "#d9ffd9" :background "#004400"))
1476    (((type tty)
1477      (min-colors 16777216)
1478      (background dark))
1479     (:foreground "#d9ffd9" :background "#004400"))
1480    (((type tty)
1481      (min-colors 256)
1482      (background dark))
1483     (:foreground "color-194" :background "color-22"))
1484    (((type tty)
1485      (min-colors 88)
1486      (background dark))
1487     (:foreground "color-62" :background "color-16"))
1488    (((type tty)
1489      (background dark))
1490     (:foreground "white" :background "green"))
1491    (((type graphic)
1492      (background light))
1493     (:foreground "#006600" :background "#d9ffd9"))
1494    (((type tty)
1495      (min-colors 16777216)
1496      (background light))
1497     (:foreground "#006600" :background "#d9ffd9"))
1498    (((type tty)
1499      (min-colors 256)
1500      (background light))
1501     (:foreground "color-22" :background "color-194"))
1502    (((type tty)
1503      (min-colors 88)
1504      (background light))
1505     (:foreground "color-20" :background "color-62"))
1506    (((type tty)
1507      (background light))
1508     (:foreground "black" :background "white")))
1509  "Face used for displaying demo."
1510  :group 'wl-faces)
1511
1512(defface wl-highlight-logo-face
1513  '((((type graphic)
1514      (background dark))
1515     (:foreground "SkyBlue" :background "#004400"))
1516    (((type tty)
1517      (min-colors 16777216)
1518      (background dark))
1519     (:foreground "SkyBlue" :background "#004400"))
1520    (((type tty)
1521      (min-colors 256)
1522      (background dark))
1523     (:foreground "color-116" :background "color-22"))
1524    (((type tty)
1525      (min-colors 88)
1526      (background dark))
1527     (:foreground "color-43" :background "color-16"))
1528    (((type tty)
1529      (background dark))
1530     (:foreground "cyan" :background "black"))
1531    (((type graphic)
1532      (background light))
1533     (:foreground "SteelBlue" :background "#d9ffd9"))
1534    (((type tty)
1535      (min-colors 16777216)
1536      (background light))
1537     (:foreground "SteelBlue" :background "#d9ffd9"))
1538    (((type tty)
1539      (min-colors 256)
1540      (background light))
1541     (:foreground "color-67" :background "color-194"))
1542    (((type tty)
1543      (min-colors 88)
1544      (background light))
1545     (:foreground "color-38" :background "color-62"))
1546    (((type tty)
1547      (background light))
1548     (:foreground "cyan" :background "white")))
1549  "Face used for displaying demo."
1550  :group 'wl-faces)
1551
1552(defface wl-highlight-action-argument-face
1553  '((((type graphic)
1554      (background dark))
1555     (:foreground "pink"))
1556    (((type tty)
1557      (min-colors 16777216)
1558      (background dark))
1559     (:foreground "pink"))
1560    (((type tty)
1561      (min-colors 256)
1562      (background dark))
1563     (:foreground "color-218"))
1564    (((type tty)
1565      (min-colors 88)
1566      (background dark))
1567     (:foreground "color-74"))
1568    (((type tty)
1569      (background dark))
1570     (:foreground "magenta"))
1571    (((type graphic)
1572      (background light))
1573     (:foreground "red"))
1574    (((type tty)
1575      (min-colors 16)
1576      (background light))
1577     (:foreground "brightred"))
1578    (((type tty)
1579      (background light))
1580     (:foreground "red")))
1581  "Face used for displaying action argument."
1582  :group 'wl-summary-faces
1583  :group 'wl-faces)
1584
1585;; cited face
1586
1587(defface wl-highlight-message-cited-text-1
1588  '((((type graphic)
1589      (background dark))
1590     (:foreground "HotPink1"))
1591    (((type tty)
1592      (min-colors 16777216)
1593      (background dark))
1594     (:foreground "HotPink1"))
1595    (((type tty)
1596      (min-colors 256)
1597      (background dark))
1598     (:foreground "color-205"))
1599    (((type tty)
1600      (min-colors 88)
1601      (background dark))
1602     (:foreground "color-70"))
1603    (((type tty)
1604      (background dark))
1605     (:foreground "magenta"))
1606    (((type graphic)
1607      (background light))
1608     (:foreground "ForestGreen"))
1609    (((type tty)
1610      (min-colors 16777216)
1611      (background light))
1612     (:foreground "ForestGreen"))
1613    (((type tty)
1614      (min-colors 256)
1615      (background light))
1616     (:foreground "color-28"))
1617    (((type tty)
1618      (min-colors 88)
1619      (background light))
1620     (:foreground "color-20"))
1621    (((type tty)
1622      (background light))
1623     (:foreground "green")))
1624  "Face used for displaying quoted text from other messages."
1625  :group 'wl-message-faces
1626  :group 'wl-faces)
1627
1628(defface wl-highlight-message-cited-text-2
1629  '((((type graphic))
1630     (:foreground "violet"))
1631    (((type tty)
1632      (min-colors 16777216))
1633     (:foreground "violet"))
1634    (((type tty)
1635      (min-colors 256))
1636     (:foreground "color-213"))
1637    (((type tty)
1638      (min-colors 88))
1639     (:foreground "color-71"))
1640    (((type tty))
1641     (:foreground "red"))
1642    )
1643  "Face used for displaying quoted text from other messages."
1644  :group 'wl-message-faces
1645  :group 'wl-faces)
1646
1647(defface wl-highlight-message-cited-text-3
1648  '((((type graphic))
1649     (:foreground "orchid3"))
1650    (((type tty)
1651      (min-colors 16777216))
1652     (:foreground "orchid3"))
1653    (((type tty)
1654      (min-colors 256))
1655     (:foreground "color-170"))
1656    (((type tty)
1657      (min-colors 88))
1658     (:foreground "color-54"))
1659    (((type tty))
1660     (:foreground "magenta")))
1661  "Face used for displaying quoted text from other messages."
1662  :group 'wl-message-faces
1663  :group 'wl-faces)
1664
1665(defface wl-highlight-message-cited-text-4
1666  '((((type graphic))
1667     (:foreground "purple1"))
1668    (((type tty)
1669      (min-colors 16777216))
1670     (:foreground "purple1"))
1671    (((type tty)
1672      (min-colors 256))
1673     (:foreground "color-99"))
1674    (((type tty)
1675      (min-colors 88))
1676     (:foreground "color-35"))
1677    (((type tty)
1678      (min-colors 16))
1679     (:foreground "brightblue"))
1680    (((type tty))
1681     (:foreground "cyan")))
1682  "Face used for displaying quoted text from other messages."
1683  :group 'wl-message-faces
1684  :group 'wl-faces)
1685
1686(defface wl-highlight-message-cited-text-5
1687  '((((type graphic))
1688     (:foreground "MediumPurple1"))
1689    (((type tty)
1690      (min-colors 16777216))
1691     (:foreground "MediumPurple1"))
1692    (((type tty)
1693      (min-colors 256))
1694     (:foreground "color-141"))
1695    (((type tty)
1696      (min-colors 88))
1697     (:foreground "color-39"))
1698    (((type tty)
1699      (min-colors 16))
1700     (:foreground "brightblue"))
1701    ;; (((type tty))
1702    ;;  (:foreground "white"))
1703    )
1704  "Face used for displaying quoted text from other messages."
1705  :group 'wl-message-faces
1706  :group 'wl-faces)
1707
1708(defface wl-highlight-message-cited-text-6
1709  '((((type graphic))
1710     (:foreground "PaleVioletRed"))
1711    (((type tty)
1712      (min-colors 16777216))
1713     (:foreground "PaleVioletRed"))
1714    (((type tty)
1715      (min-colors 256))
1716     (:foreground "color-168"))
1717    (((type tty))
1718     (:foreground "magenta")))
1719  "Face used for displaying quoted text from other messages."
1720  :group 'wl-message-faces
1721  :group 'wl-faces)
1722
1723(defface wl-highlight-message-cited-text-7
1724  '((((type graphic))
1725     (:foreground "LightPink"))
1726    (((type tty)
1727      (min-colors 16777216))
1728     (:foreground "LightPink"))
1729    (((type tty)
1730      (min-colors 256))
1731     (:foreground "color-217"))
1732    (((type tty)
1733      (min-colors 88))
1734     (:foreground "color-74"))
1735    ;; (((type tty))
1736    ;;  (:foreground "white"))
1737    )
1738  "Face used for displaying quoted text from other messages."
1739  :group 'wl-message-faces
1740  :group 'wl-faces)
1741
1742(defface wl-highlight-message-cited-text-8
1743  '((((type graphic))
1744     (:foreground "salmon"))
1745    (((type tty)
1746      (min-colors 16777216))
1747     (:foreground "salmon"))
1748    (((type tty)
1749      (min-colors 256))
1750     (:foreground "color-209"))
1751    (((type tty)
1752      (min-colors 88))
1753     (:foreground "color-69"))
1754    (((type tty))
1755     (:foreground "magenta")))
1756  "Face used for displaying quoted text from other messages."
1757  :group 'wl-message-faces
1758  :group 'wl-faces)
1759
1760(defface wl-highlight-message-cited-text-9
1761  '((((type graphic))
1762     (:foreground "SandyBrown"))
1763    (((type tty)
1764      (min-colors 16777216))
1765     (:foreground "SandyBrown"))
1766    (((type tty)
1767      (min-colors 256))
1768     (:foreground "color-215"))
1769    (((type tty)
1770      (min-colors 88))
1771     (:foreground "color-69"))
1772    (((type tty))
1773     (:foreground "yellow")))
1774  "Face used for displaying quoted text from other messages."
1775  :group 'wl-message-faces
1776  :group 'wl-faces)
1777
1778(defface wl-highlight-message-cited-text-10
1779  '((((type graphic))
1780     (:foreground "wheat"))
1781    (((type tty)
1782      (min-colors 16777216))
1783     (:foreground "wheat"))
1784    (((type tty)
1785      (min-colors 256))
1786     (:foreground "color-223"))
1787    (((type tty)
1788      (min-colors 88))
1789     (:foreground "color-74"))
1790    ;; (((type tty))
1791    ;;  (:foreground "white"))
1792    )
1793  "Face used for displaying quoted text from other messages."
1794  :group 'wl-message-faces
1795  :group 'wl-faces)
1796
1797(defface wl-message-header-narrowing-face
1798  '((((type graphic)
1799      (background dark))
1800     (:foreground "white" :background "darkgoldenrod"))
1801    (((type tty)
1802      (min-colors 16777216)
1803      (background dark))
1804     (:foreground "white" :background "darkgoldenrod"))
1805    (((type tty)
1806      (min-colors 256)
1807      (background dark))
1808     (:foreground "brightwhite" :background "color-136"))
1809    (((type tty)
1810      (min-colors 88)
1811      (background dark))
1812     (:foreground "brightwhite" :background "color-52"))
1813    (((type tty)
1814      (min-colors 16)
1815      (background dark))
1816     (:foreground "brightwhite" :background "yellow"))
1817    (((type tty)
1818      (background dark))
1819     (:foreground "cyan" :background "yellow"))
1820    (((type graphic)
1821      (background light))
1822     (:foreground "black" :background "darkkhaki"))
1823    (((type tty)
1824      (min-colors 16777216)
1825      (background light))
1826     (:foreground "black" :background "darkkhaki"))
1827    (((type tty)
1828      (min-colors 256)
1829      (background light))
1830     (:foreground "black" :background "color-143"))
1831    (((type tty)
1832      (min-colors 88)
1833      (background light))
1834     (:foreground "black" :background "color-57"))
1835    (((type tty)
1836      (background light))
1837     (:foreground "black" :background "yellow")))
1838  "Face used for header narrowing for the message."
1839  :group 'wl-message-faces
1840  :group 'wl-faces)
1841
1842(defvar wl-highlight-folder-opened-regexp "^ *\\(\\[\\-\\]\\)")
1843(defvar wl-highlight-folder-closed-regexp "^ *\\(\\[\\+\\]\\)")
1844(defvar wl-highlight-folder-leaf-regexp "[ ]*\\([-%\\+]\\)\\(.*\\):.*$")
1845
1846(defvar wl-highlight-citation-face-list
1847  '(wl-highlight-message-cited-text-1
1848    wl-highlight-message-cited-text-2
1849    wl-highlight-message-cited-text-3
1850    wl-highlight-message-cited-text-4
1851    wl-highlight-message-cited-text-5
1852    wl-highlight-message-cited-text-6
1853    wl-highlight-message-cited-text-7
1854    wl-highlight-message-cited-text-8
1855    wl-highlight-message-cited-text-9
1856    wl-highlight-message-cited-text-10))
1857
1858(defun wl-delete-all-overlays ()
1859  "Delete all momentary overlays."
1860  (let ((overlays (overlays-in (point-min) (point-max)))
1861	overlay)
1862    (while (setq overlay (car overlays))
1863      (if (overlay-get overlay 'wl-momentary-overlay)
1864	  (delete-overlay overlay))
1865      (setq overlays (cdr overlays)))))
1866
1867(defun wl-highlight-summary-displaying ()
1868  (interactive)
1869  (wl-delete-all-overlays)
1870  (let (bol eol ov)
1871    (save-excursion
1872      (end-of-line)
1873      (setq eol (point))
1874      (beginning-of-line)
1875      (setq bol (point))
1876      (setq ov (make-overlay bol eol))
1877      (overlay-put ov 'face 'wl-highlight-summary-displaying-face)
1878      (overlay-put ov 'evaporate t)
1879      (overlay-put ov 'wl-momentary-overlay t))))
1880
1881(defun wl-highlight-folder-group-line (numbers)
1882  (end-of-line)
1883  (let ((eol (point))
1884	bol)
1885    (beginning-of-line)
1886    (setq bol (point))
1887    (let ((text-face (cond ((looking-at wl-highlight-folder-opened-regexp)
1888			    'wl-highlight-folder-opened-face)
1889			   ((looking-at wl-highlight-folder-closed-regexp)
1890			    'wl-highlight-folder-closed-face))))
1891      (if (and wl-highlight-folder-by-numbers
1892	       (re-search-forward "[0-9-]+/[0-9-]+/[0-9-]+" eol t))
1893	  (let* ((unsync (nth 0 numbers))
1894		 (unread (nth 1 numbers))
1895		 (face (cond ((and unsync (zerop unsync))
1896			      (if (and unread (> unread 0))
1897				  'wl-highlight-folder-unread-face
1898				'wl-highlight-folder-zero-face))
1899			     ((and unsync
1900				   (>= unsync wl-folder-many-unsync-threshold))
1901			      'wl-highlight-folder-many-face)
1902			     (t
1903			      'wl-highlight-folder-few-face))))
1904	    (if (numberp wl-highlight-folder-by-numbers)
1905		(progn
1906		  (put-text-property bol (match-beginning 0) 'face text-face)
1907		  (put-text-property (match-beginning 0) (match-end 0)
1908				     'face face))
1909	      ;; Remove previous face.
1910	      (put-text-property bol (match-end 0) 'face nil)
1911	      (put-text-property bol (match-end 0) 'face face)))
1912	(put-text-property bol eol 'face text-face)))))
1913
1914(defsubst wl-highlight-get-face-by-name (format &rest args)
1915  (let ((face (intern (apply #'format format args))))
1916    (and (facep face)
1917	 face)))
1918
1919(defsubst wl-highlight-summary-line-face-spec (status temp-mark indent)
1920  "Return a cons cell of (face . argument)."
1921  (or (let (action)
1922	(and (setq action (assoc temp-mark wl-summary-mark-action-list))
1923	     (cons (nth 5 action) (nth 2 action))))
1924      (let ((flags (elmo-message-status-flags status)))
1925	(cond
1926	 ((and (string= temp-mark wl-summary-score-over-mark)
1927	       (or (memq 'new flags) (memq 'unread flags)))
1928	  '(wl-highlight-summary-high-unread-face))
1929	 ((and (string= temp-mark wl-summary-score-below-mark)
1930	       (or (memq 'new flags) (memq 'unread flags)))
1931	  '(wl-highlight-summary-low-unread-face))
1932	 ((let ((priorities wl-summary-persistent-mark-priority-list)
1933		(fl wl-summary-flag-alist)
1934		result global-flags)
1935	    (while (and (null result) priorities)
1936	      (cond
1937	       ((eq (car priorities) 'killed)
1938		(when (elmo-message-status-killed-p status)
1939		  (setq result '(wl-highlight-summary-killed-face))))
1940	       ((eq (car priorities) 'flag)
1941		(when (setq global-flags
1942			    (elmo-get-global-flags flags 'ignore-preserved))
1943		  (while fl
1944		    (when (memq (car (car fl)) global-flags)
1945		      (setq result
1946			    (list (or (wl-highlight-get-face-by-name
1947				       "wl-highlight-summary-%s-flag-face"
1948				       (car (car fl)))
1949				      'wl-highlight-summary-flagged-face))
1950			    fl nil))
1951		    (setq fl (cdr fl)))
1952		  (unless result
1953		    (setq result (list 'wl-highlight-summary-flagged-face)))))
1954	       ((memq (car priorities) flags)
1955		(setq result
1956		      (list (or (wl-highlight-get-face-by-name
1957				 "wl-highlight-summary-%s-face"
1958				 (car priorities))
1959				'wl-summary-persistent-mark-face)))))
1960	      (setq priorities (cdr priorities)))
1961	    result))
1962	 ((string= temp-mark wl-summary-score-below-mark)
1963	  '(wl-highlight-summary-low-read-face))
1964	 ((string= temp-mark wl-summary-score-over-mark)
1965	  '(wl-highlight-summary-high-read-face))
1966	 (t (if indent
1967		'(wl-highlight-summary-normal-face)
1968	      '(wl-highlight-summary-thread-top-face)))))))
1969
1970(autoload 'elmo-flag-folder-referrer "elmo-flag")
1971(defun wl-highlight-flag-folder-help-echo (folder number)
1972  (let ((referer (elmo-flag-folder-referrer folder number)))
1973    (concat "The message exists in "
1974	    (mapconcat
1975	     (lambda (pair)
1976		   (concat (car pair) "/"
1977			   (number-to-string
1978			    (cdr pair))))
1979	     referer ","))))
1980
1981(require 'wl-summary)
1982(defun wl-highlight-summary-line-help-echo (number beg end &optional string)
1983  (let ((type (elmo-folder-type-internal wl-summary-buffer-elmo-folder))
1984	message handler)
1985    (when (setq handler (cadr (assq type wl-highlight-summary-line-help-echo-alist)))
1986      (setq message
1987	    (funcall handler wl-summary-buffer-elmo-folder number))
1988      (if message
1989	  (put-text-property beg end 'help-echo
1990			     message
1991			     string)))))
1992
1993(defun wl-highlight-summary-line-string (number line status temp-mark indent)
1994  (let ((fsymbol (car (wl-highlight-summary-line-face-spec
1995		       status
1996		       temp-mark
1997		       (> (length indent) 0)))))
1998    (put-text-property 0 (length line) 'face fsymbol line))
1999  (when wl-use-highlight-mouse-line
2000    (put-text-property 0 (length line) 'mouse-face 'highlight line))
2001  (when wl-highlight-summary-line-help-echo-alist
2002    (wl-highlight-summary-line-help-echo number 0 (length line) line)))
2003
2004(defun wl-highlight-summary-current-line (&optional number status)
2005  (interactive)
2006  (save-excursion
2007    (let ((inhibit-read-only t)
2008	  (case-fold-search nil)
2009	  (deactivate-mark nil)
2010	  (number (or number (wl-summary-message-number)))
2011	  bol eol spec)
2012      (when number
2013	(setq bol (line-beginning-position))
2014	(setq eol (line-end-position))
2015	(wl-summary-selective-display eol bol)
2016	(goto-char bol)
2017	(setq spec (wl-highlight-summary-line-face-spec
2018		    (or status (wl-summary-message-status number))
2019		    (wl-summary-temp-mark number)
2020		    (wl-thread-entity-get-parent-entity
2021		     (wl-thread-get-entity number))))
2022	(when (car spec)
2023	  (put-text-property bol eol 'face (car spec)))
2024	(when (cdr spec)
2025	  (put-text-property (next-single-property-change
2026			      (next-single-property-change
2027			       bol 'wl-summary-action-argument
2028			       nil eol)
2029			      'wl-summary-action-argument nil eol)
2030			     eol
2031			     'face
2032			     'wl-highlight-action-argument-face))
2033	(when wl-use-highlight-mouse-line
2034	  (put-text-property bol eol 'mouse-face 'highlight))
2035	(when wl-highlight-summary-line-help-echo-alist
2036	  (wl-highlight-summary-line-help-echo number bol eol))))))
2037
2038(defun wl-highlight-folder (start end)
2039  "Highlight folder between start and end.
2040Faces used:
2041  wl-highlight-folder-unknown-face      unread messages
2042  wl-highlight-folder-zero-face         folder needs no sync
2043  wl-highlight-folder-few-face          folder contains few unsync messages
2044  wl-highlight-folder-many-face         folder contains many unsync messages
2045  wl-highlight-folder-opened-face       opened group folder
2046  wl-highlight-folder-closed-face       closed group folder
2047
2048Variables used:
2049  wl-highlight-folder-opened-regexp     matches opened group folder
2050  wl-highlight-folder-closed-regexp     matches closed group folder
2051"
2052  (interactive "r")
2053  (if (< end start)
2054      (let ((s start)) (setq start end end s)))
2055  (save-excursion
2056    (save-restriction
2057      (widen)
2058      (narrow-to-region start end)
2059      (save-restriction
2060	(goto-char start)
2061	(while (not (eobp))
2062	  (wl-highlight-folder-current-line)
2063	  (forward-line))))))
2064
2065(require 'wl-folder)
2066(defun wl-highlight-folder-path (folder-path)
2067  "Highlight current folder path...overlay"
2068  (save-excursion
2069    (wl-delete-all-overlays)
2070    (let ((fp folder-path) ov)
2071      (goto-char (point-min))
2072      (while (and fp
2073		  (not (eobp)))
2074	(beginning-of-line)
2075	(or (looking-at "^[ ]*\\[[\\+-]\\]\\(.+\\):.*\n")
2076	    (looking-at "^[ ]*\\([^ \\[].+\\):.*\n"))
2077	(when (equal
2078	       (get-text-property (point) 'wl-folder-entity-id)
2079	       (car fp))
2080	  (setq fp (cdr fp))
2081	  (setq ov (make-overlay
2082		    (match-beginning 1)
2083		    (match-end 1)))
2084	  (setq wl-folder-buffer-cur-point (point))
2085	  (overlay-put ov 'face 'wl-highlight-folder-path-face)
2086	  (overlay-put ov 'evaporate t)
2087	  (overlay-put ov 'wl-momentary-overlay t))
2088	(forward-line)))))
2089
2090(defun wl-highlight-action-argument-string (string)
2091  (put-text-property 0 (length string) 'face
2092		     'wl-highlight-action-argument-face
2093		     string))
2094
2095(defun wl-highlight-summary-all ()
2096  "For evaluation"
2097  (interactive)
2098  (wl-highlight-summary (point-min)(point-max)))
2099
2100(defun wl-highlight-summary (start end &optional lazy)
2101  "Highlight summary between start and end.
2102Faces used:
2103  wl-highlight-summary-unread-face      unread messages
2104  wl-highlight-summary-deleted-face     messages mark as deleted
2105  wl-highlight-summary-refiled-face     messages mark as refiled
2106  wl-highlight-summary-copied-face      messages mark as copied
2107  wl-highlight-summary-new-face         new messages
2108  wl-highlight-summary-*-flag-face      flagged messages"
2109  (if (< end start)
2110      (let ((s start)) (setq start end end s)))
2111  (save-excursion
2112    (goto-char start)
2113    (while (and (not (eobp))
2114		(< (point) end))
2115      (if (or (not lazy)
2116	      (null (get-text-property (point) 'face)))
2117	  (wl-highlight-summary-current-line)
2118	(let ((inhibit-read-only t)
2119	      (deactivate-mark nil))
2120	  (wl-summary-selective-display (line-end-position))))
2121      (forward-line))
2122    (unless wl-summary-lazy-highlight
2123      (message "Highlighting...done"))))
2124
2125(defun wl-highlight-summary-window (&optional win _beg)
2126  "Highlight summary window.
2127This function is defined for `window-scroll-functions'"
2128  (when wl-summary-highlight
2129    (with-current-buffer (window-buffer win)
2130      (when (eq major-mode 'wl-summary-mode)
2131	(let ((start (window-start win))
2132	      (end (window-end win t)))
2133	  (wl-highlight-summary start
2134				end
2135				'lazy))
2136	(set-buffer-modified-p nil)))))
2137
2138(defun wl-highlight-headers (&optional for-draft)
2139  (let ((beg (point-min))
2140	(end (or (save-excursion (re-search-forward "^$" nil t)
2141				 (point))
2142		 (point-max))))
2143    (wl-highlight-message beg end nil)
2144    (unless for-draft
2145      (when wl-highlight-x-face-function
2146	(funcall wl-highlight-x-face-function)))
2147    (run-hooks 'wl-highlight-headers-hook)))
2148
2149(defun wl-highlight-body-all ()
2150  (wl-highlight-message (point-min) (point-max) t t))
2151
2152(defun wl-highlight-body ()
2153  (let ((beg (or (save-excursion (goto-char (point-min))
2154				 (re-search-forward "^$" nil t))
2155		 (point-min)))
2156	(end (point-max)))
2157    (wl-highlight-message beg end t)))
2158
2159(defun wl-highlight-body-region (beg end)
2160  (wl-highlight-message beg end t t))
2161
2162(defun wl-highlight-signature-search-simple (beg end)
2163  "Search signature area in the body message between BEG and END.
2164Returns start point of signature."
2165  (save-excursion
2166    (goto-char end)
2167    (if (re-search-backward "\n--+ *\n" beg t)
2168	(if (eq (following-char) ?\n)
2169	    (1+ (point))
2170	  (point))
2171      end)))
2172
2173(defun wl-highlight-signature-search (beg end)
2174  "Search signature area in the body message between BEG and END.
2175Returns start point of signature."
2176  (save-excursion
2177    (goto-char end)
2178    (or
2179     ;; look for legal signature separator (check at first for fasten)
2180     (search-backward "\n-- \n" beg t)
2181
2182     ;; look for dual separator
2183     (let ((pt (point))
2184	   separator)
2185       (prog1
2186	   (and (re-search-backward "^[^A-Za-z0-9> \t\n]+ *$" beg t)
2187		;; `10' is a magic number.
2188		(> (- (match-end 0) (match-beginning 0)) 10)
2189		(setq separator (buffer-substring (match-beginning 0)
2190						  (match-end 0)))
2191		;; We should not use `re-search-backward' for a long word
2192		;; since it is possible to crash XEmacs because of a bug.
2193		(if (search-backward (concat "\n" separator "\n") beg t)
2194		    (1+ (point))
2195		  (and (search-backward (concat separator "\n") beg t)
2196		       (bolp)
2197		       (point))))
2198	 (goto-char pt)))
2199
2200     ;; look for user specified signature-separator
2201     (if (stringp wl-highlight-signature-separator)
2202	 (re-search-backward wl-highlight-signature-separator nil t);; case one string
2203       (let ((sep wl-highlight-signature-separator))		;; case list
2204	 (while (and sep
2205		     (not (re-search-backward (car sep) beg t)))
2206	   (setq sep (cdr sep)))
2207	 (point)))	;; if no separator found, returns end.
2208     )))
2209
2210(defun wl-highlight-citation-prefix-index (prefix)
2211  "Return a face index for a given citation prefix"
2212  (apply '+ (mapcar (lambda (ch)
2213                      (cond
2214                        ((memq ch '(?> ?| ?: ?})) 1)
2215                        ((memq ch '(9 32)) 0)
2216                        (t ch)))
2217		    prefix)))
2218
2219(defun wl-highlight-message (start end hack-sig &optional body-only)
2220  "Highlight message headers between start and end.
2221Faces used:
2222  wl-highlight-message-headers			  the part before the colon
2223  wl-highlight-message-header-contents		  the part after the colon
2224  wl-highlight-message-important-header-contents  contents of \"important\"
2225                                                  headers
2226  wl-highlight-message-important-header-contents2 contents of \"important\"
2227                                                  headers
2228  wl-highlight-message-unimportant-header-contents contents of unimportant
2229                                                   headers
2230  wl-highlight-message-cited-text-N	           quoted text from other
2231                                                   messages
2232  wl-highlight-message-citation-header             header of quoted texts
2233  wl-highlight-message-signature                   signature
2234
2235Variables used:
2236  wl-highlight-message-header-alist             alist of header regexp with
2237                                                face for header contents
2238  wl-highlight-citation-prefix-regexp		matches lines of quoted text
2239  wl-highlight-force-citation-header-regexp	matches headers for quoted text
2240  wl-highlight-citation-header-regexp		matches headers for quoted text
2241
2242If HACK-SIG is true,then we search backward from END for something that
2243looks like the beginning of a signature block, and don't consider that a
2244part of the message (this is because signatures are often incorrectly
2245interpreted as cited text.)"
2246  (if (< end start)
2247      (let ((s start)) (setq start end end s)))
2248  (let ((too-big (and wl-highlight-max-message-size
2249		      (> (- end start) wl-highlight-max-message-size)))
2250	(real-end end)
2251	current
2252	p hend
2253	wl-draft-real-time-highlight)
2254    (unless too-big
2255      (save-excursion
2256	(save-restriction
2257	  (widen)
2258	  ;; take off signature
2259	  (when hack-sig
2260	    (setq end (funcall wl-highlight-signature-search-function
2261			       (- end wl-max-signature-size) end))
2262	    (when (not (eq end real-end))
2263	      (put-text-property end (point-max)
2264				 'face 'wl-highlight-message-signature)))
2265	  (narrow-to-region start end)
2266	  ;; narrow down to just the headers...
2267	  (goto-char start)
2268	  (unless body-only
2269	    (save-restriction
2270	      ;; If this search fails then the narrowing performed above
2271	      ;; is sufficient
2272	      (if (re-search-forward
2273		   (format "^\\(%s\\)?$" (regexp-quote mail-header-separator))
2274		   nil t)
2275		  (narrow-to-region (point-min) (match-beginning 0)))
2276	      ;; highlight only when header is not too-big.
2277	      (if  (and wl-highlight-max-header-size
2278			(>= (point) wl-highlight-max-header-size))
2279		  (goto-char (point-max))
2280		(goto-char start)
2281		(while (not (eobp))
2282		  (if (looking-at "^[^ \t\n:]+[ \t]*:[ \t]*")
2283		      (progn
2284			(setq p (match-end 0))
2285			(put-text-property (match-beginning 0) p
2286					   'face 'wl-highlight-message-headers)
2287			(setq hend (save-excursion (std11-field-end end)))
2288			(put-text-property
2289			 p hend 'face
2290			 (catch 'match
2291			   (let ((regexp-alist wl-highlight-message-header-alist))
2292			     (while regexp-alist
2293			       (when (looking-at (caar regexp-alist))
2294				 (throw 'match (cdar regexp-alist)))
2295			       (setq regexp-alist (cdr regexp-alist))))
2296			   'wl-highlight-message-header-contents))
2297			(goto-char hend))
2298		    ;; ignore non-header field name lines
2299		    (forward-line))))))
2300	  (when (looking-at
2301		 (format "^%s$" (regexp-quote mail-header-separator)))
2302	    (put-text-property (match-beginning 0) (match-end 0)
2303			       'face 'wl-highlight-header-separator-face)
2304	    (forward-line))
2305	  (let (prefix end)
2306	    (while (null (progn
2307			     ;; Skip invisible region.
2308			   (when (invisible-p (point))
2309			     (goto-char (next-visible-point (point))))
2310			   (eobp)))
2311	      (cond
2312	       ((and wl-highlight-force-citation-header-regexp
2313		     (looking-at wl-highlight-force-citation-header-regexp))
2314		(setq current 'wl-highlight-message-citation-header)
2315		(setq end (match-end 0)))
2316	       ((and wl-highlight-citation-prefix-regexp
2317		     (looking-at wl-highlight-citation-prefix-regexp))
2318		(setq prefix (buffer-substring (point)
2319					       (match-end 0)))
2320		(unless wl-highlight-highlight-citation-too
2321		  (goto-char (match-end 0)))
2322		(setq current
2323                      (nth (% (wl-highlight-citation-prefix-index prefix)
2324                              (length wl-highlight-citation-face-list))
2325                           wl-highlight-citation-face-list)))
2326	       ((and wl-highlight-citation-header-regexp
2327		     (looking-at wl-highlight-citation-header-regexp))
2328		(setq current 'wl-highlight-message-citation-header)
2329		(setq end (match-end 0)))
2330	       (t (setq current nil)))
2331	      (when current
2332		(setq p (point))
2333		(forward-line) ; this is to put the \n in the face too
2334		(put-text-property p (or end (point)) 'face current)
2335		(setq end nil)
2336		(backward-char))
2337	      (forward-line)))
2338	  (run-hooks 'wl-highlight-message-hook))))))
2339
2340;; highlight-mouse-line for folder mode
2341
2342(defun wl-highlight-folder-mouse-line ()
2343  (interactive)
2344  (let* ((end (save-excursion (end-of-line) (point)))
2345	 (beg (progn
2346		(re-search-forward "[^ ]" end t)
2347		(1- (point))))
2348	 (inhibit-read-only t))
2349    (put-text-property beg end 'mouse-face 'highlight)))
2350
2351
2352(require 'product)
2353(product-provide (provide 'wl-highlight) (require 'wl-version))
2354
2355;;; wl-highlight.el ends here
2356