;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\300\304!\210\305\306\307\"\210\310\311\312\313\314\302%\210\315\311\316\317#\210\320\321\322\323\324DD\325\326\327%\210\320\330\322\323\331DD\332\326\333%\210\320\334\322\323\335DD\336\326\337%\210\320\340\322\323\341DD\342\326\323%\210\310\343\312\344\314\311%\210\315\343\316\345#\210\310\346\312\347\314\311%\210\315\346\316\350#\210\351\352\353\354!\"\210\351\355\356\354!\"\210\351\357\355\"\210\360\357\361\362#\210\363\354\364\355#\365\354\366\367\370$\207" [require ebdb-com ebdb-mua gnus-sum gnus-msg autoload message-make-domain "message" custom-declare-group ebdb-mua-gnus nil "Gnus-specific EBDB customizations." :group put custom-loads (ebdb-gnus) custom-declare-variable ebdb-gnus-auto-update-p funcall function #[0 "\207" [ebdb-mua-reader-update-p] 1] "Gnus-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")) ebdb-gnus-window-size #[0 "\207" [ebdb-default-window-size] 1] "Size of the EBDB buffer when popping up in Gnus.\nSize should be specified as a float between 0 and 1. Defaults to\nthe value of `ebdb-default-window-size'." float ebdb-gnus-window-configuration #[0 "\300\207" [nil] 1] "Symbol that names EBDB's Gnus window config.\nThis option is nil by default, meaning Gnus will pop up the\n*EBDB-Gnus* window next to the *Article* buffer, with a\nwidth/height of `ebdb-gnus-window-size'.\n\nIf more control is required, set this to a symbol name. This\nsymbol will be entered into the `gnus-window-to-buffer' alist,\nand can be used as an entry in more complex Gnus buffer/window\nconfigurations.\n\nNote that this should be a different symbol from that used in\nMessage-mode article composition window config." (choice (const :tag nil) (symbol :tag "Window config name")) ebdb-gnus-post-style-function #[0 "\300\207" [#[514 "\300\207" [nil] 3 "\n\n(fn REC MAIL)"]] 1] "Callable used to determine Gnus group posting styles.\nThe callable should accept a single record as a first argument,\nand a mail field instance as a second. Either return a Gnus\ngroup name as a string, which will be used to configure posting\nstyles when composing a message to that record/mail, or return\nnil to use Gnus defaults.\n\nSee `ebdb-record-field' or `ebdb-record-current-fields' for\nlikely ways to extract information about the record." ebdb-mua-gnus-scoring "Gnus-specific scoring EBDB customizations" (ebdb-gnus) ebdb-mua-gnus-splitting "Gnus-specific splitting EBDB customizations" (ebdb-gnus) defalias ebdb-gnus-score-field-p eieio-make-class-predicate ebdb-gnus-score-field ebdb-gnus-score-field--eieio-childp eieio-make-child-predicate ebdb-gnus-score-field-child-p make-obsolete "use (cl-typep ... \\='ebdb-gnus-score-field) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ebdb-field-user) ((score :type (or null number) :initarg :score :initval nil)) (:human-readable "gnus score")] 6) #@78 Create a new object of class type `ebdb-gnus-score-field'. (fn &rest SLOTS) (defalias 'ebdb-gnus-score-field #[128 "\300\301\302#\207" [apply make-instance ebdb-gnus-score-field] 5 (#$ . 3591)]) (byte-code "\300\301\302\303#\300\207" [function-put ebdb-gnus-score-field compiler-macro ebdb-gnus-score-field--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'ebdb-gnus-score-field--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 3923)]) (byte-code "\300\301\302\303\304\305%\210\300\306\302\307\302\310%\210\311\312\313\314\315DD\316\317\320\321\322&\207" [cl-generic-define-method ebdb-read nil ((field (subclass ebdb-gnus-score-field)) &optional slots obj) t #[1026 "\300\301\302\205 \303\304\"\"!\305\306##\207" [string-to-number ebdb-read-string "Score" slot-value score plist-put :score] 11 "\n\n(fn CL--CNM FIELD &optional SLOTS OBJ)"] ebdb-string ((field ebdb-gnus-score-field)) #[257 "\300\301\"\207" [slot-value score] 4 "\n\n(fn FIELD)"] custom-declare-variable ebdb/gnus-score-default funcall function #[0 "\300\207" [nil] 1] "If this is set, then every mail address in the EBDB that does not have\nan associated score field will be assigned this score. A value of nil\nimplies a default score of zero." :group ebdb-mua-gnus-scoring :type (choice (const :tag "Do not assign default score" nil) (integer :tag "Assign this default score" 0))] 8) #@155 Internal variable for detecting changes to `ebdb/gnus-score-default'. You should not set this variable directly - set `ebdb/gnus-score-default' instead. (defvar ebdb/gnus-score-default-internal nil (#$ . 5093)) #@116 The text version of the scoring structure returned by ebdb/gnus-score. This is built automatically from the EBDB. (defvar ebdb/gnus-score-alist nil (#$ . 5312)) #@175 Set to t to rebuild ebdb/gnus-score-alist on the next call to ebdb/gnus-score. This will be set automatically if you change a EBDB record which contains a gnus-score field. (defvar ebdb/gnus-score-rebuild-alist t (#$ . 5481)) #@169 This function is called through `ebdb-after-change-hook', and sets `ebdb/gnus-score-rebuild-alist' to t if the changed record contains a gnus-score field. (fn RECORD) (defalias 'ebdb/gnus-score-invalidate-alist #[257 "\301\302\"\205\n\303\211\207" [ebdb/gnus-score-rebuild-alist ebdb-record-user-field ebdb-gnus-score-field t] 4 (#$ . 5715)]) #@353 Return a score alist for Gnus. A score pair will be made for every member of the mail field in records which also have a `gnus-score' field. This allows the EBDB to serve as a supplemental global score file, with the advantage that it can keep up with multiple and changing addresses better than the traditionally static global scorefile. (fn GROUP) (defalias 'ebdb/gnus-score #[257 "\3011 \302\303!!0\202\210\304\305\306!\210\307 \210\310\311!\210\312CC\207" [ebdb/gnus-score-rebuild-alist (error) read ebdb/gnus-score-as-text t message "Problem building EBDB score table." ding sit-for 2 nil] 4 (#$ . 6069)]) #@69 Returns a SCORE file format string built from the EBDB. (fn GROUP) (defalias 'ebdb/gnus-score-as-text #[257 "\206\305 \206\n\305U\204\202\n\203 \203&\306\307\310\311\f\312#\313Q\n\207" [ebdb/gnus-score-default ebdb/gnus-score-default-internal ebdb/gnus-score-alist ebdb/gnus-score-rebuild-alist ebdb-record-tracker 0 nil "((touched nil) (\"from\"\n" mapconcat #[257 "\301\302\"\206\303!\205$\211\205$\304\305\306\307\310\311!\312\"\313\314%\315#\207" [ebdb/gnus-score-default ebdb-record-user-field ebdb-gnus-score-field ebdb-record-mail mapconcat make-byte-code 257 "\301\302\303!\300#\207" vconcat vector [format "(\"%s\" %s)\n" ebdb-string] 5 "\n\n(fn ADDRESS)" #1=""] 10 "\n\n(fn RECORD)"] #1# "))"] 6 (#$ . 6693)]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias ebdb-gnus-private-field-p eieio-make-class-predicate ebdb-gnus-private-field ebdb-gnus-private-field--eieio-childp eieio-make-child-predicate ebdb-gnus-private-field-child-p make-obsolete "use (cl-typep ... \\='ebdb-gnus-private-field) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ebdb-field-user) ((group :initarg :group)) nil] 6) #@80 Create a new object of class type `ebdb-gnus-private-field'. (fn &rest SLOTS) (defalias 'ebdb-gnus-private-field #[128 "\300\301\302#\207" [apply make-instance ebdb-gnus-private-field] 5 (#$ . 7966)]) (byte-code "\300\301\302\303#\300\207" [function-put ebdb-gnus-private-field compiler-macro ebdb-gnus-private-field--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'ebdb-gnus-private-field--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 8308)]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias ebdb-gnus-imap-field-p eieio-make-class-predicate ebdb-gnus-imap-field ebdb-gnus-imap-field--eieio-childp eieio-make-child-predicate ebdb-gnus-imap-field-child-p make-obsolete "use (cl-typep ... \\='ebdb-gnus-imap-field) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ebdb-field-user) ((group :initarg :group)) nil] 6) #@77 Create a new object of class type `ebdb-gnus-imap-field'. (fn &rest SLOTS) (defalias 'ebdb-gnus-imap-field #[128 "\300\301\302#\207" [apply make-instance ebdb-gnus-imap-field] 5 (#$ . 9054)]) (byte-code "\300\301\302\303#\300\207" [function-put ebdb-gnus-imap-field compiler-macro ebdb-gnus-imap-field--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'ebdb-gnus-imap-field--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 9381)]) (byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\207" [cl-generic-define-method make-instance nil ((_cls (subclass ebdb-gnus-private-field)) &rest slots) #[385 "\300\301\302\303\304\305\"D#\207" [apply make-instance ebdb-field-mail-folder :folder plist-get :group] 9 "\n\n(fn CLS &rest SLOTS)"] ((_cls (subclass ebdb-gnus-imap-field)) &rest slots) #[385 "\300\301\302\303\304\305\"D#\207" [apply make-instance ebdb-field-mail-folder :folder plist-get :group] 9 "\n\n(fn CLS &rest SLOTS)"]] 6) #@575 Return a list of ("From" mail-regexp imap-folder-name) tuples based on the contents of the EBDB. Mail address elements are already `regexp-quote'-ed, so we just concat them. Please note: in order that this will work with the `nnimap-split-fancy' or `nnmail-split-fancy' methods you have to use a backquote template, that is your setting will look like: (setq nnimap-split-rule 'nnimap-split-fancy nnimap-split-inbox "INBOX" nnimap-split-fancy `(| ,@(ebdb/gnus-split-folders-list) ... )) Note that `( is the backquote, NOT the quote '(. (defalias 'ebdb/gnus-split-folders-list #[0 "\301\302\"\207" [ebdb-mail-folder-list mapcar #[257 "\300\301\302A\303#@E\207" ["From" mapconcat identity "\\|"] 6 "\n\n(fn ELT)"]] 3 (#$ . 10134)]) (defalias 'ebdb-gnus-auto-update #[0 "\301!\207" [ebdb-gnus-auto-update-p ebdb-mua-auto-update] 2]) (byte-code "\300\301\302\"\210\300\303\304\"\207" [add-hook gnus-article-prepare-hook ebdb-gnus-auto-update gnus-startup-hook ebdb-insinuate-gnus] 3) (defalias 'ebdb-gnus-buffer-name #[0 "\301\302\"\207" [ebdb-buffer-name format "*%s-Gnus*"] 3]) (byte-code "\300\301\302\303#\210\304\305\306\307\306\310%\210\304\305\306\311\306\312%\210\304\313\306\314\306\315%\210\304\313\306\316\306\317%\210\304\320\306\321\306\322%\210\304\320\306\323\306\324%\210\304\320\306\325\306\326%\210\304\327\306\330\306\331%\210\304\327\306\332\306\333%\210\304\334\306\335\306\336%\210\304\334\306\337\306\340%\210\304\341\306\342\306\343%\210\304\344\306\345\346\347%\207" [put ebdb-gnus-buffer-name byte-optimizer byte-compile-inline-expand cl-generic-define-method ebdb-make-buffer-name nil (&context (major-mode gnus-summary-mode)) #[0 "\301\302\"\207" [ebdb-buffer-name format #1="*%s-Gnus*"] 3 "Produce a EBDB buffer name associated with Gnus."] (&context (major-mode gnus-article-mode)) #[0 "\301\302\"\207" [ebdb-buffer-name format #1#] 3 "Produce a EBDB buffer name associated with Gnus."] ebdb-popup-window (&context (major-mode gnus-summary-mode)) #[0 "\211\205 \303\304 !!)\204\305 \210\306!\211\nD\207" [gnus-article-buffer buffer ebdb-gnus-window-size buffer-live-p get-buffer gnus-summary-show-article get-buffer-window] 4] (&context (major-mode gnus-article-mode)) #[0 "\301 D\207" [ebdb-gnus-window-size get-buffer-window] 2] ebdb-mua-message-header ((header string) &context (major-mode gnus-summary-mode)) #[257 "q\210\301!\207" [gnus-article-buffer gnus-fetch-original-field] 3 "Return value of HEADER for current Gnus message.\n\n(fn HEADER)"] ((header string) &context (major-mode gnus-article-mode)) #[257 "q\210\301!\207" [gnus-article-buffer gnus-fetch-original-field] 3 "\n\n(fn HEADER)"] ((header string) &context (major-mode gnus-tree-mode)) #[257 "q\210\301!\207" [gnus-article-buffer gnus-fetch-original-field] 3 "\n\n(fn HEADER)"] ebdb-mua-prepare-article (&context (major-mode gnus-summary-mode)) #[0 "\300 \207" [gnus-summary-select-article] 1] (&context (major-mode gnus-article-mode)) #[0 "\300 \207" [gnus-summary-select-article] 1] ebdb-mua-article-body (&context (major-mode gnus-summary-mode)) #[0 "\302\303!!\205rq\210\304\305 \210\306`d\"*\207" [gnus-article-buffer inhibit-read-only buffer-live-p get-buffer t article-goto-body buffer-substring-no-properties] 3 "Return the current article body as a string.\n\nMust not include article headers, though can include headers in\nquoted replies."] (&context (major-mode gnus-article-mode)) #[0 "\302\303!!\205rq\210\304\305 \210\306`d\"*\207" [gnus-article-buffer inhibit-read-only buffer-live-p get-buffer t article-goto-body buffer-substring-no-properties] 3] ebdb-mua-article-signature (&context (major-mode gnus-summary-mode)) #[0 "\302\303!!\205!rq\210\304\305 \210\306y\210\307`\310\311\306\304#\206d\"*\207" [gnus-article-buffer inhibit-read-only buffer-live-p get-buffer t gnus-article-search-signature nil buffer-substring-no-properties re-search-forward "\n\n"] 6] ebdb-field-mail-compose ((record ebdb-record-entity) (mail ebdb-field-mail) &context (read-mail-command (eql gnus)) &rest args) t #[899 "\"\211\203\366\211\306 \n\307p!\310 !\2033 \2033 \242\206 \311V\205.\f \242\206, S\234\312\234\2024 \310 !\203X \203X \242\206E \311V\205S\f \242\206Q S\234\311\234\202Y \313!,\313!\314,\315\316\317\311\320\321\322 !\323\"\324$\"\210\315\325\326\"\210\315\325\317\311\327\321\322 !\330\"\324$\"\210\331\332-\236-\"-\203\266\333\230\204\266\334.!\335\206\257!B-B-\317\311\336\321\322\f\f\f\f\f\f &\337\"\340$\216\341\342\343\"\f#\210)\344 \210\345 \210\346\347\350\"\210\351\352!\210\353\314!*\266\210)\202\370 \207" [ebdb-gnus-post-style-function gnus-newsgroup-name gnus-current-window-configuration gnus-article-reply nnir-artlist gnus-article-yanked-articles current-window-configuration buffer-name gnus-nnir-group-p 0 1 copy-sequence nil add-hook message-header-setup-hook make-byte-code "\301\300!\207" vconcat vector [gnus-inews-insert-gcc] 2 message-mode-hook #[0 "\302 \211\211\207" [message-mailer message-newsreader gnus-extended-version] 2] "\302\303\300!)\207" [gnus-article-copy nil gnus-configure-posting-styles] delq X-Draft-From "" intern gnus-inews-make-draft "\307\300\302\303\310\304\301&\210p\311\312!\210\305\303B\n\311\313!\210\305 \203&\314\315!\210\316\317!\210\320=\203K\306\311\321!\210\211\322\323\324\325\326$\210\322\327\324\326\211$\207\324 \210\306\211\207" [gnus-inews-add-send-actions message make-local-variable gnus-message-group-art gnus-newsgroup-name gnus-message-citation-mode 1 gnus-run-hooks gnus-message-setup-hook message-mode mml-buffer-list add-hook change-major-mode-hook mml-destroy-buffers nil t kill-buffer-hook gnus-message-buffer gnus-message-highlight-citation major-mode] 7 apply message-mail ebdb-dwim-mail message-hide-headers gnus-add-buffer gnus-configure-windows message t run-hooks post-command-hook set-buffer-modified-p mml-buffer-list message-required-headers gnus-draft-meta-information-header] 25 "Compose a Gnus mail to RECORD's address MAIL.\nGives the user a chance to set posting styles for a message\ncomposed to a certain record.\n\n(fn RECORD MAIL &rest ARGS)"]] 6) #@22 Hook EBDB into Gnus. (defalias 'ebdb-insinuate-gnus #[0 "\306\307 #\210\306\n\307 #\210 \203\310\311 \312\313\f\"B\"\210\314\315!\203%\316\317\320\"\210 \2031\321\322 P!\323M\210\205>\321\322P!\324M\207" [gnus-summary-mode-map ebdb-mua-keymap gnus-article-mode-map ebdb-gnus-window-configuration ebdb-buffer-name ebdb-mua-summary-unify-format-letter define-key ";" add-to-list gnus-window-to-buffer format "*%s-Gnus*" boundp gnus-search-contact-tables add-hook ebdb-after-load-hook #[0 " B\211\207" [ebdb-hashtable gnus-search-contact-tables] 2] intern "gnus-user-format-function-" #[257 "\211\305H\203v\306!\203\307!!\202%\310\306!\203 \202#\311!\"\203v\312H\313\211\314\236A\211\262\203? \315!P\202q\316\236A\206h\316\n>\205h\317 !@\320=\205h \310\321\"\203e\211\322\225\313O\202f\211\262\211\262\205q\fP\266\203\206{\315\305H!\207" [gnus-ignored-from-addresses gnus-summary-to-prefix gnus-extra-headers gnus-newsgroup-name gnus-summary-newsgroup-prefix 2 functionp mail-strip-quoted-names string-match gmm-regexp-concat 9 nil To ebdb-mua-summary-unify Newsgroups gnus-find-method-for-group nntp "^[^:]+:" 0] 9 "\n\n(fn HEADER)"] #[257 "\300\301H!\207" [ebdb-mua-summary-mark 2] 4 "\n\n(fn HEADER)"] ebdb-mua-summary-mark-format-letter] 6 (#$ . 16349)]) (provide 'ebdb-gnus)