;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(require 'gnus)#@60 Internal: the history for querying search options in nnir.
(defvar nnir-search-history nil (#$ . 99))#@29 Internal: temporary buffer.
(defconst nnir-tmp-buffer " *nnir*" (#$ . 206))#@71 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" . "") ("gmail" . "X-GM-RAW")) (#$ . 287))#@130 The IMAP search item 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" (#$ . 551))#@50 The history for querying search options in nnir.
(defvar nnir-imap-search-argument-history nil (#$ . 740))#@50 Return the group from the ARTITEM.

(fn ARTITEM)
(defalias 'nnir-artitem-group '(macro . #[257 "\300\301BB\207" [elt (0)] 4 (#$ . 852)]))#@51 Return the number from the ARTITEM.

(fn ARTITEM)
(defalias 'nnir-artitem-number '(macro . #[257 "\300\301BB\207" [elt (1)] 4 (#$ . 996)]))#@80 Return the Retrieval Status Value (RSV, score) from the ARTITEM.

(fn ARTITEM)
(defalias 'nnir-artitem-rsv '(macro . #[257 "\300\301BB\207" [elt (2)] 4 (#$ . 1142)]))
(byte-code "\301\302\303\304\305\306%\210\307\310\311\312#\210\313\310\314\315\316DD\317\320\321\322\323&\210\313\324\314\315\325DD\326\320\321\322\327&\210\313\330\314\315\331DD\332\320\321\322\333\334\335\"B&\210\313\336\314\315\337DD\340\322\341%\210\313\342\314\315\343DD\344\322\345%\210\313\346\314\315\347DD\350\322\351%\210\313\352\314\315\353DD\354\322\355%\210\313\356\314\315\357DD\360\322\361%\210\313\362\314\315\363DD\364\322\365%\210\313\366\314\315\367DD\370\322\371%\210\313\372\314\315\373DD\374\322\375%\210\313\376\314\315\377DD\201@ \322\201A %\210\313\201B \314\315\201C DD\201D \322\201E %\210\313\201F \314\315\201G DD\201H \322\201I %\210\313\201J \314\315\201K DD\201L \322\201M %\210\313\201N \314\315\201O DD\201P \322\201Q %\210\313\201R \314\315\201S DD\201T \322\201U %\210\313\201V \314\315\201W DD\201X \322\201Y %\210\313\201Z \314\315\201[ DD\201\\ \322\201] %\210\313\201^ \314\315\201_ DD\201` \320\321\322\201a &\210\313\201b \314\315\201c DD\201d \320\321\322\201e &\210\313\201f \314\315\201g DD\201h \320\201i \322\201j &\210\313\201k \314\315\201l DD\201m \320\201i \322\201n &\207" [nnir-imap-search-arguments custom-declare-group nnir nil "Search groups in Gnus with assorted search engines." :group gnus make-obsolete-variable nnir-summary-line-format "The formatting\nspecs previously unique to this variable may now be set in\n'gnus-summary-line-format." "28.1" custom-declare-variable funcall function #[0 "\300\207" [nil] 1 #1=""] "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'." :version "24.1" :type (choice (const :tag "gnus-summary-line-format" nil) string) nnir-ignored-newsgroups #[0 "\300\207" [#1#] 1 #1#] "Newsgroups to skip when searching.\nAny newsgroup in the active file matching this regexp will be\nskipped when searching." (regexp) nnir-imap-default-search-key #[0 "\300\207" ["whole message"] 1 #1#] "The default IMAP search key for an nnir search.\nMust be one of the keys in `nnir-imap-search-arguments'.  To use\nraw imap queries by default set this to \"imap\"." choice mapcar #[257 "\300@D\207" [const] 3 "\n\n(fn ELEM)"] nnir-swish++-configuration-file #[0 "\300\301!\207" [expand-file-name "~/Mail/swish++.conf"] 2 #1#] "Configuration file for swish++." (file) nnir-swish++-program #[0 "\300\207" ["search"] 1 #1#] "Name of swish++ search executable." (string) nnir-swish++-additional-switches #[0 "\300\207" [nil] 1 #1#] "A list of strings, to be given as additional arguments to swish++.\n\nNote that this should be a list.  I.e., 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 #[0 "\300\301!\302P\207" [getenv "HOME" "/Mail/"] 2 #1#] "The prefix to remove from swish++ file names to get group names.\nResulting names have '/' in place of '.'.  This is a regular\nexpression.\n\nThis variable is very similar to `nnir-namazu-remove-prefix', except\nthat it is for swish++, not Namazu." (regexp) nnir-swish-e-index-files #[0 "\300\301!C\207" [expand-file-name "~/Mail/index.swish-e"] 2 #1#] "List of index files for swish-e.\nThis could be a server parameter." (repeat (file)) nnir-swish-e-program #[0 "\300\207" ["swish-e"] 1 #1#] "Name of swish-e search executable.\nThis cannot be a server parameter." (string) nnir-swish-e-additional-switches #[0 "\300\207" [nil] 1 #1#] "A list of strings, to be given as additional arguments to swish-e.\n\nNote that this should be a list.  I.e., 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 #[0 "\300\301!\302P\207" [getenv "HOME" "/Mail/"] 2 #1#] "The prefix to remove from swish-e file names to get group names.\nResulting names have '/' in place of '.'.  This is a regular\nexpression.\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 #[0 "\300\207" ["nnir-search"] 1 #1#] "Name of the nnir-search executable." (string) nnir-hyrex-additional-switches #[0 "\300\207" [nil] 1 #1#] "A list of strings, to be given as additional arguments for nnir-search.\nNote that this should be a list.  I.e., 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 #[0 "\300\301!\207" [getenv "HOME"] 2 #1#] "Index directory for HyREX." (directory) nnir-hyrex-remove-prefix #[0 "\300\301!\302P\207" [getenv "HOME" "/Mail/"] 2 #1#] "The prefix to remove from HyREX file names to get group names.\nResulting names have '/' in place 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 #[0 "\300\207" ["namazu"] 1 #1#] "Name of Namazu search executable." (string) nnir-namazu-index-directory #[0 "\300\301!\207" [expand-file-name "~/Mail/namazu/"] 2 #1#] "Index directory for Namazu." (directory) nnir-namazu-additional-switches #[0 "\300\207" [nil] 1 #1#] "A list of strings, to be given as additional arguments to namazu.\nThe switches `-q', `-a', and `-s' are always used, very few other\nswitches make any sense in this context.\n\nNote that this should be a list.  I.e., 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 #[0 "\300\301!\302P\207" [getenv "HOME" "/Mail/"] 2 #1#] "The prefix to remove from Namazu file names to get group names.\nResulting names have '/' in place 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 #[0 "\300\207" ["notmuch"] 1 #1#] "Name of notmuch search executable." (string) nnir-notmuch-additional-switches #[0 "\300\207" [nil] 1 #1#] "A list of strings, to be given as additional arguments to notmuch.\n\nNote that this should be a list.  I.e., 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 #[0 "\300\301\302!\206\n \303\304!!\207" [regexp-quote getenv "MAILDIR" expand-file-name "~/Mail"] 3 #1#] "The prefix to remove from notmuch file names to get group names.\nResulting names have '/' in place of '.'.  This is a regular\nexpression.\n\nThis variable is very similar to `nnir-namazu-remove-prefix', except\nthat it is for notmuch, not Namazu." "27.1" (regexp) nnir-notmuch-filter-group-names-function #[0 "\300\207" [nil] 1 #1#] "Whether and how to use Gnus group names as \"path:\" search terms.\nWhen nil, the groups being searched in are not used as notmuch\n:path search terms.  It's still possible to use \"path:\" terms\nmanually within the search query, however.\n\nWhen a function, map this function over all the group names.  To\nuse the group names unchanged, set to (lambda (g) g).  Multiple\ntransforms (for instance, converting \".\" to \"/\") can be added\nlike so:\n\n(add-function :filter-return\n   nnir-notmuch-filter-group-names-function\n   (lambda (g) (replace-regexp-in-string \"\\\\.\" \"/\" g)))" (choice function (const :tag "No" nil))] 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	\257CE\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 ((swish++ nnir-run-swish++ ((swish++-group . "Swish++ Group spec (regexp): "))) (swish-e nnir-run-swish-e ((swish-e-group . "Swish-e Group spec (regexp): "))) (namazu nnir-run-namazu nil) (notmuch nnir-run-notmuch nil) (hyrex nnir-run-hyrex ((hyrex-group . "Hyrex Group spec (regexp): "))) (find-grep nnir-run-find-grep ((grep-options . "Grep options: "))))] 9) (#$ . 9886))
(byte-code "\301\302\303\304\305DD\306\307\310\311\312\313\314\315\316\317\"BED&\207" [nnir-engines custom-declare-variable nnir-method-default-engines funcall function #[0 "\300\207" [((nnimap . imap))] 1 ""] "Alist of default search engines keyed by server method." :version "27.1" :type repeat cons (choice (const nnimap) (const nntp) (const nnspool) (const nneething) (const nndir) (const nnmbox) (const nnml) (const nnmh) (const nndraft) (const nnfolder) (const nnmaildir)) choice mapcar #[257 "\300@D\207" [const] 3 "\n\n(fn ELEM)"]] 14)#@226 Construct a result vector and add it to ARTLIST.
DIRNAM, ARTNO, SCORE, PREFIX and SERVER are passed to
`nnir-compose-result' to make the vector.  Only add the result if
non-nil.

(fn DIRNAM ARTNO SCORE PREFIX SERVER ARTLIST)
(defalias 'nnir-add-result '(macro . #[1542 "\300\301\302\257DC\303\304\305\301EEE\207" [let result nnir-compose-result when (not (null result)) push] 14 (#$ . 11892)]))
(autoload 'nnmaildir-base-name-to-article-number "nnmaildir")#@158 Construct a result vector.
The DIRNAM, ARTICLE, SCORE, PREFIX, and SERVER are used to
construct the vector entries.

(fn DIRNAM ARTICLE SCORE PREFIX SERVER)
(defalias 'nnir-compose-result #[1285 "\301\302P\"\203 \303\304\305\211$\262\306Q!\205\252 \307\301\310\301\311\"\203> \312\313\314\315\"\314\316	\"\206: \304#\202F \312\313@A@#\"\203N \317\202O \320O\262\321\322\323\321\324\304\n\325\305%\325\305%\326\327\"\301\310\301\311\"\203\203 \312\313\314\315	\"\314\316\n\"\206 \304#\202\213 \312\313@A@#\"\203\237 \330\307\331\332\"O\325#\202\243 \333!\333!#\262\207" [gnus-select-method string-match "^" replace-match "" t file-readable-p 0 "\\`nnmaildir:" "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" format "%s:%s" match-string 1 2 -5 -1 replace-regexp-in-string "[/\\]" "." "^[./\\]" nil vector gnus-group-full-name nnmaildir-base-name-to-article-number string-search ":" string-to-number] 16 (#$ . 12368)])
(byte-code "\300\301\302\"\210\300\303\304\"\207" [autoload gnus-server-get-active "gnus-int" nnimap-change-group "nnimap"] 3)#@276 Run the QUERY search against an IMAP back-end server SRV.
Search GROUPS, or all active groups on SRV if GROUPS is nil.
This uses a custom query language parser; see
`nnir-imap-make-query' for details on the language and supported
extensions.

(fn QUERY SRV &optional GROUPS)
(defalias 'nnir-run-imap #[770 "\212\306\236A\211\203 \211<\203 \211\206.\307\"A\206.\211\310\232\203% 	\206\307\n\"A\206\307\"A\206\f\211\203R \311\312@@@@@A@#\232\204R \211A\262\2026 \211@@\262\206\211\203u \311\312@@@A@#\232\204u \211A\262\202[ \211@\262\206A\313\211\203\211A\262\242\3148\262\262;\204\201 \313\315C\3162	\211\242\206\250 	\240\210\204\266 \317\320\321\"\"\210\nD\211\203\316 \211@\317\320\322\"\"\210A\266\202\202\271 \210\211\242A@\323\235\203\341 \311\324\242@\"\202\353 \311\312\242@\242A@#\211\242B\204\211\235\204\307@\"\204\211B\266\2020\266\204\232\203\201 \262\313\262\202\201 \266\202\211\203+\307\"\204+BB\211\262\262A@\325\236A\206@\307 \"A\315\206K\326!\"\"\327\330\"\210\331\332\3332h\334\320\335	%\"0\")\266\205)\207" [gnus-server-method-cache gnus-select-method gnus-server-alist gnus-predefined-server-alist gnus-opened-servers gnus-secondary-select-methods query assoc "native" format "%s:%s" nil 4 t server-name mapc make-closure #[257 "\211A\300\242\232\205 \301\302@\"\207" [V0 throw server-name] 4 "\n\n(fn NAME-METHOD)"] #[257 "\302A\300\242\"\205 \211	\235\204 \211	B\303\304@\"\207" [V0 gnus-server-method-cache gnus-methods-equal-p throw server-name] 4 "\n\n(fn NAME-METHOD)"] (nil #1="") "%s" criteria gnus-server-get-active message "Opening server %s" apply vconcat found mapcar #[257 "\304C\3051U \306\307!\301\"\205P r\310 q\210\311\312\"\210\313C\314\315\300\316\230\203' \302\202+ \317\300\302\"\"\320\321\322\303%@\205A \323\324A\"A\"\210\311\325\242#)\266\311\326\"0\210\202V \210\211\242\237\207" [V0 V1 V2 V3 nil (quit) nnimap-change-group gnus-group-short-name nnimap-buffer message "Searching %s..." 0 nnimap-command "UID SEARCH %s" #1# nnir-imap-make-query mapc make-closure #[257 "\304!\211\305V\205& \301\306\302\307#\301\242B\240\210\310\303\236\203! \311\312\301\242C\"\210\300\211\242T\240\207" [V0 V1 V2 V3 string-to-number 0 vector 100 shortcut throw found] 7 "\n\n(fn ARTNUM)"] assoc "SEARCH" "Searching %s... %d matches" "Searching %s...done"] 11 "\n\n(fn GROUP)"] gnus-newsrc-alist nnir-imap-default-search-key nnir-imap-search-arguments nnir-ignored-newsgroups gnus-inhibit-demon] 19 (#$ . 13450)])#@1115 Make an IMAP search expression from QSTRING and CRITERIA.

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 the 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.

(fn CRITERIA QSTRING)
(defalias 'nnir-imap-make-query #[514 "\300\301!\"\207" [nnir-imap-query-to-imap nnir-imap-parse-query] 6 (#$ . 16030)])#@81 Turn an s-expression format QUERY with CRITERIA into IMAP.

(fn CRITERIA QUERY)
(defalias 'nnir-imap-query-to-imap #[514 "\300\301\302\"\303#\207" [mapconcat make-closure #[257 "\301\300\"\207" [V0 nnir-imap-expr-to-imap] 4 "\n\n(fn ITEM)"] " "] 6 (#$ . 17272)])#@78 Convert EXPR into an IMAP search expression on CRITERIA.

(fn CRITERIA EXPR)
(defalias 'nnir-imap-expr-to-imap #[514 "\211;\203 \300\301#\207\211\302=\203 \303\207\211\242\304=\203+ \300\305\306A@\"\306\3078\"#\207\211\242\310=\203; \300\311\312A\"\"\207\211:\203H \300\313\312\"\"\207\314\315\"\207" [format "%s %S" and nil or "OR %s %s" nnir-imap-expr-to-imap 2 not "NOT (%s)" nnir-imap-query-to-imap "(%s)" error "Unhandled input: %S"] 9 (#$ . 17543)])#@254 Turn STRING into an s-expression query.
STRING is 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.

(fn STRING)
(defalias 'nnir-imap-parse-query #[257 "\300\301\302\"r\211q\210\303\304\"\216c\210eb\210\305\306 \204\" \307 B\262\202 \310!*\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] nil nnir-imap-end-of-input nnir-imap-next-expr reverse] 5 (#$ . 18019)])#@83 Return the next (COUNT) expression from the current buffer.

(fn &optional COUNT)
(defalias 'nnir-imap-next-expr #[256 "\300!\301 \211\302=\203 \302\303\304!E\207\207" [nnir-imap-next-term nnir-imap-peek-symbol or nnir-imap-next-expr 2] 7 (#$ . 18601)])#@77 Return the next (COUNT) term from the current buffer.

(fn &optional COUNT)
(defalias 'nnir-imap-next-term #[256 "\300!\211\301\267\207\302\207\303\304 D\207\207" [nnir-imap-next-symbol #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (and 7 not 9)) and not nnir-imap-next-expr] 4 (#$ . 18864)])#@71 Return the next symbol from the current buffer, but don't consume it.
(defalias 'nnir-imap-peek-symbol #[0 "\212\300 )\207" [nnir-imap-next-symbol] 1 (#$ . 19202)])#@215 Return the next (COUNT) symbol from the current buffer.
Return nil if we are at the end of the buffer.  If supplied COUNT
skips some symbols before returning the one at the supplied
position.

(fn &optional COUNT)
(defalias 'nnir-imap-next-symbol #[256 "\211\247\203 \211\301V\203 \302S!\210\303\304 ?\205\207 \305\306!\203% \301u\210\307\202\207 \305\310!\2031 \311\310!\202\207 \305\312!\203? \313\311\314!!\202\207 \305\315!\203L \316u\210\317\202\207 \305\320!\203Y \321u\210\322\202\207 \305\323!\203f \316u\210\307\202\207 `\324\325\326\303#\203\200 \327\224\330\331\332\327!\"\203\202 \333u\210\202\202 db{\266\202)\207" [case-fold-search 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 (#$ . 19373)])#@81 Return a string delimited by DELIMITER from the current buffer.

(fn DELIMITER)
(defalias 'nnir-imap-delimited-string #[257 "`\300\301u\210\211\204) \302\300\303#\204 \304\305\"\210`\211\306ZS{\307\232\204% `\262\210\202 TS{\207" [nil 1 search-forward t error "Unmatched delimited input with %s in query" 2 "\\"] 7 (#$ . 20310)])#@29 Are we at the end of input?
(defalias 'nnir-imap-end-of-input #[0 "\300\301w\210\302\303!\207" ["[:blank:]" nil looking-at "$"] 2 (#$ . 20653)])#@229 Run QUERY on SERVER 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.

(fn QUERY SERVER &optional GROUP)
(defalias 'nnir-run-swish++ #[770 "\212\304\236A\305\236A\306\307\"\310\311\312\311\313	\"\203, \314\315\316\317\"\316\320\f\"\206( \321#\2024 \314\315@A@#\"\203< \322\202= \323\310\211\211\211\321\232\203L \324\325!\210\326	!q\210\327 \210\203d \330\331\n\n#\210\202j \330\332\n\"\210\n\310\333\310\334\306\335\"\336\306\337\"C\"BBBBBB\330\340\n\341\342\343\233\344##\210\345\346\"\211\203\257 \211\347U\204\257 \350\351\352#\210\353V\203\257 \354	!\210\266eb\210\355\356\310\333#\203 \316\317!\262\316\320!\262\357!\262\360!\262\311\"\203\264 \203\264 \203\350 \311\"\203\264 \361\n%\211\203\374 \211B\262\210\202\264 \330\362!\210\345\363\364\365\"\"\266\211)\207" [gnus-select-method nnir-tmp-buffer nnir-swish++-program gnus-verbose query swish++-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" gnus-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 4 " " apply call-process 0 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 #[514 "\300\234\300\234V\207" [2] 5 "\n\n(fn X Y)"]] 22 (#$ . 20804)])#@201 Run given QUERY on SERVER 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.

(fn QUERY SERVER &optional GROUP)
(defalias 'nnir-run-swish-e #[770 "\212\303\236A\304\305\"\206 \306\307!\310\211\211\211\211\311\232\203 \306\312!\210\313!q\210\314 \210\315\316\"\210\304\317\n\"\2068 \306\320!\304\321\"	\310\322\310\323\324\325D#BBBBB\315\326	\327\330\331\233\332##\210\333\334\"\211\203| \211\335U\204| \336\337\340#\210\n\341V\203| \342!\210\266eb\210\343\344\310\322#\203\351 \345\346!\262\345\347!\262\350\345\351!!\262\352\353\"\203\201 \203\201 \352\354P\"\203\267 \355\311\322\211$\262\335\356O\262\352\357\"\210\360\361\362\345\346\"#\262\360\363\362#\262\364\365\"\366!\366!#B\262\202\201 \315\367!\210\333\364\370\371\"\"\266\207)\207" [nnir-tmp-buffer nnir-swish-e-program gnus-verbose query 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" gnus-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 4 " " apply call-process 0 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 -1 "^[./\\]*\\(.*\\)$" string-replace "/" "." "\\" vector gnus-group-full-name string-to-number "Massaging swish-e output...done" sort #[514 "\300\234\300\234V\207" [2] 5 "\n\n(fn X Y)"]] 22 (#$ . 22657)])#@88 Run given QUERY with GROUP on SERVER against hyrex.

(fn QUERY SERVER &optional GROUP)
(defalias 'nnir-run-hyrex #[770 "\212\303\304\236A\305\236A\306\307\"\303\211\211\204$ \203$ \310\311\312\n\"!\262\313!q\210\314 \210\315\316\"\210	\303\317\303\320\306\321\"\322\306\323\"\fC\"BBBBBB\315\324	\325\326\327\233\330##\210\331\332\"\211\203w \211\333U\204w \334\335\336#\210\n\337V\203w \340!\210\266\315\341\"\210\342\333!\210eb\210\343\344!\210\203\223 \345!\210eb\210\346\347\303\317#\203\326 \350\351!\262\350\352!\262\350\353!\262\354\"\203\274 \355\356\317\211$\262\357\360\361\362\363#\"\364!\364!#B\262\202\226 \315\365!\210\331\357\366	\367\"\"\266\207)\207" [nnir-tmp-buffer nnir-hyrex-program gnus-verbose nil hyrex-group query nnir-read-server-parm nnir-hyrex-remove-prefix regexp-opt mapcar #[257 "\300\301\"\203 \211\302\225\303O\207\207" [string-match "^[^:]+:" 0 nil] 4 "\n\n(fn X)"] gnus-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 4 " " apply call-process 0 nnheader-report nnir "Couldn't run hyrex-search: %s" 6 display-buffer "Doing hyrex-search query \"%s\"...done" sit-for 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 string-replace "/" "." string-to-number "Massaging hyrex-search output...done." sort #[514 "\300\234\300\234\231\203\f \301\207\302\234\302\234W\207" [0 t 1] 5 "\n\n(fn X Y)"]] 20 (#$ . 24432)])#@198 Run QUERY on SERVER  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.

(fn QUERY SERVER &optional GROUP)
(defalias 'nnir-run-namazu #[770 "\212\305\306\305\307\"\203 \310\311\312\313\"\312\314\"\206 \315#\202& \310\311@A@#\"\203. \316\202/ \317\320\321\236A\322\323\"\320\211\211\324	!\325\326\327\"\210\330\n!q\210\331 \210\320\332\320\333\334\335\336\322\337\"\322\340\"D\"BBBBBBB\341\342\343\344\345\233\346##\210\347\350\"\211\203\225 \211\351U\204\225 \352\353\354#\210\f\355V\203\225 \356\n!\210\266eb\210\357\360\320\332#\203\330 \312\361!\262\362\312\345!!\262\363\312\345!!\262\305\"\203\232 \203\232 \364%\211\203\324 \211B\262\210\202\232 \347\365\366\367\"\")\266\207)\207" [gnus-select-method process-environment nnir-tmp-buffer nnir-namazu-program gnus-verbose string-match "\\`nnmaildir:" "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" format "%s:%s" match-string 1 2 "" ":[0-9]+" "^[0-9]+$" nil query nnir-read-server-parm nnir-namazu-remove-prefix copy-sequence setenv "LC_MESSAGES" "C" gnus-get-buffer-create erase-buffer t "-q" "-a" "-s" append nnir-namazu-additional-switches nnir-namazu-index-directory message "%s args: %s" mapconcat identity 4 " " apply call-process 0 nnheader-report nnir "Couldn't run namazu: %s" 6 display-buffer re-search-forward "^\\([0-9,]+\\.\\).*\\((score: \\([0-9]+\\)\\))\n\\([^ ]+\\)" 3 file-name-directory file-name-nondirectory nnir-compose-result vector sort #[514 "\300\234\300\234V\207" [2] 5 "\n\n(fn X Y)"]] 23 (#$ . 26107)])#@305 Run QUERY with GROUPS from SERVER against notmuch.
Returns a vector of (group name, file name) pairs (also vectors,
actually).  If GROUPS is a list of group names, use them to
construct path: search terms (see the variable
`nnir-notmuch-filter-group-names-function').

(fn QUERY SERVER &optional GROUPS)
(defalias 'nnir-run-notmuch #[770 "\212\305\236A\306\307\"\310\311\312\311\313\"\203( \314\315\316\317\n\"\316\320\"\206$ \321#\2020 \314\315@A@#\"\2038 \322\2029 \323	\205H \324\310\325	\325\326\n\"\"\"\211\205T \327\330\331\332#\333Q\310\211\211\321\232\203b \334\335!\210\336\n!q\210\337 \210\203} \340\341\n\330\342	\343##\210\202\203 \340\344\n\"\210\203\215 P\262	\310\345\310\346\347\350\351\306\352\"C\"BBBBBBB\340\353\330\342\354\233\343##\210\355\356\"\211\203\320 \211\357U\204\320 \360\361\362#\210\f\363V\203\320 \364\n!\210\266eb\210m\204\365\366 \367 \"\262\370!\262\371!\262\317y\210\311\"\203\325 \203\325 \372\321%\211\203\211B\262\210\202\325 \340\373!\210\266\211)\207" [gnus-select-method nnir-notmuch-filter-group-names-function nnir-tmp-buffer nnir-notmuch-program gnus-verbose query nnir-read-server-parm nnir-notmuch-remove-prefix nil string-match "\\`nnmaildir:" "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" format "%s:%s" match-string 1 2 "" ":[0-9]+" "^[0-9]+$" delq mapcar gnus-group-short-name " (" mapconcat #[257 "\300\301\"\207" [format "path:%s"] 4 "\n\n(fn G)"] " or" ")" error "notmuch: You didn't enter anything" gnus-get-buffer-create erase-buffer message "Doing notmuch query %s on %s..." identity " " "Doing notmuch query %s..." t "search" "--format=text" "--output=files" append nnir-notmuch-additional-switches "%s args: %s" 4 apply call-process 0 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"] 23 (#$ . 27729)])#@110 Run find and grep to QUERY GROUPLIST on SERVER for matching articles.

(fn QUERY SERVER &optional GROUPLIST)
(defalias 'nnir-run-find-grep #[770 "\211\203 \211<\203 \211\206)\306\"A\206)\211\307\232\203  	\206\306\n\"A\206\306\"A\206\f\211\203M \310\311@@@@@A@#\232\204M \211A\262\2021 \211@@\262\206\211\203p \310\311@@@A@#\232\204p \211A\262\202V \211@\262\206 A\312\211\203\211A\262\242\3138\262\262;\204| \312\314C\3152\211\242\206\243 	\240\210\204\261 \316\317\320\"\"\210\nD\211\203\311 \211@\316\317\321\"\"\210A\266\202\202\264 \210\211\242A@\322\235\203\334 \310\323\242@\"\202\346 \310\311\242@\242A@#\211\242B\204 \211\235\204 \306@\"\204 \211B\266\2020\266\204\232\203| \262\312\262\202| \266\202\211\203&\306\"\204&BB\211\262\262\324\325@!\326P!\306AA\"A@\327\236A\330\236A\206O\331!\"\204Y\332\333	\"\210\334\335\336\317\337\n%\"\"\207" [gnus-server-method-cache gnus-select-method gnus-server-alist gnus-predefined-server-alist gnus-opened-servers gnus-secondary-select-methods assoc "native" format "%s:%s" nil 4 t server-name mapc make-closure #[257 "\211A\300\242\232\205 \301\302@\"\207" [V0 throw server-name] 4 "\n\n(fn NAME-METHOD)"] #[257 "\302A\300\242\"\205 \211	\235\204 \211	B\303\304@\"\207" [V0 gnus-server-method-cache gnus-methods-equal-p throw server-name] 4 "\n\n(fn NAME-METHOD)"] (nil "") "%s" intern symbol-name "-directory" query grep-options gnus-server-get-active error "No directory found in method specification of server %s" apply vconcat mapcar #[257 "\306\307\310\206 \303\"\210\311 \312\313\"\216\314\f!q\210\315V\203  \316p!\210\317\302!\210\204, \320\202V \321\322\"\203; \323\225\306O\202< \324!\203F \211\202T \324\325\320\326#\211\262!\205T \211\262\211\204^ \327\330!\210\212\331\332\333\306\334\333\335\336\337\340\341\342\343\344\345\346\300\205z \347\300\350\334#\351\301\352BB\"B&)\266m\204\335 \347`\353 {\326\334#\354\355!@!@\320\230\203\246 A\262\202\230 \356\357GS\306S\211\262\323Y\203\303 \211A\262\242B\262\202\254 \211\237\266\202\320#\360\361\303\"\323#B\262\210\362y\266\202\206 \307\363\206\344 \303\")\210\207" [V0 V1 V2 V3 nnir-tmp-buffer gnus-verbose nil message "Searching %s using find-grep..." current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] gnus-get-buffer-create 6 pop-to-buffer cd "." string-match "^[^:]+:" 0 file-directory-p string-replace "/" error "Cannot locate directory for group" apply call-process "find" t "-maxdepth" "1" "-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"] 25 "\n\n(fn X)"] gnus-newsrc-alist nnir-ignored-newsgroups] 18 (#$ . 29735)])#@128 Read additional search parameters for NNIR-SEARCH-ENGINE.
Parameters are according to `nnir-engines'.

(fn NNIR-SEARCH-ENGINE)
(defalias 'nnir-read-parms #[257 "\301\302\"8\303\304\"\207" [nnir-engines 2 assoc mapcar nnir-read-parm] 5 (#$ . 32639)])#@115 Read a single search parameter.
PARMSPEC is a cons cell, the car is a symbol, the cdr is a prompt.

(fn PARMSPEC)
(defalias 'nnir-read-parm #[257 "\211@A\211<\203 \302\303\"\304\"\206 \305	B\306A\"B\207\307!B\207" [nnir-imap-search-arguments nnir-imap-search-other apply gnus-completing-read assoc nil format read-string] 9 (#$ . 32898)])#@78 Invoke search engine appropriate for SPECS (see `nnir-engines').

(fn SPECS)
(defalias 'nnir-run-query #[257 "\300\301\302\303\304\"\305\236A\"\"\207" [apply vconcat mapcar make-closure #[257 "\211@\302!\303	\"A@\211\205 \211\304\300\236AA#\207" [V0 nnir-engines nnir-server-to-search-engine assoc nnir-query-spec] 8 "\n\n(fn X)"] nnir-group-spec] 7 (#$ . 33253)])#@45 Find search engine for SERVER.

(fn SERVER)
(defalias 'nnir-server-to-search-engine #[257 "\306\307\310#\2069\311\211\203 \211<\203 \211\2062\311\"A\2062\211\312\232\203) 	\206\311\n\"A\206\311\"A\206\f\211\203V \313\314@@@@@A@#\232\204V \211A\262\202: \211@@\262\206\211\203y \313\314@@@A@#\232\204y \211A\262\202_ \211@\262\206A\315\211\203\211A\262\242\3168\262\262;\204\205 \315\310C\3172\211\242\206\254 	\240\210\204\272 \320\321\322\"\"\210\nD\211\203\322 \211@\320\321\323\"\"\210A\266\202\202\275 \210\211\242A@\324\235\203\345 \313\325\242@\"\202\357 \313\314\242@\242A@#\211\242B\204	\211\235\204	\311@\"\204	\211B\266\2020\266\204\232\203\205 \262\315\262\202\205 \266\202\211\203/\311\"\204/BB\211\262\262@\"A\207" [gnus-server-method-cache gnus-select-method gnus-server-alist gnus-predefined-server-alist gnus-opened-servers gnus-secondary-select-methods nnir-read-server-parm nnir-search-engine t assoc "native" format "%s:%s" nil 4 server-name mapc make-closure #[257 "\211A\300\242\232\205 \301\302@\"\207" [V0 throw server-name] 4 "\n\n(fn NAME-METHOD)"] #[257 "\302A\300\242\"\205 \211	\235\204 \211	B\303\304@\"\207" [V0 gnus-server-method-cache gnus-methods-equal-p throw server-name] 4 "\n\n(fn NAME-METHOD)"] (nil "") "%s" gnus-newsrc-alist nnir-method-default-engines] 17 (#$ . 33631)])#@197 Return 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.

(fn KEY SERVER &optional NOT-GLOBAL)
(defalias 'nnir-read-server-parm #[770 "\211\203 \211<\203 \211\206)\306\"A\206)\211\307\232\203  	\206\306\n\"A\206\306\"A\206\f\211\203M \310\311@@@@@A@#\232\204M \211A\262\2021 \211@@\262\206\211\203p \310\311@@@A@#\232\204p \211A\262\202V \211@\262\206A\312\211\203\211A\262\242\3138\262\262;\204| \312\314C\3152\211\242\206\243 	\240\210\204\261 \316\317\320\"\"\210\nD\211\203\311 \211@\316\317\321\"\"\210A\266\202\202\264 \210\211\242A@\322\235\203\334 \310\323\242@\"\202\346 \310\311\242@\242A@#\211\242B\204 \211\235\204 \306@\"\204 \211B\266\2020\266\204\232\203| \262\312\262\202| \266\202\211\203&\306\"\204&BB\211\262\262\211\203?AA\236\203?AA\236A@\207\204L\324!\203LJ\207\312\207" [gnus-server-method-cache gnus-select-method gnus-server-alist gnus-predefined-server-alist gnus-opened-servers gnus-secondary-select-methods assoc "native" format "%s:%s" nil 4 t server-name mapc make-closure #[257 "\211A\300\242\232\205 \301\302@\"\207" [V0 throw server-name] 4 "\n\n(fn NAME-METHOD)"] #[257 "\302A\300\242\"\205 \211	\235\204 \211	B\303\304@\"\207" [V0 gnus-server-method-cache gnus-methods-equal-p throw server-name] 4 "\n\n(fn NAME-METHOD)"] (nil "") "%s" boundp gnus-newsrc-alist] 18 (#$ . 35042)])
(byte-code "\300\301\302\303\211$\210\304\305\306\307#\207" [autoload gnus-group-topic-name "gnus-topic" nil make-obsolete nnir-make-specs "This function should no longer\nbe used." "28.1"] 5)#@146 Make the query-spec and group-spec for a search with NNIR-EXTRA-PARMS.
Query for the specs, or use SPECS.

(fn NNIR-EXTRA-PARMS &optional SPECS)
(defalias 'nnir-make-specs #[513 "\302\236A\206+ \303 \203 \303 CC\202+ \304\305\206* \306 \203$ \306 C\202* \307\310 	\"A\"\311\236A\206E \312\313\314\315\316\317\320#BC\205D \321\322\"#\311B\302BD\207" [gnus-group-marked gnus-topic-alist nnir-group-spec gnus-server-server-name seq-group-by #[257 "\301\302\"\203 \303\304\305\306\"\305\307\"\206 \310#\207\303\304@A@#\207" [gnus-select-method string-match "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" format "%s:%s" match-string 1 2 ""] 7 "\n\n(fn ELT)"] gnus-group-group-name assoc gnus-group-topic-name nnir-query-spec apply append query read-string "Query: " nil nnir-search-history mapcar #[257 "\300\301@!!\207" [nnir-read-parms nnir-server-to-search-engine] 4 "\n\n(fn X)"]] 10 (#$ . 36757)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\210\306\307!\207" [defalias nnir-get-active gnus-server-get-active nil make-obsolete "28.1" provide nnir] 4)
