Reimplement nnimap, and do tweaks to the rest of the code to support that.
* gnus-int.el (gnus-finish-retrieve-group-infos)
(gnus-retrieve-group-data-early): New functions.
* gnus-range.el (gnus-range-nconcat): New function.
* gnus-start.el (gnus-get-unread-articles): Support early retrieval of
data.
(gnus-read-active-for-groups): Support finishing the early retrieval of
data.
* gnus-sum.el (gnus-summary-move-article): Pass the move-to group name
if the move is internal, so that nnimap can do fast internal moves.
* gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for
nnimap usage.
* nnimap.el: Rewritten.
* nnmail.el (nnmail-inhibit-default-split-group): New internal variable
to allow the mail splitting to not return a default group. This is
useful for nnimap, which will leave unmatched mail in the inbox.
* utf7.el (utf7-encode): Autoload.
Implement shell connection.
* nnimap.el (nnimap-open-shell-stream): New function.
(nnimap-open-connection): Use it.
Get the number of lines by using BODYSTRUCTURE.
(nnimap-transform-headers): Get the number of lines in each message.
(nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the
number of lines.
Not all servers return UIDNEXT. Work past this problem.
Remove junk from end of file.
Fix typo in "bogus" section.
Make capabilties be case-insensitive.
Require cl when compiling.
Don't bug out if the LIST command doesn't have any parameters.
2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change)
* nnimap.el (nnimap-get-groups): Don't bug out if the LIST command
doesn't have any parameters.
(mm-text-html-renderer): Document gnus-article-html.
2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix)
* mm-decode.el (mm-text-html-renderer): Document gnus-article-html.
* dgnushack.el: Define netrc-credentials.
If the user doesn't have a /etc/services, supply some sensible port defaults.
Have `unseen-or-unread' select an unread unseen article first.
(nntp-open-server): Return whether the open was successful or not.
Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ).
Save result so that it doesn't say "failed" all the time.
Add ~/.authinfo to the default, since that's probably most useful for users.
Don't use the "finish" method when we're reading from the agent.
Add some more nnimap-relevant agent stuff to nnagent.el.
* nnimap.el (nnimap-with-process-buffer): Removed.
Revert one line that was changed by mistake in the last checkin.
(nnimap-open-connection): Don't error out when we can't make a connection
nnimap-related changes to avoid bugging out if we can't contact a server.
* gnus-start.el (gnus-get-unread-articles): Don't try to scan groups
from methods that are denied.
* nnimap.el (nnimap-possibly-change-group): Return nil if we can't log
in.
(nnimap-finish-retrieve-group-infos): Make sure we're not waiting for
nothing.
* gnus-sum.el (gnus-select-newsgroup): Indent.
gnus-sum.el: Avoid calling a hook function per summary line;
Call `gnus-summary-highlight-line' directly from all places that used to call it indirectly.
netrc.el (netrc-credentials): New conveniency function.
gnus-start.el (gnus-read-active-file-1): If gnus-agent isn't set, then do request scans from the backends.
2010-08-29 Adam Sjøgren <asjo@koldfront.dk>
* gnus-html.el (gnus-html-put-image): Use XEmacs-compatible image
functions.
2010-08-29 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-art.el (gnus-article-add-button): Take an optional parameter to
say what the mouseover text should be.
* gnus-html.el (gnus-html-prefetch-images): Use the summary-local
version of the mm-w3m-safe-url-regexp variable to only download images
in the groups where we want that to happen.
* gnus-sum.el (gnus-summary-stop-at-end-of-message): New variable.
* gnus-art.el (gnus-article-beginning-of-window): Make into defun for
easier debugging.
(gnus-article-beginning-of-window): Add kludge to allow spacing past
big pictures in the article buffer.
* mm-decode.el (mm-text-html-renderer): Default the html renderer to
gnus-article-html.
(mm-text-html-renderer): gnus-article-html needs curl in addition to
w3m.
Patch applied by Ted Zlatanov.
* gnus-sum.el (gnus-hidden-threads-configuration)
(gnus-restore-hidden-threads-configuration): Update to deal with text
properties, rather than searching for a magic character.
2010-07-20 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-sum.el (gnus-summary-bookmark-make-record): Bookmark position in
the article buffer, not the summary buffer.
* lisp/bookmark.el (bookmark-set): Don't set `bookmark-yank-point' and
`bookmark-current-buffer' if they have been already set in another
buffer (e.g gnus-art).
* lisp/gnus/gnus-sum.el (gnus-summary-bookmark-make-record): Set
`bookmark-yank-point' and `bookmark-current-buffer' to allow C-w.
Patch applied (with minor tweaks) by Karl Fogel. Note this leaves
C-w still not working correctly from Article buffers; Thierry's
patch to fix that will be applied after this.
* lisp/gnus/gnus-art.el (bookmark-make-record-function): New local variable.
* lisp/gnus/gnus-sum.el (gnus-summary-bookmark-make-record): Allow setting
from article buffer.
(gnus-summary-bookmark-jump): Maybe jump to article buffer.
2010-06-10 Dan Christensen <jdc@uwo.ca>
* gnus-util.el (gnus-user-date): Use gnus-date-get-time.
(gnus-dd-mmm): Use gnus-date-get-time.
* gnus-sum.el (gnus-thread-latest-date): Use gnus-date-get-time and
simplify logic.
(gnus-summary-limit-to-age): Use gnus-date-get-time.
(gnus-sort-threads): emit message if gnus-sort-threads-loop used.
(gnus-summary-kill-thread): Use gnus-summary-mark-article instead of
g-s-m-a-as-unread to set the expirable mark. (Bug#5284)
By Andreas Seltenreich <seltenreich (at) gmx.de>.
* mail/binhex.el (binhex-decode-region-internal)
* mail/uudecode.el (uudecode-decode-region-internal)
* net/dns.el (dns-read-string-name, dns-write, dns-read)
(dns-read-type, dns-query)
* pgg-parse.el (pgg-parse-armor)
* pgg.el (pgg-verify-region)
* sha1.el (sha1-string-external): Don't run set-buffer-multibyte for
XEmacs.
* net/imap.el (imap-disable-multibyte): Redefine them as a macro.
* nnweb.el (nnweb-gmane-search)
* yenc.el (yenc-decode-region): Don't run set-buffer-multibyte for
XEmacs.
* gnus-art.el (gnus-article-browse-html-parts)
* gnus-group.el (gnus-read-ephemeral-gmane-group)
(gnus-read-ephemeral-bug-grou): Use mm-make-temp-file instead of
make-temp-file.
* gnus-dired.el (gnus-dired-mode): Bind gnus-dired-mode-hook,
gnus-dired-mode-on-hook and gnus-dired-mode-off-hook for XEmacs when
compiling.
* gnus-ml.el (gnus-mailing-list-mode): Bind gnus-mailing-list-mode-hook,
gnus-mailing-list-mode-on-hook and gnus-mailing-list-mode-off-hook for
XEmacs when compiling.
* gnus-salt.el (gnus-pick-mode): Bind gnus-pick-mode-on-hook and
gnus-pick-mode-off-hook for XEmacs when compiling.
(gnus-binary-mode): Bind gnus-binary-mode-on-hook and
gnus-binary-mode-off-hook for XEmacs when compiling.
* gnus-sum.el (gnus-summary-limit-strange-charsets-predicate): Return
nil if char-charset is not available.
* sieve-manage.el (sieve-manage-disable-multibyte): Redefine them as a
macro.
* mm-url.el (mm-url-form-encode-xwfu): Use mm-encode-coding-string
instead of encode-coding-string.
* mm-util.el (mm-enable-multibyte, mm-disable-multibyte): Use (featurep
'xemacs) instead of mm-emacs-mule to switch function definitions.
(mm-with-unibyte-current-buffer): Make it a progn macro for XEmacs.
* mml.el (mml-mode): Use define-minor-mode.
* gnus-undo.el (gnus-undo-mode-map): Initialize in declaration.
(gnus-undo-mode): Use define-minor-mode.
* gnus-sum.el (gnus-dead-summary-mode-map): Initialize in declaration.
(gnus-dead-summary-mode): Use define-minor-mode.
* gnus-salt.el (gnus-pick-mode-map, gnus-binary-mode-map):
Initialize in declaration.
(gnus-pick-mode, gnus-binary-mode): Use define-minor-mode.
* gnus-ml.el (gnus-mailing-list-mode-map): Initialize in declaration.
(gnus-mailing-list-mode): Use define-minor-mode.
* gnus-draft.el (gnus-draft-mode-map): Initialize in declaration.
(gnus-draft-mode): Use define-minor-mode.
* gnus-dired.el (gnus-dired-mode-map): Initialize in declaration.
(gnus-dired-mode): Use define-minor-mode.
* bookmark.el (bookmark-location): Use the new field, if present.
(bookmark-insert-location): Undo last change, not needed any more.
* man.el (Man-bookmark-make-record):
* woman.el (woman-bookmark-make-record):
* gnus-sum.el (gnus-summary-bookmark-make-record): Add `location' field.
* gnus-sum.el: Add bookmark declarations to silence the compiler.
(gnus-mark-xrefs-as-read, gnus-summary-limit-to-bodies):
Use with-current-buffer to silence the byte-compiler.
(gnus-summary-bookmark-make-record): Use derived-mode-p and don't
bother to require `gnus'.
(gnus-summary-bookmark-jump): Don't forget to autoload. Simplify.
* woman.el: Add bookmark declarations to silence the compiler.
(bookmark-prop-get): Use `man-args' rather than `filename' as a first
step to compatibility between man and woman bookmarks.
Adjust for Man-default-bookmark-title renaming.
(woman-bookmark-jump): Adjust accordingly. Don't forget to autoload.
* man.el: Add bookmark declarations to silence the compiler.
(Man-name-local-regexp): Make it match NAME as well.
(Man-getpage-in-background): Return the buffer.
(Man-notify-when-ready): Use `case'.
(man-set-default-bookmark-title): Rename to Man-default-bookmark-title.
Don't hardcode "NAME". Simplify.
(Man-bookmark-make-record): Use Man-arguments rather than buffer-name.
Rename from Man-bookmark-make-record.
(Man-bookmark-jump): Rename from man-bookmark-jump. Simplify now that
we have the actual man-args. Use Man-getpage-in-background rather
than `man' since the arg is already processed. Let bookmark.el do the
window handling. Only wait for the relevant process.
Don't forget to autoload.
* bookmark.el (bookmark-default-file): Use locate-user-emacs-file.
=====================
2010-03-23 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (canlock-verify): Autoload it for Emacs 21.
* message.el (ecomplete-setup): Autoload it for Emacs <23.
* mml-sec.el (mml-secure-cache-passphrase): Default to t that is
password-cache's default if it is not bound.
(mml-secure-passphrase-cache-expiry): Default to 16 that is
password-cache-expiry's default if it is not bound.
* pop3.el (pop3-list): Don't use 3rd arg of `split-string' which is not
available in Emacs 21.
2010-03-23 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el (auth-sources): Fix up definition so extra parameters
are always inline.
2010-03-22 Martin Stjernholm <mast@lysator.liu.se>
* nnimap.el (nnimap-verify-uidvalidity): Fixed bug where uidvalidity
wasn't updated after mismatch. Clear cached mailbox info correctly
when uidvalidity changes.
(nnimap-group-prefixed-name): New function to avoid some code
duplication.
(nnimap-verify-uidvalidity, nnimap-group-overview-filename)
(nnimap-request-group): Use it.
(nnimap-retrieve-groups, nnimap-verify-uidvalidity)
(nnimap-update-unseen): Significantly improved speed of Gnus startup
with many imap folders. This is done by caching the group status from
the imap server persistently in a group parameter `imap-status'. (This
was cached before too if `nnimap-retrieve-groups-asynchronous' was set,
but not persistently, so every Gnus startup was still very slow.)
2010-03-20 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el: Set up autoloads. Bump to 23.2 because of the
secrets.el dependency.
(auth-sources): Add optional user name. Add secrets.el configuration
choice (unused right now).
2010-03-20 Teodor Zlatanov <tzz@lifelogs.com>
* gnus-sum.el (gnus-summary-make-menu-bar): Let
`gnus-registry-install-shortcuts' fill in the functions.
* gnus-registry.el (gnus-summary-misc-menu): Declare to avoid
warnings.
(gnus-registry-misc-menus): Variable to hold registry mark menus.
(gnus-registry-install-shortcuts): Populate and use it in a
`gnus-summary-menu-hook' lambda, under "Gnus"->"Registry Marks".
2010-03-20 Martin Stjernholm <mast@lysator.liu.se>
* nnimap.el (nnimap-decode-group-name, nnimap-encode-group-name):
In-place substitutions for the group name encoding/decoding.
(nnimap-find-minmax-uid, nnimap-possibly-change-group)
(nnimap-retrieve-headers-progress, nnimap-possibly-change-group)
(nnimap-retrieve-headers-progress, nnimap-request-article-part)
(nnimap-update-unseen, nnimap-request-list)
(nnimap-retrieve-groups, nnimap-request-update-info-internal)
(nnimap-request-set-mark, nnimap-split-to-groups)
(nnimap-split-articles, nnimap-request-newgroups)
(nnimap-request-create-group, nnimap-request-accept-article)
(nnimap-request-delete-group, nnimap-request-rename-group)
(nnimap-acl-get, nnimap-acl-edit): Use them. Replace `mbx' with
`encoded-mbx' for consistency.
(nnimap-close-group): Call `imap-current-mailbox' instead of using the
variable `imap-current-mailbox'.
* gnus-agent.el (gnus-agent-fetch-articles, gnus-agent-fetch-headers)
(gnus-agent-regenerate-group): Use `gnus-agent-decoded-group-name'.
2010-03-20 Bojan Petrovic <bpetrovi@f.bg.ac.rs>
* pop3.el (pop3-display-message-size-flag): Display message size byte
counts during POP3 download.
(pop3-movemail): Use it.
(pop3-list): Implement listing of available messages.
2010-03-20 Mark Triggs <mst@dishevelled.net> (tiny change)
* nnir.el (nnir-get-article-nov-override-function): New function to
override the normal NOV retrieval.
(nnir-retrieve-headers): Use it.
2009-10-19 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-sum.el (gnus-summary-show-thread): Remove useless goto-char.
(gnus-summary-show-thread, gnus-summary-hide-thread): Indent.
2009-10-16 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus.el (gnus-overlay-get): New alias to overlay-get.
(gnus-overlays-in): New alias to overlays-in.
* gnus-sum.el (gnus-remove-overlays): Use gnus-overlays-in,
gnus-overlay-get, and gnus-delete-overlay.
(gnus-summary-show-thread): Make it work as well for systems in which
next-single-char-property-change is not available.
(gnus-summary-hide-thread): Use gnus-make-overlay and gnus-overlay-put.
2009-10-14 Reiner Steib <Reiner.Steib@gmx.de>
* gnus-sum.el (gnus-remove-overlays): Add doc string and alias.
2009-10-14 Dan Nicolaescu <dann@ics.uci.edu>
* gnus-sum.el (gnus-remove-overlays): Compatibility code for Emacs 21
and XEmacs that don't have `remove-overlays'.
2009-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
* gnus-sum.el (gnus-summary-mode, gnus-summary-show-all-threads)
(gnus-summary-show-thread, gnus-summary-hide-thread): Get rid of
selective display. Use overlays instead.