;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\301%\210\311\305\312\313#\210\314\315\316\317\320DD\321\322\323%\207" [require ebdb-mua vm-autoloads vm custom-declare-group ebdb-mua-vm nil "VM-specific EBDB customizations" :group put custom-loads (ebdb-vm) custom-declare-variable ebdb-vm-auto-update-p funcall function #[0 "\207" [ebdb-mua-reader-update-p] 1] "VM-specific value of `ebdb-mua-auto-update-p'." :type (choice (const :tag "do nothing" nil) (const :tag "search for existing records" existing) (const :tag "update existing records" update) (const :tag "query for update or record creation" query) (const :tag "update or create automatically" create) (function :tag "User-defined function"))] 6) #@15 (fn HEADER) (defalias 'ebdb/vm-header #[257 "r\302 \210\303 \210\304 \210\305\306 @\307P\"*\207" [enable-local-variables vm-message-pointer vm-select-folder-buffer vm-check-for-killed-summary vm-error-if-folder-empty t vm-get-header-contents ":"] 5 (#$ . 1140)]) #@106 For VM message M return the EBDB name of the sender. Respect `vm-summary-uninteresting-senders'. (fn M) (defalias 'vm-summary-function-B #[257 "\203,\303\304\305!\")\203 \n\306\307!!\206\310\311!!P\207\306\305!!\206+\312!\207\306\305!!\2069\310\312!!\207" [vm-summary-uninteresting-senders case-fold-search vm-summary-uninteresting-senders-arrow t string-match vm-su-from ebdb/vm-alternate-full-name vm-su-to vm-decode-mime-encoded-words-in-string vm-su-to-names vm-su-full-name] 5 (#$ . 1414)]) #@16 (fn ADDRESS) (defalias 'ebdb/vm-alternate-full-name #[257 "\211\2056\301!\302@A@\"@\211\2054\303\304!\305\"\2064\303\306\"\307!>\204/\310\311\312D\"\210\211\313H\262\266\202\207" [cl-struct-ebdb-record-cache-tags ebdb-extract-address-components ebdb-message-search slot-value ebdb-record-one-mail aka cache type-of signal wrong-type-argument ebdb-record-cache 1] 8 (#$ . 1933)]) (byte-code "\300\301\302\303\304DD\305\306\307%\210\300\310\302\303\311DD\312\313\314\306\315&\210\300\316\302\303\317DD\320\313\314\306\321&\210\300\322\302\303\323DD\324\313\314\306\321&\210\300\325\302\303\326DD\327\313\314\306\330&\207" [custom-declare-variable ebdb-vm-window-size funcall function #[0 "\207" [ebdb-default-window-size] 1] "Size of the EBDB buffer when popping up in VM.\nSize should be specified as a float between 0 and 1. Defaults to\nthe value of `ebdb-default-window-size'." :type float ebdb/vm-auto-folder-headers #[0 "\300\207" [("From:" "To:" "CC:")] 1] "The headers used by `ebdb/vm-auto-folder'.\nThe order in this list is the order how matching will be performed." :group ebdb-mua-vm (repeat (string :tag "header name")) ebdb/vm-auto-folder-field #[0 "\300\207" [#1="vm-folder"] 1 #1#] "The xfield which `ebdb/vm-auto-folder' searches for." symbol ebdb/vm-virtual-folder-field #[0 "\300\207" [#2="vm-virtual"] 1 #2#] "The xfield which `ebdb/vm-virtual-folder' searches for." ebdb/vm-virtual-real-folders #[0 "\300\207" [nil] 1] "Real folders used for defining virtual folders.\nIf nil use `vm-primary-inbox'." (choice (const :tag "Use vm-primary-inbox" nil) (repeat (string :tag "Real folder")))] 8) #@530 Add entries to `vm-auto-folder-alist' for the records in EBDB. For each record that has a `vm-folder' field, add an element (MAIL-REGEXP . FOLDER-NAME) to `vm-auto-folder-alist'. The element gets added to the sublists of `vm-auto-folder-alist' specified in `ebdb/vm-auto-folder-headers'. MAIL-REGEXP matches the mail addresses of the EBDB record. The value of the `vm-folder' field becomes FOLDER-NAME. The `vm-folder' field is defined via `ebdb/vm-auto-folder-field'. Add this function to `ebdb-before-save-hook' and your .vm. (defalias 'ebdb/vm-auto-folder #[0 "\306\307\310\311\307\211\204 \312 \210\203(\313\314\315\316\317\320\"\321\"\322\323% \"\266\202\202+ \266\202\"\"\307\211\211\n\211\205\227\211@\324 \"\211\262\204L\211C B\324 \"\262\211\203\217\211@\325\f\"@\262\326\327!!\262\330\230\204\210\324\"\204\210\331!\204\332\333 \"!\262BC\244\210A\266\202\202M\210A\266\202\2021\262\207" [ebdb-db-list ebdb-record-tracker ebdb/vm-auto-folder-headers vm-auto-folder-alist ebdb/vm-auto-folder-field vm-folder-directory delq nil mapcar #[257 "\301\"\205\211\207" [ebdb/vm-auto-folder-field ebdb-record-field] 4 "\n\n(fn R)"] ebdb-load seq-filter make-byte-code 257 "\301\203 \302\300\"\207\303\300\"\207" vconcat vector [object-of-class-p same-class-p] 4 "\n\n(fn R)" assoc ebdb-record-field regexp-opt ebdb-record-mail "" file-name-absolute-p abbreviate-file-name expand-file-name] 14 (#$ . 3572) nil]) #@700 Create `vm-virtual-folder-alist' according to the records in EBDB. For each record that has a `vm-virtual' field, add or modify the corresponding VIRTUAL-FOLDER-NAME element of `vm-virtual-folder-alist'. (VIRTUAL-FOLDER-NAME ((FOLDER-NAME ...) (author-or-recipient MAIL-REGEXP))) VIRTUAL-FOLDER-NAME is the first element of the `vm-virtual' field. FOLDER-NAME ... are either the remaining elements of the `vm-virtual' field, or `ebdb/vm-virtual-real-folders' or `vm-primary-inbox'. MAIL-REGEXP matches the mail addresses of the EBDB record. The `vm-virtual' field is defined via `ebdb/vm-virtual-folder-field'. Add this function to `ebdb-before-save-hook' and your .vm. (defalias 'ebdb/vm-virtual-folder #[0 "\306\211\211\211\211\211\211\204\307 \210\203)\310\311\312\313\314\315\"\316\"\317\320% \"\266\202\202, \266\202\211\205\277\211@\321\n\"\211\262\203\270\322\323!!\262\324\230\204\270@\262\325\326A\206Z \206Z\fC\"\262\327 \"\206kC B\211@\262\327A\"\206CAB\241@\262\327\330A\"\206\221\330CAB\241@\262A\204\241C\241\210\202\270\331\332!A@\"\204\270\211A@\333QC\241\210A\266\202\202,\262\207" [ebdb-db-list ebdb-record-tracker ebdb/vm-virtual-folder-field ebdb/vm-virtual-real-folders vm-primary-inbox vm-virtual-folder-alist nil ebdb-load seq-filter make-byte-code 257 "\301\203 \302\300\"\207\303\300\"\207" vconcat vector [object-of-class-p same-class-p] 4 "\n\n(fn R)" ebdb-record-field regexp-opt ebdb-record-mail "" mapcar #[257 "\301!\203\207\302\303\"!\207" [vm-folder-directory file-name-absolute-p abbreviate-file-name expand-file-name] 5 "\n\n(fn F)"] assoc author-or-recipient string-match regexp-quote "\\|"] 15 (#$ . 5042) nil]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\315&\207" [custom-declare-variable ebdb/vm-auto-add-label-list funcall function #[0 "\300\207" [nil] 1] "List used by `ebdb/vm-auto-add-label' to automatically label VM messages.\nIts elements may be strings used both as the field value to check for\nand as the label to apply to the message.\nIf an element is a cons pair (VALUE . LABEL), VALUE is the field value\nto search for and LABEL is the label to apply." :group ebdb-mua-vm :type list ebdb/vm-auto-add-label-field #[0 "\300\207" [ebdb-mail-alias-field] 1] "Fields used by `ebdb/vm-auto-add-label' to automatically label messages.\nThis is either a single EBDB field or a list of fields that\n`ebdb/vm-auto-add-label' uses to check for labels to apply to a message.\nDefaults to `ebdb-mail-alias-field' which defaults to `mail-alias'." (choice symbol list)] 8) #@846 Automatically add labels to VM messages. Add this to `ebdb-notice-record-hook' to check the messages noticed by EBDB. If the value of `ebdb/vm-auto-add-label-field' in the sender's EBDB record matches a value in `ebdb/vm-auto-add-label-list' then a VM label will be added to the message. Such VM labels can be used, e.g., to mark messages via `vm-mark-matching-messages' or to define virtual folders via `vm-create-virtual-folder' Typically `ebdb/vm-auto-add-label-field' and `ebdb/vm-auto-add-label-list' refer to mail aliases FOO used with multiple records. This adds a label FOO to all incoming messages matching FOO. Then VM can create a virtual folder for these messages. The concept of combining multiple recipients of an outgoing message in one mail alias thus gets extended to incoming messages from different senders. (fn RECORD) (defalias 'ebdb/vm-auto-add-label #[257 "\303=\205N\304\305\306\307\310\311\312!\313\"\314\315% <\203 \202+ ;\203( C\202+\316\317!\"!\320\321\305\306\307\322\311\312!\323\"\324\325%\n\"\"\211\205L\326\327\330\331#\332\"\266\202\207" [major-mode ebdb/vm-auto-add-label-field ebdb/vm-auto-add-label-list vm-mode append mapcar make-byte-code 257 "\301\300\"\207" vconcat vector [ebdb-record-field] 4 "\n\n(fn FIELD)" error "Bad value for ebdb/vm-auto-add-label-field" delq nil "\211;\203\f\211\300\235\205*\207\211:\203'\211@;\203'\211A;\203'\211@\300\235\205*\211A\207\301\302!\207" [error "Malformed ebdb/vm-auto-add-label-list"] 3 "\n\n(fn L)" vm-add-message-labels mapconcat identity " " 1] 11 (#$ . 7714)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\305\302\310\302\311%\210\300\305\302\312\302\313%\210\300\305\302\314\302\315%\210\300\316\302\317\302\320%\210\300\316\302\321\302\322%\210\300\316\302\323\302\324%\210\300\316\302\325\302\326%\210\300\327\302\330\302\331%\210\300\327\302\332\302\333%\210\300\327\302\334\302\335%\210\300\327\302\336\302\337%\207" [cl-generic-define-method ebdb-popup-window nil (&context (major-mode vm-mode)) #[0 "\301\211D\207" [ebdb-vm-window-size [WHAT\?\?]] 3] ebdb-make-buffer-name (&context (major-mode vm-mode)) #[0 "\301\302\"\207" [ebdb-buffer-name format "*%s-VM*"] 3 "Produce a EBDB buffer name associated with VM mode."] (&context (major-mode vm-presentation-mode)) #[0 "\301\302\"\207" [ebdb-buffer-name format "*%s-VM*"] 3 "Produce a EBDB buffer name associated with VM mode."] (&context (major-mode vm-summary-mode)) #[0 "\301\302\"\207" [ebdb-buffer-name format "*%s-VM*"] 3 "Produce a EBDB buffer name associated with VM mode."] (&context (major-mode vm-virtual-mode)) #[0 "\301\302\"\207" [ebdb-buffer-name format "*%s-VM*"] 3 "Produce a EBDB buffer name associated with VM mode."] ebdb-mua-message-header ((header string) &context (major-mode vm-mode)) #[257 "\300!\207" [ebdb/vm-header] 3 "\n\n(fn HEADER)"] ((header string) &context (major-mode vm-virtual-mode)) #[257 "\300!\207" [ebdb/vm-header] 3 "\n\n(fn HEADER)"] ((header string) &context (major-mode vm-summary-mode)) #[257 "\300!\207" [ebdb/vm-header] 3 "\n\n(fn HEADER)"] ((header string) &context (major-mode vm-presentation-mode)) #[257 "\300!\207" [ebdb/vm-header] 3 "\n\n(fn HEADER)"] ebdb-mua-prepare-article (&context (major-mode vm-mode)) #[0 "\300 \207" [vm-follow-summary-cursor] 1] (&context (major-mode vm-virtual-mode)) #[0 "\300 \207" [vm-follow-summary-cursor] 1] (&context (major-mode vm-summary-mode)) #[0 "\300 \207" [vm-follow-summary-cursor] 1] (&context (major-mode vm-presentation-mode)) #[0 "\300 \207" [vm-follow-summary-cursor] 1]] 6) #@20 Hook EBDB into VM. (defalias 'ebdb-insinuate-vm #[0 "\306\307 #\210\306\310\311#\210\n\203\312\303!\203\306 \313\302#\210\f\203(\314\315\fP!\316M\210 \2053\314\315 P!\317M\207" [vm-mode-map ebdb-mua-keymap ebdb-complete-mail vm-mail-mode-map ebdb-mua-summary-unify-format-letter ebdb-mua-summary-mark-format-letter define-key ";" "/" ebdb boundp "\211" intern "vm-summary-function-" #[257 "\300\301\302!!\303!\230\203\211\202\304\305#\266\202!\207" [ebdb-mua-summary-unify vm-decode-mime-encoded-words-in-string vm-su-interesting-full-name vm-su-from format "\"%s\" <%s>"] 8 "\n\n(fn M)"] #[257 "\300\301!!\207" [ebdb-mua-summary-mark vm-su-from] 4 "\n\n(fn M)"]] 4 (#$ . 11304)]) (defalias 'ebdb-vm-auto-update #[0 "\301!\207" [ebdb-vm-auto-update-p ebdb-mua-auto-update] 2]) (byte-code "\300\301\302\"\210\300\303\304\"\210\305\306!\207" [add-hook vm-mode-hook ebdb-insinuate-vm vm-select-message-hook ebdb-vm-auto-update provide ebdb-vm] 3)