;;; compiled by rms@wookumz.gnu.ai.mit.edu on Tue Jun  1 00:18:45 1993
;;; from file /gd/gnu/emacs/19.0/lisp/sc.el
;;; emacs version 19.10.3.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(require (quote sc-alist))
(defvar sc-nested-citation-p nil "\
*Controls whether to use nested or non-nested citation style.
Non-nil uses nested citations, nil uses non-nested citations.  Type
\\[sc-describe] for more information.")
(defvar sc-citation-leader "	" "\
*String comprising first part of a citation.")
(defvar sc-citation-delimiter ">" "\
*String comprising third part of a citation.
This string is used in both nested and non-nested citations.")
(defvar sc-citation-separator " " "\
*String comprising fourth and last part of a citation.")
(defvar sc-default-author-name "Anonymous" "\
*String used when author's name cannot be determined.")
(defvar sc-default-attribution "Anon" "\
*String used when author's attribution cannot be determined.")
(defvar sc-cite-regexp "\\s *[-a-zA-Z0-9_.]*>+\\s *" "\
*Regular expression describing how a already cited line begins.
The regexp is only used at the beginning of a line, so it doesn't need
to start with a '^'.")
(defvar sc-titlecue-regexp "\\s +-+\\s +" "\
*Regular expression describing the separator between names and titles.
Set to nil to treat entire field as a name.")
(defvar sc-spacify-name-chars (quote (95 42 43 61)) "\
*List of characters to convert to spaces if found in an author's name.")
(defvar sc-nicknames-alist (quote (("Michael" "Mike") ("Daniel" "Dan") ("David" "Dave") ("Jonathan" "John") ("William" "Bill") ("Elizabeth" "Beth") ("Elizabeth" "Betsy") ("Kathleen" "Kathy") ("Smith" "Smitty"))) "\
*Association list of names and their common nicknames.
Entries are of the form (NAME NICKNAME), and NAMEs can have more than
one nickname. Nicknames will not be automatically used as an
attribution string, since I'm not sure this is really polite, but if a
name is glommed from the author name and presented in the attribution
string completion list, the matching nicknames will also be presented.
Set this variable to nil to defeat nickname expansions. Also note that
nicknames are not put in the supercite information alist.")
(defvar sc-confirm-always-p t "\
*If non-nil, always confirm attribution string before citing text body.")
(defvar sc-preferred-attribution (quote firstname) "\
*Specifies which part of the author's name becomes the attribution.
The value of this variable must be one of the following quoted symbols:

     emailname   -- email terminus name
     initials    -- initials of author
     firstname   -- first name of author
     lastname    -- last name of author
     middlename1 -- first middle name of author
     middlename2 -- second middle name of author
     ...

Middle name indexes can be any positive integer greater than 0, though
it is unlikely that many authors will supply more than one middle
name, if that many.")
(defvar sc-use-only-preference-p nil "\
*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.")
(defvar sc-downcase-p nil "\
*Non-nil means downcase the attribution and citation strings.")
(defvar sc-rewrite-header-list (quote ((sc-no-header) (sc-header-on-said) (sc-header-inarticle-writes) (sc-header-regarding-adds) (sc-header-attributed-writes) (sc-header-verbose) (sc-no-blank-line-or-header))) "\
*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. For more
information, type \\[sc-describe].")
(defvar sc-preferred-header-style 1 "\
*Index into sc-rewrite-header-list specifying preferred header style.
Index zero accesses the first function in the list.")
(defvar sc-electric-references-p t "\
*Use electric references if non-nil.")
(defvar sc-electric-circular-p t "\
*Treat electric references as circular if non-nil.")
(defvar sc-mail-fields-list (quote ("date" "message-id" "subject" "newsgroups" "references" "from" "return-path" "path" "reply-to" "organization" "reply")) "\
*List of mail header whose values will be saved by supercite.
These values can be used in header rewrite functions by accessing them
with the sc-field function. Mail headers in this list are case
insensitive and do not require a trailing colon.")
(defvar sc-mumble-string "" "\
*Value returned by sc-field if chosen field cannot be found.")
(defvar sc-nuke-mail-headers-p t "\
*Nuke or don't nuke mail headers.
If non-nil, nuke mail headers after gleaning useful information from
them.")
(defvar sc-reference-tag-string ">>>>> " "\
*String used at the beginning of built-in reference headers.")
(defvar sc-fill-paragraph-hook (quote sc-fill-paragraph) "\
*Hook for filling a paragraph.  
This hook gets executed when you fill a paragraph either manually or
automagically. It expects point to be within the extent of the
paragraph that is going to be filled. This hook allows you to use a
different paragraph filling package than the one supplied with
supercite.")
(defvar sc-auto-fill-region-p nil "\
*If non-nil, automatically fill each paragraph after it has been cited.")
(defvar sc-auto-fill-query-each-paragraph-p nil "\
*If non-nil, query before filling each paragraph.
No querying and no filling will be performed if sc-auto-fill-region-p
is set to nil.")
(defvar sc-fixup-whitespace-p nil "\
*If non-nil, delete all leading white space before citing.")
(defvar sc-all-but-cite-p nil "\
*If non-nil, sc-cite-original does everything but cite the text.
This is useful for manually citing large messages, or portions of
large messages. When non-nil, sc-cite-original will still set up all
necessary variables and databases, but will skip the citing routine
which modify the reply buffer's text.")
(defvar sc-load-hook nil "\
*User definable hook.
Runs after supercite is loaded. Set your customizations here.")
(defvar sc-pre-hook nil "\
*User definable hook.
Runs before sc-cite-original executes.")
(defvar sc-post-hook nil "\
*User definable hook.
Runs after sc-cite-original executes.")
(defvar sc-header-nuke-list (quote ("via" "origin" "status" "received" "remailed" "cc" "sender" "replied" "organization" "keywords" "distribution" "xref" "references" "expires" "approved" "summary" "precedence" "subject" "newsgroup[s]?" "\\(followup\\|apparently\\|errors\\|\\(\\(in-\\)?reply\\)?-\\)?to" "x-[a-z0-9-]+" "[a-z-]*message-id" "\\(summary-\\)?line[s]" "\\(\\(return\\|reply\\)-\\)?path" "\\(posted-\\)?date" "\\(mail-\\)?from")) "\
*List of mail headers to remove from body of reply.")
(defvar sc-default-keymap (quote (lambda nil (local-set-key "" (quote sc-insert-reference)) (local-set-key "" (quote sc-cite)) (local-set-key "" (quote sc-recite)) (local-set-key "" (quote sc-uncite)) (local-set-key "	" (quote sc-insert-citation)) (local-set-key "" (quote sc-open-line)) (local-set-key "" (quote sc-fill-paragraph-manually)) (local-set-key "q" (quote sc-fill-paragraph-manually)) (local-set-key "" (quote sc-modify-information)) (local-set-key "f" (quote sc-view-field)) (local-set-key "g" (quote sc-glom-headers)) (local-set-key "" (quote sc-version)) (local-set-key "?" (quote sc-describe)))) "\
*Default keymap if major-mode can't be found in `sc-local-keymaps'.")
(defvar sc-local-keymaps (quote ((mail-mode (lambda nil (local-set-key "" (quote sc-insert-reference)) (local-set-key "" (quote sc-cite)) (local-set-key "" (quote sc-recite)) (local-set-key "" (quote sc-uncite)) (local-set-key "	" (quote sc-insert-citation)) (local-set-key "" (quote sc-open-line)) (local-set-key "" (quote sc-fill-paragraph-manually)) (local-set-key "q" (quote sc-fill-paragraph-manually)) (local-set-key "" (quote sc-modify-information)) (local-set-key "f" (quote sc-view-field)) (local-set-key "g" (quote sc-glom-headers)) (local-set-key "" (quote sc-version)) (local-set-key "?" (quote sc-describe)))) (mh-letter-mode (lambda nil (local-set-key "" (quote sc-insert-reference)) (local-set-key "" (quote sc-cite)) (local-set-key "" (quote sc-recite)) (local-set-key "" (quote sc-uncite)) (local-set-key "i" (quote sc-insert-citation)) (local-set-key "" (quote sc-open-line)) (local-set-key "q" (quote sc-fill-paragraph-manually)) (local-set-key "" (quote sc-modify-information)) (local-set-key "f" (quote sc-view-field)) (local-set-key "g" (quote sc-glom-headers)) (local-set-key "" (quote sc-version)) (local-set-key "?" (quote sc-describe)))) (news-reply-mode mail-mode) (vm-mail-mode mail-mode) (e-reply-mode mail-mode) (n-reply-mode mail-mode))) "\
*List of keymaps to use with the associated major-mode.")
(defvar sc-electric-mode-map nil "\
*Keymap for sc-electric-mode.")
(byte-code "=  #########" [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 "" sc-eref-exit "\n" "q" "g" sc-eref-goto] 4)
(defconst sc-version-number "2.3" "\
Supercite's version number.")
(byte-code "" [nil news-reply-header-hook] 1)
(autoload (quote sc-electric-mode) "sc-elec" "\
Quasi-major mode for viewing supercite reference headers." nil)
(defvar sc-gal-information nil "\
Internal global alist variable containing information.")
(defvar sc-gal-attributions nil "\
Internal global alist variable containing attributions.")
(defvar sc-fill-arg nil "\
Internal fill argument holder.")
(defvar sc-cite-context nil "\
Internal citation context holder.")
(defvar sc-force-confirmation-p nil "\
Internal variable.")
(byte-code "!!!!!\"\" \"\"\"" [make-variable-buffer-local sc-gal-attributions sc-gal-information sc-leached-keymap sc-fill-arg sc-cite-context set-default nil current-local-map] 3)
(defalias 'sc-mark #[nil " )" [nil zmacs-regions mark] 1 "\
Mark compatibility between emacs v18 and v19."])
(defalias 'sc-update-gal #[(attribution) "\n \n! \n#P#\nR#)" [sc-downcase-p downcase attribution attrib aput sc-gal-information "sc-attribution" "sc-nested-citation" sc-citation-delimiter "sc-citation" sc-citation-leader sc-citation-separator] 7 "\
Update the information alist.
Add ATTRIBUTION and compose the nested and non-nested citation
strings."])
(defalias 'sc-valid-index-p #[(index) "GS! 	X)" [sc-rewrite-header-list last natnump index] 2 "\
Returns t if INDEX is a valid index into sc-rewrite-header-list."])
(defalias 'sc-string-car #[(namestring) "\"!\"!O" [namestring string-match "\\s *" match-end 0 "\\s *\\S +"] 5 "\
Return the string-equivalent \"car\" of NAMESTRING.

     example: (sc-string-car \"John Xavier Doe\")
              => \"John\""])
(defalias 'sc-string-cdr #[(namestring) "\"!O" [namestring string-match "\\s *\\S +\\s *" match-end 0 nil] 4 "\
Return the string-equivalent \"cdr\" of NAMESTRING.

     example: (sc-string-cdr \"John Xavier Doe\")
              => \"Xavier Doe\""])
(defalias 'sc-linepos #[(&optional position col-p) "`= !  =     \n) i* `\nb	*" [nil rval tpnt position bol forward-line 0 boi back-to-indentation end-of-line col-p] 2 "\
Return the character position at various line positions.
Optional POSITION can be one of the following symbols:
     bol == beginning of line
     boi == beginning of indentation
     eol == end of line [default]

Optional COL-P non-nil returns current-column instead of character position."])
(defalias 'sc-build-header-zap-regexp #[nil " \n@A %A \n*" [sc-header-nuke-list nil regexp headers concat "^" ":" "\\|"] 7 "\
Return a regexp for sc-mail-yank-clear-headers."])
(defalias 'sc-mail-yank-clear-headers #[(start end) "C 	C  b#B `\"b\n#)A !`!!`\"! )*" [sc-nuke-mail-headers-p sc-header-nuke-list sc-build-header-zap-regexp regexp start search-forward "\n\n" end t narrow-to-region case-fold-search re-search-forward nil forward-line 0 delete-region "\n[^ 	]" forward-char -1] 4 "\
Nuke mail headers between START and END."])
(defalias 'sc-mail-fetch-field #[(field) "eb!Qeb#- `	!! 	`S\")+" [t "^" regexp-quote field "[ 	]*:[ 	]*" name case-fold-search re-search-forward nil opoint forward-line 1 looking-at "[ 	]" buffer-substring] 4 "\
Return the value of the header field FIELD.
The buffer is expected to be narrowed to just the headers of the
message."])
(defalias 'sc-fetch-fields #[(start end) "	\n\"	b- @!A& @#* !: !#+" [narrow-to-region start end sc-mail-fields-list fields sc-mail-fetch-field next value aput sc-gal-information "from"] 6 "\
Fetch the mail fields in the region from START to END.
These fields can be accessed in header rewrite functions with sc-field."])
(defalias 'sc-field #[(field) "	\n\" " [aget sc-gal-information field sc-mumble-string] 3 "\
Return the alist information associated with the FIELD.
If FIELD is not a valid key, return sc-mumble-string."])
(defun sc-no-header nil "\
Does nothing. Use this instead of nil to get a blank header." nil)
(defalias 'sc-no-blank-line-or-header #[nil "o?' l' !! ='  '   )" [forward-line -1 looking-at mail-header-separator major-mode mh-letter-mode mh-in-header-p t kill-lines-magic kill-line] 2 "\
Similar to sc-no-header except it removes the preceeding blank line."])
(defalias 'sc-header-on-said #[nil "!!\"?* 	\"& Q' $+" ["" sc-mumble-string sc-field "from" whofrom "date" when string= insert sc-reference-tag-string "On " ", " " said:\n"] 5 "\
\"On <date>, <from> said:\", unless 1. the \"from\" field cannot be
found, in which case nothing is inserted; or 2. the \"date\" field is
missing in which case only the from part is printed."])
(defalias 'sc-header-inarticle-writes #[nil "!!\"?* 	\"& Q' $+" ["" sc-mumble-string sc-field "from" whofrom "message-id" msgid string= insert sc-reference-tag-string "In article " ", " " writes:\n"] 5 "\
\"In article <message-id>, <from> writes:\"
Treats \"message-id\" and \"from\" fields similar to sc-header-on-said."])
(defalias 'sc-header-regarding-adds #[nil "!!\"?* 	\"& Q' $+" ["" sc-mumble-string sc-field "from" whofrom "subject" subj string= insert sc-reference-tag-string "Regarding " "; " " adds:\n"] 5 "\
\"Regarding <subject>; <from> adds:\"
Treats \"subject\" and \"from\" fields similar to sc-header-on-said."])
(defalias 'sc-header-attributed-writes #[nil "!!!!\n!\"?i \n\"5 \nQ6 \"E PF \"V Qg \"f Qg %." ["" sc-mumble-string sc-field "from" whofrom "sc-reply-address" reply "sc-from-address" from "sc-attribution" attr "sc-author" auth string= insert sc-reference-tag-string "\"" "\" == " " " "<" ">" " writes:\n"] 7 "\
\"<sc-attribution>\" == <sc-author> <address> writes:
Treats these fields in a similar manner to sc-header-on-said."])
(defalias 'sc-header-verbose #[nil "!!!!\n!!!!!!!\"?\"W RX \n\"g \nh Q\"| R} \" R \" R \" R \" R \" R \" R \" R&	." ["" sc-mumble-string sc-field "from" whofrom "sc-reply-address" reply "sc-from-address" from "sc-author" author "date" date "organization" org "message-id" msgid "newsgroups" ngrps "subject" subj "references" refs "sc-citation" cite sc-reference-tag-string nl string= insert "On " ",\n" "\n" "from the organization of " "who can be reached at: " "(whose comments are cited below with \"" "\"),\n" "had this to say in article " "in newsgroups " "concerning the subject of " "(see " " for more details)\n"] 13 "\
Very verbose, some say gross."])
(defalias 'sc-query #[(&optional default) " 	Q! \"  \" *" [default sc-default-attribution "Enter attribution string: (default " ") " prompt read-string query string= ""] 4 "\
Query for an attribution string with the optional DEFAULT choice.
Returns the string entered by the user, if non-empty and non-nil, or
DEFAULT otherwise. If DEFAULT is not supplied, sc-default-attribution
is used."])
(defalias 'sc-confirm #[nil " 	X !\n= ̂* \n=) ΂* %!#\"P \"T V ,\"" [sc-confirm-always-p sc-force-confirmation-p aput sc-gal-attributions aheadsym default nil chosen concat "Complete " sc-cite-context citing "cite" reciting "recite" "" " attribution string: (default " ") " prompt copy-keymap minibuffer-local-completion-map define-key "" (lambda nil (interactive) (beep) (throw (quote select-abort) nil)) completing-read string=] 9 "\
Confirm the preferred attribution with the user."])
(defalias 'sc-style1-addresses #[(from-string &optional delim) "\nP# !!\n Ă ZO" [string-match "[a-zA-Z0-9_-]+" delim from-string 0 match-beginning match-end 1] 4 "\
Extract the author's email terminus from email address FROM-STRING.
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-style2-addresses #[(from-string) "G#!' TU$ Â% ZO+" [from-string string-match "![a-zA-Z0-9_-]+\\([^!a-zA-Z0-9_-]\\|$\\)" 0 match-end mend mstart eos 1] 5 "\
Extract the author's email terminus from email address FROM-STRING.
Match addresses of the style \"[stuff]![stuff]...!name[stuff].\""])
(defalias 'sc-get-address #[(from-string author) "GQ#: !	OHU4 GSHU4 GSO6 )N #M !!ON )" [from-string eos string-match "\\(^\\|^\"\\)" author "\\(\\s +\\|\"\\s +\\)" 0 match-end addr 60 62 1 "[a-zA-Z0-9!@%._-]+" match-beginning ""] 5 "\
Get the full email address path from FROM-STRING.
AUTHOR is the author's name (which is removed from the address)."])
(defalias 'sc-get-emailname #[(from-string) "	\" 	\" 	! 	\" 	O" [sc-style1-addresses from-string "%" "@" sc-style2-addresses nil 0 10] 3 "\
Get the email terminus name from FROM-STRING."])
(fset (quote sc-spacify-name-chars) #[(name) "G\nW \nH> \nI\nT *" [name 0 s len sc-spacify-name-chars 32] 4])
(defalias 'sc-name-substring #[(string start end extend) " 	\\\n	Z# O*" [start extend end eos sos string string-match sc-titlecue-regexp] 6 "\
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-extract-namestring #[(from-string) "\n#!\n#!\n#!	\n\n$G \n\n	$G \n$G !." [string-match "(.*)" from-string 0 match-end "\".*\"" "\\([.a-zA-Z0-9_-]+\\s *\\)+" bend bstart qend qstart pend pstart sc-spacify-name-chars sc-name-substring 1 nil] 8 "\
Extract the name string from FROM-STRING.
This should be the author's full name minus an optional title."])
(defalias 'sc-chop-namestring #[(namestring) "	\"? 	!C	!!\"" [string= namestring "" append sc-string-car sc-chop-namestring sc-string-cdr] 5 "\
Convert NAMESTRING to a list of names.

     example: (sc-namestring-to-list \"John Xavier Doe\")
              => (\"John\" \"Xavier\" \"Doe\")"])
(defalias 'sc-strip-initials #[(namelist) "?? @\"  @OA!P" [namelist string= "" 0 1 sc-strip-initials] 3 "\
Extract the author's initials from the NAMELIST."])
(defalias 'sc-populate-alists #[(from-string) "\n!!A!A!@A!@!\n\n!F###\n####\n#P @A\"!\"  # #TC\" Q,q P#\n\"#!\"#).\n" [sc-chop-namestring sc-extract-namestring from-string namelist reverse revnames midnames firstname lastname sc-strip-initials initials sc-get-emailname emailname 1 n symlist aput sc-gal-attributions sc-gal-information "sc-firstname" "sc-lastname" "sc-emailname" "sc-initials" " " author intern format "middlename%d" "sc-middlename-%d" string symbol next name nconc "sc-author" "sc-from-address" sc-get-address "sc-reply-address" sc-field "reply-to"] 6 "\
Put important and useful information in the alists using FROM-STRING.
Return the list of name symbols."])
(defalias 'sc-sort-attribution-alist #[nil "\n\"\n\" 	\n\"\" 	\n\"? \")4 0 !#\"" [asort sc-gal-attributions sc-preferred-attribution anot-head-p aget prefval string= "" sc-use-only-preference-p aput sc-user-query sc-query sc-default-attribution firstname] 6 "\
Put preferred attribution at head of attributions alist."])
(defalias 'sc-build-attribution-alist #[(from-string) "	! !#E @#A	\n6 \n\"6 \n\"@\"	*  @@x @@\"o @A@\"A[ A*H ) \"? \"*" [sc-populate-alists from-string sc-sort-attribution-alist aget sc-gal-attributions aheadsym t headval symlist next value string= "" aput adelete gal sc-nicknames-alist galname nns sc-default-attribution] 6 "\
Extract attributions from FROM-STRING, applying preferences."])
(defalias 'sc-select #[nil " !H #$ 	#!!H > #! !!H  !!Ƈ" [sc-nested-citation-p sc-update-gal "" aget sc-gal-information "from" t aput "sc-author" sc-default-author-name sc-query sc-default-attribution sc-gal-attributions sc-build-attribution-alist sc-confirm aheadsym] 5 "\
Select an attribution and create a citation string."])
(defalias 'sc-cite-region #[(start end) "b!`!b!``` W 	(  ld U[ [ D ![ !\\\\\"b!)`` !u \"c  \"c`!  !+" [end forward-line 1 set-mark start 0 fend fstart sc-mark sc-fixup-whitespace-p fixup-whitespace sc-auto-fill-region-p sc-auto-fill-query-each-paragraph-p y-or-n-p "Fill this paragraph? " / 2 run-hooks sc-fill-paragraph-hook looking-at sc-cite-regexp aget sc-gal-information "sc-citation" sc-nested-citation-p "sc-nested-citation" message " "] 4 "\
Cite a region delineated by START and END."])
(defalias 'sc-uncite-region #[(start end cite-regexp) "	!\nb!``` W} lP UH H 	3 !H !\\\\\"b!)``t !t ! \"!ed#!\"*`! +" [set-mark end start forward-line 0 fend fstart sc-mark sc-auto-fill-region-p sc-auto-fill-query-each-paragraph-p y-or-n-p "Fill this paragraph? " / 1 2 run-hooks sc-fill-paragraph-hook looking-at cite-regexp narrow-to-region sc-linepos bol delete-region re-search-forward t match-end] 6 "\
Uncite a previously cited region delineated by START and END.
CITE-REGEXP describes how a cited line of texts starts.  Unciting also
auto-fills paragraph if sc-auto-fill-region-p is non-nil."])
(defalias 'sc-guess-fill-prefix #[(&optional literalp) "!!!\"Q\n\"& ςx x !!9 x !Z U `Pd#`\"x x \n!w r `\n!`\"x \nx +" [forward-line 0 skip-chars-forward "\n	 " aget sc-gal-information "sc-citation" "\\s *[^ 	\n" sc-citation-delimiter "]+>\\s +" generic-citation citation string= fill-prefix "" nil looking-at regexp-quote sc-cite-regexp literalp buffer-substring re-search-forward "\\s *"] 6 "\
Guess the fill prefix used on the current line.
Use various heuristics to find the fill prefix. Search begins on first
non-blank line after point.

     1) If fill-prefix is already bound to the empty string, return
        nil.

     2) If fill-prefix is already bound, but not to the empty
        string, return the value of fill-prefix.

     3) If the current line starts with the last chosen citation
        string, then that string is returned.

     4) If the current line starts with a string matching the regular
        expression sc-cite-regexp, return the match.  Note that if
        optional LITERALP is provided and non-nil, then the *string*
        that matches the regexp is return.  Otherwise, if LITERALP is
        not provided or is nil, the *regexp* sc-cite-regexp is
        returned.

     5) If the current line starts with any number of characters,
        followed by the sc-citation-delimiter and then white space,
        that match is returned. See comment #4 above for handling of
        LITERALP. 

     6) Nil is returned."])
(defalias 'sc-consistant-cite-p #[(prefix) " !l !` !l  !`	\n	b!`\nWI I !!0 ," [forward-paragraph forward-line 0 forward-char -1 backward-paragraph 1 t badline start end looking-at prefix] 3 "\
Check current paragraph for consistant citation.
Scans to paragraph delineated by (forward|backward)-paragraph to see
if all lines start with PREFIX. Returns t if entire paragraph is
consistantly cited, nil otherwise."])
(defalias 'sc-fill-start #[(fill-prefix) " !l !`)2 `V2 !\n!? *!`)" [nil backward-paragraph forward-line 0 forward-char 1 top badline -1 looking-at fill-prefix] 4 "\
Find buffer position of start of region which begins with FILL-PREFIX.
Restrict scan to current paragraph."])
(defalias 'sc-fill-end #[(fill-prefix) " !l !`)6 `W6 !	!?! *!`)" [nil forward-paragraph forward-line 0 forward-char -1 bot badline looking-at fill-prefix 1] 3 "\
Find the buffer position of end of region which begins with FILL-PREFIX.
Restrict scan to current paragraph."])
(defalias 'sc-fill-paragraph #[nil "`!\n !F \n! !F !9 !b\n!b\n!#F !\"!+" [sc-guess-fill-prefix t fill-prefix pnt fill-paragraph sc-fill-arg sc-consistant-cite-p y-or-n-p "Inconsistent citation found. Restrict? " message "" fill-region-as-paragraph sc-fill-start sc-fill-end aget sc-gal-information "sc-citation"] 4 "\
Supercite's paragraph fill function.
Fill the paragraph containing or following point. Use
sc-guess-fill-prefix to find the fill-prefix for the paragraph.

If the paragraph is inconsistantly cited (mixed fill-prefix), then the
user is queried to restrict the the fill to only those lines around
point which begin with the fill prefix.

The variable sc-fill-arg is passed to fill-paragraph and
fill-region-as-paragraph which controls justification of the
paragraph.  sc-fill-arg is set by sc-fill-paragraph-manually."])
(defalias 'sc-insert-reference #[(arg) ":  !  !  ) !- ɏ)" [arg sc-electric-mode sc-valid-index-p sc-preferred-header-style 0 pref sc-electric-references-p err (byte-code "	\n8!" [eval pref sc-rewrite-header-list] 3) ((void-function (byte-code "A@!# " [message "Symbol's function definition is void: %s. (Header %d)." symbol-name err pref beep] 4)) (error (byte-code "\n\" " [message "Error evaluating rewrite header function %d." pref beep] 3)))] 3 "\
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." "P"])
(defalias 'sc-cite #[(arg) " 	 !č" [sc-mark error "Please designate a region to cite (i.e. set the mark)." select-abort (byte-code "t   `V?  \n!` \"` WD 7 Ђ8 \"!D !# K  +" [citing sc-force-confirmation-p sc-cite-context sc-select undo-boundary sc-mark exchange-point-and-mark t xchange sc-insert-reference arg sc-cite-region looking-at aget sc-gal-information sc-nested-citation-p "sc-nested-citation" "sc-citation" forward-line 1] 4)] 2 "\
Cite the region of text between point and mark.
Numeric ARG, if supplied, is passed unaltered to sc-insert-reference." "P"])
(defalias 'sc-uncite #[nil " 	 !  `V?    	` #	1  *" [sc-mark error "Please designate a region to uncite (i.e. set the mark)." undo-boundary exchange-point-and-mark t sc-guess-fill-prefix "" fp xchange sc-uncite-region] 4 "\
Uncite the region between point and mark." nil])
(defalias 'sc-recite #[nil " 	 !č" [sc-mark error "Please designate a region to recite (i.e. set the mark)." select-abort (byte-code "   `V?    \n` \n#` \"5  ," [reciting t sc-force-confirmation-p sc-cite-context sc-select undo-boundary sc-mark exchange-point-and-mark sc-guess-fill-prefix "" fp xchange sc-uncite-region sc-cite-region] 4)] 2 "\
Recite the region by first unciting then citing the text." nil])
(defalias 'sc-insert-citation #[nil "!\"c)" [forward-line 0 aget sc-gal-information "sc-citation"] 3 "\
Insert citation string at beginning of current line." nil])
(defalias 'sc-open-line #[(arg) "`!	 !b!W. c!Z +" [sc-guess-fill-prefix t "" string start open-line arg forward-line 1 0] 3 "\
Insert a newline and leave point before it.
Also inserts the guessed prefix at the beginning of the new line. With
numeric ARG, inserts that many new lines." "p"])
(defalias 'sc-fill-paragraph-manually #[(arg) "!" [arg sc-fill-arg run-hooks sc-fill-paragraph-hook] 2 "\
Fill current cited paragraph.
Really just runs the hook sc-fill-paragraph-hook, however it does set
the global variable sc-fill-arg to the value of ARG.  This is
currently the only way to pass an argument to a hookified function." "P"])
(defalias 'sc-modify-information #[(arg) ":  !%\"\"2 6 	B \"s #%!\"g ??r #+-" [arg delete-p "delete" "modify" action aheadsym sc-gal-information defaultkey concat "Select information key to " ": (default " ") " prompt completing-read key string= "" adelete aget t oldval "Enter new value for key \"" "\" (default \"" "\") " read-input newval aput] 7 "\
Interactively modify information in the information alist.
\\[universal-argument] if supplied, deletes the entry from the alist.
You can add an entry by supplying a key instead of completing." "P"])
(defalias 'sc-view-field #[(arg) "	!\nQ	\"\"  \n	#3 Q4 #L :L c-" [aheadsym sc-gal-information defaultkey "View information key: (default " ") " prompt completing-read key string= "" aget t val "\"" "nil" pval message "value of key %s: %s" arg] 5 "\
View field values in the information alist.
This is essentially an interactive version of sc-field, and is similar
to sc-modify-information, except that the field values can't be
modified. With \\[universal-argument], if supplied, inserts the value
into the current buffer as well." "P"])
(defalias 'sc-glom-headers #[nil "	!\n!  	\n\"\n1 !D \"ҍ?D ." [copy-sequence sc-gal-attributions sc-gal-information info attr nil region-beginning region-end t sc-cite-context sc-force-confirmation-p end start sc-fetch-fields message "No mail headers found! Restoring old information." sc-mail-yank-clear-headers select-abort (byte-code "" [foo (sc-select) ((quit (byte-code " \"" [beep throw select-abort nil] 3)))] 3)] 4 "\
Glom information from mail headers in region between point and mark.
Any old information is lost, unless an error occurs." nil])
(defalias 'sc-version #[(arg) ": c\nc\n\"" [arg "Using Supercite version " sc-version-number message "Using Supercite version %s"] 3 "\
Show supercite version.
Universal argument (\\[universal-argument]) ARG inserts version
information in the current buffer instead of printing the message in
the echo area." "P"])
(defalias 'sc-append-current-keymap #[nil "	\n\"A@ !) <% \n\"A@!) !) " [assq major-mode sc-local-keymaps hook run-hooks sc-default-keymap current-local-map sc-leached-keymap] 4 "\
Append some useful key bindings to the current local key map.
This searches sc-local-keymap for the keymap to install based on the
major-mode of the current buffer."])
(defalias 'sc-snag-all-keybindings #[nil " !G		W> #> !!OP! ." [current-local-map curkeymap ".*sc-.*\n" symregexp substitute-command-keys "\\{curkeymap}" docstring 0 start maxend "" spooge string-match match-beginning match-end] 6 "\
Snag all keybindings in major-mode's current keymap."])
(defalias 'sc-spoogify-docstring #[nil "K< 	AA!;?c \"c  \n\n\"?5 QQ\nC ҏb 	H	H	H	H	GV_ 	HC&M++" [major-mode symfunc doc-cdr documentation doc-str string-match "Supercite" sc-snag-all-keybindings described "\n\nThe major mode for this buffer has been modified to include the\nSupercite 2.3 package for handling attributions and citations of\noriginal messages in email replies.  For more information on this\npackage, type \"\\[sc-describe]\"." commonstr string= "" "\n\nThe following keys are bound " "to Supercite commands:\n\n" newdoc-str nil (setcar doc-cdr newdoc-str) ((error (byte-code "	K!AA\"	\nM" [copy-sequence major-mode symfunc doc-cdr setcar newdoc-str] 4))) apply make-byte-code 0 1 2 3 5] 11 "\
Modifies (makes into spooge) the docstring for the current major mode.
This will leach the keybinding descriptions for supercite onto the end
of the current major mode's docstring.  If major mode is preloaded,
this function will first make a copy of the list associated with the
mode, then modify this copy."])
(defalias 'sc-cite-original #[nil "!  \"\"( !  !*" [run-hooks sc-pre-hook nil sc-gal-attributions sc-gal-information region-beginning region-end end start sc-fetch-fields sc-mail-yank-clear-headers sc-all-but-cite-p sc-cite sc-preferred-header-style sc-append-current-keymap sc-spoogify-docstring sc-post-hook] 3 "\
Hook version of sc-cite.
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."])
(defalias 'sc-describe #[nil "!" [describe-function sc-describe] 2 "\
Supercite version 2.3 is now described in a texinfo manual which
makes the documenation available both for online perusal via emacs'
info system, or for hard-copy printing using the TeX facility.

To view the online document hit \\[info], then \"mSupercite <RET>\"." nil])
(byte-code "!!" [run-hooks sc-load-hook provide sc] 2)
