;ELC
;;; Compiled by LTX@Xue-LingTaos-MacBook-Pro.local on Wed Mar 16 23:14:31 2011
;;; from file /Users/LTX/Projects/Emacs/emacs/lisp/gnus/gnus-spec.el
;;; in Emacs version 24.0.50.1
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`gnus-spec.el' was compiled for Emacs 23 or later"))

;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\204\302\301\303\"\210\304\305!\207" [fboundp declare-function defalias (macro . #[(&rest r) "\300\207" [nil] 1]) require gnus] 3)
#@70 *If non-nil, use correct functions for dealing with wide characters.
(custom-declare-variable 'gnus-use-correct-string-widths '(featurep 'xemacs) '(#$ . -702) :version "22.1" :group 'gnus-format :type 'boolean)
#@141 *If non-nil, use a replacement `format' function which preserves
text properties. This is only needed on XEmacs, as Emacs does this anyway.
(custom-declare-variable 'gnus-make-format-preserve-properties '(featurep 'xemacs) '(#$ . -920) :version "22.1" :group 'gnus-format :type 'boolean)
(byte-code "\301B\302\301!\204\303\301\304\"\210\305B\302\305!\204\303\305\304\"\210\306B\302\306!\204-\303\306\307\"\210\304\207" [current-load-list gnus-summary-mark-positions default-boundp set-default nil gnus-group-mark-positions gnus-group-indentation ""] 3)
(defalias 'gnus-summary-line-format-spec #[nil "	\n\261\210\306`\307\310\f
\311\"\211G\312V\203$\313\312O\202&)%c\210`$\210\314\315\261\207" [gnus-tmp-unread gnus-tmp-replied gnus-tmp-score-char gnus-tmp-indentation gnus-tmp-opening-bracket gnus-tmp-lines gnus-put-text-property format "%c%4s: %-23s%c" gnus-summary-from-or-to-or-newsgroups 23 0 " " "\n" gnus-tmp-header gnus-tmp-from val gnus-tmp-closing-bracket gnus-mouse-face-prop gnus-mouse-face gnus-tmp-subject-or-nil] 10])
(byte-code "\301B\302\301!\204\303\301\304\301!\"\210\301\207" [current-load-list gnus-summary-line-format-spec default-boundp set-default gnus-byte-code] 4)
(defalias 'gnus-summary-dummy-line-format-spec #[nil "\303c\210\304`\305c\210`	$\210\306\n\307\261\207" [gnus-mouse-face-prop gnus-mouse-face gnus-tmp-subject "*  " gnus-put-text-property ":				 :" " " "\n"] 5])
(byte-code "\301B\302\301!\204\303\301\304\301!\"\210\301\207" [current-load-list gnus-summary-dummy-line-format-spec default-boundp set-default gnus-byte-code] 4)
(defalias 'gnus-group-line-format-spec #[nil "	\n\306\307\f\"\261\210\310`
\311\261\210`S\n$\207" [gnus-tmp-marked-mark gnus-tmp-subscribed gnus-tmp-process-marked gnus-group-indentation gnus-tmp-number-of-unread gnus-tmp-group format "%5s: " gnus-put-text-property "\n" gnus-mouse-face-prop gnus-mouse-face] 7])
(byte-code "\301B\302\301!\204\303\301\304\301!\"\210\301\207" [current-load-list gnus-group-line-format-spec default-boundp set-default gnus-byte-code] 4)
#@24 Alist of format specs.
(defvar gnus-format-specs (byte-code "\304B\305\306 B\307\310	E\311\312\nE\313\314E\257\207" [emacs-version gnus-group-line-format-spec gnus-summary-dummy-line-format-spec gnus-summary-line-format-spec version gnus-version gnus-continuum-version group "%M%S%p%P%5y: %(%g%)\n" summary-dummy "*  %(:                          :%) %S\n" summary "%U%R%z%I%(%[%4L: %-23,23f%]%) %s\n"] 7) (#$ . 3019))
(byte-code "\302B\303\302!\204\304\302	\"\210\305B\303\305!\204\304\305\306\"\210\307B\303\307!\204-\304\307\306\"\210\310B\303\310!\204<\304\310\306\"\210\306\207" [current-load-list gnus-format-specs gnus-default-format-specs default-boundp set-default gnus-article-mode-line-format-spec nil gnus-summary-mode-line-format-spec gnus-group-mode-line-format-spec] 3)
#@45 Update the format specification near point.
(defalias 'gnus-update-format #[(var) "\306\307\310\"\210\311\312\"!\211\n\236\313\211\203\314\n\"\306\315\316\"!\317\306!J\211\306\315\320\"!J\307\321\"?#L\210\306\315\316\"!J	\f
E\nB\322\323!\210\324 \210\325 \210\326
!c,\207" [var type gnus-format-specs entry value spec intern string-match "gnus-\\([-a-z]+\\)-line" match-string 1 nil delq format "%s-spec" gnus-parse-format "%s-alist" "mode" pop-to-buffer "*Gnus Format*" erase-buffer lisp-interaction-mode gnus-pp-to-string] 8 (#$ . 3826) (list (save-excursion (eval-defun nil) (re-search-forward "[ 	\n]" nil t) (when (re-search-backward "\\(gnus-[-a-z]+-line-format\\)" nil t) (match-string 1))))])
#@79 Update all (necessary) format specifications.
Return a list of updated types.
(defalias 'gnus-update-format-specifications #[(&optional force &rest types) "\204	\203\306 \306	!\232\203\n\307\236A\232\204\310\311\f>\203C\311\236\312\313
8!\314\315\"\204=\314\316\"\204B\317
\"*\310\211\211\211\211 !\f\211A@\211\203\212\320\321\322\"!\"\323\"!\203\225\"J\211\203\225\211\"\205\215\";\203\211\324\202\212\325\"!)\203\225q\210\320\321\326\"!J!)\236A\211 @\203\311 @!\232\203\311\320\321\327\"! \211#A@)L\210\202!;\204\324!\202\350\330!\320\321\331\"!J\314\332\333!\"?# \203\377 A\240\210 !\240\210\202	!EB\320\321\327\"!L\210B)\202R\307\236\204+\307\nBB-\207" [force gnus-newsrc-file-version emacs-version gnus-format-specs types spec gnus-continuum-version version nil group gnus-prin1-to-string 2 string-match " gnus-tmp-grouplens[ )]" " gnus-tmp-decoded-group[ )]" delq intern format "gnus-%s-buffer" boundp get-buffer buffer-name "gnus-%s-line-format" "gnus-%s-line-format-spec" gnus-parse-format "gnus-%s-line-format-alist" "mode$" symbol-name sspec updated val type entry new-format buffer x] 8 (#$ . 4552)])
(byte-code "\301B\302\301!\204\303\301\304\"\210\305B\302\305!\204\303\305\304\"\210\306B\302\306!\204-\303\306\304\"\210\307B\302\307!\204<\303\307\304\"\210\310B\302\310!\204K\303\310\304\"\210\301\207" [current-load-list gnus-mouse-face-0 default-boundp set-default highlight gnus-mouse-face-1 gnus-mouse-face-2 gnus-mouse-face-3 gnus-mouse-face-4] 3)
(defalias 'gnus-mouse-face-function #[(form type) "\302\303\304\305\306\"B\307	\310\232\203\311\202\312\313\314\315	\"!JD\257\207" [form type gnus-put-text-property (point) progn append ((point)) gnus-mouse-face-prop 0 gnus-mouse-face quote intern format "gnus-mouse-face-%d"] 9])
(byte-code "\301B\302\301!\204\303\301\304\"\210\305B\302\305!\204\303\305\306\"\210\307B\302\307!\204-\303\307\310\"\210\311B\302\311!\204<\303\311\304\"\210\312B\302\312!\204K\303\312\304\"\210\301\207" [current-load-list gnus-face-0 default-boundp set-default bold gnus-face-1 italic gnus-face-2 bold-italic gnus-face-3 gnus-face-4] 3)
(defalias 'gnus-face-face-function #[(form type) "\302\303\304\305\306\"B\307\310\311\312\313\314\315	\"!JFDF\207" [form type gnus-add-text-properties (point) progn append ((point)) quote gnus-face t face intern format "gnus-face-%d"] 11])
(defalias 'gnus-balloon-face-function #[(form type) "\302\303\304\305\306\"B\307\310!\203\311\202\312\313\314\315	\"!\257\207" [form type gnus-put-text-property (point) progn append ((point)) fboundp balloon-help-mode 'balloon-help 'help-echo intern format "gnus-balloon-face-%d"] 8])
(defalias 'gnus-spec-tab #[(column) "\301V\203\302\303\304\305\306BB\307BBE\207\310!\311\312\313E\314\315\311\316\317DE\320BBE\302\303\304\305\321BB\322BBEF)\207" [column 0 insert-char 32 max - ((current-column)) (0) abs if > (current-column) let ((end (point))) = move-to-column ((delete-region (point) end) (delete-region (1- (point)) end) (insert " ")) ((current-column)) (0)] 9])
#@37 Return the correct width of STRING.
(defalias 'gnus-correct-length #[(string) "\301\302\303\304\"\"\207" [string apply + mapcar char-width] 5 (#$ . 7728)])
(defalias 'gnus-correct-substring #[(string start &optional end) "\306\211\211\211G\307P\n	W\203+	W\203+\310\nH!\\\nT\211\202\n\n	X\203N\n\203?\nX\203N\310\nH!\\\nT\211\202.\n
\fSO.\207" [string length seek wseek wend wstart 0 "" char-width start end] 8])
(defalias 'gnus-string-width-function #[nil "\203\301\207\302\303!\203\303\207\304\207" [gnus-use-correct-string-widths gnus-correct-length fboundp string-width length] 2])
(defalias 'gnus-substring-function #[nil "\203\301\207\302\303!\203\301\207\304\207" [gnus-use-correct-string-widths gnus-correct-substring fboundp string-width substring] 2])
#@44 Return a form that limits EL to MAX-WIDTH.
(defalias 'gnus-tilde-max-form #[(el max-width) "\305!\306 \307 \f9\2032\310\311\n\fDE\312W\203(	\f\313\n\fDEE\202-	\f\312F\fF\202\\\314\315\316\fDDC\310\311\n\317BE\312W\203R	\315\313\n\320BEE\202W	\315\312F\321BBBE+\207" [max-width substring-fun length-fun max el abs gnus-string-width-function gnus-substring-function if > 0 - let val eval (val) (val) (val)] 9 (#$ . 8540)])
#@46 Return a form that cuts CUT-WIDTH off of EL.
(defalias 'gnus-tilde-cut-form #[(el cut-width) "\305!\306 \307 \f9\2032\310\311\n\fDE\312W\203)	\f\312\313\n\fDEF\202-	\fE\fF\202\\\314\315\316\fDDC\310\311\n\317BE\312W\203S	\315\312\313\n\320BEF\202W	\315E\321BBBE+\207" [cut-width substring-fun length-fun cut el abs gnus-string-width-function gnus-substring-function if > 0 - let val eval (val) (val) (val)] 10 (#$ . 8985)])
#@54 Return a form that is blank when EL is IGNORE-VALUE.
(defalias 'gnus-tilde-ignore-form #[(el ignore-value) "9\203\302\303	E\304F\207\305\306\307DDC\302\303\306	E\310BBE\207" [el ignore-value if equal #1="" let val eval (#1# val)] 6 (#$ . 9433)])
#@176 Return a form that pads EL to PAD-WIDTH accounting for multi-column
characters correctly. This is because `format' may pad to columns or to
characters when given a pad value.
(defalias 'gnus-pad-form #[(el pad-width) "\305!\306W\307 \f9\2030\310\311\312	\fDEDC\313\314\315\n\205\"\316\f\n?\205)\317F\fFE\202T\320\321\322\fDD\311\312	\323BEDD\313\324\315\n\205G\325\321\n?\205N\326F\327BBBE+\207" [pad-width length-fun side pad el abs 0 gnus-string-width-function let need - if (> need 0) concat (make-string need 32) (make-string need 32) let* val eval (val) (> need 0) (make-string need 32) (make-string need 32) (val)] 8 (#$ . 9692)])
(defalias 'gnus-parse-format #[(format spec-alist &optional insert) "\304\305\306	\"\203\307	\n\"\202\310	\n#)\207" [case-fold-search format spec-alist insert nil string-match "\\`\\(.*\\)%[0-9]?[{(Â«]\\(.*\\)%[0-9]?[Â»})]\\(.*\n?\\)\\'\\|%[-0-9]*=\\|%[-0-9]*\\*" gnus-parse-complex-format gnus-parse-simple-format] 4])
(defalias 'gnus-parse-complex-format #[(format spec-alist) "\306\212\307 \210	c\210eb\210\310\311\306\312#\203\313\314\306\312#\210\202\feb\210\315c\210\310\316\306\312#\203{\317\224\2036\320\317!\2027\321\320\322!\323H\n\324U\204P\n\325U\204P\n\326U\203s\313\327\n\324U\203\\\330\202g\n\325U\203f\331\202g\332\333\334\260\312\211#\210\202w\313\335!\210*\202#db\210\336c\210eb\210\306\310\337\306\312#\203\231\313\340\312\211#\210\312\202\206)eb\210\310\341\306\312#\203\263\313\301\342\320\317!\"\312\211#\210\202\235eb\210\343p!\203\315\344\345\346\347
*\"\350\"BB\202\324\351\347
*\"B+\207" [cursor-spec format delim number case-fold-search form nil gnus-set-work-buffer re-search-forward "\"" t replace-match "\\\"" "(\"" "%\\([0-9]+\\)?\\([Â«Â»{}()]\\)" 1 match-string "0" 2 0 40 123 171 "\"(" "mouse" "face" "balloon" " " " \"" "\")\"" "\")" "%\\([-0-9]+\\)?\\*" "\"(point)\"" "%\\([-0-9]+\\)=" "\"(tab %s)\"" read let (gnus-position) append gnus-complex-form-to-spec ((if gnus-position (gnus-put-text-property gnus-position (1+ gnus-position) 'gnus-position t))) progn spec-alist] 6])
(defalias 'gnus-complex-form-to-spec #[(form spec-alist) "\301\302\303\304\"\"\207" [form delq nil mapcar #[(sform) ";\203\303	\304#\207@\305=\203\306\207@\307=\203$\310\211A@)!\207\311\312\313@\"!\314\211AA)	\"A@\"\207" [sform spec-alist x gnus-parse-simple-format t point (setq gnus-position (point)) tab gnus-spec-tab intern format "gnus-%s-face-function" gnus-complex-form-to-spec] 5]] 5])
#@345 A version of `format' which preserves text properties.

Required for XEmacs, where the built in `format' function strips all text
properties from both the format string and any inserted strings.

Only supports the format sequence %s, and %% for inserting
literal % characters. A pad width and an optional - (to right pad)
are supported for %s.
(defalias 'gnus-xmas-format #[(fstring &rest args) "\306G\307\310!rq\210\311\216\fc\210eb\210\312\n\313\314#\203\216\315\225b\210\316\315!\317\230\2030\320\321!\210\202\204;\322\323\324	\f$\210\325\316\326!\206C\327!@\211;\203S\202X\330\331\" \316\332!?!\315
 GZ]\"\333\327!\210!\203x\334\335\"\"\210 c\210!\204\207\334\335\"\"\210A-\202\336 -\207" [args n re #1=#:temp-buffer fstring minlen "%%\\|%\\(-\\)?\\([1-9][0-9]*\\)?s" generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) re-search-forward nil t 0 match-string "%%" delete-char -1 error wrong-number-of-arguments my-format string-to-number 2 "" format "%s" 1 replace-match insert-char 32 buffer-string arg str lpad padlen] 6 (#$ . 12209)])
(defalias 'gnus-parse-simple-format #[(format spec-alist &optional insert) "\306\307\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211@ABCDEFGHIJK\212\310 \210c\210eb\210\311\312\307\313#\203a\307\211D@\307\211AK\307\211\307\211`S@\314\315!\203}\316\317\320!!A\321\224\203w\316\321\224T\321\225{!K\306\225b\202\314\322!\203\320u\210\323p!\211@C\n\211LA@)BC\324>\203\245BA\202[C\325=\203\264B[A\202[C\326>\203\302BK\202[C\327=\203\321B[K\202[C\330>\203\336B\202[C\331=\203\354B[\202[C\332=\203B;\203\376B\202\333\334B\"\202[C\335=\203B\202[\336\337\n\"\210\202[\307\204[\307f\211J\340=\203I\320u\210\307f\211D\341=\203`\314\342!\203`\317\320!D\320\225b\210\202`J\341=\203`\314\342!\203`\343\317\320!!\320\225b\210\320u\210@`|\210\312c\210J\344=\203x\312c\210\202;J\345=\203\207\346DG\202\306D\203\246\343\333D;\203\230\347\202\231\350D\"!\351D\346DG\202\306\206\254JM\236A\211G\204\306J\352=\203\303\353G\202\306\354GG\211LA@)A\203\332\355A!c\210K\204\347
\204\347\f\203S\346c\210G@NG\211LA@)\356U\203\357NDN\202G\211LA@)\360U\203\361NDN\f\203#\362N\f\"N
\203.\363N
\"NK\203;\364NK\"NA\203H\365NA\"NNIBI)\202;	c\210G@IBI\202;\366ed\"H)H\367\230\203s\307\202\370\312H\"\204\201HC\202H\334\230\203\217I@C\202H\371\230\203\235I@C\202H\372\230\203\277\313E;\203\266\373\361I@DD\202\361I@DC\202\370\374H\"\203\315I\237\202\370\375H\"\203\341I@H\321\307OD\202\370\376H\"\203\372\317\320H\"I@\317\321H\"E\202\370\377H\"\203\317\320H\"I@D\202\333HI\237BBCF;\2034F\205OE\203-F\202O\373FB\202OF;\203?F\202OF:\203N\201OFB\202O\367.\207" [extended-spec elem-type tilde tilde-form ignore-value cut-width 0 nil gnus-set-work-buffer re-search-forward "%" t looking-at "\\([-.0-9]+\\)\\(,[-0-9]+\\)?" string-to-number match-string 1 2 "~" read (pad pad-left) pad-right (max-right max) max-left (cut cut-left) cut-right ignore format "%s" form error "Unknown tilde type: %s" 117 38 "&\\([^;]+\\);" intern 37 64 115 "gnus-user-format-function-%s" "gnus-user-format-function-%c" gnus-tmp-header 108 (#1="" 115) ("*" 115) number-to-string 99 char-to-string 100 int-to-string gnus-tilde-ignore-form gnus-tilde-cut-form gnus-tilde-max-form gnus-pad-form buffer-substring-no-properties #1# string-match "%c" "%d" insert "\\`\\(%[cs]\\)+\\'" "\\`%[sc][^%]+\\'" "\\`\\([^%]+\\)%[sc]\\([^%]+\\)\\'" "\\`\\([^%]+\\)%[sc]\\'" spec-beg pad-width value type user-defined dontinsert result elem fstring flist spec max-width x spec-alist el concat] 19])
#@76 Eval the format variable FORMAT, using ALIST.
If PROPS, insert the result.
(defalias 'gnus-eval-format #[(format &optional alist props) "\304	\n#\n\203\305`\306!\210`\n#\202\306!)\207" [format alist props form gnus-parse-format gnus-add-text-properties eval] 4 (#$ . 16046)])
#@45 Byte-compile the user-defined format specs.
(defalias 'gnus-compile #[nil "\306\307!\210\310\311\211\212\312\313\314\"\210\f\203q\f\211A@\211@\315>\203+\316\n\"\202\n\211AA)@\211<\203m@\317=\204m@\320=\203U\321\211A@)!\204m\322\301\323\311E\"\210\324\301!\210\n\211AA)\325\301!\240\210)\202\326BB\327 \210\312\313\330\"-\207" [gnus-format-specs gnus-tmp-func entry byte-compile-warnings entries x require bytecomp (unresolved callargs redefine) nil gnus-message 7 "Compiling format specs..." (gnus-version version) delq byte-code funcall byte-code-function-p defalias lambda byte-compile gnus-byte-code version gnus-dribble-touch "Compiling user specs...done" form emacs-version] 6 (#$ . 16336) nil])
(defalias 'gnus-set-format #[(type &optional insertable) "\302\303\304\"!\305\302\303\306\"!J\302\303\307\"!J	#L\207" [type insertable intern format "gnus-%s-line-format-spec" gnus-parse-format "gnus-%s-line-format" "gnus-%s-line-format-alist"] 7])
(provide 'gnus-spec)
