MMCT TEAM
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  ]

Current File : //usr/share/emacs/24.3/lisp/gnus/gnus-registry.elc
;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\202NC\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\2301@0\314\320\322,0$\210\3230\324\"2\3172:\203\2162@\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\3227\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\"\203G\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'\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<\203A@\203@\207\301\207" [g nil] 1] get-buffer "*Group*" gnus-parameter-registry-ignore] 7 (#$ . 17071)])
#@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\205Zr
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 ((set-window-configuration #1=#:wconfig)) syntax-table ((byte-code "rq\210\302	!\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 (#$ . 17607) nil])
(defalias 'gnus-registry-keywords #[nil "\302\303\"\211\205
\304\305	\")\207" [gnus-registry-db table registry-lookup-secondary keyword maphash #[(k v) "\207" [k] 1]] 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 (#$ . 18863)])
#@75 Fetch the Message-ID quickly, using the internal gnus-data-list function.
(defalias 'gnus-registry-fetch-message-id-fast #[(article) "\247\205\302	\"\205\303\302	\"8\304H\207" [article gnus-newsgroup-data assoc 3 4] 4 (#$ . 19537)])
#@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!\203r\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 (#$ . 19784)])
#@51 Return a normalized and sorted list of ADDRESSES.
(defalias 'gnus-registry-sort-addresses #[(&rest addresses) "\301\302\303\304\305\"\"\306\"\207" [addresses sort apply nconc mapcar gnus-registry-extract-addresses string-lessp] 6 (#$ . 20289)])
(defalias 'gnus-registry-simplify-subject #[(subject) ";\205\301!\207" [subject gnus-simplify-subject] 2])
#@72 Fetch the Subject quickly, using the internal gnus-data-list function.
(defalias 'gnus-registry-fetch-simplified-message-subject-fast #[(article) "\247\205\302	\"\205\303\304\305\302	\"8\306H!!\207" [article gnus-newsgroup-data assoc gnus-string-remove-all-properties gnus-registry-simplify-subject 3 1] 6 (#$ . 20652)])
(defalias 'gnus-registry-fetch-sender-fast #[(article) "\301\302\"\207" [article gnus-registry-fetch-header-fast "from"] 3])
(defalias 'gnus-registry-fetch-recipients-fast #[(article) "\300\301\302\303\217\206	\304\301\305\306\217\206\304\"\207" [gnus-registry-sort-addresses nil (gnus-registry-fetch-header-fast "Cc" article) ((error)) "" (gnus-registry-fetch-header-fast "To" article) ((error))] 5])
#@71 Fetch the HEADER quickly, using the internal gnus-data-list function.
(defalias 'gnus-registry-fetch-header-fast #[(article header) "\247\205\303	\"\205\304\n\305\303	\"8\236A!\207" [article gnus-newsgroup-data header assoc gnus-string-remove-all-properties 3] 6 (#$ . 21392)])
#@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\"	\"\210+\nA\211\204\306*\207" [gnus-registry-marks mark-info --dolist-tail-- mark data type nil plist-get cell-data function] 4 (#$ . 21684)])
#@51 Set/remove the MARK over process-marked ARTICLES.
(defalias 'gnus-registry--set/remove-mark #[(remove mark articles) "\204\n\306\307 \210)\307 \205;\310	\n\311$\210\312\313\314	\nG$\210\n\315\211\205:
@\316\f\317\f\"\"\210
A\211\204&\315*\207" [gnus-registry-install mark articles remove article --dolist-tail-- ask gnus-registry-install-p gnus-registry-set-article-mark-internal t gnus-message 9 "Applying mark %s to %d articles" nil gnus-summary-update-article assoc gnus-newsgroup-data] 6 (#$ . 22086)])
#@122 Install the keyboard shortcuts and menus for the registry.
Uses `gnus-registry-marks' to find what shortcuts to install.
(defalias 'gnus-registry-install-shortcuts #[nil "\302\211\303\304\305\"\210\306\307\"\210\310\311\312\")\207" [keys-plist gnus-registry-misc-menus nil gnus-registry-do-marks :char #[(mark data) "\306\307\"\310\311\211\205{@\211\203\312\202\313\314\306	\f\"!\306\315\n\203-\226\202/\"\316
\317\320\306\321\322\f!#\323\324\325D\325\nD\326BBB\257\"\210
 B  B \327\306\330\322\f!\331!#
\332#!B!\333\334\335
#\210+A\211\204
\311+\207" [mark function-format remove --dolist-tail-- variant-name function-name format "gnus-registry-%%s-article-%s-mark" (t nil) nil "remove" "set" intern "%c" defalias lambda (&rest articles) "%s the %s mark over process-marked ARTICLES." upcase-initials (interactive (gnus-summary-work-articles current-prefix-arg)) gnus-registry--set/remove-mark quote (articles) vector "%s %s" symbol-name t gnus-message 9 "Defined mark handling function %s" data shortcut keys-plist gnus-registry-misc-menus] 11] gnus-define-keys-1 (gnus-registry-mark-map "M" gnus-summary-mark-map) add-hook gnus-summary-menu-hook #[nil "\302\303\304	B#\207" [gnus-summary-misc-menu gnus-registry-misc-menus easy-menu-add-item nil "Registry Marks"] 5]] 4 (#$ . 22613)])
(byte-code "\300\301\302\303#\210\304\301\302\"\207" [make-obsolete gnus-registry-user-format-function-M gnus-registry-article-marks-to-chars "24.1" defalias] 4)
#@54 Show the marks for an article by the :char property.
(defalias 'gnus-registry-article-marks-to-chars #[(headers) "\303H\211\205\f\304	\305\"\306\307\n\310#*\207" [headers id marks 4 gnus-registry-get-id-key mark mapconcat #[(mark) "\302\303	\"\243\304\"\207" [mark gnus-registry-marks plist-get assoc :char] 4] ""] 5 (#$ . 24109)])
#@40 Show the marks for an article by name.
(defalias 'gnus-registry-article-marks-to-names #[(headers) "\303H\211\205\f\304	\305\"\306\307\n\310#*\207" [headers id marks 4 gnus-registry-get-id-key mark mapconcat #[(mark) "\301!\207" [mark symbol-name] 2] ","] 5 (#$ . 24452)])
#@49 Read a mark name from the user with completion.
(defalias 'gnus-registry-read-mark #[nil "\303\304\305\306\305\307\"\"\310\211\211\306	!&\211;\205\311\n!)\207" [gnus-registry-marks gnus-registry-default-mark mark gnus-completing-read "Label" mapcar symbol-name car nil intern] 9 (#$ . 24736)])
#@42 Apply a mark to process-marked ARTICLES.
(defalias 'gnus-registry-set-article-mark #[(&rest articles) "\301\302 \303\304$\207" [articles gnus-registry-set-article-mark-internal gnus-registry-read-mark nil t] 5 (#$ . 25041) (gnus-summary-work-articles current-prefix-arg)])
#@45 Remove a mark from process-marked ARTICLES.
(defalias 'gnus-registry-remove-article-mark #[(&rest articles) "\301\302 \303\211$\207" [articles gnus-registry-set-article-mark-internal gnus-registry-read-mark t] 5 (#$ . 25321) (gnus-summary-work-articles current-prefix-arg)])
#@49 Apply or remove MARK across a list of ARTICLES.
(defalias 'gnus-registry-set-article-mark-internal #[(mark articles &optional remove show-message) "\306\307\"\211\310\211\205L@\311\f\312\n\304\"\"\203!
\202$\f
B\203=\313\314\315\2036\316\2027\317\f\n
&\210\320\n\304
#\210*A\211\204
\310+\207" [articles article-id-list id --dolist-tail-- mark marks mapcar gnus-registry-fetch-message-id-fast nil delq gnus-registry-get-id-key gnus-message 1 "%s mark %s with message ID %s, resulting in %S" "Removing" "Adding" gnus-registry-set-id-key remove show-message] 8 (#$ . 25603)])
#@169 Get the Gnus registry marks for ARTICLES and show them if interactive.
Uses process/prefix conventions.  For multiple articles,
only the last one's marks are returned.
(defalias 'gnus-registry-get-article-marks #[(&rest articles) "\304!\305	!\211\205\306\n\307\"\310 \203\311\312\313#\210+\207" [articles article id marks last gnus-registry-fetch-message-id-fast gnus-registry-get-id-key mark interactive-p gnus-message 1 "Marks are %S"] 5 (#$ . 26208) (gnus-summary-work-articles 1)])
#@65 Get the number of groups of a message, based on the message ID.
(defalias 'gnus-registry-group-count #[(id) "\301\302\"G\207" [id gnus-registry-get-id-key group] 3 (#$ . 26710)])
(defalias 'gnus-registry-get-or-make-entry #[(id) "\304	\nC\"\211\204\305	\n\306\307 D\310\311\312F#\210\304	\nC\"\313\n\"A@*\207" [gnus-registry-db db id entries registry-lookup gnus-registry-insert creation-time current-time (group) (sender) (subject) assoc] 8])
(defalias 'gnus-registry-delete-entries #[(idlist) "\302	\303#\207" [gnus-registry-db idlist registry-delete nil] 4])
(defalias 'gnus-registry-get-id-key #[(id key) "\302	!\236\243\207" [key id gnus-registry-get-or-make-entry] 3])
(defalias 'gnus-registry-set-id-key #[(id key vals) "\306\n!\307	\nC\310#\210\f
B\311\f\"B\312	\n#\210*\207" [gnus-registry-db db id entry key vals gnus-registry-get-or-make-entry registry-delete nil assq-delete-all gnus-registry-insert] 4])
#@58 Just like `registry-insert' but tries to prune on error.
(defalias 'gnus-registry-insert #[(db id entry) "\303!\203\304\305!\210\306!\210\307	\n#\210\n\207" [db id entry registry-full message "Trying to prune the registry because it's full" registry-prune registry-insert] 4 (#$ . 27650)])
(defalias 'gnus-registry-import-eld #[(file) "\306\307\"\210\310\311!\205\362\311J\312	G\313	\242\203\355\nT\312W\2037\314\n\315\"\312U\2037\316\317\n\n\315_\245$\210	\242	\243\f\242\320
!\f\243\211\313\211:\203r@\211;\203iBA\211\202T\237+\313\211\313\313\211\203\247@\211;\203\236\321\"A\211\204\214*\322
\323#\210\242\242\203\350\242\211\242\243\243\203\335:\204\335C\322
#\210\202\264.\202\316\324\n\",\207" [file old count expected entry id load t boundp gnus-registry-alist 0 nil mod 100 message "importing: %d of %d (%.2f%%)" gnus-registry-get-or-make-entry delq gnus-registry-set-id-key group "Import done, collected %d entries" new-entry rest #1=#:--cl-var-- p #2=#:--cl-var-- groups extra-cell key val elem --dolist-tail--] 7 nil "fOld registry file to import? "])
#@31 Initialize the Gnus registry.
(defalias 'gnus-registry-initialize #[nil "\300\301\302\"\210\303 \210\304 \210\305 \207" [gnus-message 5 "Initializing the registry" gnus-registry-install-hooks gnus-registry-install-shortcuts gnus-registry-read] 3 (#$ . 28844) nil])
#@29 Install the registry hooks.
(defalias 'gnus-registry-install-hooks #[nil "\301\302\303\304\"\210\302\305\304\"\210\302\306\304\"\210\302\307\310\"\210\302\311\312\"\210\302\313\314\"\210\302\315\316\"\207" [gnus-registry-enabled t add-hook gnus-summary-article-move-hook gnus-registry-action gnus-summary-article-delete-hook gnus-summary-article-expire-hook nnmail-spool-hook gnus-registry-spool-action gnus-save-newsrc-hook gnus-registry-save gnus-read-newsrc-el-hook gnus-registry-read gnus-summary-prepare-hook gnus-registry-register-message-ids] 3 (#$ . 29115) nil])
#@31 Uninstall the registry hooks.
(defalias 'gnus-registry-unload-hook #[nil "\301\302\303\"\210\301\304\303\"\210\301\305\303\"\210\301\306\307\"\210\301\310\311\"\210\301\312\313\"\210\301\314\315\"\210\316\211\207" [gnus-registry-enabled remove-hook gnus-summary-article-move-hook gnus-registry-action gnus-summary-article-delete-hook gnus-summary-article-expire-hook nnmail-spool-hook gnus-registry-spool-action gnus-save-newsrc-hook gnus-registry-save gnus-read-newsrc-el-hook gnus-registry-read gnus-summary-prepare-hook gnus-registry-register-message-ids nil] 3 (#$ . 29693) nil])
(byte-code "\300\301\211\"\207" [add-hook gnus-registry-unload-hook] 3)
#@209 If the registry is not already enabled, and `gnus-registry-install' is t,
the registry is enabled.  If `gnus-registry-install' is `ask',
the user is asked first.  Returns non-nil iff the registry is enabled.
(defalias 'gnus-registry-install-p #[nil "\204	\302=\203\303\304!\202	\203\305 \210\207" [gnus-registry-enabled gnus-registry-install ask gnus-y-or-n-p "Enable the Gnus registry?  See the variable `gnus-registry-install' to get rid of this query permanently. " gnus-registry-initialize] 2 (#$ . 30357) nil])
#@126 Try to warp via the registry.
This will be done via the current article's source group based on
data stored in the registry.
(defalias 'gnus-try-warping-via-registry #[nil "\306\307`\310\"\211\203\311!\210)\307`\312\"\206\313 	\2368\205N\306\307`\310\"\211\203,\311!\210)\307`\312\"\2066\313 	\2368\314H\315\n\316\"\317\f!\320 C\321\322\215,\207" [to gnus-newsgroup-data message-id groups gnus-newsgroup-name quit-config 3 get-text-property gnus-intangible gnus-summary-goto-subject gnus-number gnus-summary-last-subject 4 gnus-registry-get-id-key group gnus-ephemeral-group-p gnus-group-group-name found (byte-code "\305\306\"\307\211\205N\n@\211\235\204F\310	!\204F\311	!@\312>\204F	B\f\203:\313 \210\fA\314=\2038\313 \210\307\307\315\316\217\203F\317\320\321\"\210\nA\211\204\307*\207" [groups group --dolist-tail-- seen-groups quit-config mapcar gnus-simplify-group-name nil gnus-ephemeral-group-p gnus-find-method-for-group (nnir) gnus-summary-exit summary (byte-code "\302	\"\210\303\207" [group message-id gnus-select-group-with-message-id t] 3) ((error)) throw found t] 4) seen-groups] 5 (#$ . 30890) nil])
(provide 'gnus-registry)

MMCT - 2023