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

;;; This file contains multibyte non-ASCII characters
;;; and therefore cannot be loaded into Emacs 19.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "20")))
    (error "`footnote.el' was compiled for Emacs 20 or later"))

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


(custom-declare-group 'footnote nil "Support for footnotes in mail and news messages." :version "21.1" :group 'message)
#@55 *String to display in modes section of the mode-line.
(custom-declare-variable 'footnote-mode-line-string '" FN" '(#$ . -743) :group 'footnote)
#@54 *Hook functions run when footnote-mode is activated.
(custom-declare-variable 'footnote-mode-hook 'nil '(#$ . -893) :type 'hook :group 'footnote)
#@65 *If set, narrow to footnote text body while editing a footnote.
(custom-declare-variable 'footnote-narrow-to-footnotes-when-editing 'nil '(#$ . -1045) :type 'boolean :group 'footnote)
#@90 *If set, prompt before deleting a footnote.
There is currently no way to undo deletions.
(custom-declare-variable 'footnote-prompt-before-deletion 't '(#$ . -1235) :type 'boolean :group 'footnote)
#@101 If set true it will put a blank line between each footnote.
If nil, no blank line will be inserted.
(custom-declare-variable 'footnote-spaced-footnotes 't '(#$ . 1439) :type 'boolean :group 'footnote)
#@61 *If non-nil assume Footnoting will be done in message-mode.
(custom-declare-variable 'footnote-use-message-mode 't '(#$ . -1646) :type 'boolean :group 'footnote)
#@64 *Number of blanks separating a footnote body tag and its text.
(custom-declare-variable 'footnote-body-tag-spacing '2 '(#$ . -1814) :type 'integer :group 'footnote)
#@73 *When not using message mode, the prefix to bind in `mode-specific-map'
(defvar footnote-prefix [(control 99) 33] (#$ . -1985))
#@49 *Tag inserted at beginning of footnote section.
(defconst footnote-section-tag "Footnotes: " (#$ . -2119))
#@91 *Regexp which indicates the start of a footnote section.
See also `footnote-section-tag'.
(custom-declare-variable 'footnote-section-tag-regexp '"Footnotes\\(\\[.\\]\\)?: " '(#$ . -2232) :type 'regexp :group 'footnote)
#@52 *String used to denote start of numbered footnote.
(custom-declare-variable 'footnote-start-tag '"[" '(#$ . -2457) :type 'string :group 'footnote)
#@50 *String used to denote end of numbered footnote.
(custom-declare-variable 'footnote-end-tag '"]" '(#$ . -2610) :type 'string :group 'footnote)
#@40 *String used to recognize .signatures.
(defvar footnote-signature-separator (byte-code "\301\300!\203 \207\302\207" [message-signature-separator boundp "^-- $"] 2) (#$ . -2759))
#@67 Footnote style represented as an index into footnote-style-alist.
(defvar footnote-style-number nil (#$ . 2945))
(make-variable-buffer-local 'footnote-style-number)
#@66 List of markers pointing to text of footnotes in message buffer.
(defvar footnote-text-marker-alist nil (#$ . 3116))
(make-variable-buffer-local 'footnote-text-marker-alist)
#@66 List of markers pointing to footnote pointers in message buffer.
(defvar footnote-pointer-marker-alist nil (#$ . 3296))
(make-variable-buffer-local 'footnote-pointer-marker-alist)
#@52 Text property name to enable mouse over highlight.
(defvar footnote-mouse-highlight 'highlight (#$ . 3482))
#@60 Variable indicating whether footnote minor mode is active.
(defvar footnote-mode nil (#$ . 3596))
(make-variable-buffer-local 'footnote-mode)
#@20 Regexp for digits.
(defconst footnote-numeric-regexp "[0-9]" (#$ . 3744))
#@61 Numeric footnote style.
Use Arabic numerals for footnoting.
(defalias 'Footnote-numeric #[(n) "\301!\207" [n int-to-string] 2 (#$ . 3824)])
#@30 Upper case English alphabet.
(defconst footnote-english-upper "ABCDEFGHIJKLMNOPQRSTUVWXYZ" (#$ . 3971))
#@41 Regexp for upper case English alphabet.
(defconst footnote-english-upper-regexp "[A-Z]" (#$ . 4081))
#@104 Upper case English footnoting.
Wrapping around the alphabet implies successive repetitions of letters.
(defalias 'Footnote-english-upper #[(n) "\306S	G\"S	G\245\307	\nH!\310\311Y\203& \fPS\211\202 ,\207" [n footnote-english-upper ltr rep chr rc mod char-to-string nil 0] 4 (#$ . 4189)])
#@30 Lower case English alphabet.
(defconst footnote-english-lower "abcdefghijklmnopqrstuvwxyz" (#$ . 4495))
#@40 Regexp of lower case English alphabet.
(defconst footnote-english-lower-regexp "[a-z]" (#$ . 4605))
#@104 Lower case English footnoting.
Wrapping around the alphabet implies successive repetitions of letters.
(defalias 'Footnote-english-lower #[(n) "\306S	G\"S	G\245\307	\nH!\310\311Y\203& \fPS\211\202 ,\207" [n footnote-english-lower ltr rep chr rc mod char-to-string nil 0] 4 (#$ . 4712)])
#@43 List of roman numerals with their values.
(defconst footnote-roman-lower-list '((1 . "i") (5 . "v") (10 . "x") (50 . "l") (100 . "c") (500 . "d") (1000 . "m")) (#$ . 5018))
#@27 Regexp of roman numerals.
(defconst footnote-roman-lower-regexp "[ivxlcdm]" (#$ . 5197))
#@34 Generic Roman number footnoting.
(defalias 'Footnote-roman-lower #[(n) "\302	\"\207" [n footnote-roman-lower-list Footnote-roman-common] 3 (#$ . 5292)])
#@43 List of roman numerals with their values.
(defconst footnote-roman-upper-list '((1 . "I") (5 . "V") (10 . "X") (50 . "L") (100 . "C") (500 . "D") (1000 . "M")) (#$ . 5452))
#@41 Regexp of roman numerals.  Not complete
(defconst footnote-roman-upper-regexp "[IVXLCDM]" (#$ . 5631))
#@34 Generic Roman number footnoting.
(defalias 'Footnote-roman-upper #[(n) "\302	\"\207" [n footnote-roman-upper-list Footnote-roman-common] 3 (#$ . 5740)])
#@30 Lower case Roman footnoting.
(defalias 'Footnote-roman-common #[(n footnote-roman-list) "\211G\306\306\307\306\306\nSX\203- 	8@Y\203- T\211\202 S\307U\203n W\203n 	8@	8@\310\245ZV\204c 	8@	8@ZU\203f T\2024 \f	8	8\307U?\205~ 	8\306W\203\221 \311\312!\202\376 \306U\203\234 \313\202\376 @U\203\253 A\202\376 @U\203\272 A\202\376 @@U\203\324 A\314@Z\"P\202\376 \306Y\203\361 AA\314@@ZZ\"Q\202\376 A\314@Z\"P.\n\207" [footnote-roman-list our-list rom-lngth rom-high rom-low rom-div 0 -1 2 error "Footnote-roman-common called with n < 0" "" Footnote-roman-common count-high count-low n rom-div-pair rom-high-pair rom-low-pair] 7 (#$ . 5900)])
#@43 Regexp for Latin-1 footnoting characters.
(defconst footnote-latin-regexp "¹²³ºª§¶" (#$ . 6647))
#@85 Latin-1 footnote style.
Use a range of Latin-1 non-ASCII characters for footnoting.
(defalias 'Footnote-latin #[(n) "\302\303	SG\"H!\207" [footnote-latin-regexp n string mod] 5 (#$ . 6757)])
#@213 Styles of footnote tags available.
By default only boring Arabic numbers, English letters and Roman Numerals
are available.
See footnote-han.el, footnote-greek.el and footnote-hebrew.el for more
exciting styles.
(defvar footnote-style-alist (byte-code "\306\307E\310\311	E\312\313\nE\314\315E\316\317\fE\320\321E\257\207" [footnote-numeric-regexp footnote-english-lower-regexp footnote-english-upper-regexp footnote-roman-lower-regexp footnote-roman-upper-regexp footnote-latin-regexp numeric Footnote-numeric english-lower Footnote-english-lower english-upper Footnote-english-upper roman-lower Footnote-roman-lower roman-upper Footnote-roman-upper latin Footnote-latin] 8) (#$ . 6957))
#@283 *Style used for footnoting.
numeric == 1, 2, 3, ...
english-lower == a, b, c, ...
english-upper == A, B, C, ...
roman-lower == i, ii, iii, iv, v, ...
roman-upper == I, II, III, IV, V, ...
latin == ¹ ² ³ º ª § ¶
See also variables `footnote-start-tag' and `footnote-end-tag'.
(custom-declare-variable 'footnote-style ''numeric '(#$ . -7656) :type (cons 'choice (mapcar (lambda (x) (list 'const (car x))) footnote-style-alist)) :group 'footnote)
#@66 Return non-nil if style is a valid style known to footnote-mode.
(defalias 'Footnote-style-p #[(style) "	\236\207" [style footnote-style-alist] 2 (#$ . 8113)])
#@122 Convert a binary index into a string to display as a footnote.
Conversion is done based upon the current selected style.
(defalias 'Footnote-index-to-string #[(index) "\304!\203\f 	\236\202 	@\211A@!)\207" [footnote-style footnote-style-alist alist index Footnote-style-p] 3 (#$ . 8281)])
#@54 Return the regexp of the index of the current style.
(defalias 'Footnote-current-regexp #[nil "\302	\236\206	 	@8\303P\207" [footnote-style footnote-style-alist 2 "*"] 3 (#$ . 8581)])
#@105 Redraw all footnotes.
You must call this or arrange to have this called after changing footnote
styles.
(defalias 'Footnote-refresh-footnotes #[(&optional index-regexp) "\204 \306 \212\307\310\211\211\f8\211\203S 	A\211\203L \n@b\210\311\310\312#\210\313\314!\315\316\314!\260!\203E \317\320T!Q\310\321#\210\nA\211\204 T\211\202 +\307\310\2118\211\205\212 	Ab\210\313\314!\315\316\314!\260!\203\203 \317\320T!Q\310\321#\210T\211\202Y +\207" [index-regexp alist locn i footnote-pointer-marker-alist footnote-start-tag Footnote-current-regexp 0 nil search-backward t looking-at regexp-quote "\\(" "\\)" replace-match Footnote-index-to-string "\\1" footnote-end-tag footnote-text-marker-alist] 8 (#$ . 8773)])
#@29 Give index of key in alist.
(defalias 'Footnote-assoc-index #[(key alist) "\305G\306	\204\" \nW\203\" \f8@=\203 T\202 	+\207" [alist rc max i key 0 nil] 3 (#$ . 9525)])
#@37 Select next defined footnote style.
(defalias 'Footnote-cycle-style #[nil "\305	\"	G\306\211T\211Y\203 \307\n	8@\310\311\f	88!+\207" [footnote-style footnote-style-alist idx max old Footnote-assoc-index nil 0 Footnote-refresh-footnotes 2] 5 (#$ . 9713) nil])
#@26 Select a specific style.
(defalias 'Footnote-set-style #[(&optional style) "\211\207" [style footnote-style] 2 (#$ . 9987) (list (intern (completing-read "Footnote Style: " obarray #'Footnote-style-p 'require-match)))])
#@38 Insert numbered footnote at (point).
(defalias 'Footnote-insert-numbered-footnote #[(arg &optional mousable) "`\306	\307\n!Q!\210`\310\f\311\nD#\210\205! \310\f\312D#*\207" [start footnote-start-tag arg footnote-end-tag end mousable insert-before-markers Footnote-index-to-string add-text-properties footnote-number t footnote-mouse-highlight] 5 (#$ . 10215)])
#@29 Renumber a single footnote.
(defalias 'Footnote-renumber #[(from to pointer-alist text-alist) "A\n\240\210\n\240\210	\203E 	@b\210\306\f\307\310#\210\311\312\313\314\f!\315 \314!$!\203> \316\317\224\317\225\320\nD#\210\321\312\313\f\322\n!$!\210	A\211\204 Ab\210\311\312\313\314\f!\315 \314!$!\205o \316\317\224\317\225\320\nD#\210\321\312\313\f\322\n!$\307\310#)\207" [pointer-alist posn-list to text-alist footnote-start-tag footnote-end-tag search-backward nil t looking-at format "%s%s%s" regexp-quote Footnote-current-regexp add-text-properties 0 footnote-number replace-match Footnote-index-to-string] 8 (#$ . 10590)])
#@57 Restrict text in buffer to show only text of footnotes.
(defalias 'Footnote-narrow-to-footnotes #[nil "db\210\303\304\305#\205 `\303\306\nP\304\305#\205 `	})\207" [footnote-signature-separator end footnote-section-tag-regexp re-search-backward nil t "^"] 4 (#$ . 11232) nil])
#@56 Move to end of buffer or prior to start of .signature.
(defalias 'Footnote-goto-char-point-max #[nil "db\210\301\302\303#\206\f `\207" [footnote-signature-separator re-search-backward nil t] 4 (#$ . 11518)])
#@68 Insert a marker pointing to footnote arg, at buffer location locn.
(defalias 'Footnote-insert-text-marker #[(arg locn) "\304 	\n\236?\205 \305\223\210	B\nB\306\n!\211)\207" [marker arg footnote-text-marker-alist locn make-marker nil Footnote-sort] 3 (#$ . 11733)])
#@68 Insert a marker pointing to footnote arg, at buffer location locn.
(defalias 'Footnote-insert-pointer-marker #[(arg locn) "\305 \306\211\n\306\223\210\f\236\211\203 	AB\211\202' 	CB\fB\307\f!\211*\207" [alist marker locn arg footnote-pointer-marker-alist make-marker nil Footnote-sort] 4 (#$ . 12011)])
#@45 Insert a footnote numbered arg, at (point).
(defalias 'Footnote-insert-footnote #[(arg) "\306 \210\307`\"\210\310\311\"\210\312 \210\313\314	P\315\311#\203R \214\n\203\" \316 \210\317S!\210\320=\204N \321\2036 \322\202@ \323\324\f!\325 \324!R\315\311#\203K \326 \203N db\210)\202h \327\330!\204[ \323c\210m\203b \323c\210\323\261\210`\310\315\"\210\331\")\207" [arg footnote-section-tag-regexp footnote-narrow-to-footnotes-when-editing footnote-spaced-footnotes footnote-start-tag footnote-end-tag push-mark Footnote-insert-pointer-marker Footnote-insert-numbered-footnote t Footnote-goto-char-point-max re-search-backward "^" nil Footnote-narrow-to-footnotes Footnote-goto-footnote 1 re-search-forward "\n\n" "\n" regexp-quote Footnote-current-regexp beginning-of-line looking-at "^$" Footnote-insert-text-marker footnote-section-tag old-point] 6 (#$ . 12330)])
(defalias 'Footnote-sort #[(list) "\301\302\"\207" [list sort #[(e1 e2) "@	@W\207" [e1 e2] 2]] 3])
#@129 Return the number of footnote if in footnote text.
Nil is returned if the cursor is not positioned over the text of
a footnote.
(defalias 'Footnote-text-under-cursor #[nil "`\212\214\306 \210eY\205 dX+\205U `	\211@A)Y\205U \307\310\211\211	8\211\203E \204E `\fAW\203> S	8@T\211\202& \204S \f\204S S	8@+\207" [old-point footnote-text-marker-alist x rc alist-txt i Footnote-narrow-to-footnotes 1 nil] 4 (#$ . 13316)])
#@112 Return the number of the footnote underneath the cursor.
Nil is returned if the cursor is not over a footnote.
(defalias 'Footnote-under-cursor #[nil "\300`\301\"\206	 \302 \207" [get-text-property footnote-number Footnote-text-under-cursor] 3 (#$ . 13757)])
(defalias 'Footnote-make-hole #[nil "\212\306G\307\211\211\211\fW\203P 88`\211A@)\310ZW\203I 	\2040 @\212\311\312\313@!\313@T!#\210\314@@T\n$\210)T\211\202 	.\207" [footnote-pointer-marker-alist rc alist-txt alist-ptr notes i 0 nil 3 message "Renumbering from %s to %s" Footnote-index-to-string Footnote-renumber footnote-text-marker-alist x] 6])
#@321 Add a numbered footnote.
The number the footnote receives is dependent upon the relative location
of any other previously existing footnotes.
If the variable `footnote-narrow-to-footnotes-when-editing' is set,
the buffer is narrowed to the footnote body.  The restriction is removed
by using `Footnote-back-to-message'.
(defalias 'Footnote-add-footnote #[(&optional arg) "\306	\203' `\307\n!\211@A)@W\203 \310 \202) \307	!\211@@)T\202) \311\312\313\"\210\314!\210\315\316\f\317\"!\210`\212\315\203F \320\202G \321!\210\203Q \322 \210)b*\207" [num footnote-text-marker-alist footnote-pointer-marker-alist x footnote-body-tag-spacing opoint nil last Footnote-make-hole 1 message "Adding footnote %d" Footnote-insert-footnote insert-before-markers make-string 32 "\n\n" "\n" Footnote-narrow-to-footnotes footnote-spaced-footnotes footnote-narrow-to-footnotes-when-editing] 5 (#$ . 14397) "*P"])
#@142 Delete a numbered footnote.
With no parameter, delete the footnote under (point).  With arg specified,
delete the footnote with that number.
(defalias 'Footnote-delete-footnote #[(&optional arg) "\204 \306 \205\263 	\203 \307\310\311\"!\205\263 \312\211\211\236\236\f\203/ \2044 \313\314\"\210\fA\211@\203[ \212\n@b\210`\315\312\316#\317\"\210+\nA\211\2028 \212Ab\210\317`\320\321\312\316#\"\210)\322\f\"\322\"\323 \210?\205\262 ?\205\262 \212\324 \325\326P\312\316#S\327y\210\330\331!\203\240 \332 \210\317dW\203\257 \202\260 d\"++\207" [arg footnote-prompt-before-deletion locn alist-txt alist-ptr footnote-pointer-marker-alist Footnote-under-cursor y-or-n-p format "Really delete footnote %d?" nil error "Can't delete footnote %d" search-backward t kill-region search-forward "\n\n" delq Footnote-renumber-footnotes Footnote-goto-char-point-max re-search-backward "^" -1 looking-at "\n" kill-line footnote-text-marker-alist end footnote-start-tag start footnote-section-tag-regexp] 7 (#$ . 15311) "*P"])
#@38 Renumber footnotes, starting from 1.
(defalias 'Footnote-renumber-footnotes #[(&optional arg) "\212\306G\307\211\211W\2050 \f8\f8\fT\n@=\204) \310\n@\fT\n	$\210\fT\211\202 -\207" [footnote-pointer-marker-alist alist-txt alist-ptr notes i footnote-text-marker-alist 0 nil Footnote-renumber] 6 (#$ . 16377) "*P"])
#@156 Jump to the text of a footnote.
With no parameter, jump to the text of the footnote under (point).  With arg
specified, jump to the text of that footnote.
(defalias 'Footnote-goto-footnote #[(&optional arg) "\304	\203 	\n\236\202 \305 \211\203 	\n\236\203\" Ab\2029 	\306=\2036 db\210\307\310P!\210\311y\2029 \312\313!)\207" [footnote arg footnote-text-marker-alist footnote-section-tag-regexp nil Footnote-under-cursor 0 re-search-backward "^" 1 error "I don't see a footnote here"] 3 (#$ . 16708) "P"])
#@229 Move cursor back to footnote referent.
If the cursor is not over the text of a footnote, point is not changed.
If the buffer was narrowed due to `footnote-narrow-to-footnotes-when-editing'
being set it is automatically widened.
(defalias 'Footnote-back-to-message #[(&optional arg) "\304 \211\205 	\203 ~\210\n\236\211A@)b)\207" [note footnote-narrow-to-footnotes-when-editing footnote-pointer-marker-alist x Footnote-text-under-cursor] 3 (#$ . 17230) "P"])
#@38 Keymap used for footnote minor mode.
(defvar footnote-mode-map nil (#$ . 17699))
(byte-code "\2041 \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\301\207" [footnote-mode-map make-sparse-keymap define-key "a" Footnote-add-footnote "b" Footnote-back-to-message "c" Footnote-cycle-style "d" Footnote-delete-footnote "g" Footnote-goto-footnote "r" Footnote-renumber-footnotes "s" Footnote-set-style] 4)
#@46 Keymap used for binding footnote minor mode.
(defvar footnote-minor-mode-map nil (#$ . 18191))
(byte-code "\204\n \304	\n#\210\304\207" [footnote-minor-mode-map global-map footnote-prefix footnote-mode-map define-key] 4)
#@389 Toggle footnote minor mode.
\<message-mode-map>
key		binding
---		-------

\[Footnote-renumber-footnotes]		Footnote-renumber-footnotes
\[Footnote-goto-footnote]		Footnote-goto-footnote
\[Footnote-delete-footnote]		Footnote-delete-footnote
\[Footnote-cycle-style]		Footnote-cycle-style
\[Footnote-back-to-message]		Footnote-back-to-message
\[Footnote-add-footnote]		Footnote-add-footnote

(defalias 'footnote-mode #[(&optional arg) "\204	 	?\202 \306!\307V\211\205K \310\311!\210\312\313!\203# \313 \210\202( \314\315 !\210\316\305!\203H \317\n!\320\317!\321R\322\f\"\204G \323\f\324DC\")\325\326!\207" [arg footnote-mode footnote-start-tag footnote-end-tag bullet-regexp filladapt-token-table prefix-numeric-value 0 make-local-variable footnote-style fboundp force-mode-line-update set-buffer-modified-p buffer-modified-p boundp regexp-quote "?[0-9a-zA-Z]+" "[ 	]" assoc append bullet run-hooks footnote-mode-hook] 5 (#$ . 18421) "*P"])
(byte-code "\301\236\204\n \302B\303\304!\207" [minor-mode-alist footnote-mode (footnote-mode footnote-mode-line-string) provide footnote] 2)
