Commit graph

4101 commits

Author SHA1 Message Date
Eric Abrahamsen
2815174f10 Prevent the Gnus registry from being loaded twice at startup
* lisp/gnus/gnus-registry.el (gnus-registry-load): Check if the
  registry is already loaded, and don't load again unless new optional
  FORCE argument is non-nil.
  (gnus-registry-clear): New function to clear the registry, added as
  a Gnus shutdown. Now that loading doesn't unilaterally reset the
  registry, we need to make sure it is reloaded when Gnus is.
2019-06-16 19:14:25 -07:00
Stefan Monnier
622bfdffa8 * lisp/gnus/message.el: Fix NNTP sending, broken by e51adfbdb7
(message-check-news-header-syntax): `message--check-continuation-headers`
signals an error instead of returning nil on error.
2019-06-14 02:51:07 -04:00
Lars Ingebrigtsen
1743da11d0 Remove XEmacs compat code from mml.el that gave a compilation warning
* lisp/gnus/mml.el (mml-mode): Remove XEmacs compat code
2019-06-13 01:27:36 +02:00
Lars Ingebrigtsen
7556772ac2 message.el byte compilation warning fix
* lisp/gnus/message.el (message-inhibit-body-encoding): Move
earlier to avoid compilation warning.
2019-06-13 01:24:47 +02:00
Stefan Monnier
da1974fabd * lisp/gnus: Further reduce assumptions about gnus-data format
* 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.
2019-06-07 15:28:12 -04:00
Oleh Krehel
e778c38bef lisp/gnus/message.el (message--send-mail-maybe-partially): Extract 2019-06-06 16:08:48 +02:00
Oleh Krehel
e51adfbdb7 lisp/gnus/message.el (message--check-continuation-headers): Extract 2019-06-06 16:01:10 +02:00
Oleh Krehel
e188f08fcd lisp/gnus/message.el (message--fold-long-headers): Add docstring 2019-06-06 15:50:46 +02:00
Stefan Monnier
dd7bc5de3f * lisp/gnus/message.el (message-send-mail): Tweak last commit 2019-06-04 09:18:01 -04:00
Stefan Monnier
4b87a032dc * lisp/gnus/gnus-async.el: Use lexical-binding
Remove redundant :group args.
(gnus-async-post-fetch-function): Make it always be a function.
(gnus-make-async-article-function, gnus-async-prefetch-headers):
Use a closure rather than `(lambda ...)
2019-06-03 13:44:23 -04:00
Oleh Krehel
83c3a61e4c lisp/gnus/message.el (message-send-mail): Don't wrongly assert on Unicode msg
Using this setting:

    (setq message-send-mail-function 'message-send-mail-with-sendmail)
    (setq sendmail-program "msmtp")

the message seding is handled by an external program, so no Unicode
encoding is performed in Emacs. Thus Emacs must not assert that the
Unicode encoding was performed.
2019-06-03 15:48:09 +02:00
Stefan Monnier
e02f751e3f * gnus-(sum|async).el: Eliminate assumptions about gnus-data format
* 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.
2019-06-02 19:21:45 -04:00
Stefan Monnier
8047bd08ca * gnus.el: Fix cycle in eager macroexpansion
* lisp/gnus/gnus-sum.el (gnus-data): Use cl-defstruct.
(gnus-data-set-pos, gnus-data-set-header, gnus-data-set-mark)
(gnus-data-set-number): Delete macros; use `setf` instead.
(gnus-data-unread-p, gnus-data-read-p, gnus-data-pseudo-p, gnus-data-find)
(gnus-summary-skip-intangible, gnus-summary-article-number):
Redefine as inlinable functions rather than macros.

* lisp/gnus/gnus.el: Adjust autoloads for the macros turned functions.
2019-06-02 13:04:13 -04:00
Glenn Morris
6028662649 Merge from origin/emacs-26
008b263 (origin/emacs-26, emacs-26) * lisp/gnus/gnus.el: Mark autoloa...
daf32f1 Speed up redisplay of HELLO
d8a6d82 Improve documentation of 'safe-local-variable' property

# Conflicts:
#	etc/HELLO
2019-06-01 12:04:43 -07:00
Glenn Morris
008b263fee * lisp/gnus/gnus.el: Mark autoloaded macros as such.
This avoids a build failure.
2019-06-01 11:33:25 -07:00
Basil L. Contovounesios
ceca1740ea Simplify Gnus buffer liveness checking and killing
* lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags):
Fix indentation.
* lisp/gnus/gnus-util.el (gnus-buffer-exists-p): Define as obsolete
alias of gnus-buffer-live-p.
(gnus-buffer-live-p): If the given argument is or names a live
buffer, return the corresponding buffer object instead of a boolean.
* lisp/gnus/gnus-win.el (gnus-delete-windows-in-gnusey-frames)
(gnus-remove-some-windows): Simplify.
* lisp/gnus/gnus.el (gnus-prune-buffers): Redefine as alias of
gnus-buffers.
(gnus-kill-buffer, gnus-buffers, gnus-group-find-parameter):
* lisp/gnus/gnus-art.el (gnus-kill-sticky-article-buffers)
(gnus-request-article-this-buffer):
* lisp/gnus/gnus-bcklg.el (gnus-backlog-shutdown):
* lisp/gnus/gnus-cus.el (gnus-group-customize)
(gnus-agent-customize-category):
* lisp/gnus/gnus-draft.el (gnus-draft-edit-message):
* lisp/gnus/gnus-group.el (gnus-group-set-mode-line)
(gnus--abort-on-unsaved-message-buffers, gnus-group-compact-group):
* lisp/gnus/gnus-msg.el (gnus-inews-add-send-actions)
(gnus-summary-supersede-article, gnus-copy-article-buffer):
* lisp/gnus/gnus-score.el (gnus-score-edit-current-scores)
(gnus-score-edit-file):
* lisp/gnus/gnus-spec.el (gnus-update-format-specifications):
* lisp/gnus/gnus-srvr.el (gnus-server-compact-server):
* lisp/gnus/gnus-start.el (gnus-clear-system, gnus-dribble-enter)
(gnus-dribble-save, gnus-dribble-clear, gnus-save-newsrc-file):
* lisp/gnus/gnus-sum.el (gnus-summary-setup-buffer)
(gnus-update-summary-mark-positions, gnus-summary-exit)
(gnus-deaden-summary, gnus-kill-or-deaden-summary)
(gnus-summary-next-group):
* lisp/gnus/gnus-win.el (gnus-configure-frame):
* lisp/gnus/mail-source.el (mail-source-movemail):
* lisp/gnus/message.el (message-with-reply-buffer)
(message-with-reply, message-send-and-exit)
(message-send-mail-with-sendmail, message-pop-to-buffer)
(message-do-send-housekeeping, message-forward-make-body-plain)
(message-forward-make-body-mml):
* lisp/gnus/mm-decode.el (mm-display-external, mm-remove-part):
* lisp/gnus/nnbabyl.el (nnbabyl-server-opened)
(nnbabyl-possibly-change-newsgroup, nnbabyl-read-mbox)
(nnbabyl-check-mbox):
* lisp/gnus/nndiary.el (nndiary-save-nov):
* lisp/gnus/nndoc.el (nndoc-close-group)
(nndoc-possibly-change-buffer):
* lisp/gnus/nnfolder.el (nnfolder-close-group, nnfolder-save-nov):
* lisp/gnus/nnimap.el (nnimap-make-process-buffer, nnimap-keepalive)
(nnimap-find-connection):
* lisp/gnus/nnmail.el (nnmail-cache-open, nnmail-cache-close):
* lisp/gnus/nnmbox.el (nnmbox-close-server, nnmbox-server-opened)
(nnmbox-possibly-change-newsgroup, nnmbox-read-mbox):
* lisp/gnus/nnml.el (nnml-save-incremental-nov, nnml-open-nov)
(nnml-save-nov):
* lisp/gnus/nnoo.el (nnoo-server-opened):
* lisp/gnus/nntp.el (nntp-kill-buffer, nntp-make-process-buffer)
(nntp-open-connection, nntp-async-trigger):
* lisp/net/mairix.el (mairix-gnus-fetch-field): Simplify buffer
liveness checking and killing, replacing buffer-name with
buffer-live-p and gnus-buffer-exists-p with gnus-buffer-live-p or
equivalent where applicable.
2019-05-30 02:56:28 +01:00
Basil L. Contovounesios
7f3b0d1c00 Simplify gnus-or and gnus-and
* lisp/gnus/gnus-art.el: Make implicit seq.el dependency explicit.
(gnus-treat-predicate): Use seq-some in place of mapcar + gnus-or
and evaluate lambda predicate.
* lisp/gnus/gnus-util.el (gnus-or, gnus-and): Simplify.
2019-05-29 15:57:50 +01:00
Stefan Monnier
6daa69576a * lisp/gnus/gnus-art.el: Use mail-header-p
(gnus-summary-save-in-pipe, gnus-article-prepare)
(gnus-request-article-this-buffer): Use mail-header-p instead of vectorp.
(gnus-request-article-this-buffer): Use insert-buffer-substring since
it doesn't behave like string-make-multibyte any more.
2019-05-28 15:10:42 -04:00
Paul Eggert
852d281769 Update author/maintainer info
Update email addresses and fix spellings of some author and
maintainer names.
2019-05-26 01:00:16 -07:00
Paul Eggert
797ee5871e Remove Maintainer: when it duplicates Author:
The convention is that a file with Author: but not Maintainer:
means the author is a maintainer, which makes it confusing
when a file lists the same person as author and maintainer.
Avoid the confusion by removing the duplicate Maintainer: line.
2019-05-26 01:00:15 -07:00
Glenn Morris
5c21832ae8 Merge from origin/emacs-26
b0da915 (origin/emacs-26, emacs-26) Fix a typo in ELisp manual
400907b Add option to disable help completion autoloading (Bug#28607)
122ba16 Don't segfault on force-window-update of deleted window
015b12e Fix typo in ELisp manual
eadf044 Remove repeated function call in picture.el
1228a90 ; Fix mm-destroy-parts docstring typo
6cfd68d Fix Hideshow key binding typo in Emacs manual
2019-05-22 10:18:51 -07:00
Basil L. Contovounesios
ec2e5a54b3 ; Fix last change to nnheader-cancel-timer
* lisp/gnus/nnheader.el (nnheader-cancel-timer)
(nnheader-cancel-function-timers): Remove defalias calls made
redundant by subsequent define-obsolete-function-alias calls.
2019-05-20 13:38:32 +01:00
Lars Ingebrigtsen
bfcff8f88a Mark nnheader-cancel-timer as obsolete and adjust callers
* lisp/gnus/nnheader.el (nnheader-cancel-timer)
(nnheader-cancel-function-timers): Mark as obsolete.

* lisp/gnus/nntp.el (nntp-with-open-group-function)
(nntp-async-stop): Adjust caller.

* lisp/gnus/gnus-art.el (gnus-stop-date-timer): Ditto.

* lisp/gnus/gnus-async.el (gnus-async-prefetch-next): Ditto.

* lisp/gnus/gnus-demon.el (gnus-demon-run-callback)
(gnus-demon-cancel): Ditto.

* lisp/gnus/mail-source.el (mail-source-report-new-mail): Ditto.

* lisp/gnus/nnmaildir.el (nnmaildir-request-accept-article): Ditto.
2019-05-20 13:47:53 +02:00
Basil L. Contovounesios
1228a90c69 ; Fix mm-destroy-parts docstring typo
* lisp/gnus/mm-decode.el (mm-destroy-parts): Fix typo in docstring
copy-pasted from mm-remove-parts.
2019-05-20 00:40:49 +01:00
Basil L. Contovounesios
05b79539f4 ; Remove some redundant Gnus autoloads
* lisp/gnus/nnheader.el:
* lisp/gnus/nnmail.el: Don't autoload functions from files already
loaded.
2019-05-20 00:29:47 +01:00
Lars Ingebrigtsen
fac11d899b (mml-generate-mime-1): Remove XEmacs compat code
* lisp/gnus/mml.el (mml-generate-mime-1): Remove XEmacs compat code.
2019-05-19 20:27:20 +02:00
Eric Abrahamsen
e4eb8c8501 Fix Gnus group sorting to use gnus-group-list
* lisp/gnus/gnus-group.el (gnus-group-sort-flat): As
  gnus-newsrc-hashtb is now a real (unsorted) hash table, use
  gnus-group-list to maintain group sort order.
  (gnus-group-sort-selected-flat): Ditto.
* lisp/gnus/gnus-start.el (gnus-subscribe-alphabetically): Simplify
  function using seq-find.
  (gnus-subscribe-killed, gnus-subscribe-zombies): Use cl-pushnew to
  avoid adding duplicates (can happen when un/subscribing multiple
  times to one group).
2019-05-19 10:01:00 -07:00
Basil L. Contovounesios
63ffb61396 Remove XEmacs audio checks from mm-decode.el
For discussion, see the following threads:
https://lists.gnu.org/archive/html/emacs-devel/2019-03/msg01087.html
https://lists.gnu.org/archive/html/emacs-devel/2019-05/msg00584.html
* lisp/gnus/mm-decode.el (mm-inline-media-tests): Remove no-op media
tests for XEmacs features.
2019-05-18 18:12:04 +01:00
Bastien
9fcc991229 Fix missing declaration in gnus-sum.el
* lisp/gnus/gnus-sum.el (gnus-tmp-name): Declare var.
2019-05-18 16:45:00 +02:00
Stefan Monnier
4fbcecfaef * lisp/gnus/gnus-sum.el (gnus-tmp-thread): New var
The recent change to use lexical-binding introduced a bug because
gnus-summary-line-format-alist refers to variable `thread` which is now
lexical and hence not available there any more.  Replace it with
a dynamically scoped var `gnus-tmp-thread` as was already done with
all other vars.

(gnus-summary-line-format-alist): Use it instead of `thread`.
(gnus-summary-prepare-threads): Bind it around call to (eval
gnus-summary-line-format-spec).
2019-05-17 14:42:36 -04:00
Eric Abrahamsen
7ce4b35ac4 Backport: Fix name of gnus-summary-sort-by-mark(s)
* lisp/gnus/gnus-sum.el (gnus-summary-sort-by-marks): Needs the
  "s", according to docs and keymap both. (bug#35765)

(cherry picked from commit 13248f7444)
2019-05-17 15:23:28 +01:00
Stefan Monnier
a93e672e27 * lisp/gnus: Remove assumptions about mail-header being a vector
Use `mail-header-p` and `make-full-mail-header` instead of `vectorp` and
`vector`, respectively.

* lisp/gnus/message.el (message-cite-original-1, message-reply)
(message-followup):
* lisp/gnus/gnus-sum.el (gnus-get-newsgroup-headers):
Use make-full-mail-header instead of `vector`.
(gnus--dummy-mail-header): New const, using make-full-mail-header.
(gnus-update-summary-mark-positions): Use it instead of
an immediate vector.
(gnus-set-mode-line, gnus-summary-article-pseudo-p)
(gnus-summary-article-subject, gnus-summary-insert-subject)
(gnus-summary-find-subject, gnus-summary-goto-subject)
(gnus-summary-limit-to-age, gnus-summary-find-matching)
(gnus-summary-mark-article-as-unread, gnus-summary-mark-article)
(gnus-summary-save-article):
* lisp/gnus/gnus.el (gnus-news-group-p): Use mail-header-p instead
of vectorp.
2019-05-17 00:09:16 -04:00
Stefan Monnier
5f6c08ef2c * lisp/gnus/nnheader.el (mail-header-*): Define via cl-defstruct
This also has the side effect that the accessors are now defined as proper
functions rather than as macros, so they can be passed to `mapcar` etc..

* lisp/gnus/nnheader.el (mail-header-number, mail-header-subject)
(mail-header-from, mail-header-date, mail-header-id)
(mail-header-references, mail-header-chars, mail-header-lines)
(mail-header-xref, mail-header-extra): Define via cl-defstruct.
(mail-header-set-number, mail-header-set-subject)
(mail-header-set-from, mail-header-set-date, mail-header-set-id)
(mail-header-set-message-id, mail-header-set-references)
(mail-header-set-chars, mail-header-set-lines, mail-header-set-xref)
(mail-header-set-extra): Remove, use `setf` instead.  All callers adjusted.

* lisp/gnus/gnus-sum.el (gnus-select-newsgroup)
(gnus-summary-pop-limit, gnus-summary-limit-mark-excluded-as-read)
(gnus-summary-find-matching, gnus-find-matching-articles):
* lisp/gnus/gnus-kill.el (gnus-apply-kill-file-internal, gnus-execute):
* lisp/gnus/gnus-score.el (gnus-score-adaptive):
Eta-reduce, now that mail-header-FIELD are functions.
2019-05-16 21:50:16 -04:00
Basil L. Contovounesios
9408e36b84 Fix gnus-summary-expand-window placement of point
* lisp/gnus/gnus-win.el (gnus-configure-frame): Replace
switch-to-buffer with pop-to-buffer-same-window to avoid messing
with point. (bug#35613)
2019-05-17 00:55:58 +01:00
Eric Abrahamsen
c89b0add51 Fix stray call to make-vector
* lisp/gnus/gnus-agent.el (gnus-agent-fetch-group-1): This is meant to
  be a hash table.
2019-05-16 12:47:18 -07:00
Stefan Monnier
c3e8381668 * lisp/gnus/gnus-sum.el: Use lexical-binding
(gnus-summary-make-menu-bar, gnus-summary-display-make-predicate)
(gnus-summary-refer-thread, gnus-summary-find-matching)
(gnus-summary-edit-article, gnus-summary-sort):
Replace backquoted lambda with closure.
(gnus-summary-article-header): Use define-inline rather than defmacro,
so it's also a function.
(gnus-save-hidden-threads, gnus-summary-iterate, gnus-with-article):
Use `declare`.
(gnus-thread-sort-by-random): Simplify.
(gnus-summary-display-article, gnus-summary-limit-to-address):
Hoist common code outside of `if`.
2019-05-15 13:53:13 -04:00
Basil L. Contovounesios
2f7e97ef48 Fix mail-header-separator font lock in message.el
* lisp/gnus/message.el (message-font-lock-keywords): Dynamically
font lock mail-header-separator, in case it changes. (bug#34898)
2019-05-14 02:15:37 +01:00
Basil L. Contovounesios
364d4e156d Do not hard-code message-mode keys in docstring
* lisp/gnus/message.el (message-mode): Replace hard-coded bindings
in docstring with summary of message-mode-map. (bug#31388)
2019-05-13 23:58:45 +01:00
Basil L. Contovounesios
f4c1d95bef Fix last change to message-signature :type
* lisp/gnus/message.el (message-signature): List more specific :type
alternatives before more general ones, as per "(elisp) Composite
Types".
2019-05-13 23:23:06 +01:00
Robert Pluim
2ecb7c5c0b Document nil value of message-signature and mail-signature
* lisp/gnus/message.el (message-signature): Allow nil as a
customizable value, and describe its effect.
* lisp/mail/sendmail.el (mail-signature): Describe effect of nil
value (bug#32680).
2019-05-13 16:46:27 -04:00
Alexandre Garreau
f515bc6398 [PATCH 1/1] Adds variable 'eww-accept-content-types'
* lisp/gnus/message.el (message-simplify-subject): Decouple
simplification from "Re:" adding (bug#33200).
(message-reply): Add the "Re:"'s here.
(message-followup): And here.
2019-05-13 16:34:06 -04:00
Lars Ingebrigtsen
86c8582c9e Make mml respect the "recipient-filename" parameter
* lisp/gnus/mml.el (mml-insert-mime-headers): Implement the
already-documented "recipient-filename" parameter (bug#34654).
2019-05-13 16:16:10 -04:00
Basil L. Contovounesios
571d802df3 Fix Gnus summary widget navigation across frames
* lisp/gnus/gnus-sum.el (gnus-summary-widget-forward)
(gnus-summary-widget-backward): Signal more informative error if
article window is not found.  Consider other frames displaying
article buffer, and raise its frame before navigating its
widgets. (bug#35565)
* lisp/gnus/gnus-win.el (gnus-get-buffer-window): Simplify and add
docstring.
2019-05-12 12:47:56 +01:00
Basil L. Contovounesios
bb60144d00 Make application/x-patch inlinable in mm-decode.el
* lisp/gnus/mm-decode.el (mm-inline-media-tests, mm-inlined-types):
Include application/x-patch as a synonym of text/x-patch and
text/x-diff. (bug#35236)
2019-05-12 12:27:40 +01:00
Basil L. Contovounesios
ef62469e56 Fix some gnus-msg.el variables (bug#35239)
* lisp/gnus/gnus-msg.el (gnus-gcc-externalize-attachments):
Fix custom :type.
(gnus-debug-files, gnus-debug-exclude-variables): Mark variables
that have been unused since Emacs 24.1 as obsolete.
(gnus-check-before-posting): Remove unused variable.
2019-05-12 11:59:11 +01:00
Noam Postavsky
510aa7505f Stop using message-default-charset (Bug#35370)
In 2016-02-14 "Remove compat code for older Emacsen",
message-default-charset was obsoleted, and a couple of uses were
removed, but others were left behind.
* lisp/gnus/message.el (message-send-mail)
(message-send-news, message-do-fcc)
(message-encode-message-body):
* lisp/gnus/mml.el (mml-to-mime): Stop using message-default-charset.
2019-05-10 06:41:59 -04:00
Basil L. Contovounesios
24a1d5a0b5 Fix Gnus inline attachment decoding (bug#35507)
Proposed by Andy Moreton <andrewjmoreton@gmail.com>
and Noam Postavsky <npostavs@gmail.com>.
* lisp/gnus/mm-view.el (mm-display-inline-fontify): Always decode
handle text, falling back on 'undecided' coding system.
2019-05-03 14:52:01 +01:00
Lars Ingebrigtsen
d4fa998c31 Restore previous calling signature of gnus-set-info 2019-05-01 19:04:56 +02:00
Eric Abrahamsen
a33308a297 Clear gnus-group-list when the newsrc-hashtb is recreated
* lisp/gnus/gnus-start.el (gnus-make-hashtable-from-newsrc-alist):
  This routine also happens when re-sorting groups; make sure we're
  clearing the group list.
2019-04-19 11:21:55 -07:00
Eric Abrahamsen
bd93bcb078 Don't check for group existence in gnus-group-goto-group
* lisp/gnus/gnus-group.el (gnus-group-goto-group): Just look for the
  string.
2019-04-19 09:09:15 -07:00