;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\314\315\316\317\320\321\322\323&\207" [custom-declare-group mail-abbrev nil "Expand mail aliases as abbrevs, in certain mail headers." :group abbrev-mode custom-declare-variable mail-abbrevs-mode funcall function #[0 "\300\207" [nil] 1 ""] "Non-nil if Mail-Abbrevs mode is enabled.\nSee the `mail-abbrevs-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `mail-abbrevs-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean :version "20.3"] 12)#@878 Toggle abbrev expansion of mail aliases (Mail Abbrevs mode).

Mail Abbrevs mode is a global minor mode.  When enabled,
abbrev-like expansion is performed when editing certain mail
headers (those specified by `mail-abbrev-mode-regexp'), based on
the entries in your `mail-personal-alias-file'.

This is a global minor mode.  If called interactively, toggle the
`Mail-Abbrevs mode' mode.  If the prefix argument is positive,
enable the mode, and if it is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable
the mode if ARG is nil, omitted, or is a positive number.
Disable the mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `(default-value \='mail-abbrevs-mode)'.

The mode's hook is called both when the mode is enabled and when
it is disabled.

(fn &optional ARG)
(defalias 'mail-abbrevs-mode #[256 "\302 \303\301\304=\203 \305\301!?\202! \247\203  \306W\203  \307\202! \310\"\210\311\300!\2038 \312\301\"\305\301!\2038 \301B	\203B \313 \210\202E \314 \210\315\316\305\301!\203Q \317\202R \320\"\210\321\322!\203{ \323\301!\210\302 \203j \211\302 \232\203{ \324\325\326\305\301!\203w \327\202x \330\331$\210\210\332 \210\305\301!\207" [global-minor-modes mail-abbrevs-mode current-message set-default toggle default-value 1 nil t boundp delq mail-abbrevs-enable mail-abbrevs-disable run-hooks mail-abbrevs-mode-hook mail-abbrevs-mode-on-hook mail-abbrevs-mode-off-hook called-interactively-p any customize-mark-as-set message "%s %sabled%s" "Mail-Abbrevs mode" "en" "dis" "" force-mode-line-update] 7 (#$ . 771) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar mail-abbrevs-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205# \310\211%\210\314\315\316\317\320DD\321\322\323%\207" [mail-abbrevs-mode-map mail-abbrevs-mode-hook variable-documentation put "Hook run after entering or leaving `mail-abbrevs-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode mail-abbrevs-mode boundp custom-declare-variable mail-abbrevs-only funcall function #[0 "\300\207" [nil] 1 ""] "Non-nil means only mail abbrevs should expand automatically.\nOther abbrevs expand only when you explicitly use `expand-abbrev'." :type boolean] 6)#@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-abbrevs nil (#$ . 3286))#@74 The modification time of your mail alias file when it was last examined.
(defvar mail-abbrev-modtime nil (#$ . 3590))
(defalias 'mail-abbrevs-sync-aliases #[0 "\205  \302!\205  \303!\3048\262\305	\"?\205 \211\306 \262\207" [mail-personal-alias-file mail-abbrev-modtime file-exists-p file-attributes 5 time-equal-p build-mail-abbrevs] 4])#@45 Initialize use of the `mailabbrev' package.
(defalias 'mail-abbrevs-setup #[0 "\303!\204 \304	!\203 \305	!\3068\262\307 \210\310 \210\311\312\313\314B\315\316$\210\317\320!\207" [mail-abbrevs mail-personal-alias-file mail-abbrev-modtime vectorp file-exists-p file-attributes 5 build-mail-abbrevs mail-abbrevs-sync-aliases advice--add-function :around #[0 "\300\301!\207" [advice--buffer-local abbrev-expand-function] 2] #[257 "\300\301\"\207" [advice--set-buffer-local abbrev-expand-function] 4 "\n\n(fn GV--VAL)"] mail-abbrev-expand-wrapper nil abbrev-mode 1] 5 (#$ . 3942)])
(defalias 'mail-abbrevs-enable #[0 "\300\301\302\"\207" [add-hook mail-mode-hook mail-abbrevs-setup] 3])#@43 Turn off use of the `mailabbrev' package.
(defalias 'mail-abbrevs-disable #[0 "\300\301\302\"\210\303\304\303!\203 \305\202 \306!\207" [remove-hook mail-mode-hook mail-abbrevs-setup abbrev-mode default-value 1 -1] 3 (#$ . 4636)])#@174 Read mail aliases from personal mail alias file and set `mail-abbrevs'.
By default this is the file specified by `mail-personal-alias-file'.

(fn &optional FILE RECURSIVEP)
(defalias 'build-mail-abbrevs #[512 "\302\206 !\262\303	!\204 \304\305\301\304\"\210\306\307\"\210\310\311\312\"r\211q\210\313\314\"\216\315 \210\316!\203@ r\316!q\210ed{)c\210\202J \317!\203J \320!\210db\210h\321=\204V \322 \210eb\210\323\324\304\312#\203o `\325Z\304\210\211`|\266\202Y eb\210m\204\223 \304\210h\326U\203\215 \327\330!\210\327\331!\210\332c\210\202r \331u\210\202r eb\210\333\334\304\312#\203\325 \335 \210\336\337!\203\270 \304\210\340\341\331\224\331\225{!\312\"\210\202\226 \333\342!\210\331\224\331\225{\343\304w\210`\304\210\344`{\312#\266\202\226 \204\334 \345 \210	*\266\306\346\"\207" [mail-personal-alias-file mail-abbrevs expand-file-name vectorp nil define-abbrev-table message "Parsing %s..." generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] buffer-disable-undo get-file-buffer file-exists-p insert-file-contents 10 newline search-forward "# " 2 92 delete-char -1 1 32 re-search-forward "^\\(a\\(lias\\)?\\|g\\(roup\\)?\\|source\\)[ 	]+" beginning-of-line looking-at "source[ 	]+\\([^ 	\n]+\\)" build-mail-abbrevs substitute-in-file-name "[ 	]+\\([^ 	\n]+\\)" " 	" define-mail-abbrev mail-resolve-all-aliases "Parsing %s... done"] 9 (#$ . 4874)])
(byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable mail-alias-separator-string funcall function #[0 "\300\207" [", "] 1 ""] "String inserted between addresses in multi-address mail aliases.\nThis has to contain a comma, so \", \" is a reasonable value.  You might\nalso want something like \",\\n    \" to get each address on its own line." :type string] 6)
(defvar mail-abbrev-aliases-need-to-be-resolved t)#@389 Define NAME as a mail alias abbrev that translates to DEFINITION.
If DEFINITION contains multiple addresses, separate them with commas.

Optional argument FROM-MAILRC-FILE means that DEFINITION comes
from a mailrc file.  In that case, addresses are separated with
spaces and addresses with embedded spaces are surrounded by
double-quotes.

(fn NAME DEFINITION &optional FROM-MAILRC-FILE)
(defalias 'define-mail-abbrev #[770 "\304!\204	 \305 \210\306\307\"\203 \310\225\311O\262\306\312\"\203% \310\211\224O\262G\211\310V\205. \310\311\211\211\203\373 \203\227 H\313=\203W T\262\306\314#\205R \315\225\262\202` \306\316#\262O\262\205u \310\225U?\205u \310\225\262\306\317\"\203\217 \306\320\321\315\"\"\203\217 \322\317\323#\262B\262\2021 \306\324#\232\203\273 \321\315\"B\262\310\225U?\205\266 \310\225\262\2021 \306\325#\262O\262\205\331 \310\225U?\205\331 \310\225\262\306\317\"\203\363 \306\320\321\315\"\"\203\363 \322\317\323#\262B\262\2021 \326\327\237	#\262\266\330\227\262\331\332\310\330&)\207" [mail-abbrevs mail-alias-separator-string mail-abbrev-aliases-need-to-be-resolved abbrevs-changed vectorp build-mail-abbrevs string-match "\\`[ 	\n,]+" 0 nil "[ 	\n,]+\\'" 34 "[^\\]\\(\\([\\][\\]\\)*\\)\"[ 	,]*" 1 "[ 	,]+" "\\(.+?\\)[ 	]*\\(<.*>\\)" "[^- !#$%&'*+/0-9=?A-Za-z^_`{|}~]" match-string replace-regexp-in-string "\"\\1\" \\2" "[ 	,]*\\(\"\\(?:[^\"]\\|[^\\]\\(?:[\\][\\]\\)*\"\\)*\"[ 	]*<[-.!#$%&'*+/0-9=?A-Za-z^_`{|}~@]+>\\)[ 	,]*" "[ 	\n,]*,[ 	\n]*" mapconcat identity t define-abbrev mail-abbrev-expand-hook] 13 (#$ . 6752) "sDefine mail alias: \nsDefine %s as mail alias for: "])#@59 Resolve all forward references in the mail aliases table.
(defalias 'mail-resolve-all-aliases #[0 "\205 \302	!\203 \303\304	\"\210\305\211\207" [mail-abbrev-aliases-need-to-be-resolved mail-abbrevs vectorp mapatoms mail-resolve-all-aliases-1 nil] 3 (#$ . 8439)])#@29 

(fn SYM &optional SO-FAR)
(defalias 'mail-resolve-all-aliases-1 #[513 ">\203 \301\302\303\304B\305#\"\210\306!\205 J\211\203N \307\310\211\203; \311\312#OB\262\211\2056 \310\225\266\202\202 \303\313\314#\237#\262L\266\210J\207" [mail-alias-separator-string error "Mail alias loop detected: %s" mapconcat symbol-name " <- " boundp nil 0 string-match "[ 	\n]*,[, 	\n]*" make-closure #[257 "\303\304\227\n\"\301\300B\"\206 \211\207" [V0 V1 mail-abbrevs mail-resolve-all-aliases-1 intern-soft] 5 "\n\n(fn X)"]] 10 (#$ . 8711)])#@213 For use as the fourth arg to `define-abbrev'.
After expanding a mail-abbrev, if Auto Fill mode is on and we're past the
`fill-column', break the line at the previous comma, and indent the next line
with a space.
(defalias 'mail-abbrev-expand-hook #[0 "\205P \302\212i	Y\205M \303\304\305 \306#\203# i	SY\203# `\211\262\204\f n\2030 \211\203 \211b\203 \302\262\307u\210\310c\210\311\312!\203D `\313\225|\210\314c\210\302\210\202 )\262\207" [auto-fill-function fill-column nil search-backward "," line-beginning-position move 1 "\n" looking-at "[	 ]+" 0 " "] 5 (#$ . 9272)])
(byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable mail-abbrev-mode-regexp funcall function #[0 "\300\207" ["^\\(Resent-\\)?\\(To\\|From\\|Cc\\|Bcc\\|Reply-To\\):"] 1 ""] "Regexp matching mail headers in which mail abbrevs should be expanded.\nThis string will be handed to `looking-at' with point at the beginning\nof the current line; if it matches, abbrev mode will be turned on, otherwise\nit will be turned off.  (You don't need to worry about continuation lines.)\nThis should be set to match those mail fields in which you want abbreviations\nturned on." :type regexp] 6)#@266 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.  The value is set up, buffer-local, when first needed.
(defvar mail-abbrev-syntax-table nil (#$ . 10465))
(defalias 'mail-abbrev-make-syntax-table #[0 "\301\300!\210?\205I \302\303 !\304 \305H\304 \306H\307\310\311$\"\210\312\313\314#\210\312\315\314#\210\312\316\314#\210\312\317\314#\210\312\305\314#\210\312\320\314#\210\211\266\203\207" [mail-abbrev-syntax-table make-local-variable copy-syntax-table syntax-table standard-syntax-table 95 119 map-char-table make-closure #[514 "\211\204	 \302H\262\211\301\232\205 \303\302\300#\207" [V0 V1 V2 set-char-table-range] 6 "\n\n(fn KEY VALUE)"] modify-syntax-entry 64 "w" 37 33 46 45] 9])#@50 Whether point is in a mail-address header field.
(defalias 'mail-abbrev-in-expansion-header-p #[0 "\302\212m\204\n \303u\210\304\305\306\307#\210\310	!)\205\" `\214~\210\212\311 \210`*W)\207" [case-fold-search mail-abbrev-mode-regexp t 1 re-search-backward "^[^ 	]" nil move looking-at rfc822-goto-eoh] 4 (#$ . 11335)])#@15 

(fn EXPAND)
(defalias 'mail-abbrev-expand-wrapper #[257 "\203Z \306=\204Z \307 \204 \310 \203L \n\203 \311 \210\312 \210\250\2038 \f\313=\2038 z\314=\206J \315>\206J \316 p\317\320#\216\321!\210 )\266\202)\207\203W \f\322=\205Y \211 \207\211 \207" [mail-abbrevs local-abbrev-table mail-abbrev-aliases-need-to-be-resolved last-command-event this-command mail-abbrev-syntax-table t mail-abbrev-in-expansion-header-p window-minibuffer-p mail-resolve-all-aliases mail-abbrev-make-syntax-table self-insert-command 95 (64 46 37 33 95 45) syntax-table make-closure #[0 "r\300q\210\302\301!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table expand-abbrev mail-abbrevs-only] 7 (#$ . 11661)])#@71 Merge mail aliases from the given file with existing ones.

(fn FILE)
(defalias 'merge-mail-abbrevs #[257 "\300!\207" [build-mail-abbrevs] 3 (#$ . 12367) (byte-code "\303\304\305!\306\307\310\"	\304	\"\303$*\266\203C\207" [mail-personal-alias-file default-directory insert-default-directory t expand-file-name "~/" read-file-name format-prompt "Read additional aliases from file"] 9)])#@72 Rebuild all the mail aliases from the given file.

(fn &optional FILE)
(defalias 'rebuild-mail-abbrevs #[256 "\211\204 \262\302\303!\207" [buffer-file-name mail-abbrevs nil build-mail-abbrevs] 3 (#$ . 12766) (byte-code "\303\304\305!\306\307\310\"	\304	\"\303$*\266\203C\207" [mail-personal-alias-file default-directory insert-default-directory t expand-file-name "~/" read-file-name format-prompt "Read mail aliases from file"] 9)])#@59 Prompt for and insert a mail alias.

(fn &optional ALIAS)
(defalias 'mail-abbrev-insert-alias #[256 "\301!\204	 \302 \210\211\203 \303\"J\206 \304c\210\305 \207" [mail-abbrevs vectorp mail-abbrevs-setup intern-soft "" mail-abbrev-expand-hook] 4 (#$ . 13217) (byte-code "\301!\204	 \302 \210\303\304\305\306$C\207" [mail-abbrevs vectorp mail-abbrevs-setup completing-read "Expand alias: " nil t] 5)])#@46 Perform completion on alias preceding point.
(defalias 'mail-abbrev-complete-alias #[0 "\302 \210`\303 p\304\305#\216\306!\210\212\307\310!\210`*\266\202\311	#\207" [mail-abbrev-syntax-table mail-abbrevs mail-abbrev-make-syntax-table syntax-table make-closure #[0 "r\300q\210\302\301!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table backward-word-strictly 1 completion-in-region] 7 (#$ . 13629) nil])#@295 Expand a mail abbrev before point, then move vertically down ARG lines.
This only expands an abbrev (if one is present) if called with
point at the end of a line, or on whitespace before the end of a line.

In terms of line motion, this behaves like `next-line', which see.

(fn &optional ARG)
(defalias 'mail-abbrev-next-line #[256 "\301\302!\203	 \303 \210\304\211!\207" [this-command looking-at "[ 	]*\n" expand-abbrev next-line] 4 (#$ . 14044) "p"])#@292 Expand a mail abbrev before point, then move to the end of the buffer.
This only expands an abbrev (if one is present) if called with
point at the end of a line, or on whitespace before the end of a line.

In other respects, this behaves like `end-of-buffer', which see.

(fn &optional ARG)
(defalias 'mail-abbrev-end-of-buffer #[256 "\301\302!\203	 \303 \210\304\211!\207" [this-command looking-at "[ 	]*\n" expand-abbrev end-of-buffer] 4 (#$ . 14506) "P"])
(byte-code "\300\301\302\"\210\303\304!\207" [eval-after-load "sendmail" #[0 "\301\302\303#\210\301\304\305#\207" [mail-mode-map define-key "" mail-abbrev-insert-alias "	" mail-abbrev-complete-alias] 4] provide mailabbrev] 3)
