;ELC   
;;; compiled by gutnik@multics.mit.edu on Thu Jun 10 13:05:35 2004
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/xemacs-gnus-5.10.6/lisp/gnus-cite.el
;;; emacs version 21.4 (patch 4) "Artificial Intelligence" XEmacs Lucid.
;;; bytecomp version 2.27 XEmacs; 2000-09-12.
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 19.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "20")))
    (error "`gnus-cite.el' was compiled for Emacs 20"))

(or (boundp 'current-load-list) (setq current-load-list nil))


(byte-code "!!!!&	" [require gnus gnus-range gnus-art message custom-declare-group gnus-cite nil "Citation." :prefix "gnus-cite-" :link (custom-manual "(gnus)Article Highlighting") :group gnus-article] 10)
(custom-declare-variable 'gnus-cited-opened-text-button-line-format '"%(%{[-]%}%)\n" "Format of opened cited text buttons." :group 'gnus-cite :type 'string)
(custom-declare-variable 'gnus-cited-closed-text-button-line-format '"%(%{[+]%}%)\n" "Format of closed cited text buttons." :group 'gnus-cite :type 'string)
(custom-declare-variable 'gnus-cited-lines-visible 'nil "The number of lines of hidden cited text to remain visible.\nOr a pair (cons) of numbers which are the number of lines at the top\nand bottom of the text, respectively, to remain visible." :group 'gnus-cite :type '(choice (const :tag "none" nil) integer (cons :tag "Top and Bottom" integer integer)))
(custom-declare-variable 'gnus-cite-parse-max-size '25000 "Maximum article size (in bytes) where parsing citations is allowed.\nSet it to nil to parse all articles." :group 'gnus-cite :type '(choice (const :tag "all" nil) integer))
(custom-declare-variable 'gnus-cite-max-prefix '20 "Maximum possible length for a citation prefix." :group 'gnus-cite :type 'integer)
(custom-declare-variable 'gnus-supercite-regexp '(concat "^\\(" message-cite-prefix-regexp "\\)? *" ">>>>> +\"\\([^\"\n]+\\)\" +==") "*Regexp matching normal Supercite attribution lines.\nThe first grouping must match prefixes added by other packages." :group 'gnus-cite :type 'regexp)
(custom-declare-variable 'gnus-supercite-secondary-regexp '"^.*\"\\([^\"\n]+\\)\" +==" "Regexp matching mangled Supercite attribution lines.\nThe first regexp group should match the Supercite attribution." :group 'gnus-cite :type 'regexp)
(custom-declare-variable 'gnus-cite-minimum-match-count '2 "Minimum number of identical prefixes before we believe it's a citation." :group 'gnus-cite :type 'integer)
(custom-declare-variable 'gnus-cite-attribution-prefix '"In article\\|in <\\|On \\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\),\\|----- ?Original Message ?-----" "*Regexp matching the beginning of an attribution line." :group 'gnus-cite :type 'regexp)
(custom-declare-variable 'gnus-cite-attribution-suffix '"\\(\\(wrote\\|writes\\|said\\|says\\|>\\)\\(:\\|\\.\\.\\.\\)\\|----- ?Original Message ?-----\\)[ 	]*$" "*Regexp matching the end of an attribution line.\nThe text matching the first grouping will be used as a button." :group 'gnus-cite :type 'regexp)
(custom-declare-variable 'gnus-cite-unsightly-citation-regexp '"^-----Original Message-----\nFrom: \\(.+\n\\)+\n" "Regexp matching Microsoft-type rest-of-message citations." :group 'gnus-cite :type 'regexp)
(custom-declare-face 'gnus-cite-attribution-face '((t (:italic t))) "Face used for attribution lines.")
(custom-declare-variable 'gnus-cite-attribution-face ''gnus-cite-attribution-face "Face used for attribution lines.\nIt is merged with the face for the cited text belonging to the attribution." :group 'gnus-cite :type 'face)
(byte-code "###########" [custom-declare-face gnus-cite-face-1 ((((class color) (background dark)) (:foreground "light blue")) (((class color) (background light)) (:foreground "MidnightBlue")) (t (:italic t))) "Citation face." gnus-cite-face-2 ((((class color) (background dark)) (:foreground "light cyan")) (((class color) (background light)) (:foreground "firebrick")) (t (:italic t))) gnus-cite-face-3 ((((class color) (background dark)) (:foreground "light yellow")) (((class color) (background light)) (:foreground "dark green")) (t (:italic t))) gnus-cite-face-4 ((((class color) (background dark)) (:foreground "light pink")) (((class color) (background light)) (:foreground "OrangeRed")) (t (:italic t))) gnus-cite-face-5 ((((class color) (background dark)) (:foreground "pale green")) (((class color) (background light)) (:foreground "dark khaki")) (t (:italic t))) gnus-cite-face-6 ((((class color) (background dark)) (:foreground "beige")) (((class color) (background light)) (:foreground "dark violet")) (t (:italic t))) gnus-cite-face-7 ((((class color) (background dark)) (:foreground "orange")) (((class color) (background light)) (:foreground "SteelBlue4")) (t (:italic t))) gnus-cite-face-8 ((((class color) (background dark)) (:foreground "magenta")) (((class color) (background light)) (:foreground "magenta")) (t (:italic t))) gnus-cite-face-9 ((((class color) (background dark)) (:foreground "violet")) (((class color) (background light)) (:foreground "violet")) (t (:italic t))) gnus-cite-face-10 ((((class color) (background dark)) (:foreground "medium purple")) (((class color) (background light)) (:foreground "medium purple")) (t (:italic t))) gnus-cite-face-11 ((((class color) (background dark)) (:foreground "turquoise")) (((class color) (background light)) (:foreground "turquoise")) (t (:italic t)))] 4)
(custom-declare-variable 'gnus-cite-face-list ''(gnus-cite-face-1 gnus-cite-face-2 gnus-cite-face-3 gnus-cite-face-4 gnus-cite-face-5 gnus-cite-face-6 gnus-cite-face-7 gnus-cite-face-8 gnus-cite-face-9 gnus-cite-face-10 gnus-cite-face-11) "*List of faces used for highlighting citations.\n\nWhen there are citations from multiple articles in the same message,\nGnus will try to give each citation from each article its own face.\nThis should make it easier to see who wrote what." :group 'gnus-cite :type '(repeat face))
(custom-declare-variable 'gnus-cite-hide-percentage '50 "Only hide excess citation if above this percentage of the body." :group 'gnus-cite :type 'number)
(custom-declare-variable 'gnus-cite-hide-absolute '10 "Only hide excess citation if above this number of lines in the body." :group 'gnus-cite :type 'integer)
(custom-declare-variable 'gnus-cite-blank-line-after-header 't "If non-nil, put a blank line between the citation header and the button." :group 'gnus-cite :type 'boolean)
(custom-declare-variable 'gnus-article-boring-faces '(cons 'gnus-signature-face gnus-cite-face-list) "List of faces that are not worth reading.\nIf an article has more pages below the one you are looking at, but\nnothing on those pages is a word of at least three letters that is not\nin a boring face, then the pages will be skipped." :type '(repeat face) :group 'gnus-article-hiding)
(byte-code "B!B!B!B!B!B!	B!B!B!B!Ǉ" [gnus-cite-attribution-alist gnus-cite-prefix-alist gnus-cite-overlay-list gnus-cite-article gnus-cited-opened-text-button-line-format-alist current-load-list boundp nil gnus-cite-loose-prefix-alist gnus-cite-loose-attribution-alist ((?b (marker-position beg) ?d) (?e (marker-position end) ?d) (?n (count-lines beg end) ?d) (?l (- end beg) ?d)) gnus-cited-opened-text-button-line-format-spec gnus-cited-closed-text-button-line-format-alist gnus-cited-closed-text-button-line-format-spec] 2)
#@527 Highlight cited text.
Each citation in the article will be highlighted with a different face.
The faces are taken from `gnus-cite-face-list'.
Attribution lines are highlighted with the same face as the
corresponding citation merged with `gnus-cite-attribution-face'.

Text is considered cited if at least `gnus-cite-minimum-match-count'
lines matches `message-cite-prefix-regexp' with the same prefix.

Lines matching `gnus-cite-attribution-suffix' and perhaps
`gnus-cite-attribution-prefix' are considered attribution lines.
(defalias 'gnus-article-highlight-citation #[(&optional force) "q!ǉ@A@A@A\nBB	W	@	Aqk\n#b@A@A!\n\"AebSy #ϔϕ\n$##<@A@!#g." [skip numbers prefix entry number alist gnus-cite-parse-maybe nil t gnus-cite-add-face gnus-cite-find-prefix assoc re-search-forward gnus-point-at-eol gnus-article-add-button 1 gnus-cite-toggle face face-alist faces gnus-cite-face-list gnus-cite-attribution-alist gnus-cite-loose-attribution-alist gnus-cite-attribution-face gnus-article-buffer force gnus-cite-prefix-alist inhibit-point-motion-hooks buffer-read-only gnus-cite-attribution-suffix] 11 (#$ . 7585) (list 'force)])
#@52 Dissect the article buffer looking for cited text.
(defalias 'gnus-dissect-cited-text #[nil "q\"ǉA@A@\nm\nA@eb	y BB\n	S\n@U\nA@neb	Sy BBG  BBdb  BB\"A@@A@@U@Ak@BA@AkA@B@AkA@AkAAA@BA5@@BAAA@Ak@AAA@AkA@@by`AA@@UAAAKAF." [alist number numbers m omarks marks gnus-cite-parse-maybe nil t point-marker "" article-goto-body gnus-article-search-signature sort car-less-than-car 1 prefix gnus-article-buffer gnus-cite-prefix-alist] 7 (#$ . 8876)])
#@109 Do word wrapping in the current article.
If WIDTH (the numerical prefix), use that text width when filling.
(defalias 'gnus-article-fill-cited-article #[(&optional force width) "\nq Ɖ!A@@A@@}@A!Q@Aͪ͘@APed\"+@@ƉAC@@ƉƉƉƉ." [adaptive-fill-mode filladapt-mode gnus-article-buffer fill-column width marks nil t gnus-dissect-cited-text prefix-numeric-value "^" regexp-quote " *" "" " " fill-region inhibit-point-motion-hooks buffer-read-only use-hard-newlines fill-prefix adaptive-fill-regexp gnus-cite-prefix-alist gnus-cite-attribution-alist gnus-cite-loose-prefix-alist gnus-cite-loose-attribution-alist gnus-cite-article] 8 (#$ . 9488) (list t current-prefix-arg)])
#@202 Toggle hiding of all cited text except attribution lines.
See the documentation for `gnus-article-highlight-citation'.
If given a negative prefix, always show; if given a positive prefix,
always hide.
(defalias 'gnus-article-hide-citation #[(&optional arg force) "\"\"\"qʉD#eʉ !$%\nd$ \nb\n\"&\"y`` ? ʉ@AԘAs@@@AԘAs@@	b	:	@	y`Y 	:b	A[y`X 	! ʓ ʓ!%b'#)c `(!`BD$`$`ʓS .\n" [start gnus-cited-lines-visible point end marks beg gnus-set-format cited-opened-text-button t cited-closed-text-button nil article-type cite text-property-any gnus-callback gnus-article-toggle-cited-text get-text-property gnus-data 1 gnus-dissect-cited-text "" point-marker gnus-add-wash-type make-marker gnus-add-text-properties-when search-backward "\n\n" "\n" put-text-property gnus-article-add-button eval annotation found props gnus-article-buffer gnus-hidden-properties inhibit-point-motion-hooks buffer-read-only arg gnus-cite-blank-line-after-header gnus-cited-closed-text-button-line-format-spec] 10 (#$ . 10239) (byte-code " C\"" [append gnus-article-hidden-arg force] 3)])
#@124 Toggle hiding the text in REGION.
ARG can be nil or a number.  Positive means hide, negative
means show, nil means toggle.
(defalias 'gnus-article-toggle-cited-text #[(args &optional arg) "	@@A	A@S$\n\nU\nV\nWBB%!BB%!)b y`|``!`	$`$)." [region args arg end beg hidden text-property-any article-type cite t nil 0 gnus-remove-text-properties-when gnus-add-wash-type gnus-add-text-properties-when gnus-set-mode-line article gnus-point-at-bol 1 put-text-property gnus-article-add-button eval gnus-article-toggle-cited-text annotation start gnus-hidden-properties inhibit-point-motion-hooks buffer-read-only gnus-article-mime-handle-alist gnus-article-mime-handle-alist-1 gnus-cited-opened-text-button-line-format-spec gnus-cited-closed-text-button-line-format-spec] 9 (#$ . 11493)])
#@431 Toggle hiding of cited text that has an attribution line.
If given a negative prefix, always show; if given a positive prefix,
always hide.
This will do nothing unless at least `gnus-cite-hide-percentage'
percent and at least `gnus-cite-hide-absolute' lines of the body is
cited text with attributions.  When called interactively, these two
variables are ignored.
See also the documentation for `gnus-article-highlight-citation'.
(defalias 'gnus-article-hide-citation-maybe #[(&optional arg force) "rq!\" 	! `\ndb `\"@A\"AG\\An	__VV!\n@A\"AAn@AebSy\nk`y`D#[.!)" [start force gnus-cite-attribution-alist hidden total atts gnus-delete-wash-type cite gnus-article-check-hidden-text gnus-cite-parse-maybe article-goto-body nil t 0 gnus-article-search-signature count-lines assoc 100 gnus-add-wash-type gnus-add-text-properties 1 article-type gnus-set-mode-line article gnus-cite-prefix-alist gnus-article-buffer arg inhibit-point-motion-hooks buffer-read-only gnus-cite-hide-percentage gnus-cite-hide-absolute gnus-hidden-properties] 7 (#$ . 12376) (byte-code " \"" [append gnus-article-hidden-arg (force)] 3)])
#@39 Hide cited text in non-root articles.
(defalias 'gnus-article-hide-citation-in-followups #[nil "\nq	Aq!)? *" [gnus-summary-buffer gnus-article-current gnus-article-buffer article gnus-article-displayed-root-p gnus-article-hide-citation] 2 (#$ . 13596) nil])
#@26 Always parse the buffer.
(defalias 'gnus-cite-parse-maybe #[(&optional force no-overlay) " ǉǉ  V?@AB " [gnus-cite-loose-attribution-alist gnus-cite-loose-prefix-alist gnus-cite-attribution-alist gnus-cite-prefix-alist gnus-article-current gnus-cite-parse-max-size gnus-cite-localize nil gnus-cite-delete-overlays buffer-size gnus-cite-parse-wrapper no-overlay gnus-cite-article] 3 (#$ . 13872)])
(defalias 'gnus-cite-delete-overlays #[nil "\n@ŏ\nAr*Ç" [gnus-cite-overlay-list overlay #1=#:--dolist-temp--11484 nil (byte-code "	!	!eY	!dX	\"Əć" [gnus-cite-overlay-list overlay gnus-overlay-end delete nil (gnus-delete-overlay overlay) ((error))] 3) ((error))] 4])
(defalias 'gnus-cite-parse-wrapper #[nil "  ) ) *" [inhibit-point-motion-hooks article-goto-body t gnus-cite-parse-attributions gnus-cite-parse gnus-cite-connect-attributions] 1])
(defalias 'gnus-cite-parse #[nil "e`\"TǊdb `)\"Qˉ!#`W`w`!b \\W$!ЕЕTT\n \\V \\!\nS#ҕ\n{	G	$	\"AB	DBbJbT. eb%#e`\"e\"\nWBTrBB\"@@AAnG&WB_B@AA\"f*6." [numbers prefix end entry alist begin count-lines t gnus-article-search-signature "^\\(" "\\)" nil "^> 	\n" gnus-point-at-bol 2 looking-at 1 re-search-forward 0 gnus-set-text-properties assoc "" sort #[(a b) "	@G@GV" [b a] 2] gnus-set-difference line loop max gnus-cite-prefix-alist current guess-limit start gnus-cite-max-prefix prefix-regexp message-cite-prefix-regexp case-fold-search gnus-supercite-regexp gnus-cite-unsightly-citation-regexp gnus-cite-minimum-match-count] 13])
(defalias 'gnus-cite-parse-attributions #[nil "d#ɔɕe\"!y!͔͕{	by`)#	#?e`T\"\naby`T){\"\nFBBB.	)" [al start in wrote end al-alist nil re-search-forward t 0 count-lines gnus-cite-find-prefix looking-at 1 re-search-backward -1 assoc gnus-cite-attribution-suffix prefix tag gnus-cite-loose-attribution-alist gnus-supercite-secondary-regexp gnus-cite-attribution-prefix] 4])
(defalias 'gnus-cite-connect-attributions #[nil "	\"#####\n@AAGWp	\"\n\"d*#Ɖ#" [gnus-cite-minimum-match-count gnus-cite-prefix-alist gnus-cite-loose-prefix-alist alist entry append nil gnus-cite-match-attributions small #[(prefix tag) "	!	!Ű" [prefix tag "\\`" regexp-quote "[ 	]*" ">"] 5] t #[(prefix tag) "!Q" [tag "\\<" regexp-quote "\\>"] 3] #[(prefix tag) "!Q" [tag "\\<" regexp-quote "\\>"] 3] small-if-unique #[(prefix tag) "!Q" [prefix "\\`" regexp-quote ".+"] 3] #[(prefix tag) "!Q" [prefix "\\`" regexp-quote ".+"] 3] delq first] 4])
(defalias 'gnus-cite-match-attributions #[(sort after fun) " ǉ!\"#&\n=\n@\nA@A@88#$$#\"%aƪ%a?!GW!'\"	ǉ@A@A\"!G\"VOK\"CW<3.\"  \" @BB@BB	s\" (A	\"@AanA\"Ab	\"\n\"V+\" ." [numbers gnus-cite-loose-prefix-alist atts att current best t nil 2 3 "" small first gnus-cite-find-loose -1 1000000 apply min string-match delq gnus-set-difference cite cites loop smallest regexp prefix in wrote compare candidate gnus-cite-attribution-alist gnus-cite-loose-attribution-alist size limit tag fun sort case-fold-search after gnus-cite-prefix-alist] 12])
(defalias 'gnus-cite-find-loose #[(prefix) "	Ɖ@@A!mBg," [prefix gnus-cite-loose-attribution-alist att lines line atts nil gnus-cite-find-prefix] 3])
(defalias 'gnus-cite-add-face #[(number prefix face) "\nǉebSyUGuw`x`W\"	B\n#," [inhibit-point-motion-hooks gnus-cite-overlay-list face overlay from to t nil 0 " 	" 1 gnus-make-overlay gnus-overlay-put number prefix] 4])
(defalias 'gnus-cite-toggle #[(prefix) "\nq\"	\"A@AebSy`\"`y`#!`y`D#!)=-" [gnus-cite-prefix-alist prefix gnus-article-buffer gnus-hidden-properties number numbers gnus-cite-parse-maybe nil t assoc get-text-property invisible remove-text-properties 1 gnus-add-wash-type cite gnus-add-text-properties article-type gnus-set-mode-line article inhibit-point-motion-hooks buffer-read-only gnus-cite-attribution-alist gnus-article-mime-handle-alist gnus-article-mime-handle-alist-1] 5])
(defalias 'gnus-cite-find-prefix #[(line) "	@AAsq@l\n+" [line gnus-cite-prefix-alist prefix entry alist "" nil] 3])
#@58 Make the citation variables local to the article buffer.
(defalias 'gnus-cite-localize #[nil "A@!s)" [vars (gnus-cite-article gnus-cite-overlay-list gnus-cite-prefix-alist gnus-cite-attribution-alist gnus-cite-loose-prefix-alist gnus-cite-loose-attribution-alist) make-local-variable] 3 (#$ . 18607)])
#@47 Say whether the current line is a cited line.
(defalias 'gnus-cited-line-p #[nil "y\"\n@`G`\\{\nAk*	*" [gnus-cite-prefix-alist found #1=#:--dolist-temp--11485 prefix 0 nil mapcar car t] 4 (#$ . 18927)])
(byte-code " !" [gnus-ems-redefine provide gnus-cite] 2)
