;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:48:06 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/mail/supercite.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`supercite.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\311\312\311\313&	\210\303\314\305\315\307\310\311\304&\210\303\316\305\317\307\310\311\304&\210\303\320\305\321\307\310\311\304&\210\303\322\305\323\307\310\311\304&\207" [require regi sendmail custom-declare-group supercite nil "Supercite package" :prefix "sc-" :group mail news supercite-frames "Supercite (regi) frames" supercite-attr "Supercite attributions" supercite-cite "Supercite citings" supercite-hooks "Hooking into supercite"] 10)
#@73 *If non-nil, automatically fill each paragraph after it has been cited.
(custom-declare-variable 'sc-auto-fill-region-p 't '(#$ . -1136) :type 'boolean :group 'supercite)
#@136 *Number of blank lines to leave after mail headers have been nuked.
Set to nil, to use whatever blank lines happen to occur naturally.
(custom-declare-variable 'sc-blank-lines-after-headers '1 '(#$ . -1314) :type '(choice (const :tag "leave" nil) integer) :group 'supercite)
#@46 *String comprising first part of a citation.
(custom-declare-variable 'sc-citation-leader '"    " '(#$ . -1595) :type 'string :group 'supercite-cite)
#@107 *String comprising third part of a citation.
This string is used in both nested and non-nested citations.
(custom-declare-variable 'sc-citation-delimiter '">" '(#$ . -1752) :type 'string :group 'supercite-cite)
#@56 *String comprising fourth and last part of a citation.
(custom-declare-variable 'sc-citation-separator '" " '(#$ . -1969) :type 'string :group 'supercite-cite)
#@100 *Regexp describing citation leader for a cited line.
This should NOT have a leading `^' character.
(custom-declare-variable 'sc-citation-leader-regexp '"[ 	]*" '(#$ . -2136) :type 'regexp :group 'supercite-cite)
#@164 *Regexp describing variable root part of a citation for a cited line.
This should NOT have a leading `^' character.  See also
`sc-citation-nonnested-root-regexp'.
(custom-declare-variable 'sc-citation-root-regexp '"[-._[:alnum:]]*" '(#$ . -2355) :type 'regexp :group 'supercite-cite)
#@297 *Regexp describing the variable root part of a nested citation.
This should NOT have a leading `^' character.  This variable is
related to `sc-citation-root-regexp' but whereas that variable
describes both nested and non-nested citation roots, this variable
describes only nested citation roots.
(custom-declare-variable 'sc-citation-nonnested-root-regexp '"[-._[:alnum:]]+" '(#$ . -2646) :type 'regexp :group 'supercite-cite)
#@103 *Regexp describing citation delimiter for a cited line.
This should NOT have a leading `^' character.
(custom-declare-variable 'sc-citation-delimiter-regexp '"[>]+" '(#$ . -3080) :type 'regexp :group 'supercite-cite)
#@103 *Regexp describing citation separator for a cited line.
This should NOT have a leading `^' character.
(custom-declare-variable 'sc-citation-separator-regexp '"[ 	]*" '(#$ . -3304) :type 'regexp :group 'supercite-cite)
#@45 *If non-nil, put a citation on blank lines.
(custom-declare-variable 'sc-cite-blank-lines-p 'nil '(#$ . -3528) :type 'boolean :group 'supercite-cite)
#@359 *Alist for frame selection during citing.
Each element of this list has the following form:
   (INFOKEY ((REGEXP . FRAME)
             (REGEXP . FRAME)
             (...)))

Where INFOKEY is a key for `sc-mail-field', REGEXP is a regular
expression to match against the INFOKEY's value.  FRAME is a citation
frame, or a variable containing a citation frame.
(custom-declare-variable 'sc-cite-frame-alist ''nil '(#$ . -3685) :type '(repeat (list symbol (repeat (cons regexp (choice (repeat (repeat sexp)) symbol))))) :group 'supercite-frames)
#@97 *Alist for frame selection during unciting.
See the variable `sc-cite-frame-alist' for details.
(custom-declare-variable 'sc-uncite-frame-alist ''nil '(#$ . -4233) :type '(repeat (list symbol (repeat (cons regexp (choice (repeat (repeat sexp)) symbol))))) :group 'supercite-frames)
#@97 *Alist for frame selection during reciting.
See the variable `sc-cite-frame-alist' for details.
(custom-declare-variable 'sc-recite-frame-alist ''nil '(#$ . -4521) :type '(repeat (list symbol (repeat (cons regexp (choice (repeat (repeat sexp)) symbol))))) :group 'supercite-frames)
#@42 *Default REGI frame for citing a region.
(custom-declare-variable 'sc-default-cite-frame ''((begin (progn (sc-fill-if-different) (setq sc-tmp-nested-regexp (sc-cite-regexp "") sc-tmp-nonnested-regexp (sc-cite-regexp) sc-tmp-dumb-regexp (concat "\\(" (sc-cite-regexp "") "\\)" (sc-cite-regexp sc-citation-nonnested-root-regexp))))) ("^[ 	]*$" (if sc-cite-blank-lines-p (sc-cite-line) (sc-fill-if-different ""))) (sc-reference-tag-string (if (string= sc-reference-tag-string "") (list 'continue) nil)) (sc-tmp-dumb-regexp (sc-cite-coerce-dumb-citer)) (sc-tmp-nested-regexp (sc-add-citation-level)) (sc-tmp-nonnested-regexp (sc-cite-coerce-cited-line)) (sc-nested-citation-p (sc-add-citation-level)) (t (sc-cite-line)) (end (sc-fill-if-different ""))) '(#$ . -4809) :type '(repeat (repeat sexp)) :group 'supercite-frames)
#@44 *Default REGI frame for unciting a region.
(custom-declare-variable 'sc-default-uncite-frame ''(("^[ 	]*$" nil) ((sc-cite-regexp) (sc-uncite-line))) '(#$ . -5634) :type '(repeat (repeat sexp)) :group 'supercite-frames)
#@44 *Default REGI frame for reciting a region.
(custom-declare-variable 'sc-default-recite-frame ''((begin (sc-fill-if-different)) ("^[ 	]*$" nil) ((sc-cite-regexp) (sc-recite-line (sc-cite-regexp))) (t (sc-cite-line)) (end (sc-fill-if-different ""))) '(#$ . -5859) :type '(repeat (repeat sexp)) :group 'supercite-frames)
#@712 *This variable controls automatic citation of yanked text.
Legal values are:

non-nil   -- cite the entire region, regardless of its size
nil       -- do not cite the region at all
<integer> -- a number indicating the threshold for citation.  When
	     the number of lines in the region is greater than this
	     value, a warning message will be printed and the region
	     will not be cited.  Lines in region are counted with
	     `count-lines'. 

The gathering of attribution information is not affected by the value
of this variable.  The number of lines in the region is calculated
*after* all mail headers are removed.  This variable is only consulted
during the initial citing via `sc-cite-original'.
(custom-declare-variable 'sc-cite-region-limit 't '(#$ . -6184) :type '(choice (const :tag "do not cite" nil) (integer :tag "citation threshold") (other :tag "always cite" t)) :group 'supercite-cite)
#@73 *If non-nil, always confirm attribution string before citing text body.
(custom-declare-variable 'sc-confirm-always-p 't '(#$ . -7101) :type 'boolean :group 'supercite-attr)
#@62 *String used when author's attribution cannot be determined.
(custom-declare-variable 'sc-default-attribution '"Anon" '(#$ . -7281) :type 'string :group 'supercite-attr)
#@55 *String used when author's name cannot be determined.
(custom-declare-variable 'sc-default-author-name '"Anonymous" '(#$ . -7457) :type 'string :group 'supercite-attr)
#@63 *Non-nil means downcase the attribution and citation strings.
(custom-declare-variable 'sc-downcase-p 'nil '(#$ . -7631) :type 'boolean :group 'supercite-attr :group 'supercite-cite)
#@53 *If non-nil, treat electric references as circular.
(custom-declare-variable 'sc-electric-circular-p 't '(#$ . -7820) :type 'boolean :group 'supercite-attr)
#@56 *Hook for `sc-electric-mode' electric references mode.
(custom-declare-variable 'sc-electric-mode-hook 'nil '(#$ . -7983) :type 'hook :group 'supercite-hooks)
#@38 *Use electric references if non-nil.
(custom-declare-variable 'sc-electric-references-p 'nil '(#$ . -8148) :type 'boolean :group 'supercite)
#@60 *If non-nil, delete all leading white space before citing.
(custom-declare-variable 'sc-fixup-whitespace-p 'nil '(#$ . -8295) :type 'boolean :group 'supercite)
#@50 *Hook which gets run once after Supercite loads.
(custom-declare-variable 'sc-load-hook 'nil '(#$ . -8461) :type 'hook :group 'supercite-hooks)
#@68 *Hook which gets run before each invocation of `sc-cite-original'.
(custom-declare-variable 'sc-pre-hook 'nil '(#$ . -8611) :type 'hook :group 'supercite-hooks)
#@67 *Hook which gets run after each invocation of `sc-cite-original'.
(custom-declare-variable 'sc-post-hook 'nil '(#$ . -8778) :type 'hook :group 'supercite-hooks)
#@48 *Warn if mail headers don't conform to RFC822.
(custom-declare-variable 'sc-mail-warn-if-non-rfc822-p 't '(#$ . -8945) :type 'boolean :group 'supercite-attr)
#@68 *Value returned by `sc-mail-field' if field isn't in mail headers.
(custom-declare-variable 'sc-mumble '"" '(#$ . -9109) :type 'string :group 'supercite-attr)
#@474 *Name list components which are filtered out as noise.
This variable contains an association list where each element is of
the form:  (REGEXP . POSITION).

REGEXP is a regular expression which matches the name list component.
Match is performed using `string-match'.  POSITION is the position in
the name list which can match the regular expression, starting at zero
for the first element.  Use `last' to match the last element in the
list and `any' to match all elements.
(custom-declare-variable 'sc-name-filter-alist ''(("^\\(Mr\\|Mrs\\|Ms\\|Dr\\)[.]?$" . 0) ("^\\(Jr\\|Sr\\)[.]?$" . last) ("^ASTS$" . 0) ("^[I]+$" . last)) '(#$ . -9275) :type '(repeat (cons regexp (choice (const last) (const any) (integer :tag "position")))) :group 'supercite-attr)
#@125 *Controls whether to use nested or non-nested citation style.
Non-nil uses nested citations, nil uses non-nested citations.
(custom-declare-variable 'sc-nested-citation-p 'nil '(#$ . -10037) :type 'boolean :group 'supercite)
#@320 *Controls mail header nuking.
Used in conjunction with `sc-nuke-mail-header-list'.  Legal values are:

`all'       -- nuke all mail headers
`none'      -- don't nuke any mail headers
`specified' -- nuke headers specified in `sc-nuke-mail-header-list'
`keep'      -- keep headers specified in `sc-nuke-mail-header-list'
(custom-declare-variable 'sc-nuke-mail-headers ''all '(#$ . -10269) :type '(choice (const all) (const none) (const specified) (const keep)) :group 'supercite)
#@200 *List of mail header regexps to remove or keep in body of reply.
This list contains regular expressions describing the mail headers to
keep or nuke, depending on the value of `sc-nuke-mail-headers'.
(custom-declare-variable 'sc-nuke-mail-header-list 'nil '(#$ . -10754) :type '(repeat regexp) :group 'supercite)
#@1741 *Specifies what to use as the attribution string.
Supercite creates a list of possible attributions when it scans the
mail headers from the original message.  Each attribution choice is
associated with a key in an attribution alist.  Supercite tries to
pick a "preferred" attribution by matching the attribution alist
keys against the elements in `sc-preferred-attribution-list' in order.
The first non-empty string value found is used as the preferred
attribution.

Note that Supercite now honors the X-Attribution: mail field.  If
present in the original message, the value of this field should always
be used to select the most preferred attribution since it reflects how
the original author would like to be distinguished.  It should be
considered bad taste to put any attribution preference key before
"x-attribution" in this list, except perhaps for "sc-lastchoice"
(see below).

Supercite remembers the last attribution used when reciting an already
cited paragraph.  This attribution will always be saved with the
"sc-lastchoice" key, which can be used in this list.  Note that the
last choice is always reset after every call of `sc-cite-original'.

Barring error conditions, the following preferences are always present
in the attribution alist:

"emailname"    -- email terminus name
"initials"     -- initials of author
"firstname"    -- first name of author
"lastname"     -- last name of author
"middlename-1" -- first middle name of author
"middlename-2" -- second middle name of author
...

Middle name indexes can be any positive integer greater than 0,
although it is unlikely that many authors will supply more than one
middle name, if that many.  The string of all middle names is
associated with the key "middlenames".
(custom-declare-variable 'sc-preferred-attribution-list ''("sc-lastchoice" "x-attribution" "firstname" "initials" "lastname") '(#$ . -11074) :type '(repeat string) :group 'supercite-attr)
#@742 *An alist for selecting preferred attribution based on mail headers.
Each element of this list has the following form:

   (INFOKEY ((REGEXP . ATTRIBUTION)
             (REGEXP . ATTRIBUTION)
             (...)))

Where INFOKEY is a key for `sc-mail-field', REGEXP is a regular
expression to match against the INFOKEY's value. ATTRIBUTION can be a
string or a list.  If its a string, then it is the attribution that is
selected by `sc-select-attribution'.  If it is a list, it is `eval'd
and the return value must be a string, which is used as the selected
attribution.  Note that the variable `sc-preferred-attribution-list'
must contain an element of the string "sc-consult" for this variable
to be consulted during attribution selection.
(custom-declare-variable 'sc-attrib-selection-list 'nil '(#$ . -13009) :type '(repeat (list string (repeat (cons regexp (choice (sexp :tag "List to eval") string))))) :group 'supercite-attr)
#@47 *Hook to run before selecting an attribution.
(custom-declare-variable 'sc-attribs-preselect-hook 'nil '(#$ . -13947) :type 'hook :group 'supercite-attr :group 'supercite-hooks)
#@71 *Hook to run after selecting an attribution, but before confirmation.
(custom-declare-variable 'sc-attribs-postselect-hook 'nil '(#$ . -14131) :type 'hook :group 'supercite-attr :group 'supercite-hooks)
#@46 *Hook to run before citing a region of text.
(custom-declare-variable 'sc-pre-cite-hook 'nil '(#$ . -14340) :type 'hook :group 'supercite-cite :group 'supercite-hooks)
#@48 *Hook to run before unciting a region of text.
(custom-declare-variable 'sc-pre-uncite-hook 'nil '(#$ . -14514) :type 'hook :group 'supercite-cite :group 'supercite-hooks)
#@48 *Hook to run before reciting a region of text.
(custom-declare-variable 'sc-pre-recite-hook 'nil '(#$ . -14692) :type 'hook :group 'supercite-cite :group 'supercite-hooks)
#@125 *Index into `sc-rewrite-header-list' specifying preferred header style.
Index zero accesses the first function in the list.
(custom-declare-variable 'sc-preferred-header-style '4 '(#$ . -14871) :type 'integer :group 'supercite)
#@62 *String used at the beginning of built-in reference headers.
(custom-declare-variable 'sc-reference-tag-string '">>>>> " '(#$ . -15105) :type 'string :group 'supercite)
#@244 *List of reference header rewrite functions.
The variable `sc-preferred-header-style' controls which function in
this list is chosen for automatic reference header insertions.
Electric reference mode will cycle through this list of functions.
(custom-declare-variable 'sc-rewrite-header-list ''((sc-no-header) (sc-header-on-said) (sc-header-inarticle-writes) (sc-header-regarding-adds) (sc-header-attributed-writes) (sc-header-author-writes) (sc-header-verbose) (sc-no-blank-line-or-header)) '(#$ . -15281) :type '(repeat sexp) :group 'supercite)
#@116 *Regular expression describing the separator between names and titles.
Set to nil to treat entire field as a name.
(custom-declare-variable 'sc-titlecue-regexp '"\\s +-+\\s +" '(#$ . -15835) :type '(choice (const :tag "entire field as name" nil) regexp) :group 'supercite-attr)
#@220 *Controls what happens when the preferred attribution cannot be found.
If non-nil, then `sc-default-attribution' will be used.  If nil, then
some secondary scheme will be employed to find a suitable attribution
string.
(custom-declare-variable 'sc-use-only-preference-p 'nil '(#$ . -16120) :type 'boolean :group 'supercite-attr)
#@27 Supercite version number.
(defconst sc-version "3.1" (#$ . 16455))
#@47 Address accepting submissions of bug reports.
(defconst sc-help-address "bug-supercite@gnu.org" (#$ . 16528))
#@61 Alist of mail header information gleaned from reply buffer.
(defvar sc-mail-info nil (#$ . 16644))
#@44 Alist of attributions for use when citing.
(defvar sc-attributions nil (#$ . 16749))
#@174 A list describing what version of Emacs we're running on.
Known flavors are:

Emacs 18           : (v18 GNU)
Emacs 19 or later  : (v19 GNU)
Lucid 19 or later  : (v19 Lucid)
(defconst sc-emacs-features (byte-code "\303\304\n\305\306O\307\230\204 \310\311\312\n\"\203 \313	*D\207" [flavor version emacs-version v18 GNU 0 2 "18" v19 string-match "Lucid" Lucid] 3) (#$ . 16841))
#@47 Temporary regepx describing nested citations.
(defvar sc-tmp-nested-regexp nil (#$ . 17229))
#@51 Temporary regexp describing non-nested citations.
(defvar sc-tmp-nonnested-regexp nil (#$ . 17328))
#@72 Temp regexp describing non-nested citation cited with a nesting citer.
(defvar sc-tmp-dumb-regexp nil (#$ . 17434))
#@31 Supercite minor mode on flag.
(defvar sc-minor-mode nil (#$ . 17556))
#@30 Supercite minor mode string.
(defvar sc-mode-string " SC" (#$ . 17632))
(byte-code "\300\301!\210\300\302!\210\300\303!\207" [make-variable-buffer-local sc-mail-info sc-attributions sc-minor-mode] 2)
#@94 *Key binding to install Supercite keymap.
If this is nil, Supercite keymap is not installed.
(defvar sc-mode-map-prefix "" (#$ . -17838))
#@58 Keymap for sub-keymap of setting and toggling functions.
(defvar sc-T-keymap nil (#$ . 17984))
(byte-code "\204g \301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\326#\210\302\327\330#\210\302\331\332#\210\302\333\334#\210\302\335\336#\210\302\337\340#\210\302\341\320#\210\301\207" [sc-T-keymap make-sparse-keymap define-key "a" sc-S-preferred-attribution-list "b" sc-T-mail-nuke-blank-lines "c" sc-T-confirm-always "d" sc-T-downcase "e" sc-T-electric-references "f" sc-T-auto-fill-region "h" sc-T-describe "l" sc-S-cite-region-limit "n" sc-S-mail-nuke-mail-headers "N" sc-S-mail-header-nuke-list "o" sc-T-electric-circular "p" sc-S-preferred-header-style "s" sc-T-nested-citation "u" sc-T-use-only-preferences "w" sc-T-fixup-whitespace "?"] 4)
#@34 Keymap for Supercite quasi-mode.
(defvar sc-mode-map nil (#$ . 18871))
(byte-code "\204[ \302 \303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\313#\210\303\314\315#\210\303\316\317#\210\303\320\321#\210\303\322\323#\210\303\324\325#\210\303\326\327#\210\303\330\331#\210\303\332	#\210\303\333\334#\210\303\335\313#\210\302\207" [sc-mode-map sc-T-keymap make-sparse-keymap define-key "c" sc-cite-region "f" sc-mail-field-query "g" sc-mail-process-headers "h" sc-describe "i" sc-insert-citation "o" sc-open-line "r" sc-recite-region "" sc-raw-mode-toggle "u" sc-uncite-region "v" sc-version "w" sc-insert-reference "" "" sc-submit-bug-report "?"] 4)
#@57 Keymap for `sc-electric-mode' electric references mode.
(defvar sc-electric-mode-map nil (#$ . 19555))
(byte-code "\204U \301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\314#\210\302\316\317#\210\302\320\317#\210\302\321\322#\210\302\323\324#\210\302\325\324#\210\302\326\324#\210\302\327\324#\210\301\207" [sc-electric-mode-map make-sparse-keymap define-key "p" sc-eref-prev "n" sc-eref-next "s" sc-eref-setn "j" sc-eref-jump "x" sc-eref-abort "q" "" sc-eref-exit "\n" "g" sc-eref-goto "?" describe-mode "" [f1] [help]] 4)
#@60 Keymap for minibuffer confirmation of attribution strings.
(defvar sc-minibuffer-local-completion-map nil (#$ . 20152))
(byte-code "\204 \302	!\303\304\305#\210\303\306\307#\210\302\207" [sc-minibuffer-local-completion-map minibuffer-local-completion-map copy-keymap define-key "" sc-toggle-fn " " self-insert-command] 4)
#@60 Keymap for minibuffer confirmation of attribution strings.
(defvar sc-minibuffer-local-map nil (#$ . 20486))
(byte-code "\204 \302	!\303\304\305#\210\302\207" [sc-minibuffer-local-map minibuffer-local-map copy-keymap define-key "" sc-toggle-fn] 4)
#@106 Compatibility between Emacs 18 and 19 `completing-read'.
In version 18, the HISTORY argument is ignored.
(defalias 'sc-completing-read #[(prompt table &optional predicate require-match initial-contents history) "\306>\203 \307	\n\f&\207\307	\n\f\242\206 %\207" [sc-emacs-features prompt table predicate require-match initial-contents v19 completing-read history] 7 (#$ . 20746)])
#@102 Compatibility between Emacs 18 and 19 `read-string'.
In version 18, the HISTORY argument is ignored.
(defalias 'sc-read-string #[(prompt &optional initial-contents history) "\304>\203\f \305	\n#\207\305	\n\"\207" [sc-emacs-features prompt initial-contents history v19 read-string] 4 (#$ . 21144)])
(byte-code "\300\301!\203 \302\303\301\"\210\202 \303\304M\210\300\305!\203  \302\306\305\"\210\202$ \306\307M\210\300\310!\2032 \302\311\310\"\210\2026 \311\312M\210\300\207" [fboundp match-string defalias sc-submatch #[(matchnum &optional string) "\203 	\224	\225O\207	\224	\225{\207" [string matchnum] 3 "Returns `match-beginning' and `match-end' sub-expression for MATCHNUM.\nIf optional STRING is provided, take sub-expression using `substring'\nof argument, otherwise use `buffer-substring' on current buffer.  Note\nthat `match-data' must have already been generated and no error\nchecking is performed by this function."] member sc-member #[(elt list) "\300\301\215\207" [elt-is-member (byte-code "\205 	@\232\203 \302\303\"\210A\211\204 \304\207" [list elt throw elt-is-member nil] 4)] 2 "Like `memq', but uses `equal' instead of `eq'.\nEmacs19 has a builtin function `member' which does exactly this."] string-text sc-string-text #[(string) "\301!\302\303G\304$\210)\207" [string copy-sequence set-text-properties 0 nil] 5 "Return STRING with all text properties removed."]] 3)
#@510 Ask a question in the minibuffer requiring a single character answer.
This function is kind of an extension of `y-or-n-p' where a single
letter is used to answer a question.  Question is formed from ALIST
which has members of the form:  (WORD . LETTER).  WORD is the long
word form, while LETTER is the letter for selecting that answer.  The
selected letter is returned, or nil if the question was not answered.
Note that WORD is a string and LETTER is a character.  All LETTERs in
the list should be unique.
(defalias 'sc-ask #[(alist) "\306\307\310#\311\306\312\313#\314R\211\315>\205 \316 \n;\203\342 \317\211%\320\321\n\"\210\322>\2034 \323 \202D \315>\203A \324\f!\210\202D \325 &\326&*\203g \320\327\n\330\f!#\210\315>\203_ \331\f!\210\326&\332\333\326\"\210\315>\203\203 \334\f!\205v \335\f!\211'\205 \336\f!)\202\204 \f\326(\211)\203\222 )\227)\337)\"\211(\203\254 \320\327\n(@#\210(A\202\336 \315>\203\270 \340\f!\204\336 \320\327\n\330\f!#\210\315>\203\316 \341\326\342\"\210\202\321 \341 \210\343 \210\n	=\203\336 \344	P*\202 \315>\203\354 \331\f!\210\n+\207" [alist prompt p sc-emacs-features event inhibit-quit mapconcat #[(elt) "@\207" [elt] 1] ", " "? (" #[(elt) "\301A!\207" [elt char-to-string] 2] "/" ") " Lucid allocate-event t message "%s" v18 read-char next-command-event read-event nil "%s%s" single-key-description deallocate-event signal quit key-press-event-p event-key event-to-character rassq button-release-event-p ding y-or-n-p discard-input "Try again.  " cursor-in-echo-area quit-flag key elt char] 7 (#$ . 22557)])
#@64 Find a match in the info alist that matches a regexp in ALIST.
(defalias 'sc-scan-info-alist #[(alist) "\306\307\n\203M \n@\211@\310\f!A@\n\n\203F \n@\211@\fA\311\f\"\203= \307\n\307\202B \nA\n+\202 \nA,\202 *\207" [rtnvalue sc-mumble alist elem infokey infoval "" nil sc-mail-field string-match mlist ml-elem regexp thing] 4 (#$ . 24147)])
#@25 Start of header fields.
(defvar sc-mail-headers-start nil (#$ . 24523))
#@23 End of header fields.
(defvar sc-mail-headers-end nil (#$ . 24601))
#@50 For minibuffer completion on mail field queries.
(defvar sc-mail-field-history nil (#$ . 24675))
#@56 For minibuffer completion on mail field modifications.
(defvar sc-mail-field-modification-history nil (#$ . 24778))
#@50 Regi frame for glomming mail header information.
(defvar sc-mail-glom-frame '((begin (setq sc-mail-headers-start (point))) ("^x-attribution:[ 	]+.*$" (sc-mail-fetch-field t) nil t) ("^\\S +:.*$" (sc-mail-fetch-field) nil t) ("^$" (list 'abort '(step . 0))) ("^[ 	]+" (sc-mail-append-field)) (sc-mail-warn-if-non-rfc822-p (sc-mail-error-in-mail-field)) (end (setq sc-mail-headers-end (point)))) (#$ . 24900))
#@140 Insert a key and value into `sc-mail-info' alist.
If optional ATTRIBS-P is non-nil, the key/value pair is placed in
`sc-attributions' too.
(defalias 'sc-mail-fetch-field #[(&optional attribs-p) "\306\307\"\203) \310\311\312\"!\227\310\311\313\"!	\nB\211\fB\203( B+\314\207" [curline key val keyval sc-mail-info attribs-p string-match "^\\(\\S *\\)\\s *:\\s +\\(.*\\)$" sc-string-text sc-submatch 1 2 nil sc-attributions] 5 (#$ . 25315)])
#@69 Append a continuation line onto the last fetched mail field's info.
(defalias 'sc-mail-append-field #[nil "@\211\203 \303\304\n\"\203 	\211A\305\306\307\310\n\"!Q\241\210)\311\207" [sc-mail-info keyval curline string-match "^\\s *\\(.*\\)$" " " sc-string-text sc-submatch 1 nil] 8 (#$ . 25772)])
#@59 Issue warning that mail headers don't conform to RFC 822.
(defalias 'sc-mail-error-in-mail-field #[nil "G\304^\211GW\203 \305\202 \306\307\310\311	O\n#\210+\312 \210\313\314!\210\315\207" [curline len ellipsis msg 10 "..." "" "Mail header \"%s%s\" doesn't conform to RFC 822. skipping..." message 0 beep sit-for 2 nil] 6 (#$ . 26078)])
#@36 True if the last header was nuked.
(defvar sc-mail-last-header-nuked-p nil (#$ . 26429))
#@36 Nuke the current mail header line.
(defalias 'sc-mail-nuke-line #[nil "\300\301!\300\302!|\210\303\207" [regi-pos bol bonl ((step . -1))] 3 (#$ . 26524)])
#@59 Delete current-line and set up for possible continuation.
(defalias 'sc-mail-nuke-header-line #[nil "\301\302 \207" [sc-mail-last-header-nuked-p t sc-mail-nuke-line] 1 (#$ . 26685)])
#@65 Delete a continuation line if the last header line was deleted.
(defalias 'sc-mail-nuke-continuation-line #[nil "\205 \301 \207" [sc-mail-last-header-nuked-p sc-mail-nuke-line] 1 (#$ . 26875)])
#@136 Leave some blank lines after original mail headers are nuked.
The number of lines left is specified by `sc-blank-lines-after-headers'.
(defalias 'sc-mail-cleanup-blank-lines #[nil "\203( \214~\210\301\302x\210\303y\210\304 \210\305 \210\306\307!\203\" \310\311!\310\312!|\210\313\314\"\210)\302\207" [sc-blank-lines-after-headers " 	\n" nil 1 delete-blank-lines beginning-of-line looking-at "[ 	]*$" regi-pos bol bonl insert-char 10] 3 (#$ . 27078)])
#@46 Build the regiframe for nuking mail headers.
(defalias 'sc-mail-build-nuke-frame #[nil "\305\211\211\306=\203 \307\2026 \310=\203 \311\312\2026 \313=\203+ \314\315\2026 \316=\2046 \317\320\"\210\321	\205A \322\f	\305\323$\205I \324DC\n?\205O \325\326\327\n\205Y \330\nDC&+\207" [nonentry-func entry-func every-func sc-nuke-mail-headers sc-nuke-mail-header-list nil all (progn (forward-line -1) (sc-mail-nuke-line)) specified (sc-mail-nuke-header-line) (setq sc-mail-last-header-nuked-p nil) keep (setq sc-mail-last-header-nuked-p nil) (sc-mail-nuke-header-line) none error "Illegal value for sc-nuke-mail-headers: %s" append regi-mapcar t "^\\S +:.*$" (("^[ 	]+" (sc-mail-nuke-continuation-line))) ((begin (setq sc-mail-last-header-zapped-p nil))) ((end (sc-mail-cleanup-blank-lines))) every] 8 (#$ . 27537)])
#@197 Process original mail message's mail headers.
After processing, mail headers may be nuked.  Header information is
stored in `sc-mail-info', and any old information is lost unless an
error occurs.
(defalias 'sc-mail-process-headers #[(start end) "\306!\306	!\307\307\310\f\f#\210\204# \311\312!\210\n\211\202+ \310\313 #*\207" [sc-mail-info sc-attributions attribs info sc-mail-glom-frame start copy-alist nil regi-interpret message "No mail headers found! Restoring old information." sc-mail-build-nuke-frame end sc-mail-headers-start sc-mail-headers-end] 4 (#$ . 28372) "r"])
#@171 Return the mail header field value associated with FIELD.
If there was no mail header with FIELD as its key, return the value of
`sc-mumble'.  FIELD is case insensitive.
(defalias 'sc-mail-field #[(field) "\303\227	\"A\206\n \n\207" [field sc-mail-info sc-mumble assoc] 3 (#$ . 28971)])
#@149 View the value of a mail field.
With `\[universal-argument]', prompts for action on mail field.
Action can be one of: View, Modify, Add, or Delete.
(defalias 'sc-mail-field-query #[(arg) "\306	\204\n \307\202 \310!\311\n\205\211 \312\313\n\"@\314P\f\311\n\315=?\205& \316\311\317&\n\307=\203= \320\321\322\f\"A#\202\211 \n\323=\203O \324\322\f\"\f\"\211\202\211 \n\325=\203x \322\f\"\326A\"\204j AB\327\330PA\331#\241)\202\211 \n\315=\205\211 \327\330P!B\fB\211+\207" [alist arg action key sc-mail-info keyval (("view" . 118) ("modify" . 109) ("add" . 97) ("delete" . 100)) 118 sc-ask nil sc-completing-read rassq " information key: " 97 noexit sc-mail-field-history message "%s: %s" assoc 100 delq 109 sc-member sc-read-string ": " sc-mail-field-modification-history] 7 (#$ . 29266) "P"])
#@50 History for confirmation of attribution strings.
(defvar sc-attribution-confirmation-history nil (#$ . 30090))
#@51 History for confirmation of attribution prefixes.
(defvar sc-citation-confirmation-history nil (#$ . 30207))
#@293 Extract the author's email terminus from email address FROM.
Match addresses of the style ``name%[stuff].'' when called with DELIM
of "%" and addresses of the style ``[stuff]name@[stuff]'' when
called with DELIM "@".  If DELIM is nil or not provided, matches
addresses of the style ``name''.
(defalias 'sc-attribs-%@-addresses #[(from &optional delim) "\302\303P	\304#\205 	\304\224\304\225\204 \304\202 \305ZO\207" [delim from string-match "[-a-zA-Z0-9_.]+" 0 1] 4 (#$ . 30323)])
#@127 Extract the author's email terminus from email address FROM.
Match addresses of the style ``[stuff]![stuff]...!name[stuff].''
(defalias 'sc-attribs-!-addresses #[(from) "G\304\305\306#\306\225\n\205! \nT	\211U\203 \306\202 \307ZO+\207" [from mend mstart eos string-match "![-a-zA-Z0-9_.]+\\([^-!a-zA-Z0-9_.]\\|$\\)" 0 1] 5 (#$ . 30816)])
#@110 Extract the author's email terminus from email address FROM.
Match addresses of the style ``<name[stuff]>.''
(defalias 'sc-attribs-<>-addresses #[(from) "\301\302\"\205 \303\304\"\207" [from string-match "<\\(.*\\)>" sc-submatch 1] 3 (#$ . 31170)])
#@109 Get the full email address path from FROM.
AUTHOR is the author's name (which is removed from the address).
(defalias 'sc-get-address #[(from author) "G\304\305\n\306Q\307#\2034 \307\225	O\211\307H\310U\203/ \211GSH\311U\203/ \312GSO\2020 )\202D \304\313\307#\203C \314\307\"\202D \315)\207" [from eos author address string-match "\\(^\\|^\"\\)" "\\(\\s +\\|\"\\s +\\)" 0 60 62 1 "[-[:alnum:]!@%._]+" sc-submatch ""] 5 (#$ . 31429)])
#@40 Get the email terminus name from FROM.
(defalias 'sc-attribs-emailname #[(from) "\301\302\"\206$ \301\303\"\206$ \304!\206$ \305!\206$ \301!\206$ \306\307O\207" [from sc-attribs-%@-addresses "%" "@" sc-attribs-!-addresses sc-attribs-<>-addresses 0 10] 3 (#$ . 31880)])
#@135 Extract the specified substring of STRING from START to END.
EXTEND is the number of characters on each side to extend the
substring.
(defalias 'sc-name-substring #[(string start end extend) "\205 	\\\n	Z\f\306\f#\206 O*\207" [start extend end eos sos string string-match sc-titlecue-regexp] 6 (#$ . 32162)])
#@99 Extract the name string from FROM.
This should be the author's full name minus an optional title.
(defalias 'sc-attribs-extract-namestring #[(from) "\305\306\307#\203( \310\307\211\224\307$\305\311	\307#\203# \310	\307\224\307\225\312$\202$ 	)\206U \310\305\313\307#\307\225\312$\206U \310\305\311\307#\307\225\312$\206U \310\305\314\307#\312\225\307$\206U \315!\211\205\220 \307\nGS\211X\203u \n\fH\316>\203u \fT\211\202a \fV\203\212 \nH\317>\203\212 S\211\202v \n\fTO*)\207" [from before-angles namestring eos bos string-match " *<.*>" 0 sc-name-substring "\".*\"" 1 "(.*)" "\\([-.[:alnum:]_]+\\s +\\)+<" sc-attribs-emailname (32 9) (32 9)] 7 (#$ . 32488)])
#@127 Convert NAMESTRING to a list of names.
example: (sc-namestring-to-list "John Xavier Doe")
         => ("John" "Xavier" "Doe")
(defalias 'sc-attribs-chop-namestring #[(namestring) "\301\302\"\205 \303\304\"\305\306\225\307O!B\207" [namestring string-match "\\([ 	]*\\)\\([^ 	._]+\\)\\([ 	]*\\)" sc-submatch 2 sc-attribs-chop-namestring 3 nil] 5 (#$ . 33175)])
#@50 Extract the author's initials from the NAMELIST.
(defalias 'sc-attribs-strip-initials #[(namelist) "\301\302\303#\207" [namelist mapconcat #[(name) "\301GW\205 \301\302O\207" [name 0 1] 3] ""] 4 (#$ . 33544)])
#@187 Guess attribution string on current line.
If attribution cannot be guessed, nil is returned.  Optional STRING if
supplied, is used instead of the line point is on in the current buffer.
(defalias 'sc-guess-attribution #[(&optional string) "\306\206\f \307\310!\307\311!{\312\211\313\n#\206 \314U\205d \306\225\211\205d \n\313\f\n#\206/ \315U\205d \316\306\"\306\225\211\205d \n\313\n#\206I \314U\205d \306\225\211\205d \n\313\n#\206_ \314U\205d 	+\207" [string attribution start sc-citation-leader-regexp sc-citation-root-regexp sc-citation-delimiter-regexp 0 regi-pos bol eol nil string-match -1 1 sc-submatch sc-citation-separator-regexp] 6 (#$ . 33765)])
#@67 Filter out noise in NAMELIST according to `sc-name-filter-alist'.
(defalias 'sc-attribs-filter-namelist #[(namelist) "G\305\306\211\307\310\"\210\307\311\n\"\210	,\207" [namelist filtered-list keepers position elements -1 nil mapcar #[(name) "T\304\305\306\n\"\210	\205 B\211)\207" [position keep-p sc-name-filter-alist keepers t mapcar #[(filter) "@A\306\n\"\205/ 	\247\203 	\fU\204+ 	\307=\203% \fSU\204+ 	\310=\205/ \311\211\n*\207" [filter pos regexp name position elements string-match last any nil keep-p] 3]] 3] #[(position) "	8\nB\211\207" [position namelist filtered-list] 2]] 4 (#$ . 34447)])
#@121 Extract attribution information from FROM.
This populates the `sc-attributions' with the list of possible attributions.
(defalias 'sc-attribs-chop-address #[(from) ";\203\246 \306GW\203\246 \307\310!\311\312\n!!\313A!@\313\fA!&\f@'\314!(\315!)\316*\317+\317,\320\321&\322#,\322,&\205O \322'\260+\323\324B\325'B\326)B\327(BF-\"-\323\330B\331,B\332'B\333)B\334(B\335+B\336\337\340\341!\n\"B\342\337\340\343!\n\"B\344\337\340\345!\n\"B\257	.\"\211..\f\207\335/B.B\211.\207" [from sc-mumble namestring namelist revnames firstname 0 "" sc-attribs-extract-namestring sc-attribs-filter-namelist sc-attribs-chop-namestring reverse sc-attribs-strip-initials sc-attribs-emailname 1 nil mapconcat #[(midname) "\306\307\"\306\310\"\211B\fB	BBT*\207" [n key-mail key-attribs midname sc-attributions sc-mail-info format "middlename-%d" "sc-middlename-%d"] 5] " " append "firstname" "lastname" "emailname" "initials" "sc-firstname" "sc-middlenames" "sc-lastname" "sc-emailname" "sc-initials" "sc-author" "sc-from-address" sc-get-address sc-mail-field "from" "sc-reply-address" "reply-to" "sc-sender-address" "sender" midnames lastname initials emailname n author middlenames sc-attributions sc-mail-info sc-default-author-name] 13 (#$ . 35080)])
#@61 Used to toggle between attribution input or citation input.
(defvar sc-attrib-or-cite nil (#$ . 36373))
#@93 Toggle between attribution selection and citation selection.
Only used during confirmation.
(defalias 'sc-toggle-fn #[nil "?\301\302\303\"\207" [sc-attrib-or-cite throw sc-reconfirm t] 3 (#$ . 36483) nil])
#@622 Select an attribution from `sc-attributions'.

Variables involved in selection process include:
     `sc-preferred-attribution-list'
     `sc-use-only-preference-p'
     `sc-confirm-always-p'
     `sc-default-attribution'
     `sc-attrib-selection-list'.

Runs the hook `sc-attribs-preselect-hook' before selecting an
attribution and the hook `sc-attribs-postselect-hook' after making the
selection but before querying is performed.  During
`sc-attribs-postselect-hook' the variable `citation' is bound to the
auto-selected citation string and the variable `attribution' is bound
to the auto-selected attribution string.
(defalias 'sc-select-attribution #[nil "\306\307!\210\310\211	\n\203i \n@\211 \311\230\203Q \312!!\211\"\204* \nA\202M \";\2038 \"\310\202M \"<\203H \313\"!\310\202M \314\315\316\"\210)\202e \317 #\"A\211\203b \310\202e \nA)\202\f \f\204\244 $\204\244 \317\320#\"A\206\243 \317\321#\"A\206\243 \317\322#\"A\206\243 \317\323#\"A\206\243 \317\324#\"A\206\243 #@A\f\204\255 %\325\326\f!\306\327!\210\203\367 \330\331#\"&'()*\f+\325,\310-\310.\332\333\215\204\324 .\203\355 -\334!\206\351 \202\365 \326-!-./\203\227\f\227\3350\3361\31702\"3\31712\"43\203%3\241\210\2020\3370BC2\"24\203=4\f\241\210\202H\3371\fBC2\"2,\3205\3175#\"\2116\203_6\f\241\202i5\fB#B\211#.\207" [sc-confirm-always-p sc-preferred-attribution-list attriblist citation attribution query-p run-hooks sc-attribs-preselect-hook nil "sc-consult" sc-scan-info-alist eval error "%s did not evaluate to a string or list!" "sc-attrib-selection-list" assoc "sc-lastchoice" "x-attribution" "firstname" "lastname" "initials" t sc-make-citation sc-attribs-postselect-hook mapcar #[(entry) "AC\207" [entry] 1] sc-reconfirm (byte-code "\203\f \305\306	\307#\202 \310\311\n\312\211\313B\314&\211\315\230\207" [sc-attrib-or-cite citation query-alist initial choice sc-read-string "Enter citation prefix: " sc-citation-confirmation-history sc-completing-read "Complete attribution name: " nil 0 sc-attribution-confirmation-history ""] 7) sc-guess-attribution "sc-citation" "sc-attribution" append preferred sc-attrib-selection-list attrib sc-attributions sc-use-only-preference-p sc-default-attribution query-alist sc-minibuffer-local-completion-map minibuffer-local-completion-map sc-minibuffer-local-map minibuffer-local-map initial completer-disable choice sc-attrib-or-cite sc-downcase-p ckey akey sc-mail-info ckeyval akeyval lkey lastchoice] 5 (#$ . 36698)])
#@289 Return a regexp describing a Supercited line.
The regexp is the concatenation of `sc-citation-leader-regexp',
`sc-citation-root-regexp', `sc-citation-delimiter-regexp', and
`sc-citation-separator-regexp'.  If optional ROOT-REGEXP is supplied,
use it instead of `sc-citation-root-regexp'.
(defalias 'sc-cite-regexp #[(&optional root-regexp) "	\206 \n\fR\207" [sc-citation-leader-regexp root-regexp sc-citation-root-regexp sc-citation-delimiter-regexp sc-citation-separator-regexp] 4 (#$ . 39244)])
#@46 Make a non-nested citation from ATTRIBUTION.
(defalias 'sc-make-citation #[(attribution) "	\nR\207" [sc-citation-leader attribution sc-citation-delimiter sc-citation-separator] 4 (#$ . 39750)])
#@65 Setup `filladapt-prefix-table' to handle Supercited paragraphs.
(defalias 'sc-setup-filladapt #[nil "\303\304	\"\211\203 \n\305 \240\202 \306\307!\210\310 *\207" [fa-sc-elt filladapt-prefix-table elt filladapt-supercite-included-text rassq sc-cite-regexp message "Filladapt doesn't seem to know about Supercite." beep] 4 (#$ . 39952)])
#@35 Buffer position to begin filling.
(defvar sc-fill-begin 1 (#$ . 40299))
#@30 Fill prefix of previous line
(defvar sc-fill-line-prefix "" (#$ . 40377))
#@283 Fill the region bounded by `sc-fill-begin' and point.
Only fill if optional PREFIX is different than `sc-fill-line-prefix'.
If `sc-auto-fill-region-p' is nil, do not fill region.  If PREFIX is
not supplied, initialize fill variables.  This is useful for a regi
`begin' frame-entry.
(defalias 'sc-fill-if-different #[(&optional prefix) "\204 \305\306\307!\202- \203- 	\230\204- 	\211\305\230\204& \310\n\306\307!\"\210\306\307!)\311\207" [prefix sc-fill-line-prefix sc-fill-begin sc-auto-fill-region-p fill-prefix "" regi-pos bol fill-region nil] 5 (#$ . 40458)])
#@50 Coerce a Supercited line to look like our style.
(defalias 'sc-cite-coerce-cited-line #[nil "\303 \304!\305!\203. \306	!\203. \307\224\212\307\225b\210n\203# \310u\210`)|\210\nc\210\311\n!\210+\312\207" [attribution regexp prefix sc-guess-attribution sc-cite-regexp sc-make-citation looking-at 0 -1 sc-fill-if-different nil] 2 (#$ . 41037)])
#@75 Coerce a non-nested citation that's been cited with a dumb nesting citer.
(defalias 'sc-cite-coerce-dumb-citer #[nil "\300\224\300\225|\210\301 \210\302 \207" [1 beginning-of-line sc-cite-coerce-cited-line] 2 (#$ . 41391)])
#@189 Guess the citation nesting on the current line.
If nesting cannot be guessed, nil is returned.  Optional STRING if
supplied, is used instead of the line point is on in the current
buffer.
(defalias 'sc-guess-nesting #[(&optional string) "\306\206\f \307\310!\307\311!{\312\211\313\n#\206 \314U\205N \306\225\211\205N \n\313\f\n#\206/ \314U\205N \315\306\"\306\225\211\205N \n\313\n#\206I \314U\205N 	+\207" [string nesting start sc-citation-leader-regexp sc-citation-delimiter-regexp sc-citation-separator-regexp 0 regi-pos bol eol nil string-match -1 sc-submatch] 6 (#$ . 41622)])
#@61 Add a citation level for nested citation style w/ coercion.
(defalias 'sc-add-citation-level #[nil "\306 \307GT\310	!\"\n\fQ\311\312\313!!\203 \314\224\314\225|\210c\210\315!+\207" [nesting sc-citation-delimiter citation sc-citation-leader sc-citation-separator prefix sc-guess-nesting make-string string-to-char looking-at sc-cite-regexp "" 0 sc-fill-if-different] 4 (#$ . 42224)])
#@102 Cite a single line of uncited text.
Optional CITATION overrides any citation automatically selected.
(defalias 'sc-cite-line #[(&optional citation) "\203 \305 \210	\206 \306\307\n\"A\206 \211c\210\310\f!\210)\311\207" [sc-fixup-whitespace-p citation sc-mail-info sc-default-attribution prefix fixup-whitespace assoc "sc-citation" sc-fill-if-different nil] 4 (#$ . 42622)])
#@36 Remove citation from current line.
(defalias 'sc-uncite-line #[nil "\301\302 !\211\203 \303\224\303\225|\210)\304\207" [cited looking-at sc-cite-regexp 0 nil] 3 (#$ . 43007)])
#@68 Remove citation matching REGEXP from current line and recite line.
(defalias 'sc-recite-line #[(regexp) "\305\306P!\307\310	\"A\211\203 \311\224\311\225|\210\n\206 \fc\210\312\n!\210*\313\207" [regexp sc-mail-info prefix cited sc-default-attribution looking-at "^" assoc "sc-citation" 0 sc-fill-if-different nil] 5 (#$ . 43191)])
#@192 Cite a region delineated by START and END.
If optional CONFIRM-P is non-nil, the attribution is confirmed before
its use in the citation string.  This function first runs
`sc-pre-cite-hook'.
(defalias 'sc-cite-region #[(start end &optional confirm-p) "\306 \210\307!\206\n 	\n\203 \310\202 \311\312!\210t\203  \313 \210\314\f#*\207" [sc-cite-frame-alist sc-default-cite-frame confirm-p sc-confirm-always-p frame start undo-boundary sc-scan-info-alist t run-hooks sc-pre-cite-hook sc-select-attribution regi-interpret end] 4 (#$ . 43533) "r\nP"])
#@79 Uncite a region delineated by START and END.
First runs `sc-pre-uncite-hook'.
(defalias 'sc-uncite-region #[(start end) "\305 \210\306!\206\n 	\307\310!\210\311\n\f#)\207" [sc-uncite-frame-alist sc-default-uncite-frame frame start end undo-boundary sc-scan-info-alist run-hooks sc-pre-uncite-hook regi-interpret] 4 (#$ . 44094) "r"])
#@79 Recite a region delineated by START and END.
First runs `sc-pre-recite-hook'.
(defalias 'sc-recite-region #[(start end) "\306\307 \210)\310 \210\311	!\206 \n\312\313!\210\314\f#)\207" [sc-confirm-always-p sc-recite-frame-alist sc-default-recite-frame frame start end t sc-select-attribution undo-boundary sc-scan-info-alist run-hooks sc-pre-recite-hook regi-interpret] 4 (#$ . 44437) "r"])
#@269 Returns a concatenation of PREFIX and FIELD.
If FIELD is not a string or is the empty string, the empty string will
be returned.  Optional third argument SEP is concatenated on the end if
it is a string.  Returns empty string, unless optional RETURN-NIL-P is
non-nil.
(defalias 'sc-hdr #[(prefix field &optional sep return-nil-p) ";\203 \304\230\204 	\n\206 \304Q\207?\205 \304\207" [field prefix sep return-nil-p ""] 3 (#$ . 44839)])
#@52 Return the value of (sc-mail-field "from") or nil.
(defalias 'sc-whofrom #[nil "\301\302\303!)\207" [sc-mumble nil sc-mail-field "from"] 2 (#$ . 45288)])
#@63 Does nothing.  Use this instead of nil to get a blank header.
(defalias 'sc-no-header #[nil "\300\207" [nil] 1 (#$ . 45449)])
#@71 Similar to `sc-no-header' except it removes the preceding blank line.
(defalias 'sc-no-blank-line-or-header #[nil "o?\205& l\205& \302y\210`\303 U\204 \304=\205& \305 \205& \306y\210\307\310 )\207" [major-mode kill-lines-magic -1 mail-header-end mh-letter-mode mh-in-header-p nil t kill-line] 2 (#$ . 45581)])
#@183 "On <date>, <from> said:" unless:
1. the "from" field cannot be found, in which case nothing is inserted;
2. the "date" field is missing in which case only the from part is printed.
(defalias 'sc-header-on-said #[nil "\303\304 \205 \n\305\306\307\310!\311#\312\261*\207" [whofrom sc-mumble sc-reference-tag-string "" sc-whofrom sc-hdr "On " sc-mail-field "date" ", " " said:\n"] 5 (#$ . 45901)])
#@113 "In article <message-id>, <from> writes:"
Treats "message-id" and "from" fields similar to `sc-header-on-said'.
(defalias 'sc-header-inarticle-writes #[nil "\303\304\305!\205 \n\306\307\304\310!\311#\312\261*\207" [whofrom sc-mumble sc-reference-tag-string "" sc-mail-field "from" sc-hdr "In article " "message-id" ", " " writes:\n"] 5 (#$ . 46310)])
#@104 "Regarding <subject>; <from> adds:"
Treats "subject" and "from" fields similar to `sc-header-on-said'.
(defalias 'sc-header-regarding-adds #[nil "\303\304 \205 \n\305\306\307\310!\311#\312\261*\207" [whofrom sc-mumble sc-reference-tag-string "" sc-whofrom sc-hdr "Regarding " sc-mail-field "subject" "; " " adds:\n"] 5 (#$ . 46674)])
#@117 "<sc-attribution>" == <sc-author> <address> writes:
Treats these fields in a similar manner to `sc-header-on-said'.
(defalias 'sc-header-attributed-writes #[nil "\303\304 \2052 \n\305\306\307\310!\311#\305\303\307\312!\313#\305\314\307\315!\316\317$\206/ \305\314\307\320!\316\317$\206/ \303\321\261*\207" [whofrom sc-mumble sc-reference-tag-string "" sc-whofrom sc-hdr "\"" sc-mail-field "sc-attribution" "\" == " "sc-author" " " "<" "sc-from-address" ">" t "sc-reply-address" " writes:\n"] 8 (#$ . 47021)])
#@21 <sc-author> writes:
(defalias 'sc-header-author-writes #[nil "\303\304 \205 \n\305\303\306\307!\"\310\261*\207" [whofrom sc-mumble sc-reference-tag-string "" sc-whofrom sc-hdr sc-mail-field "sc-author" " writes:\n"] 5 (#$ . 47540)])
#@31 Very verbose, some say gross.
(defalias 'sc-header-verbose #[nil "\305\306 \n\205w \307	\310P\311\312!\313#\307	\311\314!\315\316$\206# 	\n\315Q\307	\317P\311\320!\315#	\321P\307\f\311\322!\315\316$\206G \307\f\311\323!\315\316$\206G \305)\307	\324P\311\325!\326#\307	\327P\311\330!\315#\307	\331P\311\332!\315#\307	\333P\311\334!\315#\307	\335P\311\336!\337#\261	+\207" [sc-reference-tag-string tag whofrom sc-mumble rtag "" sc-whofrom sc-hdr "On " sc-mail-field "date" ",\n" "sc-author" "\n" t "from the organization of " "organization" "who can be reached at: " "sc-from-address" "sc-reply-address" "(whose comments are cited below with \"" "sc-citation" "\"),\n" "had this to say in article " "message-id" "in newsgroups " "newsgroups" "concerning the subject of " "subject" "(see " "references" " for more details)\n"] 12 (#$ . 47784)])
#@50 Supercite electric reference mode's buffer name.
(defconst sc-electric-bufname " *sc-erefs* " (#$ . 48637))
#@35 Current electric reference style.
(defvar sc-eref-style 0 (#$ . 48751))
#@92 Returns INDEX if it is a valid index into `sc-rewrite-header-list'.
Otherwise returns nil.
(defalias 'sc-valid-index-p #[(index) "\302!\205 	GW\205 \207" [index sc-rewrite-header-list natnump] 2 (#$ . 48829)])
#@141 Insert the selected reference header in the current buffer.
Optional NOMSG, if non-nil, inhibits printing messages, unless an
error occurs.
(defalias 'sc-eref-insert-selected #[(&optional nomsg) "	8\303\304\305\217)\207" [sc-eref-style sc-rewrite-header-list ref err (byte-code "\304!\210\305ed\"\n\206 \306\307	\211\310U\203 \311\202 \312%)\207" [ref lines nomsg sc-eref-style eval count-lines message "Ref header %d [%d line%s]: %s" 1 "" "s"] 6) ((void-function (byte-code "\302\303A@	#\210\304 \207" [err sc-eref-style message "Symbol's function definition is void: %s (Header %d)" beep] 4)))] 3 (#$ . 49051)])
#@395 
Mode for viewing Supercite reference headers.  Commands are:

\{sc-electric-mode-map}

`sc-electric-mode' is not intended to be run interactively, but rather
accessed through Supercite's electric reference feature.  See
`sc-insert-reference' for more details.  Optional ARG is the initial
header style to use, unless not supplied or invalid, in which case
`sc-preferred-header-style' is used.
(defalias 'sc-electric-mode #[(&optional arg) "\306\n!\206 \306!\206 \307\310!\210\212\311\213\210)\f\203  \312 \210\313!)\207" [sc-mail-info info arg sc-preferred-header-style sc-eref-style sc-electric-bufname sc-valid-index-p 0 get-buffer-create ((byte-code "\306!\210\307 \210	\310\311\312\313!\210\314!\210\315\316!\210\317 \210,\306\207" [sc-electric-bufname info major-mode mode-name buffer-read-only sc-mail-info pop-to-buffer kill-all-local-variables t "SC Electric Refs" sc-electric-mode use-local-map sc-eref-show run-hooks sc-electric-mode-hook recursive-edit sc-electric-mode-map sc-eref-style] 4)) sc-eref-insert-selected kill-buffer] 2 (#$ . 49682)])
#@51 Show reference INDEX in `sc-rewrite-header-list'.
(defalias 'sc-eref-show #[(index) "\306G\307!\203 \202< \310W\203' \f\203 	S\202< \311\n\312\"\210\310\202< 	Y\205< \f\2035 \310\202< \311\n\313\"\210	S\212q\210\314\315 \210eb\210\316 \210\317ed\"\320 S\211U?\205} V\203s \321Z!\202} \322]Z!.\207" [sc-rewrite-header-list last msg index sc-electric-circular-p sc-eref-style "No %ing reference headers in list." sc-valid-index-p 0 error "preced" "follow" nil erase-buffer sc-eref-insert-selected count-lines window-height enlarge-window shrink-window sc-electric-bufname buffer-read-only winlines hdrlines window-min-height] 5 (#$ . 50764)])
#@41 Display next reference in other buffer.
(defalias 'sc-eref-next #[nil "\301T!\207" [sc-eref-style sc-eref-show] 2 (#$ . 51446) nil])
#@45 Display previous reference in other buffer.
(defalias 'sc-eref-prev #[nil "\301S!\207" [sc-eref-style sc-eref-show] 2 (#$ . 51586) nil])
#@45 Set reference header selected as preferred.
(defalias 'sc-eref-setn #[nil "\302\303\"\207" [sc-eref-style sc-preferred-header-style message "Preferred reference style set to header %d."] 3 (#$ . 51730) nil])
#@115 Show reference style indexed by REFNUM.
If REFNUM is an invalid index, don't go to that reference and return
nil.
(defalias 'sc-eref-goto #[(refnum) "\302!\203\n \303!\207\304\305\306	GS$\207" [refnum sc-rewrite-header-list sc-valid-index-p sc-eref-show error "Invalid reference: %d. (Range: [%d .. %d])" 0] 5 (#$ . 51948) "NGoto Reference: "])
#@43 Set reference header to preferred header.
(defalias 'sc-eref-jump #[nil "\301!\207" [sc-preferred-header-style sc-eref-show] 2 (#$ . 52302) nil])
#@64 Exit from electric reference mode without inserting reference.
(defalias 'sc-eref-abort #[nil "\301\302 \207" [sc-eref-style nil exit-recursive-edit] 1 (#$ . 52455) nil])
#@66 Exit from electric reference mode and insert selected reference.
(defalias 'sc-eref-exit #[nil "\300 \207" [exit-recursive-edit] 1 (#$ . 52633) nil])
#@412 Insert, at point, a reference header in the body of the reply.
Numeric ARG indicates which header style from `sc-rewrite-header-list'
to use when rewriting the header.  No supplied ARG indicates use of
`sc-preferred-header-style'.

With just `\[universal-argument]', electric reference insert mode is
entered, regardless of the value of `sc-electric-references-p'.  See
`sc-electric-mode' for more information.
(defalias 'sc-insert-reference #[(arg) ":\203 \304 \207\305!\206 \305	!\206 	\206 \306\203$ \304\n!\202' \307\310!)\207" [arg sc-preferred-header-style preference sc-electric-references-p sc-electric-mode sc-valid-index-p 0 sc-eref-insert-selected t] 2 (#$ . 52790) "P"])
#@108 Toggle, in one fell swoop, two important SC variables:
`sc-fixup-whitespace-p' and `sc-auto-fill-region-p'
(defalias 'sc-raw-mode-toggle #[nil "?	?\302 \210\303 \207" [sc-fixup-whitespace-p sc-auto-fill-region-p sc-set-mode-string force-mode-line-update] 1 (#$ . 53488) nil])
#@127 Boolean toggle VARIABLE's value.
VARIABLE must be a bound symbol.  Nil values change to t, non-nil
values are changed to nil.
(defalias 'sc-toggle-var #[(variable) "\301\302\211J\303\304!?\"$\210\305 \207" [variable message "%s changed from %s to %s" set-variable eval-expression sc-set-mode-string] 8 (#$ . 53774)])
#@508 Set the Supercite VARIABLE.
This function mimics `set-variable', except that the variable to set
is determined non-interactively.  The value is queried for in the
minibuffer exactly the same way that `set-variable' does it.

You can see the current value of the variable when the minibuffer is
querying you by typing `C-h'.  Note that the format is changed
slightly from that used by `set-variable' -- the current value is
printed just after the variable's name instead of at the bottom of the
help window.
(defalias 'sc-set-variable #[(var) "\303\304\n\305\306\307\n\"!L\210*\310 \207" [minibuffer-help-form myhelp var (funcall myhelp) #[nil "\303\220\304!\210\305!\203 \306\307\310!\210\304J!\210\307\311!\210)\307\312!\210\307\313\314\"\315\316O!\210\212\nq\210\317 \210)\316\221\207" [var print-length standard-output "*Help*" prin1 boundp 20 princ "	(Current value: " ")" "\n\nDocumentation:\n" documentation-property variable-documentation 1 nil help-mode] 5] eval-minibuffer format "Set %s to value: " sc-set-mode-string] 5 (#$ . 54101)])
(defalias 'sc-toggle-symbol '(macro . #[(rootname) "\301\302\303P!\304\305C\306\307\302\310\311Q!DD\257\207" [rootname defun intern "sc-T-" nil interactive sc-toggle-var quote "sc-" "-p"] 10]))
(defalias 'sc-setvar-symbol '(macro . #[(rootname) "\301\302\303P!\304\305C\306\307\302\310P!DD\257\207" [rootname defun intern "sc-S-" nil interactive sc-set-variable quote "sc-"] 9]))
(defalias 'sc-T-confirm-always #[nil "\300\301!\207" [sc-toggle-var sc-confirm-always-p] 2 nil nil])
(defalias 'sc-T-downcase #[nil "\300\301!\207" [sc-toggle-var sc-downcase-p] 2 nil nil])
(defalias 'sc-T-electric-references #[nil "\300\301!\207" [sc-toggle-var sc-electric-references-p] 2 nil nil])
(defalias 'sc-T-auto-fill-region #[nil "\300\301!\207" [sc-toggle-var sc-auto-fill-region-p] 2 nil nil])
(defalias 'sc-T-mail-nuke-blank-lines #[nil "\300\301!\207" [sc-toggle-var sc-mail-nuke-blank-lines-p] 2 nil nil])
(defalias 'sc-T-nested-citation #[nil "\300\301!\207" [sc-toggle-var sc-nested-citation-p] 2 nil nil])
(defalias 'sc-T-electric-circular #[nil "\300\301!\207" [sc-toggle-var sc-electric-circular-p] 2 nil nil])
(defalias 'sc-T-use-only-preferences #[nil "\300\301!\207" [sc-toggle-var sc-use-only-preferences-p] 2 nil nil])
(defalias 'sc-T-fixup-whitespace #[nil "\300\301!\207" [sc-toggle-var sc-fixup-whitespace-p] 2 nil nil])
(defalias 'sc-S-preferred-attribution-list #[nil "\300\301!\207" [sc-set-variable sc-preferred-attribution-list] 2 nil nil])
(defalias 'sc-S-preferred-header-style #[nil "\300\301!\207" [sc-set-variable sc-preferred-header-style] 2 nil nil])
(defalias 'sc-S-mail-nuke-mail-headers #[nil "\300\301!\207" [sc-set-variable sc-mail-nuke-mail-headers] 2 nil nil])
(defalias 'sc-S-mail-header-nuke-list #[nil "\300\301!\207" [sc-set-variable sc-mail-header-nuke-list] 2 nil nil])
(defalias 'sc-S-cite-region-limit #[nil "\300\301!\207" [sc-set-variable sc-cite-region-limit] 2 nil nil])
#@418 

Supercite provides a number of key bindings which simplify the process
of setting or toggling certain variables controlling its operation.

Note on function names in this list: all functions of the form
`sc-S-<name>' actually call `sc-set-variable' on the corresponding
`sc-<name>' variable.  All functions of the form `sc-T-<name>' call
`sc-toggle-var' on the corresponding `sc-<name>-p' variable.

\{sc-T-keymap}
(defalias 'sc-T-describe #[nil "\300\301!\207" [describe-function sc-T-describe] 2 (#$ . 57078) nil])
#@58 Update the minor mode string to show state of Supercite.
(defalias 'sc-set-mode-string #[nil "\303\204	 	\203 \304\202 \305\203 \306\202 \305	\203 \307\202  \305R\211\207" [sc-auto-fill-region-p sc-fixup-whitespace-p sc-mode-string " SC" ":" "" "f" "w"] 4 (#$ . 57603)])
#@941 Workhorse citing function which performs the initial citation.
This is callable from the various mail and news readers' reply
function according to the agreed upon standard.  See `\[sc-describe]'
for more details.  `sc-cite-original' does not do any yanking of the
original message but it does require a few things:

     1) The reply buffer is the current buffer.

     2) The original message has been yanked and inserted into the
        reply buffer.

     3) Verbose mail headers from the original message have been
        inserted into the reply buffer directly before the text of the
        original message.

     4) Point is at the beginning of the verbose headers.

     5) Mark is at the end of the body of text to be cited.

For Emacs 19's, the region need not be active (and typically isn't
when this function is called.  Also, the hook `sc-pre-hook' is run
before, and `sc-post-hook' is run after the guts of this function.
(defalias 'sc-cite-original #[nil "\306\307!\210\203 \310	\"\210\302\303N\204 \311\302\303\211#\210\312\nB\313\314 \210\315 \210\316\313\317 #\320\321 !\211$#W\203G #%$#%$)\322#$\"\210\323\324\325!\206d \324\326!\206d \324\327!\206d \324\330!!\210\331 \210\332#$\"&'\203\267 '\247\203\204 &'X\203\254 \333#$\"\210#b\210(\206\225 \334)*\203\244 \335)!\210\202\250 \336\313!\210)\202\267 \337 \210\340\341&'#\210)#\316\211\223\210$\316\211\223\210,\306\342!\210\314 \207" [sc-mode-map-prefix sc-mode-map minor-mode-alist sc-minor-mode zmacs-regions mark-active run-hooks sc-pre-hook local-set-key put (sc-minor-mode sc-mode-string) t sc-set-mode-string undo-boundary nil point-marker copy-marker mark-marker sc-mail-process-headers sc-attribs-chop-address sc-mail-field "from" "reply" "reply-to" "sender" sc-select-attribution count-lines sc-cite-region 0 sc-electric-mode sc-eref-insert-selected beep message "Region not cited. %d lines exceeds sc-cite-region-limit: %d" sc-post-hook point mark tmp linecnt sc-cite-region-limit sc-preferred-header-style sc-eref-style sc-electric-references-p] 5 (#$ . 57889)])
#@123 Like `open-line', but insert the citation prefix at the front of the line.
With numeric ARG, inserts that many new lines.
(defalias 'sc-open-line #[(arg) "\212`\303 \210\304\305 !\203 \306\307!\206 \310\211b\210\311\n!\210\312y\210\307\nW\2051 c\210\312y\210\nS\202 +\207" [prefix start arg beginning-of-line looking-at sc-cite-regexp sc-submatch 0 "" open-line 1] 4 (#$ . 59983) "p"])
#@151 Insert citation string at beginning of current line if not already cited.
With `\[universal-argument]' insert citation even if line is already
cited.
(defalias 'sc-insert-citation #[(arg) "\212\301 \210\302\303 !\203 \302\304!\204 :\203 \305\306!c\202  \307\310!)\207" [arg beginning-of-line looking-at sc-cite-regexp "^[ 	]*$" sc-mail-field "sc-citation" error "Line is already cited"] 2 (#$ . 60383) "P"])
#@194 Echo the current version of Supercite in the minibuffer.
With \[universal-argument] (universal-argument), or if run non-interactively,
inserts the version string in the current buffer instead.
(defalias 'sc-version #[(arg) "\303\304\"\n:\204 t\204 \305	\261\202 \306	!)\207" [sc-version verstr arg format "Using Supercite.el %s" "`sc-version' says: " message] 3 (#$ . 60802) "P"])
#@158 
Supercite is a package which provides a flexible mechanism for citing
email and news replies.  Please see the associated texinfo file for
more information.
(defalias 'sc-describe #[nil "\300\301!\207" [describe-function sc-describe] 2 (#$ . 61196) nil])
#@44 Submit a bug report on Supercite via mail.
(defalias 'sc-submit-bug-report #[nil "\302\303!\210\304\305!\2051 \306\307	P\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\257#\207" [sc-help-address sc-version require reporter y-or-n-p "Do you want to submit a report on Supercite? " reporter-submit-bug-report "Supercite version " sc-attrib-selection-list sc-auto-fill-region-p sc-blank-lines-after-headers sc-citation-leader sc-citation-delimiter sc-citation-separator sc-citation-leader-regexp sc-citation-root-regexp sc-citation-nonnested-root-regexp sc-citation-delimiter-regexp sc-citation-separator-regexp sc-cite-region-limit sc-confirm-always-p sc-default-attribution sc-default-author-name sc-downcase-p sc-electric-circular-p sc-electric-references-p sc-fixup-whitespace-p sc-mail-warn-if-non-rfc822-p sc-mumble sc-name-filter-alist sc-nested-citation-p sc-nuke-mail-headers sc-nuke-mail-header-list sc-preferred-attribution-list sc-preferred-header-style sc-reference-tag-string sc-rewrite-header-list sc-titlecue-regexp sc-use-only-preference-p] 34 (#$ . 61457) nil])
(byte-code "\300\301!\210\302\303!\207" [provide supercite run-hooks sc-load-hook] 2)
