message.el (message-point-in-header-p): Tweak the function to default to saying that we're not in the headers if there is no separator at all. This makes it possible to use the Message version of `M-q' in buffers with no headers (bug#7987).
(message-point-in-header-p): Fix last checkin to work with an empty mail-header-separator, too.
auth-source.el (auth-source-netrc-saver): If the user says "don't ask again, save the choice via customize.
message.el (message-send-mail-function): Add `sendmail-query-once'.
nnimap.el (nnimap-finish-retrieve-group-infos): If the server has ended the connection, bail out before waiting infinitely on a new connection.
gnus-group.el (gnus-group-mark-article-read): It's possible that we want to have `gnus-newsgroup-unselected' kept sorted. If this isn't done, then unselected articles may be marked as read.
pop3.el (pop3-open-server): Erase the buffer after the greeting, since not doing this seems to lead to a race condition in pop3-logon.
nnvirtual.el (nnvirtual-request-article): Bind `gnus-command-method' so that the call chain it correct when we call "upwards".
gnus-sum.el (gnus-select-newsgroup): Auto-expiry doesn't make sense in read-only groups.
gnus-group.el (gnus-group-mark-article-read): Ditto.
message.el (message-cite-reply-position): Doc string fix.
nnimap.el (nnimap-transform-headers): Simplify regexp to hopefully avoid regexp overflow.
(nnimap-transform-split-mail): Ditto.
pop3.el (pop3-retr): Error out if the server closes the connection.
pop3.el (pop3-open-server): Upgrade opportunistically to STARTTLS.
(open-tls-stream): Remove superfluous tls/starttls autoloads.
gnus-sum.el (gnus-summary-next-article): Don't bug out if the summary buffer has moved to a different frame.
nnimap.el (nnimap-request-article): Use nntp-insert-buffer-substring to get the conversion from unibyte to multibyte buffers to work on Emacs 22.
nntp.el (nntp-request-article): Slight clean-up.
gnus.texi (Listing Groups): Document gnus-group-list-ticked.
gssapi.el (open-gssapi-stream): Remove the last mentions of the IMAP stuff.
gnus-score.el (gnus-score-string): Fix calling convention of `gnus-simplify-buffer-fuzzy' after last patches.
gnus-sum.el (gnus-update-marks): Don't send any marks updates to the server for articles we didn't get any headers for. This is a sanity check.
nnimap.el (nnimap-open-connection-1): Is the login responds with a new CAPABILITY, use it.
gnus-agent.el (gnus-agent-fetch-headers): Don't message if we're not downloading anything.
gnus.el (gnus-splash-svg-color-symbols): Removed superfluous `and'.
gnus.el (gnus-group-startup-message): Prefer svg file and replace colors.
(gnus-splash-svg-color-symbols): New function.
gnus-sum.el (gnus-simplify-buffer-fuzzy): Take the regexp explicitly instead of using the global gnus-simplify-subject-fuzzy-regexp.
(gnus-simplify-subject-fuzzy): Use the local gnus-simplify-subject-fuzzy-regex instead of the global one. This makes using this variable in group parameters work.
gnus-registry.el (gnus-registry-unfollowed-groups): Add "archive:sent" to the unfollowed group regex (for the recent Gnus archive:sent-YYYY-MM-DD groups).
(gnus-registry-split-fancy-with-parent): Bail out early in sender tracking if there are more than `gnus-registry-max-track-groups' matches.
message.el (message--yank-original-internal): New function to do the insertion cleanly inside eval in `message-yank-original'.
(message-yank-original): Use it.
* nnimap.el (nnimap-stream, nnimap-open-connection-1): Accept `network'
value.
* nntp.el (nntp-open-connection-function): Document the fact that some
values are not functions but are instead handled specially. Recognize
nntp-open-plain-stream value.
(nntp-open-connection): Recognize that value.
* proto-stream.el (open-protocol-stream): Bring back `network' type.
Make this the default type.
(proto-stream-open-plain): Rename from proto-stream-open-default.
(open-protocol-stream, proto-stream-open-starttls)
(proto-stream-open-tls, proto-stream-open-shell): Replace `default'
with `plain'.
* lisp/gnus/proto-stream.el: Changes preparatory to merging open-protocol-stream
with open-network-stream.
(proto-stream-always-use-starttls): Option removed.
(open-protocol-stream): Return a process object by default. Provide a
new parameter :return-list specifying a list-type return value, which
now has the form (PROP . PLIST) instead of a fixed-length list. Change
:type `network' to `try-starttls', and `network-only' to `default'.
Make `default' the default, for compatibility with open-network-stream.
Handle the no-parameter case exactly as open-network-stream, with no
additional stream processing. Search plists using plist-get.
Explicitly add :end-of-commend parameter if it is missing.
(proto-stream-open-default): Renamed from
proto-stream-open-network-only. Return 'default as the type.
(proto-stream-open-starttls): Rename from proto-stream-open-network.
Use plist-get. Don't return `tls' as the type if STARTTLS negotiation
failed. Always return a list with a (possibly dead) process as the
first element, for compatibility with open-network-stream.
(proto-stream-open-tls): Use plist-get. Always return a list.
(proto-stream-open-shell): Return `default' as connection type.
(proto-stream-capability-open): Use plist-get.
(proto-stream-eoc): Function deleted.
* lisp/gnus/nnimap.el (nnimap-stream, nnimap-open-connection)
(nnimap-open-connection-1): Handle renaming of :type parameter for
open-protocol-stream.
(nnimap-open-connection-1): Pass a :return-list parameter
open-protocol-stream to obtain a list return value. Parse this list
using plist-get.
* lisp/gnus/nntp.el (nntp-open-connection): Handle renaming of :type parameter
for open-protocol-stream. Accept open-protocol-stream return value
that is a subprocess object instead of a list. Handle the case of a
dead returned process.
message.texi (Various Commands): Document format specs in the ellipsis.
time-date.el (format-seconds): Use assoc instead of assoc-string to avoid warning on XEmacs.
gnus-art.el: Require mouse, which the build bot seems to say is needed.
gravatar.el (gravatar-retrieve-synchronously): Use `url-retrieve' on XEmacs, since it doesn't have url-retrieve-synchronously.
time-date.el (format-seconds): Use assoc instead of assoc-string, since assoc-string doesn't exist in XEmacs.
gnus-group.el (gnus-group-list-ticked): New function.
(gnus-group-make-menu-bar): Provide a menu entry for it.
(gnus-group-list-map): Provide a binding for it.
shr.el (shr-visit-file): New command.
nnimap.el (nnimap-fetch-inbox): Rewrite slightly last patch.
nnimap.el (nnimap-fetch-inbox): Don't download bodies on ver4-capable servers.
message.texi (Insertion Variables): Document message-cite-style.
nnimap.el (nnimap-open-connection-1): Allow `network-only', too.
gssapi.el: New file separated out from imap.el to provide a general Kerberos 5 connection facility for Emacs.
message.el (message-elide-ellipsis): Document the format spec ellipsis.
message.el (message-elide-region): Allow the ellipsis to say how many lines were removed.
gnus-win.el (gnus-configure-frame): Protect against trying to restore window configurations containing buffers that are now dead.
nnimap.el (nnimap-parse-flags): Remove all MODSEQ entries before parsing to avoid integer overflows.
(nnimap-parse-flags): Simplify the last change.
(nnimap-parse-flags): Store HIGHESTMODSEQ as a string, since it may be too large for 32-bit Emacsen.
gnus-art.el (gnus-article-treat-body-boundary): Fix boundary width on XEmacs, which was one character too wide.
gnus-sum.el (gnus-articles-to-read): Use gnus-large-newsgroup as default number of articles to display.
(gnus-articles-to-read): Use pretty names for prompt.
gnus-int.el (gnus-open-server): Ditto.
gnus-start.el (gnus-activate-group): Give a backtrace if debug-on-quit is set and the user hits `C-g'.
(gnus-read-active-file): Ditto.
gnus-group.el (gnus-group-read-ephemeral-group): Ditto.
auth-source.el (auth-source-read-char-choice): New function to read a character choice using `dropdown-list', `read-char-choice', or `read-char'. It appends "[a/b/c] " to the prompt if the choices were '(?a ?b ?c). The `dropdown-list' support is disabled for now. Use `eval-when-compile' to load `dropdown-list'.
(auth-source-netrc-saver): Use it.
nnimap.el (nnimap-credentials): Keep the :save-function as the third parameter in the credentials.
(nnimap-open-connection-1): Use it after a successful login.
(nnimap-credentials): Add IMAP-specific user and password prompt.
auth-source.el (auth-source-search): Add :require parameter, taking a list. Document it and the :save-function return token. Pass :require down. Change the CREATED message from a warning to a debug statement.
(auth-source-search-backends): Pass :require down.
(auth-source-netrc-search): Pass :require down.
(auth-source-netrc-parse): Use :require, if it's given, as a filter. Change save prompt to indicate all modifications saved here are deletions.
(auth-source-netrc-create): Take user login name as default in user prompt. Move all the save functionality to a lexically bound function under the :save-function token in the returned list. Set up clearer default prompts for user, host, port, and secret.
(auth-source-netrc-saver): New function, intended to be wrapped for :save-function.
message.texi (Message Buffers): Update default value of message-generate-new-buffers.
shr.el (shr-table-horizontal-line): Change the defaults for the table lines to be spaces instead.
sieve-manage.el (sieve-sasl-auth): Create auth-info if not found.
(sieve-sasl-auth): Check that auth-source-search did return something, or just return an empty string.
gnus-start.el (gnus-group-change-level): Allow putting foreign groups onto the list of killed groups, too. This makes killed nnimap groups, for instance, more reliably not reappear.
nnimap.el (nnimap-request-thread): Don't bug out when we can't find the parent.
nnimap.el (nnimap-parse-flags): Add a workaround for FETCH lines with numbers too big to be `read'.
password-cache.el (password-in-cache-p): Add autoload.
message.el (message-options): Make buffer-local two ways to attempt to fix a XEmacs bug.
auth-source.el (auth-source-save-behavior): New variable to replace `auth-source-never-create'.
(auth-source-netrc-create): Use it.
(auth-source-never-save): Remove.
nnimap.el (nnimap-stream): Doc fix.
(nnimap-open-connection-1): Reverse the order of the ports to that the prompted-for port is first.
gnus-start.el (gnus-get-unread-articles): Don't clobber the async retrieval by the no-group selection.
gnus-demon.el (gnus-demon-init): run-with-timer should be called with numerical parameters.
auth-source.el (auth-source-creation-prompts): New variable to manage creation-time prompts.
(auth-source-search): Document it.
(auth-source-format-prompt): Add utility function.
(auth-source-netrc-create): Don't default the user name to user-login-name. Use `auth-source-creation-prompts' and some default prompts for user, host, port, and password (the default generic prompt remains ugly).
(auth-source-never-save): Add customizable option to never save info.
(auth-source-netrc-create): Use it and improve save prompts. Fix help mode excursion.
auth.texi (Help for users): Mention ~/.netrc is also searched by default now.
gnus-start.el (gnus-dribble-read-file): Set buffer-save-without-query, since we always want to save the dribble file, probably.
nnmail.el (nnmail-article-group): Allow a final "" split to work on nnimap.
gnus-sum.el (gnus-user-date-format-alist): Renamed back again from -summary- since it's a user-visible variable.
nnimap.el (nnimap-retrieve-group-data-early): Don't do QRESYNC the first time you use the new Gnus.
auth-source.el: Don't load netrc.el.
(auth-sources): Search ~/.netrc as well by default.
(auth-source-debug): Add 'trivia option for extra output.
(auth-source-do-trivia): Use it.
(auth-source-search): Simplify logic to use `auth-source-search-backends'. Use `auth-source-do-trivia' where appropriate. Don't keep a running count at this level. Layer :create and :delete options appropriately on the first and second passes. Don't track the backend with the search results.
(auth-source-search-backends): New function to search a list of backends for a processed spec.
(auth-source-netrc-parse): Cache all netrc files, making auth-source-netrc-cache an alist keyed by the file name and using the file mtime as the caching criterion. Keep the obfuscated data secret with a lexical bind.
(auth-source-netrc-search): Don't calculate the length of the results unnecessarily.
(auth-source-search-backends): Fix bug.
(auth-source-netrc-create): Rework prompts.
nnir.el (nnir-imap-search-arguments,nnir-imap-default-search-key): Lower case names of search constraints.
(nnir-run-query): Cache and reuse search constraints for all imap servers.
gnus-msg.el (gnus-setup-message): Define missing variable from last checkin.
gnus.texi (Article Date): Clarify gnus-article-update-date-headers.
gnus-msg.el (gnus-inews-add-send-actions): Restore the winconf name after exit.
gnus-sum.el (gnus-summary-show-article): When called with t as the value, show the raw article.
nnimap.el (nnimap-open-connection-1): Revert last change, since auth-source now accepts numbers.
auth-source.el (auth-source-netrc-parse): Accept a number as the port spec, too.
(auth-source-ensure-strings): New function.
gnus-art.el (gnus-article-update-date-headers): Doc fix.
(gnus-article-setup-buffer): Always restart the date timer so that user changes to the frequency is respected.
nnimap.el (nnimap-open-connection-1): auth-source expects strings as port numbers, so make sure it gets that if nnimap-server-port is explicit.
nnimap.el (nnimap-inbox): Doc fix.
gnus-art.el (gnus-article-next-page-1): Because customized mode-line face with line-width greater than zero will cause RET in gnus summary buffer to scroll down article page-wise because auto vscroll happens, it should be temporalily disabled when doing a scroll-up.
auth.texi (GnuPG and EasyPG Assistant Configuration): Mention the default now is to have two files in `auth-sources'.
nnimap.el (nnimap-open-connection-1): Delete duplicate server names when getting credentials.
gnus-util.el (gnus-delete-duplicates): New function.
nnimap.el (nnimap-credentials): Instead of picking the first port as a creation default, pass the whole port list down. It will be completed.
auth-source.el (auth-source-search): Updated docs to talk about multiple creation choices.
(auth-source-netrc-create): Accept a list as a value (from the search parameters) and do completion on that list. Keep a separate netrc line with the password obscured for showing the user.
nnimap.el (nnimap-open-connection-1): Make the `nnimap-address' the first choice to `auth-source-search' so it will be used for entry creation instead of the server's Gnus-specific name.
(nnimap-credentials): Rely on the auth-source library to select which port is actually wanted in the new netrc entry, so don't override `auth-source-creation-defaults'.
auth-source.el (auth-source-netrc-parse): Use :port instead of :protocol and accept a missing user, host, or port as a wildcard match.
(auth-source-netrc-search, auth-source-netrc-create)
(auth-source-secrets-search, auth-source-secrets-create)
(auth-source-user-or-password, auth-source-backend, auth-sources)
(auth-source-backend-parse-parameters, auth-source-search): Use :port instead of :protocol.
nnimap.el (nnimap-credentials): Pass a port default to `auth-source-search' in case an entry needs to be created.
(nnimap-open-connection-1): Use :port instead of :protocol.
gnus-sum.el (gnus-propagate-marks): Change default to t again, since nil means that nnimap doesn't get updated.
auth-source.el (auth-source-netrc-create): Return a synthetic search result when the user doesn't want to write to the file.
(auth-source-netrc-search): Expect a synthetic result and proceed accordingly.
(auth-source-cache-expiry): New variable to override `password-cache-expiry'.
(auth-source-remember): Use it.
nnimap.el (nnimap-credentials): Remove the `inhibit-create' parameter. Create entry if necessary by using :create t.
(nnimap-open-connection-1): Don't pass `inhibit-create'.
(nnimap-log-command): Don't log login commands.
auth-source.el (auth-source-netrc-search): The asserts seem to want to have more parameters.
nnimap.el (nnimap-send-command): Mark the command time for each command, so that we don't get NOOPs stepping on our toes.
gnus-art.el (article-date-ut): Get the date from the Date header on `t'.
auth.texi (Overview, Help for users, Help for developers): Update docs.
(Help for users): Talk about spaces.
sieve-manage.el: Autoload `auth-source-search'.
(sieve-sasl-auth): Use it.
nnimap.el: Autoload `auth-source-forget+'.
(nnimap-open-connection-1): Use it if the connection fails.
auth-source.el: Require `password-cache'.
(auth-source-hide-passwords, auth-source-cache): Remove and mark obsolete.
(auth-source-magic): Marker for `password-cache' keys.
(auth-source-do-cache): Update docstring.
(auth-source-search): Use and check cache.
(auth-source-forget-all-cached, auth-source-remember)
(auth-source-recall, auth-source-forget, auth-source-forget+)
(auth-source-specmatchp): Caching support functions.
(auth-source-forget-user-or-password, auth-source-forget-all-cached): Remove and obsolete.
(auth-source-user-or-password): Remove caching to further discourage using it. Always hide passwords.
password-cache.el (password-cache-remove): Accept secrets that are not strings.
mail-source.el: Autoload `auth-source-search'.
(mail-source-keyword-map): Note order matters.
(mail-source-set-1): Get all the mail-source source values and defaults and search auth-source on those if needed. This can all probably be simplified.
nnimap.el: Autoload `auth-source-search'.
(nnimap-credentials): Use it.
(nnimap-open-connection-1): Ask for the virtual server and physical address in one shot.
nntp.el: Autoload `auth-source-search'.
(nntp-send-authinfo): Use it. Note TODO.
auth-source.el (auth-source-secrets-search, auth-source-user-or-password): Use `append' instead of `nconc'.
(auth-source-user-or-password): Build return list better and protect against nil :secret.
auth-source.el (top): Require 'eieio unconditionally. Autoload `secrets-get-attributes' instead of `secrets-get-attribute'.
(auth-source-secrets-search): Limit search when `max' is greater than number of results.
auth-source.el (auth-source-secrets-search): Add examples.
auth-source.el (auth-sources): Allow for simpler defaults for Secrets API with a string "secrets:collection-name" and with 'default.
(auth-source-backend-parse): Parse "secrets:collection-name" and 'default. Recurse on parses instead of repeating code. Use the Secrets API is the source is not nil and 'ignore otherwise. Emit a message when ignoring a source.
(auth-source-search): List ignored search keys at the top level.
(auth-source-netrc-create): Use `case' instead of `cond'.
(auth-source-secrets-search): Created with TODOs.
(auth-source-secrets-create): Created with TODOs.
(auth-source-retrieve, auth-source-create, auth-source-delete)
(auth-source-protocol-defaults, auth-source-user-or-password-imap)
(auth-source-user-or-password-pop3, auth-source-user-or-password-ssh)
(auth-source-user-or-password-sftp)
(auth-source-user-or-password-smtp): Removed.
(auth-source-user-or-password): Deprecated and modified to be a wrapper around `auth-source-search'. Not tested thoroughly.
auth-source.el: Bring in assoc and eioeio libraries.
(secrets-enabled): New variable to track the status of the Secrets API.
(auth-source-backend): New EIOEIO class to represent a backend.
(auth-source-creation-defaults): New variable to set prompt defaults during token creation (see the `auth-source-search' docstring for details).
(auth-sources): Simplify to allow a simple string as a netrc backend spec.
(auth-source-backend-parse): Parse a backend from an `auth-sources' spec.
(auth-source-backend-parse-parameters): Fill in the backend parameters.
(auth-source-search): Main auth-source API entry point.
(auth-source-delete): Wrapper around `auth-source-search' for deletion.
(auth-source-search-collection): Helper function for searching.
(auth-source-netrc-parse, auth-source-netrc-normalize)
(auth-source-netrc-search, auth-source-netrc-create): Netrc backend. Supports search, create, and delete.
(auth-source-secrets-search, auth-source-secrets-create): Secrets API backend stubs.
(auth-source-user-or-password): Call `auth-source-search' but it's not ready yet.
(nnimap-update-info): Tell Gnus whether there are any \Recent messages.
(nnimap-update-info): Clean up slightly.
(nnimap-quirk): Add quirk for Gmail IMAP which bugs out on NUL characters.
(nnimap-process-quirk): Renamed function to avoid collision.
(nnimap-update-info): Fix macrology bug-out.
gnus-util.el: change default value of gnus-user-date-format-alist.
gnus-art.el (gnus-article-jump-to-part): Remove useless sit-for.
gnus-art.el: remove old FIXME.
gnus.el (gnus-summary-line-format): Add missing semi-colon for user-date in docstring.
message.el (message-setup-1): Always generate References first.
(message-mail): Return the return value of message-setup, not always t.
gnus-start.el (gnus-read-active-for-groups): This function is never called with a nil `infos', so clean that up.
(gnus-get-unread-articles): Request active files from primary/secondary methods that have no groups (yet).
(message-setup-1): Insert mail-header-separator with read-only and intangible properties set.
gnus-draft.el: Remove progn around gnus-draft-setup.
gnus-start.el (gnus-get-unread-articles): Fix the call to methods that have no groups.
nnimap.el (nnimap-request-accept-article): Give an error message if the APPEND wasn't successful.
mm-view.el (mm-display-shell-script-inline): Fix typo in docstring.
(mm-display-javascript-inline): New function.
mm-decode.el (mm-inline-media-tests): Add application/javascript viewing function.
nnimap.el (nnimap-open-connection-1): Store the actual stream type used.
(nnimap-login): Prefer plain LOGIN if it's enabled (since it requires fewer round trips than CRAM-MD5, and it's less likely to be buggy), and we're using an encrypted connection.
proto-stream.el: Alter the interface functions to also return the actual stream type used: network or tls.
gnus-sum.el (gnus-summary-next-article): Remove hack to reselect group window, because it does the wrong thing when a separate frame displays the group buffer.
gnus-int.el (gnus-request-accept-article): Don't try to update marks and stuff if the backend didn't return the article number. This fixes an Exchange-related nnimap bug.
mm-decode.el (mm-preferred-alternative-precedence): Discourage showing empty parts.
nnimap.el (nnimap-convert-partial-article): Protect against zero-length body parts.
(nnimap-wait-for-line): Refactored out.
shr.el (shr-rescale-image): Display all GIF images as animated images.
nnimap.el (nnimap-login): Prefer AUTH=CRAM-MD5, if it's available. This avoids sending passwords in plain text over non-encrypted channels.
mm-view.el (mml-smime): Require.
mm-view.el (mm-view-pkcs7-decrypt): If mml-smime-use is set to 'epg, use EPG to decrypt S/MIME messages instead of openssl.
nnimap.el (nnimap-request-group): Avoid double SELECT on `M-g'.
gnus-group.el (gnus-group-kill-group): Don't try to update the group status is the group clearly is unreachable.
auth-source.el (auth-source-create): Add the optional second parameter to `local-variable-p' to be compatible with XEmacs.
nnml.el (nnml-request-article): Allow requesting by Message-ID to work when using a compressed nnml folder.
gnus-sum.el (gnus-select-newsgroup): Don't propagate marks to backends after sanitising on entry, because this never makes sense: If the articles have gone missing, then the data no longer exists on the backend, and if they haven't, then Gnus is wrong, and shouldn't overwrite anything anyway.
shr.el (shr-insert-document): Bind shr-width dynamically to window-width if it's nil.
shr.el (shr-width, shr-insert-document): Allow nil as shr-width value with the meaning of using the full emacs window width for rendering.
nnir.el (nnir-get-active): Ignore nnir-ignored-newsgroups if null.
gnus-sum.el (gnus-summary-refer-thread): Simplify code. Restore gnus-use-agent.
(gnus-get-newsgroup-headers): Avoid unwanted spaces at eol.
gravatar.el (gravatar-retrieve-synchronously): New function.
(gravatar-get-data): Make more robust.
gnus-util.el (gnus-rescale-image): Allow to resize images even if they are from file. Can also scale up.
nnimap.el (nnimap-retrieve-headers): Remove CRLF from the headers.
nnir.el (nnir-mode): Make sure 'gnus-registry-install is bound.
gnus-sum.el (gnus-get-newsgroup-headers): Revert the last change here, since it's up to the backends to do CRLF removal if their protocol has it.
gnus-group.el (gnus-group-delete-articles): New command.
nnimap.el (nnimap-wait-for-response): Always look (at least) at the previous line.
nnimap.el (nnimap-quirk): New function.
(nnimap-retrieve-group-data-early): Use it.
(nnimap-quirks): New alist.
gnus.texi (Foreign Groups): Added clarification of foreign groups.
gnus-sum.el (gnus-summary-push-marks-to-backend): Fix the logic for copying read-ness to the backends.
gnus-group.el (gnus-group-kill-group): Notify the backend that the group has been killed.
(gnus-group-yank-group): Ditto.
gnus-start.el (gnus-subscribe-newsgroup): Notify the backend.
nnir.el: Improve customizations.
gnus.texi (Archived Messages): Removed outdated comment and text.
nnfolder.el (nnfolder-save-all-buffers): Refactor out into its own function.
(nnfolder-request-expire-articles): Save all the buffers after doing expiry.
nnmail.el (nnmail-expiry-target-group): Revert the "all articles are the last article", since that led to serious performance regressions when expiring nnml groups.
gnus-html.el (gnus-html-schedule-image-fetching): Make sure the HTML fetching stops when Gnus exits.
gnus-srvr.el: Avoid passing nil regexp argument to delete-matching-lines.
auth-source.el (auth-source-gpg-encrypt-to): New variable to set the list of recipient keys, or use symmetric encryption if not a list.
(auth-source-create): Use it to make `epa-file-encrypt-to' local for an EPA override, replacing the call to `netrc-store-data'.
gnus.texi: Fix a couple nnir -> @code{nnir} things.
nnimap.el (nnimap-retrieve-group-data-early): Fix the syntax of the QRESYNC command by deleting a superfluous space which broke Cyrus servers. This change will break other servers that are buggy the other way around.
gnus.texi (The hyrex Engine): Say that this engine as obsolete.
(shr-render-td): Handle td style="" better.
(shr-tag-table): Use the color from the style sheet.
(shr-render-td): Make sure we copy over all the overlays, too.
nnimap.el (nnimap-parse-flags): Tweak VANISHED regexp to avoid regexp overflow, possibly.
shr.el (shr-render-td): Render td content with shr-descend, so style will be applied to <td> too.
(shr-colorize-region): Colorize region even if we only have a background.
(shr-tag-body): Fix color and background color inheritance.
(shr-tag-body): Do not recolorize after shr-generic.
(shr-tag-font): Let shr-generic colorize via inheritance.
shr.el (shr-descend): Only colorise something if we have a node that sets colors.
gnus-int.el (gnus-request-thread): Rework to take a header instead of a Message-ID to avoid having nnimap depend on gnus-sum.
shr.el (shr-tag-font): Colorize the region.
(shr-tag-body): Ditto.
(shr-tag-font): Actually let the styles be inherited instead of overwriting them.
(shr-tag-font): Get the background color right.
(shr-tag-style): Ignore all <style> tags for the moment.
nnir.el (nnir-categorize): Replace mapcar with mapc.
shr.el (shr-urlify): Display the title in <a> tags.
shr.el (shr-urlify): Show the URL before the title to avoid misleading URLs.
gnus-sum.el (gnus-summary-show-article): Reverse the meanings of `C-u
C-u g' and `C-u g' so that `C-u g' does what it traditionally did.
gnus.texi (Paging the Article): Note the reverse meanings of `C-u C-u g'.
gnus-html.el (gnus-html-put-image): Use widget instead of local maps
so that TAB works.
nnir.el (nnir-run-gmane): Use more careful test for gmane nntp server.
nnimap.el (nnimap-process-expiry-targets): Avoid downloading articles
unless necessary.
gnus-util.el (gnus-output-to-mail): Require nnmail before using nnmail
variables.
shr.el (shr-stylesheet): New dynamic variable for cascading the styles.
(shr-colorize-region): New function.
(shr-insert-background-overlay): Remove.
(shr-render-td): Background setting should be taken care of on a higher level.
(shr-tag-body): Use post-hoc colorizations.
(shr-descend): Only render color/background when they change.
(shr-tag-body): Set up a style sheet based on bgcolor/fgcolor.
(shr-put-color-1): Don't overwrite old colors.
(shr-colorize-region): When the background color isn't explicit, use a fixed background.
gnus.el (gnus-valid-select-methods): Allow nnimap to respool.
nntp.el (nntp-snarf-error-message): nnheader-report takes a format string as the parameter.
gnus-sum.el (gnus-summary-respool-article): The completion function expects a list instead of an alist.
nnir.el: Batch header retrieval.
proto-stream.el: New library to provide protocol-specific TLS/STARTTLS connections for IMAP, NNTP, SMTP, POP3 and similar protocols.
nnimap.el (nnimap-open-connection): Use it.
proto-stream.el (open-proto-stream): Complete the documentation.
nnimap.el (nnimap-open-connection): Check for "OK" from the greeting.
nntp.el: Use proto-streams for the relevant connections types.
nntp.el (nntp-open-connection): Switch on STARTTLS on supported servers.
proto-stream.el (open-proto-stream): Add a way to specify what the end of a command is.
proto-stream.el (proto-stream-open-tls): Delete output from openssl if we're using tls.el.
proto-stream.el (proto-stream-open-network): If we don't have gnutls-cli or gnutls built in, then don't try to establish a STARTTLS connection.
color.el (color-lab->srgb): Fix function call name.
proto-stream.el: Fix the syntax in the comment.
nntp.el (nntp-open-connection): Fix the STARTTLS command syntax.
proto-stream.el (proto-stream-open-starttls): Actually implement the starttls.el STARTTLS.
proto-stream.el (proto-stream-always-use-starttls): New variable.
proto-stream.el (proto-stream-open-starttls): De-duplicate the starttls code.
proto-stream.el (proto-stream-open-starttls): Folded back into the main function.
proto-stream.el (proto-stream-command): Refactor out.
nnimap.el (nnimap-stream): Change default to `undecided'.
nnimap.el (nnimap-open-connection): If `nnimap-stream' is `undecided', try ssl first, and then network.
nnimap.el (nnimap-open-connection-1): Respect nnimap-server-port.
nnimap.el (nnimap-open-connection): Be more backwards-compatible.
proto-stream.el (open-protocol-stream): Renamed from open-proto-stream.
proto-stream.el (proto-stream-open-network): When doing opportunistic TLS upgrades we don't really care about the identity of the peer.
gnus.texi (Customizing the IMAP Connection): Note the new defaults.
gnus.texi (Direct Functions): Note the STARTTLS upgrade.
proto-stream.el (proto-stream-open-network): Force starttls.el to use gnutls-cli, since that what we've checked for.
proto-stream.el (proto-stream-always-use-starttls): Only default to t if open-gnutls-stream exists.
proto-stream.el (proto-stream-open-network): If STARTTLS failed, then just open a normal connection.
proto-stream.el (proto-stream-open-network): Wait until the greeting before doing STARTTLS.
nnimap.el (nnimap-open-connection-1): Always upgrade to STARTTLS (for backwards compatibility).
nnimap.el (nnimap-open-connection-1): Really respect nnimap-server-port.
nntp.el (nntp-open-connection): Provide a :success condition.
nnimap.el (nnimap-open-connection-1): Ditto.
proto-stream.el (proto-stream-open-network): See what the response to the STARTTLS command is.
proto-stream.el (proto-stream-open-network): Add some comments.
proto-stream.el: Fix example.
proto-stream.el (open-protocol-stream): Actually mention the STARTTLS upgrade.
nnir.el (nnir-get-active): Skip nnir-ignored-newsgroups when searching.
nnir.el (nnir-ignore-newsgroups): Fix default value.
nnir.el (nnir-run-gmane): Use mm-delete-duplicates instead of delete-dups that is not available in XEmacs 21.4.
mm-util.el (mm-delete-duplicates): Add comment.
gnus-sum.el (gnus-summary-delete-article): If delete fails don't change the registry.
nnimap.el (nnimap-open-connection-1): w32 open-network-stream doesn't seem to accept strings-with-numbers as port numbers.
color.el: fix docstring to use English rather than math notation for intervals.
shr.el (shr-find-fill-point): Don't break before apostrophes.
nnir.el (nnir-request-move-article): Bail out if no move support in group.
color.el (color-rgb->hsv): Fix docstring.
nnir.el (nnir-get-active): Improve active list retrieval.
shr.el (shr-find-fill-point): Work better for kinsoku chars and apostrophes.
gnus-gravatar.el (gnus-gravatar-size): Set gnus-gravatar-size to nil.
nnimap.el (nnimap-open-connection-1): Use gnus-string-match-p.
nnimap.el (nnimap-open-connection-1): Fix PREAUTH.
proto-stream.el (open-protocol-stream): All starttls connections are handled by the network handler.
gnus-gravatar.el (gnus-gravatar-insert): Delete unnecessary binding to t of inhibit-read-only since it is inside gnus-with-article-headers.
gnus-gravatar.el (gnus-gravatar-transform-address): Use mail-extract-address-components that supports non-ASCII names rather than mail-header-parse-addresses.
shr.el (shr-find-fill-point): Don't break line between kinsoku-bol characters.
gnus-gravatar.el (gnus-gravatar-insert): Allow LWSP in the middle of names.
nnmaildir.el (nnmaildir-request-set-mark): Add article to add-mark funcall.
gnus-msg.el: Remove nastygram thing.
message.el (message-from-style): Fix comment.
message.el (message-user-organization): Do not use gnus-local-organization.
gnus.el: Remove gnus-local-organization.
rtree.el: New file to handle range trees.
nnir.el, gnus-sum.el: Redo the way nnir handles registry updates.
rtree.el (rtree-extract): Simplify.
gnus-win.el (gnus-configure-windows): Remove Gnus 3.x setting support.
gnus-msg.el: Mark gnus-outgoing-message-group as obsolete.
gnus.texi (Archived Messages): Remove gnus-outgoing-message-group.
gnus-win.el (gnus-configure-frame): Remove old compatibility code.
rtree.el (rtree-memq): Rewrite it as a non-recursive function.
rtree.el (rtree-add, rtree-delq, rtree-length): Implement.
rtree.el (rtree-add): Make code slightly faster.
nnir.el: Allow modified summary-line-format in nnir summary buffers.