;ELC   
;;; compiled by amu@mit.edu on Fri May 16 19:37:17 1997
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/bbdb-1.50/mail-abbrevs.el
;;; emacs version 19.30.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`mail-abbrevs.el' was compiled for Emacs 19.29 or later"))


(require (quote sendmail))
#@62 Name of file with mail aliases.   If nil, ~/.mailrc is used.
(defvar mail-abbrev-mailrc-file nil (#$ . 522))
(defalias 'mail-abbrev-mailrc-file '(macro . #[nil "À‡" [(or mail-abbrev-mailrc-file (setq mail-abbrev-mailrc-file (or (getenv "MAILRC") "~/.mailrc")))] 1]))
#@262 Word-abbrev table of mail address aliases.
If this is nil, it means the aliases have not yet been initialized and
should be read from the .mailrc file.  (This is distinct from there being
no aliases, which is represented by this being a table with no entries.)
(defvar mail-aliases nil (#$ . 796))
(defalias 'mail-aliases-setup #[nil "À	!„ Â† ÄÅ!† Æ‰!ƒ Ç ˆÈÉ!ˆ	<ƒ4 	@Ê=„4 Ë	B‚8 Ë	D	ÌÍ!‡" [vectorp mail-aliases file-exists-p mail-abbrev-mailrc-file getenv "MAILRC" "~/.mailrc" build-mail-aliases make-local-variable pre-abbrev-expand-hook lambda sendmail-pre-abbrev-expand-hook abbrev-mode 1] 3])
#@54 Read mail aliases from .mailrc and set mail-aliases.
(defalias 'build-mail-aliases #[(&optional file recursivep) "À	† \n† ÃÄ!† Å‰!Æ!„ È ÉÊ	\"ˆËp\fÎŽÏÐ!Ñ!ˆqˆÒ	!ƒO ŠÒ	!qˆed{)cˆ‚Y Ó	!ƒY Ô	!ˆdbˆhÕ=„e Ö ˆebˆ×ØËÙ#ƒ� `ÚZËˆ`|ˆ)‚h ebˆm„¥ ËˆhÜUƒŸ ÝÞ!ˆÝß!ˆàcˆ‚„ ßuˆ‚„ ebˆáâËÙ#ƒí ãyˆäå!ƒÊ Ëˆæçß”ß•{!Ù\"ˆ‚¨ áè!ˆß”ß•{)êËwˆ`+Ëˆì)+`{Ù#ˆ*‚¨ -„õ î ˆ+Éï	\"‡" [expand-file-name file mail-abbrev-mailrc-file getenv "MAILRC" "~/.mailrc" vectorp mail-aliases make-abbrev-table message "Parsing %s..." nil obuf buffer ((byte-code "ƒ Á!ˆ\nq‡" [buffer kill-buffer obuf] 2)) generate-new-buffer "mailrc" buffer-disable-undo get-file-buffer file-exists-p insert-file-contents 10 newline search-forward "# " t 2 p 92 delete-char -1 1 32 re-search-forward "^\\(a\\(lias\\)?\\|g\\(roup\\)?\\|source\\)[ 	]+" 0 looking-at "source[ 	]+\\([^ 	\n]+\\)" build-mail-aliases substitute-in-file-name "[ 	]+\\([^ 	\n]+\\)" name " 	" start define-mail-alias recursivep mail-resolve-all-aliases "Parsing %s... done"] 4 (#$ . 1409)])
#@213 *A string inserted between addresses in multi-address mail aliases.
This has to contain a comma, so ", " is a reasonable value.  You might 
also want something like ",\n    " to get each address on its own line.
(defvar mail-alias-separator-string ", " (#$ . -2442))
(byte-code "ÀÁ!„ ÂÁBÀ‡" [boundp mail-abbrev-aliases-need-to-be-resolved t current-load-list] 2)
#@130 Define NAME as a mail-alias that translates to DEFINITION.
If DEFINITION contains multiple addresses, separate them with commas.
(defalias 'define-mail-alias #[(name definition &optional from-mailrc-file) "À	!„ Â Ã\f† ÅÆ!† Ç‰!ƒ È ˆÉÊ\"ƒ. Ì•ÍOÉÎ\"ƒ> Ì‰”OÍÌGÍƒÃ ƒ˜ HÔ=ƒq TÉÕ#‚¡ HÖ=ƒŒ TÉ×#‚¡ ÉØ#‚¡ ÉÙ#OB…½ Ì•U?…½ Ì•‰„Q ÚÛŸ#,Ý—  á	â$)‡" [vectorp mail-aliases make-abbrev-table file-exists-p mail-abbrev-mailrc-file getenv "MAILRC" "~/.mailrc" build-mail-aliases string-match "\\`[ 	\n,]+" definition 0 nil "[ 	\n,]+\\'" end L start result from-mailrc-file 34 "\"[ 	,]*" 39 "'[ 	,]*" "[ 	,]+" "[ 	\n,]*,[ 	\n,]*" mapconcat identity mail-alias-separator-string t mail-abbrev-aliases-need-to-be-resolved name abbrevs-changed define-abbrev mail-abbrev-expand-hook] 6 (#$ . 2816) "sDefine mail alias: \nsDefine %s as mail alias for: "])
#@59 Resolve all forward references in the mail aliases table.
(defalias 'mail-resolve-all-aliases #[nil "… Á\n!ƒ ÃÄ\n\"ˆÅ‰‡" [mail-abbrev-aliases-need-to-be-resolved vectorp mail-aliases mapatoms mail-resolve-all-aliases-1 nil] 3 (#$ . 3756)])
(defalias 'mail-resolve-all-aliases-1 #[(sym &optional so-far) "	>ƒ ÂÃÄÅ	BÆ#\"ˆÇ!… J‰ƒ\\ ÉÊ\fƒL ÍÎ#O\fB\f…F Ê•)‚% ÄÐ\fŸ#Lˆ*)J‡" [sym so-far error "mail alias loop detected: %s" mapconcat symbol-name " <- " boundp definition nil 0 start result string-match "[ 	\n]*,[, 	\n]*" end #[(x) "ÀÁ\n—\"\fB\"† \n‡" [mail-resolve-all-aliases-1 intern-soft x mail-aliases sym so-far] 4] mail-alias-separator-string] 7])
#@191 For use as the fourth arg to define-abbrev.
After expanding a mail-abbrev, if fill-mode is on and we're past the
fill-column, break the line at the previous comma, and indent the next
line.
(defalias 'mail-abbrev-expand-hook #[nil "Š`À‰‰Åyˆ`\fbˆ…T iY…T ÈÉÊ#…T `ËuˆÌcˆÍ ˆ`Î ˆ\f`{ÀˆiVƒN 	†H ÏÑ ˆ)\nbˆ‚ -‡" [nil fp comma bol p 0 auto-fill-function fill-column search-backward "," t 1 "\n" delete-horizontal-space indent-relative "	" fill-prefix do-auto-fill] 4 (#$ . 4458)])
#@394 *Regexp to select mail-headers in which mail-aliases should be expanded.
This string it will be handed to `looking-at' with the point at the beginning
of the current line; if it matches, abbrev mode will be turned on, otherwise
it will be turned off.  (You don't need to worry about continuation lines.)
This should be set to match those mail fields in which you want abbreviations
turned on.
(defvar mail-abbrev-mode-regexp "^\\(Resent-\\)?\\(To\\|From\\|CC\\|BCC\\):" (#$ . -4956))
#@66 The syntax table which is used in send-mail mode message bodies.
(defvar mail-mode-syntax-table (copy-syntax-table text-mode-syntax-table) (#$ . 5446))
#@169 The syntax table used in send-mail mode when in a mail-address header.
mail-mode-syntax-table is used when the cursor is in the message body or in
non-address headers.
(defvar mail-mode-header-syntax-table (byte-code "À	!ÃÄÅ\n#ˆÃÆÅ\n#ˆÃÇÅ\n#ˆÃÈÅ\n#ˆÃÉÅ\n#ˆÃÊÅ\n#ˆÃËÌ\n#ˆÃÍÎ\n#ˆ\n)‡" [copy-syntax-table text-mode-syntax-table tab modify-syntax-entry 64 "_" 37 33 46 95 45 60 "(>" 62 ")<"] 4) (#$ . 5605))
#@211 The syntax-table used for abbrev-expansion purposes; this is not actually
made the current syntax table of the buffer, but simply controls the set of
characters which may be a part of the name of a mail-alias.
(defvar mail-abbrev-syntax-table (byte-code "À	!‰GSÄ ÅHÄ ÇHÉYƒ0 \nHUƒ) \nIˆS‰‚ \n,‡" [copy-syntax-table mail-mode-header-syntax-table tab i standard-syntax-table 95 _ 119 w 0] 4) (#$ . 6017))
#@50 Whether point is in a mail-address header field.
(defalias 'mail-abbrev-in-expansion-header-p #[nil "ÀŠÂyˆÃÄ!ƒ `eU„ Åyˆ‚ Ã!)…2 `ŠebˆÇÈ	ÈQÊÂ#ˆ`)W)‡" [t case-fold-search 0 looking-at "^[ 	]" -1 mail-abbrev-mode-regexp search-forward "\n" mail-header-separator nil] 5 (#$ . 6441)])
(byte-code "À	BÀ‡" [mail-mode-abbrev-table current-load-list] 2)
(defalias 'sendmail-pre-abbrev-expand-hook #[nil "ƒ Á ˆ\n…S \nÃ=?…S Ä „& ÅÆ!… È	!‡\nÈ\n!ˆƒ; zÌ=„L ÍÈ!ˆÐ ˆÈ\n!ˆ)`p‰‡" [mail-abbrev-aliases-need-to-be-resolved mail-resolve-all-aliases mail-aliases t mail-abbrev-in-expansion-header-p boundp mail-mode-abbrev-table local-abbrev-table set-syntax-table mail-mode-syntax-table mail-mode-header-syntax-table last-command-char 95 nil pre-abbrev-expand-hook mail-abbrev-syntax-table expand-abbrev abbrev-start-location abbrev-start-location-buffer] 2])
(defalias 'mail-abbrev-minibuffer-setup-hook #[nil "À	!„ Â† ÄÅ!† Æ‰!ƒ Ç ˆÈÉ!ˆÊ	ËÌ!‡" [vectorp mail-aliases file-exists-p mail-abbrev-mailrc-file getenv "MAILRC" "~/.mailrc" build-mail-aliases make-local-variable pre-abbrev-expand-hook #[nil "Â!ˆ\fƒ \fzÅ=„! ÆÂ!ˆÉ ˆÂ!ˆ)`\np‰‡" [mail-aliases local-abbrev-table set-syntax-table mail-mode-header-syntax-table last-command-char 95 nil pre-abbrev-expand-hook mail-abbrev-syntax-table expand-abbrev abbrev-start-location abbrev-start-location-buffer] 2] abbrev-mode 1] 3])
#@60 Merge mail aliases from the given file with existing ones.
(defalias 'merge-mail-aliases #[(file) "À	!‡" [build-mail-aliases file] 2 (#$ . 7853) (list (let ((insert-default-directory t) (default-directory (expand-file-name "~/")) (def (mail-abbrev-mailrc-file))) (read-file-name (format "Read additional aliases from file: (default %s) " def) default-directory (expand-file-name def default-directory) t)))])
#@51 Rebuild all the mail aliases from the given file.
(defalias 'rebuild-mail-aliases #[(file) "ÀÂ!‡" [nil mail-aliases build-mail-aliases file] 2 (#$ . 8268) (list (let ((insert-default-directory t) (default-directory (expand-file-name "~/")) (def (mail-abbrev-mailrc-file))) (read-file-name (format "Read mail aliases from file: (default %s) " def) default-directory (expand-file-name def default-directory) t)))])
#@37 Prompt for and insert a mail alias.
(defalias 'mail-interactive-insert-alias #[(&optional alias) "À	!„	 Â ˆƒ Ä	\"J† Åc‡" [vectorp mail-aliases mail-aliases-setup alias intern-soft ""] 3 (#$ . 8689) (byte-code "À	!„	 Â ˆÃÄ	ÅÆ$C‡" [vectorp mail-aliases mail-aliases-setup completing-read "Expand alias: " nil t] 5)])
#@92 Just like `next-line' (\<global-map>\[next-line]) but expands abbrevs when at end of line.
(defalias 'abbrev-hacking-next-line #[nil "ÀÁ!ƒ	 Â ˆÃÅÃ!‡" [looking-at "[ 	]*\n" expand-abbrev next-line this-command call-interactively] 2 (#$ . 9014) nil])
#@100 Just like `end-of-buffer' (\<global-map>\[end-of-buffer]) but expands abbrevs when at end of line.
(defalias 'abbrev-hacking-end-of-buffer #[nil "ÀÁ!ƒ	 Â ˆÃÅÃ!‡" [looking-at "[ 	]*\n" expand-abbrev end-of-buffer this-command call-interactively] 2 (#$ . 9271) nil])
(byte-code "À	ÂÃ#ˆÀ	ÄÅ#ˆÀ	ÆÇ#ˆÈÉ!‡" [define-key mail-mode-map "" mail-interactive-insert-alias "" abbrev-hacking-next-line "¾" abbrev-hacking-end-of-buffer provide mail-abbrevs] 4)
#@74 Just like self-insert-command, but runs sendmail-pre-abbrev-expand-hook.
(defalias 'sendmail-v18-self-insert-command #[(arg) "ƒ zÁ=„ Â ˆÃÅ ?… Ç!)‡" [last-command-char 119 sendmail-pre-abbrev-expand-hook nil abbrev-start-location mail-abbrev-in-expansion-header-p abbrev-mode self-insert-command arg] 2 (#$ . 9727) "p"])
(defalias 'abbrev-hacking-next-line-v18 #[(arg) "ÀÁ!ƒ	 Â ˆÃÃ!‡" [looking-at "[ 	]*\n" sendmail-pre-abbrev-expand-hook next-line this-command arg] 2])
(defalias 'abbrev-hacking-end-of-buffer-v18 #[(arg) "ÀÁ!ƒ	 Â ˆÃÃ!‡" [looking-at "[ 	]*\n" sendmail-pre-abbrev-expand-hook end-of-buffer this-command arg] 2])
(byte-code "ÀÁ!„ ÂÁBÂ‡" [boundp mail-abbrevs-v18-map-munged nil current-load-list] 2)
(defalias 'mail-abbrevs-v18-munge-map #[nil "À ÁÂÆWƒ* žA† HÈ=ƒ# ÉB\fBT‰‚ Ê!\fŸ¤+Ë‰\f‡" [current-global-map nil 0 i new-bindings global-map 128 mail-mode-map self-insert-command sendmail-v18-self-insert-command copy-keymap t mail-abbrevs-v18-map-munged] 4])
#@52 Put this on `mail-setup-hook' to use mail-abbrevs.
(defalias 'mail-aliases-setup-v18 #[nil "Á=…B \nƒ Ã \n=„ ÄÅ!ˆÆ!„3 È	†, ÊË!†) Ì‰	!ƒ3 Í ˆ„; Ï ˆÐ\n!ˆÑÒ!‡" [major-mode mail-mode mail-mode-map current-local-map error "shut 'er down clancy, she's suckin' mud" vectorp mail-aliases file-exists-p mail-abbrev-mailrc-file getenv "MAILRC" "~/.mailrc" build-mail-aliases mail-abbrevs-v18-map-munged mail-abbrevs-v18-munge-map use-local-map abbrev-mode 1] 3 (#$ . 10744)])
(byte-code "ÀÁ\n\"„ ÃÄ!ƒ} \fƒ} ÅÆ!„ ÆÇMˆÅÈ!„& ÈÉKMˆÉÊMˆËÌMˆÍÎMˆÏÐMˆÅÑ!„A ÑÒKMˆÒÓMˆÅÔ!ƒp ÔK¢Õ=ƒ] ÖÔKA@×\"‚^ ×ƒp ÅØ!„l ØÙKMˆÙÚMˆÜ=ƒ� Ý ˆ‚� ÞË!ˆÀ‡" [string-match "^18\\." emacs-version boundp epoch::version fboundp buffer-disable-undo buffer-flush-undo mail-abbrev-expand-hook-v19 mail-abbrev-expand-hook #[nil "Â )‡" [auto-fill-hook auto-fill-function mail-abbrev-expand-hook-v19] 1] expand-mail-aliases #[(&rest args) "À‡" [nil] 1 "Obsoleted by mail-abbrevs.  Does nothing."] abbrev-hacking-next-line #[(p) "À	!‡" [abbrev-hacking-next-line-v18 p] 2 nil "p"] abbrev-hacking-end-of-buffer #[(p) "À	!‡" [abbrev-hacking-end-of-buffer-v18 p] 2 nil "P"] mail-setup-v18 mail-setup #[(&rest args) "À ˆÁÂ\"‡" [mail-aliases-setup-v18 apply mail-setup-v18 args] 3] vm-mail autoload load t vm-mail-internal-v18 vm-mail-internal #[(&rest args) "ÀÁ\n\"ˆÃ ‡" [apply vm-mail-internal-v18 args mail-aliases-setup-v18] 3] major-mode mail-mode mail-aliases-setup-v18 fmakunbound] 3)
