%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/gnus/ |
Current File : //usr/local/share/emacs/27.2/lisp/gnus/gnus-registry.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; 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\300\305!\210\300\306!\210\300\307!\210\300\310!\207" [require gnus gnus-int gnus-sum gnus-art gnus-util nnmail easymenu registry] 2) #@49 Boolean set to t when the registry is modified. (defvar gnus-registry-dirty t (#$ . 606)) (custom-declare-group 'gnus-registry nil "The Gnus registry." :version "22.1" :group 'gnus) #@299 List of registry marks and their options. `gnus-registry-mark-article' will offer symbols from this list for completion. Each entry must have a character to be useful for summary mode line display and for keyboard shortcuts. Each entry must have an image string to be useful for visual display. (defvar gnus-registry-marks '((Important :char 105 :image "summary_important") (Work :char 119 :image "summary_work") (Personal :char 112 :image "summary_personal") (To-Do :char 116 :image "summary_todo") (Later :char 108 :image "summary_later")) (#$ . 795)) (byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\313\314\304\305\306\315& \210\300\316\317\320\304\305\306\321&\210\300\322\323\324\304\305\306\325&\207" [custom-declare-variable gnus-registry-default-mark 'To-Do "The default mark. Should be a valid key for `gnus-registry-marks'." :group gnus-registry :type symbol gnus-registry-unfollowed-addresses (list (regexp-quote user-mail-address)) "List of addresses that gnus-registry-split-fancy-with-parent won't trace.\nThe addresses are matched, they don't have to be fully qualified.\nIn the messages, these addresses can be the sender or the\nrecipients." :version "24.1" (repeat regexp) gnus-registry-unfollowed-groups '("delayed$" "drafts$" "queue$" "INBOX$" "^nnmairix:" "archive") "List of groups that gnus-registry-split-fancy-with-parent won't return.\nThe group names are matched, they don't have to be fully\nqualified. This parameter tells the Gnus registry `never split a\nmessage into a group that matches one of these, regardless of\nreferences.'\n\nnnmairix groups are specifically excluded because they are ephemeral." (repeat regexp) gnus-registry-install 'ask "Whether the registry should be installed." (choice (const :tag "Never Install" nil) (const :tag "Always Install" t) (const :tag "Ask Me" ask))] 10) (defvar gnus-registry-enabled nil) (defvar gnus-registry-misc-menus nil) (byte-code "\300\301\302\303#\210\304\305\306\307\310\311\312\313&\210\304\314\302\315\310\311\312\316&\210\304\317\320\321\310\311\312\322&\210\304\323\324\325\310\311\312\326&\210\304\327\330\331\310\311\312\332&\210\304\333\302\334\310\311\312\335&\210\304\336\337\340\341\303\310\311\312\342& \210\304\343\344\345\341\303\310\311\312\346& \207" [make-obsolete-variable gnus-registry-max-pruned-entries nil "25.1" custom-declare-variable gnus-registry-track-extra '(subject sender recipient) "Whether the registry should track extra data about a message.\nThe subject, recipients (To: and Cc:), and Sender (From:) headers\nare tracked this way by default." :group gnus-registry :type (set :tag "Tracking choices" (const :tag "Track by subject (Subject: header)" subject) (const :tag "Track by recipient (To: and Cc: headers)" recipient) (const :tag "Track by sender (From: header)" sender)) gnus-registry-split-strategy "The splitting strategy applied to the keys in `gnus-registry-track-extra'.\n\nGiven a set of unique found groups G and counts for each element\nof G, and a key K (typically `sender' or `subject'):\n\nWhen nil, if G has only one element, use it. Otherwise give up.\nThis is the fastest but also least useful strategy.\n\nWhen `majority', use the majority by count. So if there is a\ngroup with the most articles counted by K, use that. Ties are\nresolved in no particular order, simply the first one found wins.\nThis is the slowest strategy but also the most accurate one.\n\nWhen `first', the first element of G wins. This is fast and\nshould be OK if your senders and subjects don't \"bleed\" across\ngroups." (choice :tag "Splitting strategy" (const :tag "Only use single choices, discard multiple matches" nil) (const :tag "Majority of matches wins" majority) (const :tag "First found wins" first)) gnus-registry-minimum-subject-length 5 "The minimum length of a subject before it's considered trackable." integer gnus-registry-extra-entries-precious '(mark) "What extra keys are precious, meaning entries with them won't get pruned.\nBy default, `mark' is included, so articles with marks are\nconsidered precious.\n\nBefore you save the Gnus registry, it's pruned. Any entries with\nkeys in this list will not be pruned. All other entries go to\nthe Bit Bucket." (repeat symbol) gnus-registry-cache-file (nnheader-concat (or gnus-dribble-directory gnus-home-directory "~/") ".gnus.registry.eieio") "File where the Gnus registry will be stored." file gnus-registry-max-entries "Maximum number of entries in the registry, nil for unlimited." (radio (const :format "Unlimited " nil) (integer :format "Maximum number: %v")) gnus-registry-prune-factor 0.1 "When pruning, try to prune back to this factor less than the maximum size.\n\nIn order to prevent constant pruning, we prune back to a number\nsomewhat less than the maximum size. This option controls\nexactly how much less. For example, given a maximum size of\n50000 and a prune factor of 0.1, the pruning process will try to\ncut the registry back to (- 50000 (* 50000 0.1)) -> 45000\nentries. The pruning process is constrained by the presence of\n\"precious\" entries." :version float gnus-registry-default-sort-function #'gnus-registry-sort-by-creation-time "Sort function to use when pruning the registry.\nEntries that sort to the front of the list are pruned first.\nThis can slow pruning down. Set to nil to perform no sorting." (choice (const :tag "No sorting" nil) function)] 10) #@38 Sort older entries to front of list. (defalias 'gnus-registry-sort-by-creation-time #[(l r) "\302\303\236A@\303 \236A@\"\207" [r l time-less-p creation-time] 4 (#$ . 6218)]) #@119 Encode/decode group names in DB, before saving or after loading. Encode names if ENCODE is non-nil, otherwise decode. (defalias 'gnus-registry--munge-group-names #[(db &optional encode) "\306\307\"\310\311\"\312\313\n!\203 \314\315\n\"\210\314\316\"\210 \312\211\205X @\211@\fA\211@A\317\"\210\320#\210. A\211\204$ \312-\207" [db reset-pairs grouphash datahash #1=#:x14 --dolist-tail-- slot-value data registry-lookup-secondary group nil hash-table-p maphash #[(group-name val) "\203 \305 !\2055 \306 \n\"\210\307\310 \311\"\n#\207\312 \313\314\315#)\266\203\2055 \306 \n\"\210\307\316 \311\"\n#\207" [encode group-name grouphash val inhibit-changing-match-data multibyte-string-p remhash puthash encode-coding-string utf-8-emacs "[^[:ascii:]]" nil t string-match decode-coding-string] 7] #[(id data) "\304\236\243\305\306 \"\205 \n\304\307\310 \"B\311\304\"BDB\211)\207" [data groups id reset-pairs group seq-some #[(g) "\203 \303 !\207\304 \305\306\307#)\207" [encode g inhibit-changing-match-data multibyte-string-p "[^[:ascii:]]" nil t string-match] 7] mapcar #[(g) "\203 \302\202 \303 \304\"\207" [encode g encode-coding-string decode-coding-string utf-8-emacs] 3] assq-delete-all] 5] remhash puthash #2=#:x15 #3=#:x16 #4=#:x17 #5=#:x18 id] 5 (#$ . 6400)]) (defalias 'gnus-registry-fixup-registry #[(db) "\203Y \306\307\"\310\n\311\312\313\"#\210)\310\f\314 \206 #\210)\310\315\2060 \316#\210)\310\307\312\317\"#\210) \306\307\"\232\204T \320\321\322\"\210\323!\210\324!\210)\207" [db old #1=#:v gnus-registry-extra-entries-precious #2=#:v gnus-registry-max-entries eieio-oref tracked eieio-oset precious append nil max-size prune-factor 0.1 (mark group keyword) gnus-message 9 "Reindexing the Gnus registry (tracked change)" registry-reindex gnus-registry--munge-group-names most-positive-fixnum #3=#:v gnus-registry-prune-factor #4=#:v gnus-registry-track-extra] 6]) (defalias 'gnus-registry-make-db #[(&optional file) "\304\305\306\307\206 \310\n\311\312\313\314\313&!\207" [file gnus-registry-cache-file most-positive-fixnum registry-db-version gnus-registry-fixup-registry make-instance registry-db :file :max-size :version :precious nil :tracked] 13 nil "fGnus registry persistence file: \n"]) #@57 The article registry by Message ID. See `registry-db'. (defvar gnus-registry-db nil (#$ . 8707)) #@115 Remake the registry database after customization. This is not required after changing `gnus-registry-cache-file'. (defalias 'gnus-registry-remake-db #[(&optional forsure) "\205 \302\303\304\"\210\305 \211\207" [forsure gnus-registry-db gnus-message 4 "Remaking the Gnus registry" gnus-registry-make-db] 3 (#$ . 8812) (list (y-or-n-p "Remake and CLEAR the Gnus registry? "))]) #@40 Load the registry from the cache file. (defalias 'gnus-registry-load #[nil "\3051F \3061 \307 !00\202P 0\210\310!\311P\312\n!\203? \313\314\315\n #!\203? \307\n!\210\316\f\301 #\210)\317\320\321 #\202B \322\323!)\202P \210\317\320\324 #\210\322\323!)\207" [gnus-registry-cache-file file old-file-name gnus-registry-db #1=#:v (error) (file-error) gnus-registry-read file-name-sans-extension ".eioio" file-exists-p yes-or-no-p format "Rename registry file from %s to %s? " eieio-oset gnus-message 1 "Registry filename changed to %s" gnus-registry-remake-db t "The Gnus registry could not be loaded from %s, creating a new one"] 5 (#$ . 9197) nil]) #@57 Do the actual reading of the registry persistence file. (defalias 'gnus-registry-read #[(file) "\302\303\304#\210\305\3061 \307\310\"0\202 \210\307!!\302\303\311#\207" [file gnus-registry-db gnus-message 5 "Reading Gnus registry from %s..." gnus-registry-fixup-registry 'wrong-number-of-arguments eieio-persistent-read registry-db "Reading Gnus registry from %s...done"] 4 (#$ . 9856)]) #@31 Save the registry cache file. (defalias 'gnus-registry-save #[(&optional file db) "\206 \n\206 \304\n!\306\307\310\311\n!$\210\312\n \"\210\f\313\f\314\"\210)\315\f\"\210\306\307\316\311\n!$+\207" [file gnus-registry-cache-file db gnus-registry-db clone gnus-registry-default-sort-function gnus-message 5 "Saving Gnus registry (%d entries) to %s..." registry-size registry-prune gnus-registry--munge-group-names encode eieio-persistent-save "Saving Gnus registry (size %d) to %s...done"] 5 (#$ . 10256) nil]) (defalias 'gnus-registry-remove-ignored #[nil "\304 \305\"\306 !\307 !\210\310\311\n\"\210\307 !\210\312\313\314\306 !Z#+\207" [gnus-registry-db db grouphashtb old-size registry-lookup-secondary group registry-size registry-reindex maphash #[(k v) "\303!\205 \304 \n\305#\207" [k db v gnus-registry-ignore-group-p registry-delete nil] 4] gnus-message 4 "Removed %d ignored entries from the Gnus registry"] 6 nil nil]) (defalias 'gnus-registry-action #[(action data-header from &optional to method) "\306H\307H\310H\311\312\236\243\206 \313\314\236\243\206 \313\"\315\316H!@\317!\2055 \317!\320\321\322 \203D \323\202E \324&\210\325 \326=?\205X \n \f&.\207" [data-header id subject extra recipients sender 4 1 9 gnus-registry-sort-addresses Cc "" To gnus-registry-extract-addresses 2 gnus-group-guess-full-name-from-command-method gnus-message 7 "Gnus registry: article %s %s from %s to %s" "respooling" "going" gnus-registry-handle-action copy from to method action] 7]) (defalias 'gnus-registry-spool-action #[(id group &optional subject sender recipients) "\306! \206 \307\310\311!\206 \312\310\313!\206 \312\"\n\206 \310\314!\206% \310\315! ;\203; \316\317 \"\203; \320 \321\322#\323\324\325 \f$\210\326 \327\f\n &,\207" [group recipients subject sender to id gnus-group-guess-full-name-from-command-method gnus-registry-sort-addresses message-fetch-field "cc" "" "to" "subject" "from" string-match " $" substring 0 -1 gnus-message 7 "Gnus registry: article %s spooled to %s" gnus-registry-handle-action nil] 7]) (defalias 'gnus-registry-handle-action #[(id from to subject sender &optional recipients) "\306\307\310 \n\f \257#\210\311\n!?\205 \n\312!\313\314!!\313\f!\315C\316#\210 \203E \317 \320\321\"\"\322\321\"B\321\nD\304\fD\323 B\303DF\316\211\203\266 @\211A@\203\255 @\236\206s @CA\316\211\203\237 @\211\235\204\226 \324C\"A\211\204\201 *\322@\"B)A\211\204[ *\306\307\325$\210\326#-\207" [id from to subject sender recipients gnus-message 10 "gnus-registry-handle-action %S" gnus-registry-ignore-group-p gnus-registry-get-or-make-entry gnus-string-remove-all-properties gnus-registry-simplify-subject registry-delete nil delete assoc group assq-delete-all recipient append "Gnus registry: new entry for %s is %S" gnus-registry-insert gnus-registry-db entry db kv --dolist-tail-- new toadd] 10]) #@692 Split this message into the same group as its parent. The parent is obtained from the registry. This function can be used as an entry in `nnmail-split-fancy' or `nnimap-split-fancy', for example like this: (: gnus-registry-split-fancy-with-parent) This function tracks ALL backends, unlike `nnmail-split-fancy-with-parent' which tracks only nnmail messages. For a message to be split, it looks for the parent message in the References or In-Reply-To header and then looks in the registry to see which group that message was put in. This group is returned, unless `gnus-registry-follow-group-p' return nil for that group. See the Info node `(gnus)Fancy Mail Splitting' for more details. (defalias 'gnus-registry-split-fancy-with-parent #[nil "\306\307!\206 \310\306\311!\211\203 \312 Q\202 \211\205 \313!\314\306\315!!\316\306\317!\206/ \310\306\320!\2066 \310\"\314\321\306\322!!!<\203K \202N C\323\324\n\325\326\327\f\330 \331\332&\f.\207" [refstr reply-to references sender recipients subject message-fetch-field "references" "" "in-reply-to" " " gnus-extract-references gnus-string-remove-all-properties "from" gnus-registry-sort-addresses "cc" "to" gnus-registry-simplify-subject "subject" gnus-registry--split-fancy-with-parent-internal :references :refstr :sender :recipients :subject :log-agent "Gnus registry fancy splitting with parent" nnmail-split-fancy-with-parent-ignore-groups] 14 (#$ . 13232)]) #@96 (fn &rest SPEC &key REFERENCES REFSTR SENDER SUBJECT RECIPIENTS LOG-AGENT &allow-other-keys) (defalias 'gnus-registry--split-fancy-with-parent-internal #[(&rest spec) "\306\307\"A@\306\310\"A@\306\311\"A@\306\312\"A@\306\313\"A@\306\314\"A@-\315\316\317#\210.\320/0 \203\247 \315\321\322-\n$\210 \237\3201\2112\203\236 2@1\315\321\323-1$\210\3241\325\"3\3203:\203\224 3@\326!\203\213 \315\327\330-1%\210/B/3A\2113\202i *2A\2112\204O *\331\332\n/#//\204\3044>\203\f\2035\fGW\203\333\334\335\336\3370\304\f#\"\"\21167\320\21187:\2037@\326!\203\3154\203\362 \327\202\363 \321\340-\f%\2108B87A\2117\202\330 8\237+/\331\341\f/#/)/\204\215\3034>\203\215\203\215\3429\"\204\215\333\334\335\343\3370\303#\"\"\2116:\320\211;::\203~:@\326!\203u\3154\203e\327\202f\321\344-%\210;B;:A\211:\202K;\237+/)\331\345/#//\204%\3464>\203% \203% \320<\2112\2032@</\204\342<9\"\204\333\334\335\347\3370\346<#\"\"\2116=\320\211>=:\203=@\326!\203\377\3154\203\356\327\202\357\321\350-<%\210>B>=A\211=\202\324>\237+/)2A\2112\204\247*\331\351\352\353 \354#/#//\242.\207" [spec references refstr sender subject recipients plist-member :references :refstr :sender :subject :recipients :log-agent gnus-message 10 "gnus-registry--split-fancy-with-parent-internal %S" nil 9 "%s is tracing references %s" "%s is looking up %s" gnus-registry-get-id-key group gnus-registry-follow-group-p 7 "%s traced %s to %s" gnus-registry-post-process-groups "references" apply append mapcar #[(reference) "\301\302\"\207" [reference gnus-registry-get-id-key group] 3] registry-lookup-secondary-value "%s (extra tracking) traced subject `%s' to %s" "subject" gnus-grep-in-list #[(reference) "\301\302\"\207" [reference gnus-registry-get-id-key group] 3] "%s (extra tracking) traced sender `%s' to %s" "sender" recipient #[(reference) "\301\302\"\207" [reference gnus-registry-get-id-key group] 3] "%s (extra tracking) traced recipient `%s' to %s" "recipients" mapconcat identity ", " log-agent gnus-registry-db found db reference --dolist-tail-- #1=#:--cl-var-- gnus-registry-track-extra gnus-registry-minimum-subject-length groups #2=#:--cl-var-- #3=#:--cl-var-- gnus-registry-unfollowed-addresses #4=#:--cl-var-- #5=#:--cl-var-- recp #6=#:--cl-var-- #7=#:--cl-var--] 9 (#$ . 14678)]) #@527 Inspects GROUPS found by MODE for KEY to determine which ones to follow. MODE can be `subject' or `sender' for example. The KEY is the value by which MODE was searched. Transforms each group name to the equivalent short name. Checks if the current Gnus method (from `gnus-command-method' or from `gnus-newsgroup-name') is the same as the group's method. Foreign methods are not supported so they are rejected. Reduces the list to a single group, or complains if that's not possible. Uses `gnus-registry-split-strategy'. (defalias 'gnus-registry-post-process-groups #[(mode key groups) "\306\307\310G\"\311\211 \311=\203 G\312U\205L \242\202L \313=\203) \242\202L \314=\205L \315\316\317\320\321$(\322\323\"\210\307\324G\325(!#\326\327\"\242)\211\203^ \330\331\332\f &\210\202j \330\331\333\f \206g \334%\210 \205p C\211\311)\211*\203\327 *@)\335)!+\206\215 \335,!\336)!-./\337/.\"\203\305 )-\232\204\262 \330\340\341\f)-%\210-\n\235\203\275 \n\202\301 -\nB\202\315 \330\342\343\f)$\210+*A\211*\204{ *\344\311\n\"\211G\312U\203\350 \n\202\n\204\372 \330\345\346\f01%\210\311\202\330\345\347\f\n01&\210\311,\207" [groups chosen out desc log-agent gnus-registry-split-strategy "gnus-registry-post-process-group" format "%d groups" nil 1 first majority make-hash-table :size 256 :test equal mapc #[(x) "\302!\303\304 \305#T #)\207" [x freq gnus-group-short-name puthash gethash 0] 6] "%d groups, %d unique" hash-table-count sort #[(a b) "\303\304! \305#\303\304\n! \305#V\207" [a freq b gethash gnus-group-short-name 0] 5] gnus-message 9 "%s: strategy %s on %s produced %s" "%s: strategy %s on %s did not produce an answer" "default" gnus-find-method-for-group gnus-group-short-name gnus-methods-equal-p 10 "%s: stripped group %s to %s" 7 "%s: ignored foreign group %s" delq 5 "%s: no matches for %s `%s'." "%s: too many extra matches (%s) for %s `%s'. Returning none." freq group --dolist-tail-- gnus-command-method gnus-newsgroup-name short-name m2 m1 mode key] 8 (#$ . 17117)]) #@143 Determines if a group name should be followed. Consults `gnus-registry-unfollowed-groups' and `nnmail-split-fancy-with-parent-ignore-groups'. (defalias 'gnus-registry-follow-group-p #[(group) "\205 \303 \"\206 \303\n\"?\207" [group gnus-registry-unfollowed-groups nnmail-split-fancy-with-parent-ignore-groups gnus-grep-in-list] 3 (#$ . 19170)]) #@139 Determines if a group name should be ignored. Consults `gnus-registry-ignored-groups' and `nnmail-split-fancy-with-parent-ignore-groups'. (defalias 'gnus-registry-ignore-group-p #[(group) "\205' \303\304\305\306\307 \"\"\"\206' @<\203# \310\311!\203# \312!\206' \303\n\"\207" [group gnus-registry-ignored-groups nnmail-split-fancy-with-parent-ignore-groups gnus-grep-in-list delq nil mapcar #[(g) ";\203 \207<\203 A@\203 @\207\301\207" [g nil] 1] get-buffer "*Group*" gnus-parameter-registry-ignore] 7 (#$ . 19527)]) #@94 Get the keywords of the current article. Overrides existing keywords with FORCE set non-nil. (defalias 'gnus-registry-wash-for-keywords #[(&optional force) "\306!\307\211\310\311\"\203 \f\205Z r q\210\312 \210\313 \314\216\214`d}\210\315 p\316\216\317!\210\320\321\307\322#\203R \323\324\224\324\225{\227!\211G\325V\2033 \n B\2023 .\326\311 #)+\207" [gnus-current-article words word id force gnus-article-buffer gnus-registry-fetch-message-id-fast nil gnus-registry-get-id-key keyword article-goto-body current-window-configuration #[nil "\301!\207" [#1=#:wconfig set-window-configuration] 2] syntax-table #[nil "rq\210\302 !)\207" [#2=#:buffer #3=#:table set-syntax-table] 2] set-syntax-table re-search-forward "\\b\\w+\\b" t gnus-string-remove-all-properties 0 2 gnus-registry-set-id-key #1# #2# #3# gnus-adaptive-word-syntax-table] 5 (#$ . 20063) nil]) (defalias 'gnus-registry-keywords #[nil "\303\304\"\305\211\205 \306\307\n\"\210 *\207" [gnus-registry-db ks table registry-lookup-secondary keyword nil maphash #[(k _v) " B\211\207" [k ks] 2]] 4]) (defalias 'gnus-registry-find-keywords #[(keyword) "\302\301 #\207" [gnus-registry-db keyword registry-lookup-secondary-value] 4 nil (list (completing-read "Keyword: " (gnus-registry-keywords) nil t))]) #@56 Register the Message-ID of every article in the group. (defalias 'gnus-registry-register-message-ids #[nil "\306!?\205B \307\211\205A @\310\n!\311\f\312\" \235\2048 \313\314\315\n$\210\316\f\307\317\n!\320\n!\321\n!&\210*A\211\204 \307*\207" [gnus-newsgroup-name gnus-newsgroup-articles article --dolist-tail-- id groups gnus-parameter-registry-ignore nil gnus-registry-fetch-message-id-fast gnus-registry-get-id-key group gnus-message 9 "Registry: Registering article %d with group %s" gnus-registry-handle-action gnus-registry-fetch-simplified-message-subject-fast gnus-registry-fetch-sender-fast gnus-registry-fetch-recipients-fast] 9 (#$ . 21353)]) #@77 Fetch the Message-ID quickly, using the internal `gnus-data-find' function. (defalias 'gnus-registry-fetch-message-id-fast #[(article) "\247\205 \303 \"\211\205 \304\n8\305H)\207" [article gnus-newsgroup-data data gnus-data-find-in 3 4] 4 (#$ . 22027)]) #@168 Extract all the addresses in a normalized way from TEXT. Returns an unsorted list of strings in the name <address> format. Addresses without a name will say "noname". (defalias 'gnus-registry-extract-addresses #[(text) "\301\302\303\304\"\"\207" [text mapcar #[(add) "\303@\206 \304A@\305\n!\203 r\nq\210\306 )\202 \n\307\310 \n#+!\207" [add name addr gnus-string-remove-all-properties "noname" bufferp buffer-string format "%s <%s>"] 5] mail-extract-address-components t] 5 (#$ . 22293)]) #@51 Return a normalized and sorted list of ADDRESSES. (defalias 'gnus-registry-sort-addresses #[(&rest addresses) "\301\302\303\"\304\"\207" [addresses sort mapcan gnus-registry-extract-addresses string-lessp] 4 (#$ . 22798)]) (defalias 'gnus-registry-simplify-subject #[(subject) ";\205 \301!\207" [subject gnus-simplify-subject] 2]) #@74 Fetch the Subject quickly, using the internal `gnus-data-find' function. (defalias 'gnus-registry-fetch-simplified-message-subject-fast #[(article) "\247\205 \303 \"\211\205 \304\305\306\n8\307H!!)\207" [article gnus-newsgroup-data data gnus-data-find-in gnus-string-remove-all-properties gnus-registry-simplify-subject 3 1] 5 (#$ . 23139)]) (defalias 'gnus-registry-fetch-sender-fast #[(article) "\247\205 \303 \"\211\205 \304\n8\305H)\207" [article gnus-newsgroup-data data gnus-data-find-in 3 2] 4]) (defalias 'gnus-registry-fetch-recipients-fast #[(article) "\247\205 \304 \"\211\205 \305\n8\306H\211\205* \307\310\236A\206! \311\312\236A\206) \311\"*\207" [article gnus-newsgroup-data data extra gnus-data-find-in 3 9 gnus-registry-sort-addresses Cc "" To] 5]) #@136 For each known mark, call FUNCTION for each cell of type TYPE. FUNCTION should take two parameters, a mark symbol and the cell value. (defalias 'gnus-registry-do-marks #[(type function) "\306\211\205+ \n@\211\242 \243\307\f \"\211\203\"