auth.texi (Help for developers): Update docs to explain that the :save-function will only run the first time.
auth-source.el (auth-source-format-prompt): Always convert the value to a string to avoid evaluating non-string arguments.
(auth-source-netrc-create): Offer default properly, not as initial content in `read-string'.
(auth-source-netrc-saver): Use a cache keyed by file name and MD5 hash of line to determine if we've been run before. If so, don't run again, but print a trivial message to indicate the cache was hit instead.
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.
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.
ada-mode.texi: Sync @dircategory with ../../info/dir.
auth.texi: Sync @dircategory with ../../info/dir.
autotype.texi: Sync @dircategory with ../../info/dir.
calc.texi: Sync @dircategory with ../../info/dir.
cc-mode.texi: Sync @dircategory with ../../info/dir.
cl.texi: Sync @dircategory with ../../info/dir.
dbus.texi: Sync @dircategory with ../../info/dir.
dired-x.texi: Sync @dircategory with ../../info/dir.
ebrowse.texi: Sync @dircategory with ../../info/dir.
ede.texi: Sync @dircategory with ../../info/dir.
ediff.texi: Sync @dircategory with ../../info/dir.
edt.texi: Sync @dircategory with ../../info/dir.
eieio.texi: Sync @dircategory with ../../info/dir.
emacs-mime.texi: Sync @dircategory with ../../info/dir.
epa.texi: Sync @dircategory with ../../info/dir.
erc.texi: Sync @dircategory with ../../info/dir.
eshell.texi: Sync @dircategory with ../../info/dir.
eudc.texi: Sync @dircategory with ../../info/dir.
flymake.texi: Sync @dircategory with ../../info/dir.
forms.texi: Sync @dircategory with ../../info/dir.
gnus.texi: Sync @dircategory with ../../info/dir.
idlwave.texi: Sync @dircategory with ../../info/dir.
mairix-el.texi: Sync @dircategory with ../../info/dir.
message.texi: Sync @dircategory with ../../info/dir.
mh-e.texi: Sync @dircategory with ../../info/dir.
newsticker.texi: Sync @dircategory with ../../info/dir.
nxml-mode.texi: Sync @dircategory with ../../info/dir.
org.texi: Sync @dircategory with ../../info/dir.
pcl-cvs.texi: Sync @dircategory with ../../info/dir.
pgg.texi: Sync @dircategory with ../../info/dir.
rcirc.texi: Sync @dircategory with ../../info/dir.
reftex.texi: Sync @dircategory with ../../info/dir.
remember.texi: Sync @dircategory with ../../info/dir.
sasl.texi: Sync @dircategory with ../../info/dir.
sc.texi: Sync @dircategory with ../../info/dir.
semantic.texi: Sync @dircategory with ../../info/dir.
ses.texi: Sync @dircategory with ../../info/dir.
sieve.texi: Sync @dircategory with ../../info/dir.
smtpmail.texi: Sync @dircategory with ../../info/dir.
speedbar.texi: Sync @dircategory with ../../info/dir.
trampver.texi [emacs]: Set emacsname to "Emacs".
tramp.texi: Sync @dircategory with ../../info/dir.
url.texi: Sync @dircategory with ../../info/dir.
vip.texi: Sync @dircategory with ../../info/dir.
viper.texi: Sync @dircategory with ../../info/dir.
widget.texi: Sync @dircategory with ../../info/dir.
woman.texi: Sync @dircategory with ../../info/dir.
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.
auth.texi (Help for users): Login collection is "Login" and not "login".
gnus-sum.el (gnus-propagate-marks): Default to nil.
(gnus-summary-exit): Kill the correct article buffer on exit from a `C-d' group.
gnus-start.el (gnus-use-backend-marks): Removed, since it duplicates gnus-propagate-marks.
gnus-sum.el (gnus-summary-exit-no-update): Restore the group conf before killing the buffers so that a non-full window conf gets handled correctly.
(gnus-summary-exit): Ditto.
(gnus-summary-read-group-1): Ditto.
nntp.el (nntp-retrieve-group-data-early): Reinstate the two-part async code again so that we can debug it properly.
message.el (message-reply): Take an optional switch-buffer parameter so that Gnus window confs are respected better.
auth-source.el (auth-source-secrets-search): Use `delete-dups', `append mapcar', and `butlast' instead of `remove-duplicates', `mapcan', and `subseq'.
(auth-sources, auth-source-backend-parse, auth-source-secrets-search): Login collection is "Login" and not "login".
gnus-art.el (article-update-date-lapsed): Don't bug out when updating multiple headers.
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.
shr.el (shr-render-td): Store the actual background colour used.
gnus-sum.el (gnus-user-date): Renamed back from gnus-summary-user-date since user code refers to it.
auth-source.el: Rewrite.
gnus.texi: Add DEVEL header (suggested by Andreas Schwab).
WEBHACKDEVEL work:
Makefile.in (webhack, nowebhack): Hacks to produce for-the-web manuals.
auth.texi: Use WEBHACKDEVEL.
emacs-mime.texi: Use WEBHACKDEVEL.
gnus.texi: Use WEBHACKDEVEL.
message.texi: Use WEBHACKDEVEL.
pgg.texi: Use WEBHACKDEVEL.
sasl.texi: Use WEBHACKDEVEL.
sieve.texi: Use WEBHACKDEVEL.
overrides.texi: New file to set or clear WEBHACKDEVEL.
message.el (message-setup-1): Remove the read-only stuff, since it doesn't work under XEmacs, for some reason.
auth.texi (GnuPG and EasyPG Assistant Configuration): Fix syntax and trim sentence.
shr.el (shr-current-column): Remove buggy and unnecessary function.
auth.texi: Fix up pxref/xref.
auth.texi (GnuPG and EasyPG Assistant Configuration): Fix up the @item syntax for in-Emacs makeinfo.
gnus-spec.el (gnus-parse-simple-format): princ doesn't really insert anything in Emacs.
mm-decode.el (mm-shr): Allow use from non-Gnus users.
nnimap.el (nnimap-parse-flags): Be more strict when looking for FETCH responses.
nnimap.el, tls.el: Rip the STARTTLS stuff out of tls.el again, and just bind it directly from nnimap.
shr.el (shr-find-fill-point): Use a filling algorithm that should probably work for CJVK text, too.
nnimap.el (nnimap-open-connection): Fix open-tls-stream call.
nnimap.el (nnimap-parse-flags): Fix regexp.
tls.el (tls-program): Remove spurious %s from openssl.
shr.el (shr-find-fill-point): Don't inloop on indented text.