Commit 9b3ebcb6 authored by Miles Bader's avatar Miles Bader

Merge from gnus--devo--0

Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1104
parent 9c06a1f3
2008-03-22 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Foreign Groups): Add gnus-read-ephemeral-gmane-group,
gnus-read-ephemeral-gmane-group-url,
gnus-read-ephemeral-emacs-bug-group,
gnus-read-ephemeral-debian-bug-group.
2008-03-21 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (MIME Commands): Add gnus-article-browse-html-article.
* gnus-news.texi: Add EasyPG. Add gnus-article-browse-html-article.
Add FIXMEs for Bookmarks and gnus-registry-marks.
2008-03-16 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Smileys): Document `smiley-style'.
2008-03-21 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Gnus Development): Clarify difference between ding and
gnu.emacs.gnus.
(MIME Commands, Using MIME, RSS): Fix markup.
* gnus-faq.texi ([8.4]): Ditto.
2008-03-20 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Emacsen): Remove obsolete stuff.
2008-03-19 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Oort Gnus): Add version info WRT
`mail-source-delete-incoming'.
2008-03-16 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Top): Add "Other related manuals" and version info in
`iftex' output.
(Formatting Fonts): Add index entries for gnus-mouse-face, gnus-face-0,
gnus-balloon-face-0 and the corresponding format specifiers.
2008-03-26 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (Filename completion): Remove footnote about let-bind
......@@ -24,8 +66,8 @@
2008-03-14 Stefan Monnier <monnier@iro.umontreal.ca>
* gnus.texi (Example Methods, Direct Functions, Indirect Functions)
(Common Variables): Give precedence to the netcat methods over the telnet
methods, and mention that they are more reliable.
(Common Variables): Give precedence to the netcat methods over the
telnet methods, and mention that they are more reliable.
2008-03-13 Carsten Dominik <dominik@science.uva.nl>
......
......@@ -2131,22 +2131,23 @@ Which mailing lists and newsgroups are there?
@subsubheading Answer
There's the newsgroup gnu.emacs.gnus
(also available as
@uref{http://dir.gmane.org/gmane.emacs.gnus.user,
gmane.emacs.gnus.user})
which deals with general Gnus questions.
The ding mailing list (ding@@gnus.org) deals with development of
Gnus. You can read the ding list via NNTP, too under the name
@uref{http://dir.gmane.org/gmane.emacs.gnus.general,
gmane.emacs.gnus.general} from news.gmane.org.
There's the newsgroup gnu.emacs.gnus (also available as
@uref{http://dir.gmane.org/gmane.emacs.gnus.user,
gmane.emacs.gnus.user}) which deals with general Gnus questions. If you
have questions about development versions of Gnus, you should better ask
on the ding mailing list, see below.
If you want to stay in the big8,
news.software.newssreaders is also read by some Gnus
users (but chances for qualified help are much better in
the above groups) and if you speak German, there's
the above groups). If you speak German, there's
de.comm.software.gnus.
The ding mailing list (ding@@gnus.org) deals with development of
Gnus. You can read the ding list via NNTP, too under the name
@uref{http://dir.gmane.org/gmane.emacs.gnus.general,
gmane.emacs.gnus.general} from news.gmane.org.
@node [8.5]
@subsubheading Question 8.5
......
......@@ -75,6 +75,12 @@ timeout of 16 seconds (see @code{password-cache-expiry}). If
passphrase is managed by this mechanism. Passwords for ManageSieve
connections are managed by this mechanism, after querying the user
about whether to do so.
@item Using EasyPG with Gnus
When EasyPG, is available, Gnus will use it instead of @acronym{PGG}.
EasyPG is an Emacs user interface to GNU Privacy Guard. @xref{Top,
,EasyPG Assistant user's manual, epa, EasyPG Assistant user's manual}.
EasyPG is included in Emacs 23 and available separately as well.
@end itemize
@item Changes in group mode
......@@ -98,6 +104,15 @@ Customization}.
that are not reused when you select another article. @xref{Sticky
Articles}.
@c @item Bookmarks
@c FIXME: To be added
@item Gnus can selectively display @samp{text/html} articles
with a WWW browser with @kbd{K H}. @xref{MIME Commands}.
@c gnus-registry-marks
@c FIXME: To be added
@item International host names (@acronym{IDNA}) can now be decoded
inside article bodies using @kbd{W i}
(@code{gnus-summary-idna-message}). This requires that GNU Libidn
......@@ -254,6 +269,13 @@ This feature, accessible via the functions
renumbers all articles in a group, starting from 1 and removing gaps.
As a consequence, you get a correct total article count (until
messages are deleted again).
@c @item nnmairix.el
@c FIXME
@c @item nnir.el
@c FIXME
@end itemize
@item Appearance
......
......@@ -391,6 +391,17 @@ like they want it to behave. A program should not control people;
people should be empowered to do what they want by using (or abusing)
the program.
@c Adjust ../Makefile.in if you change the following line:
This manual corresponds to Gnus v5.10.9.
@heading Other related manuals
@itemize
@item Message manual: Composing messages
@item Emacs-MIME: Composing messages; @acronym{MIME}-specific parts.
@item Sieve: Managing Sieve scripts in Emacs.
@item PGG: @acronym{PGP/MIME} with Gnus.
@end itemize
@end iftex
@menu
......@@ -2736,6 +2747,55 @@ groups from different @acronym{NNTP} servers. Also @pxref{Group Levels};
newsgroups.
The following commands create ephemeral groups. They can be called not
only from the Group buffer, but in any Gnus buffer.
@table @code
@item gnus-read-ephemeral-gmane-group
@findex gnus-read-ephemeral-gmane-group
@vindex gnus-gmane-group-download-format
Read an ephemeral group on Gmane.org. The articles are downloaded via
HTTP using the URL specified by @code{gnus-gmane-group-download-format}.
Gnus will prompt you for a group name, the start article number and an
the article range.
@item gnus-read-ephemeral-gmane-group-url
@findex gnus-read-ephemeral-gmane-group-url
This command is similar to @code{gnus-read-ephemeral-gmane-group}, but
the group name and the article number and range are constructed from a
given @acronym{URL}. Supported @acronym{URL} formats include e.g.
@url{http://thread.gmane.org/gmane.foo.bar/12300/focus=12399},
@url{http://thread.gmane.org/gmane.foo.bar/12345/},
@url{http://article.gmane.org/gmane.foo.bar/12345/},
@url{http://permalink.gmane.org/gmane.foo.bar/12345/}, and
@url{http://news.gmane.org/group/gmane.foo.bar/thread=12345}.
@item gnus-read-ephemeral-emacs-bug-group
@findex gnus-read-ephemeral-emacs-bug-group
Read an Emacs bug report in an ephemeral group. Gnus will prompt for a
bug number. The default is the number at point. The @acronym{URL} is
specified in @code{gnus-bug-group-download-format-alist}.
@item gnus-read-ephemeral-debian-bug-group
@findex gnus-read-ephemeral-debian-bug-group
Read a Debian bug report in an ephemeral group. Analog to
@code{gnus-read-ephemeral-emacs-bug-group}.
@end table
Some of these command are also useful for article buttons, @xref{Article
Buttons}.
Here is an example:
@lisp
(require 'gnus-art)
(add-to-list
'gnus-button-alist
'("#\\([0-9]+\\)\\>" 1
(string-match "\\<emacs\\>" (or gnus-newsgroup-name ""))
gnus-read-ephemeral-emacs-bug-group 1))
@end lisp
@node Group Parameters
@section Group Parameters
@cindex group parameters
......@@ -9679,6 +9739,21 @@ The rest of these @acronym{MIME} commands do not use the numerical prefix in
the same manner:
@table @kbd
@item K H
@kindex K H (Summary)
@findex gnus-article-browse-html-article
View @samp{text/html} parts of the current article with a WWW browser.
The message header is added to the beginning of every html part unless
the prefix argument is given.
Warning: Spammers use links to images in HTML articles to verify whether
you have read the message. As this command passes the @acronym{HTML}
content to the browser without eliminating these ``web bugs'' you should
only use it for mails from trusted senders.
If you always want to display @acronym{HTML} parts in the browser, set
@code{mm-text-html-renderer} to @code{nil}.
@item K b
@kindex K b (Summary)
Make all the @acronym{MIME} parts have buttons in front of them. This is
......@@ -9834,7 +9909,7 @@ Display "multipart/alternative" parts as "multipart/mixed".
@item gnus-mime-display-multipart-related-as-mixed
Display "multipart/related" parts as "multipart/mixed".
If displaying "text/html" is discouraged, see
If displaying @samp{text/html} is discouraged, see
@code{mm-discouraged-alternatives}, images or other material inside a
"multipart/related" part might be overlooked when this variable is
@code{nil}. @ref{Display Customization, Display Customization, ,
......@@ -11539,7 +11614,7 @@ command respects the @samp{print=} specifications in the
@item i (Article)
@kindex i (Article)
Insert the contents of the @acronym{MIME} object into the buffer
(@code{gnus-mime-inline-part}) as text/plain. If given a prefix, insert
(@code{gnus-mime-inline-part}) as @samp{text/plain}. If given a prefix, insert
the raw contents without decoding. If given a numerical prefix, you can
do semi-manual charset stuff (see
@code{gnus-summary-show-article-charset-alist} in @ref{Paging the
......@@ -16883,7 +16958,7 @@ summary buffer.
(add-to-list 'nnmail-extra-headers nnrss-url-field)
@end lisp
Even if you have added @code{"text/html"} to the
Even if you have added @samp{text/html} to the
@code{mm-discouraged-alternatives} variable (@pxref{Display
Customization, ,Display Customization, emacs-mime, The Emacs MIME
Manual}) since you don't want to see @acronym{HTML} parts, it might be
......@@ -22243,12 +22318,16 @@ inserted.
@node Formatting Fonts
@subsection Formatting Fonts
@cindex %(, %)
@vindex gnus-mouse-face
There are specs for highlighting, and these are shared by all the format
variables. Text inside the @samp{%(} and @samp{%)} specifiers will get
the special @code{mouse-face} property set, which means that it will be
highlighted (with @code{gnus-mouse-face}) when you put the mouse pointer
over it.
@cindex %@{, %@}
@vindex gnus-face-0
Text inside the @samp{%@{} and @samp{%@}} specifiers will have their
normal faces set using @code{gnus-face-0}, which is @code{bold} by
default. If you say @samp{%1@{}, you'll get @code{gnus-face-1} instead,
......@@ -22256,6 +22335,9 @@ and so on. Create as many faces as you wish. The same goes for the
@code{mouse-face} specs---you can say @samp{%3(hello%)} to have
@samp{hello} mouse-highlighted with @code{gnus-mouse-face-3}.
@cindex %<<, %>>, guillemets
@c @cindex %<<, %>>, %, %, guillemets
@vindex gnus-balloon-face-0
Text inside the @samp{%<<} and @samp{%>>} specifiers will get the
special @code{balloon-help} property set to
@code{gnus-balloon-face-0}. If you say @samp{%1<<}, you'll get
......@@ -23445,14 +23527,22 @@ the second element is the regexp match group that is to be replaced by
the picture; and the third element is the name of the file to be
displayed.
The following variables customize where Smiley will look for these
files:
The following variables customize the appearance of the smileys:
@table @code
@item smiley-style
@vindex smiley-style
Specifies the smiley style. Predefined smiley styles include
@code{low-color} (small 13x14 pixel, three-color images), @code{medium}
(more colorful images, 16x16 pixel), and @code{grayscale} (grayscale
images, 14x14 pixel). The default depends on the height of the default
face.
@item smiley-data-directory
@vindex smiley-data-directory
Where Smiley will look for smiley faces files.
Where Smiley will look for smiley faces files. You shouldn't set this
variable anymore. Customize @code{smiley-style} instead.
@item gnus-smiley-file-types
@vindex gnus-smiley-file-types
......@@ -26190,29 +26280,27 @@ that. Not reliably, at least. Older versions of Gnus may work on older
Emacs versions. Particularly, Gnus 5.10.8 should also work on Emacs
20.7 and XEmacs 21.1.
There are some vague differences between Gnus on the various
platforms---XEmacs features more graphics (a logo and a toolbar)---but
other than that, things should look pretty much the same under all
Emacsen.
@node Gnus Development
@subsection Gnus Development
Gnus is developed in a two-phased cycle. The first phase involves much
discussion on the @samp{ding@@gnus.org} mailing list, where people
discussion on the development mailing list @samp{ding@@gnus.org}, where people
propose changes and new features, post patches and new back ends. This
phase is called the @dfn{alpha} phase, since the Gnusae released in this
phase are @dfn{alpha releases}, or (perhaps more commonly in other
circles) @dfn{snapshots}. During this phase, Gnus is assumed to be
unstable and should not be used by casual users. Gnus alpha releases
have names like ``Red Gnus'' and ``Quassia Gnus''.
have names like ``Oort Gnus'' and ``No Gnus''. @xref{Gnus Versions}.
After futzing around for 50-100 alpha releases, Gnus is declared
After futzing around for 10-100 alpha releases, Gnus is declared
@dfn{frozen}, and only bug fixes are applied. Gnus loses the prefix,
and is called things like ``Gnus 5.6.32'' instead. Normal people are
and is called things like ``Gnus 5.10.1'' instead. Normal people are
supposed to be able to use these, and these are mostly discussed on the
@samp{gnu.emacs.gnus} newsgroup.
@samp{gnu.emacs.gnus} newsgroup. This newgroup is mirrored to the
mailing list @samp{info-gnus-english@@gnu.org} which is carried on Gmane
as @samp{gmane.emacs.gnus.user}. These releases are finally integrated
in Emacs.
@cindex Incoming*
@vindex mail-source-delete-incoming
......@@ -26232,10 +26320,16 @@ either discarded or totally rewritten. People reading the mailing list
usually keep up with these rapid changes, while people on the newsgroup
can't be assumed to do so.
@c FIXME:
@c ding = gmane.emacs.gnus.general
@c newsgroup = gnu.emacs.gnus = gmane.emacs.gnus.user = info-gnus-english
So if you have problems with or questions about the alpha versions,
direct those to the ding mailing list @samp{ding@@gnus.org}. This list
is also available on Gmane as @samp{gmane.emacs.gnus.general}.
@cindex Incoming*
@vindex mail-source-delete-incoming
Some variable defaults differ between alpha Gnusae and released Gnusae,
in particular, @code{mail-source-delete-incoming}. This is to prevent
lossage of mail if an alpha release hiccups while handling the mail.
@xref{Mail Source Customization}.
@node Contributors
@subsection Contributors
......@@ -27469,7 +27563,7 @@ variables should change those regexps accordingly. For example:
@item
Old intermediate incoming mail files (@file{Incoming*}) are deleted
after a couple of days, not immediately. @xref{Mail Source
Customization}. (New in Gnus 5.10.10)
Customization}. (New in Gnus 5.10.10 / Emacs 22.2)
@end itemize
2008-03-28 Michael Harnois <mdharnois@gmail.com> (tiny change)
* nnimap.el (nnimap-find-minmax-uid): Fix Exchange 2007 IMAP problem.
2008-03-24 Reiner Steib <Reiner.Steib@gmx.de>
* message.el (message-signature-separator): Change default. Improve
custom type.
(message-cite-function): Change default to
message-cite-original-without-signature.
* gnus-sum.el (gnus-summary-make-menu-bar): Add message-cite-function
toggle.
* message.el (message-check-news-body-syntax): Fix signature check.
(message-setup-1): Mark buffer as unmodified _after_ running
message-setup-hook and handling message-alternative-emails.
(message-shorten-references): Be more strict when building list of
valid references to comply with GNKSA.
* gnus-group.el (gnus-read-ephemeral-bug-group)
(gnus-read-ephemeral-debian-bug-group)
(gnus-read-ephemeral-emacs-bug-group): Use the correct variable.
* message.el (message-info): Don't use booleanp which isn't supported
in Emacs 21 and XEmacs.
2008-03-22 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-group.el (gnus-gmane-group-download-format): Rename from
gnus-group-gmane-group-download-format.
(gnus-group-read-ephemeral-gmane-group): Rename from
gnus-group-read-ephemeral-gmane-group.
(gnus-read-ephemeral-gmane-group-url): Rename from
gnus-group-read-ephemeral-gmane-group-url.
(gnus-bug-group-download-format-alist): New variable.
(gnus-read-ephemeral-bug-group, gnus-read-ephemeral-debian-bug-group)
(gnus-read-ephemeral-emacs-bug-group): New commands.
2008-03-21 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-art.el (gnus-article-browse-html-article): Fix documentation.
(gnus-visible-headers): Improve custom type.
2008-03-20 Reiner Steib <Reiner.Steib@gmx.de>
* mml.el (mml-menu): Add workarounds for XEmacs.
* gnus-art.el (gnus-article-browse-html-article): Inhibit display of
X-Boundary header.
* message.el (message-simplify-recipients): Fix previous commit.
2008-03-20 Stefan Monnier <monnier@iro.umontreal.ca>
* mm-util.el (mm-set-buffer-multibyte): New function.
......@@ -6,6 +59,85 @@
* gnus-win.el (gnus-configure-frame, gnus-all-windows-visible-p):
Prefer fboundp to functionp so it works with macros as well.
2008-03-19 Glenn Morris <rgm@gnu.org>
* tls.el (open-tls-stream): Restore use of `tls-end-of-info'.
Accidentally removed in the sync process with Emacs.
2008-03-19 Reiner Steib <Reiner.Steib@gmx.de>
* message.el (message-alter-recipients-discard-bogus-full-name): New
function.
(message-alter-recipients-function): New variable.
(message-get-reply-headers): Use it.
(message-replace-header): New helper function.
(message-recipients-without-full-name): New variable.
(message-simplify-recipients): New command.
* mml.el (mml-menu): Add toggle for gnus-gcc-externalize-attachments.
* message.el (message-info): Handle EasyPG manual.
* mml.el (mml-menu): Add entry for EasyPG.
2008-03-18 Nils Ackermann <nils@ackermath.info> (tiny change)
* nnmh.el (nnmh-request-expire-articles): Prefer expiry-target group
parameter.
* message.el (message-disassociate-draft): Specify drafts group name
fully.
2008-03-17 Teodor Zlatanov <tzz@lifelogs.com>
* gnus-registry.el (gnus-registry-split-fancy-with-parent): Eliminate
unnecessary duplicates from the match list.
2008-03-17 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (gnus-button-handle-info-keystrokes): Don't use optional
args of `how-many' of which the XEmacs version doesn't take; declare
Info-index-next as function.
2008-03-16 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-score.el (gnus-score-headers): Fix handling of
gnus-inhibit-slow-scoring.
* gnus-art.el (gnus-article-browse-html-article): Fix type in doc
string.
(gnus-button-url-regexp): Improve handling of parenthesis.
(gnus-button-alist): Extend gnus-button-handle-info-keystrokes entry.
(gnus-button-handle-info-keystrokes): Handle index entries.
2008-03-14 Katsumi Yamaoka <yamaoka@jpl.org>
* mail-source.el (mail-source-delete-old-incoming) Fix regexp to find
Incoming* files.
2008-03-13 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el (auth-sources): Renamed from auth-source-choices.
(auth-source-pick): Use it.
2008-03-12 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el (auth-source-protocols)
(auth-source-protocols-customize, auth-source-choices): Added and
modified variable customizations and defaults.
(auth-source-pick, auth-source-user-or-password)
(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): Use new variables and provide an
interface to netrc.el.
2008-03-12 Katsumi Yamaoka <yamaoka@jpl.org>
* nntp.el (nntp-open-telnet-stream, nntp-open-via-rlogin-and-telnet)
(nntp-open-via-rlogin-and-netcat, nntp-open-via-telnet-and-telnet):
Make sure the nntp port to specify is a string.
2008-03-12 Stefan Monnier <monnier@iro.umontreal.ca>
* nntp.el: Use with-current-buffer.
......@@ -15,8 +147,8 @@
nntp-with-open-group macro.
(nntp-with-open-group): Use the function, so it's easier to debug.
Add indentation and debugging info.
(nntp-open-telnet-stream, nntp-open-via-rlogin-and-telnet): Recommend the
use of the netcat alternatives.
(nntp-open-telnet-stream, nntp-open-via-rlogin-and-telnet): Recommend
the use of the netcat alternatives.
* rfc2047.el (rfc2047-decode-string): Don't use `m'.
Avoid mm-string-as-multibyte as well.
......@@ -53,6 +185,11 @@
* message.el (message-ignored-resent-headers): Add "Delivered-To".
2008-03-10 Daiki Ueno <ueno@unixuser.org>
* mml2015.el (mml2015-epg-passphrase-callback): Type cast KEY-ID to a
string for caching if it is 'PIN.
2008-03-08 Reiner Steib <Reiner.Steib@gmx.de>
* mail-source.el (mail-source-delete-old-incoming-confirm):
......@@ -2095,7 +2232,7 @@
* gnus.el (gnus-version-number): Bump version.
2007-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
2007-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
* gnus.el: No Gnus v0.6 is released.
......
;;; auth-source.el --- authentication sources for Gnus and Emacs
;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
;; Copyright (C) 2008 Free Software Foundation, Inc.
;; Author: Ted Zlatanov <tzz@lifelogs.com>
;; Keywords: news
......@@ -32,53 +31,128 @@
;;; Code:
(eval-when-compile (require 'cl))
(eval-when-compile (require 'netrc))
(defgroup auth-source nil
"Authentication sources."
:version "22.1"
:version "23.1" ;; No Gnus
:group 'gnus)
(defcustom auth-source-choices nil
(defcustom auth-source-protocols '((imap "imap" "imaps" "143" "993")
(pop3 "pop3" "pop" "pop3s" "110" "995")
(ssh "ssh" "22")
(sftp "sftp" "115")
(smtp "smtp" "25"))
"List of authentication protocols and their names"
:group 'auth-source
:version "23.1" ;; No Gnus
:type '(repeat :tag "Authentication Protocols"
(cons :tag "Protocol Entry"
(symbol :tag "Protocol")
(repeat :tag "Names"
(string :tag "Name")))))
;;; generate all the protocols in a format Customize can use
(defconst auth-source-protocols-customize
(mapcar (lambda (a)
(let ((p (car-safe a)))
(list 'const
:tag (upcase (symbol-name p))
p)))
auth-source-protocols))
;;; this default will be changed to ~/.authinfo.gpg
(defcustom auth-sources '((:source "~/.authinfo.enc" :host t :protocol t))
"List of authentication sources.
Each entry is the authentication type with optional properties."
:group 'auth-source
:type '(repeat :tag "Authentication Sources"
(cons :tag "Source definition"
(group :tag "Select a source" :inline t
(const :format "" :value :source)
(choice :tag "Authentication information"
(const :tag "None" nil)
(file :tag "File")))
(checklist :tag "Options" :greedy t
(group :inline t
(choice :tag "Choose the hosts"
(group :tag "Select host by name" :inline t
(const :format "" :value :host)
(string :tag "Host name"))
(group :tag "Select host by regular expression" :inline t
(const :format "" :value :host-regex)
(regexp :tag "Host regular expression"))
(group :tag "Use any host" :inline t
(const :format "" :value :host-any)
(const :tag "Any" t))
(group :tag "Use if no other host matches" :inline t
(const :tag "Fallback" nil))))
(group :tag "Choose the protocol" :inline t
(const :format "" :value :protocol)
(choice :tag "Protocol"
(const :tag "Any" t)
(const :tag "Fallback (used if no others match)" nil)
(const :tag "IMAP" imap)
(const :tag "POP3" pop3)
(const :tag "SSH" ssh)
(const :tag "SFTP" sftp)
(const :tag "SMTP" smtp)))))))
:version "23.1" ;; No Gnus
:type `(repeat :tag "Authentication Sources"
(list :tag "Source definition"
(const :format "" :value :source)
(string :tag "Authentication Source")
(const :format "" :value :host)
(choice :tag "Host choice"
(const :tag "Any" t)
(regexp :tag "Host regular expression (TODO)")
(const :tag "Fallback" nil))
(const :format "" :value :protocol)
(choice :tag "Protocol"
(const :tag "Any" t)
(const :tag "Fallback" nil)
,@auth-source-protocols-customize))))
;; temp for debugging
;; (customize-variable 'auth-source-choices)
;; (setq auth-source-choices nil)
;; (format "%S" auth-source-choices)
;; (unintern 'auth-source-protocols)
;; (unintern 'auth-sources)
;; (customize-variable 'auth-sources)