Server IP : 111.118.215.189 / Your IP : 18.117.158.174 Web Server : Apache System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : a1673wkz ( 2475) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /usr/share/emacs/24.3/lisp/gnus/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:10:01 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/gnus/gnus-registry.el ;;; in Emacs version 24.3.1 ;;; 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 (#$ . 759)) (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")) (#$ . 948)) (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\300\304\302\303#\210\300\305\302\303#\210\300\306\302\303#\210\300\307\302\303#\210\310\311\312\313\314\315\316\317&\210\310\320\302\321\314\315\316\322&\210\310\323\324\325\314\315\316\326&\210\310\327\330\331\314\315\316\332&\210\310\333\334\335\314\315\316\336&\210\310\337\302\340\314\315\316\341&\210\310\342\302\343\344\345\314\315\316\346& \207" [make-obsolete-variable gnus-registry-clean-empty nil "23.4" gnus-registry-use-long-group-names gnus-registry-max-track-groups gnus-registry-entry-caching gnus-registry-trim-articles-without-groups 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.eioio") "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-max-pruned-entries "Maximum number of pruned entries in the registry, nil for unlimited." :version "24.1" (radio (const :format "Unlimited " nil) (integer :format "Maximum number: %v"))] 10) (defalias 'gnus-registry-fixup-registry #[(db) "\203I \306\307\"\310\311\312\n\313\"#\210\310\314\206 \f#\210\310\315\316#\210\310\317 \206* \f#\210\310\307\312\320\"#\210 \306\307\"\232\204H \321\322\323\"\210\324!\210)\207" [db old gnus-registry-extra-entries-precious gnus-registry-max-entries most-positive-fixnum gnus-registry-max-pruned-entries eieio-oref :tracked eieio-oset :precious append nil :max-hard :prune-factor 0.1 :max-soft (mark group keyword) gnus-message 9 "Reindexing the Gnus registry (tracked change)" registry-reindex gnus-registry-track-extra] 6]) (defalias 'gnus-registry-make-db #[(&optional file) "\303\304\305\306\206 \307\n\310\n\311\312\313\312&!\207" [file gnus-registry-cache-file most-positive-fixnum gnus-registry-fixup-registry registry-db "Gnus Registry" :file :max-hard :max-soft :precious nil :tracked] 13 nil "fGnus registry persistence file: \n"]) #@57 The article registry by Message ID. See `registry-db'. (defvar gnus-registry-db (gnus-registry-make-db) (#$ . 6819)) #@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 (#$ . 6944) (list (y-or-n-p "Remake and CLEAR the Gnus registry? "))]) #@31 Read the registry cache file. (defalias 'gnus-registry-read #[nil "\302\303\304\217)\207" [gnus-registry-cache-file file nil (byte-code "\302\303\304#\210\305\306!!\302\303\307#\207" [file gnus-registry-db gnus-message 5 "Reading Gnus registry from %s..." gnus-registry-fixup-registry eieio-persistent-read "Reading Gnus registry from %s...done"] 4) ((error (byte-code "\301\302\303#\210\304\305!\207" [file gnus-message 1 "The Gnus registry could not be loaded from %s, creating a new one" gnus-registry-remake-db t] 4)))] 3 (#$ . 7329) nil]) #@31 Save the registry cache file. (defalias 'gnus-registry-save #[(&optional file db) "\206 \n\206\n \304\305\306\307\n!$\210\310\n!\210\311\n\"\210\304\305\312\307\n!$*\207" [file gnus-registry-cache-file db gnus-registry-db gnus-message 5 "Saving Gnus registry (%d entries) to %s..." registry-size registry-prune eieio-persistent-save "Saving Gnus registry (size %d) to %s...done"] 5 (#$ . 7886) 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!\211\203@ \202A \320\321\322\323 \203P \324\202Q \325&\210\326 \327\232?\205d \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 "the Bit Bucket" gnus-message 7 "Gnus registry: article %s %s from %s to %s" "respooling" "going" gnus-registry-handle-action copy from to to-name method action] 8]) (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\321O\322\323\324 \f$\210\325 \326\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 " $" 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\261 @\211\211A@)\203\250 @\236\206w @CA\316\211\203\232 @\324\325\326#\210A\211\204\205 *\322@\"B)A\211\204[ *\306\307\327$\210\330#-\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 add-to-list new t "Gnus registry: new entry for %s is %S" gnus-registry-insert gnus-registry-db entry db kv --dolist-tail-- x 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 (#$ . 10791)]) #@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>A@\307>A@\310>A@\311>A@\312>A@\313>A@,\314\315\316#\210-\317./ \203\241 \314\320\321,\n$\210 \237\3170\2111\203\230 1@0\314\320\322,0$\210\3230\324\"2\3172:\203\216 2@\325!\203\205 \314\326\327,0%\210.B.2A\2112\202c *1A\2111\204I *\330\331\n.#..\204\3043>\203\f\2034\fGW\203\332\333\334\335\336/\304\f#\"\"\21156\317\21176:\2036@\325!\203\374 \3143\203\354 \326\202\355 \320\337,\f%\2107B76A\2116\202\322 7\237+.\330\340\f.#.).\204\207\3033>\203\207\203\207\3418\"\204\207\332\333\334\342\336/\303#\"\"\21159\317\211:9:\203x9@\325!\203o\3143\203_\326\202`\320\343,%\210:B:9A\2119\202E:\237+.)\330\344.#..\204\3453>\203 \203 \317;\2111\2031@;.\204 \341;8\"\204 \332\333\334\346\336/\345;#\"\"\2115<\317\211=<:\203<@\325!\203\371\3143\203\350\326\202\351\320\347,;%\210=B=<A\211<\202\316=\237+.)1A\2111\204\241*\330\350\351\352 \353#.#..\242.\207" [spec references refstr sender subject recipients :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 (#$ . 12237)]) #@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\312 \313\"\203 G\314U\205O \242\202O \312 \315\"\203+ \242\202O \312 \316\"\205O \317\320\321\322\323$+\324\325\"\210\307\326G\327+!#\330\331\"\242)\211\203a \332\333\334\f &\210\202m \332\333\335\f \206j \336%\210 \205s C\211\311,\211-\203\320 -@,\337,!.\206\220 \337/!\340,!012\34121\"\203\276 ,0\232\204\265 \332\342\343\f,0%\210\344\3020\"\210\202\306 \332\345\346\f,$\210+-A\211-\204~ *\347\311\n\"\211G\314U\203\341 \n\202 \n\204\363 \332\350\351\f34%\210\311\202 \332\350\352\f\n34&\210\311,\207" [groups chosen out desc log-agent gnus-registry-split-strategy "gnus-registry-post-process-group" format "%d groups" nil memql (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" add-to-list 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 (#$ . 14636)]) #@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 (#$ . 16714)]) #@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'