summaryrefslogtreecommitdiff
path: root/lisp/gnus/nnselect.el
Commit message (Collapse)AuthorAgeFilesLines
* Further audits of single quotes in Lisp doc stringsLars Ingebrigtsen2022-05-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/manual/etags/el-src/emacs/lisp/progmodes/etags.el (tags-apropos-additional-actions): * lisp/window.el (delete-window-choose-selected): * lisp/vc/ediff-merg.el (ediff-combination-pattern): * lisp/vc/diff.el (diff-no-select): * lisp/tab-bar.el (tab-bar-new-tab-choice): * lisp/simple.el (next-error-message-highlight): (backward-delete-char-untabify): * lisp/ses.el (ses-jump-cell-name-function): * lisp/org/org.el (org-latex-to-html-convert-command): * lisp/org/org-agenda.el (org-agenda-sorting-strategy): * lisp/net/tramp.el (tramp-default-file-modes): * lisp/net/newst-treeview.el (newsticker-treeview-use-feed-name-from-url-list-in-treeview): * lisp/net/eww.el (eww-auto-rename-buffer): * lisp/mwheel.el (mouse-wheel-scroll-amount): * lisp/mail/rmail.el (rmail-re-abbrevs): * lisp/info.el (Info-history-forward-menu): * lisp/gnus/nnselect.el (nnselect-retrieve-headers-override-function): * lisp/gnus/gnus-start.el (gnus-subscribe-hierarchical-interactive): * lisp/fringe.el (fboundp): * lisp/eshell/esh-var.el (eshell-variable-aliases-list): * lisp/emacs-lisp/checkdoc.el (checkdoc-column-zero-backslash-before-paren): * lisp/dired-aux.el (dired-confirm-shell-command): * lisp/calendar/calendar.el (calendar-time-zone-style): * lisp/ansi-color.el (ansi-color-faces-vector): (ansi-color-names-vector): Audit use of various single quotes in Lisp doc strings.
* Audit symbol quoting in Lisp doc stringsLars Ingebrigtsen2022-05-241-4/+4
| | | | | | | | | | | | * lisp/vc/vc-svn.el (vc-svn-dir-status-files): * lisp/so-long.el (so-long-mode-maintain-preserved-variables): * lisp/help-fns.el (help-fns--most-relevant-active-keymap): * lisp/gnus/nnselect.el (nnselect-get-artlist): (nnselect-store-artlist): * lisp/forms.el (forms-enumerate): * lisp/ffap.el (ffap-string-at-point): * lisp/emacs-lisp/byte-run.el (define-obsolete-variable-alias): Audit symbol quoting in Lisp doc strings.
* Audit quoting the quote character in doc stringsLars Ingebrigtsen2022-04-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/src/regex-emacs-tests.el (regex-tests-compare): (regex-tests-compare): (regex-tests-match): * test/lisp/xml-tests.el (xml-parse-tests--qnames): * test/lisp/mh-e/mh-thread-tests.el (mh-thread-tests-before-from): * test/lisp/cedet/srecode-utest-template.el (srecode-utest-map-reset): * test/lisp/calc/calc-tests.el (calc-tests-equal): * lisp/window.el (get-lru-window): (get-mru-window): (get-largest-window): (quit-restore-window): (display-buffer): * lisp/vc/vc-rcs.el (vc-rcs-consult-headers): * lisp/url/url-auth.el (url-digest-auth-build-response): * lisp/tutorial.el (tutorial--find-changed-keys): * lisp/transient.el (transient-suffix-object): * lisp/textmodes/rst.el (rst-insert-list-new-item): * lisp/textmodes/bibtex.el (bibtex-clean-entry): * lisp/tab-bar.el (tab-bar--key-to-number): (toggle-frame-tab-bar): * lisp/ses.el (ses-recalculate-cell): (ses-define-local-printer): (ses-prin1): * lisp/progmodes/xref.el (xref--find-ignores-arguments): * lisp/progmodes/verilog-mode.el (verilog-single-declaration-end): * lisp/progmodes/tcl.el (tcl-mode-hook): * lisp/progmodes/gdb-mi.el (gdb-get-buffer-create): * lisp/progmodes/elisp-mode.el (elisp--xref-make-xref): * lisp/play/dunnet.el (dun-room-objects): * lisp/outline.el (outline--cycle-state): * lisp/org/ox-publish.el (org-publish-find-property): * lisp/org/ox-html.el (org-html--unlabel-latex-environment): * lisp/org/org-table.el (org-table-collapse-header): * lisp/org/org-plot.el (org--plot/prime-factors): * lisp/org/org-agenda.el (org-agenda--mark-blocked-entry): (org-agenda-set-restriction-lock): * lisp/org/ob-lua.el (org-babel-lua-read-string): * lisp/org/ob-julia.el (org-babel-julia-evaluate-external-process): (org-babel-julia-evaluate-session): * lisp/org/ob-core.el (org-babel-default-header-args): * lisp/obsolete/mouse-sel.el (mouse-select): (mouse-select-secondary): * lisp/net/tramp.el (tramp-methods): * lisp/net/eww.el (eww-accept-content-types): * lisp/net/dictionary-connection.el (dictionary-connection-status): * lisp/minibuffer.el (completion-flex--make-flex-pattern): * lisp/mh-e/mh-mime.el (mh-have-file-command): * lisp/mh-e/mh-limit.el (mh-subject-to-sequence): (mh-subject-to-sequence-threaded): (mh-subject-to-sequence-unthreaded): * lisp/mail/feedmail.el (feedmail-queue-buffer-file-name): (feedmail-vm-mail-mode): * lisp/ls-lisp.el (ls-lisp--sanitize-switches): * lisp/keymap.el (key-valid-p): * lisp/international/ccl.el (ccl-compile-branch-blocks): * lisp/image/image-converter.el (image-convert): * lisp/gnus/spam.el (spam-backend-check): * lisp/gnus/nnselect.el (nnselect-generate-artlist): * lisp/gnus/nnmairix.el (nnmairix-widget-other): * lisp/gnus/message.el (message-mailto): * lisp/gnus/gnus-sum.el (gnus-collect-urls-from-article): * lisp/gnus/gnus-search.el (gnus-search-prepare-query): * lisp/frame.el (frame-size-history): * lisp/eshell/esh-var.el (eshell-parse-variable-ref): * lisp/eshell/em-dirs.el (eshell-expand-multiple-dots): * lisp/erc/erc-backend.el (erc-bounds-of-word-at-point): * lisp/emulation/cua-rect.el (cua--rectangle-operation): * lisp/emacs-lisp/text-property-search.el (text-property-search-forward): * lisp/emacs-lisp/package.el (package-desc-suffix): * lisp/emacs-lisp/faceup.el (faceup-test-explain): * lisp/emacs-lisp/comp.el (comp-curr-allocation-class): (comp-alloc-class-to-container): (comp-add-cstrs): (comp-remove-type-hints-func): (batch-byte+native-compile): * lisp/emacs-lisp/cl-macs.el (cl--optimize): * lisp/elec-pair.el (electric-pair--syntax-ppss): * lisp/doc-view.el (doc-view-doc-type): * lisp/cedet/semantic/symref.el (semantic-symref-tool-alist): (semantic-symref-hit-to-tag-via-db): (semantic-symref-hit-to-tag-via-buffer): * lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-get-overlay): * lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map): * lisp/cedet/semantic/find.el (semantic-brute-find-tag-by-function): * lisp/cedet/semantic/db.el (semanticdb-project-predicate-functions): * lisp/cedet/semantic.el (semantic-working-type): * lisp/cedet/ede/files.el (ede-flush-directory-hash): * lisp/calc/calc.el (calc--header-line): * lisp/auth-source.el (auth-source-pick-first-password): (auth-source--decode-octal-string): * etc/themes/modus-themes.el (modus-themes--paren): (modus-themes--agenda-habit): * admin/cus-test.el (cus-test-vars-with-changed-state): Fix quoting in doc strings. In code examples, the ' character is quoted with \\=, and regularize 'foo to `foo', and quote strings like "foo" instead of 'foo'.
* ; gnus/nnselect must get headers from the right groupAndrew G Cohen2022-04-021-0/+1
| | | | | * lisp/gnus/nnselect.el (nnselect-retrieve-headers): Make sure we are in the right group. It might have been affected by another request.
* ; * lisp/gnus/nnselect.el (nnselect-get-artlist): Fix last change.Andrew G Cohen2022-03-261-1/+1
|
* Refactor gnus/nnselect artlist saving and gettingAndrew G Cohen2022-03-231-37/+70
| | | | | | | | | | | | * lisp/gnus/nnselect.el (nnselect-generate-run): New function that replaces nnselect-run. (nnselect-store-artlist): New function. (nnselect-get-artlist): Update function. (nnselect-request-group, nnselect-request-thread) (nnselect-request-create-group, nnselect-request-group-scan): Use the new functions. * doc/misc/gnus.texi (Selection Groups): Document artlist storage and retrieval.
* Improve propagation of gnus/nnselect group infoAndrew G Cohen2022-03-171-10/+20
| | | | | * lisp/gnus/nnselect.el (nnselect-push-info): Speed up pushing the nnselect info back to the originating groups.
* Fix bug in nnselect fetching new articles in a threadAndrew G Cohen2022-03-171-2/+9
| | | | | * lisp/gnus/nnselect.el (nnselect-request-thread): Ignore the Retrieval Status Value in comparing whether articles are the same.
* Fix wording and punctuation in recent Gnus documentation changesEli Zaretskii2022-03-041-2/+1
| | | | | | | | * lisp/gnus/nnselect.el (nnselect-allow-ephemeral-expiry): Make the first sentence of the doc string be a single line. * doc/misc/gnus.texi (Creating Search Groups): Fix space between sentences.
* Turn expiry on for nnselect groupsAndrew G Cohen2022-03-041-18/+26
| | | | | | | | | | | | | Articles in (persistent) groups from the gnus/nnselect backend will now be run through the expiry process upon exit, like other persistent groups. Expiry is not on by default for ephemeral nnselect groups but may be turned on with nnselect-allow-ephemeral-expiry set to t. * lisp/gnus/nnselect.el (nnselect-request-expire-articles): Make article expiry work. (nnselect-allow-ephemeral-expiry): New variable. * doc/misc/gnus.texi (Creating Search Groups): Document nnselect-allow-ephemeral-expiry.
* ; Fetch the nnselect-rescan parameter from the topic or groupAndrew G Cohen2022-03-041-1/+1
| | | | | * lisp/gnus/nnselect.el (nnselect-request-scan-group): Allow the nnselect-rescan parameter to be set in the topic or the group.
* Allow searching of nnselect (search) groupsAndrew G Cohen2022-02-111-1/+2
| | | | | | | | | | * lisp/gnus/gnus-group.el (gnus-group-make-search-group): (gnus-group-read-ephemeral-search-group): Ensure the server is correctly identified even for nnselect groups. * lisp/gnus/gnus-search.el (gnus-search-nnselect): New function. (gnus-search-default-engines): Use it. (gnus-search-make-spec): Queries from nnselect should always be raw. * lisp/gnus/nnselect.el (gnus-search): Silence the byte-compiler.
* nnselect.el: Speed up group info updatingAndrew G Cohen2022-02-081-53/+47
| | | | | | * lisp/gnus/nnselect.el (nnselect-request-update-info): Use a hash and other tricks to speed things up. (nnselect-request-group-scan): Make sure the artlist is uncompressed.
* Improve compression of article lists in gnus/nnselectAndrew G Cohen2022-02-041-18/+21
| | | | | * lisp/gnus/nnselect.el (nnselect-compress-artlist): Allow compressed list. nnselect-uncompress-artlist): Properly loop over rsv values.
* Move the Gnus range functions to a new range.el fileLars Ingebrigtsen2022-01-171-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/range.el: New file. * lisp/gnus/gnus-agent.el (range): (gnus-agent-synchronize-group-flags): (gnus-agent-possibly-alter-active): (gnus-agent-fetch-headers): (gnus-agent-read-agentview): (gnus-agent-fetch-group-1): (gnus-agent-read-p): (gnus-agent-expire-group-1): (gnus-agent-retrieve-headers): Adjust callers. * lisp/gnus/gnus-art.el (range): (gnus-article-describe-bindings): * lisp/gnus/gnus-cloud.el (range): (gnus-cloud-available-chunks): * lisp/gnus/gnus-draft.el (gnus-group-send-queue): * lisp/gnus/gnus-group.el (range): (gnus-group-line-format-alist): (gnus-number-of-unseen-articles-in-group): (gnus-group-update-eval-form): (gnus-group-read-group): (gnus-group-delete-articles): (gnus-group-catchup): (gnus-group-expire-articles-1): (gnus-add-marked-articles): * lisp/gnus/gnus-int.el (gnus-request-marks): * lisp/gnus/gnus-kill.el (gnus-apply-kill-file-internal): * lisp/gnus/gnus-range.el (gnus-range-difference) (gnus-sorted-range-intersection, gnus-uncompress-range) (gnus-add-to-range, gnus-remove-from-range) (gnus-member-of-range, gnus-list-range-intersection) (gnus-list-range-difference, gnus-range-length, gnus-range-add) (gnus-range-map): Make into obsolete aliases. * lisp/gnus/gnus-start.el (gnus-make-articles-unread): (gnus-convert-old-ticks): (gnus-read-old-newsrc-el-file): * lisp/gnus/gnus-sum.el (gnus-select-newsgroup): (gnus-articles-to-read): (gnus-articles-to-read): (gnus-killed-articles): (gnus-adjust-marked-articles): (gnus-update-marks): (gnus-update-marks): (gnus-compute-read-articles): (gnus-list-of-read-articles): (gnus-summary-update-info): (gnus-summary-move-article): (gnus-summary-expire-articles): (gnus-update-read-articles): (gnus-summary-insert-old-articles): (gnus-summary-insert-old-articles): (gnus-summary-insert-old-articles): * lisp/gnus/mail-source.el (gnus-range): (gnus-compress-sequence): * lisp/gnus/nnheader.el (range): (gnus-range-add): (nnheader-update-marks-actions): * lisp/gnus/nnimap.el (nnimap-update-info): (nnimap-update-info): (nnimap-update-info): (nnimap-update-qresync-info): (nnimap-update-qresync-info): (nnimap-update-qresync-info): (nnimap-parse-copied-articles): * lisp/gnus/nnmaildir.el (nnmaildir-request-update-info): (nnmaildir-request-update-info): (nnmaildir-request-expire-articles): (nnmaildir-request-expire-articles): (nnmaildir-request-set-mark): * lisp/gnus/nnmairix.el (nnmairix-request-set-mark): * lisp/gnus/nnmbox.el (nnmbox-record-active-article): (nnmbox-record-deleted-article): * lisp/gnus/nnml.el (nnml-request-compact-group): * lisp/gnus/nnvirtual.el (nnvirtual-request-expire-articles): * lisp/gnus/nnselect.el (numbers-by-group): (nnselect-request-update-info): (nnselect-push-info):
* Merge from origin/emacs-28Eli Zaretskii2022-01-011-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year. 86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year ebe8772f65 ; Minor fixes related to copyright years 23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye... 8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t. 19dcb237b5 ; Add 2022 to copyright years. # Conflicts: # etc/NEWS # etc/refcards/ru-refcard.tex # lib/cdefs.h # lisp/erc/erc-dcc.el # lisp/erc/erc-imenu.el # lisp/erc/erc-replace.el # lisp/image-dired.el # lisp/progmodes/xref.el # m4/alloca.m4 # m4/byteswap.m4 # m4/errno_h.m4 # m4/getopt.m4 # m4/gnulib-common.m4 # m4/inttypes.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/sys_socket_h.m4
| * ; Add 2022 to copyright years.Eli Zaretskii2022-01-011-1/+1
| |
* | Fix gnus search by message-idAndrew G Cohen2021-12-191-3/+2
| | | | | | | | | | | | | | | | * lisp/gnus/gnus-search.el (gnus-search-run-search): Continue iterating until a match is found. * lisp/gnus/nnselect.el (nnselect-request-article): Use new gnus-search query format.
* | Don't swallow gnus-search errors when creating nnselect groupsEric Abrahamsen2021-12-041-0/+4
|/ | | | | | | | * lisp/gnus/gnus-search.el (gnus-search-run-query): Modify condition-case to re-signal any gnus-search related errors; the user should see them. (gnus-search-error): Define a new parent error for all gnus-search errors.
* Use condition-case-unless-debug in nnselect-runEric Abrahamsen2021-05-161-1/+1
| | | | | * lisp/gnus/nnselect.el (nnselect-run): This is confusing for users, make it more yielding to common debugging strategies.
* ; Remove some useless commentsStefan Kangas2021-04-161-1/+0
|
* Remove redundant #' before lambda in GnusStefan Kangas2021-04-011-34/+34
| | | | | | | | | | | | | | | * lisp/gnus/gnus-group.el (gnus-group-list-cached) (gnus-group-list-dormant, gnus-group-list-ticked): * lisp/gnus/gnus-registry.el (gnus-registry-remove-extra-data): * lisp/gnus/gnus-score.el (gnus-score-edit-file-at-point): * lisp/gnus/gnus-sum.el (gnus-fetch-headers): * lisp/gnus/mm-partial.el (mm-inline-partial): * lisp/gnus/nnselect.el (nnselect-uncompress-artlist) (numbers-by-group, nnselect-request-expire-articles) (nnselect-request-update-info, nnselect-request-thread): * lisp/gnus/nnvirtual.el (nnvirtual-request-expire-articles): * lisp/gnus/spam-stat.el (spam-stat-score-buffer): Remove redundant #' before lambda.
* Fix typosMattias EngdegÄrd2021-02-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/display.texi (Size of Displayed Text): * doc/lispref/windows.texi (Buffer Display Action Functions): * etc/NEWS: * etc/ORG-NEWS (Org-Attach has been refactored and extended): * lisp/battery.el (display-battery-mode, battery--upower-subsribe): * lisp/calendar/parse-time.el: * lisp/dired-x.el: * lisp/emacs-lisp/chart.el (chart-sequece, chart-bar-quickie): * lisp/emacs-lisp/eldoc.el (eldoc-echo-area-use-multiline-p) (eldoc-documentation-strategy): * lisp/emacs-lisp/pcase.el (pcase--split-pred, pcase--u1): * lisp/gnus/gnus-search.el (gnus-search-expandable-keys) (gnus-search-parse-query, gnus-search-query-return-string) (gnus-search-imap, gnus-search-imap-search-command) (gnus-search-transform-expression): * lisp/gnus/nnselect.el: * lisp/isearch.el (isearch-lazy-count-format): * lisp/mh-e/mh-show.el (mh-show-msg): * lisp/net/dictionary-connection.el (dictionary-connection-open): * lisp/net/dictionary.el (dictionary-default-popup-strategy) (dictionary, dictionary-split-string, dictionary-do-select-dictionary) (dictionary-display-dictionarys, dictionary-search) (dictionary-tooltip-mode): * lisp/net/eudcb-macos-contacts.el (eudc-macos-contacts-set-server): * lisp/net/mailcap.el (mailcap-mime-data): * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): * lisp/nxml/nxml-mode.el (nxml-mode): * lisp/progmodes/cc-engine.el: * lisp/progmodes/cperl-mode.el (cperl-mode) (cperl-fontify-syntaxically): * lisp/progmodes/flymake.el (flymake-diagnostic-functions): * lisp/progmodes/verilog-mode.el (verilog--supressed-warnings) (verilog-preprocess): * lisp/simple.el (self-insert-uses-region-functions): * lisp/textmodes/bibtex.el (bibtex-copy-summary-as-kill): * lisp/textmodes/texnfo-upd.el (texinfo-insert-master-menu-list): * src/dispnew.c: * src/font.c (Ffont_get): * src/indent.c (compute_motion): * src/process.c (init_process_emacs): * src/w32fns.c (deliver_wm_chars): * test/lisp/jsonrpc-tests.el (deferred-action-complex-tests): Fix typos in documentation, comments, and internal identifiers.
* * lisp/gnus: Quote functions with #'Stefan Monnier2021-01-301-17/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To get better warnings, try and use #' to quote function names. * lisp/gnus/canlock.el: * lisp/gnus/deuglify.el: * lisp/gnus/gmm-utils.el: * lisp/gnus/gnus-agent.el: * lisp/gnus/gnus-art.el: * lisp/gnus/gnus-bookmark.el: * lisp/gnus/gnus-cache.el: * lisp/gnus/gnus-cite.el: * lisp/gnus/gnus-cus.el: * lisp/gnus/gnus-delay.el: * lisp/gnus/gnus-diary.el: * lisp/gnus/gnus-dired.el: * lisp/gnus/gnus-draft.el: * lisp/gnus/gnus-fun.el: * lisp/gnus/gnus-group.el: * lisp/gnus/gnus-html.el: * lisp/gnus/gnus-int.el: * lisp/gnus/gnus-kill.el: * lisp/gnus/gnus-mlspl.el: * lisp/gnus/gnus-msg.el: * lisp/gnus/gnus-notifications.el: * lisp/gnus/gnus-picon.el: * lisp/gnus/gnus-registry.el: * lisp/gnus/gnus-rfc1843.el: * lisp/gnus/gnus-salt.el: * lisp/gnus/gnus-score.el: * lisp/gnus/gnus-search.el: * lisp/gnus/gnus-sieve.el: * lisp/gnus/gnus-srvr.el: * lisp/gnus/gnus-start.el: * lisp/gnus/gnus-topic.el: * lisp/gnus/gnus-undo.el: * lisp/gnus/gnus-util.el: * lisp/gnus/gnus-uu.el: * lisp/gnus/gnus.el: * lisp/gnus/mail-source.el: * lisp/gnus/message.el: * lisp/gnus/mm-archive.el: * lisp/gnus/mm-decode.el: * lisp/gnus/mm-url.el: * lisp/gnus/mm-util.el: * lisp/gnus/mm-view.el: * lisp/gnus/mml-sec.el: * lisp/gnus/mml-smime.el: * lisp/gnus/mml.el: * lisp/gnus/nnagent.el: * lisp/gnus/nndiary.el: * lisp/gnus/nndoc.el: * lisp/gnus/nndraft.el: * lisp/gnus/nnfolder.el: * lisp/gnus/nnheader.el: * lisp/gnus/nnmail.el: * lisp/gnus/nnmaildir.el: * lisp/gnus/nnmairix.el: * lisp/gnus/nnmh.el: * lisp/gnus/nnml.el: * lisp/gnus/nnrss.el: * lisp/gnus/nnselect.el: * lisp/gnus/nnspool.el: * lisp/gnus/nnvirtual.el: * lisp/gnus/nnweb.el: * lisp/gnus/smiley.el: * lisp/gnus/smime.el: * lisp/gnus/spam-report.el: * lisp/gnus/spam-stat.el: * lisp/gnus/spam-wash.el: * lisp/gnus/spam.el:
* Update copyright year to 2021Paul Eggert2021-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright".
* Remove ephemeral group on error or null resultAndrew G Cohen2020-11-101-2/+8
| | | | | | * lisp/gnus/nnselect.el (nnselect-request-group): If an ephemeral group is empty, there is nothing to see, so remove the group. (nnselect-run): Catch and return an empty artlist on error.
* New gnus-search libraryEric Abrahamsen2020-11-031-38/+53
| | | | | | | | | | | | | | | | | | | | | | | This library provides a fundamental reworking of the search functionality previously found in nnir.el. It uses class-based search engines to interface with external searching facilities, and a parsed search query syntax that can search multiple engines. * lisp/gnus/gnus-search.el: New library containing search functionality for Gnus. * doc/misc/gnus.texi: Document. * lisp/gnus/gnus-group.el (gnus-group-make-search-group, gnus-group-read-ephemeral-search-group): Remove references to nnir, change meaning of prefix argument, change values of nnselect-function and nnselect-args. * lisp/gnus/nnselect.el: Replace references to nnir (nnselect-request-article): Use gnus-search functions, and search criteria. (nnselect-request-thread, nnselect-search-thread): Use gnus-search thread search. (gnus-summary-make-search-group): Switch to use gnus-search function and arguments. * test/lisp/gnus/search-tests.el: Tests for new functionality.
* Fix some defcustom typesLars Ingebrigtsen2020-09-251-1/+2
| | | | | | | | | | * lisp/whitespace.el (whitespace-style): * lisp/gnus/message.el (message-screenshot-command): * lisp/progmodes/compile.el (compilation-transform-file-match-alist): * lisp/progmodes/gdb-mi.el (gdb-default-window-configuration-file): * lisp/progmodes/python.el (python-pdbtrack-exit-command): Fix the defcustom types. * lisp/progmodes/sql.el (sql-password-wallet): Fix the value.
* Improve mark handling in gnus nnselectAndrew G Cohen2020-09-231-75/+142
| | | | | | * lisp/gnus/nnselect.el (numbers-by-group, nnselect-request-update-info, nnselect-push-info): Handle all three mark types ('tuple, 'range, 'list) and general speedups.
* Run gnus-parse-headers-hook when retrieving nnselect headersAndrew G Cohen2020-09-231-0/+1
| | | | | | * lisp/gnus/nnselect.el (nnselect-retrieve-headers): Run the gnus-parse-headers-hook when retrieving headers in nnselect, just like in a real group.
* Use gnus-extra-headers in nnselect header parsingAndrew G Cohen2020-09-231-5/+6
| | | | | | * lisp/gnus/nnselect.el (nnselect-retrieve-headers): Bind nnmail-extra-headers to gnus-extra-headers before parsing retrieved headers.
* Clean up group-finding in Gnus nnir searchAndrew G Cohen2020-09-111-3/+1
| | | | | | | | | | | | | | | | | This is part of removing code from nnir.el that isn't related to searching backends and therefore belongs somewhere else. * lisp/gnus/gnus-group.el (gnus-group-make-search-group) (gnus-group-read-ephemeral-search-group): Put the logic for determining the groups to search here, rather than in nnir. Improve documentation. * lisp/gnus/gnus-int.el (gnus-server-get-active): Renamed from 'nnir-get-active. * lisp/gnus/nnir.el (nnir-run-imap, nnir-run-find-grep): Use it. (nnir-get-active): Remove. (nnir-make-specs): Make obsolete. * lisp/gnus/nnselect.el (nnselect-group-server): Make obsolete in favor of 'gnus-group-server.
* Allow editing articles in Gnus nnselect groupsAndrew G Cohen2020-09-111-0/+15
| | | | * lisp/gnus/nnselect.el (nnselect-request-replace-article): New function.
* Add aliases for recent Gnus nnselect changesAndrew G Cohen2020-09-071-2/+4
| | | | | | | | | | | | | | | * lisp/org/ol-gnus.el (org-gnus-store-link): Change 'nnir to 'nnselect. * lisp/gnus/gnus-group.el: Define obsolete function alias for 'gnus-group-make-nnir-group to 'gnus-group-read-ephemeral-search-group. * lisp/gnus/gnus-sum.el: Define obsolete variable alias for 'gnus-refer-thread-use-nnir to 'gnus-refer-thread-use-search. * lisp/gnus/nnselect.el: Define obsolete variable alias for 'nnir-retrieve-headers-override-function to 'nnselect-retrieve-headers-override-function. * lisp/gnus/nnir.el: Restore definition of 'nnir-summary-line-format and mark obsolete.
* Fix formatting of recent Gnus nnselect changesBasil L. Contovounesios2020-09-061-7/+7
| | | | | | | | | | | | | | | | | | | * doc/misc/gnus.texi (Finding the Parent, Selection Groups) (Searching, Basic Usage): Heed sentence-end-double-space. Fix formatting of prose and examples. * etc/NEWS: Fix typo. * lisp/gnus/gnus-srvr.el: Remove disabled autoload. * lisp/gnus/gnus-cloud.el (gnus-cloud-available-chunks): * lisp/gnus/gnus-group.el (gnus-group-read-ephemeral-search-group): * lisp/gnus/gnus-sum.el (gnus-refer-thread-use-search) (gnus-summary-refer-thread): * lisp/gnus/gnus.el (gnus-kill-ephemeral-group): * lisp/gnus/nnheader.el (nnheader-head-make-header) (nnheader-parse-head): * lisp/gnus/nnir.el: (nnir-hyrex-remove-prefix, nnir-run-notmuch): * lisp/gnus/nnselect.el: Fix formatting/indentation of commentary, docstring, and/or code.
* Introduce nnselect backend for gnusAndrew G Cohen2020-09-051-0/+864
This new backend allows gnus to handle arbitrary sets of messages spanning multiple groups, even when these groups are from different backends and different servers. All gnus glue is removed from nnir (leaving only the backend search functions) and gnus search-related processing is done through nnselect. In appropriate places 'nnir' has been replaced by 'nnselect' or 'search'. * etc/NEWS: Document the change. * doc/misc/gnus.texi: New documentation for nnselect and update searching and thread-referral sections. * lisp/gnus/nnselect.el: New file. * lisp/gnus/nnir.el: Remove all gnus glue, leaving only searching capability. Improve documentation strings. * lisp/gnus/gnus-group.el (gnus-group-read-ephemeral-search-group, gnus-group-make-search-group): New functions. * lisp/gnus/gnus-msg.el (gnus-setup-message, gnus-group-news, gnus-summary-news-other-window): Update to work for nnselect. Fix gnus-newsgroup-name wrangling. *lisp/gnus/gnus-registry.el (gnus-registry-action,gnus-registry-ignore-group-p): Make work from nnselect. * lisp/gnus/nnheader.el (nnheader-parse-head, nnheader-parse-nov): Rework and consolidate header parsing. * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): * lisp/gnus/gnus-cache.el (gnus-possibly-enter-article): * lisp/gnus/gnus-cloud.el (gnus-cloud-available-chunks): * lisp/gnus/gnus-msg.el (gnus-inews-yank-articles): * lisp/gnus/gnus-sum. (gnus-get-newsgroup-headers): * lisp/gnus/nndiary.el (nndiary-parse-head): * lisp/gnus/nnfolder.el (nnfolder-parse-head): * lisp/gnus/nnmaildir.el (nnmaildir--update-nov): * lisp/gnus/nnml.el (nnml-parse-head): * lisp/gnus/nnspool.el (nnspool-insert-nov-head): Use new header parsing. * lisp/gnus/gnus-start.el (gnus-read-active-for-groups): Rescan on activation by default. * lisp/gnus/gnus-sum.el (gnus-summary-line-format-alist): New specs for virtual groups. (gnus-article-sort-by-rsv, gnus-thread-sort-by-rsv): New functions to allow sorting by search RSV.