emacs/lisp/gnus/gnus-int.el

876 lines
33 KiB
EmacsLisp
Raw Normal View History

1997-04-16 22:13:18 +00:00
;;; gnus-int.el --- backend interface functions for Gnus
2005-08-06 19:51:42 +00:00
;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
1997-04-16 22:13:18 +00:00
1999-02-20 14:05:57 +00:00
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
1997-04-16 22:13:18 +00:00
;; Keywords: news
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
1997-04-16 22:13:18 +00:00
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
1997-04-16 22:13:18 +00:00
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1997-04-16 22:13:18 +00:00
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
1997-04-16 22:13:18 +00:00
;;; Commentary:
;;; Code:
1997-08-26 00:13:53 +00:00
(eval-when-compile (require 'cl))
1997-04-16 22:13:18 +00:00
(require 'gnus)
(require 'message)
(require 'gnus-range)
(autoload 'gnus-run-hook-with-args "gnus-util")
(autoload 'gnus-agent-expire "gnus-agent")
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-628 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-55 Update from CVS 2004-10-19 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Search for dummy marks in the right way. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/nnagent.el (nnagent-request-type): Bind gnus-agent to nil to avoid infinite recursion via gnus-get-function. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): When necessary, pass full group name to gnus-request-set-marks. (gnus-agent-synchronize-group-flags): Added support for sync'ing tick marks. (gnus-agent-synchronize-flags-server): Be silent when writing file. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced gnus-request-update-info with explicit code to sync the in-memory info read flags with the marks being sync'd to the backend. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore servers that are offline. Avoids having gnus-agent-toggle-plugged first ask if you want to open a server and then, even when you responded with no, asking if you want to synchronize the server's flags. (gnus-agent-synchronize-flags-server): Rewrote read loop to handle multi-line expressions. (gnus-agent-synchronize-group-flags): New internal function. Updates marks in memory (in the info structure) AND in the backend. (gnus-agent-check-overview-buffer): Fixed range of deletion to remove entire duplicate line. Fixes merged article number bug. * lisp/gnus/gnus-util.el (gnus-remassoc): Fixed typo in documentation. * lisp/gnus/nnagent.el (nnagent-request-set-mark): Use gnus-agent-synchronize-group-flags, not backend's request-set-mark method, to ensure that synchronization updates marks in the backend and in the info (in memory) structure. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing unless plugged. Disable the agent so that an open failure causes an error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-fetched-hook): Add :version. (gnus-agent-go-online): Change :version. (gnus-agent-expire-unagentized-dirs) (gnus-agent-auto-agentize-methods): Add :version. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt): New function. Used internally to only display 'gnus converting files' message when actually necessary. * lisp/gnus/gnus-sum.el (): Removed (require 'gnus-agent) as required methods now autoloaded. * lisp/gnus/gnus-int.el (gnus-request-move-article): Use gnus-agent-unfetch-articles in place of gnus-agent-expire to improve performance. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf to avoid run-time CL dependencies. (gnus-agent-unfetch-articles): New function. (gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate article numbers even when local .overview file is missing. (gnus-agent-read-article-number): New function. Only accepts 27-bit article numbers. (gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use gnus-agent-read-article-number. (gnus-agent-braid-nov): Rewrote to validate article numbers coming from backend while recognizing that article numbers in .overview must be valid. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Changed message text as some users confused by references to .newsrc when they only have a .newsrc.eld file. (gnus-convert-mark-converter-prompt, gnus-convert-converter-needs-prompt): Fixed use of property list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-start.el (gnus-get-unread-articles-in-group): Don't do stuff for non-living groups. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. (gnus-agent-regenerate-group): Using nil messages aren't valid. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Inline gnus-uncompress-range. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview): Fixed typos with help from Florian Weimer <fw@deneb.enyo.de> * lisp/gnus/gnus-agent.el (gnus-agentize): gnus-agent-send-mail-real-function no longer set to current value of message-send-mail-function but rather a lambda that calls message-send-mail-function. The change makes the agent real-time responsive to user changes to message-send-mail-function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Fix last commit. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-cache.el (gnus-cache-rename-group): New function. (gnus-cache-delete-group): New function. * lisp/gnus/gnus-agent.el (gnus-agent-rename-group): New function. (gnus-agent-delete-group): New function. (gnus-agent-save-group-info): Use gnus-command-method when `method' parameter is nil. Don't write nil entries into the active file. (gnus-agent-get-group-info): New function. (gnus-agent-get-local): Added optional parameters to avoid calling gnus-group-real-name and gnus-find-method-for-group. (gnus-agent-set-local): Delete stored entry if either min, or max, are nil. (gnus-agent-fetch-session): Reworded error/quit messages. On quit, use gnus-agent-regenerate-group to record existance of any articles fetched to disk before the quit occurred. * lisp/gnus/gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Cosmetic simplification to logic. * lisp/gnus/gnus-group.el (): (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps the cache in sync. (gnus-group-list-active): Let the agent store a server's active list if currently plugged. * lisp/gnus/gnus-util.el (gnus-rename-file): New function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): Activate the group when the group's active is not available. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Add a missing arg to error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Only write the conversion message to newsrc-dribble when an actual conversion is performed. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-read-local): Bind nnheader-file-coding-system to gnus-agent-file-coding-system to avoid the implicit assumption that they will always be equal. (gnus-agent-save-local): Bind buffer-file-coding-system, not coding-system-for-write, as the with-temp-file macro first prints to a buffer then saves the buffer. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (): New. Provides converters that are only loaded when gnus-convert-old-newsrc needs to call them. * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Removed support for old file versions. (gnus-group-prepare-hook): Removed function that converted list form of gnus-agent-expire-days to group properties. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Registered new converters to handle old agent file formats. Added logic for a "backup before upgrading warning". (gnus-convert-mark-converter-prompt): Developers can mark functions as needing (default), or not needing, gnus-convert-old-newsrc's "backup before upgrading warning". (gnus-convert-converter-needs-prompt): Tests whether the user should be protected from potentially irreversable changes by the function. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-int.el (gnus-request-accept-article): Inform the agent that articles are being added to a group. (gnus-request-replace-article): Inform the agent that articles need to be uncached as the cached contents are no longer valid. * lisp/gnus/gnus-agent.el (gnus-agent-file-header-cache): Removed. (gnus-agent-possibly-alter-active): Avoid null in numeric comparison. (gnus-agent-set-local): Refuse to save null in local object table. (gnus-agent-regenerate-group): The REREAD parameter can now be a list of articles that will be marked as unread. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-range.el (gnus-sorted-range-intersection): Now accepts single-interval range of the form (min . max). Previously the range had to look like ((min . max)). Likewise, return (min . max) rather than ((min . max)). (gnus-range-map): Use gnus-range-normalize to accept single-interval range. * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): Articles stored in the cache, but not the agent, now appear with their usual face. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Now correctly handles a list of marks consisting of a single range {for example, (3 . 5)} rather than a list of a single range { ((3 . 5)) }. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Avoid splicing null INTO the uncompressed list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-draft.el (gnus-group-send-queue): Pass the group name "nndraft:queue" along to gnus-draft-send. Use gnus-agent-prompt-send-queue. (gnus-draft-send): Rebind gnus-agent-queue-mail to nil when group is "nndraft:queue". Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> * lisp/gnus/gnus-group.el (gnus-group-catchup): Use new gnus-sequence-of-unread-articles, not gnus-list-of-unread-articles, to avoid exhausting memory with huge numbers of articles. Use gnus-range-map to avoid having to uncompress the unread list. (gnus-group-archive-directory, gnus-group-recent-archive-directory): Fixed invalid ange-ftp reference. * lisp/gnus/gnus-range.el (gnus-range-map): Iterate over list or sequence. (gnus-sorted-range-intersection): Intersection of two ranges without requiring that they first be uncompressed. * lisp/gnus/gnus-start.el (gnus-activate-group): Unless blocked by the caller, possibly expand the active range to include both cached and agentized articles. (gnus-convert-old-newsrc): Rewrote in anticipation of having multiple version-dependent converters. (gnus-groups-to-gnus-format): Replaced gnus-agent-save-groups with gnus-agent-save-active. (gnus-save-newsrc-file): Save dirty agent range limits. * lisp/gnus/gnus-sum.el (gnus-select-newgroup): Replaced inline code with gnus-agent-possibly-alter-active. (gnus-adjust-marked-articles): Faster handling of simple lists 2004-10-18 David Edmondson <dme@dme.org> * lisp/gnus/mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call excessively.
2004-10-19 22:38:28 +00:00
(autoload 'gnus-agent-regenerate-group "gnus-agent")
(autoload 'gnus-agent-read-servers-validate-native "gnus-agent")
(autoload 'gnus-agent-possibly-synchronize-flags-server "gnus-agent")
1997-04-16 22:13:18 +00:00
(defcustom gnus-open-server-hook nil
"Hook called just before opening connection to the news server."
:group 'gnus-start
:type 'hook)
(defcustom gnus-after-set-mark-hook nil
"Hook called just after marks are set in a group."
Add missing :version tags to new defgroups and defcustoms * window.el (window-sides-slots): * tool-bar.el (tool-bar-position): * term/xterm.el (xterm-extra-capabilities): * ses.el (ses-self-reference-early-detection): * progmodes/verilog-mode.el (verilog-auto-declare-nettype) (verilog-auto-wire-type) (verilog-auto-delete-trailing-whitespace) (verilog-auto-reset-blocking-in-non, verilog-auto-inst-sort) (verilog-auto-tieoff-declaration): * progmodes/sql.el (sql-login-hook, sql-ansi-statement-starters) (sql-oracle-statement-starters, sql-oracle-scan-on): * progmodes/prolog.el (prolog-align-comments-flag) (prolog-indent-mline-comments-flag, prolog-object-end-to-0-flag) (prolog-left-indent-regexp, prolog-paren-indent-p) (prolog-paren-indent, prolog-parse-mode, prolog-keywords) (prolog-types, prolog-mode-specificators) (prolog-determinism-specificators, prolog-directives) (prolog-electric-newline-flag, prolog-hungry-delete-key-flag) (prolog-electric-dot-flag) (prolog-electric-dot-full-predicate-template) (prolog-electric-underscore-flag, prolog-electric-tab-flag) (prolog-electric-if-then-else-flag, prolog-electric-colon-flag) (prolog-electric-dash-flag, prolog-old-sicstus-keys-flag) (prolog-program-switches, prolog-prompt-regexp) (prolog-debug-on-string, prolog-debug-off-string) (prolog-trace-on-string, prolog-trace-off-string) (prolog-zip-on-string, prolog-zip-off-string) (prolog-use-standard-consult-compile-method-flag) (prolog-use-prolog-tokenizer-flag, prolog-imenu-flag) (prolog-imenu-max-lines, prolog-info-predicate-index) (prolog-underscore-wordchar-flag, prolog-use-sicstus-sd) (prolog-char-quote-workaround): * progmodes/cc-vars.el (c-defun-tactic): * net/tramp.el (tramp-encoding-command-interactive) (tramp-local-end-of-line): * net/soap-client.el (soap-client): * net/netrc.el (netrc-file): * net/gnutls.el (gnutls): * minibuffer.el (completion-category-overrides) (completion-cycle-threshold) (completion-pcm-complete-word-inserts-delimiters): * man.el (Man-name-local-regexp): * mail/feedmail.el (feedmail-display-full-frame): * international/characters.el (glyphless-char-display-control): * eshell/em-ls.el (eshell-ls-date-format): * emacs-lisp/cl-indent.el (lisp-lambda-list-keyword-alignment) (lisp-lambda-list-keyword-parameter-indentation) (lisp-lambda-list-keyword-parameter-alignment): * doc-view.el (doc-view-image-width, doc-view-unoconv-program): * dired-x.el (dired-omit-verbose): * cus-theme.el (custom-theme-allow-multiple-selections): * calc/calc.el (calc-highlight-selections-with-faces) (calc-lu-field-reference, calc-lu-power-reference) (calc-note-threshold): * battery.el (battery-mode-line-limit): * arc-mode.el (archive-7z-extract, archive-7z-expunge) (archive-7z-update): * allout.el (allout-prefixed-keybindings) (allout-unprefixed-keybindings) (allout-inhibit-auto-fill-on-headline) (allout-flattened-numbering-abbreviation): * allout-widgets.el (allout-widgets-auto-activation) (allout-widgets-icons-dark-subdir) (allout-widgets-icons-light-subdir, allout-widgets-icon-types) (allout-widgets-theme-dark-background) (allout-widgets-theme-light-background) (allout-widgets-item-image-properties-emacs) (allout-widgets-item-image-properties-xemacs) (allout-widgets-run-unit-tests-on-load) (allout-widgets-time-decoration-activity) (allout-widgets-hook-error-post-time) (allout-widgets-track-decoration): * gnus/sieve-manage.el (sieve-manage-default-stream): * gnus/shr.el (shr): * gnus/nnir.el (nnir-ignored-newsgroups, nnir-summary-line-format) (nnir-retrieve-headers-override-function) (nnir-imap-default-search-key, nnir-notmuch-program) (nnir-notmuch-additional-switches, nnir-notmuch-remove-prefix) (nnir-method-default-engines): * gnus/message.el (message-cite-reply-position): * gnus/gssapi.el (gssapi-program): * gnus/gravatar.el (gravatar): * gnus/gnus-sum.el (gnus-refer-thread-use-nnir): * gnus/gnus-registry.el (gnus-registry-unfollowed-addresses) (gnus-registry-max-pruned-entries): * gnus/gnus-picon.el (gnus-picon-inhibit-top-level-domains): * gnus/gnus-int.el (gnus-after-set-mark-hook) (gnus-before-update-mark-hook): * gnus/gnus-async.el (gnus-async-post-fetch-function): * gnus/auth-source.el (auth-source-cache-expiry): Add missing :version tags to new defcustoms and defgroups.
2012-02-11 14:13:29 -08:00
:version "24.1"
:group 'gnus-start
:type 'hook)
(defcustom gnus-before-update-mark-hook nil
"Hook called just before marks are updated in a group."
Add missing :version tags to new defgroups and defcustoms * window.el (window-sides-slots): * tool-bar.el (tool-bar-position): * term/xterm.el (xterm-extra-capabilities): * ses.el (ses-self-reference-early-detection): * progmodes/verilog-mode.el (verilog-auto-declare-nettype) (verilog-auto-wire-type) (verilog-auto-delete-trailing-whitespace) (verilog-auto-reset-blocking-in-non, verilog-auto-inst-sort) (verilog-auto-tieoff-declaration): * progmodes/sql.el (sql-login-hook, sql-ansi-statement-starters) (sql-oracle-statement-starters, sql-oracle-scan-on): * progmodes/prolog.el (prolog-align-comments-flag) (prolog-indent-mline-comments-flag, prolog-object-end-to-0-flag) (prolog-left-indent-regexp, prolog-paren-indent-p) (prolog-paren-indent, prolog-parse-mode, prolog-keywords) (prolog-types, prolog-mode-specificators) (prolog-determinism-specificators, prolog-directives) (prolog-electric-newline-flag, prolog-hungry-delete-key-flag) (prolog-electric-dot-flag) (prolog-electric-dot-full-predicate-template) (prolog-electric-underscore-flag, prolog-electric-tab-flag) (prolog-electric-if-then-else-flag, prolog-electric-colon-flag) (prolog-electric-dash-flag, prolog-old-sicstus-keys-flag) (prolog-program-switches, prolog-prompt-regexp) (prolog-debug-on-string, prolog-debug-off-string) (prolog-trace-on-string, prolog-trace-off-string) (prolog-zip-on-string, prolog-zip-off-string) (prolog-use-standard-consult-compile-method-flag) (prolog-use-prolog-tokenizer-flag, prolog-imenu-flag) (prolog-imenu-max-lines, prolog-info-predicate-index) (prolog-underscore-wordchar-flag, prolog-use-sicstus-sd) (prolog-char-quote-workaround): * progmodes/cc-vars.el (c-defun-tactic): * net/tramp.el (tramp-encoding-command-interactive) (tramp-local-end-of-line): * net/soap-client.el (soap-client): * net/netrc.el (netrc-file): * net/gnutls.el (gnutls): * minibuffer.el (completion-category-overrides) (completion-cycle-threshold) (completion-pcm-complete-word-inserts-delimiters): * man.el (Man-name-local-regexp): * mail/feedmail.el (feedmail-display-full-frame): * international/characters.el (glyphless-char-display-control): * eshell/em-ls.el (eshell-ls-date-format): * emacs-lisp/cl-indent.el (lisp-lambda-list-keyword-alignment) (lisp-lambda-list-keyword-parameter-indentation) (lisp-lambda-list-keyword-parameter-alignment): * doc-view.el (doc-view-image-width, doc-view-unoconv-program): * dired-x.el (dired-omit-verbose): * cus-theme.el (custom-theme-allow-multiple-selections): * calc/calc.el (calc-highlight-selections-with-faces) (calc-lu-field-reference, calc-lu-power-reference) (calc-note-threshold): * battery.el (battery-mode-line-limit): * arc-mode.el (archive-7z-extract, archive-7z-expunge) (archive-7z-update): * allout.el (allout-prefixed-keybindings) (allout-unprefixed-keybindings) (allout-inhibit-auto-fill-on-headline) (allout-flattened-numbering-abbreviation): * allout-widgets.el (allout-widgets-auto-activation) (allout-widgets-icons-dark-subdir) (allout-widgets-icons-light-subdir, allout-widgets-icon-types) (allout-widgets-theme-dark-background) (allout-widgets-theme-light-background) (allout-widgets-item-image-properties-emacs) (allout-widgets-item-image-properties-xemacs) (allout-widgets-run-unit-tests-on-load) (allout-widgets-time-decoration-activity) (allout-widgets-hook-error-post-time) (allout-widgets-track-decoration): * gnus/sieve-manage.el (sieve-manage-default-stream): * gnus/shr.el (shr): * gnus/nnir.el (nnir-ignored-newsgroups, nnir-summary-line-format) (nnir-retrieve-headers-override-function) (nnir-imap-default-search-key, nnir-notmuch-program) (nnir-notmuch-additional-switches, nnir-notmuch-remove-prefix) (nnir-method-default-engines): * gnus/message.el (message-cite-reply-position): * gnus/gssapi.el (gssapi-program): * gnus/gravatar.el (gravatar): * gnus/gnus-sum.el (gnus-refer-thread-use-nnir): * gnus/gnus-registry.el (gnus-registry-unfollowed-addresses) (gnus-registry-max-pruned-entries): * gnus/gnus-picon.el (gnus-picon-inhibit-top-level-domains): * gnus/gnus-int.el (gnus-after-set-mark-hook) (gnus-before-update-mark-hook): * gnus/gnus-async.el (gnus-async-post-fetch-function): * gnus/auth-source.el (auth-source-cache-expiry): Add missing :version tags to new defcustoms and defgroups.
2012-02-11 14:13:29 -08:00
:version "24.1"
:group 'gnus-start
:type 'hook)
(defcustom gnus-server-unopen-status nil
"The default status if the server is not able to open.
If the server is covered by Gnus agent, the possible values are
`denied', set the server denied; `offline', set the server offline;
nil, ask user. If the server is not covered by Gnus agent, set the
server denied."
:version "22.1"
:group 'gnus-start
:type '(choice (const :tag "Ask" nil)
(const :tag "Deny server" denied)
(const :tag "Unplug Agent" offline)))
(defcustom gnus-nntp-server nil
"The name of the host running the NNTP server."
:group 'gnus-server
:type '(choice (const :tag "disable" nil)
string))
(make-obsolete-variable 'gnus-nntp-server 'gnus-select-method "24.1")
(defvar gnus-internal-registry-spool-current-method nil
"The current method, for the registry.")
(defun gnus-server-opened (gnus-command-method)
"Check whether a connection to GNUS-COMMAND-METHOD has been opened."
(unless (eq (gnus-server-status gnus-command-method)
'denied)
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (inline (gnus-get-function gnus-command-method 'server-opened))
(nth 1 gnus-command-method))))
(defun gnus-status-message (gnus-command-method)
"Return the status message from GNUS-COMMAND-METHOD.
If GNUS-COMMAND-METHOD is a string, it is interpreted as a group
name. The method this group uses will be queried."
(let ((gnus-command-method
(if (stringp gnus-command-method)
(gnus-find-method-for-group gnus-command-method)
gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'status-message)
(nth 1 gnus-command-method))))
1997-04-16 22:13:18 +00:00
;;;
;;; Server Communication
;;;
(defun gnus-start-news-server (&optional confirm)
"Open a method for getting news.
If CONFIRM is non-nil, the user will be asked for an NNTP server."
(let (how)
(if gnus-current-select-method
;; Stream is already opened.
nil
;; Open NNTP server.
(when confirm
;; Read server name with completion.
(setq gnus-nntp-server
Merge changes made in Gnus trunk. nndraft.el (nndraft-request-expire-articles): Use the group name instead if "nndraft". gnus.texi (Using IMAP): Remove the @acronyms from the headings. nnregistry.el: Added. nnimap.el (nnimap-insert-partial-structure): Be way more permissive when interpreting the structures. GNUS-NEWS: Minor error in GNUS-NEWS - password-cache.el. nnimap.el (nnimap-request-accept-article): Add \r\n to the lines to make this work with Cyrus. gnus-registry.el: Don't prompt on load, which makes it impossible to build Gnus. gnus-gravatar.el: Add gnus-gravatar-properties. gnus-agent.el, gnus-art.el, gnus-bookmark.el, gnus-dired.el, gnus-group.el,\ gnus-int.el, gnus-msg.el, gnus-registry.el, gnus-score.el, gnus-srvr.el,\ gnus-sum.el, gnus-topic.el, gnus-util.el, gnus.el, mm-decode.el, mm-util.el,\ mm-view.el, mml-smime.el, mml.el, nnmairix.el, nnrss.el, smime.el:\ Introduce gnus-completing-read. gnus-util.el: Make completing-read function configurable. gnus-util.el: Add requires and fix history for iswitchb. webmail.el: Remove netscape/my-deja, since they no longer exist. gnus.el (gnus-local-domain): Declare variable obsolete. nnimap.el (nnimap-insert-partial-structure): Get the type from the correct slot, too. pop3.el (pop3-send-streaming-command, pop3-stream-length): New variable. nnimap.el (nnimap-open-connection): Revert the auto-network->starttls code. nnimap.el (nnimap-request-set-mark): Erase the buffer before issuing commands. nnimap.el (nnimap-split-rule): Mark as obsolete. gnus-sum.el (gnus-valid-move-group-p): Make sure that `group' is a symbol. nnimap.el (nnimap-split-incoming-mail): Allow `default' as nnimap-split-methods value. nnimap.el (nnimap-request-article): Downcase the NILs so that they are nil. nndoc.el (nndoc-retrieve-groups): New function. gnus.texi: Fix Gravatar documentation.
2010-09-30 08:39:23 +00:00
(gnus-completing-read "NNTP server"
(cons gnus-nntp-server
(if (boundp 'gnus-secondary-servers)
gnus-secondary-servers))
Merge changes made in Gnus trunk. nndraft.el (nndraft-request-expire-articles): Use the group name instead if "nndraft". gnus.texi (Using IMAP): Remove the @acronyms from the headings. nnregistry.el: Added. nnimap.el (nnimap-insert-partial-structure): Be way more permissive when interpreting the structures. GNUS-NEWS: Minor error in GNUS-NEWS - password-cache.el. nnimap.el (nnimap-request-accept-article): Add \r\n to the lines to make this work with Cyrus. gnus-registry.el: Don't prompt on load, which makes it impossible to build Gnus. gnus-gravatar.el: Add gnus-gravatar-properties. gnus-agent.el, gnus-art.el, gnus-bookmark.el, gnus-dired.el, gnus-group.el,\ gnus-int.el, gnus-msg.el, gnus-registry.el, gnus-score.el, gnus-srvr.el,\ gnus-sum.el, gnus-topic.el, gnus-util.el, gnus.el, mm-decode.el, mm-util.el,\ mm-view.el, mml-smime.el, mml.el, nnmairix.el, nnrss.el, smime.el:\ Introduce gnus-completing-read. gnus-util.el: Make completing-read function configurable. gnus-util.el: Add requires and fix history for iswitchb. webmail.el: Remove netscape/my-deja, since they no longer exist. gnus.el (gnus-local-domain): Declare variable obsolete. nnimap.el (nnimap-insert-partial-structure): Get the type from the correct slot, too. pop3.el (pop3-send-streaming-command, pop3-stream-length): New variable. nnimap.el (nnimap-open-connection): Revert the auto-network->starttls code. nnimap.el (nnimap-request-set-mark): Erase the buffer before issuing commands. nnimap.el (nnimap-split-rule): Mark as obsolete. gnus-sum.el (gnus-valid-move-group-p): Make sure that `group' is a symbol. nnimap.el (nnimap-split-incoming-mail): Allow `default' as nnimap-split-methods value. nnimap.el (nnimap-request-article): Downcase the NILs so that they are nil. nndoc.el (nndoc-retrieve-groups): New function. gnus.texi: Fix Gravatar documentation.
2010-09-30 08:39:23 +00:00
nil gnus-nntp-server)))
1997-04-16 22:13:18 +00:00
(when (and gnus-nntp-server
(stringp gnus-nntp-server)
(not (string= gnus-nntp-server "")))
(setq gnus-select-method
(cond ((or (string= gnus-nntp-server "")
(string= gnus-nntp-server "::"))
(list 'nnspool (system-name)))
((string-match "^:" gnus-nntp-server)
(list 'nnmh gnus-nntp-server
(list 'nnmh-directory
(file-name-as-directory
(expand-file-name
(substring gnus-nntp-server 1) "~/")))
1997-04-16 22:13:18 +00:00
(list 'nnmh-get-new-mail nil)))
(t
(list 'nntp gnus-nntp-server)))))
(setq how (car gnus-select-method))
(cond
((eq how 'nnspool)
(require 'nnspool)
(gnus-message 5 "Looking up local news spool..."))
((eq how 'nnmh)
(require 'nnmh)
(gnus-message 5 "Looking up mh spool..."))
(t
(require 'nntp)))
(setq gnus-current-select-method gnus-select-method)
1999-02-20 14:05:57 +00:00
(gnus-run-hooks 'gnus-open-server-hook)
;; Partially validate agent covered methods now that the
;; gnus-select-method is known.
(if gnus-agent
;; NOTE: This is here for one purpose only. By validating
;; the current select method, it converts the old 5.10.3,
;; and earlier, format to the current format. That enables
;; the agent code within gnus-open-server to function
;; correctly.
(gnus-agent-read-servers-validate-native gnus-select-method))
1997-04-16 22:13:18 +00:00
(or
;; gnus-open-server-hook might have opened it
(gnus-server-opened gnus-select-method)
(gnus-open-server gnus-select-method)
gnus-batch-mode
1997-04-16 22:13:18 +00:00
(gnus-y-or-n-p
(format-message
"%s (%s) open error: `%s'. Continue? "
1997-04-16 22:13:18 +00:00
(car gnus-select-method) (cadr gnus-select-method)
(gnus-status-message gnus-select-method)))
(gnus-error 1 "Couldn't open server on %s"
(nth 1 gnus-select-method))))))
(defun gnus-check-group (group)
"Try to make sure that the server where GROUP exists is alive."
(let ((method (gnus-find-method-for-group group)))
(or (gnus-server-opened method)
(gnus-open-server method))))
(defun gnus-check-server (&optional method silent)
"Check whether the connection to METHOD is down.
If METHOD is nil, use `gnus-select-method'.
If it is down, start it up (again)."
(let ((method (or method gnus-select-method))
result)
1997-04-16 22:13:18 +00:00
;; Transform virtual server names into select methods.
(when (stringp method)
(setq method (gnus-server-to-method method)))
(if (gnus-server-opened method)
;; The stream is already opened.
t
;; Open the server.
(unless silent
(gnus-message 5 "Opening %s server%s..." (car method)
(if (equal (nth 1 method) "") ""
(format " on %s" (nth 1 method)))))
1999-02-20 14:05:57 +00:00
(gnus-run-hooks 'gnus-open-server-hook)
1997-04-16 22:13:18 +00:00
(prog1
Merge changes made in Gnus trunk. 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.
2010-09-18 10:02:19 +00:00
(setq result (gnus-open-server method))
1997-04-16 22:13:18 +00:00
(unless silent
Merge changes made in Gnus trunk. nnimap.el: Implement partial IMAP article fetch. nnimap.el: Have nnimap not update the infos if it can't get info from the server. Implement functions for showing the complete articles. gnus-int.el (gnus-open-server): Don't query whether to go offline -- just do it. gnus-art.el (gnus-mime-delete-part): Fix plural for "byte" when there isn't a single byte. nndoc.el (nndoc-type-alist): Move mime-parts after mbox. Suggested by Jay Berkenbilt. mm-decode.el (mm-save-part): Allow saving to other directories the normal Emacs way. gnus-html.el (gnus-html-rescale-image): Use our defalias gnus-window-inside-pixel-edges. gnus-srvr.el (gnus-server-copy-server): Add documentation. gnus.texi (Using IMAP): Document the new nnimap. nnimap.el (nnimap-wait-for-response): Search further when we're not using streaming. gnus-int.el (gnus-check-server): Say what the error was when opening failed. nnheader.el (nnheader-get-report-string): New function. gnus-int.el (gnus-check-server): Use report-string. nnimap.el (nnimap-open-connection): Add more error reporting when nnimap fails early. gnus-start.el (gnus-get-unread-articles): Don't try to open failed servers twice. nnimap.el (nnimap-wait-for-response): Reversed logic in the nnimap-streaming test. gnus-art.el: Removed CTAN button stuff, which I don't think is very relevant any more. Remove NoCeM support, since nobody seems to use it any more. Remove earcon and gnus-audio. gnus.el (gnus): Silence gnus-load message. gnus-group.el (gnus-read-ephemeral-bug-group): Add the bug email address to the To list for easier response. gnus.texi (Connecting to an IMAP Server): Show how to use as primary method instead of secondary.
2010-09-26 04:03:19 +00:00
(gnus-message
(if result 5 3)
"Opening %s server%s...%s" (car method)
(if (equal (nth 1 method) "") ""
(format " on %s" (nth 1 method)))
(if result
"done"
(format "failed: %s"
(nnheader-get-report-string (car method))))))))))
1997-04-16 22:13:18 +00:00
(defun gnus-get-function (method function &optional noerror)
"Return a function symbol based on METHOD and FUNCTION."
;; Translate server names into methods.
(unless method
(error "Attempted use of a nil select method"))
(when (stringp method)
(setq method (gnus-server-to-method method)))
1999-02-20 14:05:57 +00:00
;; Check cache of constructed names.
(let* ((method-sym (if gnus-agent
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-628 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-55 Update from CVS 2004-10-19 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Search for dummy marks in the right way. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/nnagent.el (nnagent-request-type): Bind gnus-agent to nil to avoid infinite recursion via gnus-get-function. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): When necessary, pass full group name to gnus-request-set-marks. (gnus-agent-synchronize-group-flags): Added support for sync'ing tick marks. (gnus-agent-synchronize-flags-server): Be silent when writing file. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced gnus-request-update-info with explicit code to sync the in-memory info read flags with the marks being sync'd to the backend. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore servers that are offline. Avoids having gnus-agent-toggle-plugged first ask if you want to open a server and then, even when you responded with no, asking if you want to synchronize the server's flags. (gnus-agent-synchronize-flags-server): Rewrote read loop to handle multi-line expressions. (gnus-agent-synchronize-group-flags): New internal function. Updates marks in memory (in the info structure) AND in the backend. (gnus-agent-check-overview-buffer): Fixed range of deletion to remove entire duplicate line. Fixes merged article number bug. * lisp/gnus/gnus-util.el (gnus-remassoc): Fixed typo in documentation. * lisp/gnus/nnagent.el (nnagent-request-set-mark): Use gnus-agent-synchronize-group-flags, not backend's request-set-mark method, to ensure that synchronization updates marks in the backend and in the info (in memory) structure. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing unless plugged. Disable the agent so that an open failure causes an error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-fetched-hook): Add :version. (gnus-agent-go-online): Change :version. (gnus-agent-expire-unagentized-dirs) (gnus-agent-auto-agentize-methods): Add :version. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt): New function. Used internally to only display 'gnus converting files' message when actually necessary. * lisp/gnus/gnus-sum.el (): Removed (require 'gnus-agent) as required methods now autoloaded. * lisp/gnus/gnus-int.el (gnus-request-move-article): Use gnus-agent-unfetch-articles in place of gnus-agent-expire to improve performance. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf to avoid run-time CL dependencies. (gnus-agent-unfetch-articles): New function. (gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate article numbers even when local .overview file is missing. (gnus-agent-read-article-number): New function. Only accepts 27-bit article numbers. (gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use gnus-agent-read-article-number. (gnus-agent-braid-nov): Rewrote to validate article numbers coming from backend while recognizing that article numbers in .overview must be valid. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Changed message text as some users confused by references to .newsrc when they only have a .newsrc.eld file. (gnus-convert-mark-converter-prompt, gnus-convert-converter-needs-prompt): Fixed use of property list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-start.el (gnus-get-unread-articles-in-group): Don't do stuff for non-living groups. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. (gnus-agent-regenerate-group): Using nil messages aren't valid. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Inline gnus-uncompress-range. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview): Fixed typos with help from Florian Weimer <fw@deneb.enyo.de> * lisp/gnus/gnus-agent.el (gnus-agentize): gnus-agent-send-mail-real-function no longer set to current value of message-send-mail-function but rather a lambda that calls message-send-mail-function. The change makes the agent real-time responsive to user changes to message-send-mail-function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Fix last commit. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-cache.el (gnus-cache-rename-group): New function. (gnus-cache-delete-group): New function. * lisp/gnus/gnus-agent.el (gnus-agent-rename-group): New function. (gnus-agent-delete-group): New function. (gnus-agent-save-group-info): Use gnus-command-method when `method' parameter is nil. Don't write nil entries into the active file. (gnus-agent-get-group-info): New function. (gnus-agent-get-local): Added optional parameters to avoid calling gnus-group-real-name and gnus-find-method-for-group. (gnus-agent-set-local): Delete stored entry if either min, or max, are nil. (gnus-agent-fetch-session): Reworded error/quit messages. On quit, use gnus-agent-regenerate-group to record existance of any articles fetched to disk before the quit occurred. * lisp/gnus/gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Cosmetic simplification to logic. * lisp/gnus/gnus-group.el (): (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps the cache in sync. (gnus-group-list-active): Let the agent store a server's active list if currently plugged. * lisp/gnus/gnus-util.el (gnus-rename-file): New function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): Activate the group when the group's active is not available. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Add a missing arg to error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Only write the conversion message to newsrc-dribble when an actual conversion is performed. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-read-local): Bind nnheader-file-coding-system to gnus-agent-file-coding-system to avoid the implicit assumption that they will always be equal. (gnus-agent-save-local): Bind buffer-file-coding-system, not coding-system-for-write, as the with-temp-file macro first prints to a buffer then saves the buffer. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (): New. Provides converters that are only loaded when gnus-convert-old-newsrc needs to call them. * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Removed support for old file versions. (gnus-group-prepare-hook): Removed function that converted list form of gnus-agent-expire-days to group properties. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Registered new converters to handle old agent file formats. Added logic for a "backup before upgrading warning". (gnus-convert-mark-converter-prompt): Developers can mark functions as needing (default), or not needing, gnus-convert-old-newsrc's "backup before upgrading warning". (gnus-convert-converter-needs-prompt): Tests whether the user should be protected from potentially irreversable changes by the function. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-int.el (gnus-request-accept-article): Inform the agent that articles are being added to a group. (gnus-request-replace-article): Inform the agent that articles need to be uncached as the cached contents are no longer valid. * lisp/gnus/gnus-agent.el (gnus-agent-file-header-cache): Removed. (gnus-agent-possibly-alter-active): Avoid null in numeric comparison. (gnus-agent-set-local): Refuse to save null in local object table. (gnus-agent-regenerate-group): The REREAD parameter can now be a list of articles that will be marked as unread. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-range.el (gnus-sorted-range-intersection): Now accepts single-interval range of the form (min . max). Previously the range had to look like ((min . max)). Likewise, return (min . max) rather than ((min . max)). (gnus-range-map): Use gnus-range-normalize to accept single-interval range. * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): Articles stored in the cache, but not the agent, now appear with their usual face. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Now correctly handles a list of marks consisting of a single range {for example, (3 . 5)} rather than a list of a single range { ((3 . 5)) }. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Avoid splicing null INTO the uncompressed list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-draft.el (gnus-group-send-queue): Pass the group name "nndraft:queue" along to gnus-draft-send. Use gnus-agent-prompt-send-queue. (gnus-draft-send): Rebind gnus-agent-queue-mail to nil when group is "nndraft:queue". Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> * lisp/gnus/gnus-group.el (gnus-group-catchup): Use new gnus-sequence-of-unread-articles, not gnus-list-of-unread-articles, to avoid exhausting memory with huge numbers of articles. Use gnus-range-map to avoid having to uncompress the unread list. (gnus-group-archive-directory, gnus-group-recent-archive-directory): Fixed invalid ange-ftp reference. * lisp/gnus/gnus-range.el (gnus-range-map): Iterate over list or sequence. (gnus-sorted-range-intersection): Intersection of two ranges without requiring that they first be uncompressed. * lisp/gnus/gnus-start.el (gnus-activate-group): Unless blocked by the caller, possibly expand the active range to include both cached and agentized articles. (gnus-convert-old-newsrc): Rewrote in anticipation of having multiple version-dependent converters. (gnus-groups-to-gnus-format): Replaced gnus-agent-save-groups with gnus-agent-save-active. (gnus-save-newsrc-file): Save dirty agent range limits. * lisp/gnus/gnus-sum.el (gnus-select-newgroup): Replaced inline code with gnus-agent-possibly-alter-active. (gnus-adjust-marked-articles): Faster handling of simple lists 2004-10-18 David Edmondson <dme@dme.org> * lisp/gnus/mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call excessively.
2004-10-19 22:38:28 +00:00
(inline (gnus-agent-get-function method))
1999-02-20 14:05:57 +00:00
(car method)))
(method-fns (get method-sym 'gnus-method-functions))
(func (let ((method-fnlist-elt (assq function method-fns)))
(unless method-fnlist-elt
(setq method-fnlist-elt
(cons function
(intern (format "%s-%s" method-sym function))))
(put method-sym 'gnus-method-functions
(cons method-fnlist-elt method-fns)))
(cdr method-fnlist-elt))))
;; Maybe complain if there is no function.
1997-04-16 22:13:18 +00:00
(unless (fboundp func)
1999-02-20 14:05:57 +00:00
(unless (car method)
(error "Trying to require a method that doesn't exist"))
1997-04-16 22:13:18 +00:00
(require (car method))
1999-02-20 14:05:57 +00:00
(when (not (fboundp func))
(if noerror
(setq func nil)
(error "No such function: %s" func))))
1997-04-16 22:13:18 +00:00
func))
;;;
;;; Interface functions to the backends.
;;;
Merge changes made in Gnus trunk. 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.
2010-09-18 10:02:19 +00:00
(defun gnus-method-denied-p (method)
(eq (nth 1 (assoc method gnus-opened-servers))
'denied))
(defvar gnus-backend-trace nil)
(defvar gnus-backend-trace-elapsed nil)
Merge Changes made in Gnus trunk. gnus-html.el (gnus-html-get-image-data): Search also for \r\n\r\n to get the start of data. gnus-html.el: Use gnus-html-encode-url to encode URL. gnus-sum.el (gnus-update-marks): Add sanity check to not delete marks outside the active range. gnus.el: Try to keep the server/method cache unique. gnus-html.el (gnus-html-rescale-image): Use window-inside-pixel-edges rather than window-pixel-edges. gnus-html.el (gnus-html-put-image): Stop using markers. gnus-html.el (gnus-html-image-fetched): Search also for \r\n\r\n to get the start of data. nnimap.el: Expunge IMAP groups by default on article deletion. gnus-int.el (gnus-request-expire-articles): Inhibit the daemon, since this command might take a while. nnimap.el (nnimap-request-list): Set the current nnimap group to nil, since EXAMINE changes it on the server. nnmail.el, nnimap.el: Allow nnimap to just delete 'junk messages when splitting. nnimap.el (nnimap-parse-flags): Make IMAP flags parsing much faster by using `read'. nnimap.el (nnimap-make-process-buffer): Record the server name. gnus-html.el (gnus-html-image-fetched): Only cache if gnus-html-image-automatic-caching is set. gnus-html.el (gnus-html-image-fetched): Check for errors. gnus-start.el (gnus-read-active-for-groups): Only run -request-scan once per method on `g'. nnimap.el (nnimap-request-expire-articles): If nnmail-expiry-wait is immediate, then expire all articles. gnus-group.el (gnus-group-get-icon): Compute icon to return. gnus-group.el (gnus-group-icon-list): Fix bad docstring information. nnimap.el (nnimap-update-info): Fix up various off-by-one errors when syncing flags in nnimap. time-date.el (date-to-time): Speed up date-to-time. gnus-start.el (gnus-get-unread-articles): Don't have `gnus-get-unread-articles-in-group' update info. gnus-group.el: Remove gnus-group-highlight-line from the default hook list. gnus-group.el (gnus-group-highlight-line): Typo fix: beg, not start. gnus-group.el (gnus-group-insert-group-line): Pass the real group name so that it gets the right data. gnus-int.el (gnus-open-server): Add tracing for performance debugging. nnimap.el (nnimap-parse-flags): Parse the data in any order. nnimap.el (nnimap-update-info): Fix up code slightly.
2010-09-23 00:30:37 +00:00
(defun gnus-backend-trace (type form)
(when gnus-backend-trace
(with-current-buffer (get-buffer-create "*gnus trace*")
(buffer-disable-undo)
(goto-char (point-max))
(insert (format-time-string "%H:%M:%S")
(format " %.2fs %s %S\n"
(if (numberp gnus-backend-trace-elapsed)
(- (float-time) gnus-backend-trace-elapsed)
0)
type form))
(setq gnus-backend-trace-elapsed (float-time)))))
1999-02-20 14:05:57 +00:00
(defun gnus-open-server (gnus-command-method)
"Open a connection to GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(gnus-backend-trace :opening gnus-command-method)
(let ((elem (assoc gnus-command-method gnus-opened-servers))
(server (gnus-method-to-server-name gnus-command-method)))
1997-04-16 22:13:18 +00:00
;; If this method was previously denied, we just return nil.
(if (eq (nth 1 elem) 'denied)
(progn
(gnus-message
1 "Server %s previously determined to be down; not retrying" server)
1997-04-16 22:13:18 +00:00
nil)
;; Open the server.
Merge changes made in Gnus trunk. 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.
2010-12-05 22:17:34 +00:00
(let* ((open-server-function
(gnus-get-function gnus-command-method 'open-server))
(result
Merge changes made in Gnus trunk. 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.
2010-12-05 22:17:34 +00:00
(condition-case err
(funcall open-server-function
(nth 1 gnus-command-method)
(nthcdr 2 gnus-command-method))
(error
(gnus-message 1 "Unable to open server %s due to: %s"
server (error-message-string err))
nil)
(quit
(if debug-on-quit
(debug "Quit")
(gnus-message 1 "Quit trying to open server %s" server))
Merge changes made in Gnus trunk. 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.
2010-12-05 22:17:34 +00:00
nil)))
open-offline)
1997-04-16 22:13:18 +00:00
;; If this hasn't been opened before, we add it to the list.
(unless elem
1999-02-20 14:05:57 +00:00
(setq elem (list gnus-command-method nil)
1997-04-16 22:13:18 +00:00
gnus-opened-servers (cons elem gnus-opened-servers)))
;; Set the status of this server.
Merge changes made in Gnus trunk. nnimap.el: Implement partial IMAP article fetch. nnimap.el: Have nnimap not update the infos if it can't get info from the server. Implement functions for showing the complete articles. gnus-int.el (gnus-open-server): Don't query whether to go offline -- just do it. gnus-art.el (gnus-mime-delete-part): Fix plural for "byte" when there isn't a single byte. nndoc.el (nndoc-type-alist): Move mime-parts after mbox. Suggested by Jay Berkenbilt. mm-decode.el (mm-save-part): Allow saving to other directories the normal Emacs way. gnus-html.el (gnus-html-rescale-image): Use our defalias gnus-window-inside-pixel-edges. gnus-srvr.el (gnus-server-copy-server): Add documentation. gnus.texi (Using IMAP): Document the new nnimap. nnimap.el (nnimap-wait-for-response): Search further when we're not using streaming. gnus-int.el (gnus-check-server): Say what the error was when opening failed. nnheader.el (nnheader-get-report-string): New function. gnus-int.el (gnus-check-server): Use report-string. nnimap.el (nnimap-open-connection): Add more error reporting when nnimap fails early. gnus-start.el (gnus-get-unread-articles): Don't try to open failed servers twice. nnimap.el (nnimap-wait-for-response): Reversed logic in the nnimap-streaming test. gnus-art.el: Removed CTAN button stuff, which I don't think is very relevant any more. Remove NoCeM support, since nobody seems to use it any more. Remove earcon and gnus-audio. gnus.el (gnus): Silence gnus-load message. gnus-group.el (gnus-read-ephemeral-bug-group): Add the bug email address to the To list for easier response. gnus.texi (Connecting to an IMAP Server): Show how to use as primary method instead of secondary.
2010-09-26 04:03:19 +00:00
(setcar
(cdr elem)
(cond (result
(if (eq open-server-function 'nnagent-open-server)
Merge changes made in Gnus trunk. nnimap.el: Implement partial IMAP article fetch. nnimap.el: Have nnimap not update the infos if it can't get info from the server. Implement functions for showing the complete articles. gnus-int.el (gnus-open-server): Don't query whether to go offline -- just do it. gnus-art.el (gnus-mime-delete-part): Fix plural for "byte" when there isn't a single byte. nndoc.el (nndoc-type-alist): Move mime-parts after mbox. Suggested by Jay Berkenbilt. mm-decode.el (mm-save-part): Allow saving to other directories the normal Emacs way. gnus-html.el (gnus-html-rescale-image): Use our defalias gnus-window-inside-pixel-edges. gnus-srvr.el (gnus-server-copy-server): Add documentation. gnus.texi (Using IMAP): Document the new nnimap. nnimap.el (nnimap-wait-for-response): Search further when we're not using streaming. gnus-int.el (gnus-check-server): Say what the error was when opening failed. nnheader.el (nnheader-get-report-string): New function. gnus-int.el (gnus-check-server): Use report-string. nnimap.el (nnimap-open-connection): Add more error reporting when nnimap fails early. gnus-start.el (gnus-get-unread-articles): Don't try to open failed servers twice. nnimap.el (nnimap-wait-for-response): Reversed logic in the nnimap-streaming test. gnus-art.el: Removed CTAN button stuff, which I don't think is very relevant any more. Remove NoCeM support, since nobody seems to use it any more. Remove earcon and gnus-audio. gnus.el (gnus): Silence gnus-load message. gnus-group.el (gnus-read-ephemeral-bug-group): Add the bug email address to the To list for easier response. gnus.texi (Connecting to an IMAP Server): Show how to use as primary method instead of secondary.
2010-09-26 04:03:19 +00:00
;; The agent's backend has a "special" status
'offline
'ok))
((and gnus-agent
(gnus-agent-method-p gnus-command-method))
(cond
(gnus-server-unopen-status
;; Set the server's status to the unopen
;; status. If that status is offline,
;; recurse to open the agent's backend.
(setq open-offline (eq gnus-server-unopen-status 'offline))
gnus-server-unopen-status)
((not gnus-batch-mode)
(setq open-offline t)
'offline)
(t
;; This agentized server was still denied
'denied)))
(t
;; This unagentized server must be denied
'denied)))
;; NOTE: I MUST set the server's status to offline before this
;; recursive call as this status will drive the
;; gnus-get-function (called above) to return the agent's
;; backend.
(if open-offline
;; Recursively open this offline server to perform the
;; open-server function of the agent's backend.
(let ((gnus-server-unopen-status 'denied))
;; Bind gnus-server-unopen-status to avoid recursively
;; prompting with "go offline?". This is only a concern
;; when the agent's backend fails to open the server.
(gnus-open-server gnus-command-method))
(when (and (eq (cadr elem) 'ok) gnus-agent
(gnus-agent-method-p gnus-command-method))
(save-excursion
(gnus-agent-possibly-synchronize-flags-server
gnus-command-method)))
(gnus-backend-trace :opened gnus-command-method)
result)))))
1997-04-16 22:13:18 +00:00
1999-02-20 14:05:57 +00:00
(defun gnus-close-server (gnus-command-method)
"Close the connection to GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'close-server)
(nth 1 gnus-command-method)))
(defun gnus-request-list (gnus-command-method)
"Request the active file from GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'request-list)
(nth 1 gnus-command-method)))
Merge changes made in Gnus trunk. 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.
2010-09-18 10:02:19 +00:00
(defun gnus-finish-retrieve-group-infos (gnus-command-method infos data)
"Read and update infos from GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(gnus-backend-trace :finishing gnus-command-method)
(prog1
(funcall (gnus-get-function gnus-command-method
'finish-retrieve-group-infos)
(nth 1 gnus-command-method)
infos data)
(gnus-backend-trace :finished gnus-command-method)))
Merge changes made in Gnus trunk. 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.
2010-09-18 10:02:19 +00:00
(defun gnus-retrieve-group-data-early (gnus-command-method infos)
2011-12-29 18:52:49 -08:00
"Start early async retrieval of data from GNUS-COMMAND-METHOD."
Merge changes made in Gnus trunk. 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.
2010-09-18 10:02:19 +00:00
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'retrieve-group-data-early)
(nth 1 gnus-command-method)
infos))
1999-02-20 14:05:57 +00:00
(defun gnus-request-list-newsgroups (gnus-command-method)
"Request the newsgroups file from GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'request-list-newsgroups)
(nth 1 gnus-command-method)))
(defun gnus-request-newgroups (date gnus-command-method)
"Request all new groups since DATE from GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(let ((func (gnus-get-function gnus-command-method 'request-newgroups t)))
1997-04-16 22:13:18 +00:00
(when func
1999-02-20 14:05:57 +00:00
(funcall func date (nth 1 gnus-command-method)))))
(defun gnus-request-regenerate (gnus-command-method)
"Request a data generation from GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'request-regenerate)
(nth 1 gnus-command-method)))
(defun gnus-request-compact-group (group)
(let* ((method (gnus-find-method-for-group group))
(gnus-command-method method)
(result
(funcall (gnus-get-function gnus-command-method
'request-compact-group)
(gnus-group-real-name group)
(nth 1 gnus-command-method) t)))
result))
(defun gnus-request-compact (gnus-command-method)
Merge changes made in Gnus trunk. 2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus.texi (Group Parameters): Really note precedence. 2012-01-07 Lars Magne Ingebrigtsen <larsi@gnus.org> * mm-decode.el (mm-interactively-view-part): Use `completing-read', since ido doesn't work on symbols (bug#9632). * gnus.el (gnus-group-fast-parameter): Use the same precedence rules when getting a single value as when getting all the values. This means that atoms like `gcc-self' work cumulatively, like variable settings, instead of getting the value from the last matching clause. (gnus-group-find-parameter): Protect against the group buffer not existing (bug#9585). 2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus-start.el (gnus-activate-group): Document more parameters (bug#9694). * gnus-group.el (gnus-group-read-ephemeral-group): Doc clarification (bug#9692). * gnus-agent.el (gnus-agent-store-article): Tell the Agent when the article was fetched, so that it can be expired later (bug#9958). (gnus-agent-summary-fetch-series): Add doc string. (gnus-agent-summary-fetch-group): Don't remove tick and dormant marks (bug#9517). * nntp.el (nntp-retrieve-groups): Refuse to do retrieval when an async retrieval is happening. * gnus.el (gnus-parameters): Doc fix. 2012-01-06 Dave Abrahams <dave@boostpro.com> (tiny change) * gnus-sum.el (gnus-summary-refer-thread): If the subtree is hidden, show the thread after expansion. 2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus-art.el (article-narrow-to-head): If the head is completely empty, narrow to the empty region (bug#9764). * gnus-sum.el (gnus-summary-mark-article-as-unread): Mark articles as read, and then mark them as unread only when the unread mark is used. This makes `C-- T k' actually work, even though it's confusing. * gnus-win.el (gnus-all-windows-visible-p): Ensure that the buffer is alive before we try to find its window. 2012-01-06 Brian Sniffen <bsniffen@akamai.com> (tiny change) * mm-decode.el (mm-display-external): Use a longer timeout for the deletion to allow slow programs to display the file. 2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus-art.el (gnus-article-browse-delete-temp-files): Fix up the prompt to be less confusing.
2012-01-07 01:13:52 +00:00
"Request groups compaction from GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'request-compact)
(nth 1 gnus-command-method)))
(defun gnus-request-group (group &optional dont-check gnus-command-method info)
1997-04-16 22:13:18 +00:00
"Request GROUP. If DONT-CHECK, no information is required."
1999-02-20 14:05:57 +00:00
(let ((gnus-command-method
(or gnus-command-method (inline (gnus-find-method-for-group group)))))
(when (stringp gnus-command-method)
(setq gnus-command-method
(inline (gnus-server-to-method gnus-command-method))))
(funcall (inline (gnus-get-function gnus-command-method 'request-group))
1999-02-20 14:05:57 +00:00
(gnus-group-real-name group) (nth 1 gnus-command-method)
dont-check
info)))
1997-04-16 22:13:18 +00:00
(defun gnus-request-group-description (group)
"Request a description of GROUP."
1999-02-20 14:05:57 +00:00
(let ((gnus-command-method (gnus-find-method-for-group group))
1997-04-16 22:13:18 +00:00
(func 'request-group-description))
(when (gnus-check-backend-function func group)
1999-02-20 14:05:57 +00:00
(funcall (gnus-get-function gnus-command-method func)
(gnus-group-real-name group) (nth 1 gnus-command-method)))))
1997-04-16 22:13:18 +00:00
(defun gnus-request-group-scan (group info)
"Request that GROUP get a complete rescan."
(let ((gnus-command-method (gnus-find-method-for-group group))
(func 'request-group-scan))
(when (gnus-check-backend-function func group)
(funcall (gnus-get-function gnus-command-method func)
(gnus-group-real-name group) (nth 1 gnus-command-method) info))))
1997-04-16 22:13:18 +00:00
(defun gnus-close-group (group)
"Request the GROUP be closed."
1999-02-20 14:05:57 +00:00
(let ((gnus-command-method (inline (gnus-find-method-for-group group))))
(funcall (gnus-get-function gnus-command-method 'close-group)
(gnus-group-real-name group) (nth 1 gnus-command-method))))
1997-04-16 22:13:18 +00:00
(defun gnus-retrieve-headers (articles group &optional fetch-old)
"Request headers for ARTICLES in GROUP.
If FETCH-OLD, retrieve all headers (or some subset thereof) in the group."
1999-02-20 14:05:57 +00:00
(let ((gnus-command-method (gnus-find-method-for-group group)))
(cond
((and gnus-use-cache (numberp (car articles)))
(gnus-cache-retrieve-headers articles group fetch-old))
((and gnus-agent (gnus-online gnus-command-method)
(gnus-agent-method-p gnus-command-method))
(gnus-agent-retrieve-headers articles group fetch-old))
(t
1999-02-20 14:05:57 +00:00
(funcall (gnus-get-function gnus-command-method 'retrieve-headers)
articles (gnus-group-real-name group)
(nth 1 gnus-command-method) fetch-old)))))
1999-02-20 14:05:57 +00:00
(defun gnus-retrieve-articles (articles group)
"Request ARTICLES in GROUP."
(let ((gnus-command-method (gnus-find-method-for-group group)))
(funcall (gnus-get-function gnus-command-method 'retrieve-articles)
articles (gnus-group-real-name group)
(nth 1 gnus-command-method))))
(defun gnus-retrieve-groups (groups gnus-command-method)
"Request active information on GROUPS from GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'retrieve-groups)
groups (nth 1 gnus-command-method)))
1997-04-16 22:13:18 +00:00
(defun gnus-request-type (group &optional article)
"Return the type (`post' or `mail') of GROUP (and ARTICLE)."
1999-02-20 14:05:57 +00:00
(let ((gnus-command-method (gnus-find-method-for-group group)))
(if (not (gnus-check-backend-function
'request-type (car gnus-command-method)))
1997-04-16 22:13:18 +00:00
'unknown
1999-02-20 14:05:57 +00:00
(funcall (gnus-get-function gnus-command-method 'request-type)
1997-04-16 22:13:18 +00:00
(gnus-group-real-name group) article))))
(defun gnus-request-update-group-status (group status)
"Change the status of a group.
Valid statuses include `subscribe' and `unsubscribe'."
(let ((gnus-command-method (gnus-find-method-for-group group)))
(if (not (gnus-check-backend-function
'request-update-group-status (car gnus-command-method)))
nil
(funcall
(gnus-get-function gnus-command-method 'request-update-group-status)
(gnus-group-real-name group) status
(nth 1 gnus-command-method)))))
(defun gnus-request-set-mark (group action)
"Set marks on articles in the back end."
(let ((gnus-command-method (gnus-find-method-for-group group)))
(if (not (gnus-check-backend-function
'request-set-mark (car gnus-command-method)))
action
(funcall (gnus-get-function gnus-command-method 'request-set-mark)
(gnus-group-real-name group) action
(nth 1 gnus-command-method))
(gnus-run-hook-with-args gnus-after-set-mark-hook group action))))
1997-04-16 22:13:18 +00:00
(defun gnus-request-update-mark (group article mark)
"Allow the back end to change the mark the user tries to put on an article."
1999-02-20 14:05:57 +00:00
(let ((gnus-command-method (gnus-find-method-for-group group)))
(if (not (gnus-check-backend-function
'request-update-mark (car gnus-command-method)))
1997-04-16 22:13:18 +00:00
mark
(gnus-run-hook-with-args gnus-before-update-mark-hook group article mark)
1999-02-20 14:05:57 +00:00
(funcall (gnus-get-function gnus-command-method 'request-update-mark)
1997-04-16 22:13:18 +00:00
(gnus-group-real-name group) article mark))))
(defun gnus-request-article (article group &optional buffer)
"Request the ARTICLE in GROUP.
ARTICLE can either be an article number or an article Message-ID.
If BUFFER, insert the article in that group."
1999-02-20 14:05:57 +00:00
(let ((gnus-command-method (gnus-find-method-for-group group)))
(funcall (gnus-get-function gnus-command-method 'request-article)
article (gnus-group-real-name group)
(nth 1 gnus-command-method) buffer)))
1997-04-16 22:13:18 +00:00
(defun gnus-request-thread (header group)
"Request the headers in the thread containing the article specified by HEADER."
(let ((gnus-command-method (gnus-find-method-for-group group)))
(funcall (gnus-get-function gnus-command-method 'request-thread)
header
(gnus-group-real-name group))))
Merge changes made in Gnus master ever since feature freeze ::::::::::::::::: ::: doc/misc/ ::: ::::::::::::::::: 2012-06-11 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus.texi (POP before SMTP): POP-before-SMTP works with all sending methods, so don't mention smtpmail here. 2012-05-04 Wolfgang Jenkner <wjenkner@inode.at> * gnus.texi (Picons): Document gnus-picon-properties. 2012-06-10 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus.texi: Remove mention of compilation, as that's no longer supported. 2012-03-14 Christopher Schmidt <christopher@ch.ristopher.com> * gnus.texi (Archived Messages): Mention gnus-gcc-pre-body-encode-hook and gnus-gcc-post-body-encode-hook. 2012-02-16 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi (Various Summary Stuff): Remove mention of `gnus-propagate-marks'. 2012-02-15 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi: Remove mentions of nnml/nnfolder/nntp backend marks, which no longer exist. 2012-02-08 Katsumi Yamaoka <yamaoka@jpl.org> * gnus.texi (Archived Messages): Document gnus-gcc-self-resent-messages. 2012-02-06 Lars Ingebrigtsen <larsi@gnus.org> * message.texi (Mail Variables): Mention the optional user parameter for X-Message-SMTP-Method. 2012-02-02 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi (Posting Styles): Mention X-Message-SMTP-Method. * message.texi (Mail Variables): Document X-Message-SMTP-Method. 2012-01-31 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi (Key Index): Change encoding to utf-8. :::::::::::::::::: ::: lisp/gnus/ ::: :::::::::::::::::: 2012-06-26 Katsumi Yamaoka <yamaoka@jpl.org> * mm-decode.el: Add coding cookie for a soft hyphen that mm-shr uses. 2012-06-11 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus-art.el (gnus-article-read-summary-keys): Protect against the key being bound to a lambda form. 2012-05-04 Wolfgang Jenkner <wjenkner@inode.at> * gnus-picon.el (gnus-picon-properties): New defcustom. (gnus-picon-create-glyph): Use it. 2012-06-10 Lars Magne Ingebrigtsen <larsi@gnus.org> * shr.el: Add a iso-8859-1 cookie to make stuff work under other locales. * mm-decode.el (mm-display-part): Dissect archives when hitting `RET' on a handle. * gnus-sum.el (gnus-summary-limit-to-author): Use the current From address as the default. * nnfolder.el (nnfolder-save-buffer): Delete old versions silently. It makes no sense to query the user about internal files. * gnus-spec.el: Remove all the byte-compilation stuff, since benchmarking shows that it doesn't help when entering large summary buffers. * gnus-util.el (gnus-byte-code): Remove. * gnus-spec.el (gnus-update-format-specifications): Remove outdated grouplens stuff. 2012-06-07 Stephen Eglen <S.J.Eglen@damtp.cam.ac.uk> * message.el (message-buffers): Return all buffers derived from Message to make `gnus-dired-attach' work with mu4e. 2012-05-28 Daiki Ueno <ueno@unixuser.org> * mm-decode.el (mm-inhibit-auto-detect-attachment): New variable. (mm-dissect-singlepart): Don't guess the MIME type of application/octet-stream parts if mm-inhibit-auto-detect-attachment is set. (mm-dissect-multipart): Bind mm-inhibit-auto-detect-attachment if the toplevel MIME type is multipart/encrypted. 2011-12-02 Wolfgang Jenkner <wjenkner@inode.at> * gnus-agent.el (gnus-agent-save-active): Deal with the "groups" format. In particular, add an optional argument and a docstring. * gnus-start.el (gnus-groups-to-gnus-format): Use it. * nntp.el (nntp-finish-retrieve-group-infos): Make `nntp-server-buffer' current before calling `gnus-groups-to-gnus-format'. Note that this was already the case for `gnus-active-to-gnus-format'. 2012-04-25 Katsumi Yamaoka <yamaoka@jpl.org> * pop3.el (pop3-wait-for-messages): Fix retrieved data size calculation. 2012-04-12 Lars Magne Ingebrigtsen <larsi@gnus.org> * mm-decode.el (mm-dissect-buffer): Doc fix. * gnus-sum.el (gnus-handle-ephemeral-exit): Avoid creating the group buffer if it doesn't exist. * gnus-group.el (gnus-group-read-ephemeral-group): If no quit-config is given, mark the group as ephemeral with the current window conf. * gnus-sum.el (gnus-set-global-variables): Don't assume that the group buffer exists, which it doesn't if we haven't started Gnus. (gnus-summary-exit): Allow quitting when we don't have a group buffer. 2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org> * mml.el (mml-generate-mime): Allow specifying what the top-level part type is. * gnus-sum.el (gnus-auto-center-summary): `scroll-margin' isn't defined on XEmacs. 2012-04-10 Philipp Haselwarter <philipp.haselwarter@gmx.de> (tiny change) * gnus-sum.el (gnus-auto-center-summary): Set default to respect `scroll-margin'. 2012-04-10 Elias Oltmanns <eo@nebensachen.de> (tiny change) * gnus-cite.el (gnus-dissect-cited-text): A single line without citation prefix within a block of cited text should be considered part of that block *only* if it is a blank line. 2012-04-02 Katsumi Yamaoka <yamaoka@jpl.org> * shr.el (shr-find-fill-point): Remove unused code; don't break a line before kinsoku-bol characters nor within kinsoku-eol characters. 2012-03-27 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-sync.el (gnus-topic-alist, gnus-group-topic) (gnus-topic-create-topic, gnus-topic-enter-dribble): Silence compiler. (gnus-sync-read): Use mapc instead of mapcar. * mm-archive.el: Require mm-decode for some macros. (gnus-recursive-directory-files, mailcap-extension-to-mime): Silence the byte compiler. (mm-archive-decoders): New function that returns the value of the mm-archive-decoders variable. * mm-decode.el: Don't require mm-archive; autoload mm-archive functions instead. (mm-dissect-singlepart): Use the function mm-archive-decoders. * nnmail.el (mail-send-and-exit): Silence the byte compiler. 2012-03-12 Peter Munster <pmrb@free.fr> * gnus-demon.el (gnus-demon-timers): Now a plist (function -> timer). (gnus-demon-cancel): Ditto. (gnus-demon-run-callback): When function cannot be called due to low idleness, call it when idleness reaches the expected value, instead of waiting another timer period. (gnus-demon-init): Add `time' to arguments of call-back. 2012-03-22 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus.el: Register gnus-registry functions. * gnus-registry.el (gnus-try-warping-via-registry): Moved here and indent. * gnus-int.el (gnus-warp-to-article): Check whether the registry is enabled before warping. 2012-03-22 Dave Abrahams <dave@boostpro.com> * gnus-sum.el (gnus-summary-insert-subject): Record information in the registry about each article retrieved. * gnus-int.el (gnus-select-group-with-message-id): New function. (gnus-try-warping-via-registry): Ditto. (gnus-warp-to-article): Fall back on the registry. 2012-03-22 Lars Magne Ingebrigtsen <larsi@gnus.org> * nnimap.el (nnimap-fetch-partial-articles): Minor doc string fixup. 2012-03-22 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-msg.el (gnus-summary-resend-message-insert-gcc): Assume that gnus-gcc-self-resent-messages may be a group parameter. (gnus-summary-resend-message): Don't encode encoded words in header when Gcc'ing resent message. 2012-03-19 Lars Magne Ingebrigtsen <larsi@gnus.org> * shr.el (shr-insert): Treat non-breaking space just like normal space. This seems to produce more pleasing results. (shr-insert): Only insert a blank line if we're starting from an image. (shr-tag-br): Allow <br> to end lines or to make a single blank line. (shr-ensure-paragraph): Consider lines with white space to be blank. 2012-03-14 Christopher Schmidt <christopher@ch.ristopher.com> * gnus-msg.el (gnus-inews-do-gcc): Add gnus-gcc-pre-body-encode-hook and gnus-gcc-post-body-encode-hook. 2012-02-16 Lars Ingebrigtsen <larsi@gnus.org> * mm-decode.el (mm-dissect-singlepart): Guess what the type of application/octet-stream parts really is. * gnus-sum.el (gnus-propagate-marks): Remove. 2012-02-15 Lars Ingebrigtsen <larsi@gnus.org> * nntp.el (nntp-coding-system-for-read): Remove. (nntp-coding-system-for-write): Ditto. (nntp-open-connection): Just use `binary' directly. 2012-02-14 Teodor Zlatanov <tzz@lifelogs.com> * registry.el (registry-usage-test, registry-persistence-test): Move to tests/gnustest-registry.el. (registry-make-testable-db, registry-match-test) (registry-instantiation-test): Move to tests/gnustest-registry.el. * gnus-registry.el (gnus-registry-misc-test) (gnus-registry-usage-test): Move to tests/gnustest-registry.el. * tests/gnustest-registry.el: New file with the registry and gnus-registry ERT tests. 2012-02-13 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-msg.el (gnus-summary-resend-message): Make gnus-summary-resend-message-insert-gcc be last item in message-header-setup-hook. 2012-02-13 Lars Ingebrigtsen <larsi@gnus.org> * nnfolder.el (nnfolder-marks-directory, nnfolder-marks-is-evil) (nnfolder-marks, nnfolder-marks-file-suffix) (nnfolder-marks-modtime): Remove. (nnfolder-open-server): Don't use marks. (nnfolder-request-delete-group): Ditto. (nnfolder-request-rename-group): Ditto. (nnfolder-request-set-mark, nnfolder-request-marks) (nnfolder-group-marks-pathname, nnfolder-marks-changed-p) (nnfolder-save-marks, nnfolder-open-marks): Remove. * nnml.el (nnml-marks-is-evil, nnml-marks-file-name, nnml-marks) (nnml-marks-modtime): Remove. (nnml-request-delete-group): Don't use marks. (nnml-request-rename-group): Ditto. (nnml-request-set-mark, nnml-request-marks, nnml-marks-changed-p) (nnml-save-marks, nnml-open-marks): Remove. * nntp.el (nntp-marks-is-evil, nntp-marks-file-name, nntp-marks) (nntp-marks-modtime, nntp-marks-directory, nntp-request-set-mark) (nntp-request-marks, nntp-marks-directory, nntp-marks-changed-p) (nntp-save-marks, nntp-open-marks, nntp-possibly-create-directory) (nntp-server-to-method-cache): Remove. * shr.el (shr-rescale-image): Fix wrong merge. 2012-02-15 Lars Ingebrigtsen <larsi@gnus.org> * shr.el (shr-remove-trailing-whitespace): Really delete the padding on too-wide lines. 2012-02-09 Lars Ingebrigtsen <larsi@gnus.org> * mm-archive.el (mm-archive-dissect-and-inline): New function. (mm-archive-dissect-and-inline): Fix up the undisplayer. * mm-decode.el (mm-display-external): Output the text from the command in the buffer after the command finished. This makes text-based commands behave better. 2012-02-07 Lars Ingebrigtsen <larsi@gnus.org> * message.el (smtpmail-smtp-user): Silence compiler warning. 2012-02-06 Lars Ingebrigtsen <larsi@gnus.org> * message.el (message-multi-smtp-send-mail): Also allow specifying the SMTP user name. 2012-02-06 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-sum.el (gnus-summary-article-map): Fix typo. 2012-02-02 Lars Ingebrigtsen <larsi@gnus.org> * message.el (message-multi-smtp-send-mail): New function. (message-multi-smtp-send-mail): Respect the X-Message-SMTP-Method header to implement multi-SMTP functionality. * gnus-agent.el (gnus-agent-send-mail-function): Removed. (gnus-agentize): Don't set it. (gnus-agent-send-mail): Don't use it. * gnus-sum.el (gnus-summary-widget-backward): New function and keystroke. * shr.el (shr-put-image): Remove underlines from sliced images. (shr-zoom-image): Compute the region to be replaced more correctly. 2012-02-02 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-msg.el (gnus-gcc-self-resent-messages): New user option. (gnus-summary-resend-message-insert-gcc): New function. (gnus-summary-resend-message): Modify message-header-setup-hook and message-sent-hook to make it work for Gcc. (gnus-inews-do-gcc): Update the number of unread articles of groups that messages are Gcc'd to. * message.el (message-resend): Run message-sent-hook to do Gcc. 2012-02-01 Lars Ingebrigtsen <larsi@gnus.org> * gnus-registry.el (gnus-registry-fixup-registry): Move the message to a higher level to silence compilation. * gnus-art.el (gnus-shr-put-image): Take and pass on a `flags' parameter to allow controlling the scaling. * shr.el (shr-zoom-image): New command and keystroke. (shr-put-image): Take a `size' flag to say how to scale the image. * mm-archive.el (mm-dissect-archive): Use it to get all file names. Use recursive deletion. (mm-dissect-archive): Add support for zip files. * gnus-util.el (gnus-recursive-directory-files): New function. * mm-archive.el (mm-archive-list-files): Inline text and image parts. (mm-archive-decoders): Add tgz support. * mm-decode.el (mm-shr): Make sure that the HTML ends with a newline. Otherwise inserting text into the Gnus buffer can look odd. * gnus-art.el (gnus-mime-inline-part): Slight clean-up. * mm-archive.el (mm-archive-decoders): Add support for tar. * gnus.el (gnus-logo-color-alist): Change the colours for Ma Gnus. * nnmail.el (nnmail-extra-headers): Add Cc to the default. 2012-01-31 Lars Ingebrigtsen <larsi@gnus.org> * mm-decode.el (mm-dissect-singlepart): Check that the decoder exists. * mm-archive.el: New file. * mm-decode.el (mm-dissect-singlepart): Use it to decode ms-tnef files. * mm-util.el (mm-find-buffer-file-coding-system): Comment fix. * message.el (message-goto-*): Make all the `message-goto-*' commands push the mark before moving point. This makes it easier to go back to where you came from after editing whatever you jumped to. 2012-01-07 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el (gnus-sync-newsrc-groups): Quote normally. (gnus-sync-lesync-pre-save-group-entry): Remove invalid invlists. (gnus-sync-lesync-normalize-group-entry): Ignore a few more keys. 2011-11-09 Teodor Zlatanov <tzz@lifelogs.com> * spam.el: Move BBDB autoloads. (spam-exists-in-BBDB-p): New function to do the BBDB search directly in BBDB 2 and 3. (spam-check-BBDB): Use it. (spam-enter-ham-BBDB): Use it. 2011-10-31 Peter Munster <pmrb@free.fr> (tiny change) * gnus-group.el (gnus-group-get-new-news): New parameter `one-level' for scanning exactly one level. * gnus-start.el (gnus-get-unread-articles): Ditto. 2011-11-03 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: More commentary about setup. 2011-11-02 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: More commentary about `gnus-sync-read' issues. 2011-10-31 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: Improve docs about CouchDB admins. 2011-10-29 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el (gnus-sync-lesync-setup): Fix salt when user setup is not needed. Provide xmlplistread list function to produce XML plist output for non-Gnus LeSync clients. 2011-10-27 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: Add LeSync synchronization backend and logic to read and save against it. Group subscriptions, read marks, other marks, subscription levels, topic names, and topic offsets (the group's position within the topic) are saved. This is an experimental backend and may change significantly. Load json.el from the gnus-fallback-lib if it's not available otherwise. (gnus-sync-save): Don't use `apply-partially' because of XEmacs. 2011-04-20 David Engster <dengste@eml.cc> * tests/gnustest-nntp.el: New file for simple NNTP testing.
2012-06-26 22:52:31 +00:00
(defun gnus-select-group-with-message-id (group message-id)
"Activate and select GROUP with the given MESSAGE-ID selected.
Returns the article number of the message.
If GROUP is not already selected, the message will be the only one in
the group's summary.
"
;; TODO: is there a way to know at this point whether the group will
;; be newly-selected? If so we could clean up the logic at the end
;;
;; save the new group's display parameter, if any, so we
;; can replace it temporarily with zero.
(let ((saved-display
(gnus-group-get-parameter group 'display :allow-list)))
Prefer directed to neutral quotes Prefer directed to neutral quotes in docstings and diagnostics. In docstrings, escape apostrophes that would otherwise be translated to curved quotes using the newer, simpler rules. * admin/unidata/unidata-gen.el (unidata-gen-table): * lisp/align.el (align-region): * lisp/allout.el (allout-mode, allout-solicit-alternate-bullet): * lisp/bookmark.el (bookmark-default-annotation-text): * lisp/calc/calc-aent.el (math-read-if, math-read-factor): * lisp/calc/calc-lang.el (math-read-giac-subscr) (math-read-math-subscr): * lisp/calc/calc-misc.el (report-calc-bug): * lisp/calc/calc-prog.el (calc-fix-token-name) (calc-read-parse-table-part): * lisp/cedet/ede/pmake.el (ede-proj-makefile-insert-dist-rules): * lisp/cedet/semantic/complete.el (semantic-displayor-show-request): * lisp/dabbrev.el (dabbrev-expand): * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): * lisp/emacs-lisp/elint.el (elint-get-top-forms): * lisp/emacs-lisp/lisp-mnt.el (lm-verify): * lisp/emulation/viper-cmd.el (viper-toggle-search-style): * lisp/erc/erc-button.el (erc-nick-popup): * lisp/erc/erc.el (erc-cmd-LOAD, erc-handle-login): * lisp/eshell/em-dirs.el (eshell/cd): * lisp/eshell/em-glob.el (eshell-glob-regexp): * lisp/eshell/em-pred.el (eshell-parse-modifiers): * lisp/eshell/esh-arg.el (eshell-parse-arguments): * lisp/eshell/esh-opt.el (eshell-show-usage): * lisp/files-x.el (modify-file-local-variable): * lisp/filesets.el (filesets-add-buffer, filesets-remove-buffer) (filesets-update-pre010505): * lisp/find-cmd.el (find-generic, find-to-string): * lisp/gnus/auth-source.el (auth-source-netrc-parse-entries): * lisp/gnus/gnus-agent.el (gnus-agent-check-overview-buffer) (gnus-agent-fetch-headers): * lisp/gnus/gnus-int.el (gnus-start-news-server): * lisp/gnus/gnus-registry.el: (gnus-registry--split-fancy-with-parent-internal): * lisp/gnus/gnus-score.el (gnus-summary-increase-score): * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): * lisp/gnus/gnus-topic.el (gnus-topic-rename): * lisp/gnus/legacy-gnus-agent.el (gnus-agent-unlist-expire-days): * lisp/gnus/nnmairix.el (nnmairix-widget-create-query): * lisp/gnus/spam.el (spam-check-blackholes): * lisp/mail/feedmail.el (feedmail-run-the-queue): * lisp/mpc.el (mpc-playlist-rename): * lisp/net/ange-ftp.el (ange-ftp-shell-command): * lisp/net/mairix.el (mairix-widget-create-query): * lisp/net/tramp-cache.el: * lisp/obsolete/otodo-mode.el (todo-more-important-p): * lisp/obsolete/pgg-gpg.el (pgg-gpg-process-region): * lisp/obsolete/pgg-pgp.el (pgg-pgp-process-region): * lisp/obsolete/pgg-pgp5.el (pgg-pgp5-process-region): * lisp/org/ob-core.el (org-babel-goto-named-src-block) (org-babel-goto-named-result): * lisp/org/ob-fortran.el (org-babel-fortran-ensure-main-wrap): * lisp/org/ob-ref.el (org-babel-ref-resolve): * lisp/org/org-agenda.el (org-agenda-prepare): * lisp/org/org-bibtex.el (org-bibtex-fields): * lisp/org/org-clock.el (org-clock-notify-once-if-expired) (org-clock-resolve): * lisp/org/org-feed.el (org-feed-parse-atom-entry): * lisp/org/org-habit.el (org-habit-parse-todo): * lisp/org/org-mouse.el (org-mouse-popup-global-menu) (org-mouse-context-menu): * lisp/org/org-table.el (org-table-edit-formulas): * lisp/org/ox.el (org-export-async-start): * lisp/play/dunnet.el (dun-score, dun-help, dun-endgame-question) (dun-rooms, dun-endgame-questions): * lisp/progmodes/ada-mode.el (ada-goto-matching-start): * lisp/progmodes/ada-xref.el (ada-find-executable): * lisp/progmodes/antlr-mode.el (antlr-options-alists): * lisp/progmodes/flymake.el (flymake-parse-err-lines) (flymake-start-syntax-check-process): * lisp/progmodes/python.el (python-define-auxiliary-skeleton): * lisp/progmodes/sql.el (sql-comint): * lisp/progmodes/verilog-mode.el (verilog-load-file-at-point): * lisp/server.el (server-get-auth-key): * lisp/subr.el (version-to-list): * lisp/textmodes/reftex-ref.el (reftex-label): * lisp/textmodes/reftex-toc.el (reftex-toc-rename-label): * lisp/vc/ediff-diff.el (ediff-same-contents): * lisp/vc/vc-cvs.el (vc-cvs-mode-line-string): * test/automated/tramp-tests.el (tramp-test33-asynchronous-requests): Use directed rather than neutral quotes in diagnostics.
2015-08-24 23:39:33 -07:00
;; Tell gnus we really don't want any articles
Merge changes made in Gnus master ever since feature freeze ::::::::::::::::: ::: doc/misc/ ::: ::::::::::::::::: 2012-06-11 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus.texi (POP before SMTP): POP-before-SMTP works with all sending methods, so don't mention smtpmail here. 2012-05-04 Wolfgang Jenkner <wjenkner@inode.at> * gnus.texi (Picons): Document gnus-picon-properties. 2012-06-10 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus.texi: Remove mention of compilation, as that's no longer supported. 2012-03-14 Christopher Schmidt <christopher@ch.ristopher.com> * gnus.texi (Archived Messages): Mention gnus-gcc-pre-body-encode-hook and gnus-gcc-post-body-encode-hook. 2012-02-16 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi (Various Summary Stuff): Remove mention of `gnus-propagate-marks'. 2012-02-15 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi: Remove mentions of nnml/nnfolder/nntp backend marks, which no longer exist. 2012-02-08 Katsumi Yamaoka <yamaoka@jpl.org> * gnus.texi (Archived Messages): Document gnus-gcc-self-resent-messages. 2012-02-06 Lars Ingebrigtsen <larsi@gnus.org> * message.texi (Mail Variables): Mention the optional user parameter for X-Message-SMTP-Method. 2012-02-02 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi (Posting Styles): Mention X-Message-SMTP-Method. * message.texi (Mail Variables): Document X-Message-SMTP-Method. 2012-01-31 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi (Key Index): Change encoding to utf-8. :::::::::::::::::: ::: lisp/gnus/ ::: :::::::::::::::::: 2012-06-26 Katsumi Yamaoka <yamaoka@jpl.org> * mm-decode.el: Add coding cookie for a soft hyphen that mm-shr uses. 2012-06-11 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus-art.el (gnus-article-read-summary-keys): Protect against the key being bound to a lambda form. 2012-05-04 Wolfgang Jenkner <wjenkner@inode.at> * gnus-picon.el (gnus-picon-properties): New defcustom. (gnus-picon-create-glyph): Use it. 2012-06-10 Lars Magne Ingebrigtsen <larsi@gnus.org> * shr.el: Add a iso-8859-1 cookie to make stuff work under other locales. * mm-decode.el (mm-display-part): Dissect archives when hitting `RET' on a handle. * gnus-sum.el (gnus-summary-limit-to-author): Use the current From address as the default. * nnfolder.el (nnfolder-save-buffer): Delete old versions silently. It makes no sense to query the user about internal files. * gnus-spec.el: Remove all the byte-compilation stuff, since benchmarking shows that it doesn't help when entering large summary buffers. * gnus-util.el (gnus-byte-code): Remove. * gnus-spec.el (gnus-update-format-specifications): Remove outdated grouplens stuff. 2012-06-07 Stephen Eglen <S.J.Eglen@damtp.cam.ac.uk> * message.el (message-buffers): Return all buffers derived from Message to make `gnus-dired-attach' work with mu4e. 2012-05-28 Daiki Ueno <ueno@unixuser.org> * mm-decode.el (mm-inhibit-auto-detect-attachment): New variable. (mm-dissect-singlepart): Don't guess the MIME type of application/octet-stream parts if mm-inhibit-auto-detect-attachment is set. (mm-dissect-multipart): Bind mm-inhibit-auto-detect-attachment if the toplevel MIME type is multipart/encrypted. 2011-12-02 Wolfgang Jenkner <wjenkner@inode.at> * gnus-agent.el (gnus-agent-save-active): Deal with the "groups" format. In particular, add an optional argument and a docstring. * gnus-start.el (gnus-groups-to-gnus-format): Use it. * nntp.el (nntp-finish-retrieve-group-infos): Make `nntp-server-buffer' current before calling `gnus-groups-to-gnus-format'. Note that this was already the case for `gnus-active-to-gnus-format'. 2012-04-25 Katsumi Yamaoka <yamaoka@jpl.org> * pop3.el (pop3-wait-for-messages): Fix retrieved data size calculation. 2012-04-12 Lars Magne Ingebrigtsen <larsi@gnus.org> * mm-decode.el (mm-dissect-buffer): Doc fix. * gnus-sum.el (gnus-handle-ephemeral-exit): Avoid creating the group buffer if it doesn't exist. * gnus-group.el (gnus-group-read-ephemeral-group): If no quit-config is given, mark the group as ephemeral with the current window conf. * gnus-sum.el (gnus-set-global-variables): Don't assume that the group buffer exists, which it doesn't if we haven't started Gnus. (gnus-summary-exit): Allow quitting when we don't have a group buffer. 2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org> * mml.el (mml-generate-mime): Allow specifying what the top-level part type is. * gnus-sum.el (gnus-auto-center-summary): `scroll-margin' isn't defined on XEmacs. 2012-04-10 Philipp Haselwarter <philipp.haselwarter@gmx.de> (tiny change) * gnus-sum.el (gnus-auto-center-summary): Set default to respect `scroll-margin'. 2012-04-10 Elias Oltmanns <eo@nebensachen.de> (tiny change) * gnus-cite.el (gnus-dissect-cited-text): A single line without citation prefix within a block of cited text should be considered part of that block *only* if it is a blank line. 2012-04-02 Katsumi Yamaoka <yamaoka@jpl.org> * shr.el (shr-find-fill-point): Remove unused code; don't break a line before kinsoku-bol characters nor within kinsoku-eol characters. 2012-03-27 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-sync.el (gnus-topic-alist, gnus-group-topic) (gnus-topic-create-topic, gnus-topic-enter-dribble): Silence compiler. (gnus-sync-read): Use mapc instead of mapcar. * mm-archive.el: Require mm-decode for some macros. (gnus-recursive-directory-files, mailcap-extension-to-mime): Silence the byte compiler. (mm-archive-decoders): New function that returns the value of the mm-archive-decoders variable. * mm-decode.el: Don't require mm-archive; autoload mm-archive functions instead. (mm-dissect-singlepart): Use the function mm-archive-decoders. * nnmail.el (mail-send-and-exit): Silence the byte compiler. 2012-03-12 Peter Munster <pmrb@free.fr> * gnus-demon.el (gnus-demon-timers): Now a plist (function -> timer). (gnus-demon-cancel): Ditto. (gnus-demon-run-callback): When function cannot be called due to low idleness, call it when idleness reaches the expected value, instead of waiting another timer period. (gnus-demon-init): Add `time' to arguments of call-back. 2012-03-22 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus.el: Register gnus-registry functions. * gnus-registry.el (gnus-try-warping-via-registry): Moved here and indent. * gnus-int.el (gnus-warp-to-article): Check whether the registry is enabled before warping. 2012-03-22 Dave Abrahams <dave@boostpro.com> * gnus-sum.el (gnus-summary-insert-subject): Record information in the registry about each article retrieved. * gnus-int.el (gnus-select-group-with-message-id): New function. (gnus-try-warping-via-registry): Ditto. (gnus-warp-to-article): Fall back on the registry. 2012-03-22 Lars Magne Ingebrigtsen <larsi@gnus.org> * nnimap.el (nnimap-fetch-partial-articles): Minor doc string fixup. 2012-03-22 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-msg.el (gnus-summary-resend-message-insert-gcc): Assume that gnus-gcc-self-resent-messages may be a group parameter. (gnus-summary-resend-message): Don't encode encoded words in header when Gcc'ing resent message. 2012-03-19 Lars Magne Ingebrigtsen <larsi@gnus.org> * shr.el (shr-insert): Treat non-breaking space just like normal space. This seems to produce more pleasing results. (shr-insert): Only insert a blank line if we're starting from an image. (shr-tag-br): Allow <br> to end lines or to make a single blank line. (shr-ensure-paragraph): Consider lines with white space to be blank. 2012-03-14 Christopher Schmidt <christopher@ch.ristopher.com> * gnus-msg.el (gnus-inews-do-gcc): Add gnus-gcc-pre-body-encode-hook and gnus-gcc-post-body-encode-hook. 2012-02-16 Lars Ingebrigtsen <larsi@gnus.org> * mm-decode.el (mm-dissect-singlepart): Guess what the type of application/octet-stream parts really is. * gnus-sum.el (gnus-propagate-marks): Remove. 2012-02-15 Lars Ingebrigtsen <larsi@gnus.org> * nntp.el (nntp-coding-system-for-read): Remove. (nntp-coding-system-for-write): Ditto. (nntp-open-connection): Just use `binary' directly. 2012-02-14 Teodor Zlatanov <tzz@lifelogs.com> * registry.el (registry-usage-test, registry-persistence-test): Move to tests/gnustest-registry.el. (registry-make-testable-db, registry-match-test) (registry-instantiation-test): Move to tests/gnustest-registry.el. * gnus-registry.el (gnus-registry-misc-test) (gnus-registry-usage-test): Move to tests/gnustest-registry.el. * tests/gnustest-registry.el: New file with the registry and gnus-registry ERT tests. 2012-02-13 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-msg.el (gnus-summary-resend-message): Make gnus-summary-resend-message-insert-gcc be last item in message-header-setup-hook. 2012-02-13 Lars Ingebrigtsen <larsi@gnus.org> * nnfolder.el (nnfolder-marks-directory, nnfolder-marks-is-evil) (nnfolder-marks, nnfolder-marks-file-suffix) (nnfolder-marks-modtime): Remove. (nnfolder-open-server): Don't use marks. (nnfolder-request-delete-group): Ditto. (nnfolder-request-rename-group): Ditto. (nnfolder-request-set-mark, nnfolder-request-marks) (nnfolder-group-marks-pathname, nnfolder-marks-changed-p) (nnfolder-save-marks, nnfolder-open-marks): Remove. * nnml.el (nnml-marks-is-evil, nnml-marks-file-name, nnml-marks) (nnml-marks-modtime): Remove. (nnml-request-delete-group): Don't use marks. (nnml-request-rename-group): Ditto. (nnml-request-set-mark, nnml-request-marks, nnml-marks-changed-p) (nnml-save-marks, nnml-open-marks): Remove. * nntp.el (nntp-marks-is-evil, nntp-marks-file-name, nntp-marks) (nntp-marks-modtime, nntp-marks-directory, nntp-request-set-mark) (nntp-request-marks, nntp-marks-directory, nntp-marks-changed-p) (nntp-save-marks, nntp-open-marks, nntp-possibly-create-directory) (nntp-server-to-method-cache): Remove. * shr.el (shr-rescale-image): Fix wrong merge. 2012-02-15 Lars Ingebrigtsen <larsi@gnus.org> * shr.el (shr-remove-trailing-whitespace): Really delete the padding on too-wide lines. 2012-02-09 Lars Ingebrigtsen <larsi@gnus.org> * mm-archive.el (mm-archive-dissect-and-inline): New function. (mm-archive-dissect-and-inline): Fix up the undisplayer. * mm-decode.el (mm-display-external): Output the text from the command in the buffer after the command finished. This makes text-based commands behave better. 2012-02-07 Lars Ingebrigtsen <larsi@gnus.org> * message.el (smtpmail-smtp-user): Silence compiler warning. 2012-02-06 Lars Ingebrigtsen <larsi@gnus.org> * message.el (message-multi-smtp-send-mail): Also allow specifying the SMTP user name. 2012-02-06 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-sum.el (gnus-summary-article-map): Fix typo. 2012-02-02 Lars Ingebrigtsen <larsi@gnus.org> * message.el (message-multi-smtp-send-mail): New function. (message-multi-smtp-send-mail): Respect the X-Message-SMTP-Method header to implement multi-SMTP functionality. * gnus-agent.el (gnus-agent-send-mail-function): Removed. (gnus-agentize): Don't set it. (gnus-agent-send-mail): Don't use it. * gnus-sum.el (gnus-summary-widget-backward): New function and keystroke. * shr.el (shr-put-image): Remove underlines from sliced images. (shr-zoom-image): Compute the region to be replaced more correctly. 2012-02-02 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-msg.el (gnus-gcc-self-resent-messages): New user option. (gnus-summary-resend-message-insert-gcc): New function. (gnus-summary-resend-message): Modify message-header-setup-hook and message-sent-hook to make it work for Gcc. (gnus-inews-do-gcc): Update the number of unread articles of groups that messages are Gcc'd to. * message.el (message-resend): Run message-sent-hook to do Gcc. 2012-02-01 Lars Ingebrigtsen <larsi@gnus.org> * gnus-registry.el (gnus-registry-fixup-registry): Move the message to a higher level to silence compilation. * gnus-art.el (gnus-shr-put-image): Take and pass on a `flags' parameter to allow controlling the scaling. * shr.el (shr-zoom-image): New command and keystroke. (shr-put-image): Take a `size' flag to say how to scale the image. * mm-archive.el (mm-dissect-archive): Use it to get all file names. Use recursive deletion. (mm-dissect-archive): Add support for zip files. * gnus-util.el (gnus-recursive-directory-files): New function. * mm-archive.el (mm-archive-list-files): Inline text and image parts. (mm-archive-decoders): Add tgz support. * mm-decode.el (mm-shr): Make sure that the HTML ends with a newline. Otherwise inserting text into the Gnus buffer can look odd. * gnus-art.el (gnus-mime-inline-part): Slight clean-up. * mm-archive.el (mm-archive-decoders): Add support for tar. * gnus.el (gnus-logo-color-alist): Change the colours for Ma Gnus. * nnmail.el (nnmail-extra-headers): Add Cc to the default. 2012-01-31 Lars Ingebrigtsen <larsi@gnus.org> * mm-decode.el (mm-dissect-singlepart): Check that the decoder exists. * mm-archive.el: New file. * mm-decode.el (mm-dissect-singlepart): Use it to decode ms-tnef files. * mm-util.el (mm-find-buffer-file-coding-system): Comment fix. * message.el (message-goto-*): Make all the `message-goto-*' commands push the mark before moving point. This makes it easier to go back to where you came from after editing whatever you jumped to. 2012-01-07 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el (gnus-sync-newsrc-groups): Quote normally. (gnus-sync-lesync-pre-save-group-entry): Remove invalid invlists. (gnus-sync-lesync-normalize-group-entry): Ignore a few more keys. 2011-11-09 Teodor Zlatanov <tzz@lifelogs.com> * spam.el: Move BBDB autoloads. (spam-exists-in-BBDB-p): New function to do the BBDB search directly in BBDB 2 and 3. (spam-check-BBDB): Use it. (spam-enter-ham-BBDB): Use it. 2011-10-31 Peter Munster <pmrb@free.fr> (tiny change) * gnus-group.el (gnus-group-get-new-news): New parameter `one-level' for scanning exactly one level. * gnus-start.el (gnus-get-unread-articles): Ditto. 2011-11-03 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: More commentary about setup. 2011-11-02 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: More commentary about `gnus-sync-read' issues. 2011-10-31 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: Improve docs about CouchDB admins. 2011-10-29 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el (gnus-sync-lesync-setup): Fix salt when user setup is not needed. Provide xmlplistread list function to produce XML plist output for non-Gnus LeSync clients. 2011-10-27 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: Add LeSync synchronization backend and logic to read and save against it. Group subscriptions, read marks, other marks, subscription levels, topic names, and topic offsets (the group's position within the topic) are saved. This is an experimental backend and may change significantly. Load json.el from the gnus-fallback-lib if it's not available otherwise. (gnus-sync-save): Don't use `apply-partially' because of XEmacs. 2011-04-20 David Engster <dengste@eml.cc> * tests/gnustest-nntp.el: New file for simple NNTP testing.
2012-06-26 22:52:31 +00:00
(gnus-group-set-parameter group 'display 0)
(unwind-protect
(gnus-summary-read-group-1
group (not :show-all) :no-article (not :kill-buffer)
;; The combination of no-display and this dummy list of
;; articles to select somehow makes it possible to open a
;; group with no articles in it. Black magic.
:no-display '(-1); select-articles
)
;; Restore the new group's display parameter
(gnus-group-set-parameter group 'display saved-display)))
;; The summary buffer was suppressed by :no-display above.
;; Create it now and insert the message
(let ((group-is-new (gnus-summary-setup-buffer group)))
(condition-case err
Prefer directed to neutral quotes Prefer directed to neutral quotes in docstings and diagnostics. In docstrings, escape apostrophes that would otherwise be translated to curved quotes using the newer, simpler rules. * admin/unidata/unidata-gen.el (unidata-gen-table): * lisp/align.el (align-region): * lisp/allout.el (allout-mode, allout-solicit-alternate-bullet): * lisp/bookmark.el (bookmark-default-annotation-text): * lisp/calc/calc-aent.el (math-read-if, math-read-factor): * lisp/calc/calc-lang.el (math-read-giac-subscr) (math-read-math-subscr): * lisp/calc/calc-misc.el (report-calc-bug): * lisp/calc/calc-prog.el (calc-fix-token-name) (calc-read-parse-table-part): * lisp/cedet/ede/pmake.el (ede-proj-makefile-insert-dist-rules): * lisp/cedet/semantic/complete.el (semantic-displayor-show-request): * lisp/dabbrev.el (dabbrev-expand): * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): * lisp/emacs-lisp/elint.el (elint-get-top-forms): * lisp/emacs-lisp/lisp-mnt.el (lm-verify): * lisp/emulation/viper-cmd.el (viper-toggle-search-style): * lisp/erc/erc-button.el (erc-nick-popup): * lisp/erc/erc.el (erc-cmd-LOAD, erc-handle-login): * lisp/eshell/em-dirs.el (eshell/cd): * lisp/eshell/em-glob.el (eshell-glob-regexp): * lisp/eshell/em-pred.el (eshell-parse-modifiers): * lisp/eshell/esh-arg.el (eshell-parse-arguments): * lisp/eshell/esh-opt.el (eshell-show-usage): * lisp/files-x.el (modify-file-local-variable): * lisp/filesets.el (filesets-add-buffer, filesets-remove-buffer) (filesets-update-pre010505): * lisp/find-cmd.el (find-generic, find-to-string): * lisp/gnus/auth-source.el (auth-source-netrc-parse-entries): * lisp/gnus/gnus-agent.el (gnus-agent-check-overview-buffer) (gnus-agent-fetch-headers): * lisp/gnus/gnus-int.el (gnus-start-news-server): * lisp/gnus/gnus-registry.el: (gnus-registry--split-fancy-with-parent-internal): * lisp/gnus/gnus-score.el (gnus-summary-increase-score): * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): * lisp/gnus/gnus-topic.el (gnus-topic-rename): * lisp/gnus/legacy-gnus-agent.el (gnus-agent-unlist-expire-days): * lisp/gnus/nnmairix.el (nnmairix-widget-create-query): * lisp/gnus/spam.el (spam-check-blackholes): * lisp/mail/feedmail.el (feedmail-run-the-queue): * lisp/mpc.el (mpc-playlist-rename): * lisp/net/ange-ftp.el (ange-ftp-shell-command): * lisp/net/mairix.el (mairix-widget-create-query): * lisp/net/tramp-cache.el: * lisp/obsolete/otodo-mode.el (todo-more-important-p): * lisp/obsolete/pgg-gpg.el (pgg-gpg-process-region): * lisp/obsolete/pgg-pgp.el (pgg-pgp-process-region): * lisp/obsolete/pgg-pgp5.el (pgg-pgp5-process-region): * lisp/org/ob-core.el (org-babel-goto-named-src-block) (org-babel-goto-named-result): * lisp/org/ob-fortran.el (org-babel-fortran-ensure-main-wrap): * lisp/org/ob-ref.el (org-babel-ref-resolve): * lisp/org/org-agenda.el (org-agenda-prepare): * lisp/org/org-bibtex.el (org-bibtex-fields): * lisp/org/org-clock.el (org-clock-notify-once-if-expired) (org-clock-resolve): * lisp/org/org-feed.el (org-feed-parse-atom-entry): * lisp/org/org-habit.el (org-habit-parse-todo): * lisp/org/org-mouse.el (org-mouse-popup-global-menu) (org-mouse-context-menu): * lisp/org/org-table.el (org-table-edit-formulas): * lisp/org/ox.el (org-export-async-start): * lisp/play/dunnet.el (dun-score, dun-help, dun-endgame-question) (dun-rooms, dun-endgame-questions): * lisp/progmodes/ada-mode.el (ada-goto-matching-start): * lisp/progmodes/ada-xref.el (ada-find-executable): * lisp/progmodes/antlr-mode.el (antlr-options-alists): * lisp/progmodes/flymake.el (flymake-parse-err-lines) (flymake-start-syntax-check-process): * lisp/progmodes/python.el (python-define-auxiliary-skeleton): * lisp/progmodes/sql.el (sql-comint): * lisp/progmodes/verilog-mode.el (verilog-load-file-at-point): * lisp/server.el (server-get-auth-key): * lisp/subr.el (version-to-list): * lisp/textmodes/reftex-ref.el (reftex-label): * lisp/textmodes/reftex-toc.el (reftex-toc-rename-label): * lisp/vc/ediff-diff.el (ediff-same-contents): * lisp/vc/vc-cvs.el (vc-cvs-mode-line-string): * test/automated/tramp-tests.el (tramp-test33-asynchronous-requests): Use directed rather than neutral quotes in diagnostics.
2015-08-24 23:39:33 -07:00
(let ((article-number
Merge changes made in Gnus master ever since feature freeze ::::::::::::::::: ::: doc/misc/ ::: ::::::::::::::::: 2012-06-11 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus.texi (POP before SMTP): POP-before-SMTP works with all sending methods, so don't mention smtpmail here. 2012-05-04 Wolfgang Jenkner <wjenkner@inode.at> * gnus.texi (Picons): Document gnus-picon-properties. 2012-06-10 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus.texi: Remove mention of compilation, as that's no longer supported. 2012-03-14 Christopher Schmidt <christopher@ch.ristopher.com> * gnus.texi (Archived Messages): Mention gnus-gcc-pre-body-encode-hook and gnus-gcc-post-body-encode-hook. 2012-02-16 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi (Various Summary Stuff): Remove mention of `gnus-propagate-marks'. 2012-02-15 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi: Remove mentions of nnml/nnfolder/nntp backend marks, which no longer exist. 2012-02-08 Katsumi Yamaoka <yamaoka@jpl.org> * gnus.texi (Archived Messages): Document gnus-gcc-self-resent-messages. 2012-02-06 Lars Ingebrigtsen <larsi@gnus.org> * message.texi (Mail Variables): Mention the optional user parameter for X-Message-SMTP-Method. 2012-02-02 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi (Posting Styles): Mention X-Message-SMTP-Method. * message.texi (Mail Variables): Document X-Message-SMTP-Method. 2012-01-31 Lars Ingebrigtsen <larsi@gnus.org> * gnus.texi (Key Index): Change encoding to utf-8. :::::::::::::::::: ::: lisp/gnus/ ::: :::::::::::::::::: 2012-06-26 Katsumi Yamaoka <yamaoka@jpl.org> * mm-decode.el: Add coding cookie for a soft hyphen that mm-shr uses. 2012-06-11 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus-art.el (gnus-article-read-summary-keys): Protect against the key being bound to a lambda form. 2012-05-04 Wolfgang Jenkner <wjenkner@inode.at> * gnus-picon.el (gnus-picon-properties): New defcustom. (gnus-picon-create-glyph): Use it. 2012-06-10 Lars Magne Ingebrigtsen <larsi@gnus.org> * shr.el: Add a iso-8859-1 cookie to make stuff work under other locales. * mm-decode.el (mm-display-part): Dissect archives when hitting `RET' on a handle. * gnus-sum.el (gnus-summary-limit-to-author): Use the current From address as the default. * nnfolder.el (nnfolder-save-buffer): Delete old versions silently. It makes no sense to query the user about internal files. * gnus-spec.el: Remove all the byte-compilation stuff, since benchmarking shows that it doesn't help when entering large summary buffers. * gnus-util.el (gnus-byte-code): Remove. * gnus-spec.el (gnus-update-format-specifications): Remove outdated grouplens stuff. 2012-06-07 Stephen Eglen <S.J.Eglen@damtp.cam.ac.uk> * message.el (message-buffers): Return all buffers derived from Message to make `gnus-dired-attach' work with mu4e. 2012-05-28 Daiki Ueno <ueno@unixuser.org> * mm-decode.el (mm-inhibit-auto-detect-attachment): New variable. (mm-dissect-singlepart): Don't guess the MIME type of application/octet-stream parts if mm-inhibit-auto-detect-attachment is set. (mm-dissect-multipart): Bind mm-inhibit-auto-detect-attachment if the toplevel MIME type is multipart/encrypted. 2011-12-02 Wolfgang Jenkner <wjenkner@inode.at> * gnus-agent.el (gnus-agent-save-active): Deal with the "groups" format. In particular, add an optional argument and a docstring. * gnus-start.el (gnus-groups-to-gnus-format): Use it. * nntp.el (nntp-finish-retrieve-group-infos): Make `nntp-server-buffer' current before calling `gnus-groups-to-gnus-format'. Note that this was already the case for `gnus-active-to-gnus-format'. 2012-04-25 Katsumi Yamaoka <yamaoka@jpl.org> * pop3.el (pop3-wait-for-messages): Fix retrieved data size calculation. 2012-04-12 Lars Magne Ingebrigtsen <larsi@gnus.org> * mm-decode.el (mm-dissect-buffer): Doc fix. * gnus-sum.el (gnus-handle-ephemeral-exit): Avoid creating the group buffer if it doesn't exist. * gnus-group.el (gnus-group-read-ephemeral-group): If no quit-config is given, mark the group as ephemeral with the current window conf. * gnus-sum.el (gnus-set-global-variables): Don't assume that the group buffer exists, which it doesn't if we haven't started Gnus. (gnus-summary-exit): Allow quitting when we don't have a group buffer. 2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org> * mml.el (mml-generate-mime): Allow specifying what the top-level part type is. * gnus-sum.el (gnus-auto-center-summary): `scroll-margin' isn't defined on XEmacs. 2012-04-10 Philipp Haselwarter <philipp.haselwarter@gmx.de> (tiny change) * gnus-sum.el (gnus-auto-center-summary): Set default to respect `scroll-margin'. 2012-04-10 Elias Oltmanns <eo@nebensachen.de> (tiny change) * gnus-cite.el (gnus-dissect-cited-text): A single line without citation prefix within a block of cited text should be considered part of that block *only* if it is a blank line. 2012-04-02 Katsumi Yamaoka <yamaoka@jpl.org> * shr.el (shr-find-fill-point): Remove unused code; don't break a line before kinsoku-bol characters nor within kinsoku-eol characters. 2012-03-27 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-sync.el (gnus-topic-alist, gnus-group-topic) (gnus-topic-create-topic, gnus-topic-enter-dribble): Silence compiler. (gnus-sync-read): Use mapc instead of mapcar. * mm-archive.el: Require mm-decode for some macros. (gnus-recursive-directory-files, mailcap-extension-to-mime): Silence the byte compiler. (mm-archive-decoders): New function that returns the value of the mm-archive-decoders variable. * mm-decode.el: Don't require mm-archive; autoload mm-archive functions instead. (mm-dissect-singlepart): Use the function mm-archive-decoders. * nnmail.el (mail-send-and-exit): Silence the byte compiler. 2012-03-12 Peter Munster <pmrb@free.fr> * gnus-demon.el (gnus-demon-timers): Now a plist (function -> timer). (gnus-demon-cancel): Ditto. (gnus-demon-run-callback): When function cannot be called due to low idleness, call it when idleness reaches the expected value, instead of waiting another timer period. (gnus-demon-init): Add `time' to arguments of call-back. 2012-03-22 Lars Magne Ingebrigtsen <larsi@gnus.org> * gnus.el: Register gnus-registry functions. * gnus-registry.el (gnus-try-warping-via-registry): Moved here and indent. * gnus-int.el (gnus-warp-to-article): Check whether the registry is enabled before warping. 2012-03-22 Dave Abrahams <dave@boostpro.com> * gnus-sum.el (gnus-summary-insert-subject): Record information in the registry about each article retrieved. * gnus-int.el (gnus-select-group-with-message-id): New function. (gnus-try-warping-via-registry): Ditto. (gnus-warp-to-article): Fall back on the registry. 2012-03-22 Lars Magne Ingebrigtsen <larsi@gnus.org> * nnimap.el (nnimap-fetch-partial-articles): Minor doc string fixup. 2012-03-22 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-msg.el (gnus-summary-resend-message-insert-gcc): Assume that gnus-gcc-self-resent-messages may be a group parameter. (gnus-summary-resend-message): Don't encode encoded words in header when Gcc'ing resent message. 2012-03-19 Lars Magne Ingebrigtsen <larsi@gnus.org> * shr.el (shr-insert): Treat non-breaking space just like normal space. This seems to produce more pleasing results. (shr-insert): Only insert a blank line if we're starting from an image. (shr-tag-br): Allow <br> to end lines or to make a single blank line. (shr-ensure-paragraph): Consider lines with white space to be blank. 2012-03-14 Christopher Schmidt <christopher@ch.ristopher.com> * gnus-msg.el (gnus-inews-do-gcc): Add gnus-gcc-pre-body-encode-hook and gnus-gcc-post-body-encode-hook. 2012-02-16 Lars Ingebrigtsen <larsi@gnus.org> * mm-decode.el (mm-dissect-singlepart): Guess what the type of application/octet-stream parts really is. * gnus-sum.el (gnus-propagate-marks): Remove. 2012-02-15 Lars Ingebrigtsen <larsi@gnus.org> * nntp.el (nntp-coding-system-for-read): Remove. (nntp-coding-system-for-write): Ditto. (nntp-open-connection): Just use `binary' directly. 2012-02-14 Teodor Zlatanov <tzz@lifelogs.com> * registry.el (registry-usage-test, registry-persistence-test): Move to tests/gnustest-registry.el. (registry-make-testable-db, registry-match-test) (registry-instantiation-test): Move to tests/gnustest-registry.el. * gnus-registry.el (gnus-registry-misc-test) (gnus-registry-usage-test): Move to tests/gnustest-registry.el. * tests/gnustest-registry.el: New file with the registry and gnus-registry ERT tests. 2012-02-13 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-msg.el (gnus-summary-resend-message): Make gnus-summary-resend-message-insert-gcc be last item in message-header-setup-hook. 2012-02-13 Lars Ingebrigtsen <larsi@gnus.org> * nnfolder.el (nnfolder-marks-directory, nnfolder-marks-is-evil) (nnfolder-marks, nnfolder-marks-file-suffix) (nnfolder-marks-modtime): Remove. (nnfolder-open-server): Don't use marks. (nnfolder-request-delete-group): Ditto. (nnfolder-request-rename-group): Ditto. (nnfolder-request-set-mark, nnfolder-request-marks) (nnfolder-group-marks-pathname, nnfolder-marks-changed-p) (nnfolder-save-marks, nnfolder-open-marks): Remove. * nnml.el (nnml-marks-is-evil, nnml-marks-file-name, nnml-marks) (nnml-marks-modtime): Remove. (nnml-request-delete-group): Don't use marks. (nnml-request-rename-group): Ditto. (nnml-request-set-mark, nnml-request-marks, nnml-marks-changed-p) (nnml-save-marks, nnml-open-marks): Remove. * nntp.el (nntp-marks-is-evil, nntp-marks-file-name, nntp-marks) (nntp-marks-modtime, nntp-marks-directory, nntp-request-set-mark) (nntp-request-marks, nntp-marks-directory, nntp-marks-changed-p) (nntp-save-marks, nntp-open-marks, nntp-possibly-create-directory) (nntp-server-to-method-cache): Remove. * shr.el (shr-rescale-image): Fix wrong merge. 2012-02-15 Lars Ingebrigtsen <larsi@gnus.org> * shr.el (shr-remove-trailing-whitespace): Really delete the padding on too-wide lines. 2012-02-09 Lars Ingebrigtsen <larsi@gnus.org> * mm-archive.el (mm-archive-dissect-and-inline): New function. (mm-archive-dissect-and-inline): Fix up the undisplayer. * mm-decode.el (mm-display-external): Output the text from the command in the buffer after the command finished. This makes text-based commands behave better. 2012-02-07 Lars Ingebrigtsen <larsi@gnus.org> * message.el (smtpmail-smtp-user): Silence compiler warning. 2012-02-06 Lars Ingebrigtsen <larsi@gnus.org> * message.el (message-multi-smtp-send-mail): Also allow specifying the SMTP user name. 2012-02-06 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-sum.el (gnus-summary-article-map): Fix typo. 2012-02-02 Lars Ingebrigtsen <larsi@gnus.org> * message.el (message-multi-smtp-send-mail): New function. (message-multi-smtp-send-mail): Respect the X-Message-SMTP-Method header to implement multi-SMTP functionality. * gnus-agent.el (gnus-agent-send-mail-function): Removed. (gnus-agentize): Don't set it. (gnus-agent-send-mail): Don't use it. * gnus-sum.el (gnus-summary-widget-backward): New function and keystroke. * shr.el (shr-put-image): Remove underlines from sliced images. (shr-zoom-image): Compute the region to be replaced more correctly. 2012-02-02 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-msg.el (gnus-gcc-self-resent-messages): New user option. (gnus-summary-resend-message-insert-gcc): New function. (gnus-summary-resend-message): Modify message-header-setup-hook and message-sent-hook to make it work for Gcc. (gnus-inews-do-gcc): Update the number of unread articles of groups that messages are Gcc'd to. * message.el (message-resend): Run message-sent-hook to do Gcc. 2012-02-01 Lars Ingebrigtsen <larsi@gnus.org> * gnus-registry.el (gnus-registry-fixup-registry): Move the message to a higher level to silence compilation. * gnus-art.el (gnus-shr-put-image): Take and pass on a `flags' parameter to allow controlling the scaling. * shr.el (shr-zoom-image): New command and keystroke. (shr-put-image): Take a `size' flag to say how to scale the image. * mm-archive.el (mm-dissect-archive): Use it to get all file names. Use recursive deletion. (mm-dissect-archive): Add support for zip files. * gnus-util.el (gnus-recursive-directory-files): New function. * mm-archive.el (mm-archive-list-files): Inline text and image parts. (mm-archive-decoders): Add tgz support. * mm-decode.el (mm-shr): Make sure that the HTML ends with a newline. Otherwise inserting text into the Gnus buffer can look odd. * gnus-art.el (gnus-mime-inline-part): Slight clean-up. * mm-archive.el (mm-archive-decoders): Add support for tar. * gnus.el (gnus-logo-color-alist): Change the colours for Ma Gnus. * nnmail.el (nnmail-extra-headers): Add Cc to the default. 2012-01-31 Lars Ingebrigtsen <larsi@gnus.org> * mm-decode.el (mm-dissect-singlepart): Check that the decoder exists. * mm-archive.el: New file. * mm-decode.el (mm-dissect-singlepart): Use it to decode ms-tnef files. * mm-util.el (mm-find-buffer-file-coding-system): Comment fix. * message.el (message-goto-*): Make all the `message-goto-*' commands push the mark before moving point. This makes it easier to go back to where you came from after editing whatever you jumped to. 2012-01-07 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el (gnus-sync-newsrc-groups): Quote normally. (gnus-sync-lesync-pre-save-group-entry): Remove invalid invlists. (gnus-sync-lesync-normalize-group-entry): Ignore a few more keys. 2011-11-09 Teodor Zlatanov <tzz@lifelogs.com> * spam.el: Move BBDB autoloads. (spam-exists-in-BBDB-p): New function to do the BBDB search directly in BBDB 2 and 3. (spam-check-BBDB): Use it. (spam-enter-ham-BBDB): Use it. 2011-10-31 Peter Munster <pmrb@free.fr> (tiny change) * gnus-group.el (gnus-group-get-new-news): New parameter `one-level' for scanning exactly one level. * gnus-start.el (gnus-get-unread-articles): Ditto. 2011-11-03 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: More commentary about setup. 2011-11-02 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: More commentary about `gnus-sync-read' issues. 2011-10-31 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: Improve docs about CouchDB admins. 2011-10-29 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el (gnus-sync-lesync-setup): Fix salt when user setup is not needed. Provide xmlplistread list function to produce XML plist output for non-Gnus LeSync clients. 2011-10-27 Teodor Zlatanov <tzz@lifelogs.com> * gnus-sync.el: Add LeSync synchronization backend and logic to read and save against it. Group subscriptions, read marks, other marks, subscription levels, topic names, and topic offsets (the group's position within the topic) are saved. This is an experimental backend and may change significantly. Load json.el from the gnus-fallback-lib if it's not available otherwise. (gnus-sync-save): Don't use `apply-partially' because of XEmacs. 2011-04-20 David Engster <dengste@eml.cc> * tests/gnustest-nntp.el: New file for simple NNTP testing.
2012-06-26 22:52:31 +00:00
(gnus-summary-insert-subject message-id)))
(unless article-number
(signal 'error "message-id not in group"))
(gnus-summary-select-article nil nil nil article-number)
article-number)
;; Clean up the new summary and propagate the error
(error (when group-is-new (gnus-summary-exit))
(apply 'signal err)))))
(defun gnus-simplify-group-name (group)
"Return the simplest representation of the name of GROUP.
This is the string that Gnus uses to identify the group."
(gnus-group-prefixed-name
(gnus-group-real-name group)
(gnus-group-method group)))
(defun gnus-warp-to-article ()
"Look up the current article in the group where it originated.
This command only makes sense for groups shows articles gathered
from other groups -- for instance, search results and the like."
(interactive)
(let ((gnus-command-method
(gnus-find-method-for-group gnus-newsgroup-name)))
(or
(when (gnus-check-backend-function
'warp-to-article (car gnus-command-method))
(funcall (gnus-get-function gnus-command-method 'warp-to-article)))
(and (bound-and-true-p gnus-registry-enabled)
(gnus-try-warping-via-registry)))))
1997-04-16 22:13:18 +00:00
(defun gnus-request-head (article group)
"Request the head of ARTICLE in GROUP."
1999-02-20 14:05:57 +00:00
(let* ((gnus-command-method (gnus-find-method-for-group group))
(head (gnus-get-function gnus-command-method 'request-head t))
1997-04-16 22:13:18 +00:00
res clean-up)
(cond
;; Check the cache.
((and gnus-use-cache
(numberp article)
(gnus-cache-request-article article group))
(setq res (cons group article)
clean-up t))
;; Check the agent cache.
((gnus-agent-request-article article group)
(setq res (cons group article)
clean-up t))
1997-04-16 22:13:18 +00:00
;; Use `head' function.
((fboundp head)
(setq res (funcall head article
(and (not gnus-override-method) (gnus-group-real-name group))
1999-02-20 14:05:57 +00:00
(nth 1 gnus-command-method))))
1997-04-16 22:13:18 +00:00
;; Use `article' function.
(t
(setq res (gnus-request-article article group)
clean-up t)))
(when clean-up
Merge changes made in Gnus trunk. 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.
2010-09-18 10:02:19 +00:00
(with-current-buffer nntp-server-buffer
1997-04-16 22:13:18 +00:00
(goto-char (point-min))
(when (search-forward "\n\n" nil t)
(delete-region (1- (point)) (point-max)))
(nnheader-fold-continuation-lines)))
res))
(defun gnus-request-body (article group)
"Request the body of ARTICLE in GROUP."
1999-02-20 14:05:57 +00:00
(let* ((gnus-command-method (gnus-find-method-for-group group))
(head (gnus-get-function gnus-command-method 'request-body t))
res clean-up)
(cond
;; Check the cache.
((and gnus-use-cache
(numberp article)
(gnus-cache-request-article article group))
(setq res (cons group article)
clean-up t))
;; Check the agent cache.
((gnus-agent-request-article article group)
(setq res (cons group article)
clean-up t))
1999-02-20 14:05:57 +00:00
;; Use `head' function.
((fboundp head)
(setq res (funcall head article (gnus-group-real-name group)
(nth 1 gnus-command-method))))
;; Use `article' function.
(t
(setq res (gnus-request-article article group)
clean-up t)))
(when clean-up
Merge changes made in Gnus trunk. 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.
2010-09-18 10:02:19 +00:00
(with-current-buffer nntp-server-buffer
1999-02-20 14:05:57 +00:00
(goto-char (point-min))
(when (search-forward "\n\n" nil t)
(delete-region (point-min) (1- (point))))))
res))
1997-04-16 22:13:18 +00:00
1999-02-20 14:05:57 +00:00
(defun gnus-request-post (gnus-command-method)
"Post the current buffer using GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'request-post)
(nth 1 gnus-command-method)))
Merge changes made in Gnus trunk. gnus-group.el (gnus-group-line-format-alist): Have the ?U (unseen) spec inserr "*" if the group isn't active instead of 0. nnimap.el (nnimap-request-create-group): Implement. nnimap.el: Use the IMAP version of utf7-encode throughout. nnimap.el: Implement the nnimap article expunging interface method, and make it more general. gnus-group.el: Put back the nnimap autoloads needed to do the acl stuff. gnus-sum.el (gnus-summary-move-article): When respooling to the same method, this would bug out. nnimap.el (nnimap-request-group): When we have zero articles, return the right data to Gnus. nnimap.el (nnimap-request-expire-articles): Only delete articles immediately if the target is 'delete. nnmail.el (nnmail-expired-article-p): Allow returning the cutoff time for oldness in addition to being a predicate. nnimap.el: Implement nnimap expiry. nnimap.el (nnimap-request-move-article): Request the article before looking at what the Message-ID is. nnimap.el (nnimap-mark-and-expunge-incoming): Wait for the last sequence. gnus-sum.el (gnus-summary-move-article): Use gnus-server-equal to find out whether methods are equal. nnimap.el (nnimap-find-expired-articles): Don't refer to nnml-inhibit-expiry. nnmail.el (nnmail-expired-article-p): Fix typo: time-subtract. gnus-start.el (gnus-get-unread-articles): Fix the prefixed select method in the presence of many similar methods. When we have several similar methods, try to create as few extended methods as possible. gnus-sum.el (gnus-adjust-marked-articles): Hack to avoid adjusting marks for nnimap, which is seldom the right thing to do. gnus-int.el (gnus-open-server): Give a better error message in the "go offline" case. gnus-sum.el (gnus-adjust-marked-articles): Fix another typo. nnml.el (nnml-generate-nov-file): Fix variable name clobbering from previous patch. gnus-start.el (gnus-get-unread-articles): Get the extended method slightly later to avoid double-getting it.
2010-09-21 23:13:46 +00:00
(defun gnus-request-expunge-group (group gnus-command-method)
"Expunge GROUP, which is removing articles that have been marked as deleted."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'request-expunge-group)
(gnus-group-real-name group)
(nth 1 gnus-command-method)))
1999-02-20 14:05:57 +00:00
(defun gnus-request-scan (group gnus-command-method)
"Request a SCAN being performed in GROUP from GNUS-COMMAND-METHOD.
If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned."
(let ((gnus-command-method
(if group (gnus-find-method-for-group group) gnus-command-method))
(gnus-inhibit-demon t)
(mail-source-plugged gnus-plugged))
(when (or gnus-plugged
(not (gnus-agent-method-p gnus-command-method)))
(setq gnus-internal-registry-spool-current-method gnus-command-method)
(funcall (gnus-get-function gnus-command-method 'request-scan)
(and group (gnus-group-real-name group))
(nth 1 gnus-command-method)))))
1999-02-20 14:05:57 +00:00
(defun gnus-request-update-info (info gnus-command-method)
(when (gnus-check-backend-function
'request-update-info (car gnus-command-method))
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'request-update-info)
(gnus-group-real-name (gnus-info-group info)) info
(nth 1 gnus-command-method))))
(defsubst gnus-request-marks (info gnus-command-method)
1999-02-20 14:05:57 +00:00
"Request that GNUS-COMMAND-METHOD update INFO."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(when (gnus-check-backend-function
'request-marks (car gnus-command-method))
(let ((group (gnus-info-group info)))
(and (funcall (gnus-get-function gnus-command-method 'request-marks)
(gnus-group-real-name group)
info (nth 1 gnus-command-method))
;; If the minimum article number is greater than 1, then all
;; smaller article numbers are known not to exist; we'll
;; artificially add those to the 'read range.
(let* ((active (gnus-active group))
(min (car active)))
(when (> min 1)
(let* ((range (if (= min 2) 1 (cons 1 (1- min))))
(read (gnus-info-read info))
(new-read (gnus-range-add read (list range))))
(gnus-info-set-read info new-read)))
info)))))
1997-04-16 22:13:18 +00:00
(defun gnus-request-expire-articles (articles group &optional force)
(let* ((gnus-command-method (gnus-find-method-for-group group))
;; Filter out any negative article numbers; they can't be
;; expired here.
(articles
(delq nil (mapcar (lambda (n) (and (>= n 0) n)) articles)))
Merge Changes made in Gnus trunk. gnus-html.el (gnus-html-get-image-data): Search also for \r\n\r\n to get the start of data. gnus-html.el: Use gnus-html-encode-url to encode URL. gnus-sum.el (gnus-update-marks): Add sanity check to not delete marks outside the active range. gnus.el: Try to keep the server/method cache unique. gnus-html.el (gnus-html-rescale-image): Use window-inside-pixel-edges rather than window-pixel-edges. gnus-html.el (gnus-html-put-image): Stop using markers. gnus-html.el (gnus-html-image-fetched): Search also for \r\n\r\n to get the start of data. nnimap.el: Expunge IMAP groups by default on article deletion. gnus-int.el (gnus-request-expire-articles): Inhibit the daemon, since this command might take a while. nnimap.el (nnimap-request-list): Set the current nnimap group to nil, since EXAMINE changes it on the server. nnmail.el, nnimap.el: Allow nnimap to just delete 'junk messages when splitting. nnimap.el (nnimap-parse-flags): Make IMAP flags parsing much faster by using `read'. nnimap.el (nnimap-make-process-buffer): Record the server name. gnus-html.el (gnus-html-image-fetched): Only cache if gnus-html-image-automatic-caching is set. gnus-html.el (gnus-html-image-fetched): Check for errors. gnus-start.el (gnus-read-active-for-groups): Only run -request-scan once per method on `g'. nnimap.el (nnimap-request-expire-articles): If nnmail-expiry-wait is immediate, then expire all articles. gnus-group.el (gnus-group-get-icon): Compute icon to return. gnus-group.el (gnus-group-icon-list): Fix bad docstring information. nnimap.el (nnimap-update-info): Fix up various off-by-one errors when syncing flags in nnimap. time-date.el (date-to-time): Speed up date-to-time. gnus-start.el (gnus-get-unread-articles): Don't have `gnus-get-unread-articles-in-group' update info. gnus-group.el: Remove gnus-group-highlight-line from the default hook list. gnus-group.el (gnus-group-highlight-line): Typo fix: beg, not start. gnus-group.el (gnus-group-insert-group-line): Pass the real group name so that it gets the right data. gnus-int.el (gnus-open-server): Add tracing for performance debugging. nnimap.el (nnimap-parse-flags): Parse the data in any order. nnimap.el (nnimap-update-info): Fix up code slightly.
2010-09-23 00:30:37 +00:00
(gnus-inhibit-demon t)
(not-deleted
(funcall
(gnus-get-function gnus-command-method 'request-expire-articles)
articles (gnus-group-real-name group) (nth 1 gnus-command-method)
force)))
(when (and gnus-agent
(gnus-agent-method-p gnus-command-method))
(let ((expired-articles (gnus-sorted-difference articles not-deleted)))
(when expired-articles
(gnus-agent-expire expired-articles group 'force))))
not-deleted))
(defun gnus-request-move-article (article group server accept-function
&optional last move-is-internal)
(let* ((gnus-command-method (gnus-find-method-for-group group))
(result (funcall (gnus-get-function gnus-command-method
'request-move-article)
article (gnus-group-real-name group)
(nth 1 gnus-command-method) accept-function
last move-is-internal)))
(when (and result gnus-agent
(gnus-agent-method-p gnus-command-method))
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-628 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-55 Update from CVS 2004-10-19 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Search for dummy marks in the right way. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/nnagent.el (nnagent-request-type): Bind gnus-agent to nil to avoid infinite recursion via gnus-get-function. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): When necessary, pass full group name to gnus-request-set-marks. (gnus-agent-synchronize-group-flags): Added support for sync'ing tick marks. (gnus-agent-synchronize-flags-server): Be silent when writing file. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced gnus-request-update-info with explicit code to sync the in-memory info read flags with the marks being sync'd to the backend. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore servers that are offline. Avoids having gnus-agent-toggle-plugged first ask if you want to open a server and then, even when you responded with no, asking if you want to synchronize the server's flags. (gnus-agent-synchronize-flags-server): Rewrote read loop to handle multi-line expressions. (gnus-agent-synchronize-group-flags): New internal function. Updates marks in memory (in the info structure) AND in the backend. (gnus-agent-check-overview-buffer): Fixed range of deletion to remove entire duplicate line. Fixes merged article number bug. * lisp/gnus/gnus-util.el (gnus-remassoc): Fixed typo in documentation. * lisp/gnus/nnagent.el (nnagent-request-set-mark): Use gnus-agent-synchronize-group-flags, not backend's request-set-mark method, to ensure that synchronization updates marks in the backend and in the info (in memory) structure. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing unless plugged. Disable the agent so that an open failure causes an error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-fetched-hook): Add :version. (gnus-agent-go-online): Change :version. (gnus-agent-expire-unagentized-dirs) (gnus-agent-auto-agentize-methods): Add :version. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt): New function. Used internally to only display 'gnus converting files' message when actually necessary. * lisp/gnus/gnus-sum.el (): Removed (require 'gnus-agent) as required methods now autoloaded. * lisp/gnus/gnus-int.el (gnus-request-move-article): Use gnus-agent-unfetch-articles in place of gnus-agent-expire to improve performance. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf to avoid run-time CL dependencies. (gnus-agent-unfetch-articles): New function. (gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate article numbers even when local .overview file is missing. (gnus-agent-read-article-number): New function. Only accepts 27-bit article numbers. (gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use gnus-agent-read-article-number. (gnus-agent-braid-nov): Rewrote to validate article numbers coming from backend while recognizing that article numbers in .overview must be valid. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Changed message text as some users confused by references to .newsrc when they only have a .newsrc.eld file. (gnus-convert-mark-converter-prompt, gnus-convert-converter-needs-prompt): Fixed use of property list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-start.el (gnus-get-unread-articles-in-group): Don't do stuff for non-living groups. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. (gnus-agent-regenerate-group): Using nil messages aren't valid. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Inline gnus-uncompress-range. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview): Fixed typos with help from Florian Weimer <fw@deneb.enyo.de> * lisp/gnus/gnus-agent.el (gnus-agentize): gnus-agent-send-mail-real-function no longer set to current value of message-send-mail-function but rather a lambda that calls message-send-mail-function. The change makes the agent real-time responsive to user changes to message-send-mail-function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Fix last commit. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-cache.el (gnus-cache-rename-group): New function. (gnus-cache-delete-group): New function. * lisp/gnus/gnus-agent.el (gnus-agent-rename-group): New function. (gnus-agent-delete-group): New function. (gnus-agent-save-group-info): Use gnus-command-method when `method' parameter is nil. Don't write nil entries into the active file. (gnus-agent-get-group-info): New function. (gnus-agent-get-local): Added optional parameters to avoid calling gnus-group-real-name and gnus-find-method-for-group. (gnus-agent-set-local): Delete stored entry if either min, or max, are nil. (gnus-agent-fetch-session): Reworded error/quit messages. On quit, use gnus-agent-regenerate-group to record existance of any articles fetched to disk before the quit occurred. * lisp/gnus/gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Cosmetic simplification to logic. * lisp/gnus/gnus-group.el (): (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps the cache in sync. (gnus-group-list-active): Let the agent store a server's active list if currently plugged. * lisp/gnus/gnus-util.el (gnus-rename-file): New function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): Activate the group when the group's active is not available. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Add a missing arg to error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Only write the conversion message to newsrc-dribble when an actual conversion is performed. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-read-local): Bind nnheader-file-coding-system to gnus-agent-file-coding-system to avoid the implicit assumption that they will always be equal. (gnus-agent-save-local): Bind buffer-file-coding-system, not coding-system-for-write, as the with-temp-file macro first prints to a buffer then saves the buffer. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (): New. Provides converters that are only loaded when gnus-convert-old-newsrc needs to call them. * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Removed support for old file versions. (gnus-group-prepare-hook): Removed function that converted list form of gnus-agent-expire-days to group properties. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Registered new converters to handle old agent file formats. Added logic for a "backup before upgrading warning". (gnus-convert-mark-converter-prompt): Developers can mark functions as needing (default), or not needing, gnus-convert-old-newsrc's "backup before upgrading warning". (gnus-convert-converter-needs-prompt): Tests whether the user should be protected from potentially irreversable changes by the function. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-int.el (gnus-request-accept-article): Inform the agent that articles are being added to a group. (gnus-request-replace-article): Inform the agent that articles need to be uncached as the cached contents are no longer valid. * lisp/gnus/gnus-agent.el (gnus-agent-file-header-cache): Removed. (gnus-agent-possibly-alter-active): Avoid null in numeric comparison. (gnus-agent-set-local): Refuse to save null in local object table. (gnus-agent-regenerate-group): The REREAD parameter can now be a list of articles that will be marked as unread. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-range.el (gnus-sorted-range-intersection): Now accepts single-interval range of the form (min . max). Previously the range had to look like ((min . max)). Likewise, return (min . max) rather than ((min . max)). (gnus-range-map): Use gnus-range-normalize to accept single-interval range. * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): Articles stored in the cache, but not the agent, now appear with their usual face. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Now correctly handles a list of marks consisting of a single range {for example, (3 . 5)} rather than a list of a single range { ((3 . 5)) }. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Avoid splicing null INTO the uncompressed list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-draft.el (gnus-group-send-queue): Pass the group name "nndraft:queue" along to gnus-draft-send. Use gnus-agent-prompt-send-queue. (gnus-draft-send): Rebind gnus-agent-queue-mail to nil when group is "nndraft:queue". Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> * lisp/gnus/gnus-group.el (gnus-group-catchup): Use new gnus-sequence-of-unread-articles, not gnus-list-of-unread-articles, to avoid exhausting memory with huge numbers of articles. Use gnus-range-map to avoid having to uncompress the unread list. (gnus-group-archive-directory, gnus-group-recent-archive-directory): Fixed invalid ange-ftp reference. * lisp/gnus/gnus-range.el (gnus-range-map): Iterate over list or sequence. (gnus-sorted-range-intersection): Intersection of two ranges without requiring that they first be uncompressed. * lisp/gnus/gnus-start.el (gnus-activate-group): Unless blocked by the caller, possibly expand the active range to include both cached and agentized articles. (gnus-convert-old-newsrc): Rewrote in anticipation of having multiple version-dependent converters. (gnus-groups-to-gnus-format): Replaced gnus-agent-save-groups with gnus-agent-save-active. (gnus-save-newsrc-file): Save dirty agent range limits. * lisp/gnus/gnus-sum.el (gnus-select-newgroup): Replaced inline code with gnus-agent-possibly-alter-active. (gnus-adjust-marked-articles): Faster handling of simple lists 2004-10-18 David Edmondson <dme@dme.org> * lisp/gnus/mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call excessively.
2004-10-19 22:38:28 +00:00
(gnus-agent-unfetch-articles group (list article)))
result))
(defun gnus-request-accept-article (group &optional gnus-command-method last
no-encode)
1999-02-20 14:05:57 +00:00
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(when (and (not gnus-command-method)
1997-04-16 22:13:18 +00:00
(stringp group))
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-628 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-55 Update from CVS 2004-10-19 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Search for dummy marks in the right way. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/nnagent.el (nnagent-request-type): Bind gnus-agent to nil to avoid infinite recursion via gnus-get-function. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): When necessary, pass full group name to gnus-request-set-marks. (gnus-agent-synchronize-group-flags): Added support for sync'ing tick marks. (gnus-agent-synchronize-flags-server): Be silent when writing file. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced gnus-request-update-info with explicit code to sync the in-memory info read flags with the marks being sync'd to the backend. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore servers that are offline. Avoids having gnus-agent-toggle-plugged first ask if you want to open a server and then, even when you responded with no, asking if you want to synchronize the server's flags. (gnus-agent-synchronize-flags-server): Rewrote read loop to handle multi-line expressions. (gnus-agent-synchronize-group-flags): New internal function. Updates marks in memory (in the info structure) AND in the backend. (gnus-agent-check-overview-buffer): Fixed range of deletion to remove entire duplicate line. Fixes merged article number bug. * lisp/gnus/gnus-util.el (gnus-remassoc): Fixed typo in documentation. * lisp/gnus/nnagent.el (nnagent-request-set-mark): Use gnus-agent-synchronize-group-flags, not backend's request-set-mark method, to ensure that synchronization updates marks in the backend and in the info (in memory) structure. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing unless plugged. Disable the agent so that an open failure causes an error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-fetched-hook): Add :version. (gnus-agent-go-online): Change :version. (gnus-agent-expire-unagentized-dirs) (gnus-agent-auto-agentize-methods): Add :version. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt): New function. Used internally to only display 'gnus converting files' message when actually necessary. * lisp/gnus/gnus-sum.el (): Removed (require 'gnus-agent) as required methods now autoloaded. * lisp/gnus/gnus-int.el (gnus-request-move-article): Use gnus-agent-unfetch-articles in place of gnus-agent-expire to improve performance. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf to avoid run-time CL dependencies. (gnus-agent-unfetch-articles): New function. (gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate article numbers even when local .overview file is missing. (gnus-agent-read-article-number): New function. Only accepts 27-bit article numbers. (gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use gnus-agent-read-article-number. (gnus-agent-braid-nov): Rewrote to validate article numbers coming from backend while recognizing that article numbers in .overview must be valid. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Changed message text as some users confused by references to .newsrc when they only have a .newsrc.eld file. (gnus-convert-mark-converter-prompt, gnus-convert-converter-needs-prompt): Fixed use of property list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-start.el (gnus-get-unread-articles-in-group): Don't do stuff for non-living groups. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. (gnus-agent-regenerate-group): Using nil messages aren't valid. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Inline gnus-uncompress-range. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview): Fixed typos with help from Florian Weimer <fw@deneb.enyo.de> * lisp/gnus/gnus-agent.el (gnus-agentize): gnus-agent-send-mail-real-function no longer set to current value of message-send-mail-function but rather a lambda that calls message-send-mail-function. The change makes the agent real-time responsive to user changes to message-send-mail-function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Fix last commit. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-cache.el (gnus-cache-rename-group): New function. (gnus-cache-delete-group): New function. * lisp/gnus/gnus-agent.el (gnus-agent-rename-group): New function. (gnus-agent-delete-group): New function. (gnus-agent-save-group-info): Use gnus-command-method when `method' parameter is nil. Don't write nil entries into the active file. (gnus-agent-get-group-info): New function. (gnus-agent-get-local): Added optional parameters to avoid calling gnus-group-real-name and gnus-find-method-for-group. (gnus-agent-set-local): Delete stored entry if either min, or max, are nil. (gnus-agent-fetch-session): Reworded error/quit messages. On quit, use gnus-agent-regenerate-group to record existance of any articles fetched to disk before the quit occurred. * lisp/gnus/gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Cosmetic simplification to logic. * lisp/gnus/gnus-group.el (): (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps the cache in sync. (gnus-group-list-active): Let the agent store a server's active list if currently plugged. * lisp/gnus/gnus-util.el (gnus-rename-file): New function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): Activate the group when the group's active is not available. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Add a missing arg to error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Only write the conversion message to newsrc-dribble when an actual conversion is performed. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-read-local): Bind nnheader-file-coding-system to gnus-agent-file-coding-system to avoid the implicit assumption that they will always be equal. (gnus-agent-save-local): Bind buffer-file-coding-system, not coding-system-for-write, as the with-temp-file macro first prints to a buffer then saves the buffer. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (): New. Provides converters that are only loaded when gnus-convert-old-newsrc needs to call them. * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Removed support for old file versions. (gnus-group-prepare-hook): Removed function that converted list form of gnus-agent-expire-days to group properties. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Registered new converters to handle old agent file formats. Added logic for a "backup before upgrading warning". (gnus-convert-mark-converter-prompt): Developers can mark functions as needing (default), or not needing, gnus-convert-old-newsrc's "backup before upgrading warning". (gnus-convert-converter-needs-prompt): Tests whether the user should be protected from potentially irreversable changes by the function. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-int.el (gnus-request-accept-article): Inform the agent that articles are being added to a group. (gnus-request-replace-article): Inform the agent that articles need to be uncached as the cached contents are no longer valid. * lisp/gnus/gnus-agent.el (gnus-agent-file-header-cache): Removed. (gnus-agent-possibly-alter-active): Avoid null in numeric comparison. (gnus-agent-set-local): Refuse to save null in local object table. (gnus-agent-regenerate-group): The REREAD parameter can now be a list of articles that will be marked as unread. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-range.el (gnus-sorted-range-intersection): Now accepts single-interval range of the form (min . max). Previously the range had to look like ((min . max)). Likewise, return (min . max) rather than ((min . max)). (gnus-range-map): Use gnus-range-normalize to accept single-interval range. * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): Articles stored in the cache, but not the agent, now appear with their usual face. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Now correctly handles a list of marks consisting of a single range {for example, (3 . 5)} rather than a list of a single range { ((3 . 5)) }. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Avoid splicing null INTO the uncompressed list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-draft.el (gnus-group-send-queue): Pass the group name "nndraft:queue" along to gnus-draft-send. Use gnus-agent-prompt-send-queue. (gnus-draft-send): Rebind gnus-agent-queue-mail to nil when group is "nndraft:queue". Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> * lisp/gnus/gnus-group.el (gnus-group-catchup): Use new gnus-sequence-of-unread-articles, not gnus-list-of-unread-articles, to avoid exhausting memory with huge numbers of articles. Use gnus-range-map to avoid having to uncompress the unread list. (gnus-group-archive-directory, gnus-group-recent-archive-directory): Fixed invalid ange-ftp reference. * lisp/gnus/gnus-range.el (gnus-range-map): Iterate over list or sequence. (gnus-sorted-range-intersection): Intersection of two ranges without requiring that they first be uncompressed. * lisp/gnus/gnus-start.el (gnus-activate-group): Unless blocked by the caller, possibly expand the active range to include both cached and agentized articles. (gnus-convert-old-newsrc): Rewrote in anticipation of having multiple version-dependent converters. (gnus-groups-to-gnus-format): Replaced gnus-agent-save-groups with gnus-agent-save-active. (gnus-save-newsrc-file): Save dirty agent range limits. * lisp/gnus/gnus-sum.el (gnus-select-newgroup): Replaced inline code with gnus-agent-possibly-alter-active. (gnus-adjust-marked-articles): Faster handling of simple lists 2004-10-18 David Edmondson <dme@dme.org> * lisp/gnus/mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call excessively.
2004-10-19 22:38:28 +00:00
(setq gnus-command-method (or (gnus-find-method-for-group group)
(gnus-group-name-to-method group))))
1997-04-16 22:13:18 +00:00
(goto-char (point-max))
;; Make sure there's a newline at the end of the article.
1997-04-16 22:13:18 +00:00
(unless (bolp)
(insert "\n"))
(unless no-encode
(let ((message-options message-options))
(message-options-set-recipient)
(save-restriction
(message-narrow-to-head)
(mail-encode-encoded-word-buffer))
(message-encode-message-body)))
(let ((gnus-command-method (or gnus-command-method
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-628 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-55 Update from CVS 2004-10-19 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Search for dummy marks in the right way. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/nnagent.el (nnagent-request-type): Bind gnus-agent to nil to avoid infinite recursion via gnus-get-function. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): When necessary, pass full group name to gnus-request-set-marks. (gnus-agent-synchronize-group-flags): Added support for sync'ing tick marks. (gnus-agent-synchronize-flags-server): Be silent when writing file. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced gnus-request-update-info with explicit code to sync the in-memory info read flags with the marks being sync'd to the backend. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore servers that are offline. Avoids having gnus-agent-toggle-plugged first ask if you want to open a server and then, even when you responded with no, asking if you want to synchronize the server's flags. (gnus-agent-synchronize-flags-server): Rewrote read loop to handle multi-line expressions. (gnus-agent-synchronize-group-flags): New internal function. Updates marks in memory (in the info structure) AND in the backend. (gnus-agent-check-overview-buffer): Fixed range of deletion to remove entire duplicate line. Fixes merged article number bug. * lisp/gnus/gnus-util.el (gnus-remassoc): Fixed typo in documentation. * lisp/gnus/nnagent.el (nnagent-request-set-mark): Use gnus-agent-synchronize-group-flags, not backend's request-set-mark method, to ensure that synchronization updates marks in the backend and in the info (in memory) structure. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing unless plugged. Disable the agent so that an open failure causes an error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-fetched-hook): Add :version. (gnus-agent-go-online): Change :version. (gnus-agent-expire-unagentized-dirs) (gnus-agent-auto-agentize-methods): Add :version. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt): New function. Used internally to only display 'gnus converting files' message when actually necessary. * lisp/gnus/gnus-sum.el (): Removed (require 'gnus-agent) as required methods now autoloaded. * lisp/gnus/gnus-int.el (gnus-request-move-article): Use gnus-agent-unfetch-articles in place of gnus-agent-expire to improve performance. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf to avoid run-time CL dependencies. (gnus-agent-unfetch-articles): New function. (gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate article numbers even when local .overview file is missing. (gnus-agent-read-article-number): New function. Only accepts 27-bit article numbers. (gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use gnus-agent-read-article-number. (gnus-agent-braid-nov): Rewrote to validate article numbers coming from backend while recognizing that article numbers in .overview must be valid. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Changed message text as some users confused by references to .newsrc when they only have a .newsrc.eld file. (gnus-convert-mark-converter-prompt, gnus-convert-converter-needs-prompt): Fixed use of property list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-start.el (gnus-get-unread-articles-in-group): Don't do stuff for non-living groups. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. (gnus-agent-regenerate-group): Using nil messages aren't valid. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Inline gnus-uncompress-range. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview): Fixed typos with help from Florian Weimer <fw@deneb.enyo.de> * lisp/gnus/gnus-agent.el (gnus-agentize): gnus-agent-send-mail-real-function no longer set to current value of message-send-mail-function but rather a lambda that calls message-send-mail-function. The change makes the agent real-time responsive to user changes to message-send-mail-function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Fix last commit. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-cache.el (gnus-cache-rename-group): New function. (gnus-cache-delete-group): New function. * lisp/gnus/gnus-agent.el (gnus-agent-rename-group): New function. (gnus-agent-delete-group): New function. (gnus-agent-save-group-info): Use gnus-command-method when `method' parameter is nil. Don't write nil entries into the active file. (gnus-agent-get-group-info): New function. (gnus-agent-get-local): Added optional parameters to avoid calling gnus-group-real-name and gnus-find-method-for-group. (gnus-agent-set-local): Delete stored entry if either min, or max, are nil. (gnus-agent-fetch-session): Reworded error/quit messages. On quit, use gnus-agent-regenerate-group to record existance of any articles fetched to disk before the quit occurred. * lisp/gnus/gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Cosmetic simplification to logic. * lisp/gnus/gnus-group.el (): (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps the cache in sync. (gnus-group-list-active): Let the agent store a server's active list if currently plugged. * lisp/gnus/gnus-util.el (gnus-rename-file): New function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): Activate the group when the group's active is not available. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Add a missing arg to error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Only write the conversion message to newsrc-dribble when an actual conversion is performed. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-read-local): Bind nnheader-file-coding-system to gnus-agent-file-coding-system to avoid the implicit assumption that they will always be equal. (gnus-agent-save-local): Bind buffer-file-coding-system, not coding-system-for-write, as the with-temp-file macro first prints to a buffer then saves the buffer. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (): New. Provides converters that are only loaded when gnus-convert-old-newsrc needs to call them. * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Removed support for old file versions. (gnus-group-prepare-hook): Removed function that converted list form of gnus-agent-expire-days to group properties. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Registered new converters to handle old agent file formats. Added logic for a "backup before upgrading warning". (gnus-convert-mark-converter-prompt): Developers can mark functions as needing (default), or not needing, gnus-convert-old-newsrc's "backup before upgrading warning". (gnus-convert-converter-needs-prompt): Tests whether the user should be protected from potentially irreversable changes by the function. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-int.el (gnus-request-accept-article): Inform the agent that articles are being added to a group. (gnus-request-replace-article): Inform the agent that articles need to be uncached as the cached contents are no longer valid. * lisp/gnus/gnus-agent.el (gnus-agent-file-header-cache): Removed. (gnus-agent-possibly-alter-active): Avoid null in numeric comparison. (gnus-agent-set-local): Refuse to save null in local object table. (gnus-agent-regenerate-group): The REREAD parameter can now be a list of articles that will be marked as unread. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-range.el (gnus-sorted-range-intersection): Now accepts single-interval range of the form (min . max). Previously the range had to look like ((min . max)). Likewise, return (min . max) rather than ((min . max)). (gnus-range-map): Use gnus-range-normalize to accept single-interval range. * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): Articles stored in the cache, but not the agent, now appear with their usual face. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Now correctly handles a list of marks consisting of a single range {for example, (3 . 5)} rather than a list of a single range { ((3 . 5)) }. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Avoid splicing null INTO the uncompressed list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-draft.el (gnus-group-send-queue): Pass the group name "nndraft:queue" along to gnus-draft-send. Use gnus-agent-prompt-send-queue. (gnus-draft-send): Rebind gnus-agent-queue-mail to nil when group is "nndraft:queue". Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> * lisp/gnus/gnus-group.el (gnus-group-catchup): Use new gnus-sequence-of-unread-articles, not gnus-list-of-unread-articles, to avoid exhausting memory with huge numbers of articles. Use gnus-range-map to avoid having to uncompress the unread list. (gnus-group-archive-directory, gnus-group-recent-archive-directory): Fixed invalid ange-ftp reference. * lisp/gnus/gnus-range.el (gnus-range-map): Iterate over list or sequence. (gnus-sorted-range-intersection): Intersection of two ranges without requiring that they first be uncompressed. * lisp/gnus/gnus-start.el (gnus-activate-group): Unless blocked by the caller, possibly expand the active range to include both cached and agentized articles. (gnus-convert-old-newsrc): Rewrote in anticipation of having multiple version-dependent converters. (gnus-groups-to-gnus-format): Replaced gnus-agent-save-groups with gnus-agent-save-active. (gnus-save-newsrc-file): Save dirty agent range limits. * lisp/gnus/gnus-sum.el (gnus-select-newgroup): Replaced inline code with gnus-agent-possibly-alter-active. (gnus-adjust-marked-articles): Faster handling of simple lists 2004-10-18 David Edmondson <dme@dme.org> * lisp/gnus/mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call excessively.
2004-10-19 22:38:28 +00:00
(gnus-find-method-for-group group)))
(result
(funcall
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-628 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-55 Update from CVS 2004-10-19 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Search for dummy marks in the right way. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/nnagent.el (nnagent-request-type): Bind gnus-agent to nil to avoid infinite recursion via gnus-get-function. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): When necessary, pass full group name to gnus-request-set-marks. (gnus-agent-synchronize-group-flags): Added support for sync'ing tick marks. (gnus-agent-synchronize-flags-server): Be silent when writing file. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced gnus-request-update-info with explicit code to sync the in-memory info read flags with the marks being sync'd to the backend. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore servers that are offline. Avoids having gnus-agent-toggle-plugged first ask if you want to open a server and then, even when you responded with no, asking if you want to synchronize the server's flags. (gnus-agent-synchronize-flags-server): Rewrote read loop to handle multi-line expressions. (gnus-agent-synchronize-group-flags): New internal function. Updates marks in memory (in the info structure) AND in the backend. (gnus-agent-check-overview-buffer): Fixed range of deletion to remove entire duplicate line. Fixes merged article number bug. * lisp/gnus/gnus-util.el (gnus-remassoc): Fixed typo in documentation. * lisp/gnus/nnagent.el (nnagent-request-set-mark): Use gnus-agent-synchronize-group-flags, not backend's request-set-mark method, to ensure that synchronization updates marks in the backend and in the info (in memory) structure. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing unless plugged. Disable the agent so that an open failure causes an error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-fetched-hook): Add :version. (gnus-agent-go-online): Change :version. (gnus-agent-expire-unagentized-dirs) (gnus-agent-auto-agentize-methods): Add :version. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt): New function. Used internally to only display 'gnus converting files' message when actually necessary. * lisp/gnus/gnus-sum.el (): Removed (require 'gnus-agent) as required methods now autoloaded. * lisp/gnus/gnus-int.el (gnus-request-move-article): Use gnus-agent-unfetch-articles in place of gnus-agent-expire to improve performance. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf to avoid run-time CL dependencies. (gnus-agent-unfetch-articles): New function. (gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate article numbers even when local .overview file is missing. (gnus-agent-read-article-number): New function. Only accepts 27-bit article numbers. (gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use gnus-agent-read-article-number. (gnus-agent-braid-nov): Rewrote to validate article numbers coming from backend while recognizing that article numbers in .overview must be valid. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Changed message text as some users confused by references to .newsrc when they only have a .newsrc.eld file. (gnus-convert-mark-converter-prompt, gnus-convert-converter-needs-prompt): Fixed use of property list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-start.el (gnus-get-unread-articles-in-group): Don't do stuff for non-living groups. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. (gnus-agent-regenerate-group): Using nil messages aren't valid. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Inline gnus-uncompress-range. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview): Fixed typos with help from Florian Weimer <fw@deneb.enyo.de> * lisp/gnus/gnus-agent.el (gnus-agentize): gnus-agent-send-mail-real-function no longer set to current value of message-send-mail-function but rather a lambda that calls message-send-mail-function. The change makes the agent real-time responsive to user changes to message-send-mail-function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Fix last commit. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-cache.el (gnus-cache-rename-group): New function. (gnus-cache-delete-group): New function. * lisp/gnus/gnus-agent.el (gnus-agent-rename-group): New function. (gnus-agent-delete-group): New function. (gnus-agent-save-group-info): Use gnus-command-method when `method' parameter is nil. Don't write nil entries into the active file. (gnus-agent-get-group-info): New function. (gnus-agent-get-local): Added optional parameters to avoid calling gnus-group-real-name and gnus-find-method-for-group. (gnus-agent-set-local): Delete stored entry if either min, or max, are nil. (gnus-agent-fetch-session): Reworded error/quit messages. On quit, use gnus-agent-regenerate-group to record existance of any articles fetched to disk before the quit occurred. * lisp/gnus/gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Cosmetic simplification to logic. * lisp/gnus/gnus-group.el (): (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps the cache in sync. (gnus-group-list-active): Let the agent store a server's active list if currently plugged. * lisp/gnus/gnus-util.el (gnus-rename-file): New function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): Activate the group when the group's active is not available. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Add a missing arg to error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Only write the conversion message to newsrc-dribble when an actual conversion is performed. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-read-local): Bind nnheader-file-coding-system to gnus-agent-file-coding-system to avoid the implicit assumption that they will always be equal. (gnus-agent-save-local): Bind buffer-file-coding-system, not coding-system-for-write, as the with-temp-file macro first prints to a buffer then saves the buffer. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (): New. Provides converters that are only loaded when gnus-convert-old-newsrc needs to call them. * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Removed support for old file versions. (gnus-group-prepare-hook): Removed function that converted list form of gnus-agent-expire-days to group properties. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Registered new converters to handle old agent file formats. Added logic for a "backup before upgrading warning". (gnus-convert-mark-converter-prompt): Developers can mark functions as needing (default), or not needing, gnus-convert-old-newsrc's "backup before upgrading warning". (gnus-convert-converter-needs-prompt): Tests whether the user should be protected from potentially irreversable changes by the function. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-int.el (gnus-request-accept-article): Inform the agent that articles are being added to a group. (gnus-request-replace-article): Inform the agent that articles need to be uncached as the cached contents are no longer valid. * lisp/gnus/gnus-agent.el (gnus-agent-file-header-cache): Removed. (gnus-agent-possibly-alter-active): Avoid null in numeric comparison. (gnus-agent-set-local): Refuse to save null in local object table. (gnus-agent-regenerate-group): The REREAD parameter can now be a list of articles that will be marked as unread. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-range.el (gnus-sorted-range-intersection): Now accepts single-interval range of the form (min . max). Previously the range had to look like ((min . max)). Likewise, return (min . max) rather than ((min . max)). (gnus-range-map): Use gnus-range-normalize to accept single-interval range. * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): Articles stored in the cache, but not the agent, now appear with their usual face. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Now correctly handles a list of marks consisting of a single range {for example, (3 . 5)} rather than a list of a single range { ((3 . 5)) }. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Avoid splicing null INTO the uncompressed list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-draft.el (gnus-group-send-queue): Pass the group name "nndraft:queue" along to gnus-draft-send. Use gnus-agent-prompt-send-queue. (gnus-draft-send): Rebind gnus-agent-queue-mail to nil when group is "nndraft:queue". Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> * lisp/gnus/gnus-group.el (gnus-group-catchup): Use new gnus-sequence-of-unread-articles, not gnus-list-of-unread-articles, to avoid exhausting memory with huge numbers of articles. Use gnus-range-map to avoid having to uncompress the unread list. (gnus-group-archive-directory, gnus-group-recent-archive-directory): Fixed invalid ange-ftp reference. * lisp/gnus/gnus-range.el (gnus-range-map): Iterate over list or sequence. (gnus-sorted-range-intersection): Intersection of two ranges without requiring that they first be uncompressed. * lisp/gnus/gnus-start.el (gnus-activate-group): Unless blocked by the caller, possibly expand the active range to include both cached and agentized articles. (gnus-convert-old-newsrc): Rewrote in anticipation of having multiple version-dependent converters. (gnus-groups-to-gnus-format): Replaced gnus-agent-save-groups with gnus-agent-save-active. (gnus-save-newsrc-file): Save dirty agent range limits. * lisp/gnus/gnus-sum.el (gnus-select-newgroup): Replaced inline code with gnus-agent-possibly-alter-active. (gnus-adjust-marked-articles): Faster handling of simple lists 2004-10-18 David Edmondson <dme@dme.org> * lisp/gnus/mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call excessively.
2004-10-19 22:38:28 +00:00
(gnus-get-function gnus-command-method 'request-accept-article)
(if (stringp group) (gnus-group-real-name group) group)
(cadr gnus-command-method)
last)))
(when (and gnus-agent
(gnus-agent-method-p gnus-command-method)
(cdr result))
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-628 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-55 Update from CVS 2004-10-19 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Search for dummy marks in the right way. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/nnagent.el (nnagent-request-type): Bind gnus-agent to nil to avoid infinite recursion via gnus-get-function. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): When necessary, pass full group name to gnus-request-set-marks. (gnus-agent-synchronize-group-flags): Added support for sync'ing tick marks. (gnus-agent-synchronize-flags-server): Be silent when writing file. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced gnus-request-update-info with explicit code to sync the in-memory info read flags with the marks being sync'd to the backend. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore servers that are offline. Avoids having gnus-agent-toggle-plugged first ask if you want to open a server and then, even when you responded with no, asking if you want to synchronize the server's flags. (gnus-agent-synchronize-flags-server): Rewrote read loop to handle multi-line expressions. (gnus-agent-synchronize-group-flags): New internal function. Updates marks in memory (in the info structure) AND in the backend. (gnus-agent-check-overview-buffer): Fixed range of deletion to remove entire duplicate line. Fixes merged article number bug. * lisp/gnus/gnus-util.el (gnus-remassoc): Fixed typo in documentation. * lisp/gnus/nnagent.el (nnagent-request-set-mark): Use gnus-agent-synchronize-group-flags, not backend's request-set-mark method, to ensure that synchronization updates marks in the backend and in the info (in memory) structure. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing unless plugged. Disable the agent so that an open failure causes an error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-fetched-hook): Add :version. (gnus-agent-go-online): Change :version. (gnus-agent-expire-unagentized-dirs) (gnus-agent-auto-agentize-methods): Add :version. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt): New function. Used internally to only display 'gnus converting files' message when actually necessary. * lisp/gnus/gnus-sum.el (): Removed (require 'gnus-agent) as required methods now autoloaded. * lisp/gnus/gnus-int.el (gnus-request-move-article): Use gnus-agent-unfetch-articles in place of gnus-agent-expire to improve performance. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf to avoid run-time CL dependencies. (gnus-agent-unfetch-articles): New function. (gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate article numbers even when local .overview file is missing. (gnus-agent-read-article-number): New function. Only accepts 27-bit article numbers. (gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use gnus-agent-read-article-number. (gnus-agent-braid-nov): Rewrote to validate article numbers coming from backend while recognizing that article numbers in .overview must be valid. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Changed message text as some users confused by references to .newsrc when they only have a .newsrc.eld file. (gnus-convert-mark-converter-prompt, gnus-convert-converter-needs-prompt): Fixed use of property list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-start.el (gnus-get-unread-articles-in-group): Don't do stuff for non-living groups. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. (gnus-agent-regenerate-group): Using nil messages aren't valid. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Inline gnus-uncompress-range. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview): Fixed typos with help from Florian Weimer <fw@deneb.enyo.de> * lisp/gnus/gnus-agent.el (gnus-agentize): gnus-agent-send-mail-real-function no longer set to current value of message-send-mail-function but rather a lambda that calls message-send-mail-function. The change makes the agent real-time responsive to user changes to message-send-mail-function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Fix last commit. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-cache.el (gnus-cache-rename-group): New function. (gnus-cache-delete-group): New function. * lisp/gnus/gnus-agent.el (gnus-agent-rename-group): New function. (gnus-agent-delete-group): New function. (gnus-agent-save-group-info): Use gnus-command-method when `method' parameter is nil. Don't write nil entries into the active file. (gnus-agent-get-group-info): New function. (gnus-agent-get-local): Added optional parameters to avoid calling gnus-group-real-name and gnus-find-method-for-group. (gnus-agent-set-local): Delete stored entry if either min, or max, are nil. (gnus-agent-fetch-session): Reworded error/quit messages. On quit, use gnus-agent-regenerate-group to record existance of any articles fetched to disk before the quit occurred. * lisp/gnus/gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Cosmetic simplification to logic. * lisp/gnus/gnus-group.el (): (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps the cache in sync. (gnus-group-list-active): Let the agent store a server's active list if currently plugged. * lisp/gnus/gnus-util.el (gnus-rename-file): New function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): Activate the group when the group's active is not available. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Add a missing arg to error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Only write the conversion message to newsrc-dribble when an actual conversion is performed. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-read-local): Bind nnheader-file-coding-system to gnus-agent-file-coding-system to avoid the implicit assumption that they will always be equal. (gnus-agent-save-local): Bind buffer-file-coding-system, not coding-system-for-write, as the with-temp-file macro first prints to a buffer then saves the buffer. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (): New. Provides converters that are only loaded when gnus-convert-old-newsrc needs to call them. * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Removed support for old file versions. (gnus-group-prepare-hook): Removed function that converted list form of gnus-agent-expire-days to group properties. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Registered new converters to handle old agent file formats. Added logic for a "backup before upgrading warning". (gnus-convert-mark-converter-prompt): Developers can mark functions as needing (default), or not needing, gnus-convert-old-newsrc's "backup before upgrading warning". (gnus-convert-converter-needs-prompt): Tests whether the user should be protected from potentially irreversable changes by the function. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-int.el (gnus-request-accept-article): Inform the agent that articles are being added to a group. (gnus-request-replace-article): Inform the agent that articles need to be uncached as the cached contents are no longer valid. * lisp/gnus/gnus-agent.el (gnus-agent-file-header-cache): Removed. (gnus-agent-possibly-alter-active): Avoid null in numeric comparison. (gnus-agent-set-local): Refuse to save null in local object table. (gnus-agent-regenerate-group): The REREAD parameter can now be a list of articles that will be marked as unread. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-range.el (gnus-sorted-range-intersection): Now accepts single-interval range of the form (min . max). Previously the range had to look like ((min . max)). Likewise, return (min . max) rather than ((min . max)). (gnus-range-map): Use gnus-range-normalize to accept single-interval range. * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): Articles stored in the cache, but not the agent, now appear with their usual face. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Now correctly handles a list of marks consisting of a single range {for example, (3 . 5)} rather than a list of a single range { ((3 . 5)) }. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Avoid splicing null INTO the uncompressed list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-draft.el (gnus-group-send-queue): Pass the group name "nndraft:queue" along to gnus-draft-send. Use gnus-agent-prompt-send-queue. (gnus-draft-send): Rebind gnus-agent-queue-mail to nil when group is "nndraft:queue". Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> * lisp/gnus/gnus-group.el (gnus-group-catchup): Use new gnus-sequence-of-unread-articles, not gnus-list-of-unread-articles, to avoid exhausting memory with huge numbers of articles. Use gnus-range-map to avoid having to uncompress the unread list. (gnus-group-archive-directory, gnus-group-recent-archive-directory): Fixed invalid ange-ftp reference. * lisp/gnus/gnus-range.el (gnus-range-map): Iterate over list or sequence. (gnus-sorted-range-intersection): Intersection of two ranges without requiring that they first be uncompressed. * lisp/gnus/gnus-start.el (gnus-activate-group): Unless blocked by the caller, possibly expand the active range to include both cached and agentized articles. (gnus-convert-old-newsrc): Rewrote in anticipation of having multiple version-dependent converters. (gnus-groups-to-gnus-format): Replaced gnus-agent-save-groups with gnus-agent-save-active. (gnus-save-newsrc-file): Save dirty agent range limits. * lisp/gnus/gnus-sum.el (gnus-select-newgroup): Replaced inline code with gnus-agent-possibly-alter-active. (gnus-adjust-marked-articles): Faster handling of simple lists 2004-10-18 David Edmondson <dme@dme.org> * lisp/gnus/mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call excessively.
2004-10-19 22:38:28 +00:00
(gnus-agent-regenerate-group group (list (cdr result))))
result))
1997-04-16 22:13:18 +00:00
(defun gnus-request-replace-article (article group buffer &optional no-encode)
(unless no-encode
(let ((message-options message-options))
(message-options-set-recipient)
(save-restriction
(message-narrow-to-head)
(mail-encode-encoded-word-buffer))
(message-encode-message-body)))
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-628 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-55 Update from CVS 2004-10-19 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Search for dummy marks in the right way. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/nnagent.el (nnagent-request-type): Bind gnus-agent to nil to avoid infinite recursion via gnus-get-function. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): When necessary, pass full group name to gnus-request-set-marks. (gnus-agent-synchronize-group-flags): Added support for sync'ing tick marks. (gnus-agent-synchronize-flags-server): Be silent when writing file. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced gnus-request-update-info with explicit code to sync the in-memory info read flags with the marks being sync'd to the backend. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore servers that are offline. Avoids having gnus-agent-toggle-plugged first ask if you want to open a server and then, even when you responded with no, asking if you want to synchronize the server's flags. (gnus-agent-synchronize-flags-server): Rewrote read loop to handle multi-line expressions. (gnus-agent-synchronize-group-flags): New internal function. Updates marks in memory (in the info structure) AND in the backend. (gnus-agent-check-overview-buffer): Fixed range of deletion to remove entire duplicate line. Fixes merged article number bug. * lisp/gnus/gnus-util.el (gnus-remassoc): Fixed typo in documentation. * lisp/gnus/nnagent.el (nnagent-request-set-mark): Use gnus-agent-synchronize-group-flags, not backend's request-set-mark method, to ensure that synchronization updates marks in the backend and in the info (in memory) structure. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing unless plugged. Disable the agent so that an open failure causes an error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-fetched-hook): Add :version. (gnus-agent-go-online): Change :version. (gnus-agent-expire-unagentized-dirs) (gnus-agent-auto-agentize-methods): Add :version. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt): New function. Used internally to only display 'gnus converting files' message when actually necessary. * lisp/gnus/gnus-sum.el (): Removed (require 'gnus-agent) as required methods now autoloaded. * lisp/gnus/gnus-int.el (gnus-request-move-article): Use gnus-agent-unfetch-articles in place of gnus-agent-expire to improve performance. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf to avoid run-time CL dependencies. (gnus-agent-unfetch-articles): New function. (gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate article numbers even when local .overview file is missing. (gnus-agent-read-article-number): New function. Only accepts 27-bit article numbers. (gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use gnus-agent-read-article-number. (gnus-agent-braid-nov): Rewrote to validate article numbers coming from backend while recognizing that article numbers in .overview must be valid. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Changed message text as some users confused by references to .newsrc when they only have a .newsrc.eld file. (gnus-convert-mark-converter-prompt, gnus-convert-converter-needs-prompt): Fixed use of property list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-start.el (gnus-get-unread-articles-in-group): Don't do stuff for non-living groups. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. (gnus-agent-regenerate-group): Using nil messages aren't valid. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Inline gnus-uncompress-range. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview): Fixed typos with help from Florian Weimer <fw@deneb.enyo.de> * lisp/gnus/gnus-agent.el (gnus-agentize): gnus-agent-send-mail-real-function no longer set to current value of message-send-mail-function but rather a lambda that calls message-send-mail-function. The change makes the agent real-time responsive to user changes to message-send-mail-function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Fix last commit. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-cache.el (gnus-cache-rename-group): New function. (gnus-cache-delete-group): New function. * lisp/gnus/gnus-agent.el (gnus-agent-rename-group): New function. (gnus-agent-delete-group): New function. (gnus-agent-save-group-info): Use gnus-command-method when `method' parameter is nil. Don't write nil entries into the active file. (gnus-agent-get-group-info): New function. (gnus-agent-get-local): Added optional parameters to avoid calling gnus-group-real-name and gnus-find-method-for-group. (gnus-agent-set-local): Delete stored entry if either min, or max, are nil. (gnus-agent-fetch-session): Reworded error/quit messages. On quit, use gnus-agent-regenerate-group to record existance of any articles fetched to disk before the quit occurred. * lisp/gnus/gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Cosmetic simplification to logic. * lisp/gnus/gnus-group.el (): (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps the cache in sync. (gnus-group-list-active): Let the agent store a server's active list if currently plugged. * lisp/gnus/gnus-util.el (gnus-rename-file): New function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): Activate the group when the group's active is not available. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Add a missing arg to error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Only write the conversion message to newsrc-dribble when an actual conversion is performed. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-read-local): Bind nnheader-file-coding-system to gnus-agent-file-coding-system to avoid the implicit assumption that they will always be equal. (gnus-agent-save-local): Bind buffer-file-coding-system, not coding-system-for-write, as the with-temp-file macro first prints to a buffer then saves the buffer. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (): New. Provides converters that are only loaded when gnus-convert-old-newsrc needs to call them. * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Removed support for old file versions. (gnus-group-prepare-hook): Removed function that converted list form of gnus-agent-expire-days to group properties. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Registered new converters to handle old agent file formats. Added logic for a "backup before upgrading warning". (gnus-convert-mark-converter-prompt): Developers can mark functions as needing (default), or not needing, gnus-convert-old-newsrc's "backup before upgrading warning". (gnus-convert-converter-needs-prompt): Tests whether the user should be protected from potentially irreversable changes by the function. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-int.el (gnus-request-accept-article): Inform the agent that articles are being added to a group. (gnus-request-replace-article): Inform the agent that articles need to be uncached as the cached contents are no longer valid. * lisp/gnus/gnus-agent.el (gnus-agent-file-header-cache): Removed. (gnus-agent-possibly-alter-active): Avoid null in numeric comparison. (gnus-agent-set-local): Refuse to save null in local object table. (gnus-agent-regenerate-group): The REREAD parameter can now be a list of articles that will be marked as unread. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-range.el (gnus-sorted-range-intersection): Now accepts single-interval range of the form (min . max). Previously the range had to look like ((min . max)). Likewise, return (min . max) rather than ((min . max)). (gnus-range-map): Use gnus-range-normalize to accept single-interval range. * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): Articles stored in the cache, but not the agent, now appear with their usual face. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Now correctly handles a list of marks consisting of a single range {for example, (3 . 5)} rather than a list of a single range { ((3 . 5)) }. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Avoid splicing null INTO the uncompressed list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-draft.el (gnus-group-send-queue): Pass the group name "nndraft:queue" along to gnus-draft-send. Use gnus-agent-prompt-send-queue. (gnus-draft-send): Rebind gnus-agent-queue-mail to nil when group is "nndraft:queue". Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> * lisp/gnus/gnus-group.el (gnus-group-catchup): Use new gnus-sequence-of-unread-articles, not gnus-list-of-unread-articles, to avoid exhausting memory with huge numbers of articles. Use gnus-range-map to avoid having to uncompress the unread list. (gnus-group-archive-directory, gnus-group-recent-archive-directory): Fixed invalid ange-ftp reference. * lisp/gnus/gnus-range.el (gnus-range-map): Iterate over list or sequence. (gnus-sorted-range-intersection): Intersection of two ranges without requiring that they first be uncompressed. * lisp/gnus/gnus-start.el (gnus-activate-group): Unless blocked by the caller, possibly expand the active range to include both cached and agentized articles. (gnus-convert-old-newsrc): Rewrote in anticipation of having multiple version-dependent converters. (gnus-groups-to-gnus-format): Replaced gnus-agent-save-groups with gnus-agent-save-active. (gnus-save-newsrc-file): Save dirty agent range limits. * lisp/gnus/gnus-sum.el (gnus-select-newgroup): Replaced inline code with gnus-agent-possibly-alter-active. (gnus-adjust-marked-articles): Faster handling of simple lists 2004-10-18 David Edmondson <dme@dme.org> * lisp/gnus/mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call excessively.
2004-10-19 22:38:28 +00:00
(let* ((func (car (gnus-group-name-to-method group)))
(result (funcall (intern (format "%s-request-replace-article" func))
article (gnus-group-real-name group) buffer)))
(when (and gnus-agent (gnus-agent-method-p gnus-command-method))
(gnus-agent-regenerate-group group (list article)))
result))
1997-04-16 22:13:18 +00:00
(defun gnus-request-restore-buffer (article group)
"Request a new buffer restored to the state of ARTICLE."
1999-02-20 14:05:57 +00:00
(let ((gnus-command-method (gnus-find-method-for-group group)))
(funcall (gnus-get-function gnus-command-method 'request-restore-buffer)
article (gnus-group-real-name group)
(nth 1 gnus-command-method))))
1997-04-16 22:13:18 +00:00
1999-02-20 14:05:57 +00:00
(defun gnus-request-create-group (group &optional gnus-command-method args)
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(let ((gnus-command-method
(or gnus-command-method (gnus-find-method-for-group group))))
(funcall (gnus-get-function gnus-command-method 'request-create-group)
(gnus-group-real-name group) (nth 1 gnus-command-method) args)))
1997-04-16 22:13:18 +00:00
(defun gnus-request-delete-group (group &optional force)
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-628 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-55 Update from CVS 2004-10-19 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Search for dummy marks in the right way. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/nnagent.el (nnagent-request-type): Bind gnus-agent to nil to avoid infinite recursion via gnus-get-function. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): When necessary, pass full group name to gnus-request-set-marks. (gnus-agent-synchronize-group-flags): Added support for sync'ing tick marks. (gnus-agent-synchronize-flags-server): Be silent when writing file. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced gnus-request-update-info with explicit code to sync the in-memory info read flags with the marks being sync'd to the backend. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore servers that are offline. Avoids having gnus-agent-toggle-plugged first ask if you want to open a server and then, even when you responded with no, asking if you want to synchronize the server's flags. (gnus-agent-synchronize-flags-server): Rewrote read loop to handle multi-line expressions. (gnus-agent-synchronize-group-flags): New internal function. Updates marks in memory (in the info structure) AND in the backend. (gnus-agent-check-overview-buffer): Fixed range of deletion to remove entire duplicate line. Fixes merged article number bug. * lisp/gnus/gnus-util.el (gnus-remassoc): Fixed typo in documentation. * lisp/gnus/nnagent.el (nnagent-request-set-mark): Use gnus-agent-synchronize-group-flags, not backend's request-set-mark method, to ensure that synchronization updates marks in the backend and in the info (in memory) structure. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing unless plugged. Disable the agent so that an open failure causes an error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-fetched-hook): Add :version. (gnus-agent-go-online): Change :version. (gnus-agent-expire-unagentized-dirs) (gnus-agent-auto-agentize-methods): Add :version. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt): New function. Used internally to only display 'gnus converting files' message when actually necessary. * lisp/gnus/gnus-sum.el (): Removed (require 'gnus-agent) as required methods now autoloaded. * lisp/gnus/gnus-int.el (gnus-request-move-article): Use gnus-agent-unfetch-articles in place of gnus-agent-expire to improve performance. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf to avoid run-time CL dependencies. (gnus-agent-unfetch-articles): New function. (gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate article numbers even when local .overview file is missing. (gnus-agent-read-article-number): New function. Only accepts 27-bit article numbers. (gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use gnus-agent-read-article-number. (gnus-agent-braid-nov): Rewrote to validate article numbers coming from backend while recognizing that article numbers in .overview must be valid. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Changed message text as some users confused by references to .newsrc when they only have a .newsrc.eld file. (gnus-convert-mark-converter-prompt, gnus-convert-converter-needs-prompt): Fixed use of property list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-start.el (gnus-get-unread-articles-in-group): Don't do stuff for non-living groups. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. (gnus-agent-regenerate-group): Using nil messages aren't valid. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Inline gnus-uncompress-range. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview): Fixed typos with help from Florian Weimer <fw@deneb.enyo.de> * lisp/gnus/gnus-agent.el (gnus-agentize): gnus-agent-send-mail-real-function no longer set to current value of message-send-mail-function but rather a lambda that calls message-send-mail-function. The change makes the agent real-time responsive to user changes to message-send-mail-function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Fix last commit. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-cache.el (gnus-cache-rename-group): New function. (gnus-cache-delete-group): New function. * lisp/gnus/gnus-agent.el (gnus-agent-rename-group): New function. (gnus-agent-delete-group): New function. (gnus-agent-save-group-info): Use gnus-command-method when `method' parameter is nil. Don't write nil entries into the active file. (gnus-agent-get-group-info): New function. (gnus-agent-get-local): Added optional parameters to avoid calling gnus-group-real-name and gnus-find-method-for-group. (gnus-agent-set-local): Delete stored entry if either min, or max, are nil. (gnus-agent-fetch-session): Reworded error/quit messages. On quit, use gnus-agent-regenerate-group to record existance of any articles fetched to disk before the quit occurred. * lisp/gnus/gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Cosmetic simplification to logic. * lisp/gnus/gnus-group.el (): (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps the cache in sync. (gnus-group-list-active): Let the agent store a server's active list if currently plugged. * lisp/gnus/gnus-util.el (gnus-rename-file): New function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): Activate the group when the group's active is not available. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Add a missing arg to error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Only write the conversion message to newsrc-dribble when an actual conversion is performed. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-read-local): Bind nnheader-file-coding-system to gnus-agent-file-coding-system to avoid the implicit assumption that they will always be equal. (gnus-agent-save-local): Bind buffer-file-coding-system, not coding-system-for-write, as the with-temp-file macro first prints to a buffer then saves the buffer. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (): New. Provides converters that are only loaded when gnus-convert-old-newsrc needs to call them. * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Removed support for old file versions. (gnus-group-prepare-hook): Removed function that converted list form of gnus-agent-expire-days to group properties. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Registered new converters to handle old agent file formats. Added logic for a "backup before upgrading warning". (gnus-convert-mark-converter-prompt): Developers can mark functions as needing (default), or not needing, gnus-convert-old-newsrc's "backup before upgrading warning". (gnus-convert-converter-needs-prompt): Tests whether the user should be protected from potentially irreversable changes by the function. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-int.el (gnus-request-accept-article): Inform the agent that articles are being added to a group. (gnus-request-replace-article): Inform the agent that articles need to be uncached as the cached contents are no longer valid. * lisp/gnus/gnus-agent.el (gnus-agent-file-header-cache): Removed. (gnus-agent-possibly-alter-active): Avoid null in numeric comparison. (gnus-agent-set-local): Refuse to save null in local object table. (gnus-agent-regenerate-group): The REREAD parameter can now be a list of articles that will be marked as unread. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-range.el (gnus-sorted-range-intersection): Now accepts single-interval range of the form (min . max). Previously the range had to look like ((min . max)). Likewise, return (min . max) rather than ((min . max)). (gnus-range-map): Use gnus-range-normalize to accept single-interval range. * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): Articles stored in the cache, but not the agent, now appear with their usual face. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Now correctly handles a list of marks consisting of a single range {for example, (3 . 5)} rather than a list of a single range { ((3 . 5)) }. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Avoid splicing null INTO the uncompressed list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-draft.el (gnus-group-send-queue): Pass the group name "nndraft:queue" along to gnus-draft-send. Use gnus-agent-prompt-send-queue. (gnus-draft-send): Rebind gnus-agent-queue-mail to nil when group is "nndraft:queue". Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> * lisp/gnus/gnus-group.el (gnus-group-catchup): Use new gnus-sequence-of-unread-articles, not gnus-list-of-unread-articles, to avoid exhausting memory with huge numbers of articles. Use gnus-range-map to avoid having to uncompress the unread list. (gnus-group-archive-directory, gnus-group-recent-archive-directory): Fixed invalid ange-ftp reference. * lisp/gnus/gnus-range.el (gnus-range-map): Iterate over list or sequence. (gnus-sorted-range-intersection): Intersection of two ranges without requiring that they first be uncompressed. * lisp/gnus/gnus-start.el (gnus-activate-group): Unless blocked by the caller, possibly expand the active range to include both cached and agentized articles. (gnus-convert-old-newsrc): Rewrote in anticipation of having multiple version-dependent converters. (gnus-groups-to-gnus-format): Replaced gnus-agent-save-groups with gnus-agent-save-active. (gnus-save-newsrc-file): Save dirty agent range limits. * lisp/gnus/gnus-sum.el (gnus-select-newgroup): Replaced inline code with gnus-agent-possibly-alter-active. (gnus-adjust-marked-articles): Faster handling of simple lists 2004-10-18 David Edmondson <dme@dme.org> * lisp/gnus/mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call excessively.
2004-10-19 22:38:28 +00:00
(let* ((gnus-command-method (gnus-find-method-for-group group))
(result
(funcall (gnus-get-function gnus-command-method 'request-delete-group)
(gnus-group-real-name group) force (nth 1 gnus-command-method))))
(when result
(gnus-cache-delete-group group)
(gnus-agent-delete-group group))
result))
1997-04-16 22:13:18 +00:00
(defun gnus-request-rename-group (group new-name)
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-628 Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-55 Update from CVS 2004-10-19 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Search for dummy marks in the right way. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/nnagent.el (nnagent-request-type): Bind gnus-agent to nil to avoid infinite recursion via gnus-get-function. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): When necessary, pass full group name to gnus-request-set-marks. (gnus-agent-synchronize-group-flags): Added support for sync'ing tick marks. (gnus-agent-synchronize-flags-server): Be silent when writing file. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced gnus-request-update-info with explicit code to sync the in-memory info read flags with the marks being sync'd to the backend. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore servers that are offline. Avoids having gnus-agent-toggle-plugged first ask if you want to open a server and then, even when you responded with no, asking if you want to synchronize the server's flags. (gnus-agent-synchronize-flags-server): Rewrote read loop to handle multi-line expressions. (gnus-agent-synchronize-group-flags): New internal function. Updates marks in memory (in the info structure) AND in the backend. (gnus-agent-check-overview-buffer): Fixed range of deletion to remove entire duplicate line. Fixes merged article number bug. * lisp/gnus/gnus-util.el (gnus-remassoc): Fixed typo in documentation. * lisp/gnus/nnagent.el (nnagent-request-set-mark): Use gnus-agent-synchronize-group-flags, not backend's request-set-mark method, to ensure that synchronization updates marks in the backend and in the info (in memory) structure. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing unless plugged. Disable the agent so that an open failure causes an error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-agent.el (gnus-agent-fetched-hook): Add :version. (gnus-agent-go-online): Change :version. (gnus-agent-expire-unagentized-dirs) (gnus-agent-auto-agentize-methods): Add :version. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt): New function. Used internally to only display 'gnus converting files' message when actually necessary. * lisp/gnus/gnus-sum.el (): Removed (require 'gnus-agent) as required methods now autoloaded. * lisp/gnus/gnus-int.el (gnus-request-move-article): Use gnus-agent-unfetch-articles in place of gnus-agent-expire to improve performance. 2004-10-18 Kevin Greiner <kgreiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf to avoid run-time CL dependencies. (gnus-agent-unfetch-articles): New function. (gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate article numbers even when local .overview file is missing. (gnus-agent-read-article-number): New function. Only accepts 27-bit article numbers. (gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use gnus-agent-read-article-number. (gnus-agent-braid-nov): Rewrote to validate article numbers coming from backend while recognizing that article numbers in .overview must be valid. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Changed message text as some users confused by references to .newsrc when they only have a .newsrc.eld file. (gnus-convert-mark-converter-prompt, gnus-convert-converter-needs-prompt): Fixed use of property list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-start.el (gnus-get-unread-articles-in-group): Don't do stuff for non-living groups. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. (gnus-agent-regenerate-group): Using nil messages aren't valid. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Inline gnus-uncompress-range. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview): Fixed typos with help from Florian Weimer <fw@deneb.enyo.de> * lisp/gnus/gnus-agent.el (gnus-agentize): gnus-agent-send-mail-real-function no longer set to current value of message-send-mail-function but rather a lambda that calls message-send-mail-function. The change makes the agent real-time responsive to user changes to message-send-mail-function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Fix last commit. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-cache.el (gnus-cache-rename-group): New function. (gnus-cache-delete-group): New function. * lisp/gnus/gnus-agent.el (gnus-agent-rename-group): New function. (gnus-agent-delete-group): New function. (gnus-agent-save-group-info): Use gnus-command-method when `method' parameter is nil. Don't write nil entries into the active file. (gnus-agent-get-group-info): New function. (gnus-agent-get-local): Added optional parameters to avoid calling gnus-group-real-name and gnus-find-method-for-group. (gnus-agent-set-local): Delete stored entry if either min, or max, are nil. (gnus-agent-fetch-session): Reworded error/quit messages. On quit, use gnus-agent-regenerate-group to record existance of any articles fetched to disk before the quit occurred. * lisp/gnus/gnus-int.el (gnus-request-delete-group): Use gnus-cache-delete-group and gnus-agent-delete-group to keep the local disk in sync with the server. (gnus-request-rename-group): Use gnus-cache-rename-group and gnus-agent-rename-group to keep the local disk in sync with the server. * lisp/gnus/gnus-start.el (gnus-get-unread-articles): Cosmetic simplification to logic. * lisp/gnus/gnus-group.el (): (gnus-group-delete-group): No longer update gnus-cache-active-altered as gnus-request-delete-group now keeps the cache in sync. (gnus-group-list-active): Let the agent store a server's active list if currently plugged. * lisp/gnus/gnus-util.el (gnus-rename-file): New function. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): Activate the group when the group's active is not available. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> for Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Add a missing arg to error. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Only write the conversion message to newsrc-dribble when an actual conversion is performed. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-agent.el (gnus-agent-read-local): Bind nnheader-file-coding-system to gnus-agent-file-coding-system to avoid the implicit assumption that they will always be equal. (gnus-agent-save-local): Bind buffer-file-coding-system, not coding-system-for-write, as the with-temp-file macro first prints to a buffer then saves the buffer. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/legacy-gnus-agent.el (): New. Provides converters that are only loaded when gnus-convert-old-newsrc needs to call them. * lisp/gnus/gnus-agent.el (gnus-agent-read-agentview): Removed support for old file versions. (gnus-group-prepare-hook): Removed function that converted list form of gnus-agent-expire-days to group properties. * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Registered new converters to handle old agent file formats. Added logic for a "backup before upgrading warning". (gnus-convert-mark-converter-prompt): Developers can mark functions as needing (default), or not needing, gnus-convert-old-newsrc's "backup before upgrading warning". (gnus-convert-converter-needs-prompt): Tests whether the user should be protected from potentially irreversable changes by the function. 2004-10-18 Kevin Greiner <kgreiner@xpediantsolutions.com> * lisp/gnus/gnus-int.el (gnus-request-accept-article): Inform the agent that articles are being added to a group. (gnus-request-replace-article): Inform the agent that articles need to be uncached as the cached contents are no longer valid. * lisp/gnus/gnus-agent.el (gnus-agent-file-header-cache): Removed. (gnus-agent-possibly-alter-active): Avoid null in numeric comparison. (gnus-agent-set-local): Refuse to save null in local object table. (gnus-agent-regenerate-group): The REREAD parameter can now be a list of articles that will be marked as unread. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-range.el (gnus-sorted-range-intersection): Now accepts single-interval range of the form (min . max). Previously the range had to look like ((min . max)). Likewise, return (min . max) rather than ((min . max)). (gnus-range-map): Use gnus-range-normalize to accept single-interval range. * lisp/gnus/gnus-sum.el (gnus-summary-highlight-line): Articles stored in the cache, but not the agent, now appear with their usual face. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Now correctly handles a list of marks consisting of a single range {for example, (3 . 5)} rather than a list of a single range { ((3 . 5)) }. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-sum.el (gnus-adjust-marks): Avoid splicing null INTO the uncompressed list. 2004-10-18 Kevin Greiner <kevin.greiner@compsol.cc> * lisp/gnus/gnus-draft.el (gnus-group-send-queue): Pass the group name "nndraft:queue" along to gnus-draft-send. Use gnus-agent-prompt-send-queue. (gnus-draft-send): Rebind gnus-agent-queue-mail to nil when group is "nndraft:queue". Suggested by Gaute Strokkenes <gs234@srcf.ucam.org> * lisp/gnus/gnus-group.el (gnus-group-catchup): Use new gnus-sequence-of-unread-articles, not gnus-list-of-unread-articles, to avoid exhausting memory with huge numbers of articles. Use gnus-range-map to avoid having to uncompress the unread list. (gnus-group-archive-directory, gnus-group-recent-archive-directory): Fixed invalid ange-ftp reference. * lisp/gnus/gnus-range.el (gnus-range-map): Iterate over list or sequence. (gnus-sorted-range-intersection): Intersection of two ranges without requiring that they first be uncompressed. * lisp/gnus/gnus-start.el (gnus-activate-group): Unless blocked by the caller, possibly expand the active range to include both cached and agentized articles. (gnus-convert-old-newsrc): Rewrote in anticipation of having multiple version-dependent converters. (gnus-groups-to-gnus-format): Replaced gnus-agent-save-groups with gnus-agent-save-active. (gnus-save-newsrc-file): Save dirty agent range limits. * lisp/gnus/gnus-sum.el (gnus-select-newgroup): Replaced inline code with gnus-agent-possibly-alter-active. (gnus-adjust-marked-articles): Faster handling of simple lists 2004-10-18 David Edmondson <dme@dme.org> * lisp/gnus/mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call excessively.
2004-10-19 22:38:28 +00:00
(let* ((gnus-command-method (gnus-find-method-for-group group))
(result
(funcall (gnus-get-function gnus-command-method 'request-rename-group)
(gnus-group-real-name group)
(gnus-group-real-name new-name) (nth 1 gnus-command-method))))
(when result
(gnus-cache-rename-group group new-name)
(gnus-agent-rename-group group new-name))
result))
1997-04-16 22:13:18 +00:00
(defun gnus-close-backends ()
;; Send a close request to all backends that support such a request.
(let ((methods gnus-valid-select-methods)
(gnus-inhibit-demon t)
1999-02-20 14:05:57 +00:00
func gnus-command-method)
(while (setq gnus-command-method (pop methods))
1997-04-16 22:13:18 +00:00
(when (fboundp (setq func (intern
1999-02-20 14:05:57 +00:00
(concat (car gnus-command-method)
"-request-close"))))
1997-04-16 22:13:18 +00:00
(funcall func)))))
1999-02-20 14:05:57 +00:00
(defun gnus-asynchronous-p (gnus-command-method)
(let ((func (gnus-get-function gnus-command-method 'asynchronous-p t)))
1997-04-16 22:13:18 +00:00
(when (fboundp func)
(funcall func))))
1999-02-20 14:05:57 +00:00
(defun gnus-remove-denial (gnus-command-method)
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(let* ((elem (assoc gnus-command-method gnus-opened-servers))
1997-04-16 22:13:18 +00:00
(status (cadr elem)))
;; If this hasn't been opened before, we add it to the list.
(when (eq status 'denied)
;; Set the status of this server.
(setcar (cdr elem) 'closed))))
(provide 'gnus-int)
;;; gnus-int.el ends here