summaryrefslogtreecommitdiff
path: root/lisp/gnus/gnus-sum.el
Commit message (Collapse)AuthorAgeFilesLines
* Use … in Gnus mode lines (when shortening them)Juri Linkov2020-10-051-2/+2
| | | | | | * lisp/gnus/gnus-sum.el (gnus-set-mode-line): Defer ellipsis creation to `truncate-string-to-width' (bug#41250). This uses … by default.
* Doc string fix for gnus-summary-hide-threadLars Ingebrigtsen2020-09-211-2/+0
| | | | | * lisp/gnus/gnus-sum.el (gnus-summary-hide-thread): Remove text from doc string apparently copy-pasted from the function above.
* Remove a misleading message in gnus-summary-hide-threaddickmao2020-09-211-2/+2
| | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-hide-thread): Jump past invisible thread instead of begging off with an out-of-band diagnostic (bug#43538).
* Fix gnus-summary-catchup-from-here edge caseAlex Bochannek2020-09-191-1/+1
| | | | | * lisp/gnus/gnus-sum.el (gnus-summary-catchup-from-here): Make the command work in the final line in the buffer, too (bug#43496).
* Fix new summary-line after editing an article in GnusAndrew G Cohen2020-09-101-0/+1
| | | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-edit-article-done): Strip ^M from the ends of lines after saving an edited article. Otherwise the new header isn't always parsed properly, resulting in an incorrect subject line in the summary buffer.
* Add Gnus function to make a persistent group from a search resultAndrew G Cohen2020-09-091-0/+17
| | | | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-make-group-from-search): New command (bound to C-c C-p in summary buffers). * doc/misc/gnus.texi (What is nnir?): Document it. Correct previous errors. * etc/NEWS (Gnus): Mention it.
* Add aliases for recent Gnus nnselect changesAndrew G Cohen2020-09-071-1/+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-12/+11
| | | | | | | | | | | | | | | | | | | * 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.
* Use `format-prompt' when prompting with default valuesLars Ingebrigtsen2020-09-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/woman.el (woman-file-name): * lisp/wid-edit.el (widget-file-prompt-value) (widget-coding-system-prompt-value): * lisp/w32-fns.el (w32-set-system-coding-system): * lisp/vc/vc.el (vc-print-root-log): * lisp/vc/vc-annotate.el (vc-annotate): * lisp/vc/emerge.el (emerge-read-file-name): * lisp/vc/ediff.el (ediff-directories) (ediff-directory-revisions, ediff-directories3) (ediff-merge-directories, ) (ediff-merge-directories-with-ancestor) (ediff-merge-directory-revisions) (ediff-merge-directory-revisions-with-ancestor) (ediff-merge-revisions, ediff-merge-revisions-with-ancestor) (ediff-revision): * lisp/vc/ediff-util.el (ediff-toggle-regexp-match): * lisp/vc/ediff-mult.el (ediff-filegroup-action): * lisp/vc/add-log.el (prompt-for-change-log-name): * lisp/textmodes/table.el (table-insert-row-column) (table-span-cell, table-split-cell-horizontally) (table-split-cell, table-justify, table-generate-source) (table-insert-sequence, table-capture) (table--read-from-minibuffer, table--query-justification): * lisp/textmodes/sgml-mode.el (sgml-tag, sgml-tag-help): * lisp/textmodes/reftex-ref.el (reftex-goto-label): * lisp/textmodes/refer.el (refer-get-bib-files): * lisp/textmodes/css-mode.el (css-lookup-symbol): * lisp/term.el (serial-read-name, serial-read-speed): * lisp/speedbar.el (speedbar-change-initial-expansion-list): * lisp/simple.el (previous-matching-history-element) (set-variable): * lisp/ses.el (ses-read-cell, ses-set-column-width): * lisp/replace.el (query-replace-read-from) (occur-read-primary-args): * lisp/rect.el (string-rectangle, string-insert-rectangle): * lisp/progmodes/tcl.el (tcl-help-on-word): * lisp/progmodes/sh-script.el (sh-set-shell): * lisp/progmodes/python.el (python-eldoc-at-point): * lisp/progmodes/octave.el (octave-completing-read) (octave-update-function-file-comment, octave-insert-defun): * lisp/progmodes/inf-lisp.el (lisp-symprompt): * lisp/progmodes/cperl-mode.el (cperl-info-on-command) (cperl-perldoc): * lisp/progmodes/compile.el (compilation-find-file): * lisp/net/rcirc.el (rcirc-prompt-for-encryption): * lisp/net/eww.el (eww): * lisp/net/browse-url.el (browse-url-with-browser-kind): * lisp/man.el (man): * lisp/mail/sendmail.el (sendmail-query-user-about-smtp): * lisp/mail/mailalias.el (build-mail-aliases): * lisp/mail/mailabbrev.el (merge-mail-abbrevs) (rebuild-mail-abbrevs): * lisp/locate.el (locate-prompt-for-search-string): * lisp/isearch.el (isearch-occur): * lisp/international/ogonek.el (ogonek-read-encoding) (ogonek-read-prefix): * lisp/international/mule.el (read-buffer-file-coding-system) (set-terminal-coding-system, set-keyboard-coding-system) (set-next-selection-coding-system, recode-region): * lisp/international/mule-cmds.el () (universal-coding-system-argument, search-unencodable-char) (select-safe-coding-system-interactively): * lisp/info.el (Info-search, Info-search-backward, Info-menu): * lisp/info-look.el (info-lookup-interactive-arguments): * lisp/imenu.el (imenu--completion-buffer): * lisp/ibuf-ext.el (mode, used-mode, ibuffer-mark-by-mode): * lisp/hi-lock.el (hi-lock-unface-buffer) (hi-lock-read-face-name): * lisp/help.el (view-emacs-news, where-is): * lisp/help-fns.el (describe-variable, describe-symbol) (describe-keymap): * lisp/gnus/mm-decode.el (mm-save-part): * lisp/gnus/gnus-sum.el (gnus-summary-browse-url): * lisp/gnus/gnus-group.el (gnus-group--read-bug-ids) (gnus-group-set-current-level): * lisp/frame.el (make-frame-on-monitor) (close-display-connection, select-frame-by-name): * lisp/format.el (format-encode-buffer, format-encode-region): * lisp/files.el (recode-file-name): * lisp/files-x.el (read-file-local-variable) (read-file-local-variable-value, ) (read-file-local-variable-mode): * lisp/ffap.el (ffap-menu-ask): * lisp/faces.el (face-read-string): * lisp/facemenu.el (facemenu-set-charset): * lisp/erc/erc-dcc.el (erc-dcc-do-GET-command): * lisp/emulation/edt-mapper.el (edt-mapper): * lisp/emacs-lisp/trace.el (trace--read-args) (trace-function-foreground, trace-function-background): * lisp/emacs-lisp/smie.el (smie-config-set-indent): * lisp/emacs-lisp/re-builder.el (reb-change-syntax): * lisp/emacs-lisp/package.el (describe-package): * lisp/emacs-lisp/find-func.el (read-library-name) (find-function-read): * lisp/emacs-lisp/ert.el (ert-read-test-name) (ert-run-tests-interactively): * lisp/emacs-lisp/disass.el (disassemble): * lisp/emacs-lisp/debug.el (debug-on-entry) (debug-on-variable-change): * lisp/emacs-lisp/advice.el (ad-read-advised-function) (ad-read-advice-class, ad-read-advice-name, ad-read-regexp): * lisp/dired-x.el (dired--mark-suffix-interactive-spec): * lisp/dired-aux.el (dired-diff): * lisp/cus-edit.el (custom-variable-prompt, customize-mode) (customize-changed-options): * lisp/completion.el (interactive-completion-string-reader): * lisp/calendar/timeclock.el (timeclock-ask-for-project): * lisp/calc/calcalg3.el (calc-get-fit-variables): * lisp/calc/calc-store.el (calc-edit-variable): * lisp/calc/calc-bin.el (calc-word-size): * lisp/bookmark.el (bookmark-set-internal): * lisp/abbrev.el (read-abbrev-file): Use `format-prompt' for prompting (bug#12443).
* Introduce nnselect backend for gnusAndrew G Cohen2020-09-051-218/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Make Gnus stop clobbering the M-s search prefix key bindingLars Ingebrigtsen2020-08-151-1/+2
| | | | | | | | | | | * doc/emacs/misc.texi (Gnus Summary Buffer): Ditto. * doc/misc/gnus.texi (Searching for Articles): Document moved M-s (bug#39706). * lisp/gnus/gnus-sum.el (gnus-summary-mode-map): Move gnus-summary-search-article-forward to M-s M-s, and add M-s M-r for gnus-summary-search-article-backward.
* Add constants for shell command output buffer namesTino Calancha2020-08-091-1/+1
| | | | | | | | | | | | | | | | | | | | Buffers `*Shell Command Output*' and `*Async Shell Command*' have been around since a long time; used across several libraries, they are de facto output buffers for shell commands. * lisp/simple.el (shell-command-buffer-name) (shell-command-buffer-name-async): New variables. * lisp/dired-aux.el * lisp/gnus/gnus-sum.el * lisp/gnus/gnus-win.el * lisp/ibuf-ext.el * lisp/net/tramp.el: Use them. * etc/NEWS (Changes in Emacs 28.1): Announce this change. * doc/emacs/misc.texi (Single Shell) * doc/misc/tramp.texi (Remote processes): Update manual (bug#39138).
* Make the "All" setting for large-newsgroup-initial in Gnus workLars Ingebrigtsen2020-08-021-6/+11
| | | | | | | | | * lisp/gnus/gnus-sum.el (gnus-articles-to-read): Use it. (gnus-summary-insert-old-articles): Ditto. * lisp/gnus/gnus.el (large-newsgroup-initial): Make the "All" setting work by using a special symbol, instead of nil which is indistinguishable from not being present (bug#38466).
* Fix problem with new-mail-mark in Gnus with non-unique namesLars Ingebrigtsen2020-07-281-1/+1
| | | | | | | | | | | | | | * lisp/gnus/gnus-group.el (gnus-group-new-mail): Call with Gnus group name. (gnus-group-catchup): Ditto. * lisp/gnus/gnus-sum.el (gnus-summary-exit): Ditto. * lisp/gnus/nnimap.el (nnimap-update-info): Store Gnus group name. * lisp/gnus/nnmail.el (nnmail-check-duplication): Store unique Gnus names in the history instead of backend-specific (possibly duplicated) group names (bug#41842).
* Complete over the MIME types in gnus-summary-save-partsEric Abrahamsen2020-07-191-4/+9
| | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-save-parts): Allow completing over the parts in the first article in the list of the process-marked articles (bug#39543).
* Do window configuration change before killing Gnus buffers on exitLars Ingebrigtsen2020-07-191-2/+2
| | | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-exit): Do window configuration changes before killing off the summary buffer, so that the window conf machinery can return to a group-only configuration (bug#40069).
* Simplify dummy root subject before comparing it to the current articleKévin Le Gouguec2020-07-191-1/+2
| | | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-prepare-threads): Simplify both the dummy root and the following article before comparing them, otherwise both the former and the latter might display the thread's subject even when gnus-summary-line-format contains "%s" (bug#40520).
* Don’t attempt to modify constant consesPaul Eggert2020-05-161-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | From a patch privately suggested by Mattias Engdegård on 2020-05-11 in a followup to Bug#40671. * admin/charsets/cp51932.awk: * admin/charsets/eucjp-ms.awk: Generate code that does not modify constant conses. * doc/misc/emacs-mime.texi (Encoding Customization): * lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-free-ops): * lisp/frameset.el (frameset-persistent-filter-alist): * lisp/gnus/gnus-sum.el (gnus-article-mode-line-format-alist): Use append instead of nconc. * lisp/language/japanese.el (japanese-ucs-cp932-to-jis-map) (jisx0213-to-unicode): Use mapcar instead of mapc. * lisp/language/lao-util.el (lao-transcription-consonant-alist) (lao-transcription-vowel-alist): * lisp/language/tibetan.el (tibetan-subjoined-transcription-alist): Use copy-sequence. * test/src/fns-tests.el (fns-tests-nreverse): (fns-tests-sort, fns-tests-collate-sort) (fns-tests-string-version-lessp, fns-tests-mapcan): Use copy-sequence, vector, and list.
* gnus-shorten-url: Improve and avoid args-out-of-range errorŠtěpán Němec2020-04-131-7/+7
| | | | | | | | | | | | | | | | | | | 'gnus-shorten-url' (used by 'gnus-summary-browse-url') ignored fragment identifiers and didn't check substring bounds, in some cases leading to runtime errors, e.g.: (gnus-shorten-url "https://some.url.with/path/and#also_a_long_target" 40) ;; => Lisp error: (args-out-of-range "/path/and" -18 nil) This commit makes it account for #fragments and fixes faulty string computation, reusing existing helper function. (bug#39980) * lisp/vc/ediff-init.el (ediff-truncate-string-left): Rename to 'string-truncate-left' and move... * lisp/emacs-lisp/subr-x.el (string-truncate-left): ...here. All callers changed. * lisp/gnus/gnus-sum.el (gnus-shorten-url): Fix args-out-of-range error, don't drop #fragments, use 'string-truncate-left'.
* * lisp/gnus/gnus-sum.el (gnus-read-move-group-name): Use user-errorStefan Monnier2020-02-041-1/+1
|
* Make sure that all gnus buffers are killed on exitSam Steingold2020-01-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Use `gnus-get-buffer-create' instead of `get-buffer-create' * lisp/gnus/gnus-bookmark.el (gnus-bookmark-write-file): Likewise. (gnus-bookmark-bmenu-list): Likewise. (gnus-bookmark-show-details): Likewise. * lisp/gnus/gnus-draft.el (gnus-draft-setup): Likewise. * lisp/gnus/gnus-icalendar.el (gnus-icalendar-reply): Likewise. * lisp/gnus/gnus-int.el (gnus-backend-trace): Likewise. * lisp/gnus/gnus-srvr.el (gnus-enter-server-buffer): Likewise. * lisp/gnus/gnus-sum.el (gnus-summary-pipe-output): Likewise. * lisp/gnus/gnus-util.el (gnus-output-to-rmail): Likewise. (gnus-output-to-mail): Likewise. (gnus-multiple-choice): Likewise. * lisp/gnus/mail-source.el (mail-source-call-script): Likewise. * lisp/gnus/message.el (message-cancel-news): Likewise. (message-resend): Likewise. * lisp/gnus/mm-archive.el (mm-dissect-archive): Likewise. * lisp/gnus/mml1991.el (mml1991-mailcrypt-sign): Likewise. (mml1991-mailcrypt-encrypt): Likewise. * lisp/gnus/mml2015.el (mml2015-mailcrypt-verify): Likewise. (mml2015-mailcrypt-clear-verify): Likewise. * lisp/gnus/nnbabyl.el (nnbabyl-request-move-article): Likewise. * lisp/gnus/nndiary.el (nndiary-request-move-article): Likewise. (nndiary-find-group-number): Likewise. (nndiary-open-nov): Likewise. (nndiary-generate-nov-file): Likewise. * lisp/gnus/nndoc.el (nndoc-possibly-change-buffer): Likewise. * lisp/gnus/nndraft.el (nndraft-request-move-article): Likewise. (nndraft-auto-save-file-name): Likewise. * lisp/gnus/nneething.el (nneething-get-head): Likewise. * lisp/gnus/nnfolder.el (nnfolder-request-move-article): Likewise. (nnfolder-open-nov): Likewise. * lisp/gnus/nnheader.el (nnheader-init-server-buffer): Likewise. (nnheader-set-temp-buffer): Likewise. * lisp/gnus/nnimap.el (nnimap-log-buffer): Likewise. * lisp/gnus/nnir.el (nnir-run-swish++): Likewise. (nnir-run-swish-e): Likewise. (nnir-run-hyrex): Likewise. (nnir-run-namazu): Likewise. (nnir-run-notmuch): Likewise. (nnir-run-find-grep): Likewise. * lisp/gnus/nnmail.el (nnmail-split-incoming): Likewise. (nnmail-cache-open): Likewise. (nnmail-log-split): Likewise. * lisp/gnus/nnmaildir.el (nnmaildir--with-work-buffer): Likewise. (nnmaildir--with-nov-buffer): Likewise. (nnmaildir--with-move-buffer): Likewise. * lisp/gnus/nnmairix.el (nnmairix-call-mairix-binary): Likewise. (nnmairix-call-mairix-binary-raw): Likewise. (nnmairix-replace-group-and-numbers): Likewise. * lisp/gnus/nnmbox.el (nnmbox-request-move-article): Likewise. * lisp/gnus/nnmh.el (nnmh-request-move-article): Likewise. * lisp/gnus/nnml.el (nnml-request-move-article): Likewise. (nnml-find-group-number): Likewise. (nnml-get-nov-buffer): Likewise. (nnml-generate-nov-file): Likewise. * lisp/gnus/nnrss.el (nnrss-opml-export): Likewise. * lisp/gnus/nntp.el (nntp-record-command): Likewise. * lisp/gnus/nnvirtual.el (nnvirtual-retrieve-headers): Likewise. * lisp/gnus/smime.el (smime-new-details-buffer): Likewise. (smime-certificate-info): Likewise. (smime): Likewise. * lisp/gnus/spam-stat.el (spam-stat-store-current-buffer): Likewise.
* Prefer saying "Info manual" to "info page" in docsStefan Kangas2020-01-231-1/+1
| | | | | | | | | | | | | Pointed out by Eli Zaretskii in: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=39215#14 * doc/emacs/Makefile.in: * doc/lispintro/Makefile.in: * doc/lispref/Makefile.in: * doc/misc/Makefile.in: * lisp/dired-x.el (top-level): * lisp/gnus/gnus-sum.el (gnus-summary-mode): * lisp/progmodes/cperl-mode.el (cperl-info-page): Doc fix; prefer saying "Info manual" over "info page".
* Update copyright year to 2020Paul Eggert2020-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
* * lisp/gnus/gnus.el (gnus-info): Define with `cl-defstruct`Stefan Monnier2019-11-291-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | This makes the accessors into (inlined) functions (instead of macros), which simplifies some uses, and it makes the gnus-info-set-<foo> macros redundant since we can use `setf` instead. Remove them and update all users. (gnus-info-group, gnus-info-rank, gnus-info-read, gnus-info-marks) (gnus-info-method, gnus-info-params): Auto-defined by defstruct. (gnus-info-level, gnus-info-score): Define as a function. Add gv-setter. (gnus-info-set-group, gnus-info-set-rank, gnus-info-set-read): Remove, use `setf` instead. (gnus-info-set-marks, gnus-info-set-method, gnus-info-set-params): Define as a function. (gnus-info-set-entry): Delete function. (gnus-info--grow-entry): New function, extracted from it. (gnus-info--set-level, gnus-info--set-score): New functions, extracted from the `gnus-info-set-level` and `gnus-info-set-score` which they replace. (gnus-get-info): Define as a function. * lisp/gnus/gnus-group.el (gnus-group-edit-group-done): Use the `extend` arg of `gnus-info-set-method`. (gnus-group-sort-selected-flat): eta-reduce.
* Unify docstrings of Gnus summary's copy/move/crosspost article functionsFilipp Gunbin2019-11-221-7/+3
| | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-copy-article) (gnus-summary-crosspost-article): Make docstrings refer to gnus-summary-move-article.
* Fix Gnus summary backtab keybindings to use button-based functionsEric Abrahamsen2019-11-211-2/+2
| | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-mode-map, gnus-summary-article-map): Backtab should call gnus-summary-button-backward, not gnus-summary-widget-backward.
* Fix some quoting glitches in doc stringsPaul Eggert2019-11-111-1/+1
|
* Fix gnus-thread-hide-subtree defcustomLars Ingebrigtsen2019-10-251-1/+1
| | | | | | * lisp/gnus/gnus-sum.el (gnus-thread-hide-subtree): Make the "Non-nil" predicate do what it's supposed to (i.e., return non-nil on non-nil values (excepting predicates)) (bug#37916).
* Add new Gnus summary commands and keystrokes for "unseen" navigationLars Ingebrigtsen2019-09-291-0/+35
| | | | | | | * doc/misc/gnus.texi (Choosing Commands): Document them. * lisp/gnus/gnus-sum.el (gnus-summary-next-unseen-article) (gnus-summary-prev-unseen-article): New commands and keystrokes (bug#35213).
* Run gnus-summary-prepare-exit-hook after flags have been updatedNikolaus Rath2019-09-271-1/+1
| | | | | * lisp/gnus/gnus-sum.el (gnus-summary-exit): Gnus message flags must be set before expiration, not afterwards (bug#21071).
* gnus-thread-ignore-subject doc string clarificationLars Ingebrigtsen2019-09-271-2/+8
| | | | | | * lisp/gnus/gnus-sum.el (gnus-thread-ignore-subject): Document that when not ignoring subjects, sorting will not happen as expected (bug#35513).
* Rename "dumbquotes" to "smartquotes" in GnusLars Ingebrigtsen2019-09-241-2/+2
| | | | | | | | | | | | * doc/misc/gnus.texi (Article Washing): Adjust documentation. * etc/refcards/gnus-refcard.tex (subsection*{Notes}): Ditto * lisp/gnus/gnus-art.el (gnus-article-smartquotes-map): Rename from gnus-article-dumbquotes-map and add obsolete alias. (article-treat-smartquotes): Ditto. * lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Adjust menus.
* lisp/*.el: Fix typos and other trivial doc fixesJuanma Barranquero2019-09-211-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/allout-widgets.el (allout-widgets-auto-activation) (allout-current-decorated-p): * lisp/auth-source.el (auth-source-protocols): * lisp/autorevert.el (auto-revert-set-timer): * lisp/battery.el (battery-mode-line-limit): * lisp/calc/calcalg3.el (math-map-binop): * lisp/calendar/cal-dst.el (calendar-dst-find-startend): * lisp/calendar/cal-mayan.el (calendar-mayan-long-count-to-absolute): * lisp/calendar/calendar.el (calendar-date-echo-text) (calendar-generate-month, calendar-string-spread) (calendar-cursor-to-date, calendar-read, calendar-read-date) (calendar-mark-visible-date, calendar-dayname-on-or-before): * lisp/calendar/diary-lib.el (diary-ordinal-suffix): * lisp/cedet/ede/autoconf-edit.el (autoconf-new-program) (autoconf-find-last-macro, autoconf-parameter-strip): * lisp/cedet/ede/config.el (ede-target-with-config-build): * lisp/cedet/ede/linux.el (ede-linux--detect-architecture) (ede-linux--get-architecture): * lisp/cedet/semantic/complete.el (semantic-collector-calculate-cache) (semantic-displayer-abstract, semantic-displayer-point-position): * lisp/cedet/semantic/format.el (semantic-format-face-alist) (semantic-format-tag-short-doc): * lisp/cedet/semantic/fw.el (semantic-find-file-noselect): * lisp/cedet/semantic/idle.el (semantic-idle-scheduler-work-idle-time) (semantic-idle-breadcrumbs-display-function) (semantic-idle-breadcrumbs-format-tag-list-function): * lisp/cedet/semantic/lex.el (semantic-lex-map-types) (define-lex, define-lex-block-type-analyzer): * lisp/cedet/semantic/senator.el (senator-search-default-tag-filter): * lisp/cedet/semantic/symref.el (semantic-symref-result) (semantic-symref-hit-to-tag-via-db): * lisp/cedet/semantic/symref.el (semantic-symref-tool-baseclass): * lisp/cedet/semantic/tag.el (semantic-tag-new-variable) (semantic-tag-new-include, semantic-tag-new-package) (semantic-tag-set-faux, semantic-create-tag-proxy) (semantic-tag-function-parent) (semantic-tag-components-with-overlays): * lisp/cedet/srecode/cpp.el (srecode-cpp-namespaces) (srecode-semantic-handle-:c, srecode-semantic-apply-tag-to-dict): * lisp/cedet/srecode/dictionary.el (srecode-create-dictionary) (srecode-dictionary-add-entries, srecode-dictionary-lookup-name) (srecode-create-dictionaries-from-tags): * lisp/cmuscheme.el (scheme-compile-region): * lisp/color.el (color-lab-to-lch): * lisp/doc-view.el (doc-view-image-width) (doc-view-set-up-single-converter): * lisp/dynamic-setting.el (font-setting-change-default-font) (dynamic-setting-handle-config-changed-event): * lisp/elec-pair.el (electric-pair-text-pairs) (electric-pair-skip-whitespace-function) (electric-pair-string-bound-function): * lisp/emacs-lisp/avl-tree.el (avl-tree--del-balance) (avl-tree-member, avl-tree-mapcar, avl-tree-iter): * lisp/emacs-lisp/bytecomp.el (byte-compile-generate-call-tree): * lisp/emacs-lisp/checkdoc.el (checkdoc-autofix-flag) (checkdoc-spellcheck-documentation-flag, checkdoc-ispell) (checkdoc-ispell-current-buffer, checkdoc-ispell-interactive) (checkdoc-ispell-message-interactive) (checkdoc-ispell-message-text, checkdoc-ispell-start) (checkdoc-ispell-continue, checkdoc-ispell-comments) (checkdoc-ispell-defun): * lisp/emacs-lisp/cl-generic.el (cl--generic-search-method): * lisp/emacs-lisp/eieio-custom.el (eieio-read-customization-group): * lisp/emacs-lisp/lisp.el (forward-sexp, up-list): * lisp/emacs-lisp/package-x.el (package--archive-contents-from-file): * lisp/emacs-lisp/package.el (package-desc) (package--make-autoloads-and-stuff, package-hidden-regexps): * lisp/emacs-lisp/tcover-ses.el (ses-exercise-startup): * lisp/emacs-lisp/testcover.el (testcover-nohits) (testcover-1value): * lisp/epg.el (epg-receive-keys, epg-start-edit-key): * lisp/erc/erc-backend.el (erc-server-processing-p) (erc-split-line-length, erc-server-coding-system) (erc-server-send, erc-message): * lisp/erc/erc-button.el (erc-button-face, erc-button-alist) (erc-browse-emacswiki): * lisp/erc/erc-ezbounce.el (erc-ezbounce, erc-ezb-get-login): * lisp/erc/erc-fill.el (erc-fill-variable-maximum-indentation): * lisp/erc/erc-log.el (erc-current-logfile): * lisp/erc/erc-match.el (erc-log-match-format) (erc-text-matched-hook): * lisp/erc/erc-netsplit.el (erc-netsplit, erc-netsplit-debug): * lisp/erc/erc-networks.el (erc-server-alist) (erc-networks-alist, erc-current-network): * lisp/erc/erc-ring.el (erc-input-ring-index): * lisp/erc/erc-speedbar.el (erc-speedbar) (erc-speedbar-update-channel): * lisp/erc/erc-stamp.el (erc-timestamp-only-if-changed-flag): * lisp/erc/erc-track.el (erc-track-position-in-mode-line) (erc-track-remove-from-mode-line, erc-modified-channels-update) (erc-track-last-non-erc-buffer, erc-track-sort-by-importance) (erc-track-get-active-buffer): * lisp/erc/erc.el (erc-get-channel-user-list) (erc-echo-notice-hook, erc-echo-notice-always-hook) (erc-wash-quit-reason, erc-format-@nick): * lisp/ffap.el (ffap-latex-mode): * lisp/files.el (abort-if-file-too-large) (dir-locals--get-sort-score, buffer-stale--default-function): * lisp/filesets.el (filesets-tree-max-level, filesets-data) (filesets-update-pre010505): * lisp/gnus/gnus-agent.el (gnus-agent-flush-cache): * lisp/gnus/gnus-art.el (gnus-article-encrypt-protocol) (gnus-button-prefer-mid-or-mail): * lisp/gnus/gnus-cus.el (gnus-group-parameters): * lisp/gnus/gnus-demon.el (gnus-demon-handlers) (gnus-demon-run-callback): * lisp/gnus/gnus-dired.el (gnus-dired-print): * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-buffer): * lisp/gnus/gnus-range.el (gnus-range-normalize): * lisp/gnus/gnus-spec.el (gnus-pad-form): * lisp/gnus/gnus-srvr.el (gnus-server-agent, gnus-server-cloud) (gnus-server-opened, gnus-server-closed, gnus-server-denied) (gnus-server-offline): * lisp/gnus/gnus-sum.el (gnus-refer-thread-use-nnir) (gnus-refer-thread-limit-to-thread) (gnus-summary-limit-include-thread, gnus-summary-refer-thread) (gnus-summary-find-matching): * lisp/gnus/gnus-util.el (gnus-rescale-image): * lisp/gnus/gnus.el (gnus-summary-line-format, gnus-no-server): * lisp/gnus/mail-source.el (mail-source-incoming-file-prefix): * lisp/gnus/message.el (message-cite-reply-position) (message-cite-style-outlook, message-cite-style-thunderbird) (message-cite-style-gmail, message--send-mail-maybe-partially): * lisp/gnus/mm-extern.el (mm-inline-external-body): * lisp/gnus/mm-partial.el (mm-inline-partial): * lisp/gnus/mml-sec.el (mml-secure-message-sign) (mml-secure-message-sign-encrypt, mml-secure-message-encrypt): * lisp/gnus/mml2015.el (mml2015-epg-key-image) (mml2015-epg-key-image-to-string): * lisp/gnus/nndiary.el (nndiary-reminders, nndiary-get-new-mail): * lisp/gnus/nnheader.el (nnheader-directory-files-is-safe): * lisp/gnus/nnir.el (nnir-search-history) (nnir-imap-search-other, nnir-artlist-length) (nnir-artlist-article, nnir-artitem-group, nnir-artitem-number) (nnir-artitem-rsv, nnir-article-group, nnir-article-number) (nnir-article-rsv, nnir-article-ids, nnir-categorize) (nnir-retrieve-headers-override-function) (nnir-imap-default-search-key, nnir-hyrex-additional-switches) (gnus-group-make-nnir-group, nnir-run-namazu, nnir-read-parms) (nnir-read-parm, nnir-read-server-parm, nnir-search-thread): * lisp/gnus/nnmairix.el (nnmairix-default-group) (nnmairix-propagate-marks): * lisp/gnus/smime.el (smime-keys, smime-crl-check) (smime-verify-buffer, smime-noverify-buffer): * lisp/gnus/spam-report.el (spam-report-url-ping-mm-url): * lisp/gnus/spam.el (spam-spamassassin-positive-spam-flag-header) (spam-spamassassin-spam-status-header, spam-sa-learn-rebuild) (spam-classifications, spam-check-stat, spam-spamassassin-score): * lisp/help.el (describe-minor-mode-from-symbol): * lisp/hippie-exp.el (hippie-expand-ignore-buffers): * lisp/htmlfontify.el (hfy-optimizations, hfy-face-resolve-face) (hfy-begin-span): * lisp/ibuf-ext.el (ibuffer-update-saved-filters-format) (ibuffer-saved-filters, ibuffer-old-saved-filters-warning) (ibuffer-filtering-qualifiers, ibuffer-repair-saved-filters) (eval, ibuffer-unary-operand, file-extension, directory): * lisp/image-dired.el (image-dired-cmd-pngcrush-options): * lisp/image-mode.el (image-toggle-display): * lisp/international/ccl.el (ccl-compile-read-multibyte-character) (ccl-compile-write-multibyte-character): * lisp/international/kkc.el (kkc-save-init-file): * lisp/international/latin1-disp.el (latin1-display): * lisp/international/ogonek.el (ogonek-name-encoding-alist) (ogonek-information, ogonek-lookup-encoding) (ogonek-deprefixify-region): * lisp/isearch.el (isearch-filter-predicate) (isearch--momentary-message): * lisp/jsonrpc.el (jsonrpc-connection-send) (jsonrpc-process-connection, jsonrpc-shutdown) (jsonrpc--async-request-1): * lisp/language/tibet-util.el (tibetan-char-p): * lisp/mail/feedmail.el (feedmail-queue-use-send-time-for-date) (feedmail-last-chance-hook, feedmail-before-fcc-hook) (feedmail-send-it-immediately-wrapper, feedmail-find-eoh): * lisp/mail/hashcash.el (hashcash-generate-payment) (hashcash-generate-payment-async, hashcash-insert-payment) (hashcash-verify-payment): * lisp/mail/rmail.el (rmail-movemail-variant-in-use) (rmail-get-attr-value): * lisp/mail/rmailmm.el (rmail-mime-prefer-html, rmail-mime): * lisp/mail/rmailsum.el (rmail-summary-show-message): * lisp/mail/supercite.el (sc-raw-mode-toggle): * lisp/man.el (Man-start-calling): * lisp/mh-e/mh-acros.el (mh-do-at-event-location) (mh-iterate-on-messages-in-region, mh-iterate-on-range): * lisp/mh-e/mh-alias.el (mh-alias-system-aliases) (mh-alias-reload, mh-alias-ali) (mh-alias-canonicalize-suggestion, mh-alias-add-alias-to-file) (mh-alias-add-alias): * lisp/mouse.el (mouse-save-then-kill): * lisp/net/browse-url.el (browse-url-default-macosx-browser): * lisp/net/eudc.el (eudc-set, eudc-variable-protocol-value) (eudc-variable-server-value, eudc-update-variable) (eudc-expand-inline): * lisp/net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result): * lisp/net/eudcb-ldap.el (eudc-ldap-get-field-list): * lisp/net/pop3.el (pop3-list): * lisp/net/soap-client.el (soap-namespace-put) (soap-xs-parse-sequence, soap-parse-envelope): * lisp/net/soap-inspect.el (soap-inspect-xs-complex-type): * lisp/nxml/rng-xsd.el (rng-xsd-date-to-days): * lisp/org/ob-C.el (org-babel-prep-session:C) (org-babel-load-session:C): * lisp/org/ob-J.el (org-babel-execute:J): * lisp/org/ob-asymptote.el (org-babel-prep-session:asymptote): * lisp/org/ob-awk.el (org-babel-execute:awk): * lisp/org/ob-core.el (org-babel-process-file-name): * lisp/org/ob-ebnf.el (org-babel-execute:ebnf): * lisp/org/ob-forth.el (org-babel-execute:forth): * lisp/org/ob-fortran.el (org-babel-execute:fortran) (org-babel-prep-session:fortran, org-babel-load-session:fortran): * lisp/org/ob-groovy.el (org-babel-execute:groovy): * lisp/org/ob-io.el (org-babel-execute:io): * lisp/org/ob-js.el (org-babel-execute:js): * lisp/org/ob-lilypond.el (org-babel-default-header-args:lilypond) (org-babel-lilypond-compile-post-tangle) (org-babel-lilypond-display-pdf-post-tangle) (org-babel-lilypond-tangle) (org-babel-lilypond-execute-tangled-ly) (org-babel-lilypond-compile-lilyfile) (org-babel-lilypond-check-for-compile-error) (org-babel-lilypond-process-compile-error) (org-babel-lilypond-mark-error-line) (org-babel-lilypond-parse-error-line) (org-babel-lilypond-attempt-to-open-pdf) (org-babel-lilypond-attempt-to-play-midi) (org-babel-lilypond-switch-extension) (org-babel-lilypond-set-header-args): * lisp/org/ob-lua.el (org-babel-prep-session:lua): * lisp/org/ob-picolisp.el (org-babel-execute:picolisp): * lisp/org/ob-processing.el (org-babel-prep-session:processing): * lisp/org/ob-python.el (org-babel-prep-session:python): * lisp/org/ob-scheme.el (org-babel-scheme-capture-current-message) (org-babel-scheme-execute-with-geiser, org-babel-execute:scheme): * lisp/org/ob-shen.el (org-babel-execute:shen): * lisp/org/org-agenda.el (org-agenda-entry-types) (org-agenda-move-date-from-past-immediately-to-today) (org-agenda-time-grid, org-agenda-sorting-strategy) (org-agenda-filter-by-category, org-agenda-forward-block): * lisp/org/org-colview.el (org-columns--overlay-text): * lisp/org/org-faces.el (org-verbatim, org-cycle-level-faces): * lisp/org/org-indent.el (org-indent-set-line-properties): * lisp/org/org-macs.el (org-get-limited-outline-regexp): * lisp/org/org-mobile.el (org-mobile-files): * lisp/org/org.el (org-use-fast-todo-selection) (org-extend-today-until, org-use-property-inheritance) (org-refresh-effort-properties, org-open-at-point-global) (org-track-ordered-property-with-tag, org-shiftright): * lisp/org/ox-html.el (org-html-checkbox-type): * lisp/org/ox-man.el (org-man-source-highlight) (org-man-verse-block): * lisp/org/ox-publish.el (org-publish-sitemap-default): * lisp/outline.el (outline-head-from-level): * lisp/progmodes/dcl-mode.el (dcl-back-to-indentation-1) (dcl-calc-command-indent, dcl-indent-to): * lisp/progmodes/flymake.el (flymake-make-diagnostic) (flymake--overlays, flymake-diagnostic-functions) (flymake-diagnostic-types-alist, flymake--backend-state) (flymake-is-running, flymake--collect, flymake-mode): * lisp/progmodes/gdb-mi.el (gdb-threads-list, gdb, gdb-non-stop) (gdb-buffers, gdb-gud-context-call, gdb-jsonify-buffer): * lisp/progmodes/grep.el (grep-error-screen-columns): * lisp/progmodes/gud.el (gud-prev-expr): * lisp/progmodes/ps-mode.el (ps-mode, ps-mode-target-column) (ps-run-goto-error): * lisp/progmodes/python.el (python-eldoc-get-doc) (python-eldoc-function-timeout-permanent, python-eldoc-function): * lisp/shadowfile.el (shadow-make-group): * lisp/speedbar.el (speedbar-obj-do-check): * lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-hook): * lisp/textmodes/reftex-cite.el (reftex-bib-or-thebib): * lisp/textmodes/reftex-index.el (reftex-index-goto-entry) (reftex-index-kill, reftex-index-undo): * lisp/textmodes/reftex-parse.el (reftex-context-substring): * lisp/textmodes/reftex.el (reftex-TeX-master-file): * lisp/textmodes/rst.el (rst-next-hdr, rst-toc) (rst-uncomment-region, rst-font-lock-extend-region-internal): * lisp/thumbs.el (thumbs-mode): * lisp/vc/ediff-util.el (ediff-restore-diff): * lisp/vc/pcvs-defs.el (cvs-cvsroot, cvs-force-dir-tag): * lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p): * lisp/wid-edit.el (widget-field-value-set, string): * lisp/x-dnd.el (x-dnd-version-from-flags) (x-dnd-more-than-3-from-flags): Assorted docfixes.
* Use gnus-summary-button-forward in gnus-summary-mode-mapLars Ingebrigtsen2019-08-141-2/+2
| | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-mode-map): Use `gnus-summary-button-forward' instead of the obsolete `gnus-summary-widget-forward'.
* Fix Gnus group name reference in gnus-mark-xrefs-as-readEric Abrahamsen2019-08-031-3/+3
| | | | | | * lisp/gnus/gnus-sum.el (gnus-mark-xrefs-as-read): There's already a local binding for "group", don't need another "name". This was left over from the obarray-to-hashtable change.
* Remove Gnus group name encoding/decodingEric Abrahamsen2019-08-031-70/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This completes the process started in c1b63af445. Gnus group names are now fully decoded inside the Gnus system. * lisp/gnus/gnus-agent.el (gnus-agent-file-coding-system): Change default to utf-8-emacs. (gnus-agent-decoded-group-names, gnus-agent-decoded-group-name): Remove variable and function. Remove all usage in this file. * lisp/gnus/gnus-cache.el (gnus-cache-decoded-group-names, gnus-cache-unified-group-names, gnus-cache-decoded-group-name): Remove these variables and function. Remove all usage in this file. * lisp/gnus/gnus-group.el (gnus-tmp-decoded-group): Remove this variable, gnus-tmp-group is now decoded. (gnus-group-completing-read): Don't encode or decode group names here. (gnus-group-make-group): Remove ENCODED argument. * lisp/gnus/gnus-srvr.el (gnus-browse-foreign-server): Decode group names here. * lisp/gnus/gnus-start.el (gnus-make-hashtable-from-newsrc-alist): check for encoded group names and decode. (gnus-active-to-gnus-format): Make sure incoming group names are decoded. (gnus-read-newsrc-el-file): Check for encoded group names in gnus-topic-alist. * lisp/gnus/nnagent.el: Don't use a unibyte buffer. * lisp/gnus/nnheader.el (nnheader-file-coding-system): Switch default from 'raw-text to 'undecided, on the assumption that 'undecided will probably write 'utf-8-emacs unless the user has arranged things otherwise. * lisp/gnus/nnimap.el (nnimap-decode-gnus-group, nnimap-encode-gnus-group): Remove functions and their use. * lisp/gnus/nnmail.el (nnmail-parse-active): Remove encoding. (nnmail-active-file-coding-system): Default to 'utf-8-emacs instead of 'raw-text. (nnmail-group-names-not-encoded-p): Obsolete this variable; stop using it. * lisp/gnus/gnus-art.el: * lisp/gnus/gnus-cus.el: * lisp/gnus/gnus-msg.el: * lisp/gnus/gnus-start.el: * lisp/gnus/gnus-sum.el: * lisp/gnus/gnus.el: * lisp/gnus/nnml.el: * lisp/gnus/message.el: * lisp/gnus/nnrss.el: Stop using gnus-group-decoded-name in all these files.
* Convert Emacs article buffers from widget.el to button.elLars Ingebrigtsen2019-07-301-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/gnus/gnus-art.el (gnus-mime-button-map) (gnus-url-button-commands, gnus-insert-mime-button) (gnus-mime-display-alternative) (gnus-article-extend-url-button, gnus-article-add-button) (gnus-insert-prev-page-button, gnus-insert-next-page-button) (gnus-mime-security-button-map) (gnus-insert-mime-security-button): Ditto. * lisp/gnus/gnus-html.el (gnus-html-displayed-image-map) (gnus-html-wash-images, gnus-html-put-image): Ditto. * lisp/gnus/gnus-icalendar.el (gnus-icalendar-insert-button): Ditto. * lisp/gnus/gnus-sum.el (gnus-summary-widget-forward) (gnus-summary-button-forward, gnus-summary-widget-backward) (gnus-summary-button-backward, gnus-collect-urls-primary-text) (gnus-collect-urls, gnus-summary-browse-url): Stop using widgets and star using button.el buttons instead. * lisp/gnus/mm-decode.el (mm-shr, mm-handle-filename): Don't convert shr buttons into widgets.
* Rename the new `browse-url-external-browser' variableLars Ingebrigtsen2019-07-291-2/+2
| | | | | | | | | | | | * lisp/net/shr.el (shr-external-browser, shr-browse-url): * lisp/net/eww.el (eww-browse-with-external-browser) (eww-follow-link): * lisp/net/browse-url.el (browse-url-secondary-browser-function) (browse-url-button-open): * lisp/gnus/gnus-sum.el (gnus-summary-browse-url): Rename from `browse-url-external-browser' to `browse-url-secondary-browser-function'.
* Enable browse-url to buttonize buffersLars Ingebrigtsen2019-07-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch also moves the internal/external browser logic from shr to browse-url, where it belongs more naturally. * doc/misc/eww.texi (Basics): Adjust to browse-url-external-browser. * doc/misc/gnus.texi (Article Commands): Ditto. * lisp/gnus/gnus-art.el (gnus-button-url-regexp): Default to `browse-url-button-regexp', which has taken over the definition previously enjoyed by this variable. * lisp/gnus/gnus-sum.el (gnus-summary-browse-url): Adjust usage. * lisp/net/browse-url.el (browse-url--browser-defcustom-type): New internal variable... (browse-url-browser-function, browse-url-external-browser): Used by these two; the latter of which is a new variable. (browse-url-botton-regexp): New variable. (browse-url-button-map): New keymap. (browse-url-button): New face. (browse-url-add-buttons): New function to add clickable browse-url buttons to almost any buffer. (browse-url-button-open): New command. (browse-url-button-copy): New command. * lisp/net/eww.el (eww-browse-with-external-browser) (eww-follow-link): Adjust usage. * lisp/net/shr.el (shr-external-browser): Make an obsolete alias of `browse-url-external-browser'. (shr-browse-url): Adjust usage.
* Tweak the display in gnus-summary-browse-urlLars Ingebrigtsen2019-07-261-1/+0
| | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-browse-url): Don't force article conf, because the command may be called from the article buffer (which may be the only buffer displayed).
* Make `C-u w' in the Gnus Summary buffer open externallyLars Ingebrigtsen2019-07-251-13/+31
| | | | | | | | | * doc/misc/gnus.texi (Article Commands): Document new behaviour. * lisp/gnus/gnus-sum.el (gnus-shorten-url): New function. (gnus-summary-browse-url): Change function to make `C-u' use the external browser (as Gnus does when you hit URLs manually). Don't use an initial input.
* Add `gnus-collect-urls-primary-text'Sam Steingold2019-07-241-7/+16
| | | | | | * lisp/gnus/gnus-sum.el (gnus-collect-urls-primary-text): Add defcustom. (gnus-collect-urls): Use it. (gnus-summary-browse-url): Mention it in the docstring.
* Avoid potential extensive verbosity in gnus-summary-browse-urlSam Steingold2019-07-241-1/+1
| | | | | * lisp/wid-edit.el (widget-move): Accept suppress-echo argument. * lisp/gnus/gnus-sum.el (gnus-collect-urls): Use it.
* Treat the "Link" link in gnus-summary-browse-urls speciallySam Steingold2019-07-161-9/+16
| | | | | | | * lisp/gnus/gnus-sum.el (gnus-collect-urls): Make sure that the URL labeled "Link" is the first in the return list. (gnus-summary-browse-url): Use the 1st URL as the default. * lisp/wid-edit.el (widget-text): New function.
* Clarify warning about unknown articles in GnusLars Ingebrigtsen2019-07-091-2/+2
| | | | | * lisp/gnus/gnus-sum.el (gnus-summary-mark-article-as-unread) (gnus-mark-article-as-unread): Clarify warning (bug#34990).
* Don't try to save articles in Gnus that have disappearedLars Ingebrigtsen2019-07-091-5/+9
| | | | | * lisp/gnus/gnus-sum.el (gnus-summary-save-article): Stop trying to save articles if the articles have disappeared (bug#35188).
* Extract gnus-collect-urls from gnus-summary-browse-urlSam Steingold2019-07-011-15/+16
| | | | | | * lisp/gnus/gnus-sum.el (gnus-collect-urls): Extract from ... (gnus-summary-browse-url): Use it here. Extracting URLs from an article will be useful in BBDB interaction.
* New command gnus-summary-browse-urlEric Abrahamsen2019-06-231-0/+40
| | | | | | | | * lisp/gnus/gnus-sum.el (gnus-summary-browse-url): New command for browsing URLs from the article buffer from the summary buffer. (gnus-summary-mode-map): Bind to "w". (gnus-summary-article-map): And to "A w". * doc/misc/gnus.texi (Article Commands): Document.
* * lisp/gnus: Further reduce assumptions about gnus-data formatStefan Monnier2019-06-071-14/+13
| | | | | | | | | | | | | | | | | * lisp/gnus/gnus-registry.el (gnus-registry-fetch-message-id-fast) (gnus-registry-fetch-simplified-message-subject-fast) (gnus-registry-fetch-sender-fast, gnus-registry-fetch-recipients-fast) (gnus-registry--set/remove-mark): Don't hardcode assoc for gnus-data-find-in. * lisp/gnus/gnus-sum.el (gnus-data-update-list): Don't hardcode `nth 2` for gnus-data-pos. (gnus-summary-insert-old-articles, gnus-summary-insert-new-articles) (gnus-summary-first-article-p): Don't hardcode `car` for `gnus-data-number`. (gnus-summary-move-article, gnus-summary-expire-articles) (gnus-summary-delete-article): Don't hardcode assoc for gnus-data-find-in. * lisp/gnus/spam.el (spam-fetch-article-header): Don't hardcode `nth 3` for gnus-data-header.
* * gnus-(sum|async).el: Eliminate assumptions about gnus-data formatStefan Monnier2019-06-021-12/+22
| | | | | | | | | | | * lisp/gnus/gnus-async.el (gnus-async-with-semaphore): Use `declare`. (gnus-async-prefetch-next): Don't assume gnus-data-number == car. * lisp/gnus/gnus-sum.el (gnus-data-find-in): New function. (gnus-data-find, gnus-data-find-list): Use it. (gnus-summary-article-subject): Make it a function. (gnus--dummy-data-list): New const. (gnus-update-summary-mark-positions): Use it.