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/nnir.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:10:21 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/gnus/nnir.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!\204
\302\301\303\304B\"\210\305\306!\210\305\307!\210\305\310!\210\305\311!\207" [fboundp declare-function defalias macro #[(&rest r) "\300\207" [nil] 1] require nnoo gnus-group message gnus-util] 4)
#@48 Internal: stores current query (= group name).
(defvar nnir-current-query nil (#$ . 775))
#@57 Internal: stores current server (does it ever change?).
(defvar nnir-current-server nil (#$ . 871))
#@57 Internal: stores current list of process-marked groups.
(defvar nnir-current-group-marked nil (#$ . 977))
#@33 Internal: stores search result.
(defvar nnir-artlist nil (#$ . 1089))
#@29 Internal: temporary buffer.
(defvar nnir-tmp-buffer " *nnir*" (#$ . 1165))
#@59 Internal: the history for querying search options in nnir
(defvar nnir-search-history nil (#$ . 1246))
#@49 Internal: stores request for extra search parms
(defvar nnir-extra-parms nil (#$ . 1355))
#@70 Mapping from user readable keys to IMAP search items for use in nnir
(defvar nnir-imap-search-arguments '(("whole message" . "TEXT") ("subject" . "SUBJECT") ("to" . "TO") ("from" . "FROM") ("body" . "BODY") ("imap" . "")) (#$ . 1451))
#@140 The IMAP search item to use for anything other than
  `nnir-imap-search-arguments'. By default this is the name of an
  email header field
(defvar nnir-imap-search-other "HEADER %S" (#$ . 1693))
#@49 The history for querying search options in nnir
(defvar nnir-imap-search-argument-history nil (#$ . 1894))
#@40 Returns number of articles in artlist.
(defalias 'nnir-artlist-length '(macro . #[(artlist) "\301D\207" [artlist length] 2 (#$ . 2007)]))
#@64 Returns from ARTLIST the Nth artitem (counting starting at 1).
(defalias 'nnir-artlist-article '(macro . #[(artlist n) "\302\303\304BB\305	\306DEE\207" [n artlist when > (0) elt 1-] 6 (#$ . 2152)]))
#@37 Returns the group from the ARTITEM.
(defalias 'nnir-artitem-group '(macro . #[(artitem) "\301\302BB\207" [artitem elt (0)] 3 (#$ . 2359)]))
#@38 Returns the number from the ARTITEM.
(defalias 'nnir-artitem-number '(macro . #[(artitem) "\301\302BB\207" [artitem elt (1)] 3 (#$ . 2506)]))
#@67 Returns the Retrieval Status Value (RSV, score) from the ARTITEM.
(defalias 'nnir-artitem-rsv '(macro . #[(artitem) "\301\302BB\207" [artitem elt (2)] 3 (#$ . 2655)]))
#@31 Returns the group for ARTICLE
(defalias 'nnir-article-group '(macro . #[(article) "\301\302\303ED\207" [article nnir-artitem-group nnir-artlist-article nnir-artlist] 4 (#$ . 2830)]))
#@32 Returns the number for ARTICLE
(defalias 'nnir-article-number '(macro . #[(article) "\301\302\303ED\207" [article nnir-artitem-number nnir-artlist-article nnir-artlist] 4 (#$ . 3020)]))
#@29 Returns the rsv for ARTICLE
(defalias 'nnir-article-rsv '(macro . #[(article) "\301\302\303ED\207" [article nnir-artitem-rsv nnir-artlist-article nnir-artlist] 4 (#$ . 3213)]))
#@51 Returns the pair `(nnir id . real id)' of ARTICLE
(defalias 'nnir-article-ids #[(article) "\211\302V\205	S\234\303\234B\207" [article nnir-artlist 0 1] 3 (#$ . 3397)])
(put 'nnir-article-ids 'byte-optimizer 'byte-compile-inline-expand)
#@331 Sorts a sequence into categories and returns a list of the form
`((key1 (element11 element12)) (key2 (element21 element22))'.
The category key for a member of the sequence is obtained
as `(keyfunc member)' and the corresponding element is just
`member'. If `valuefunc' is non-nil, the element of the list
is `(valuefunc member)'.
(defalias 'nnir-categorize '(macro . #[(sequence keyfunc &optional valuefunc) "\303\304D\305\306\307\310\311\305\312	\313BD\314\n\203\n\315B\202\316DD\317BBEE\320BBBE\207" [sequence keyfunc valuefunc unless null let (value) mapc lambda (member) y (member) x (member) member ((if (assoc y value) (push x (cadr (assoc y value))) (push (list y (list x)) value))) (value)] 12 (#$ . 3644)]))
(byte-code "\302\303!\210\304\236\203\304\236A\305\306\307\"\240\210\202\"\304\305\306\307\"\307\211FB\304	\236\204.\304\310D	B\311\304!\207" [nnoo-definition-alist nnoo-state-alist require gnus-sum nnir mapcar list nil "*internal-non-initialized-backend*" nnoo-define-basics-1] 4)
#@105 The address of the nnir server.

This is a Gnus server variable.  See Info node `(gnus)Select Methods'.
(defvar nnir-address nil (#$ . 4665))
(byte-code "\301\302\303\"\210\304\305\306\307#\210\310\311\303\312\313\314%\210\315\316\317\320\321\322\323\324\313\311&	\210\315\325\303\326\321\322\323\327\313\311&	\210\315\330\303\331\321\322\323\332\313\311&	\210\315\333\334\335\321\322\323\336\337\340\"B\313\311&	\210\315\341\342\343\323\344\313\311&\210\315\345\346\347\323\350\313\311&\210\315\351\352\353\323\354\313\311&\210\315\355\356\357\323\360\313\311&\210\361\362\363\364#\210\315\362\365\366\323\367\313\311&\210\315\363\370\371\323\372\313\311&\210\315\373\374\375\323\376\313\311&\210\315\377\201@\201A\323\201B\313\311&\210\315\201C\201D\201E\323\201F\313\311&\210\315\201G\201H\201I\323\201J\313\311&\210\315\201K\201L\201M\323\201N\313\311&\210\315\201O\201P\201Q\323\201R\313\311&\210\315\201S\201T\201U\323\201V\313\311&\210\315\201W\201X\201Y\323\201Z\313\311&\210\315\201[\201\\\201]\323\201^\313\311&\210\315\201_\201`\201a\323\201b\313\311&\210\315\201c\201d\201e\323\201f\313\311&\210\315\201g\201h\201i\321\322\323\201j\313\311&	\210\315\201k\201l\201m\321\322\323\201n\313\311&	\210\315\201o\201p\201q\321\322\323\201r\313\311&	\207" [nnir-imap-search-arguments nnoo-define nnir-address nil gnus-declare-backend "nnir" mail virtual custom-declare-group nnir "Search groups in Gnus with assorted search engines." :group gnus custom-declare-variable nnir-ignored-newsgroups "" "*A regexp to match newsgroups in the active file that should\n  be skipped when searching." :version "24.1" :type (regexp) nnir-summary-line-format "*The format specification of the lines in an nnir summary buffer.\n\nAll the items from `gnus-summary-line-format' are available, along\nwith three items unique to nnir summary buffers:\n\n%Z    Search retrieval score value (integer)\n%G    Article original full group name (string)\n%g    Article original short group name (string)\n\nIf nil this will use `gnus-summary-line-format'." (string) nnir-retrieve-headers-override-function "*If non-nil, a function that accepts an article list and group\nand populates the `nntp-server-buffer' with the retrieved\nheaders. Must return either 'nov or 'headers indicating the\nretrieved header format.\n\nIf this variable is nil, or if the provided function returns nil for a search\nresult, `gnus-retrieve-headers' will be called instead." (function) nnir-imap-default-search-key "whole message" "*The default IMAP search key for an nnir search. Must be one of\n  the keys in `nnir-imap-search-arguments'. To use raw imap queries\n  by default set this to \"Imap\"." choice mapcar #[(elem) "\301@D\207" [elem const] 2] nnir-swish++-configuration-file (expand-file-name "~/Mail/swish++.conf") "*Configuration file for swish++." (file) nnir-swish++-program "search" "*Name of swish++ search executable." (string) nnir-swish++-additional-switches 'nil "*A list of strings, to be given as additional arguments to swish++.\n\nNote that this should be a list.  Ie, do NOT use the following:\n    (setq nnir-swish++-additional-switches \"-i -w\") ; wrong\nInstead, use this:\n    (setq nnir-swish++-additional-switches '(\"-i\" \"-w\"))" (repeat (string)) nnir-swish++-remove-prefix (concat (getenv "HOME") "/Mail/") "*The prefix to remove from each file name returned by swish++\nin order to get a group name (albeit with / instead of .).  This is a\nregular expression.\n\nThis variable is very similar to `nnir-namazu-remove-prefix', except\nthat it is for swish++, not Namazu." (regexp) make-obsolete-variable nnir-swish-e-index-file nnir-swish-e-index-files "Emacs 23.1" (expand-file-name "~/Mail/index.swish-e") "*Index file for swish-e.\nThis could be a server parameter.\nIt is never consulted once `nnir-swish-e-index-files', which should be\nused instead, has been customized." (file) (list nnir-swish-e-index-file) "*List of index files for swish-e.\nThis could be a server parameter." (repeat (file)) nnir-swish-e-program "swish-e" "*Name of swish-e search executable.\nThis cannot be a server parameter." (string) nnir-swish-e-additional-switches 'nil "*A list of strings, to be given as additional arguments to swish-e.\n\nNote that this should be a list.  Ie, do NOT use the following:\n    (setq nnir-swish-e-additional-switches \"-i -w\") ; wrong\nInstead, use this:\n    (setq nnir-swish-e-additional-switches '(\"-i\" \"-w\"))\n\nThis could be a server parameter." (repeat (string)) nnir-swish-e-remove-prefix (concat (getenv "HOME") "/Mail/") "*The prefix to remove from each file name returned by swish-e\nin order to get a group name (albeit with / instead of .).  This is a\nregular expression.\n\nThis variable is very similar to `nnir-namazu-remove-prefix', except\nthat it is for swish-e, not Namazu.\n\nThis could be a server parameter." (regexp) nnir-hyrex-program "nnir-search" "*Name of the nnir-search executable." (string) nnir-hyrex-additional-switches 'nil "*A list of strings, to be given as additional arguments for nnir-search.\nNote that this should be a list. Ie, do NOT use the following:\n    (setq nnir-hyrex-additional-switches \"-ddl ddl.xml -c nnir\") ; wrong !\nInstead, use this:\n    (setq nnir-hyrex-additional-switches '(\"-ddl\" \"ddl.xml\" \"-c\" \"nnir\"))" (repeat (string)) nnir-hyrex-index-directory (getenv "HOME") "*Index directory for HyREX." (directory) nnir-hyrex-remove-prefix (concat (getenv "HOME") "/Mail/") "*The prefix to remove from each file name returned by HyREX\nin order to get a group name (albeit with / instead of .).\n\nFor example, suppose that HyREX returns file names such as\n\"/home/john/Mail/mail/misc/42\".  For this example, use the following\nsetting:  (setq nnir-hyrex-remove-prefix \"/home/john/Mail/\")\nNote the trailing slash.  Removing this prefix gives \"mail/misc/42\".\n`nnir' knows to remove the \"/42\" and to replace \"/\" with \".\" to\narrive at the correct group name, \"mail.misc\"." (directory) nnir-namazu-program "namazu" "*Name of Namazu search executable." (string) nnir-namazu-index-directory (expand-file-name "~/Mail/namazu/") "*Index directory for Namazu." (directory) nnir-namazu-additional-switches 'nil "*A list of strings, to be given as additional arguments to namazu.\nThe switches `-q', `-a', and `-s' are always used, very few other switches\nmake any sense in this context.\n\nNote that this should be a list.  Ie, do NOT use the following:\n    (setq nnir-namazu-additional-switches \"-i -w\") ; wrong\nInstead, use this:\n    (setq nnir-namazu-additional-switches '(\"-i\" \"-w\"))" (repeat (string)) nnir-namazu-remove-prefix (concat (getenv "HOME") "/Mail/") "*The prefix to remove from each file name returned by Namazu\nin order to get a group name (albeit with / instead of .).\n\nFor example, suppose that Namazu returns file names such as\n\"/home/john/Mail/mail/misc/42\".  For this example, use the following\nsetting:  (setq nnir-namazu-remove-prefix \"/home/john/Mail/\")\nNote the trailing slash.  Removing this prefix gives \"mail/misc/42\".\n`nnir' knows to remove the \"/42\" and to replace \"/\" with \".\" to\narrive at the correct group name, \"mail.misc\"." (directory) nnir-notmuch-program "notmuch" "*Name of notmuch search executable." (string) nnir-notmuch-additional-switches 'nil "*A list of strings, to be given as additional arguments to notmuch.\n\nNote that this should be a list.  Ie, do NOT use the following:\n    (setq nnir-notmuch-additional-switches \"-i -w\") ; wrong\nInstead, use this:\n    (setq nnir-notmuch-additional-switches '(\"-i\" \"-w\"))" (repeat (string)) nnir-notmuch-remove-prefix (concat (getenv "HOME") "/Mail/") "*The prefix to remove from each file name returned by notmuch\nin order to get a group name (albeit with / instead of .).  This is a\nregular expression.\n\nThis variable is very similar to `nnir-namazu-remove-prefix', except\nthat it is for notmuch, not Namazu." (regexp)] 11)
#@837 Alist of supported search engines.
Each element in the alist is a three-element list (ENGINE FUNCTION ARGS).
ENGINE is a symbol designating the searching engine.  FUNCTION is also
a symbol, giving the function that does the search.  The third element
ARGS is a list of cons pairs (PARAM . PROMPT).  When issuing a query,
the FUNCTION will issue a query for each of the PARAMs, using PROMPT.

The value of `nnir-search-engine' must be one of the ENGINE symbols.
For example, for searching a server using namazu include
    (nnir-search-engine namazu)
in the server definition.  Note that you have to set additional
variables for most backends.  For example, the `namazu' backend
needs the variables `nnir-namazu-program',
`nnir-namazu-index-directory' and `nnir-namazu-remove-prefix'.

Add an entry here when adding a new search engine.
(defvar nnir-engines (byte-code "\302\303\304\305\306\307\"\310\211\311	\257CE\312B\207" [nnir-imap-search-arguments nnir-imap-default-search-key imap nnir-run-imap criteria "Imap Search in" mapcar car nil nnir-imap-search-argument-history ((gmane nnir-run-gmane ((author . "Gmane Author: "))) (swish++ nnir-run-swish++ ((group . "Swish++ Group spec: "))) (swish-e nnir-run-swish-e ((group . "Swish-e Group spec: "))) (namazu nnir-run-namazu nil) (notmuch nnir-run-notmuch nil) (hyrex nnir-run-hyrex ((group . "Hyrex Group spec: "))) (find-grep nnir-run-find-grep ((grep-options . "Grep options: "))))] 9) (#$ . 12696))
(byte-code "\301\302\303\304\305\306\307\310\311\312\313\314\315\"BED\316\317&	\207" [nnir-engines custom-declare-variable nnir-method-default-engines '((nnimap . imap) (nntp . gmane)) "*Alist of default search engines keyed by server method." :version "24.1" :type repeat cons (choice (const nnimap) (const nttp) (const nnspool) (const nneething) (const nndir) (const nnmbox) (const nnml) (const nnmh) (const nndraft) (const nnfolder) (const nnmaildir)) choice mapcar #[(elem) "\301@D\207" [elem const] 2] :group nnir] 14)
#@40 Create an nnir group.  Asks for query.
(defalias 'gnus-group-make-nnir-group #[(nnir-extra-parms &optional parms) "\306\211\306\211\f?\205\307\310\306\311#\f\206\305
BC\312\f\236A\206)\313 \206)\314\315\304\316\317 B\320#\210\321\322\323\f!P\324D\320pB\306%+\207" [nnir-current-query nnir-current-server nnir-current-group-marked nnir-artlist parms query nil read-string "Query: " nnir-search-history server gnus-server-server-name "nnir" add-to-list unique-id message-unique-id t gnus-group-read-ephemeral-group "nnir:" prin1-to-string nnir srv gnus-current-window-configuration] 7 (#$ . 14686) "P"])
(defalias 'nnir-open-server #[(server &optional definitions) "\302\303\304\"\210\305\306	#\207" [server definitions add-hook gnus-summary-mode-hook nnir-mode nnoo-change-server nnir] 4])
(nnoo-register-function 'nnir-open-server)
#@28 GROUP is the query string.
(defalias 'nnir-request-group #[(group &optional server fast info) "\306!\210	\n\232\203 \f\232\203 \203
\232\203 \210\202%\307	!rq\210	\2032\310G!\203C\311\312\313\"\202N\314\315G\316G	%)\207" [server group nnir-current-query gnus-group-marked nnir-current-group-marked nnir-current-server nnir-possibly-change-server nnir-run-query zerop nnheader-report nnir "Search produced empty results." nnheader-insert "211 %d %d %d %s\n" 1 nnir-artlist nntp-server-buffer] 6 (#$ . 15543)])
(nnoo-register-function 'nnir-request-group)
(defalias 'nnir-retrieve-headers #[(articles &optional group server fetch-old) "rq\210\306	\205\307\310\311	\"\210\n)\307\f\203\361\f\211A@\211(@)(\211*A@)+\312\313\314+\"\315\",)-\316\317-\"\203Y\320\321\322\323-\"\322\324-\"\206U\325#\202g\320\321.@.\211*A@)#)\211/\211/\203|/<\203|/\206h\326/0\"A\206h/\327\232\203\222.\206L\326/1\"A\206L\326/2\"A\206L344\203\316/\320\3214@@@4@@A@#\232\204\3164\211A4@\210\202\2524\211*@@*\206L566\203/\320\3216\211*@@)6@A@#\232\2046\211A6@\210\202\3356@)\206L7A\307\21189::\203I\330:\211A:@8\2119;\204/9\307\306;<9\331\332\215+\232\20398\307\211:\2048+\211=\203e\326/0\"\204e/=B0B0=))>\307?\333/!\210\334 \210@\203\205@,)\"\206\214\335,)\307#\211AB\336B\337\"\203\237\340?\202\265\336B\303\"\203\255\341?\202\265\342\343A)#\210)eb\210m\204\354? \211C\205\312C\344HD\345D+\"@\211E\203\345C\344EI\210CB\323y\210+\202\271.\202\312\346\"\334 \210\310\347\"\210,\337\207" [nntp-server-buffer articles value headers articles-by-group gnus-inhibit-demon t nil mapc #[(member) "\306V\205\n	S\234\306\234\211\211\306V\205	\nS\234\307\234)B\310\f
\"\203<\310\f
\"\211	A	\211A@)B\240)\202D\fCD
B\211*\207" [member nnir-artlist article x y value 0 1 assoc #1=#:v] 5] sort mapcar cdr < string-match "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" format "%s:%s" match-string 1 2 #2="" assoc "native" 4 server-name (byte-code "\206	\n\204\306\307\"\210\306\310\f
D\"\210\211A@)\311\235\203*\312\313@\"\2026\312\314@\211A@)#\211B\211\235\204V\204V\315@\"\204VB*\207" [method gnus-select-method nocache gnus-server-method-cache gnus-server-alist gnus-predefined-server-alist mapc #[(name-method) "A	\232\205\f\302\303@\"\207" [name-method method throw server-name] 3] #[(server-alist) "\301\302\"\207" [server-alist mapc #[(name-method) "\303A	\"\205\n\235\204\nB\304\305@\"\207" [name-method method gnus-server-method-cache gnus-methods-equal-p throw server-name] 3]] 3] (nil #2#) format "%s" "%s:%s" assoc x name name-method no-enter-cache] 5) nnir-possibly-change-server erase-buffer gnus-retrieve-headers eql nov nnheader-parse-nov nnheader-parse-head error "Unknown header type %s while requesting articles                     of group %s" 0 rassq #[(x y) "\302H	\302HW\207" [x y 0] 3] nnheader-insert-nov group-articles artgroup x articleids artlist gname gnus-select-method server gnus-server-method-cache gnus-server-alist gnus-predefined-server-alist gnus-opened-servers opened gnus-secondary-select-methods servers gnus-newsrc-alist match method alist no-enter-cache nocache result gnus-override-method parsefunc nnir-retrieve-headers-override-function gnus-headers-retrieved-by #3=#:--cl-var-- novitem artno art] 7])
(nnoo-register-function 'nnir-retrieve-headers)
(defalias 'nnir-request-article #[(article &optional group server to-buffer) ";\203\375	\211\203	<\203	\206\360\306	\n\"A\206\360	\307\232\203&\206\331\306	\f\"A\206\331\306	
\"A\206\331!\"\"\203]	\310\311\"@@@\"@@A@#\232\204]\"\211A\"@\210\202:\"\211#@@*\206\331$%%\203\221	\310\311%\211#@@)%@A@#\232\204\221%\211A%@\210\202l%@)\206\331&A\312\211'())\203\326\313)\211A)@8\211(;\204\243	(\312\314*+(\315\316\215+\232\203\243('\312\211)\204\250'+\211,\203\355\306	\n\"\204\355	,B\nB,))@\317=\204\375\320\321\322	#\207\212\312\211;\203&	\211\203	<\203	\206\363\306	\n\"A\206\363	\307\232\203)\206\334\306	\f\"A\206\334\306	
\"A\206\334!\"\"\203`	\310\311\"@@@\"@@A@#\232\204`\"\211A\"@\210\202=\"\211#@@*\206\334$%%\203\224	\310\311%\211#@@)%@A@#\232\204\224%\211A%@\210\202o%@)\206\334&A\312\211'())\203\331\313)\211A)@8\211(;\204\246	(\312\314*+(\315\316\215+\232\203\246('\312\211)\204\253'+\211,\203\360\306	\n\"\204\360	,B\nB,))-\323\310\324\"B\325B\326\327B\330\314BF\211.\232\203	/\232\204$\331	\"0.	/\332\3330G!?\205z\334V\205:0S\234\334\234\334V\205G0S\234\332\23412\335\33612#\2103\203mr3q\210\3124\33712\"\210*\202t\34012\"\21021*B+\207" [article server gnus-server-method-cache gnus-select-method gnus-server-alist gnus-predefined-server-alist assoc "native" format "%s:%s" nil 4 t server-name (byte-code "\206	\n\204\306\307\"\210\306\310\f
D\"\210\211A@)\311\235\203*\312\313@\"\2026\312\314@\211A@)#\211B\211\235\204V\204V\315@\"\204VB*\207" [method gnus-select-method nocache gnus-server-method-cache gnus-server-alist gnus-predefined-server-alist mapc #[(name-method) "A	\232\205\f\302\303@\"\207" [name-method method throw server-name] 3] #[(server-alist) "\301\302\"\207" [server-alist mapc #[(name-method) "\303A	\"\205\n\235\204\nB\304\305@\"\207" [name-method method gnus-server-method-cache gnus-methods-equal-p throw server-name] 3]] 3] (nil #1="") format "%s" "%s:%s" assoc x name name-method no-enter-cache] 5) nnimap nnheader-report nnir "nnir-request-article only groks message ids for nnimap servers: %s" query "HEADER Message-ID %s" unique-id criteria #1# shortcut nnir-run-imap 1 zerop 0 message "Requesting article %d from group %s" gnus-request-article-this-buffer gnus-request-article gnus-opened-servers opened x gnus-secondary-select-methods servers gnus-newsrc-alist match method alist no-enter-cache nocache result gnus-override-method nnir-current-query nnir-current-server nnir-artlist artno artfullgroup to-buffer gnus-article-decode-hook] 6])
(nnoo-register-function 'nnir-request-article)
(defalias 'nnir-request-move-article #[(article group server accept-form &optional last internal-move-group) "\306V\205\n	S\234\306\234\306V\205	S\234\307\234\fA@\310
!\310\n!\311\"\312\n\313\314\315\217*\204C\316\317\n\"\210\320\nA@\f\205m
\205m
\321\322\"\203j\306\225\313O\202l)&.\207" [article nnir-artlist artfullgroup artno accept-form to-newsgroup 0 1 gnus-find-method-for-group gnus-server-equal request-move-article nil (byte-code ";\203\f\303!@\202
\304	!\204\305	!\210\306\307\310\311	\n#!!)\207" [group method func gnus-find-method-for-group featurep require fboundp intern format "%s-%s"] 6) ((error)) error "The group %s does not support article moving" gnus-request-move-article string-match "^[^:]+:" to-method from-method move-is-internal group func last gname] 9])
(nnoo-register-function 'nnir-request-move-article)
(defalias 'nnir-request-expire-articles #[(articles group &optional server force) "\203p	\205\306\307\310	\"\210\n)\306\f\203g\f\211A@\211@
\211A@)\311\312\313\"\314\"\315\306\316\317\217*\204J\320\321\"\210\322\323!!\204Y\320\324\"\210\325#B,\202\311\326\306\"\314\"*\207	\207" [force articles value not-deleted articles-by-group group-articles nil mapc #[(member) "\306V\205\n	S\234\306\234\211\211\306V\205	\nS\234\307\234)B\310\f
\"\203<\310\f
\"\211	A	\211A@)B\240)\202D\fCD
B\211*\207" [member nnir-artlist article x y value 0 1 assoc #1=#:v] 5] sort mapcar cdr < request-expire-articles (byte-code ";\203\f\303!@\202
\304	!\204\305	!\210\306\307\310\311	\n#!!)\207" [group method func gnus-find-method-for-group featurep require fboundp intern format "%s-%s"] 6) ((error)) error "The group %s does not support article deletion" gnus-check-server gnus-find-method-for-group "Couldn't open server for group %s" gnus-request-expire-articles delq artgroup x articleids artlist group func] 5])
(nnoo-register-function 'nnir-request-expire-articles)
(defalias 'nnir-warp-to-article #[nil "\306`\307\"\211\203
\310!\210)\306`\311\"\206\312 \313V\2036\306`\307\"\211\203)\310!\210)\306`\311\"\2069\312 \2029\314\315!\211\313V\205D\n	S\234\313\234	\313V\205Q\n	S\234\316\234\317
!\320 \210A\321=\203g\320 \210\322\323\211\324\211\fC&,\207" [to cur nnir-artlist backend-article-group backend-article-number gnus-newsgroup-name get-text-property gnus-intangible gnus-summary-goto-subject gnus-number gnus-summary-last-subject 0 error "This is not a real article" 1 gnus-ephemeral-group-p gnus-summary-exit summary gnus-summary-read-group-1 t nil quit-config] 8])
(byte-code "\300\301!\210\302\303!\207" [nnoo-register-function nnir-warp-to-article nnoo-define-skeleton-1 nnir] 2)
#@98 Ask `nnir-compose-result' to construct a result vector,
and if it is non-nil, add it to artlist.
(defalias 'nnir-add-result '(macro . #[(dirnam artno score prefix server artlist) "\306\307\310	\n\f\257DC\311\312\313\307
EEE\207" [dirnam artno score prefix server artlist let result nnir-compose-result when (not (null result)) push] 8 (#$ . 24564)]))
(autoload 'nnmaildir-base-name-to-article-number "nnmaildir")
#@108 Extract the group from dirnam, and create a result vector
ready to be added to the list of search results.
(defalias 'nnir-compose-result #[(dirnam article score prefix server) "\306\307P	\"\203\310\311\312\211	$\313	\nQ!\205\251	\314\306\315\306\316\f\"\2038\317\320\321\322\f\"\321\323\f\"\2064\311#\202D\317\320
@
\211 A@)#)\"\203M\324\202N\325O\326\211	\327\311\312$\330\331\312$!\332\333!\"\306\315\306\316\f\"\203\200\317\320\321\322\f\"\321\323\f\"\206|\311#\202\214\317\320
@
\211 A@)#)\"\203\240\334\n\314\306\335\n\"O!\336#\202\243\337\n!\337\"!#)\207" [prefix dirnam article server gname gnus-select-method string-match "^" replace-match "" t file-readable-p 0 "^nnmaildir:" "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" format "%s:%s" match-string 1 2 -5 -1 gnus-replace-in-string "^[./\\]" "[/\\]" "." vector gnus-group-full-name nnmaildir-base-name-to-article-number ":" nil string-to-number x group score] 11 (#$ . 24987)])
#@170 Run a search against an IMAP back-end server.
This uses a custom query language parser; see `nnir-imap-make-query' for
details on the language and supported extensions.
(defalias 'nnir-run-imap #[(query srv &optional groups) "\212\300\236A	\211\203\n<\203\n\206\361\306\n\"A\206\361\n\307\232\203&\f\206\332\306\n
\"A\206\332\306\n\"A\206\332\203^\n\310\311@@@@@A@#\232\204^\211A@\210\202;\211@@*\206\332\203\222\n\310\311\211@@)@A@#\232\204\222\211A@\210\202m@)\206\332A\312\211  \203\327\313 \211A @8\211;\204\244\n\312\314!\"\315\316\215+\232\203\244\312\211 \204\251+\211#\203\356\306\n\"\204\356\n#BB#))\211A@)	\211\203\n<\203\n\206\344\306\n\"A\206\344\n\307\232\203\f\206\315\306\n
\"A\206\315\306\n\"A\206\315\203Q\n\310\311@@@@@A@#\232\204Q\211A@\210\202.\211@@*\206\315\203\205\n\310\311\211@@)@A@#\232\204\205\211A@\210\202`@)\206\315A\312\211  \203\312\313 \211A @8\211;\204\227\n\312\314!\"\315\316\215+\232\203\227\312\211 \204\234+\211#\203\341\306\n\"\204\341\n#BB#))AA@\317\236A\206\366\306$%\"A\314&\206\377\320	!&'()\321\322\n\"\210\323\324\325\326\215\".\207" [query srv server gnus-server-method-cache gnus-select-method gnus-server-alist assoc "native" format "%s:%s" nil 4 t server-name (byte-code "\206	\n\204\306\307\"\210\306\310\f
D\"\210\211A@)\311\235\203*\312\313@\"\2026\312\314@\211A@)#\211B\211\235\204V\204V\315@\"\204VB*\207" [method gnus-select-method nocache gnus-server-method-cache gnus-server-alist gnus-predefined-server-alist mapc #[(name-method) "A	\232\205\f\302\303@\"\207" [name-method method throw server-name] 3] #[(server-alist) "\301\302\"\207" [server-alist mapc #[(name-method) "\303A	\"\205\n\235\204\nB\304\305@\"\207" [name-method method gnus-server-method-cache gnus-methods-equal-p throw server-name] 3]] 3] (nil #1="") format "%s" "%s:%s" assoc x name name-method no-enter-cache] 5) criteria nnir-get-active message "Opening server %s" apply vconcat found (mapcar #[(group) "\301\211\302\303\217\210\237)\207" [artlist nil (byte-code "\306\307!	\"\203Br\310 q\210\311\312\"\210\313\314\315\n\316\230\203 \202$\317\n\"\"\320\321\f@\2054\322\323\fA\"A\"\210\311\324
#\210+\311\325\"\210\306\207" [group server criteria qstring result arts nnimap-possibly-change-group gnus-group-short-name nnimap-buffer message "Searching %s..." 0 nnimap-command "UID SEARCH %s" #1# nnir-imap-make-query mapc #[(artnum) "\306!\211\307V\205\"\310\n	\311#B\312\f\236\203\313\314C\"\210
T\211)\207" [artnum artn group artlist query arts string-to-number 0 vector 100 shortcut throw found] 5] assoc "SEARCH" "Searching %s... %d matches" "Searching %s...done"] 6) ((quit))] 4] groups) gnus-predefined-server-alist gnus-opened-servers opened x gnus-secondary-select-methods servers gnus-newsrc-alist match method alist no-enter-cache nocache result nnir-imap-default-search-key nnir-imap-search-arguments groups gnus-inhibit-demon defs qstring] 8 (#$ . 25955)])
#@1142 Parse the query string and criteria into an appropriate IMAP search
expression, returning the string query to make.

This implements a little language designed to return the expected results
to an arbitrary query string to the end user.

The search is always case-insensitive, as defined by RFC2060, and supports
the following features (inspired by the Google search input language):

Automatic "and" queries
    If you specify multiple words then they will be treated as an "and"
    expression intended to match all components.

Phrase searches
    If you wrap your query in double-quotes then it will be treated as a
    literal string.

Negative terms
    If you precede a term with "-" then it will negate that.

"OR" queries
    If you include an upper-case "OR" in your search it will cause the
    term before it and the term after it to be treated as alternatives.

In future the following will be added to the language:
 * support for date matches
 * support for location of text matching within the query
 * from/to/etc headers
 * additional search terms
 * flag based searching
 * anything else that the RFC supports, basically.
(defalias 'nnir-imap-make-query #[(criteria qstring) "\302\303	!\"\207" [criteria qstring nnir-imap-query-to-imap nnir-imap-parse-query] 4 (#$ . 29140)])
#@45 Turn a s-expression format query into IMAP.
(defalias 'nnir-imap-query-to-imap #[(criteria query) "\301\302\303#\207" [query mapconcat #[(item) "\302	\"\207" [criteria item nnir-imap-expr-to-imap] 3] " "] 4 (#$ . 30442)])
#@57 Convert EXPR into an IMAP search expression on CRITERIA
(defalias 'nnir-imap-expr-to-imap #[(criteria expr) ";\203\303\304	#\207\305=\203\306\207\242\307=\203.\303\310\311	\211A@)\"\311	AA@\"#\207\242\312=\203>\303\313\314	A\"\"\207\203O<\203O\303\315\314	\"\"\207\316\317\"\207" [expr criteria x format "%s %S" and nil or "OR %s %s" nnir-imap-expr-to-imap not "NOT (%s)" nnir-imap-query-to-imap "(%s)" error "Unhandled input: %S"] 7 (#$ . 30672)])
#@236 Turn STRING into an s-expression based query based on the IMAP
query language as defined in `nnir-imap-make-query'.

This involves turning individual tokens into higher level terms
that the search language can then understand and use.
(defalias 'nnir-imap-parse-query #[(string) "\303\304!rq\210\305\216	c\210eb\210\306\307 \204\310 \nB\202\311\n!,\207" [#1=#:temp-buffer string out generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) nil nnir-imap-end-of-input nnir-imap-next-expr reverse] 2 (#$ . 31149)])
#@53 Return the next expression from the current buffer.
(defalias 'nnir-imap-next-expr #[(&optional count) "\303!\304 	\305=\203\305\n\306\307!E\202\n*\207" [count next term nnir-imap-next-term nnir-imap-peek-symbol or nnir-imap-next-expr 2] 4 (#$ . 31729)])
#@47 Return the next TERM from the current buffer.
(defalias 'nnir-imap-next-term #[(&optional count) "\302!\211\303=\203\303\202	\304=\203\304\305 D\202	)\207" [count term nnir-imap-next-symbol and not nnir-imap-next-expr] 3 (#$ . 31997)])
#@71 Return the next symbol from the current buffer, but don't consume it.
(defalias 'nnir-imap-peek-symbol #[nil "\212\300 )\207" [nnir-imap-next-symbol] 1 (#$ . 32249)])
#@181 Return the next symbol from the current buffer, or nil if we are
at the end of the buffer.  If supplied COUNT skips some symbols before
returning the one at the supplied position.
(defalias 'nnir-imap-next-symbol #[(&optional count) "\247\203\304V\203\305S!\210\306\307 ?\205\210\310\311!\203%\304u\210\312\202\210\310\313!\2031\314\313!\202\210\310\315!\203?\316\314\317!!\202\210\310\320!\203L\321u\210\322\202\210\310\323!\203Y\324u\210\325\202\210\310\326!\203f\321u\210\312\202\210`\327\330\331\306#\203\200\332\224\333\334\335\332!\"\203\202\336u\210\202\202db\211\n{*)\207" [count case-fold-search end start 1 nnir-imap-next-symbol t nnir-imap-end-of-input looking-at "-" not "\"" nnir-imap-delimited-string "(" nnir-imap-parse-query ")" "\\band\\b" 3 and "\\bor\\b" 2 or "\\bnot\\b" search-forward-regexp "[[:blank:]]" nil 0 string-match "[^[:blank:]]" match-string -1] 7 (#$ . 32423)])
#@52 Return a delimited string from the current buffer.
(defalias 'nnir-imap-delimited-string #[(delimiter) "`\304\305u\210\204+\306\n\304\307#\204\310\311\n\"\210`\211\312ZS{\313\232\204'`)\202	TS{*\207" [end start delimiter here nil 1 search-forward t error "Unmatched delimited input with %s in query" 2 "\\"] 5 (#$ . 33350)])
#@29 Are we at the end of input?
(defalias 'nnir-imap-end-of-input #[nil "\300\301w\210\302\303!\207" ["[[:blank:]]" nil looking-at "$"] 2 (#$ . 33694)])
#@184 Run QUERY against swish++.
Returns a vector of (group name, file name) pairs (also vectors,
actually).

Tested with swish++ 4.7 on GNU/Linux and with swish++ 5.0b2 on
Windows NT 4.0.
(defalias 'nnir-run-swish++ #[(query server &optional group) "\212\300\236A\306\236A\307\310	\"\311\312\313	\312\314\n\"\203+\315\316\317\320\n\"\317\321\n\"\206'\322#\2026\315\316@\211A@)#)\"\203?\323\202@\324\311\211\211\2116789:;<\211=\322\232\203_\325\326!\210\327>!q\210\330 \210<\203x\331\332=<#\210\202~\331\333=\"\210?\311\334\311\335\307\336	\"\337\307\340	\"=C\"BBBBBB@\331\341?\342\343@AAAA\344##\210\345\346@\"\211A\203\316\347A!\204\316\350\351\352A#\210B\353V\203\316\354>!\210*eb\210\355\356\311\334#\203%\317\320!8\317\321!\357
!7\360
!6\31297\"\203\3226\203\322<\203	\312<6\"\203\322\361678;	%\211C\203!C:B:)\202\322\331\362!\210\345\363\364:\365\"\".\n\207" [query server gname gnus-select-method x filenam group nnir-read-server-parm nnir-swish++-remove-prefix nil string-match "^nnmaildir:" "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" format "%s:%s" match-string 1 2 "" ":[0-9]+" "^[0-9]+\\(\\.[a-z0-9]+\\)?$" error "swish++: You didn't enter anything" get-buffer-create erase-buffer message "Doing swish++ query %s on %s..." "Doing swish++ query %s..." t "--config-file" nnir-swish++-configuration-file append nnir-swish++-additional-switches "%s args: %s" mapconcat identity " " apply call-process zerop nnheader-report nnir "Couldn't run swish++: %s" 6 display-buffer re-search-forward "\\(^[0-9]+\\) \\([^ ]+\\) [0-9]+ \\(.*\\)$" file-name-nondirectory file-name-directory nnir-compose-result "Massaging swish++ output...done" vector sort #[(x y) "\302\234	\302\234V\207" [x y 2] 3] dirnam artno score article-pattern artlist prefix groupspec qstring nnir-tmp-buffer nnir-swish++-program cp-list exitstatus gnus-verbose result] 13 (#$ . 33850)])
#@156 Run given query against swish-e.
Returns a vector of (group name, file name) pairs (also vectors,
actually).

Tested with swish-e-2.0.1 on Windows NT 4.0.
(defalias 'nnir-run-swish-e #[(query server &optional group) "\212\300\236A\306\307	\"\206\310\311!\312\211\211\211\211<=\211>\313\232\203(\310\314!\210\315?!q\210\316 \210\317\320\"\210\306\321	\"\206@\310\322!@\306\323	\"AB\312\324\312\325\326@A\327>D#BBBBBC\317\330B\331\332CAAAA\333##\210\334\335C\"\211D\203\224\336D!\204\224\337\340\341D#\210E\342V\203\224\343?!\210,eb\210\344\345\312\324#\203\367\346\347!\346\350!\351\346\352!!\353\354\f\"\203\230\203\230\353\355=P\"\203\312\356\313\324\211$\357\360O\353\361\"\210\362\346\347\"\363\364#\362\n\365\364#\366\367\n	\"\370\f!\370
!#<B<\202\230\317\371!\210\334\366\372<\373\"\".\207" [query server group dirnam artno score nnir-read-server-parm nnir-swish-e-remove-prefix error "Missing parameter `nnir-swish-e-remove-prefix'" nil "" "swish-e: You didn't enter anything" get-buffer-create erase-buffer message "Doing swish-e query %s..." nnir-swish-e-index-files "Missing parameter `nnir-swish-e-index-files'" nnir-swish-e-additional-switches t "-f" append "-w" "%s args: %s" mapconcat identity " " apply call-process zerop nnheader-report nnir "Couldn't run swish-e: %s" 6 display-buffer re-search-forward "\\(^[0-9]+\\) \\([^ ]+\\) \"\\([^\"]+\\)\" [0-9]+$" match-string 1 3 file-name-directory 2 string-match "^[0-9]+$" "^" replace-match 0 -1 "^[./\\]*\\(.*\\)$" gnus-replace-in-string "/" "." "\\\\" vector gnus-group-full-name string-to-number "Massaging swish-e output...done" sort #[(x y) "\302\234	\302\234V\207" [x y 2] 3] artlist prefix qstring nnir-tmp-buffer index-files additional-switches nnir-swish-e-program cp-list exitstatus gnus-verbose] 11 (#$ . 35775)])
(defalias 'nnir-run-hyrex #[(query server &optional group) "\212\306\307\236A\300\236A\310\311	\"\306\211\211:;<;\204.\203.\312\313\314\"!;\315=!q\210\316 \210\317\320\"\210>\306\321\306\322\310\323	\"\324\310\325	\":C\"BBBBBB?\317\326>\327\330?AAAA\331##\210\332\333?\"\211@\203\214\334@!\204\214\335\336\337@#\210A\340V\203\214\341=!\210*\317\342:\"\210\343\344!\210eb\210\345\346!\210;\203\250\347;!\210eb\210\350\351\306\321#\203\345\352\353!\352\354!\352\355!\356
\n\"\203\315\357\360\321\211\n$\361\362\363\n\364\365#	\"\366!\366\f!#<B<\202\253\317\367!\210\332\361\370<\371\"\".\207" [query server dirnam artno score prefix nil group nnir-read-server-parm nnir-hyrex-remove-prefix regexp-opt mapcar #[(x) "\302\303	\"\203	\304\225\305O\202	)\207" [x gname string-match "^[^:]+:" 0 nil] 3] get-buffer-create erase-buffer message "Doing hyrex-search query %s..." t "-i" nnir-hyrex-index-directory append nnir-hyrex-additional-switches "%s args: %s" mapconcat identity " " apply call-process zerop nnheader-report nnir "Couldn't run hyrex-search: %s" 6 display-buffer "Doing hyrex-search query \"%s\"...done" sit-for 0 delete-non-matching-lines "^\\S + [0-9]+ [0-9]+$" keep-lines re-search-forward "\\(\\S +\\) \\([0-9]+\\) \\([0-9]+\\)" match-string 1 2 3 string-match replace-match "" vector gnus-group-full-name gnus-replace-in-string "/" "." string-to-number "Massaging hyrex-search output...done." sort #[(x y) "\302\234	\302\234\231\203\f\303\207\304\234	\304\234W\207" [x y 0 t 1] 3] qstring groupspec artlist nnir-tmp-buffer nnir-hyrex-program cp-list exitstatus gnus-verbose] 11])
#@159 Run given query against Namazu.  Returns a vector of (group name, file name)
pairs (also vectors, actually).

Tested with Namazu 2.0.6 on a GNU/Linux system.
(defalias 'nnir-run-namazu #[(query server &optional group) "\212\306\307\306\310	\"\203\311\312\313\314	\"\313\315	\"\206\316#\202)\311\312\n@\n\211A@)#)\"\2032\317\2023\320\321\304\f\236A\322\323\"\321\211\211\324
!89:;<=>\325\326\327\"\210\330?!q\210\331 \210@\321\332\321\333\334\335\336\322\337\"<\322\340\"D\"BBBBBBBA\341\342@\343\344AAAAA\345##\210\346\347A\"\211B\203\262\350B!\204\262\351\352\353B#\210C\354V\203\262\355?!\210*eb\210\356\357\321\332#\203\373\313\360!:\361\313\362!!9\363\313\362!!8\306>8\"\203\2669\203\266\36498:;%\211D\203\367D=B=)\202\266\346\365\366=\367\"\".	\207" [server gname gnus-select-method x query process-environment string-match "^nnmaildir:" "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" format "%s:%s" match-string 1 2 "" ":[0-9]+" "^[0-9]+$" nil nnir-read-server-parm nnir-namazu-remove-prefix copy-sequence setenv "LC_MESSAGES" "C" get-buffer-create erase-buffer t "-q" "-a" "-s" append nnir-namazu-additional-switches nnir-namazu-index-directory message "%s args: %s" mapconcat identity " " apply call-process zerop nnheader-report nnir "Couldn't run namazu: %s" 6 display-buffer re-search-forward "^\\([0-9]+\\.\\).*\\((score: \\([0-9]+\\)\\))\n\\([^ ]+\\)" 3 file-name-directory 4 file-name-nondirectory nnir-compose-result vector sort #[(x y) "\302\234	\302\234V\207" [x y 2] 3] article group score prefix qstring artlist article-pattern nnir-tmp-buffer nnir-namazu-program cp-list exitstatus gnus-verbose result] 14 (#$ . 39277)])
#@104 Run QUERY against notmuch.
Returns a vector of (group name, file name) pairs (also vectors,
actually).
(defalias 'nnir-run-notmuch #[(query server &optional group) "\212\300\236A\306\236A\307\310	\"\311\312\313	\312\314\n\"\203+\315\316\317\320\n\"\317\321\n\"\206'\322#\2026\315\316@\211A@)#)\"\203?\323\202@\324\311\211\21156789:\211;\322\232\203\\\325\326!\210\327<!q\210\330 \210:\203u\331\332;:#\210\202{\331\333;\"\210=\311\334\311\335\336\337\340\307\341	\";C\"BBBBBBB>\331\342=\343\344>AAAA\345##\210\346\347>\"\211?\203\312\350?!\204\312\351\352\353?#\210@\354V\203\312\355<!\210*eb\210m\204\356\357 \360 \"\361
!6\362
!5\320y\210\31276\"\203\3165\203\316:\203\312:5\"\203\316\36356\3229	%\211A\203A8B8)\202\316\331\364!\2108.	\207" [query server gname gnus-select-method x filenam group nnir-read-server-parm nnir-notmuch-remove-prefix nil string-match "^nnmaildir:" "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" format "%s:%s" match-string 1 2 "" ":[0-9]+" "^[0-9]+$" error "notmuch: You didn't enter anything" get-buffer-create erase-buffer message "Doing notmuch query %s on %s..." "Doing notmuch query %s..." t "search" "--format=text" "--output=files" append nnir-notmuch-additional-switches "%s args: %s" mapconcat identity " " apply call-process zerop nnheader-report nnir "Couldn't run notmuch: %s" 6 display-buffer buffer-substring-no-properties line-beginning-position line-end-position file-name-nondirectory file-name-directory nnir-compose-result "Massaging notmuch output...done" dirnam artno article-pattern artlist prefix groupspec qstring nnir-tmp-buffer nnir-notmuch-program cp-list exitstatus gnus-verbose result] 13 (#$ . 40975)])
#@48 Run find and grep to obtain matching articles.
(defalias 'nnir-run-find-grep #[(query server &optional grouplist) "\211\203<\203\206\352\306	\"A\206\352\307\232\203!\n\206\323\306\"A\206\323\306\f\"A\206\323
\203W\310\311@@@@@A@#\232\204W\211A@\210\2024\211@@*\206\323\203\213\310\311\211@@)@A@#\232\204\213\211A@\210\202f@)\206\323A\312\211 !\"\"\203\320\313\"\211A\"@8\211!;\204\235!\312\314#$!\315\316\215+\232\203\235! \312\211\"\204\242 +\211%\203\347\306	\"\204\347%B	B%))!\317\320!@!\321P!&\306&!\211AA)\"\211A@)'\306\322\"A(\306\323\"A)\206$\324!)\312*'\2043\325\326\"\210\327\330\331\332)\"\".\207" [server gnus-server-method-cache gnus-select-method gnus-server-alist gnus-predefined-server-alist gnus-opened-servers assoc "native" format "%s:%s" nil 4 t server-name (byte-code "\206	\n\204\306\307\"\210\306\310\f
D\"\210\211A@)\311\235\203*\312\313@\"\2026\312\314@\211A@)#\211B\211\235\204V\204V\315@\"\204VB*\207" [method gnus-select-method nocache gnus-server-method-cache gnus-server-alist gnus-predefined-server-alist mapc #[(name-method) "A	\232\205\f\302\303@\"\207" [name-method method throw server-name] 3] #[(server-alist) "\301\302\"\207" [server-alist mapc #[(name-method) "\303A	\"\205\n\235\204\nB\304\305@\"\207" [name-method method gnus-server-method-cache gnus-methods-equal-p throw server-name] 3]] 3] (nil "") format "%s" "%s:%s" assoc x name name-method no-enter-cache] 5) intern symbol-name "-directory" query grep-options nnir-get-active error "No directory found in method specification of server %s" apply vconcat mapcar #[(x) "\306\307	\206	\n\"\210\310 \311\216\312\f!q\210\313 \210
\314V\203\"\315p!\210\3163!\210	\204/\317\202`	4\320\3214\"\203C4\322\225\323O\202E4)\324	!\203Q	\202_\324\325	\326\327\330$\211!\205_	)\211\204i\331\332!\210\212\333\334\335\323\330\335	\336\337\340\341\342\343\344\3455\205\204\3465\347\330#\3506\351BB\"B&
\210*m\204\372\346`\352 {\327\330#7\353\3547!@!87@\317\230\203\2707A\2117\202\251\355\3567GS\3239::S\211:\322Y\203\3357\211A7@9B9\202\3039\237*\317#\357\360	\n\"8\322#;B;)\361y\210*\202\220\306\362	\206\n\"\210;+\207" [x group server #1=#:wconfig nnir-tmp-buffer gnus-verbose message "Searching %s using find-grep..." current-window-configuration ((set-window-configuration #1#)) get-buffer-create erase-buffer 6 pop-to-buffer cd "." string-match "^[^:]+:" 0 nil file-directory-p gnus-replace-in-string "\\." "/" t error "Cannot locate directory for group" apply call-process "find" "-type" "f" "-name" "[0-9]*" "-exec" "grep" "-l" append split-string "\\s-" "-e" ("{}" "+") line-end-position string-to-number last mapconcat identity vector gnus-group-full-name 1 "Searching %s using find-grep...done" directory gname grep-options regexp path art res end artlist] 20] opened x gnus-secondary-select-methods servers gnus-newsrc-alist match method alist no-enter-cache nocache result sym directory regexp grouplist artlist] 6 (#$ . 42704)])
#@47 Run a search against a gmane back-end server.
(defalias 'nnir-run-gmane #[(query srv &optional groups) "\306\301	\236A\211\203\f<\203\f\206\365\307\f
\"A\206\365\f\310\232\203)3\206\336\307\f4\"A\206\336\307\f5\"A\206\336677\203b\f\311\3127@@@7@@A@#\232\204b7\211A7@\210\202?7\2118@@*\206\3369::\203\226\f\311\312:\2118@@):@A@#\232\204\226:\211A:@\210\202q:@)\206\336;A\313\211<=>>\203\333\314>\211A>@8\211=;\204\250\f=\313\306?@=\315\316\215+\232\203\250=<\313\211>\204\255<+\211A\203\362\307\f
\"\204\362\fAB
BA))\2118A@)\317\320B\321#C\322	\236\203\311\323\322	\236A\"\202\324D\311\325\nCD$E\306F\313G\326\327!\210r\330H!q\210\331 \210\332\333\334\335\336EB\337B!Q!\210\340\306!\210\341ed\342#\210eb\210\343y\210m\204\236l\204\230\344\345!\204\230\346 \211I\347H\350\307\351I\352H\"A!JK\353\354K\"\203\227\355\356\357\343K\"\"\350\357\360K\"!J#GBG+\343y\210\202T)\361\355\362G!\237\".\207" [case-fold-search query qstring srv server gnus-server-method-cache t assoc "native" format "%s:%s" nil 4 server-name (byte-code "\206	\n\204\306\307\"\210\306\310\f
D\"\210\211A@)\311\235\203*\312\313@\"\2026\312\314@\211A@)#\211B\211\235\204V\204V\315@\"\204VB*\207" [method gnus-select-method nocache gnus-server-method-cache gnus-server-alist gnus-predefined-server-alist mapc #[(name-method) "A	\232\205\f\302\303@\"\207" [name-method method throw server-name] 3] #[(server-alist) "\301\302\"\207" [server-alist mapc #[(name-method) "\303A	\"\205\n\235\204\nB\304\305@\"\207" [name-method method gnus-server-method-cache gnus-methods-equal-p throw server-name] 3]] 3] (nil #1="") format "%s" "%s:%s" assoc x name name-method no-enter-cache] 5) mapconcat #[(x) "\305\306\307\310\n	#,\203\311\312\313!\"\207\314\315\"\207" [x start string regexp inhibit-changing-match-data "gmane" nil t string-match format "group:%s" gnus-group-short-name error "Can't search non-gmane groups: %s"] 4] " " author "author:%s" #1# "%s %s %s" require mm-url get-buffer-create erase-buffer mm-url-insert "http://search.gmane.org/nov.php" "?" mm-url-encode-www-form-urlencoded "query" (("HITSPERPAGE" . "999")) set-buffer-multibyte mm-decode-coding-region utf-8 1 looking-at "
" nnheader-parse-nov 8 string-to-number X-Score 9 string-match " \\([^:]+\\)[:/]\\([0-9]+\\)" vector gnus-group-prefixed-name match-string 2 apply mm-delete-duplicates gnus-select-method gnus-server-alist gnus-predefined-server-alist gnus-opened-servers opened x gnus-secondary-select-methods servers gnus-newsrc-alist match method alist no-enter-cache nocache result groups groupspec authorspec search gnus-inhibit-demon artlist nnir-tmp-buffer header xscore xref] 7 (#$ . 45852)])
#@65 Reads additional search parameters according to `nnir-engines'.
(defalias 'nnir-read-parms #[(query nnir-search-engine) "\304	\"AA@\305\306\307\n\"\")\207" [nnir-search-engine nnir-engines parmspec query assoc append mapcar nnir-read-parm] 5 (#$ . 48657)])
#@103 Reads a single search parameter.
`parmspec' is a cons cell, the car is a symbol, the cdr is a prompt.
(defalias 'nnir-read-parm #[(parmspec) "@A	<\203(\306\307	\"\310\f\"\206\311
B\f\n\312\fA\"*B\202-\n\313	!B*\207" [parmspec prompt sym result nnir-imap-search-arguments nnir-imap-search-other apply gnus-completing-read assoc nil format read-string mapping] 4 (#$ . 48924)])
(autoload 'gnus-group-topic-name "gnus-topic")
#@166 Invoke appropriate search engine function (see `nnir-engines').
  If some groups were process-marked, run the query for each of the groups
  and concat the results.
(defalias 'nnir-run-query #[(query) "\306!@	\307\230\204	CC\202E\n\204(\310 \203\310 C\202%\311\312 \"A\205E\313\314\315\n\206A\310 \203;\310 C\202A\311\312 \"A\"\210\f)\316\317\320\321
\"\"*\207" [query nnir-address gnus-group-marked gnus-topic-alist value groups read-from-string "nnir" gnus-group-group-name assoc gnus-group-topic-name nil mapc #[(member) "\306\307	\"\203\310\311\312\313	\"\312\314	\"\206\315#\202&\310\311\n@\n\211A@)#)\316\f
\"\203G\316\f
\"\211A\211A@)B\240)\202O\fCD
B\211*\207" [member gname gnus-select-method x y value string-match "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" format "%s:%s" match-string 1 2 #2="" assoc #1=#:v] 7] apply vconcat mapcar #[(x) "@\306\307	\310#\206\373\311	\211\203	<\203	\206\365\311	\n\"A\206\365	\312\232\203-\206\336\311	\f\"A\206\336\311	
\"A\206\336\203d	\313\314@@@@@A@#\232\204d\211A@\210\202A\211@@*\206\336\203\226	\313\314\211@@)@A@#\232\204\226\211A@\210\202r@)\206\336A\315\211\203\333\316\211A@8\211;\204\250	\315\310\317\320\215+\232\203\250\315\211\204\255+\211\203\362\311	\n\"\204\362	B\nB))@\"A\315 \311!\"\211A@)\211 \205A \"\2037\321=\203+\322#\236\203+#\2069\323#\"\211#\2029#	\211A@)#+\207" [x server gnus-server-method-cache gnus-select-method gnus-server-alist gnus-predefined-server-alist nnir-read-server-parm nnir-search-engine t assoc "native" format "%s:%s" nil 4 server-name (byte-code "\206	\n\204\306\307\"\210\306\310\f
D\"\210\211A@)\311\235\203*\312\313@\"\2026\312\314@\211A@)#\211B\211\235\204V\204V\315@\"\204VB*\207" [method gnus-select-method nocache gnus-server-method-cache gnus-server-alist gnus-predefined-server-alist mapc #[(name-method) "A	\232\205\f\302\303@\"\207" [name-method method throw server-name] 3] #[(server-alist) "\301\302\"\207" [server-alist mapc #[(name-method) "\303A	\"\205\n\235\204\nB\304\305@\"\207" [name-method method gnus-server-method-cache gnus-methods-equal-p throw server-name] 3]] 3] (nil #2#) format "%s" "%s:%s" assoc x name name-method no-enter-cache] 5) imap criteria nnir-read-parms gnus-opened-servers opened gnus-secondary-select-methods servers gnus-newsrc-alist match method alist no-enter-cache nocache result nnir-method-default-engines search-func nnir-engines nnir-extra-parms q] 7] q] 6 (#$ . 49367)])
#@166 Returns the parameter value corresponding to `key' for
`server'. If no server-specific value is found consult the global
environment unless `not-global' is non-nil.
(defalias 'nnir-read-server-parm #[(key server &optional not-global) "\211\203<\203\206\352\306	\"A\206\352\307\232\203!\n\206\323\306\"A\206\323\306\f\"A\206\323
\203W\310\311@@@@@A@#\232\204W\211A@\210\2024\211@@*\206\323\203\213\310\311\211@@)@A@#\232\204\213\211A@\210\202f@)\206\323A\312\211\203\320\313\211A@8\211;\204\235\312\314\315\316\215+\232\203\235\312\211\204\242+\211\203\347\306	\"\204\347B	B))\211\203\211AA)\236\203\211AA)\236A@\202\"\204!\317!\203!J\202\"\312)\207" [server gnus-server-method-cache gnus-select-method gnus-server-alist gnus-predefined-server-alist gnus-opened-servers assoc "native" format "%s:%s" nil 4 t server-name (byte-code "\206	\n\204\306\307\"\210\306\310\f
D\"\210\211A@)\311\235\203*\312\313@\"\2026\312\314@\211A@)#\211B\211\235\204V\204V\315@\"\204VB*\207" [method gnus-select-method nocache gnus-server-method-cache gnus-server-alist gnus-predefined-server-alist mapc #[(name-method) "A	\232\205\f\302\303@\"\207" [name-method method throw server-name] 3] #[(server-alist) "\301\302\"\207" [server-alist mapc #[(name-method) "\303A	\"\205\n\235\204\nB\304\305@\"\207" [name-method method gnus-server-method-cache gnus-methods-equal-p throw server-name] 3]] 3] (nil "") format "%s" "%s:%s" assoc x name name-method no-enter-cache] 5) boundp opened x gnus-secondary-select-methods servers gnus-newsrc-alist match method alist no-enter-cache nocache result key not-global] 6 (#$ . 52006)])
(defalias 'nnir-possibly-change-server #[(server) "\205\301!?\205\302!\207" [server nnir-server-opened nnir-open-server] 2])
#@70 Make an nnir group based on the thread containing the article header
(defalias 'nnir-search-thread #[(header) "\306\307!B\310\311B\312\313	!\314\211\315\316\215+BE\317\314
\"\210\320\321\322H!!)\207" [header gnus-newsgroup-name no-enter-cache nocache method parm query nnimap-make-thread-query criteria #1="" server gnus-find-method-for-group nil server-name (byte-code "\206	\n\204\306\307\"\210\306\310\f
D\"\210\211A@)\311\235\203*\312\313@\"\2026\312\314@\211A@)#\211B\211\235\204V\204V\315@\"\204VB*\207" [method gnus-select-method nocache gnus-server-method-cache gnus-server-alist gnus-predefined-server-alist mapc #[(name-method) "A	\232\205\f\302\303@\"\207" [name-method method throw server-name] 3] #[(server-alist) "\301\302\"\207" [server-alist mapc #[(name-method) "\303A	\"\205\n\235\204\nB\304\305@\"\207" [name-method method gnus-server-method-cache gnus-methods-equal-p throw server-name] 3]] 3] (nil #1#) format "%s" "%s:%s" assoc x name name-method no-enter-cache] 5) gnus-group-make-nnir-group gnus-summary-goto-subject gnus-id-to-article 4] 6 (#$ . 53934)])
#@52 Returns a list of all groups in the given ARTLIST.
(defalias 'nnir-artlist-groups #[(artlist) "\303\211\304\305\n\"\306\307\"\210	*\207" [with-dups res artlist nil mapcar nnir-artitem-group mapc #[(x) "\301\302\"\207" [x add-to-list res] 3]] 3 (#$ . 55076)])
(defalias 'nnir-get-active #[(srv) "\211\203	<\203	\206\353\306	\n\"A\206\353	\307\232\203!\206\324\306	\f\"A\206\324\306	
\"A\206\324\203X	\310\311@@@@@A@#\232\204X\211A@\210\2025\211@@*\206\324\203\214	\310\311\211@@)@A@#\232\204\214\211A@\210\202g@)\206\324A\312\211\203\321\313\211A@8\211;\204\236	\312\314 !\315\316\215+\232\203\236\312\211\204\243+\211\"\203\350\306	\n\"\204\350	\"B\nB\"))\312#\317!\210r$q\210p\312%&eb\210'\203'\320\230\204\321'!\210@\322=\203,m\204;\312\323\324\217\210\312y\210\202m\204;\312\325\326\217\210\312y\210\202,+#*\207" [srv server gnus-server-method-cache gnus-select-method gnus-server-alist gnus-predefined-server-alist assoc "native" format "%s:%s" nil 4 t server-name (byte-code "\206	\n\204\306\307\"\210\306\310\f
D\"\210\211A@)\311\235\203*\312\313@\"\2026\312\314@\211A@)#\211B\211\235\204V\204V\315@\"\204VB*\207" [method gnus-select-method nocache gnus-server-method-cache gnus-server-alist gnus-predefined-server-alist mapc #[(name-method) "A	\232\205\f\302\303@\"\207" [name-method method throw server-name] 3] #[(server-alist) "\301\302\"\207" [server-alist mapc #[(name-method) "\303A	\"\205\n\235\204\nB\304\305@\"\207" [name-method method gnus-server-method-cache gnus-methods-equal-p throw server-name] 3]] 3] (nil #1="") format "%s" "%s:%s" assoc x name name-method no-enter-cache] 5) gnus-request-list #1# delete-matching-lines nntp (byte-code "\302\303`\304\305w\210`{\"!	B\305\207" [method groups mm-string-as-unibyte gnus-group-full-name "^ 	" nil] 5) ((error)) (byte-code "\305\306f\307=\203\310\311!	\"\202<`\312\313\306w\210`{\306f\314=\2037`T\315u\210\313\306w\210\n`{P\202\310\n	\"*!\fB\306\207" [cur method name p groups mm-string-as-unibyte nil 34 gnus-group-full-name read #1# "^ 	\\\\" 92 2] 4) ((error)) gnus-opened-servers opened x gnus-secondary-select-methods servers gnus-newsrc-alist match method alist no-enter-cache nocache result groups nntp-server-buffer name cur nnir-ignored-newsgroups] 6])
#@62 Call `gnus-registry-action' with the original article group.
(defalias 'nnir-registry-action #[(action data-header from &optional to method) "\305	\211\306H\306V\205\n	\306HS\234\306\234\f%\207" [action data-header nnir-artlist to method gnus-registry-action 0] 6 (#$ . 57506)])
(defalias 'nnir-mode #[nil "\303!@\304=\205;	\206\n\305\306!\205;\307\310\311\312#\210\307\313\311\312#\210\307\314\311\312#\210\315\310\316\312\211$\210\315\313\316\312\211$\210\315\314\316\312\211$\207" [gnus-newsgroup-name nnir-summary-line-format gnus-summary-line-format gnus-find-method-for-group nnir gnus-bound-and-true-p gnus-registry-enabled remove-hook gnus-summary-article-delete-hook gnus-registry-action t gnus-summary-article-move-hook gnus-summary-article-expire-hook add-hook nnir-registry-action] 5])
(provide 'nnir)

MMCT - 2023